Простежте Isoline дорогої функції 2D


10

У мене є проблема, подібна до формулювання цього посту, з кількома помітними відмінностями:

Які прості методи існують для адаптивного вибірки 2D функції?

Як у цій посаді:

  • У мене є і оцінка цієї функції обчислювати дещо дорогоf(х,у)

На відміну від цієї посади:

  • Мене цікавить не значення функції точно скрізь, а лише пошук єдиного ізоконку функції.

  • Я можу зробити суттєві твердження щодо автокореляції функції, а отже, масштабу плавності.

Чи є розумний спосіб посилити / випробувати цю функцію і знайти цей контур?

Більше інформації

Функцією є обчислення Haralick Особливості над pixles навколишнього точки, і м'якою класифікацію за яким - то класифікатором / регресорів. Результатом цього є число з плаваючою комою, яке вказує, до якої текстури / матеріалу належить точка. Масштабування цього числа може бути оцінено ймовірностями класів (SoftSVM або статистичними методами тощо) або чимось по-справжньому простим, як вихід лінійної / логістичної регресії. Класифікація / регресія є точною та дешевою порівняно з часом, відведеним для вилучення зображень із зображення.N

Nf(х,у,N)NN

Що я пробував:

  • N

  • Тупий крок - зробіть один піксельний «крок» у кожному напрямку та виберіть напрямок для переміщення, виходячи із близькості до значення ізолінії. Все ще досить повільно, і вона ігнорує роздвоєння ізолінії. Також в районах з плоским градієнтом він буде "бродити" або подвоюватися назад на себе.

N


У мене точно така ж проблема, за винятком того, що це імовірність, яку я хочу контур, і це дорого, тому що в кожній точці мені потрібно виконати мінімізацію. Чи досягли ви будь-якого прогресу та / або можете вказати, як ви врешті-решт зробили це?
adavid

Я щойно перевірив рішення, на яке сходився. (див. нижче)
meawoppl

Відповіді:


4

У комп’ютерній графіці є документ, який називається « Достовірно відбір проб та з’єднання поверхонь» , який покладається на вас, надаючи оракул, який визначає всі перетини ізолінії із заданим відрізком лінії. З цим він пробовує всі контури, припускаючи, що ви можете надати локальну шкалу характеристик (щось на кшталт максимальної локальної кривизни) та початковий набір сегментів ліній, що перетинає всі контури. Це не найпростіша річ, оскільки вона покладається на обчислення триангуляцій Делоне, але вона реалізована в 3D в CGAL . У 2D це значно простіше, оскільки існує хороше програмне забезпечення для триангуляції типу Triangle . У певному сенсі це досить близько до найкращого, що ви можете зробити.


Мені дуже подобається ця рецептура, оскільки вона логічно поширюється на 3d досить чисто. Я повинен сформулювати це в Python, тому я вже маю доступ до обгортки Delauny qhull, так що це не величезна проблема. Дозвольте мені побачити, чи правильно я підсумовую цей підсумок: - Зробіть відбір проб для насіння. - зразки тріангуляту. - Для всіх ребер, які охоплюють ізолінію вище деякої довжини: обчисліть перетини ізолінії з ребром - все обчислюють до зразків і повторюють з кроку триангуляції?
meawoppl

@meawoppl: Я особисто не реалізував і не використовував цей алгоритм (поки що!), але це звучить правильно.
Віктор Лю

Я збираюся сьогодні це витерти і опублікувати деякі результати!
meawoppl

Вибачте за затримку. Цей метод працює дуже добре для мого набору даних. В основному, я закладаю її в звичайну сітку для проби для початку, потім тріангулюю, підрозділяю краї, які перетинають ізоконтур, повтор. Висловити "найтоншу особливість" вимогу трохи важко, і є заслуга у випадковому початковому відборі порівняно з регулярним, оскільки діагональний ізолін займає трохи більше часу, ніж той, який слідує за термінами вибірки. Я в кінцевому підсумку просто дозволив пройти максимум 5 проходів, і це спрацювало як справді простий критерій зупинки. Wooo> 1K
meawoppl

1

Ви можете спробувати застосувати основні особливості методу Ефективного глобального аналізу надійності (EGRA). Цей метод отриманий для ефективного обчислення ймовірності невдачі, але кишки його зосереджені на виконанні описаного вами опису - створенні точної моделі лише біля конкретного контуру, що цікавить.

Це може бути цікавою відправною точкою, але я не впевнений, що це вирішить вашу проблему. Це дуже залежить від форми вашої функції. Якщо це щось, що можна добре наблизити до моделі кригінгу , то воно повинно добре працювати. Ці моделі досить гнучкі, але, як правило, потребують плавної основної функції. У минулому я намагався застосувати EGRA до програми сегментації зображень, але мав успіх, оскільки просто не має сенсу підходити сурогатну модель до чогось, що насправді не визначено функціональними відносинами. Все-таки я згадую це як щось, що ви можете розглянути, якщо ваша заявка буде іншою, ніж я передбачаю.

Якщо я не говорив з вами про це, ви можете прочитати більше про EGRA тут (PDF-посилання) і тут , а в проекті DAKOTA Sandia вже існує реалізація - наскільки мені відомо, єдина реалізація EGRA з відкритим кодом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.