Технологія побудови 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. Схема зйомки об'єкта

3d-моделей
Малюнок 2. Приклад знімків для побудови 3D-моделі

Тепер, скажімо, є набір знімків (див. рис. 2). Далі, виконуючи обробку знімків (а саме, пошук однакових точок об'єкта на знімках та рішення системи нелінійних рівнянь, складеної на основі знайдених відповідностей), визначаємо параметри камери (фокусна відстань і т.п.) та положення/орієнтацію камери в моменти фотографування кожного з знімків щодо одного з них (базового, наприклад першого, див. рис. 3).

побудови
Малюнок 3. Орієнтовані знімки

Для орієнтованих знімків виконується пошук усіх однакових точок на суміжних парах зображень (так звані щільнікарти або карти глибини), після чого обчислюється положення точок у просторі (див. рис. 4) у системі координат базового знімка (на основі розрахованих параметрів камери: фокусна відстань, положення/орієнтація тощо).

3d-моделей
Малюнок 4. 3D-модель об'єкта

побудови
Малюнок 5. Текстурована 3D-модель об'єкта

Як правило, безліч точок представляються у вигляді тріангуляційних каркасів (див. рис.6, побудова каркаса здійснюється на основі тріангуляції Делоне), зручних для подальшого текстурування (див. рис.5, наприклад засобами OpenGL) або трансформування знімків.

технологія
Малюнок 6. Тріангуляційна модель об'єкта (джерело, habrahabr.ru/post/134781)

Деталі кожного з етапів, а також алгоритми, що використовуються, можна знайти в цій роботі