Как я могу создать приложение для 3D моделирования? Какие ресурсы мне понадобятся? - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу создать приложение, которое конвертирует 2d-изображения / видео в 3d-модель. Исследуя его, я обнаружил похожие приложения, такие как Trnio, Scann3D, Qlone и некоторые другие (хотя немногие из них обеспечивают плохую выходную 3D-модель). Я также узнал о технологии, запущенной в исследовании Microsoft под названием mobileFusion, которая продемонстрировала то же видение, на которое я надеялся, но эти приложения были не такими.

1 Ответ

0 голосов
/ 04 сентября 2018

Создание приложения для 3D-моделирования - сложная задача, и достижение его на высоком уровне требует большого изучения. Чтобы указать вам правильное направление, вы, скорее всего, захотите выполнить то, что называется Structure-from-Motion (SfM) или Одновременная локализация и сопоставление (SLAM).

Если вы хотите запрограммировать это самостоятельно OpenCV - хорошее место для начала, если вы знаете C ++ или Python. Типичный конвейер включает в себя; извлечение и сопоставление характеристик, оценка положения камеры, триангуляция, а затем оптимизация с использованием настройки пучка. Все конвейеры для SfM и SLAM следуют этим общим шагам (за исключением конечно). Все эти шаги возможны в OpenCV, хотя Googles Ceres Solver - отличная настройка пакета с открытым исходным кодом. SfM обычно идет на плотное сопоставление, где вы получаете очень плотные облака точек, которые хороши для создания сеток. Бесплатный конвейер с открытым исходным кодом для этого OpenSfM . Другим хорошим источником для инструментов является OpenMVG , в котором есть все инструменты, необходимые для создания полного конвейера.

SLAM аналогичен SfM, однако больше ориентирован на приложения в реальном времени и меньше на абсолютную точность. Приложения для этого в большей степени сосредоточены вокруг робототехники, где робот хочет знать, где он находится относительно его среды, но он не настолько озабочен абсолютной точностью. Лучшие алгоритмы SLAM: ORB-SLAM и LSD-SLAM . Оба они с открытым исходным кодом и могут быть бесплатно внедрены в ваше собственное программное обеспечение.

Так что на самом деле все зависит от того, что вы хотите ... SfM для высокой точности, SLAM для реального времени. Если вам нужна хорошая 3D-модель, я бы порекомендовал использовать существующие алгоритмы, поскольку они очень хороши.

Лучшее на мой взгляд коммерческое программное обеспечение ... Agisoft Photoscan . Если бы вы могли сделать что-то наполовину лучше, я был бы очень впечатлен. Чтобы ответить на ваш вопрос, какие ресурсы вам потребуются. На мой взгляд, навыки python / c ++, умение хорошо гуглить и свободное время, чтобы правильно читать фотограмметрию и SfM.

...