Продолжение статьи про проект Stanford University (ныне Cornell University) "Make3D", который поставил перед собой пока еще не ставшую типичной задачу восстановления трехмерной модели сцены всего из одного фотоснимка.
Публикация состоит из: Часть 1, Часть 2
Публикуется для утоления любопытства, с целью
Содержание:
Часть первая (тут):
- Краткое описание алгоритма
- Список используемых теорий и алгоритмов
- Модель Изинга или откуда взялась такая формула в MRF
- Эффективная сегментация изображения на графах
- Хотим 3D Модель и Расположение полигонов
- Смотреть придется шире...
- Монокулярные особенности изображения
- Границы и преломления
- MRF Input и Output
- Что будет делать MRF? Цель: min(погрешность определения расстояния)
- Wish list готов, запихаем его в Модель MRF
- 1. Local features: Предварительное определение расстояния по локальным особенностям
- 2. Connection: Соединение
- 3. Co-planar: Копланарность
- 4. Co-linear: Коллинеарность
- Кратко про Обучение MRF
- Кратко про Решение MRF
- Исходный код и изученные параметры модели
- Исполнение программы, тестирование
- Итого
- Немножко файлов
Wish list готов, запихаем его в Модель MRF
Для того чтобы смоделировать зависимость параметров плоскостей α, особенностей (features) самого изображения, и других свойств, таких как соединения, копланарность, и коллинеарность, по аналогии с функцией распределения Гиббса (Gibbs measure) в мультипликативной форме, модель MRF формулируется в следующем виде:
Функция распределения для MRF:

В данной формуле:






MRF будет «стягивать» в min кучу вышеперечисленных расстояний.
По аналогии с распределением Гиббса, MRF будет подыскивать состояние системы с наименьшим запасом энергии (в нашем случае – это будет «погрешность определения расстояний») – это наиболее вероятное состояние модели.
Теперь о типах расстояний подробнее…
1. Local features: Предварительное определение расстояния по локальным особенностям
В формуле MRF первый множитель









Относительная погрешность:

Pic.17 Погрешность определения расстояний по локальным признакам

Таким образом, с целью минимизации относительной погрешности по всем точкам

Минимизация локальной погрешности:

Параметрами в данной модели являются




Переменные




Второй множитель в формуле MRF





Моделирование отношения суперпикселей:

2. Connection: Соединение
Выбираются 2 пары точке


Pic.18 Минимизация расстояния соединения

Для расстояния от точки наблюдения (camera center) до точки









Минимизация в MRF проводится с использованием формулы:

Стоит отметить, что если суперпиксели принадлежат различным объектам и точки



3. Co-planar: Копланарность
Выбираются 3 пары точек (




Pic.19 Минимизация расстояния копланарных плоскостей

Минимизация в MRF проводится с использованием формулы:

И вычисляется произведение соответствующих погрешностей


4. Co-linear: Коллинеарность
Допустим, два суперпикселя i и j лежат вдоль одной длиной прямой на фотоснимке. В трехмерном пространстве бесконечное число прямых можно спроецировать на эту прямую в двумерном. Тем не менее, длинная прямая на фотоснимке с большой долей вероятности так же будет длиной прямой и в пространстве. Поэтому в модели "Make3D" также минимизируется отклонение точки из суперпикселя j от прямой, проходящей через плоскость, в которой лежит суперпиксель i.
Более детально, допустим два суперпикселя i и j лежат в плоскостях с соответствующими параметрами





Pic.20 Минимизация расстояния коллинеарных плоскостей

Минимизация расстояния коллинеарных плоскостей:

И вычисляется произведение соответствующих погрешностей








Solution accepted
Кратко про Обучение MRF
Ввиду того, что определение точных параметров для всего пространства решений модели не представляется возможным, в «Make3D» авторы использовали MCL (Multi-Conditional Learning) для того, чтобы разбить задачу обучения на меньшие подзадачи для каждой плотности распределения. MCL позволяет оптимизировать графическую модель, представляя ее произведением нескольких условных вероятностей с граничными условиями, каждая из которых оперирует как общими параметрами из объединенной модели, так и собственным подмножеством переменных с заданными условиями.
Изучение параметров


![y_ij∈[0,1] y_ij∈[0,1]](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg267.imageshack.us%2Fimg267%2F6086%2Fform31ysoftbelong.png%22)



В формуле функция




Кратко про Решение MRF
При построении трехмерной модели сцены по загруженной фотографии, оценивается и максимальная апостериорная вероятность (MAP) для параметров плоскостей α полигонов путем максимизации функции условной вероятности


Ввиду того, что нормирующий множитель Z не зависит от параметра α

K это количество суперпикселей в изображении; N(i) – это множество соседей i суперпикселя;






В данном случае, решение поставленной задачи находится с использованием методов линейного программирования (LP). В проекте «Make3D» применяется модифицированный метод Ньютона для эффективного нахождения Гессиана с учетом разреженности матриц.
Pic.21 Иллюстрация к нахождению минимума функции

Практическая реализация
Исходный код и изученные параметры модели
На официальном сайте проекта "Make3D" авторы выложили в открытый доступ исходный код метода для восстановления трехмерной модели сцены по одной фотографии. Часть проекта, связанная с обучением MRF в открытом доступе не предоставляется, но можно загрузить параметры уже обученной сети Маркова (MRF).
Параметры были получены путем проведения фотосъемок с использованием лазера, для измерения истинных расстояний (ground-truth). Разрешение полученных снимков расстояний составляет 55x305, разрешение фотоснимков, по которым проводилось обучение, составляет 2272x1704. Сеть MRF была обучена на 400 экземплярах пар снимков. Объем загружаемой базы параметров составляет приблизительно 150 Мб.
Исходный код представляет собой программы, написанные на языке MATLAB, в проекте так же используются сторонние разработки, написанные на языке C/C++, которые предварительно компилируются в MEX-файлы, для работы с ними из среды MATLAB.
Исполнение программы, тестирование
Проект запускался на ноутбуке с процессором Intel Core 2 Duo T7500 CPU (2.20 Ghz), с 2 GB RAM, под управлением операционной системы Microsoft Windows 7 Home Premium, внутри виртуальной машины VMWare Workstation 7.0.0 под операционной средой Linux Mint 8 Helena, версия ядра 2.6.31-generic, с выделенным объемом 1.7 GB RAM. Программы исполнялись в среде MATLAB R2009b (7.9.0.529 32-bit).
Обработка одной фотографии в среднем занимала 270-300 секунд, и использовало порядка 1 GB RAM в среде Linux. Полученный в результат файл VRML с расширением *.wrl, занимает в среднем 120-160 Кб. Просмотр *.wrl файлов выполнялось с использованием проигрывателя «Cortona3D Viewer».
Итого
Технология еще далеко не безупречна, и это признают сами исследователи. Сейчас проект лучше всего справляется с анализом ландшафтов и пейзажей, а вот преобразование в трехмерный вид объектов, снятых крупным планом, пока оценивается неудовлетворительно. Причина подобного поведения модели очень вероятно обусловлена относительно небольшим обучающим набором фотографий, основную часть которых составляли ландшафты окрестностей Пало-Альто в летнее время, небольшой разрешающей способностью лазера для измерения истинных расстояний до предметов, и множеством параметров системы, которые ни как не корректируются в зависимости от особенностей распознаваемой сцены и параметров фототехники, на которой производились снимки. Однако, авторы проекта уже начали работать в направлении усовершенствования системы: добавляя элементы интерактивности и получения обратной связи при восстановлении трехмерной модели, и исследуя технологии совмещения монокулярных признаков с восстановлением трехмерной модели по нескольким фотоснимкам.
Чтобы не получилась подобная статья по объему, на применении подобных алгоритмов я особо останавливаться не буду. В качестве одного из самых явных примеров: возьмем распространенные сервисы, такие как Google Street View или Bing Maps 3D, в которых уже доступны объемные изображения, но в основном только центральных улиц, остальная же часть местности, как правило, остается без внимания, не говоря уже о внутренних помещениях больших супермаркетов и складов. Придерживаясь концепции Web 2.0, в которой содержание для сервисов добавляют сами пользователи, Google и Microsoft уже разрабатывают продукты "SketchUp" и "3DVIA Shape" соответственно, чтобы пользователи могли самостоятельно строить трехмерные модели зданий, которые их окружают. В данном случае, проект наподобие «Make3D» мог бы гармонично вписаться в сервисы, для осуществления первичной обработки одной или нескольких фотографий объекта с обычного телефона, помогая выстроить предварительную трехмерную модель, и тем самым упростить пользовательский ввод.
Немного файлов
Если кому-нибудь захочется самому полетать в «3D модельке», а времени Цейтнот чтобы разбираться, то предлагаю ссылку на файлик с модельками из ролика. Там 10 моделей (фотки и *.wrl), весит весь файл ~11,1 Мб, с Вас только Cortona3D Viewer
Пока мой DropBox (подскажите, пожалуйста, нормальный Fileupload — перезалью)
P.S. Картинка с юмором, о причинах публикации данной простыни:

Начало статьи: Часть 1