Список используемых сокращений 4
Введение 5
1. Обзор существующих методов и алгоритмов трехмерной
реконструкции 9
1.1 Общие сведения 9
1.2 Стерео и мульти-видовое стерео 11
1.3 Определение калибровочных параметров камеры 17
1.4 Сенсоры типа «структурированный свет» 20
1.5 Представление информации о трехмерной форме: облако точек и
полигональные модели 22
1.6 Методы реконструкции лица на основе трехмерной модели
фрагментов 27
Заключение по методам и алгоритмам трехмерной реконструкции... 29
2. Методы и алгоритмы реконструкции трехмерной модели лица 30
2.1 Общая структура подхода и используемые в работе алгоритмы. 31
2.2 Определение особых точек. Дескрипторы SIFT. 34
2.3 Калибровка камеры 40
2.4 Карта смещений. Регистрация облака точек. 45
3. Проектное решение 47
3.1 Структура программного продукта 47
3.2 Проект «Head 3D Stereo» 48
3.2.1 Структура проекта 54
3.2.2 Бинарный проект 57
3.2.3 Трехмерная модель PLY. 58
3.2.4 Алгоритм трехмерной реконструкции 59
3.3 Проект «Head 3D Stereo Project» 61
3.3.1 Структура проекта 62
3.4 Исследование алгоритма трехмерной реконструкции 65
3.5 Выводы 69
Заключение 70
Список использованной литературы 71
ПРИЛОЖЕНИЕ А. Калибровочный шаблон 72
ПРИЛОЖЕНИЕ Б. Описание куба в формате PLY 73
ПРИЛОЖЕНИЕ В. Структура файла матрицы config.xml 74
ПРИЛОЖЕНИЕ Г. Структура промежуточного проекта XML 75
ПРИЛОЖЕНИЕ Д. Листинг проекта «Head 3D Stereo» 76
ПРИЛОЖЕНИЕ Е. Листинг проекта «Head 3D Stereo Project» 108
ПРИЛОЖЕНИЕ Ж. Листинг пространства «CompVision»
В современных технических системах все большее значение приобретает получение и обработка информации о трехмерной форме объектов. Специфическим примером таких данных является информация о трехмерной форме человеческого лица. С одной стороны, данная информация чрезвычайно важна во многих приложениях. С другой стороны, для улучшения результатов работы алгоритмов может использоваться некоторая априорная информация о форме лица. Использование информации о трехмерной форме в большинстве случаев позволяет значительно упростить работу алгоритмов распознавания лиц, повысить их надежность. Наличие трехмерной модели лица позволят получить проекции с различных ракурсов, что может быть важно в случае, когда опознавание личности выполняется человеком. Алгоритмы аутентификации, использующие информацию о трехмерной форме лица более устойчивы к попыткам вместо лица предъявить его фотографию.
Для обработки в системах технического зрения трехмерная форма лица должна быть в первую очередь измерена. Реконструкция формы лица по фотографиям фрагментов лица является сложной задачей и требует решения подзадач восстановления трехмерной формы фрагмента лица по двумерным изображениям и регистрации полученных фрагментарных моделей в целостную модель.
К сожалению, в общем случае невозможно произвести трехмерную реконструкцию фрагмента лица на основе набора изображений, полученных с различных ракурсов. Это связано с потерей информации в ходе получения изображения - трехмерная сцена проецируется на двумерную поверхность сенсора. Различным с точки зрения геометрических параметров сценам могут соответствовать одинаковые изображения. Задача восстановления трехмерной формы по двумерным проекциям относится к так называемым, некорректно- поставленным задачам. Успешное решение требует использования дополнительных предположений о характере сцены, дополнительных видов и т.д.
Наличие изображений сцены полученных с различных точек съемки и известных калибровочных параметров камеры делает осуществимой задачу трехмерной реконструкции. Существует две стандартные математические формулировки данной задачи. Первая используется в фотограмметрии и сводит задачу к оптимизации системы нелинейных уравнений (Bundle Adjustment). Второй подход традиционен для компьютерного зрения и использует методы линейной алгебры для восстановления трехмерной формы по набору двумерных изображений.
Результатом использования алгоритмов данных классов является «неплотное» облако точек - список координат трехмерных точек, принадлежащих поверхности реконструируемой сцены. Полученные данные необходимо обработать с целью обнаружения и удаления точек (выбросов) появившихся в результате ошибки и не принадлежащих, на самом деле, поверхности реконструируемой сцены.
Для области вычислительной криминалистики характерен случай, когда данные имеют фрагментарный характер. Для получения целостной модели несколько облаков точек, представляющих фрагменты лица, должны быть совмещены. Это связано с трудностями различного характера: зашумленностью фрагментарных моделей, отсутствием части фрагментов, геометрическим искажением фрагментов. На настоящий момент регистрация фрагментов может быть осуществлена автоматически не всегда. Сложные случаи, как правило, требуют вмешательства человека, владеющего инструментами трехмерного моделирования и разбирающегося в анатомии. Это, в свою очередь, ведет к высоким временным и финансовым затратам при осуществлении данного вида работ.
В результате проведенного исследования литературных источников установлено, что существующие методы реконструкции трехмерных поверхностей не учитывают особенностей фрагментарных моделей, полученных в результате сканирования частей лица, что ограничивает их эффективность и область применимости. В связи с этим актуальной являются задачи как разработки новых подходов к регистрации фрагментов лица, так и программных инструментальных средств на основе существующих подходов.
Объектом исследования в рамках выпускной квалификационной работы являются методы и алгоритмы получения и обработки трехмерных данных реальных объектов. Предмет исследования - восстановление формы лица по изображениям полученных с помощью стереокамеры.
Целью исследования является разработка алгоритма и программной реализации для построения трехмерной модели лица и ее фрагментов по фотографиям, полученных с помощью стереокамеры. Для достижения поставленной цели требуется решить следующие задачи:
- изучить теоретический материал по трехмерной реконструкции;
- изучить теоретический материал по обработке трехмерных моделей;
- реализовать алгоритм «стереозрение» с использованием средств библиотеки EmguCV, основанная на OpenCV;
- реализовать алгоритм регистрации модели лица в трехмерную модель;
- провести исследование разработанного программного обеспечения на модельных данных.
В качестве инструментальных средств реализации алгоритмов трехмерной реконструкции и регистрации фрагментов лица в выпускной квалификационной работе выбрана среда разработки Microsoft Visual Studio с использованием языка программирования C# и библиотека алгоритмов компьютерного зрения EmguCV. Для сохранения промежуточных данных используется сериализация класса проекта в поток байтов, а также для сохранения результатов работы формат представления трехмерных данных PLY. Отображение найденного облака точек реализовано с помощью программного интерфейса OpenGL.
Выпускная квалификационная работа включает в себя введение, 3 раздела и 14 подразделов в них, в которых решаются поставленные исследовательские задачи, заключение, список источников и литературы.
В первой главе проведен анализ современного состояния в областях автоматического получения трехмерных моделей и теоретического материала по данной теме. Рассмотрены способы представления и существующие алгоритмы обработки трехмерных моделей. Приведен краткий обзор работ по автоматической регистрации фрагментарных трехмерных моделей в единую модель человеческого черепа или его фронтальной лицевой части.
Следует отметить, что поставленные во введении цели безусловно являются достижимыми, но существующие подходы к решению задачи обладают рядом недостатков, негативно влияющих на эффективность реконструкции и качество полученных моделей.
Во второй главе приведена формальная постановка задачи. Выбрана последовательность шагов, которые должны быть пройдены для построения плотной трехмерной модели объекта используя стереоизображение. Приведена общая структура разрабатываемого программного обеспечения. Описаны особенности реализации и применения в рамках задачи каждого из выбранных алгоритмов. Отмечены достоинства и недостатки выбранных подходов и пути дальнейшего совершенствования.
В третьей главе проведено исследование разработанного подхода к трехмерной реконструкции лица человека и реализующего данный подход программного обеспечения.
1. Bradsky G., Kaehler A. Learning OpenCV: Computer Vision with the OpenCV Library. O’Reilly Media, Inc., 2008. 32;
2. Multiple View Geometry in Computer Vision. Second Edition. Richard Hartley and Andrew Zisserman, Cambridge University Press, March 2004;
3. Learning OpenCV. Computer Vision with the OpenCV Library. Gary Bradski, Adrian Kaehler. 2008;
4. Bradsky G., Kaehler A. Learning OpenCV - O’Reilly, 2008;
5. https://habrahabr.ru/post/130300/ - Основы стереозрения;
6. Использование веб-камер в качестве источника потока стереопар, С. И. Протасов, С. Д. Кургалин, А. А. Крыловецкий, 25.10.2010 г.
7. Стечкин С.Б., Субботин Ю.Н. Сплайны в вычислительной математике., Главная редакция физико-математической литературы издательства «Наука», М., 1976, 248 с.
8. Monneau R. Introduction to the Fast Marching Method, pages 44, 2011.
9. Роджерс Д., Адамс Дж. Математические основы машинной графики: Пер. с англ. - М.: Мир, 2001. - 604 с., ил.
10. Шапиро Л., Дж. Стокман. Компьютерное зрение; Пер. с англ. - М.: Бином. Лаборатория знаний, 2006. - 752 с., 8с.