Улучшение результатов фотограмметрии, используя нейронные сети
Артюшков Павел
Школа имени Маршала Чуйкова, Москва
Научный руководитель: Воронцов Илья
Что такое фотограмметрия
Фотограмметрия - технология, которая позволяет получить 3D модель объекта только по его фотографиям с разных ракурсов
Polycam - социальная сеть фотограмметрии
Но есть проблема…
Цель проекта
Обучить нейронную сеть для улучшения результата фотограмметрии исправления дефектов в 3D модели
Как научить нейросеть?
Нужно дать ей большой набор готовых решений: результат фотограмметрии и ее целевые версии.
Поэтому давайте возьмем готовые 3D модели как целевые и получим из них отсканированные версии
Процесс сбора датасета
01
Сгенерировать кадры со всех возможных ракурсов
Получить результат фотограмметрии
Отсеять плохие результаты
Пример сканирования
Список обнаруженных дефектов
Автоматизация сбора датасета
Время обработки одной пары: от 1 до 2 часов. Собрать большой датасет на одном устройстве будет невозможно.
Поэтому была реализована распределенная система воркеров на множестве устройств.
Собран датасет размером 528 валидированных моделей
Обучение нейронной сети
02
Модель
Задачу можно представить как перевод языков. Поэтому была использована кастомная seq2seq RNN. Использовался teacher forcing
Модель работает с облаками вершин: последовательностью из 2000 точек
Предобработка
Процесс обучения
При предсказаниях модели
нужно применить регистрацию
облаков точек
Предсказания на одном чанке
Оранжевые вершины - предсказания модели
Результаты сети
Модель после фотограмметрии
Оранжевые вершины - предсказания модели
Результаты сети
Оранжевые вершины - предсказания модели
График ошибок
Ошибка Chamfer distance на 500 вершинах
0.0086 на train выборке, 0.0081 на test выборке
Затраты…
1259 компьютерных часов на сбор датасета
208 коммитов
4 репозитория
44 закрытых issues
75 запусков обучения модели
2.2 TB данных в датасете (это без бекапов)
4 сервера
Много боли…
Планы на будущее
Увеличить датасет и обучить модель на полном датасете
Вторая сеть для избавления от мусора в модели
Использовать более мощную структуру модели, например трансформер
Работать не только с облаками вершин, но и с гранями
Работать с текстурами моделей
Расширить работу нейронной сети на NeRF (Neural Radiance Fields)
Спасибо за внимание
Тезисы проекта