Графические модели (курс лекций)/2013/Задание 7
Материал из MachineLearning.
|
Срок сдачи: 15 ноября 2013, 23:59
Среда реализации — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Марковское случайное поле
Марковское случайное поле (MRF) — графическая модель, энергия которой записывается в виде:
где P — множество индексов переменных, E — система соседства, D — унарные потенциалы, V — бинарные потенциалы.
Рассмотрим модель со следующими ограничениями:
- переменные дискретны и принимают значения из множества {1,…,K}, K ≥ 2,
- система соседства E — прямоугольная решетка,
- бинарные потенциалы V представимы в виде произведения множителя, не зависящего от значений соседних переменных, и множителя, зависящего только от них: .
В рамках этого задания требуется:
- реализовать алгоритм поиска конфигурации , обладающей минимальной энергией (TRW или α-расширение),
- протестировать реализованный алгоритм на модельных задачах,
- применить реализованный алгоритм для задачи стерео,
- сравнить алгоритмы TRW и α-расширение на задаче стерео.
MRF для стерео
Задача стерео состоит в сопоставлении каждому пикселю одного изображения пикселя другого изображений. В рамках данного задания рассматривается выровненное стерео, что означает, что соответствующие пиксели лежат на одной горизонтальной линии. В этих условиях переменные имеют смысл смещений по горизонтали (диспаритетов).
Для задачи стерео марковское случайное поле строится следующим образом:
- Переменная соответствуют пикселям одного из изображений.
- Используется стандартная 4-х связная система соседства.
- Унарные потенциалы должны показывать, насколько хорошо выбранные пиксели двух изображений соответствуют друг другу. В простейшем случае можно взять евклидово расстояние между цветами пикселей в формате YUV. Более совершенные унарные потенциалы описаны в статье: S. Birchfield, C. Tomasi, A pixel dissimilarity measure that is insensitive to image sampling, IEEE TPAMI, 20(4):401–409, 1998, http://ce.sharif.edu/~elno/disparitymap/Papers/dissimilarity_pami1998.pdf.
- В качестве расстояния d между метками соседних переменных можно взять усеченный модуль разности: , L ≥ 0 — параметр.
- Веса ребер c могут иметь большие значения там, где градиент на изображении мал, и маленькие значения там, где градиент большой. Например: , где a ≥ 0, s ≥ 0 — параметры.
Задание
- Вывести все формулы, использующиеся в вашей реализации TRW (формулировки прямой и двойственной задач, формула подсчета субградиента, конкретная схема субградиентного подъема, и т.д.).
- Реализовать алгоритм TRW при помощи двух алгоритмов максимизации двойственной функции: алгоритм субградиентного подъема и алгоритм BFGS.
- Протестировать алгоритм TRW на модельных данных.
- Привести примеры наличия и отсутствия зазора между решениями прямой и двойственной задач (например, зазор должен отсутствовать в случае субмодулярной энергии).
- Реализовать процедуру решения задачи стерео.
- Подобрать параметры так, чтобы на выданных стереопарах достигался хороший результат. Набор параметров может быть своим для каждой стереопары.
- На одной стереопаре из предыдущего пункта сравнить работу алгоритмов TRW и α-расширение. Требуется провести сравнение по энергии получаемого решения, по времени работы, по визуальному качеству решения. Все выводы должны быть подтверждены числами, графиками, картинками.
- Написать отчет в формате PDF с описанием всех проведенных исследований.
Спецификация реализуемых функций
Алгоритм TRW | ||||||||
---|---|---|---|---|---|---|---|---|
[labels, energy, lowerBound, time] = trwGridPotts(unary, vertC, horC, metric) | ||||||||
[labels, energy, lowerBound, time] = trwGridPotts(unary, vertC, horC, metric, options) | ||||||||
ВХОД | ||||||||
| ||||||||
ВЫХОД | ||||||||
|
Обратите внимание: в процедуре trwGridPotts параметры N, M, и K определяются неявно по размеру соответствующих элементов.
Стерео | |
---|---|
[disparity] = stereo(name) | |
ВХОД | |
| |
ВЫХОД | |
|
В каталоге, из которого будет запускаться решение при проверке, будет лежать выданный каталог datasets.
Рекомендации по выполнению задания
1. При разбиении MRF-решетки только на вертикальные и горизонтальные цепочки формулировка несколько упрощается:
- Каждое ребро графа принадлежит только одному подграфу, а, значит, не нужно вводить двойственные переменные, соответствующие ребрам.
- Каждая вершина принадлежит только двум деревьям, а, значит, можно ввести |P|K двойственных переменных, соответствующих условиям , где hor и vert обозначают горизонтальную и вертикальную цепочку, проходящую через p-ю вершину.
2. Поскольку двойственная функция вогнута и кусочно-линейна, оптимизировать ее можно при помощи алгоритма субградиентного подъема.
Каждый шаг метода субградиентного подъема состоит в пересчете значений двойственных переменных λ по следующему правилу:
где — субградиент в текущей точке, — параметр, отвечающий за длину сдвига.
В рамках данного практического задания можно использовать любой способ субградиентного подъема. Например, можно использовать следующий адаптивный метод выбора длины шага:
где — текущее значение двойственной функции, — оценка оптимума двойственной функции, которую можно определять следующим способом:
где — лучшее на данный момент значение двойственной функции,
— параметры метода. Обычно . Конкретные значения этих параметров нужно подобрать.
Подробнее о методах субградиентного подъема написано в статье: N. Komodakis, N.Paragios and G. Tziritas, MRF Energy Minimization and Beyond via Dual Decomposition, IEEE TPAMI, 33(3):531-552, 2011, http://www.csd.uoc.gr/~komod/publications/docs/DualDecomposition_PAMI.pdf
3. В качестве реализации алгоритма BFGS рекомендуется использовать библиотеку HANSO. Для удобства работы интерфейс стоит модифицировать так, чтобы он принимал на вход указатель на функцию, а также отключить метод сэмплирования градиентов.
4. В качестве текущего значения энергии в рамках алгоритма TRW можно выбрать минимум энергий разметок, полученных по только вертикальным и только горизонтальным цепочкам.
5. При тестировании алгоритма TRW необходимо следить, чтобы наибольшее значение нижней границы было не больше, чем наименьшее значение энергии.
6. Потенциалы для стереопары tsukuba и примеры работы различных алгоритмов: http://vision.middlebury.edu/MRF/results/tsukuba/index.html
7. В качестве кода алгоритма α-расширение можно использовать либо свою собственную реализацию, либо реализацию от авторов метода: библиотека GCO
Данные для выполнения задания
rgb2luv — конвертер изображений в формат YUV.
datasets — стереопары.
Оформление задания
Выполненный вариант задания необходимо прислать письмом по адресу bayesml@gmail.com с темой «[ГМ13], доп. задание, ФИО». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.
Письмо должно содержать:
- PDF-файл с описанием проведенных исследований (отчет должен включать в себя описание выполнения каждого пункта задания с приведением соответствующих графиков, изображений, чисел)
- trwGridPotts.m, stereo.m
- Набор вспомогательных файлов при необходимости