Санкт-Петербургский государственный университет
Математическое обеспечение и администрирование информационных
систем
Системное программирование
Овчинников Сергей Андреевич
Развитие метода полуглобального
стереосопоставления и его применение к
реконструкции поверхностей лиц
Бакалаврская работа
Научный руководитель:
к. ф.-м. н. Вахитов А. Т.
Рецензент:
Кривоконь Д. С.
Санкт-Петербург
2016
SAINT-PETERSBURG STATE UNIVERSITY
Software and Administration of Information Systems
Software Engineering
Sergei Ovchinnikov
Improvement of semiglobal stereomatching
algorithm and its application to facial surface
reconstruction
Bachelor’s Thesis
Scientific supervisor:
Ph. D. Alexandr Vakhitov
Reviewer:
Dmitry Krivokon
Saint-Petersburg
2016
Оглавление
Введение
4
1. Постановка задачи
9
2. Известные результаты
10
3. Предлагаемые алгоритмы
3.1. Функции стоимости . . . . . . . . . . . . . . . . . . . . . .
3.1.1. Функция стоимости Mutual Information and Census
(MIC) . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2. Функция стоимости на основе сиамской сверточной нейронной сети (CNN) . . . . . . . . . . . . . .
3.2. Экстраполяция перекрытых регионов . . . . . . . . . . .
3.2.1. Линейная экстраполяции перекрытых регионов .
3.2.2. Экстраполяции перекрытых регионов путем голосования . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Адаптивные веса на основе градиента изображения . . .
15
15
4. Результаты экспериментов
28
15
18
21
21
24
26
5. Применение стереометода на изображениях лиц людей 37
5.1. Применение стереометода на изображениях лиц людей с
известной 3D моделью . . . . . . . . . . . . . . . . . . . .
42
Заключение
45
Список литературы
47
3
Введение
Нахождение расстояния до различных точек сцены относительно
положения камеры - одна из важнейших задач компьютерного зрения.
Самый распространенный метод для нахождения глубин точек - использовать две камеры, находящиеся друг от друга на известном расстоянии, и с помощью них получить пару изображений, левое из которых обычно называют источником, а правое - целью (типичная стереосистема приведена на рисунке 1). Описанная проблема важна во многих областях: например, автономное вождение, робототехника, спорт
(генерирование промежуточных углов зрения с помощью 2 камер, см.
[7]), а также реконструкция сцен и даже лиц людей, например, в целях
безопасности, как в [1]. Первым этапом воссоздания полной 3D моде-
Рис. 1: Схема типичной стереоустановки
ли с помощью данного подхода является решение задачи соответствия.
Для того, чтобы воспользоваться дополнительной информацией, которая имеется в виду наличия второй камеры, необходимо знать все соответствия между точками источника и цели. Следует также учитывать
две основные проблемы, которые встают на этом пути - это перекрытия и перепады глубин на краях объектов. Объект, видимый с одной
камеры, может быть недосягаем для другой в виду перекрытий.
Оказывается, при известных параметрах камер (обычно сами камеры идентичны) и расстоянии между ними задачу можно свести из
4
2D × 2D к 1D × 1D. Рисунок 1 показывает, как одной точке проекции на источник могут соответствовать две точки цели (на самом деле
ей может соответствовать целая линия цели, называемая эпиполярной,
e2 на рис. 2). Если же теперь спроецировать e2 обратно на плоскость
источника - получим другую эпиполярную линию - e1. Две эти линии
получены от пересечения двух проективных плоскостей камер и так
называемой эпиполярной плоскости OR P OT .
Рис. 2: Эпиполярное ограничение
Более эффективным является решение сначала ”выпрямить” системы координат, так, чтобы эпиполярные линии были горизонтальны и
соответствующие линии находились на одинаковой высоте (рис. 2).
Для этого сначала необходимо ”виртуально” повернуть камеры, чтобы они смотрели перпендикуляро линии, соединяющей их оптические
центры - OR OT . Далее регулируется кручение вокруг оптических осей
камер, чтобы соответствующие эпиполярные линии были горизонтальны и смещение для точек в бесконечности было нулевым. Последнее
- перемасштабировать изображения, чтобы учесть, возможно, разные
фокусы камер.
Смещение между расположениями двух соответственных точек на
”выпрямленной” (также эту форму называют стандартной) паре изображений называют смещением (d = XR − XT на рис. 3). Если рассмотреть подобные треугольники P OR OT и P pp’, то окажется, что смещение
5
непосредственно связано с глубиной следующим образом:
d=
B∗f
Z
(1)
Рис. 3: Связь смещения и глубины
И далее, имея смещение, можно получить исходные в 3D координаты (опять же, имея внутренние и внешние параметры камер), таким
образом произведя второй этап - реконструкцию (на самом деле, в общем случае формулы более сложны и принимают матричную форму):
B∗f
Z ∗ xR
Z ∗ yR
X=
Y =
(2)
d
f
f
Главной частью стереоалгоритма является поиск соответствий. Этот
процесс можно разделить на следующие этапы, согласно [16]: вычисление стоимостей для каждого пикселя, вычисление их взвешенной суммы, минимизация общей стоимости для всего изображения, уточнение
полученного решения (схема приведена на рис. 4). Эффективность каждой из предложенных частей непосредственно влияет на все последующие. В последнее время популярность получили так называемые глобальные алгоритмы, которые ищут гладкое решение (в том смысле, что
”штрафуется” наличие ”скачков” в глубинах). Однако, глобальные алгоритмы довольно медленны, поэтому ищутся всевозможные приближения к глобальному решению - это так называемые полуглобальные
Z=
6
Рис. 4: Схема, демонстрирующая область изучения в данной работе, и
место алгоритма More global Matching (MGM)
алгоритмы. Учитывая, что для многих аглоритмов соотношение скорости/точности для различных датасетов очень сильно варьируется, проблема поиска наилучшего алгоритма для данного набора изображений
все еще пользуется интересом.
Алгоритм Semi-global matching (SGM, алгоритм полуглобального сопоставления) - один из ведущих стереоалгоритмов, реализующий этап
минимизации. Этот алгоритм использует эффективную стратегию для
приблизительной минимизации энергии, которая состоит из попиксельной стоимости и попарной (между соседними пикселями) гладкости.
На основе предложенной интерпретации SGM как алгоритма распространения доверия, совсем недавно был преложен новый алгоритм Significantly More Global Matching (MGM, значительно более глобальный поиск соответствий [4]) - который позволяет в пять раз минимизировать зазор энергии невязки решения по сравнению с SGM, при этом
почти не имеет накладных расходов. Однако сам алгоритм реализует
этап минимизации, и авторы алгоритма оставили за пределами своего исследования использование вместе с их алгоритмом многих других
популярных решений, лежащих на других этапах, например, использование более точной функции стоимости или борьбу с перекрытиями.
Эта работа посвящена дальнейшему развитию алгоритма MGM применение вместе с ним алгоритмов, часть из которых модифицирована нами, но ранее применялась с SGM, а часть - впервые предложена
7
нами, с целью выяснения, какие из них в паре с минимизационным алгоритмом MGM демонстрируют наилучший результат. В связи с тем,
что MGM был разработан совсем недавно, дальнейшего развития на
момент написания работы не получил.
8
1. Постановка задачи
Целью работы является развитие алгоритма минимизации более глобального поиска соответствий (MGM [4]) - поиск и реализация более
точных алгоритмов (нежели используемые сейчас), которые предшествуют/следуют за этапом минимизации, чтобы добиться максимальных результатов от названного стереоалгоритма на одном из популярных наборов изображений. Также ставится цель исследовать применимость алгоритма MGM на наборах изображений с лицами людей, чтобы
понять, насколько успешно он может использоваться в реконструкции
лиц и определить с какими параметрами и предложенными алгоритмами достигается наилучший результат.
В ходе работы были поставлены следующие подзадачи:
1. Адаптация MGM [4] под библиотеку OpenCV
2. Разработка и реализация алгоритма оценки стоимостей на основе
синтеза алгоритмов Census и Mutual Information [6]
3. Разработка и реализация функции стоимостей на основе сиамских
сверточных нейронных сетей
4. Разработка и реализация алгоритма поиска перекрытий и устранение их проявлений (а вместе с тем и повышения точности самого
алгоритма)
5. Использование адаптивных весов - одних из стандартных параметров MGM - на основе градиента изображения
6. Проверка полученного алгоритма на наборах изображений Middlebury
[13], а также на наборах изображений лиц людей и анализ полученных результатов
9
2. Известные результаты
Методы поиска стересоответствий обычно подразделяют на локальные и глобальные методы. Локальные методы оценивают смещение
независимо для каждого пикселя, сравнивая некоторое свойство (обычно в пределах какого-то окна вокруг пикселя) на левом и правом изображениях. Локальные методы вычислительно дешевы, однако им присущи проблемы в работе с нетекстурированными областями, повторяющимися шаблонами и резкими скачками в глубинах. Глобальные методы борются с этими недостатками путем введения специального члена
V , отвечающего за гладкость решения:
E(D) =
∑
Cp (Dp ) +
∑
V (Dp , Dq )
(3)
p,q∈ϵ
p∈I
Здесь Dp - матрица смещений для пикселя p. Сумма берется по всем
пикселям p, принадлежащим изображению. V - функция, штрафующая за разрыв в смещениях для соседних пикселях p и q. C (далее
также будет записываться в форме C(p, q)) - функция, которая оценивает ”штраф” (невязку) за назначение пикселю p смещения Dp (в другой
форме записи - q − p). Для соответствующих пикселей на изображениях она должна быть как можно меньше, для различных - как можно
больше.
Подобная задача поиска соответствий также часто формулируется в терминах случайных полей Маркова (MRF). MRF определяется
на ненаправленном графе G(V, ϵ), где ϵ - возможные соединения с соседними вершинами. Каждая вершина p ∈ V - случайная переменная,
принимающая конечный набор возможных смещений. Лучший такой
набор смещений D∗ , минимизирующий 3 будет решением. Для задачи минимизации на MRF, имеющим представление в виде дерева, был
предложен алгоритм распространения доверия [15], минимизирующего сумму 3. Он вычисляет для каждого узла доверие Bp (dp ), отправляя
сообщения вдоль связей между узлами. Как только узел q принял сооб-
10
щения от всех своих соседей, кроме p, он может отправить p сообщение:
∑
′
mq→p (d) = mind′ ∈D (Cq (d ) +
mk→q (d′ ) + V (d, d′ ))
(4)
(q,k)∈ϵ,k̸=p
И доверие узла p к значению d вычисляется следующим образом:
∑
B(p, d) = Cp (d) +
mq→p (d)
(5)
(q,p)∈ϵ
Далее для данного узла p берется d ∈ D, такое, что для него доверие
B(p, d) минимально по всем d.
Также существует ряд подходов, которые используют ground truth
данные, чтобы оценить параметры модели MRF. Zhang и Seitz в [20]
оценили таким образом оптимальные параметры для случайных полей
Маркова.
Hirschmuller предложил еще один алгоритм минимизации энергии
на сетках - SGM (алгоритм полуглобального сопоставления) [6]. Ему
удалось свести эту задачу к минимизации на однонаправленных линиях, взятых в разных направлениях, рис. 5. Задача решается на каждой
линии (r - направление) отдельно, а затем все полученные решения
суммируются:
Lr (p, d) = Cp (d) + mind′ ∈D (Lr (p − r, d′ ) + V (d, d′ ))
Sp (d)(p, d) =
∑
Lr (p, d)
(6)
(7)
r
Рис. 5: Пример 16 линий-направлений, на которых ищется оптимальное
решение в SGM
11
Чуть позже [14] была продемонстрирована эквивалентность этих
двух подходов для 8 направлений, если использовать следующую формулу (рис. 6):
∑
Soc (p, d) =
Lr (p, d) − (Ndir − 1) ∗ Cp (d)
(8)
r
Рис. 6: Пример эквивалентных схем для BP(слева) и SGM (справа) для
8 направлений
В 2015 году группой французских ученых был предложен алгоритм
- MGM [4] A Significantly More Global Matching - главным преимуществом которого являлось большая глобальность решения относительно
SGM. Они видоизменили формулу 8 в духе BP, предложив использовать информацию более чем в одном направлении. В MGM сообщения
также передаются с перпендикулярных(r′ ) линий обхода:
Lr (p, d) = Cp (d) +
∑ 1
mind′ ∈D (Lr (p − x, d′ ) + V (d, d′ ))
2
′
(9)
x∈r,r
MGM на 20% медленее SGM, однако на 40% лучше минимизирует энергию функционала. Также MGM очень легко распараллеливается, достаточно быстр, а также обладает высокой точностью даже используя
простые функции стоимостей - именно поэтому этот минимизационный
алгоритм был выбран для дальнейшей работы.
Помимо выбора минимизационного алгоритма, большое влияние на
точность работы всего алгоритма оказывает выбор функции стоимости.
Census - непараметрическая функция, используемая в MGM по умолча12
нию. Она устойчива к локальным и некоторым глобальным радиометрическим изменениям (радиометрические изменения - различия в цветовых характеристиках на двух снятых изображениях (с двух разных
камер) одних и тех же точек объекта ввиду различных характеристик
съемочных приборов (например, чувствительность сенсоров) и различных ракурсов съемки) и отображает структуру изображения в пределах заданного окна. Каждому пикселю в пределах окна сопоставляется
единица, если его значение меньше или равно значению центрального
пикселя окна. Таким образом получается битовая строка, которая сравнивается с аналогично полученной строкой на участке целевого изображения путем вычисления расстояния Хэмминга (Cindex (p, q) - полученная функция стоимости с индексом index):
Ccensus (p, q) =
⊗
(Tcensus (p), Tcensus (q)),
где
Tcensus (P ) =
⊕
ξ(P, P + [i, j]),
(10)
(11)
[i,j]∈D
где ⊕ обозначает конкатенацию, D - непараметрическое окно вокруг P,
ξ - следующий индикатор:
1 если P > P+[i, j]
ξ(P, P + [i, j]) =
(12)
0 иначе
Для дальнейших сравнений был выбран размер окна D равный 5 ×
5. Однако, как описано в [21], census порождает неточности на краях
объектов, что отрицательно сказывается на общей точности.
Также существует ряд подходов, которые используют ground truth
данные, чтобы оценить параметры модели функции стоимости. Например, Yunpeng Li и Daniel P. Huttenlocher в [10] предложили непараметрическую функцию стоимости, которая может автоматически обучаться с помощью метода опорных векторов. Jure Zbontar [19] первым
применил нейронные сети для обучения функции стоимости, используя
ее вместе с алгоритмом SGM (обучение происходило на базе библиотеки
13
нейронных сетей Torch).
Еще одной проблемой в стереосопоставлении является борьба с перекрытиями. Перекрытые пиксели обычно видны лишь на одном изображении, так что невозможно оценить информацию о смещении на основе
перекрытой пары пикселей.
Heiko Hirschmuller в [6] предложил использовать экстраполяцию
верно назначенных значений смещений вдоль восьми направлений, однако на многих датасетах такое большое количество источников экстраполяции порождает артефакты ввиде целых линий, вдоль которых
значение было экстраполировано неверно. Bleyer в [3] предложил идею,
согласно которой перекрытым пикселям не разрешается распространять на этапе минимизации функционала свое неверное значение.
Dongbo Min в [11] попробовал внедрить схему по борьбе с перекрытиями прямо на этап минимизации стоимостей, используя итеративный
процесс. Vladimir Kolmogorov в [9] предложил использовать специальный член в формуле 3, который будет штрафовать ситуацию, при которой для пикселя нарушается ограничение уникальности (неоднозначное
соответствие пикселей источника и цели).
14
3. Предлагаемые алгоритмы
3.1. Функции стоимости
На изображениях, снятых радиометрически откалиброванными установками, соответствующие пиксели имеют схожие значения интенсивности. Для таких изображений простая функция стоимости (например,
абсолютная разность интенсивностей) не уменьшает точности стереоалгоритма. В реальных ситуациях, однако, цветовые значения могут быть
подвергнуты радиометрическим вариациям, включая глобальные изменения интенсивности (например, различная гамма-коррекция, значение
чувствительности (ISO) камер), а также локальные радиометрические
изменения (различное освещение, шум, а также при наличии поверхностей, для которых не выполняется закон Ламберта). Эти вариации
часто встречаются при съемке на обычные камеры, поэтому использование устойчивых функций стоимости является необходимым.
Функция census, используемая в MGM, устойчива к локальным радиометрическим изменениям, однако неустойчива к глобальным. Поэтому мы предложили использовать новую функцию стоимости MIC, а
также (в случае наличия тренировочного датасета) функцию стоимости
CNN.
3.1.1. Функция стоимости Mutual Information and Census (MIC)
Чтобы повысить точность работы алгоритма на краях объектов,
а также повысить устойчивость к глобальным радиометрическим изменения, мы прибегли к использованию функции стоимости Mutual
Information, которую впервые в стереосопоставлении применил Heiko
Hirschmuller [6]. Она основывается на энтропии как каждого из двух
отдельных изображений, так и на энтропии их совместного распределения, которое получается на основе априорного знания о соответствии. Функция стоимости в данном случае задается следующим образом (здесь и далее Ir - интенсивность изображения-источника, It -
15
целевого изображения):
CM I (p, q) = −miIr ,fD (Ir ) (Ir (p), It (q))
(13)
miIr ,It (i, k) = hIr (i) + hIt (k) − hIr ,It (i, k)
(14)
Совместная энтропия hIr ,It (i, k) оценивается следующим образом:
1
hIr ,It (i, k) = − log(PIr ,It (i, k) ∗ g(i, k)) ∗ g(i, k),
n
(15)
где g(i, k) - ядро Гаусса (было взято 7 × 7), PIr ,It (i, k) - распределения
вероятностей:
1∑
PIr ,It (i, k) =
T [(i, k) = (Irp , Itf (p) )]
n p
(16)
Аналогично, для индивидуальных энтропий, только лишь индивидуальное распределения вероятностей рассматривается как сумма колонок/рядов совместного распределения вероятностей:
∑
PIr (i) = k PIr ,It (i, k). Эта поправка учитывает, что некоторые пиксели
могут являться перекрытыми на одном из изображений.
Также стоит отметить важность проведения операции winsorising перед нормализацией стоимостей: был выбран порог отбрасывания 0.05
(значения меньше 0.05-квантиля и больше 0.95-квантиля заменяются
0.05-квантилем и 0.95-квантилем соответственно). Это заметно способствует ”правильной” нормализации данных, когда шум на краях выборки занимает бо́ льший диапазон всех возможных значений.
В качестве интенсивности для распределения вероятностей использовалось значение интенсивности в оттенках серого (в диапазоне [0, 255]).
Нормализация значений miIr ,It проходила приведением по параметрам
min,
max
(i,k)∈[0,255]×[0,255]
miIr ,It (i, k)
к диапазону [0., 255.] после операции winsorising.
В отличие от метода, предложенного Hirschmuller (т.н. hierarchical
16
Рис. 7: Карта смещений, полученная с помощью функции стоимости
census (слева) и MIC wM I = 0.4 (справа)
MI), для первого априорного приближения распределения вероятностей
на первой итерации была использована функция стоимости census. Затем, зная априорное распределение, вычислялось значение mi. Такой
подход медленнее (требуется две итерации на полноразмерном изображении), но дает точное решение за меньшее число всех итераций и не
требует постоянного перемасштабирования изображений.
Сам по себе Mutual Information на большинстве датасетов демонстрирует худший результат, нежели census (как видно из полученных
нами результатов). Поэтому была введена новая функция Mutual Information
and Census, которая является их линейной комбинацией с некоторыми
весами:
CM IC (p, q) = wM I ∗ CM I (p, q) + (1 − wM I )Ccensus (p, q)
Таким образом, данная функция сочетает в себе преимущества обеих функций стоимости: устойчивость к локальным радиометрическим
изменениям (как в census) и бо́ льшая точность на краях объектов (MI).
Сравнение полученных карт смещений приведено на рисунке 7.
17
3.1.2. Функция стоимости на основе сиамской сверточной нейронной сети (CNN)
Рис. 8: Используемая архитектура сверточной нейронной сети
Архитектура используемой сиамской сверточной нейронной сети (ССНС)
приведена на рисунке 8. На вход двум равнозначным веткам сверточной
нейронной сети подаются участки изображений (все их возможные сопоставления) соответственно с источника и цели. На выходе нейронная
сеть определяет степень похожести этих участков, то есть с какой вероятностью это сопоставление является истинным. Для обучения сети
нужно было использовать уже три участка: один участок с источника и два участка с цели - истинное сопоставление участку с источника
и ложное. Обучение состоит в том, чтобы значение выхода сети для
пары положительного участка цели и участка с источника было больше значений выхода для всех пар ложных участков цели и участка с
источника.
Все сверточные слои имеют выходную глубину 64 (64 карты признаков) и связаны со всеми картами признаков на предыдущем слое
(таблица соединений содержит все единицы), а размеры всех сверточных матриц - 3 × 3. Использовались параметры-размеры сверточных
18
матриц, рекомендуемые в работе [19] для данного разрешения изображений (порядка 1800 × 1300 пикселей).
Нами была использована иная функция схожести двух выходов сети
на участках изображения A и B:
sim(A, B) = cos(A, B) =
A∗B
|| A || ∗ || B ||
Так как оригинальный MGM написан на C++, использовалась легковесная библиотека tiny-cnn в качестве фреймворка сверточных нейронных сетей, в первую очередь, в силу того, что она самодостаточна и не
зависит от других библиотек. Однако так как данный фреймворк не
предполагал использование именно сиамских НС, а также использование выбранной нами функции потерь, то эта часть была реализована
вручную.
Первая из описанных проблем была решена созданием двух аналогичных НС, и усреднением дельт весов и смещений левой и правой
части НС перед шагом обновления весов нейронной сети (чтобы параметры НС всегда были идентичны). Вторая проблема кроется в том,
∑
что выбранная функция потерь L(θ) = (xl ,xp ,xn ) max(0, m+sim(xl , xn )−
sim(xl , xp )), где xl есть фрагмент с источника, xp - соответствующий ему
позитивный участок на целевом изображении, xn - соответствующий
ему негативный участок на целевом изображении, зависит не только
от двух входных пар, но и от третьей пары. Выходом стало включать
в каждый mini-batch тройку дважды: каждый раз мы рассматриваем
нашу НС как функцию лишь от двух входных участков, второй их которых в одном случае - xp , в другом - xn .
Градиент функции потерь по выходному вектору НС, вычисленный
нами (был выбран m = 0.3):
0
если m + sim(xl , xn ) − sim(xl , xp ) < 0
2
∂E
l ,xn )∗xli
= xni ∗||x||xl ||||3−(x
(17)
иначе и y = xn
∗||xn ||
l
∂yi
2
− xni ∗||xl || 3−(xl ,xp )∗xli иначе
||xl || ∗||xp ||
В случае, если значение на паре с негативным участком довольно близ19
ко к значению с позитивным участком, должен быть наложен ”штраф”
- градиент функции отличен от нуля. В ином же случае, если разность
между этими значениями больше m, ”штрафа” накладываться не должно.
Обучение происходило на расширенной части тренировочного датасета Middlebury. Все изображения были сначала переведены в оттенки серого, а затем стандартизированы путем вычета среднего и делением на дисперсию. Также тренировочный датасет был расширен путем отражения пар изображений по горизонтали и вертикали, а также использования того факта, что многие датасеты Middlebury были
сняты при различных услових освещения. В качестве оптимизатора
для градиентного спуска использовался RMSProp [18] с параметрами
alpha = 0.0001, mu = 0.99, eps = 1e − 8:
w(t) = w(t − 1) − α ∗ △w(t)
√
∂E
△w(t) =
(t)/ M eanSquare(w, t) + ϵ
∂w
∂E 2
(t)
∂w
В тренировочный набор включались только неперекрытые участки
изображений. Задание xp происходило однозначно, тогда как xn заданы
путем небольшого смещения влево или вправо относительно участка xp :
M eanSquare(w, t) = mu ∗ M eanSquare(w, t − 1) + (1 − mu)
q = (x−d ± rand[2, 6], y)
Всего обучение происходило на 10 млн. троек участков, на протяжении 10 эпох с размером mini-batch = 128 (четность особо важна ввиду
выбранной реализации). Так как выбранный фреймворк пока что не
реализован на GPU, обучение происходило в 8 потоков и заняло около
50 часов.
Финальная функция стоимости, используемая нами на основе ССНС:
1
CCN N (p, q) = (−sim(W inIr (p), W inIt (q)) + 1)
2
Функция стоимости (принимающая значение из [0,1]) также, как и все
20
остальные, была нормализована к диапазону [0., 255.]. Как изображениеисточник, так и изображение-цель были расширены отступами в
W IN SIZE/2 пикселей с интенсивностью 0 (zero-padding) в каждом и 4
основных направлений, чтобы правильно применять свертку по краям
изображений.
Стоит отметить, что дальнейшим шагом в оптимизации реализации
этого метода может послужить оптимизация многократной свертки перекрывающихся участков изображения, что в текущей реализации не
предусмотрено в виду того, что на вход НС подается всегда лишь участок изображения, а не все изображение целиком.
3.2. Экстраполяция перекрытых регионов
Еще одной проблемой в стереосопоставлении является борьба с перекрытиями. Перекрытые пиксели обычно видны лишь на одном изображении, так что невозможно оценить информацию о смещении на основе перекрытой пары пикселей. Однако, во многих областях, например,
3D-моделировании (что было сделано нами при построении 3D-моделей
лиц людей), необходимо назначить обоснованные значения смещений
перекрытым пикселям. Поэтому ввиду этой необходимости нами были
использованы техники по борьбе с перекрытиями, одна из которых является скрещиванием методов [3] и [6], а вторая - нашим развитием
идеи первой.
3.2.1. Линейная экстраполяции перекрытых регионов
Неверно назначенные смещения можно поделить на две категории:
перекрытые пиксели и ”несоответствия” (неперекрытые неверно назначенные пиксели). Найти множество всех неверно назначенных пикселей
можно с помощью left-right проверки. Она состоит в проверке согласованности (рассматривается ошибка перепроектирования: сначала происходит проекция с источника на цель, затем - обратно) назначенных
значений смещений на источнике и цели с определенной точностью ϵ.
Был взят ϵ = 1px. Помимо пикселей, не прошедших left-right проверку
21
Рис. 9: Маски Invalidated-регионов без описанного преобразования по
борьбе с шумом (слева) и с ним (справа)
(LR), в это множество приписывались пиксели, не прошедшие blayer
test [3], но после нескольких простых морфологических трансформаций с целью избавления от лишних шумов. Таким образом, множество
неверно назначенных смещений Invalidated строится следующим образом:
Invalidated = LR ∪ 4connected(morph(Blayer))
Однако сгенерированная таким образом маска допускала много ошибочно не отброшенных (в виду ошибки ”несоответствия”) пикселей. Для
борьбы с этой проблемой нужно было устранить мелкие шумы в маске (рис. 9), внутри Invalidated-регионов. Для поиска контуров границ
выбран алгоритм, предложенный Satoshi Suzuki [17]. Он позволяет находить не только сами контуры, но и их иерархию. Поиск происходил
по самым внешним контурам, далее расматривались их потомки. Если
площадь внешнего контура во много раз (мы выбрали α = 140) превосходит площадь внутреннего потомка (Souter /Sinner > α), то внутренность
внутреннего контура рассматривается как шум (его индекс помещается
в invalidatedContours):
∪
Invalidated′ = Invalidated
Si
i∈invalidatedContours
Также всем пикселям, не прошедшим blayer test, запрещалось распространять на этапе минимизации функционала свое неверное значение
смещения. Сделано это путем приравнивания члена V (Dp , Dq ) в фор22
муле 3 нулю для пикселей, являющимися соседями пикселей, не прошедших blayer test. Эти пиксели, скорее всего, на данном этапе получат
неверное значение смещения, однако затем мы все равно переопределим
его, включив их в множество Invalidated.
Далее нужно отличать перекрытые пиксели и ”несоответствия”, вызванные ошибкой в назначении смещений. Hirschmuller [6] нашел оценочный критерий для этого (см. рис. 10). Пусть точка p1 источника
проектируется в точку q1 цели. Точку p1, для которой функция со значениями смещений, определенная на соответствующей эпиполярной линии цели ebm (q1, d) и всегда проектирующая в исходную точку источника p1 (на рисунке ebm (p1, d)), не пересекает функцию смещений Dm
на изображении-цели, будем считать перекрытой, иначе - ”несоответствием”. Можно сказать, что эквивалентно, что в перекрытую точку
не проектируются другие точки цели. Пиксели, являющиеся прямыми
соседями перекрытых, также считаем перекрытыми. Далее необходимо экстраполировать значения для перекрытых пикселей исходя из информации, которой обладают его соседи из ”заднего фона”, для которых
значения назначены корректно. Для пикселей, для которых были допущены ”несоответствия”, необходимо уже интерполировать их значения
значениями с переднего плана.
Для этого ”распространяем” правильно назначенные значения от соседей вдоль основных восьми направлений. Стоит отметить, что априорно задается основное направление. Оно используется для того, чтобы
значения, распространяемые не из основных направлений, не учитывались, если расстояние до источников распротранения слишком велико.
Для всех основных датасетов мы использовали направление left-to-right
(им соответствуют значения up1 и up2 из всех восьми значений):
Dp
median (u )
i pi
′
Dp =
mini (up1 , up2 ,
secminj (upj \ (up1 ∪ up2 )))
если p не в Invalidated множестве
если p - ”несоответствие”
если p перекрыт
23
Рис. 10: Отличие перекрытия и ”несоответствия”
3.2.2. Экстраполяции перекрытых регионов путем голосования
Логичным продолжением описанной идеи является разработка алгоритма по борьбе с перекрытиями не только на основе геометрических
соображений, но и на основе цветовой составляющей. Еще одной идеей
является распространять правильно назаначенные значения не только
от одного пикселя, но и от его соседей. Все эти эвристики получили
дальнейшее обобщение.
Далее используется та же маска неверно определенных смещений
Invalidated′ , что была получена в предыдущем пункте.
Введем функцию вероятности схожести (на самом деле, это скорее
весовая функция) значений смещений двух пикселей l и k как
− EuclDist
α
w(l, k) = e
2 (l,k)
2
− EuclDist γ(I(l),I(k))
Значения I(l), I(k) представляют собой векторы из 3 компонент в формате RGB, EuclDist - функция расстояния в евклидовом пространстве.
Процесс распространения верных смещений разбивается на два этапа:
начальный этап распространения смещений от пикселей, не принадлежащих набору Invalidated′ , и распространения смещений между элементами Invalidated′ . Для начала положим d0 (k) = Dk , т.е. проинициализируем теми же значениями, что и карта смещений, полученная
после этапа минимизации. Вычислим значения функции-носителя на
24
начальном этапе (на основе значений его соседей N (l)):
∑
Supp0 (l, d) =
w(l, k) ∗ 1d0 (k)=d
(18)
k ∈Invalidated,k∈N
/
(l)
Теперь определим основные приближения после начального этапа (смещения и соответствующие им значения вероятностей):
d0 (l) = maxd Supp0 (l, d)
Supp0 (l) = Supp0 (l, d0 (l))
Значения Supp0 (l) характеризуют ”надежность” вычисленных значений
d0 (l). Чем больше Supp0 (l), тем больше вероятность, что пикселю l назначено верное смещение d0 (l). После этого этапа следует итеративный
этап распространения смещений уже между самими перекрытыми пикселями:
∑
i
Supp (l, d) =
S i−1 (k) ∗ w(l, k) ∗ 1di−1 (k)=d
(19)
k∈Invalidated,k∈N (l)
i
N orm (l, d) =
∑
w(l, k) ∗ 1di−1 (k)=d
k∈Invalidated,k∈N (l)
Вторая функцию нужна для нормализации значений функции-носителя.
Начальная сумма значений функции-носителя должна сохраняться на
протяжении всего итеративного процесса. Почти аналогично начальному вычисляются смещения и соответствующие им значения вероятностей после данного этапа:
di (l) = maxd Suppi (l, d)
Suppi (l) =
(20)
Suppi (l, di (l))
N ormi (l, di (l))
Суммирование значений весов для значения d0 (k) = d в формуле
19 реализовано с помощью unordered map. Это удобно с той точки зрения, что получение наибольшего значения в формуле 20 может быть
реализовано за один проход по всем окрестным пикселям.
25
Рис. 11: Карта смещений после первой итерации и в конце метода
Был выбран размер окна на первой начальной итерации 20 × 20 и
12 × 18 на последующих. Стоит отметить, что размер окна непосредственно влияет на число итераций, поскольку зачастую распространение смещений должно происходить на довольно большие расстояния.
Было выбрано число итераций IterN umber = 13, α = 140, γ = 50. Сложность процесса O(W ∗ H ∗ N ), где N - размер окна. Примечательно,
что сложность не зависит от размера вектора возможных смещений.
Однако на датасетах с большим разрешением (например, Middlebury
2014) процесс довольно долгий, поскольку окно должно быть выбрано
довольно большим, чтобы верные смещения должны быть распространены до всех перекрытых регионов.
3.3. Адаптивные веса на основе градиента изображения
В MGM член V (d, d′ ) в формуле 9 выглядит следующим образом:
0
если d = d′
(21)
V (d, d′ ) = P 1 если | d − d′ |= 1
P 2 иначе
Мы попробовали использовать технику адаптивных весов P 1 и P 2, в зависимости от модуля градиента относительно точек p и p−x (используя
26
идею [2]):
Pi =
PiO
, i = 0..1
1 + |I(p) − I(p − x)|/WPi
(22)
p−x - непосредственный сосед p, согласно MGM (9). Параметр WPi контролирует возможное уменьшение Pi . Данная модификация использует
наблюдение, что достаточные изменения градиента являются признаком возможного ”скачка” в глубинах, вызванного границей объекта.
Однако, как показали результаты экспериментов (см. раздел ”Результаты экспериментов”), данная эвристика плохо сработала с MGM,
возможно, потому что MGM уже на своем уровне хорошо ”штрафует”
данные скачки (большая стоимость назначения такому ”соседу” того же
смещения) путем рассмотрения перпендикулярных направлений.
27
4. Результаты экспериментов
Для сравнения результатов, полученных применением той или иной
части алгоритма, были стандартизированы применяемые алгоритмом
параметры. Так, мы положили P 1 = 80, P 2 = 320 в формуле 21 (как это
рекомендовано авторами MGM в общем случае), а значения функции
стоимости перемасштабировали к [0; 255].
Были использованы две функции оценки ошибок - bad 1.0 (пиксели,
для которых отклонение смещения по сравнению с ground truth не более пикселя) и avgerr (среднее отклонение от ground truth в пикселях).
Для тестирования был выбран датасет Middlebury 2014 в разрешении
1/2 от максимального, так как это наболее близко отражает наш дальнейший эксперимент с лицами людей (стоит обратить внимание, что
сам университет Middlebury использует в таком случае немного другую
метрику, сначала перемасштабируя результат к полному разрешению и
уже затем сравнивая его с ground truth в полном разрешении). Сравнение результатов производится с результатами алгоритма, полученными
с помощью функции стоимости census без использования сторонних алгоритмов уточнения результата (например, медианного фильтра), если
явно не указано обратное.
Стоит отметить, что новая функция стоимости MIC превосходит в
точности как census, так и MI. Результаты экспериментов представлены
в таблицах 1, 2. Наша эвристика о том, что данная функция сочетает в
себе преимущества обеих функций стоимости, оказалась верна на всех
наборах изображений, что говорит об устойчивости MIC по сравнению с
вышеназванными функциями. График, демонстрирующий зависимость
точности в терминах bad 1.0 (слева) и avgerr (справа) от постоянной
WM I при использовани функции стоимости MIC приведен на рисунке
12.
Функция стоимости CNN оказалась намного точнее census, MI, MIC.
Однако в следствие большого объема вычислений и, на данный момент,
отсутствия реализации на GPU, подходит лишь для датасетов, требующих высокой точности, но не требующих большой скорости вычисле28
Рис. 12: Графики, демонстрирующие зависимость точности в терминах
bad 1.0 (слева) и avgerr (справа) от постоянной WM I при использовани
функции стоимости MIC
ний - например, для реконструкции лиц людей. Например, в среднем
на одной из стереопар из упомянутого датасета Middlebury 2014 в разрешении 1/2 на процессоре Intel Core i7 3630QM работа нейронной сети
занимает 910 секунд. В таблице 3 приведены результаты при использовании CNN и линейной экстраполяции (колонка ”Наш метод”, это
наш метод, показавший наилучшие результаты) в ”официальной” метрике Middlebury с перемасштабированием в полное разрешение, которые можно сравнивать с результатами на официальном сайте Middlebury.
Также для сравнения приводятся результаты, полученные с помощью
лучшего для каждого датасета метода, опубликованного в базе Middlebury,
а также использования SGM вместо MGM. В общем рейтинге Middlebury
наш метод занимает пятое место при использовании всего изображения
как маски и восьмое место при рассмотрении лишь неперекрытых регионов.
Экстраполяция перекрытых регионов, в свою очередь, также продемонстрировала прирост точности на всем изображении, и многократный прирост на перекрытых регионах. Сюрпризом стал тот факт, что
линейная экстраполяция оказалась точнее интерполяции на основе голосования. Это может объясняться тем, что в большинстве случае по29
Рис. 13: Карта смещений с использованием линейной (слева) и ”голосующей” экстраполяции (справа)
верхность предмета параллельна плоскости камеры, а предметы находятся на значительном расстоянии, что позволяет использовать геометрические соображения, например линейную экстраполяцию. Учитывая,
что сложность линейной экстраполяции всего O(W ×H), можно сказать,
что ее использование является рекомендуемым. Однако если взглянуть
на сравнение карт смещений при использовании предложенных методик (рис. 13, 14), можно заметить, что в случае ”голосующего” метода
назначенные смещения менее ”линейны” и более осмыслены в местах,
где плоскость объекта не является параллельной камере. Сравнение результатов приведено в таблицах 4, 5.
В таблицах 6 и 7 приведены обобщенные результаты совместного
использования новых функция стоимости и линейной экстраполяции.
Как уже было сказано, использование динамических весов P 1 и P 2
вместе с MGM не оправдало себя. В таблицах 8 и 9 приведены результаты с использованием двух значений констант WPi , дающие наилучшие
результаты. На графиках 15 изображена зависимость точности в терминах bad 1.0 (слева) и avgerr (справа) от постоянной WPi при использовани адаптивных весов. Можно видеть, что при стремлении постоянной
к бесконечности, ошибки стабилизируются.
30
Таблица 1: Точность в терминах ошибки bad 1.0 (отклонение не более
пикселя), полученная при использовании функции стоимости Census,
Mutual Information and Census (с весами wM I = 0.4 и wM I = 0.5), Mutual
Information, CNN на датасете Middlebury. При измерениях не использовались никакие алгоритмы уточнения результата(например, борьба с
перекрытиями)
Датасет
Census, MIC 0.4, MIC 0.5,
%
%
%
Adirondack
Jadeplant
Motorcycle
Piano
Pipes
Playroom
Playtable
Recycle
Shelves
75.26
61.99
78.75
74.92
71.74
62.13
45.01
76.72
43.12
77.96
62.88
79.04
75.03
72.45
64.84
47.88
79.36
45.62
Взв. среднее
65.98
67.68
77.72
62.70
78.76
74.53
72.28
64.55
48.25
79.29
45.89
67.56
MI,
%
CNN,
%
65.17
51.61
64.68
54.23
63.29
51.56
48.08
63.98
39.97
86.02
63.90
84.90
78.52
78.25
70.08
72.90
82.87
57.18
56.19 75.27
Таблица 2: Ошибка avgerr (среднее отклонение от gt в пикселях),
полученная при использовании функции стоимости Census, Mutual
Information and Census (с весами wM I = 0.4 и wM I = 0.5), Mutual
Information, CNN на датасете Middlebury. При измерениях не использовались никакие алгоритмы уточнения результата(например, борьба с
перекрытиями
Датасет
Census, MIC 0.4, MIC 0.5,
px
px
px
MI,
px
CNN,
px
Adirondack
Jadeplant
Motorcycle
Piano
Pipes
Playroom
Playtable
Recycle
Shelves
3.91
21.24
4.92
4.24
9.23
10.55
10.21
3.24
7.25
3.42
18.94
4.94
3.81
8.97
9.56
9.00
2.94
5.42
3.40
18.79
4.96
3.82
9.03
9.53
8.82
2.92
5.26
2.12 3.18
21.56 20.36
5.67 4.56
4.78 3.66
10.01 8.11
10.20 9.65
7.61 5.82
3.74 2.76
5.32 5.82
Взв. среднее
8.17
7.33
7.28
7.77
31
5.82
Рис. 14: Карта смещений с использованием линейной (слева) и ”голосующей” экстраполяции (справа)
Рис. 15: Графики, демонстрирующие зависимость точности в терминах
bad 1.0 (слева) и avgerr (справа) от постоянной WPi при использовани
адаптивных весов
32
Таблица 3: ”Официальная” метрика ошибки Middlebury bad 1.0 (с масштабированием к полному разрешению), полученная с помощью функции стоимости CNN и линейной экстраполяции (колонка ”Наш метод”). Также для сравнения приводятся результаты, полученные с помощью лучшего для каждого датасета метода, опубликованного в базе
Middlebury, а также применения SGM вместо MGM.
Все
изображение, %
Не
перекрытые регионы, %
Наш м-д Лучший SGM
Наш м-д Лучший SGM
Датасет
Adirondack
Jadeplant
Motorcycle
Piano
Pipes
Playroom
Playtable
Recycle
Shelves
79.18
59.44
82.65
73.20
75.76
58.74
66.05
75.98
49.92
83.60
60.30
82.80
75.90
77.70
66.30
74.40
78.20
57.70
78.88
59.28
82.30
72.76
75.29
58.37
65.71
75.55
49.62
82.65
74.03
88.09
78.20
88.11
67.39
70.68
79.72
51.59
89.0
76.00
90.34
80.90
91.16
74.80
81.40
83.90
61.30
82.33
73.66
88.00
77.80
87.83
67.06
70.45
79.52
51.18
Взв. среднее
69.36
73.00
69.01
75.83
80.70
75.54
Таблица 4: Точность в терминах ошибки bad 1.0 (отклонение не более
пикселя), полученная на датасете Middlebury с помощью линейной экстраполяции и ”голосующего” метода экстраполяции
Датасет
Все изобр., %
Без
Перекрытые рег., %
Лин.
Голос. Без
Лин.
Голос.
79.16
65.44
84.05
77.26
75.50
64.13
46.44
80.10
46.90
78.17
66.15
82.65
76.60
75.62
63.72
44.51
79.74
46.16
56.45
20.75
54.28
32.80
25.44
15.92
17.56
42.14
36.45
44.75
23.64
36.40
25.92
25.19
13.28
13.77
31.59
29.28
07.06 30.81
25.94
Adirondack
Jadeplant
Motorcycle
Piano
Pipes
Playroom
Playtable
Recycle
Shelves
75.26
61.99
78.75
74.92
71.74
62.13
45.01
76.72
43.12
Взв. среднее
65.98 69.30 68.66
33
07.11
05.85
09.17
10.52
07.07
06.66
05.59
05.21
07.94
Таблица 5: Ошибка avgerr (среднее отклонение от gt в пикселях), полученная на датасете Middlebury с помощью линейной экстраполяции
и ”голосующего” метода экстраполяции
Датасет
Все изобр., px
Без
Adirondack
Jadeplant
Motorcycle
Piano
Pipes
Playroom
Playtable
Recycle
Shelves
Взв. среднее
Перекрытые рег., px
Лин. Голос. Без
Лин.
Голос.
3.91 1.93
21.24 15.25
4.92 2.38
4.24 2.19
9.23 5.17
10.55 5.09
10.21 7.37
3.24 1.38
7.25 5.67
2.16
16.88
2.56
2.59
6.00
3.64
7.80
1.76
6.28
27.60
63.82
31.60
25.80
36.89
54.77
33.24
25.60
16.04
6.44
44.96
10.16
6.16
16.92
19.12
11.77
4.40
6.29
9.85
50.96
12.80
5.91
19.57
11.49
13.40
9.47
9.37
8.17 5.05
5.41
39.98
18.46
20.45
Таблица 6: Суммарная таблица демонстрирующая точность в терминах
ошибки bad 1.0 (отклонение менее 1px) различных комбинаций предложенных методов по отношению к начальному применению лишь функции стоимости census (используемый метод экстраполяции - линейный)
Census MIC 0.4 CNN Census+ MIC 0.4+ CNN+
only,
only,
only, occl. ref., occl. ref., occl. ref.,
Датасет
%
%
%
%
%
%
Adirondack
75.26
77.96
86.02
79.16
81.06
90.21
Jadeplant
61.99
62.88
63.90
65.44
65.97
67.30
Motorcycle
78.75
79.04
84.90
84.05
84.10
90.01
Piano
74.92
75.03
78.52
77.26
77.23
80.68
Pipes
71.74
72.45
78.25
75.50
76.24
81.58
Playroom
62.13
64.84
70.08
64.13
66.14
71.57
Playtable
45.01
47.88
72.90
46.44
48.40
75.41
Recycle
76.72
79.36
82.87
80.10
83.04
86.46
Shelves
43.12
45.62
57.18
46.90
47.91
60.37
Взв. среднее 65.98
67.68 75.27
69.30
70.52
78.54
34
Таблица 7: Суммарная таблица демонстрирующая ошибку avgerr (среднее отклонение от gt в пикселях) различных комбинаций предложенных
методов по отношению к начальному применению лишь функции стоимости census (используемый метод экстраполяции(occl. ref) - линейный)
Датасет
Census MIC 0.4 CNN Census+ MIC 0.4+ CNN+
only,
only,
only, occl. ref., occl. ref., occl. ref.,
px
px
px
px
px
px
Adirondack
Jadeplant
Motorcycle
Piano
Pipes
Playroom
Playtable
Recycle
Shelves
3.91
21.24
4.92
4.24
9.23
10.55
10.21
3.24
7.25
3.42
18.94
4.94
3.81
8.97
9.56
9.00
2.94
5.42
3.18
20.36
4.56
3.66
8.11
9.65
5.82
2.76
5.82
1.93
15.25
2.38
2.19
5.17
5.09
7.37
1.38
5.67
1.55
14.94
2.32
1.99
4.83
3.29
6.74
1.28
4.73
1.23
15.45
2.08
1.68
4.51
3.20
2.92
1.20
4.62
Взв. среднее
8.17
7.33
7.00
5.05
4.54
4.04
Таблица 8: Точность в терминах ошибки bad 1.0 (отклонение от gt менее пикселя) , полученная на датасете Middlebury при использовании
адаптивных весов P1 и P2 на основе градиента, используя WP2 = 70 и
50
Датасет
Без
Dep. weights 70, Dep. weights 50,
использования, %
%
%
Adirondack
Jadeplant
Motorcycle
Piano
Pipes
Playroom
Playtable
Recycle
Shelves
75.26
61.99
78.75
74.92
71.74
62.13
45.01
76.72
43.12
75.13
62.19
78.78
75.01
71.81
62.13
44.67
76.81
43.16
75.07
62.22
78.73
75.03
71.80
62.09
44.51
76.83
43.15
Взв. среднее
65.98
65.99
65.96
35
Таблица 9: Ошибка avgerr (среднее отклонение от gt в пикселях), полученная на датасете Middlebury при использовании адаптивных весов
P1 и P2 на основе градиента, используя WP2 = 70 и 50
Датасет
Без
Dep. weights 70, Dep. weights 50,
использования, px
px
px
Adirondack
Jadeplant
Motorcycle
Piano
Pipes
Playroom
Playtable
Recycle
Shelves
3.91
21.24
4.92
4.24
9.23
10.55
10.21
3.24
7.25
3.93
21.15
4.89
4.26
9.17
10.54
10.32
3.23
7.27
3.94
21.15
4.90
4.26
9.17
10.54
10.38
3.23
7.28
Взв. среднее
8.17
8.17
8.18
36
5. Применение стереометода на изображениях лиц людей
Как было выяснено в ходе работы, не существует общедоступного
стерео-датасета с хорошо откалиброванными камерами, главным объектом съемки в котором были бы лица людей. Помимо этого, встает
вопрос, как измерять качество применения используемого алгоритма
при отсутствии ground truth.
В следствии данных проблем, было решено прибегнуть к использованию плохооткалиброванного датасета, предоставленного [8] Бирмингемским университетом. Погрешности ректификации после калибровки
камер оказались намного больше, нежели погрешности при проведении
планарной ректификации с неизвестными параметрами камер с помощью метода [12]. Также алгоритм предоставил оценку внутренних параметров камер, необходимых для соблюдения масштаба между осями
при построении 3D модели.
Основной проблемой при построении карты глубин человеческого
лица на основе двух камер служат перекрытия. В следствии этого был
использован описанный ваше алгоритм для решения этой проблемы. В
качестве основного направления экстраполяции было выбрано bottomto-top, так как оно точнее всего применимо для экстраполяции на наборе плоскостей, составляющих форму лица. Перекрытые участки, экстраполяция которых была проведена на основе слишком удаленных регионов, были выброшены из рассмотрения и не участвовали в 3D проектировании (сравнение полученных результатов с применением экстраполяции и без приведено на рисунке 16).
При проектировании в 3D использовались оба вида (и источник, и
цель). Сделано это с помощью проектирования обоих видов на одну
расширенную плоскость источника. Каждой точке такой плоскости может соответствовать несколько точек цели, что выражается в том, что
каждой такой точке может соответствовать несколько Z-координат. На
рисунке 17 изображена проекция карты смещений правого изображения
на плоскость левого (вид левого), а также совместное распределение то37
Рис. 16: Сравнение полученных результатов с применением экстраполяции (справа) и без (слева), функция стоимости census
чек в пространстве, где красным обозначены точки левого вида, синим
- правого.
Дальнейшее проектирование происходило по следующим формулам
для точки P (сначала введем необходимые обозначения для матриц
внутренних параметров calibl и calibr соответственно левой и правой
камер):
fxr 0 cxr
calibr = 0 fyr cyr ,
0 0 1
Px
v = calibl ∗ Py ,
fxl 0 cxl
calibl = 0 fyl cyl ,
0 0 1
1
где fxl , fxr - фокусные расстояния по оси X проективной плоскости соответственно левой и правой камер (аналогично для оси Y , учитывая,
что сенсорные элементы камер могут быть не квадратными); cxl , cxr главные точки левой и правой камер соответственно по оси X (аналогично для оси Y ).
Тогда координаты (x, y, z) точки P в пространстве будут:
z=
fxr
Px + Pdisp − (calibr ∗ v)0
38
x = z ∗ v0
y = z ∗ v1
Рис. 17: Проекция карты смещений правого изображения на плоскость
левого и совместное распределение точек в пространстве
Экспорт модели происходит в формате PLY с заданием цвета для вершин. Помимо этого, было триангулировано облако точек по следующей
схеме (результатом служил меш). Рассмотрим четыре пикселя-соседа в
шести возможных конфигурациях (рис. 18).
Рис. 18: Возможные конфигурации соседних пикселей
Когда два соседних пикселя имеют глубину, отличающуюся более
чем на заданную величину, наблюдается разрыв глубин. Эта заданная величина задается заранее, как минимально возможная разница
глубин, считающаяся разрывом поверхностей. Если разрыв есть, треугольник не должен быть создан. Таким образом, для четырех соседних точек рассматривались лишь те, между которыми разрыва нет.
Если между всеми четырьмя из них нет разрывов, будет создано два
треугольника, что изображено на первых двух вариантах рисунка 18.
Причем из этих двух вариантов будет выбран тот, в котором разница между глубинами соединенных диагональных точек наименьшая. В
39
Рис. 19: Облако точек и примененная к нему триангуляция
противном случае, если есть три точки, между которыми разрыва нет,
будет создан один из четырех последних треугольников на рисунке 18.
На рисунке 19 приведено сравнение результатов в виде облака точек и
примененной к нему триангуляции.
В дальнейшем полученные полигональные сетки были импортированы в среду MeshLab для лучшей визуализации результатов. Были проверены две функции стоимости - census и MIC. Использование ССНС
было оставлено для дальнешей работы, поскольку для достижения наилучших результатов стоит обучить ССНС непосредственно на изображениях лиц людей, что в отсутствие ground truth, не представляется
возможным. На данном этапе были проанализированы только визуальные характеристики реконструированных поверхностей (более формальным результатам посвящен следующий пункт работы). Использование функции стоимости MIC продемонстрировало бо́ льшую визуальную устойчивость к шумам (неформально, наличие шумов прежде всего
характеризуется метрикой avgerr, нежели bad 1.0, что было выяснено в
следующей части работы), нежели census (см. рис. 20, 21).
Многие авторы, рассматривая в качестве стереопары изображения
лиц людей, вводят дополнительные ограничения на гладкость, чтобы
избежать шумов на источнике или цели. Например, что глубина двух
соседних пикселей не должна отличаться более чем на один пиксель.
40
Рис. 20: Рисунок демонстриует бо́ льшую визуальную зашумленность
результата при использовании функции стоимости census (слева), нежели MIC (справа) , без триангуляции
Рис. 21: Рисунок демонстриует бо́ льшую визуальную зашумленность
результата при использовании функции стоимости census (слева), нежели MIC (справа) , с триангуляцией
Это ограничение можно имитировать путем правильного выбора параметров P 1 и P 2 в формуле 21. Первый из этих параметров контролирует стоимость ”прыжка” в смещении на единицу, тогда как второй стоимость ”прыжка” произвольной глубины. Таким образом, сделав P 1
малым относительно функции стоимости, а P 2 - относительно большим,
можно контролировать гладкость решения. При выборе двух ракурсов
камер, как у нас, гладкость может теряться лишь рядом с участками
носа и ушей.
Мы начали с использования P 1=160 и P 2=320. Затем значение P 1
41
Рис. 22: Рисунок демонстриует бо́ льшие разрывы реконструированной
поверхности в области носа при использовании P 1=160 и P 2=320 (слева), нежели P 1=80 и P 2=320 (справа)
было уменьшено до 80. Можно заметить, что эвристика полностью работает: многие участки лица, имеющие разрывы при изначальном выборе коэффициентов, стали менее разрывны. Также заметные улучшения
наблюдаются при увеличении значения P 2 до 520. Сравнения результатов приведены на рисунках 22 и 23.
5.1. Применение стереометода на изображениях лиц
людей с известной 3D моделью
В конце работы нами все же был получен один набор изображений
(который не является открытым), содержащий ground truth 3D модель
лица и полученный с помощью хорошо откалиброванных камер [5]. Мы
спроектировали глубины точек 3D модели на левую и правую плоскости камер, предварительно ректифицировав изображения и, соответственно, получив новые параметры камер. Также была построена карта
смещений и карта перекрытий, как это сделано во всех классических
датасетах.
По итогам анализа полученных результатов, оказалось, что функция Census оказалась точнее MIC по метрике bad 1.0 (отклонение не
более пикселя, табл. 10), однако по метрике avgerr (которая демонстри42
Рис. 23: Рисунок демонстриует бо́ льшие разрывы реконструированной
поверхности в области носа при использовании P 1=80 и P 2=320 (слева), нежели P 1=80 и P 2=520 (справа)
рует зашумленность и более заметна глазу при просмотре 3D модели,
таблица 11) MIC все же оказалась точнее. Функция стоимости CNN в
экспериментах не участвовала, так как отсутствовало достаточное число дополнительных изображений для тренировки нейронной сети.
Наши предыдущие рассуждение о влиянии выбора весов P 1 и P 2
на точность подтвердились в обеих метриках. Неожиданностью стало
то, что несмотря на зашумленность модели без использования экстраполяции, точность при использовании экстраполяции (как линейной,
так и голосующей) в терминах bad 1.0 метрики оказалась ниже. Это
можно связать с низким перепадом в глубинах точек модели лиц, тогда как экстраполяция демонстрирует лучшие результаты, когда такие
перепады существенны.
43
Таблица 10: Результаты применения (по метрике отклонение не более
пикселя) метода с различными параметрами на наборе изображений,
содержащем лицо человека
Выбранные
параметры
Все изобр., %
Перекрытые
регионы, %
Ф-я
P1
стоимости.
P2
Без
обр.
Лин. Голос.
Без
Лин. Голос.
обр.
MIC
MIC
MIC
Census
Census
Census
320
320
520
320
320
520
69.83
75.86
76.43
71.75
76.55
77.82
68.85
74.71
74.88
71.04
75.86
76.73
5.56
6.00
5.95
4.39
4.80
5.39
160
80
80
160
80
80
66.71
72.72
73.40
69.03
74.19
75.25
4.74
4.96
4.78
4.42
4.94
4.82
4.11
2.94
3.16
3.14
2.84
3.21
Таблица 11: Результаты применения (по метрике avgerr) метода с различными параметрами на наборе изображений, содержащем лицо человека
Выбранные
параметры
Ф-я
P1
стоимости
MIC
MIC
MIC
Census
Census
Census
160
80
80
160
80
80
Все изобр., px Неперекрытые регионы, px
P2
No
occl.
No
occl.
320
320
520
320
320
520
4.43
3.60
3.71
7.71
5.56
4.24
2.97
2.30
2.28
5.56
3.59
2.65
44
Заключение
В ходе работы были выполнены следующие задачи:
1. Адаптация MGM [4] под библиотеку OpenCV
2. Разработка и реализация алгоритма оценки стоимостей на основе
синтеза алгоритмов Census и Mutual Information [6], дабы добиться устойчивости к сложным радиометрическим изменениям
на изображениях
3. Разработка и реализация функции стоимостей на основе сиамких
сверточных нейронных сетей
4. Разработка и реализация алгоритма поиска перекрытий и устранение их проявлений (а вместе с тем и повышения точности самого
алгоритма)
5. Использование адаптивных весов на основе градиента
6. Проверка полученного алгоритма на наборах изображений Middlebury,
а также на наборах изображений лиц людей и анализ полученных
результатов
В результате нашей работы было показано, что предложенные функции стоимости в сочетании с MGM устойчиво работают на датасете
Middlebury (в метриках bad 1.0 и avgerr), представляющем трудности
для всех стерео-алгоритмов, по точности превосходя стандартную для
MGM функцию стоимости census. Функция стоимости на основе ССНС
демонстрирует наилучшую точность, однако в следствие большого объема вычислений и отсутствия реализации на GPU, подходит лишь для
датасетов, требующих высокой точности, но не требующих большой
скорости вычислений. Линейная экстраполяция перекрытий продемонстрировала многократный прирост точности в перекрытых регионах,
что в сочетании со сложностью ее применения O(W ∗ H) делает ее использование рекомендуемым.
45
Применение предложенных алгоритмом на изображениях лиц людей показало, что результаты, полученные при использовании различных функций стоимости на данном наборе изображений, различны для
метрик avgerr и bad 1.0. Выбор той или иной функции стоимости в данном случае должен зависеть от метрики, в которой необходимо получить наилучший результат. Использование экстраполяции на данном
датасете не оправдало себя. В качестве дальнейшей работы оставлено обучение и применение новой функции стоимости CNN на наборах
изображений, содержащих лица людей.
46
Список литературы
[1] 3D face recognition using passive stereo vision / N. Uchida,
T. Shibahara, T. Aoki et al. // Image Processing, 2005. ICIP 2005.
IEEE International Conference on. –– Vol. 2. –– 2005. –– Sept. –– P. II–
950–3.
[2] Banz
C.,
Pirsch
P.,
Blume
H.
EVALUATION
OF
PENALTY
FUNCTIONS
FOR
SEMI-GLOBAL
MATCHING
COST
AGGREGATION
//
ISPRS. ––
2012. ––
Vol. XXXIX-B3. ––
P. 1–6. ––
URL: http://www.
int-arch-photogramm-remote-sens-spatial-inf-sci.net/
XXXIX-B3/1/2012/.
[3] Bleyer Michael, Gelautz Margrit. Simple but effective tree structures
for dynamic programming-based stereo matching // In VISAPP. ––
2008. –– P. 415–422.
[4] Facciolo Gabriele, de Franchis Carlo, Meinhardt Enric. MGM: A
Significantly More Global Matching for Stereovision. –– 2015. ––
http://dev.ipol.im/ facciolo/mgm/.
[5] High-Quality Single-Shot Capture of Facial Geometry / Thabo Beeler,
Bernd Bickel, Paul Beardsley et al. // ACM Trans. on Graphics (Proc.
SIGGRAPH). –– 2010. –– Vol. 29, no. 3. –– P. 40:1–40:9.
[6] Hirschmuller Heiko. Stereo Processing by Semiglobal Matching and
Mutual Information // IEEE Trans. Pattern Anal. Mach. Intell. ––
2008. –– . –– Vol. 30, no. 2. –– P. 328–341.
[7] Inamoto Naho, Saito Hideo. Intermediate view generation of soccer
scene from multiple videos // Proceedings - International Conference
on Pattern Recognition. –– 2 edition. –– 2002. –– Vol. 16. –– P. 713–716.
[8] Jiang Xiaoyue, Schofield Andrew J., Wyatt Jeremy L. Computer Vision
– ECCV 2010: September 5-11, 2010, Proceedings, Part IV. –– 2010. ––
P. 58–71. –– ISBN: 978-3-642-15561-1.
47
[9] Kolmogorov V., Zabih R. Computing visual correspondence with
occlusions using graph cuts // Computer Vision, 2001. ICCV 2001.
Proceedings. Eighth IEEE International Conference on. –– Vol. 2. ––
2001. –– P. 508–515 vol.2.
[10] Li Y., Huttenlocher D. P. Learning for stereo vision using the
structured support vector machine // Computer Vision and Pattern
Recognition, 2008. CVPR 2008. IEEE Conference on. –– 2008. ––
June. –– P. 1–8.
[11] Min D., Sohn K. Cost Aggregation and Occlusion Handling With WLS
in Stereo Matching // IEEE Transactions on Image Processing. ––
2008. –– Aug. –– Vol. 17, no. 8. –– P. 1431–1442.
[12] Monasse Pascal. Quasi-Euclidean Epipolar Rectification // Image
Processing On Line. –– 2011. –– Vol. 1.
[13] Pattern Recognition: 36th German Conference, GCPR 2014 /
Daniel Scharstein, Heiko Hirschmüller, York Kitajima et al. / Ed. by
Xiaoyi Jiang, Joachim Hornegger, Reinhard Koch. –– Cham : Springer
International Publishing, 2014. –– P. 31–42. –– ISBN: 978-3-319-117522.
[14] Pattern Recognition: 36th German Conference, GCPR 2014, Münster,
Germany, September 2-5, 2014, Proceedings / Amnon Drory,
Carsten Haubold, Shai Avidan, Fred A. Hamprecht / Ed. by
Xiaoyi Jiang, Joachim Hornegger, Reinhard Koch. –– Cham : Springer
International Publishing, 2014. –– P. 43–53. –– ISBN: 978-3-319-117522. –– URL: http://dx.doi.org/10.1007/978-3-319-11752-2_4.
[15] Pearl Judea. Probabilistic Reasoning in Intelligent Systems: Networks
of Plausible Inference. –– San Francisco, CA, USA : Morgan Kaufmann
Publishers Inc., 1988. –– ISBN: 0-934613-73-7.
[16] Scharstein D., Pal C. Learning Conditional Random Fields for
Stereo // Computer Vision and Pattern Recognition, 2007. CVPR ’07.
IEEE Conference on. –– 2007. –– June. –– P. 1–8.
48
[17] Suzuki Satoshi. Topological Structural Analysis of Digitized
Binary Images by Border Following. –– 1985. –– Vol. 30 (Issue
1) of Computer Vision, Graphics, and Image Processing. ––
http://www.sciencedirect.com/science/article/pii/0734189X85900167.
[18] Tieleman Tijmen, Hinton Geoffrey. Lecture 6.5-rmsprop: Divide the
gradient by a running average of its recent magnitude // COURSERA:
Neural Networks for Machine Learning. –– 2012. –– Vol. 4. –– P. 2.
[19] Zbontar Jure, LeCun Yann. Stereo Matching by Training a
Convolutional Neural Network to Compare Image Patches // CoRR. ––
2015. –– Vol. abs/1510.05970. –– URL: http://arxiv.org/abs/1510.
05970.
[20] Zhang L., Seitz S. M. Estimating Optimal Parameters for MRF Stereo
from a Single Image Pair // IEEE Transactions on Pattern Analysis
and Machine Intelligence. –– 2007. –– Feb. –– Vol. 29, no. 2. –– P. 331–
342.
[21] Zhu Ke, d’Angelo Pablo, Butenuth Matthias. EVALUATION OF
STEREO MATCHING COSTS ON CLOSE RANGE, AERIAL AND
SATELLITE IMAGES // ICPRAM 2012. –– 2012. –– P. 379–385.
49
Отзывы:
Авторизуйтесь, чтобы оставить отзыв