Як можна реконструювати 3D-структуру з набору зображень?


24

У мене є набір контурів (набір сегментів ліній), згрупованих таким чином:

Si={I0,Iπ4,I2π4,,I7π4}

де

  • позначають послідовність фотографій одного конкретного об’єкта. Si
  • позначає зображення, зточки зору j t h ( j = 0 означає вид спереду). Ijjthj=0

Ось приклад (вид ззаду): Iπ

введіть тут опис зображення

Як я можу реконструювати 3d структуру об'єкта за допомогою заданого ?Si

Чи може хтось вказати мені на якісь документи або навіть дати мені кілька ключових слів? Я знаю, що існує багато статей, які оперують хмарами точок тощо, але вони не працюють, коли я працюю з рядками.

Відповіді:


20

Насправді це досить важка тема. Класична реконструкція з багатовидовим переглядом в першу чергу стосується відповідності точок, тобто знаходить однакову точку на кожному зображенні. Враховуючи параметри камери (перегляду) для кожного зображення, оригінальну 3d точку можна реконструювати. (Використовуючи лазер або проектор, сцену можна освітлити, так що відповідність можна зробити порівняно легко.)

Біблія поля - це геометрия множинного перегляду в комп'ютерному зорі Гартлі та Зіссермана

У книзі є розділ про трифокальний тензор, який є багатолінійним обмеженням між 3 поглядами. Він також містить не лише обмеження відповідності точці, але й лінії. Його можна дуже добре використовувати для реконструкції будівлі.

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

Я не знаю, як у вас з'явилися ці контури, але, бачачи зображення, яке ви опублікували, я дуже скептично ставляться до надійності цього алгоритму, тому реконструкція буде поганою.

Ще один метод, який мені прийшов на думку - це візуальний корпус або космічна різьба . Матричне контур також слід робити. Запустивши метод по кожному контуру, ви можете мати модель.


π/4

1
Я не бачу, як за проекцією ви отримуєте 3d-контурну точку за контуром. Існують технології 3d моделювання, що стосуються поверхонь NURBS, розтягнутих між сплайнами, але для цього вам потрібно надати характерні сплайни. (Можливо, 3d-художник міг би визначити слово, характерне в цьому контексті, але не я.) Знову ж таки, я думаю, що форма з контуру (така ж, як візуальний корпус) може створити для вас грубу модель. Після цього ви можете вдосконалити його на основі зображень. Але для цього немає стандартних способів.
Bálint Fodor

2

Хоча згадуються Фодором Хартлі та книгою Зіссермана, безумовно, варто прочитати, це більше для загального розуміння, ніж для практичних алгоритмів. Він досить застарілий, і ці методи не є ефективними. Щодо вашої проблеми - сама постановка проблеми дуже рідкісна. Як згадував Фодор, починати зіставлення точок функції замість контурів набагато простіше. У випадку очок абсолютно найкращим оглядом доступних сучасних методів є стаття Триггса "Налаштування розшарування - сучасний синтез". Але перед використанням коригування набору ви повинні відповідати відповідній точці на зображеннях, використовуючи щось на зразок відповідності SIFT або шаблону. Google для реконструкції 3Dдля прикладів деяких повних методів. Ви також можете використовувати пакети з відкритим кодом для нього, є кілька доступних.

Якщо ви наполягаєте на використанні контурів, проблема набагато складніше, хоча все ще (ледве) простежується. Спочатку ви маєте визначити і співставити відповідні контури на всіх зображеннях, після чого напишіть функцію витрат - суми помилок перепроекції для кожної зібраної групи контурів як функцію від положення камери та орієнтації кожного зображення. Після цього знайдіть набір камери, що мінімізує цю функцію витрат. Кожен етап цього процесу надзвичайно важкий, і немає хорошого огляду, як Тригги. Ви можете переглянути в Google деякі відповідні документи як деяку комбінацію термінів "контури" "контури, що відповідають" "коригування пакету" "помилка перепроектування" "реконструкція 3D".


Незважаючи на те, що вирішувати проблеми, схожі на SIFT, напевно, є проблема, що SIFT у моєму домені часто ловить тіні / відображення на глянцевій поверхні автомобілів, тому використовуючи SIFT, я отримую надзвичайно величезну кількість шумових функцій, які не залежать від фактичного форму автомобіля, отже, я маю зменшення точності.
om-nom-nom

Ви можете спробувати модельний підхід, якщо знаєте, що дивитесь на машину. Параметризуйте загальну модель автомобіля і спробуйте підлаштувати її до зображення, використовуючи всі пікселі зображення. Запишіть вартість витрат як функцію параметрів камери та параметра моделі автомобіля та мінімізуйте її. Це може спрацювати (а може і не) - у вас, здається, є досить складна проблема.
mirror2image

На жаль, я не зрозумів, що ти запропонував зробити. Наведіть, будь ласка, приклад (це може бути зовнішня стаття, пов’язана робота чи щось подібне).
om-nom-nom

Я маю на увазі модель активної форми en.wikipedia.org/wiki/Active_shape_model або somethings imilar
mirror2image

2

Ознайомтеся з реконструкцією моделі із зображень, яка трохи відрізняється від того, що ви робите, але я говорю про те, як перейти від зображень до 3d-моделі. Також ознайомтеся з MeshLab , у ньому є кілька алгоритмів відновлення, в які ви могли б передати свої дані.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.