progressive cut: description and conceptual implementation
TRANSCRIPT
![Page 1: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/1.jpg)
Progressive Cut
Андрей Кошманский
![Page 2: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/2.jpg)
Метод позволяет выделить желаемый объект на фоне
• Пользователь отмечает штрихами объект и фон
• После добавления штрихов алгоритм выделяет фон и объект
• Пользователь уточняет объект и фон новыми штрихами
![Page 3: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/3.jpg)
Метод позволяет выделить желаемый объект на фоне
![Page 4: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/4.jpg)
Прародителем метода Progressive Cut является Graph Cut
• Медленнее работает
• Не рассматривает пользовательское намерение
• Хуже сегментирует объект
![Page 5: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/5.jpg)
В сегментации важно учитывать расположение штрихов
Первые штрихи Ошибки алгоритма Исправления пользователей
![Page 6: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/6.jpg)
Progressive Cut превзошёл в эффективности Graph Cut
• Не рассматривает «неинтересные» пользователю области
• Учитывает расположение штрихов
• Быстрее и точнее работает
![Page 7: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/7.jpg)
Одна итерация Progressive Cut работает следующим образом
Строим уменьшенный граф Маркируем узлы (фон/объект) Считаем энергию
Минимизируем энергию
![Page 8: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/8.jpg)
Уменьшенный граф исключает из рассмотрения «неинтересные» узлы
Результат сегментации на n-ном шаге Добавляем объектный штрихИсключаем
уже определенную часть объекта
![Page 9: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/9.jpg)
Энергия – это «штрафы» за неправильное выделение объекта
Еполная = αЕцвета + βЕконтрастности + (1-α-β)Енамерения
![Page 10: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/10.jpg)
Цветовой терм «штрафует» за несоответствие цвету штриха
![Page 11: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/11.jpg)
Цветовой терм считается по формулам
- суммируются энергии всех узлов уменьшенного графа
- для каждого узла определяется соответствие цвету штриха
- если точка пересечения штриха и изображения имеет один и тот же тип, «штраф» минимален
![Page 12: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/12.jpg)
Нас интересуют только точки уменьшенного графа
Коэффициент доверия терму цвета
Все узлы уменьшенного графа
Текущая точка для вычисления
![Page 13: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/13.jpg)
Соответствие цвета узла цвету штриха объектного (фонового) типа
Цвет текущего узла
Ковариационная матрица
Среднее значение
Вес компонентыКоличество компонентгауссовской смеси
Некоторая функция
![Page 14: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/14.jpg)
Соответствие цвета узла цвету штриха объектного (фонового) типа
Цвет текущего узла
Ковариационная матрица
Среднее значение
Вес компонентыКоличество компонентгауссовской смеси
Некоторая функция?
??
?
![Page 15: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/15.jpg)
Соответствие цвета определяется гауссовской функцией
Цвет текущего узлаДисперсия цвета штриха (стандартное отклонение?)
Среднее значение цвета штриха
![Page 16: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/16.jpg)
Большие значения соответствуют большему совпадению
• Если средняя интенсивность = 150
• Дисперсия = 20
![Page 17: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/17.jpg)
«Штрафуем» точки, не соответствующие по цвету штриху своего типа
![Page 18: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/18.jpg)
Чем могут являться компоненты гауссовской смеси?
Цвет текущего узла
Ковариационная матрица
Среднее значение
Вес компонентыКоличество компонентгауссовской смеси
Некоторая функция
? ?
![Page 19: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/19.jpg)
Терм контрастности «штрафует» за резкие цветовые переходы в смежных узлах
X V
![Page 20: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/20.jpg)
Больше разница цветов – больше «штраф»
- интересуют все смежные точки уменьшенного графа
- рассматриваются только смежные точки разных маркировок
![Page 21: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/21.jpg)
Терм пользовательского намерения «штрафует» за отдаленность от штриха
X
![Page 22: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/22.jpg)
Слишком удалённые от штриха пиксели вряд ли имеют к нему отношение
- разница между маркировками текущей и предыдущей итераций
- расстояние между текущей точкой и точкой штриха
- все точки штриха
- все узлы ум. графа, имевшие противоположную штриху маркировку на пред. ит.
- параметр: чем больше, тем меньше «штраф» за расстояние
![Page 23: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/23.jpg)
Итак, мы умеем:
• Строить уменьшенный граф изображения
• Считать для него энергию
• … но как её минимизировать?
![Page 24: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/24.jpg)
Для минимизации энергии можно использовать
• Алгоритм Форда-Фалкерсона
• Алгоритм Эдмондса-Карпа
• Иные алгоритмы нахождения максимального потока
![Page 25: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/25.jpg)
Примерная реализация заключается в следующем
1. Делим изображение на 2 части
2. Заполняем разными маркировками и сравниваем
3. При отсутствии улучшений завершаем вычислительную ветку
4. Если есть улучшение – оставляем лучший вариант маркировки, переходим к [1] рекурсивно
5. Останавливаем ветку, если больше делить нельзя
![Page 26: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/26.jpg)
Средняя скорость работы Progressive Cut – 0.14 с*
*при примерном размере картинки в 500х500 точек
![Page 27: Progressive Cut: Description and Conceptual Implementation](https://reader031.vdocuments.mx/reader031/viewer/2022030306/58d0b7211a28ab1d3a8b5a41/html5/thumbnails/27.jpg)
Для подготовки использовались публикации
1. Progressive Cut (Chao Wang): https://www.researchgate.net/publication/221571580_Progressive_cut
2. Fast Approximate Energy Minimization via Graph Cuts (Yuri Boykov, Olga Veksler, Ramin Zabih):http://www.cs.cornell.edu/rdz/papers/bvz-iccv99.pdf