У меня есть проблема, похожая по формулировке на этот пост, с несколькими заметными отличиями:
Какие простые методы существуют для адаптивной выборки 2D-функции?
Как в этом посте:
- У меня есть и оценка этой функции несколько дороже, чтобы вычислить
В отличие от этого поста:
Меня интересует не точное значение функции везде, а только поиск единственного изоконтура функции.
Я могу сделать значительные утверждения об автокорреляции функции и, следовательно, о шкале гладкости.
Есть ли разумный способ пошагово / выборки этой функции и найти этот контур?
Больше информации
Функция - это вычисление характеристик Харалика по пикселям, окружающим точку, и мягкая классификация с помощью какого-либо классификатора / регрессора. Результатом этого является число с плавающей запятой, которое указывает, к какой текстуре / материалу принадлежит точка. Масштабирование этого числа может быть оценено вероятностями класса (SoftSVM или статистическими методами и т. Д.) Или чем-то действительно простым, например, выводом линейной / логистической регрессии. Классификация / регрессия является точной и дешевой по сравнению со временем, затрачиваемым на извлечение признаков из изображения.
Вещи, которые я пробовал:
Тупой шаг - сделайте «шаг» по одному пикселю в каждом направлении и выберите направление движения в зависимости от близости к значению изо-линии. Все еще довольно медленный, и он будет игнорировать раздвоение изолинии. Кроме того, в областях с плоским градиентом он будет «блуждать» или удваиваться.
источник
Ответы:
В компьютерной графике есть статья под названием « Достаточно хорошая выборка и построение сетки поверхностей» , в которой вы предоставляете оракула, который определяет все пересечения изолинии с данным отрезком линии. При этом он выбирает все контуры, предполагая, что вы можете указать локальный масштаб объекта (что-то вроде максимальной локальной кривизны) и начальный набор отрезков, который пересекает все контуры. Это не самая простая вещь для реализации, поскольку она основана на вычислении триангуляции Делоне, но реализована в 3D в CGAL . Это существенно проще в 2D, поскольку существует хорошее программное обеспечение для триангуляции, такое как Triangle . В некотором смысле, это довольно близко к лучшему, что вы можете сделать.
источник
Вы можете попробовать применить основные функции метода Эффективного глобального анализа надежности (EGRA). Этот метод был выведен для эффективного вычисления вероятности отказа, но его внутренности сосредоточены на выполнении того, что вы описываете - создание модели, которая является точной только вблизи определенного интересующего контура.
Это может быть интересной отправной точкой, но я не уверен, что это решит вашу проблему. Это очень сильно зависит от формы вашей функции. Если это что-то, что можно хорошо аппроксимировать с помощью модели кригинга , то оно должно работать хорошо. Эти модели довольно гибкие, но обычно нуждаются в плавной базовой функции. В прошлом я пытался применить EGRA к приложению сегментации изображений, но безуспешно, потому что просто не имеет смысла подгонять суррогатную модель к чему-то, что на самом деле не определяется функциональными отношениями. Тем не менее, я упоминаю об этом как о чем-то, что вы, возможно, захотите рассмотреть, если ваше приложение отличается от того, что я представляю.
Если я не отговорил вас об этом, вы можете прочитать больше о EGRA здесь (ссылка в формате PDF) и здесь , и есть существующая реализация в проекте DAKOTA Сандии - насколько мне известно, единственная доступная реализация EGRA с открытым исходным кодом.
источник