Технология за конструиране на 3D модели на обекти от набор от изображения
Към днешна дата има цял набор от софтуерни продукти за изграждане на 3D модели на обекти и сцени от набори от изображения (например 123D Autodesk или Photomodeller). Описание на работата с такива програми е показано в статията http://habrahabr.ru/post/134781/ и http://habrahabr.ru/post/64080/. В тази статия искам да опиша обща методология за решаване на този проблем с възможностите на всеки от етапите. Статията е насочена предимно към тези, които са „далеч“ от тази тема, но биха искали да разберат как работи там и какво може да се получи като цяло.
Описание на общата схема
Първо, описваме изискванията за заснемане на снимки на обект (виж Фиг. 1). Припокриването между чифт кадри на сниманата област на пространството не трябва да бъде по-малко от 50% (в противен случай моделът ще се окаже с пропуски). Освен това такова проучване трябва да гарантира, че три съседни изображения се припокриват (например на фигура 1 съседните изображения могат да се считат за 1,2,3 или 4,5,6). Така полученият 3D модел ще се определя само от един параметър на мащаба.
Фигура 1. Схема на заснемане на обекта Фигура 2. Пример за изображения за изграждане на 3D моделСега, да кажем, че имаме набор от моментни снимки (вижте фиг. 2). Освен това, извършвайки обработка на изображения (а именно търсене на идентични точки на обекта в изображенията и решаване на система от нелинейни уравнения, съставена въз основа на намерените съответствия), ние определяме параметрите на камерата (фокусно разстояние и т.н.) и позицията / ориентацията на камерата в момента на снимане на всяко от изображенията спрямо едно от тях (базата, например, първата, вижте фиг. 3).
Фигура 3 Ориентирани изстрелиЗа ориентирани изображения се извършва търсене на всички еднакви точки на съседни двойки изображения (т.нар. плътенкарта или карта на дълбочината), след което се изчислява позицията на точките в пространството (виж фиг. 4) в координатната система на основното изображение (въз основа на изчислените параметри на камерата: фокусно разстояние, позиция / ориентация и др.).
Фигура 4. 3D обектен модел Фигура 5. Текстуриран 3D обектен моделКато правило, набор от точки е представен под формата на триангулационни телени рамки (вижте Фиг.6, телената рамка е изградена на базата на триангулацията на Delaunay), които са удобни за последващо текстуриране (вижте Фиг.5, например, с помощта на инструменти на OpenGL) или трансформация на изображението.
Фигура 6. Триангулационен модел на обект (източник, habrahabr.ru/post/134781)Подробности за всеки от етапите, както и използваните алгоритми, могат да бъдат намерени в тази работа.