25 июля 2014
Машинное зрение в 3D: технологии, алгоритмы, возможности. Часть 5. Использование дополнительных данных о природе объекта при 3D-реконструкции
А.Ю. Соколов,
Начальник отдела перспективных разработок
компании Вокорд
Д.Н. Заварикин
Президент ГК Вокорд
Выше мы рассмотрели алгоритмы реконструкции трехмерной сцены с помощью камер стереозрения. Для этого мы не использовали никаких дополнительных знаний относительно природы самих 3D-объектов.
Однако мир устроен так, что часто об объекте реконструкции можно установить дополнительную информацию. Эта информация открывает новые возможности для восстановления формы объекта.
Первой группой алгоритмов, о которой мы поговорим в этом разделе, будут алгоритмы, использующие статистические знания о природе объектов.
Рассмотрим эту группу на примере восстановления формы лица человека.
Исследователь может заранее накопить большую базу объектов реконструкции заданного класса, т.е. лиц (европейской, азиатской расы, разных полов, возрастов и т.д.), и проанализировать все возможные комбинации их форм, а затем учитывать эту информацию при построении модели лица.
В этом случае задача построения трехмерного образа будет решаться комплексно, с учетом двух критериев одновременно:
- Решение задачи триангуляции дает предсказание координат точки. Это значение может содержать определенные ошибки, например, связанные с тем, что условия освещения вносят погрешность при поиске сопряженных точек, из-за которой появляются ошибки в виде «выбросов» на поверхности. Кроме того, часть лица может быть закрыта артефактами (усами, очками, платком и т.д.) или быть не видна при заданном ракурсе (лицо повернуто).
- Все точки объекта удовлетворяют некоторым статистическим данным: если утрировать, лицо не может быть квадратным, а нос не может быть расположен на лбу. На практике, конечно, устанавливаются более тонкие взаимосвязи между элементами формы.
Учет одновременно нескольких факторов повышает надежность алгоритма и без сомнений является задачей уже другого уровня сложности, чем просто трехмерная реконструкция с помощью триангуляции!
В компании Вокорд был разработан уникальный алгоритм реконструкции лица человека. На рисунке 19 показаны точки обычной реконструкции и построенной конечной модели с учетом статистического знания о форме лица.

Рис.19 Зеленым выделены точки лица модели, а серым – точки только трехмерной реконструкции.
На рис.20 показа подвижная статистическая модель лица, разработанная в компании Вокорд – в ней более 11 тыс. узлов.

Рис.20. Статистическая подвижная модель лица человека, разработанная в компании Вокорд
Изменяя параметры модели, мы можем «заставить» ее улыбаться или придать другие выражения, но только разрешенные с точки зрения статистики (рис.21).

Рис.21. Статистически разрешенная деформация модели на примере улыбки
Теперь рассмотрим второй набор алгоритмов для объектов, обладающих симметрией относительно некоторой плоскости (такую симметрию называют билатеральной).
Типичный пример объекта с билатеральной симметрией – автомобиль. С некоторым приближением можно считать лицо человека тоже симметричным относительно центральной плоскости, если не учитывать отклонения от этой симметрии. Антропологи, разумеются, хорошо знают, что лицо не является полностью симметричным, поэтому наше утверждение - лишь приближение к действительности.
С математической точки зрения, если плоскость симметрии известна (а оказывается, ее можно определить), то задача трехмерной реконструкции может быть выполнена даже с помощью одной камеры! Подробности алгоритма можно изучить, например, в работе [15].
Эта задача становится эквивалентной задаче триангуляции обычного компьютерного зрения, которую мы рассмотрели выше с помощью двух камер – одна из камер будет исходной, а вторая – расположена симметрично первой относительно плоскости симметрии (рис.22).
Необходимо помнить, что данная задача решается только лишь с точностью до абсолютного масштаба объекта реконструкции.
На рис. 23 показаны приведенные в статье [15] примеры реконструкции здания.

Рис. 22 Реконструкция точек, симметричных относительно плоскости

Рис. 23 Исходные изображения одной камеры и восстановленные карты глубин.
Наконец, рассмотрим третью группу методов, в которых реконструкция выполняется для неподвижного объекта с помощью одной камеры, перемещаемой в пространстве. Такая задача называется также восстановлением 3D-формы по движению (можно считать, что объект неподвижен, и при этом движется камера, или наоборот: камера неподвижна, а объект перемещается).
Сложность данной задачи заключается в необходимости разделения сцены на объекты, которые не меняют форму. В противном случае могут возникнуть ошибки восстановления из–за перемещения объектов относительно друга друга.
Оказывается, такая задача тоже решается с точностью до масштаба. Основные этапы решения:
- Сегментация объектов.
- Поиск сопряженных точек.
- Вычисления векторов перемещения и матрицы поворотов по сопряженным точкам между двумя положениями камеры.
- Реконструкция сцены, в которых камера в разных положениях рассматривается как две камеры с разными матрицами проекции.
На 4-ом этапе мы предполагаем, что внутренние параметры камеры нам известны и не меняются (внутренняя калибровка). Внешние же параметры (то есть положение двух камер или два положения одной камеры в разные моменты времени) вычисляются по тем же сопряженным точкам реконструкции, которые потом сами и будут восстанавливаться!
Единственным ограничением, как и в предыдущей группе алгоритмов, будет то, что задачу невозможно решить с точностью до абсолютного масштаба. Это означает, что реконструированная сцена будет иметь правильную форму, но неопределенный масштаб. Как правило, при решении вектор перемещения между положениями камер принимается равным вектору единичной длины.
На рисунках 24-26 показаны два изображения лица и реконструированное алгоритмом VOCORD поле точек, а также построенная статистическая модель лица.
Следует также отметить, что реконструкция с помощью одной камеры значительно – это более сложная задача, чем реконструкция по стереокамерам. Связано это с тем, что калибровка камер специальными алгоритмами более точна, чем калибровка «на лету» по сопряженным точкам. Калибруясь по шаблону, мы заранее знаем точные координаты точек шаблона. Калибровочный объект должен занимать значительную долю кадра по площади, что не всегда выполняется при калибровке по точкам реконструируемого в 3D объекта. Помимо этого необходимо, чтобы между двумя снимками объект не изменял формы. Это условие может нарушаться. Например, человек может улыбнуться. В этом случае лицо изменит форму, и в метод закрадется ошибка, которую нужно будет учитывать отдельно.
Рис. 24. Исходные кадры, снятые одной камерой под разными углами зрения

Рис. 25. Реконструированное облако точек алгоритмом, разработанным компанией Вокорд

Рис. 26. Реконструированная 3D модель лица с текстурой алгоритмом, разработанным компанией Вокорд.
Литература.
[15] Kevin Koser, Christopher Zach, Marc Pollefeys Dense 3D Reconstruction of Symmetric Scenes from a Single Image, DAGM 2011, LNCS 6835), см также http://tinyurl.com/depthfromsymmetry)