Введение 5
1. Постановка задачи 8
2. Обзор 9
2.1. Тестовый набор данных 9
2.2. Цель обзора 9
2.3. Метрики для оценки качества текстурирования 10
2.4. Алгоритмы текстурирования 12
2.5. Факторы, снижающие качество HD-карт 15
2.6. Оптимизации, применяемые для улучшения качества текстурирования 17
2.7. Алгоритмы переноса цвета 19
3. Реализация 21
3.1. Требования к итоговой системе 21
3.2. Конвейер алгоритма текстурирования 21
3.3. Диаграмма классов 22
3.4. Реализация алгоритма перевода 360-изображений в
cubemap 23
3.5. Реализация алгоритма перевода позиций камеры из фор
мата набора данных в формат позы камеры PCL .... 25
3.6. Реализация алгоритма накладывания текстуры на полигон с использованием инструментов PCL 26
3.7. Реализация алгоритма выбора текстуры с наибольшей
площадью проекции 26
3.8. Реализация алгоритма переноса цвета 27
4. Эксперимент 29
4.1. План эксперимента 29
4.2. Результаты эксперимента 29
4.3. Вывод 34
Заключение
Список литературы
HD-карта (High Definition Map) — высокоточная карта, используемая в автономном вождении. Такие карты представляют из себя 3d- пространство, состоящее из облака точек, построенной по облаку точек треугольной сетки (меша) и текстуры для каждого треугольника ме- ша. Карты высокой четкости часто снимаются с помощью множества датчиков, таких как лидары, цифровые камеры и ГНСС.
Важность текстур в HD-картах для автомобильной навигации связана с созданием реалистичного и точного представления окружающей среды для автоматизированных транспортных систем, таких как автопилоты и автономные автомобили. Текстуры помогают лучше различать объекты окружающей среды, такие как дороги (линии дорожной разметки, пешеходные дорожки, перекрестки), знаки, здания и другие элементы инфраструктуры, что важно для точной локализации и навигации транспортных средств. Реалистичные текстуры могут помочь автоматизированным системам лучше понимать окружающую среду, что в свою очередь способствует более безопасной навигации. Также HD-карты могут использоваться в градостроительстве, когда планируют строительство новых домов делают макеты того, как они будут вписываться в городской ландшафт, в геодезии, когда нужно измерять расстояния между разными точками на сцене.
Процесс переноса текстур с изображений на меш сопровождается различными проблемами, которые уменьшают качество итоговой текстурированной модели. Связано это, например, с неточностью самого лидарного облака, разного баланса белого или экспозиции в различных точках съемки т.д. Чтобы уменьшить влияние факторов, снижающих качество HD-карт, применяют оптимизации при текстурировании. В данной работе были рассмотрены подходы, связанные с оптимизацией позы комеры, оптимизации оптических искажений на изображении и переноса цвета (color-transfer), где от одного изображения переносится баланс белого и экспозиция на другое изображение.
Данная работа рассматривает ситуацию с автоматическими настройками экспозиции и баланса белого у камер, потому что на практике это очень часто применяется из-за постоянно меняющегося освещения на улице, иначе два кадра одного объекта, снятых с разных ракурсов, будут показывать разные цвета из-за разного количества света, которое попадет на объектив камеры. Существующие решения по текстурированию с открытым исходным кодом, например, широко используемый в компании ООО «Системы Компьютерного Зрения», алгоритм текстурирования из библиотеки PCL, хорошо работает в ситуации, когда нет сильных отличий по яркости и балансу белого между изображениями, но в проекте «SD-реконструкция города» компании ООО «Системы Компьютерного Зрения» работает плохо. А именно, когда две соседние текстуры берутся с разных кадров с разным балансом белого и экспозиции, текстура объекта в целом, например текстура стены, получается пестрой, что приводит к снижению качества HD-карты. Существующие решения по оптимизации, в частности, алгоритм оптимизации поз камер1 и оптических искажений камеры, предложенный в статье Color Map Optimization for 3D Reconstruction with Consumer Depth Cameras [14], в этой ситуации работают плохо, потому что используют информацию о цвете 36-точки, полученной проекцией с разных кадров, эта информация не достоверна из-за автоматических настроек камеры и постоянно меняющегося освещения. Алгоритмы, использующие ключевые точки и сопоставление, на практике так же далеки от совершенства, так как на разных типах данных, полученных с помощью лидара и камеры, могут показывать разные результаты. Было решено не использовать данные оптимизации в этой работе, а попробовать применить подход переноса цвета (color-transfer), поскольку он переносит баланс белого и яркость от одного изображения к другому, что может решить проблему пестрых текстур на HD-картах.
В этой работе рассматриваются существующие решения и технологии текстурирования меша, алгоритмы оптимизации текстур, алгоритмы переноса цвета. В данной работе планируется реализовать алгоритм текстурирования с применением алгоритма переноса цвета для уменьшения пестрости текстур на HD-картах.
Чтобы выполнить поставленную цель «Реализация алгоритма текстурирования, который строит текстуру без резких переходов по цвету от кадра к кадру» в течение года были выполнены следующие задачи:
• сделан обзор существующих решений и технологий;
• применен алгоритм текстурирования из библиотеки PCL на наборе данных, использующимся в данной работе:
• алгоритм перевода 360-изображений в cubemap;
• алгоритм перевода позиций камеры из формата датасета в формат позы камеры PCL.
• реализованы метрики для сравнения двух текстур:
• PSNR;
• SSIM.
• реализован алгоритм текстурирования, который строит текстуру без резких переходов по цвету от кадра к кадру:
• реализован перенос цвета между текстурами;
• реализован выбор «правдоподобной»1 текстуры.
• выполнена оценка эффективности реализованного алгоритма текстурирования с помощью реализованных метрик.
Ссылка на репозиторий с кодом реализации: https://github.
com/artmotika/Urban_Reconstruction