Создание 3D модели голени по фотоснимкам. Часть 2. VisualSFM+MeshLab.

Часть 1. Продолжение.

Для создания 3D модели по снимкам воспользуемся моими любимыми ногами, правильно, ногами моей жены и обожаемыми ей программами VisualSFM и MeshLab, которые будут установлены на Windows 7, являющейся второй системой на компе, и не позволяющие пожелать ей спокойной ночи. :)
Выбор этой связки был продиктован сугубо техническими характеристиками моего компьютера.

Если Вы обладатель более мощных рабочих станций, можете воспользоваться для тех же целей, так же бесплатными, Autodesk 123D Catch (подробнее на Хабре) и Autodesk Memеnto (обзор на YouTube). Первая у меня работала через раз, вторая вообще просто не запустилась. Хотя, модель орла из обзора Autodesk Memеnto, по снимкам автора ролика, была отлично реконструированна в VisualSFM + MeshLab.
 


VisualSFM - это, по сути графическая оболочка, для Structure from motion, технологии создания 3D модели не просто по набору изображений, а по набору изображений, полученных в результате передвижения наблюдателя.
Прога дает нам возможность загрузить массив изображений, найти уникальные точки в каждом изображении, сформировать из них плотное облако уникальных точек и перевести эту "3D модель точек" в MeshLab для дальнейшего редактирования.

Подробнее о нюансах и выводах ниже.
1. Скачать и об установке очень подробно на сайте. Для Win7x64, при карте Nvidia с поддержкой Cuda, лучше глянуть здесь.

Мне пришлось почти как и в инструкции:
- дополнительно установить библиотеку MSVC2010 (64bit, 32bit)
- скачать CMVS от Yasutaka Furukawa. Распаковать все это и
- переместить из только что распакованных папок cmvs и pmvs файлы cmvs.exe, pmvs.exe, genOption.exe, pthreadVc2.dll в туже директорию, куда была распакована и VisualSFM.exe.
- работать не стало и я переместил папки cmvs и pmvs в папку с VisualSFM.exe.
 2. Далее все как по нотам.

1- загружаем фото,

2- программа их обрабатывает, выявляя характерные точки,
3- формирует облако точек,

- формируется более плотное облако точек, с даными о полежении в пространстве, цвете, нормаль к поверхности принадлежности точки.
На моем компе, обработка фото модели голени заняла 27 минут. Орел обрабатывался 70 минут, к примеру!!! Не удивительно, при таких характеристиках :)
Рекомендую, для понимания дальнейших действий в MeshLab'е, посмотреть видео-уроки тут и тут, и прочесть подробности здесь (pdf).

После их изучения, можно отметить, что сформированная модель напрямую зависит от качества исходных фотографий, их количества, количества возможных меток в пространстве.
Все модели, сделанные по моим снимкам, были неудовлетворительного качества по освещению, в недостаточном количестве (чем больше  с разных ракурсов, тем лучше), а модели по "учебным" снимкам выходили качественными.
Пример Орла уже приводил.
Съемки шара на белом фоне, без дополнительных меток, вообще не дали результата.
Черепашка на нотном листе, который, по моему мнению,
должен был служить дополнительными метками, вышла так:
Если получившаяся модель из точек очень плотная и качественная, то можно обойтись последовательностью в MeshLab как в приведенных выше уроках ( тут и тут).
Если же кроме отсутствия визуальной целостности "облака точек"  как на фото и
после  попыток объединения точек в "сеть" (Mesh) -> FILTERS -> POINT SET -> SURFACE RECONSTRUCTION: POISSON Вы видите:
Тут советую обратить Вам внимание на упомянутый урок, и поэкспериментировать с параметрами:
- COMPUTING NORMALS FOR POINT SETS (на стр.13-14)
- DOWN SAMPLING POINT CLOUDS ( на стр.17-18)

В итоге, при таких входных данных и своих, ограниченных доступной мне инфы (буду признателен за подсказки), я получил то, что получил.
Идея была в получении модели, повторяющей анатомические очертания голени, конвертации ее в удобоваримый распространенными программами моделирования формат и создание, на основании этого модели.
Часть фото и процесса создния  тут

По большому счету, то что получилось, можно было бы в том же 123D Design "Mesh" перевести в "Solid", но мой комп постоянно виснет при этом, ибо "много полигонов" :)
Полученный навык породил вопросы и потребность детального понимания возможностей MeshLab, уверен еще раз получиться уже иначе. Изучу, сообщу.

Что касается 3D модели голени для создания "косметики", решил пойти путем проектирования примитивами.

Об этом уже позже в частях 3 и 4.

Комментарии

Популярные сообщения из этого блога

Вариант прошивки полетного контроллера SP Racing F3 через stm32flash

Создание 3D модели по фотоснимкам. Python Photogrammetry Toolbox на Ubuntu 14.04.