Создание 3D модели местности по видео с дрона
В данной статье речь пойдет про видеограмметрию-создание 3d моделей объектов на основе видео. Видеограмметрия появилась давно, но до сих пор используется редко из-за необходимости в более мощном «железе», чем при построении 3d моделей местности/объектов с помощью лидаров. В 2024 году производительность ПК настолько выросла, что теперь можно в течении разумного времени строить модели на домашних компьютерах и даже ноутбуках. Сначала покажу, какие модели получились у меня, затем поделюсь лайфхаками, которые помогут сразу строить модели обходя технические сложности, а в конце расскажу чем видеограмметрия может быть полезна.
Это модель острова-града Свияжск. Татарстан. Сделано по видео с дрона
3D модель дома сделана в MeshroomCL
Если нет дрона, то можно строить 3D модели по видео с телефона
Здесь те же самые модели, но их можно покрутить мышкой на ПК или пальцем на смортфоне
Все эти модели построены в бесплатной, опенсорсной программе для фотограмметрии Meshroom (или ее упрощеной версии MeshroomCL сообщество в вк). Есть много других платных и бесплатных программ: https://rec3d.ru/rec-wiki/vosem-besplatnykh-programm-dlya-fotogrammetrii/
Так выглядит интерфейс MeshroomCL. В данном случае я записал двухминутное видео, два раза обойдя вокруг автомобиля (траектория в правом верхнем окне). Из этого видео получилось 170 кадров. Из 170 кадров модель строилась порядка 1 часа на ноутбуке 12500H+RTX4050
Про «железо»:
Запускать программы фото/видеограмметрии на ноутбуках вполне реально лишь для простых проектов (150–200 кадров, извлеченных из 1–2 минутных видео). Для построения хороших моделей часто используют 500–1000 кадров. Поэтому лучше использовать домашний ПК с видеокартой не хуже 4060ti.
Про камеры:
Скриншота с дрона не нашел, но при сьемках я выставляю в ручном режиме выдержку и ISO. Качество пробовал разное, и 4К, и 1080р, и 720р. Большой разницы в качестве моделей по видео 720р и 2160р не увидел, но время на обработку 4К ролика увеличивается в несколько раз. Поэтому обычно снимаю в 1080р или 720р.
Резутьтат видеограмметрии сильно зависит от качества камеры. На дронах обычно ставят качественные большие фотоматрицы, а на смартфонах бывает по-разному. Сейчас использую смортфон с большой матрицей формата 1/1,4. Тестил также другие смартфоны с матрицами поменьше (½ дюйма, 1/1,66 дюйма и 1/1,5 дюйма), там Meshroom отбраковывает гораздо больше кадров из-за недостаточной четкости, поэтому качество конечной 3D модели заметно хуже)
Про качество 3D моделей
За год я сделал порядка 100 3D моделей с помощью видеограмметрии. Примерно половина по видео с дрона, половина по видео со смартфона. Около 30 моделей выложил в открытый доступ:
Возможно кому-то покажется не очень хорошим качество этих моделей, поэтому приведу ссылки на гораздо более качественные результаты, полученные на гораздо более мощном «железе»:
Видеограмметрия от NvidiaВидеограмметрия стартапа MosaicФото/видеограмметрия от Google
Из ролика Nvidia понятно, что сейчас начинают использоваться нейросети для построения 3D моделей местности. Это уже не совсем те классичекие методы фотограмметрии, которые использует Meshroom и другие программы.
Я бы выделил три основных метода построения 3D модели местности:
Классическая фото/видеограмметрия (Meshroom и другие подобные программы)
Фото/видеограмметрия с использованием нейросетей (Nvidia и др.)
Построение 3D модели местности на основе распознавания объектов (Tesla и другие системы автопилота)
так 3d модель местности строит автопилот Tesla
![4b3b065c1a90495e897a8fd65ef8ad0c.jpeg](https://habrastorage.org/r/w780q1/getpro/habr/upload_files/4b3/b06/5c1/4b3b065c1a90495e897a8fd65ef8ad0c.jpeg)
Фактически автопилот распознает находящиеся рядом 3D объекты (соседние авто) и на этой основе строит модель окружающего пространства. Неизвестно как именно работает автопилот Tesla, но один из методов распознавания 3d объектов я описал в предыдущей статье (там процесс распознавания 3d объектов показан на примере лиц, но сам способ не использует никаких антропологических признаков, поэтому его можно использовать для распознавания любых 3d объектов, включая автомобили)
Для создания системы распознавания 3d объектов (автомобилей) необходима база этих 3d объектов. Поэтому мы с другом собрали открытую базу сканов автомобилей:
Кто хочет добавить свое или какое-то другое авто к базе 3д сканов-добро пожаловать!
Вместо вывода
Возможно комуто покажется нелогичным, что эта статья начиналась с «Построения 3d модели местности с дрона», а закончилась «Построением 3d модели местности беспилотником Tesla».
Ответ простой: потому что я считаю, что построение 3d модели местности-это важная и интересная задача. А уж как она решается, с помощью классичекой фото/видеогграмметрии (meshroom), нейросетевой фото/видеограмметрии (nvidia) или с помощью распознавания 3d объектов (tesla) это уж дело личное. Все идут своей дорогой. Кто окажется прав-покажет время.