Введение 4
1. Постановка задачи 5
2. Обзор 6
2.1. Существующие решения 6
2.2. Идея решения 6
2.3. Метод решения систем алгебраических уравнений .... 7
2.4. Нахождение и сопоставление линий 7
3. Особенности реализации 8
3.1. Модель 8
3.2. Проецирование и система уравнений 9
3.3. Параметризации матрицы поворота 9
3.4. Тестирование 11
4. Тестирование на синтетических данных 12
4.1. Модель 12
4.2. Параметризация кватернионами 13
4.3. Параметризация при небольшом повороте 13
4.4. Параметризация при известном вертикальном направлении 13
4.5. Сравнение результатов 14
5. Тестирование на реальных данных 15
5.1. Подготовка данных 15
5.2. Уточнение ответа 16
5.3. Параметризация при небольшом повороте 17
5.4. Параметризация при известном вертикальном направлении 17
5.5. Результат тестирования 17
Заключение 18
Список литературы 19
Компьютерное зрение - это теория и технология создания инструмента, способного обнаруживать, классифицировать, распознавать некоторые объекты, то есть получать информацию из изображения. Основные задачи компьютерного зрения - это такие задачи, как распознавание объектов, детекция движения, восстановление сцены, то есть построение 3D модели, восстановление изображения, то есть удаление шума.
Также методы компьютерного зрения все чаще используются для разработки автономных машин, летательных аппаратов и дронов, которые должны перемещаться самостоятельно, без вмешательства человека. В связи с этим среди прочих технологий разрабатываются алгоритмы одновременной локализации и картографии (Simultaneous Localization and Mapping - SLAM), которые уже давно доказали свою эффективность для точечной оценки траектории во время геометрического построения неизвестной среды.
Эти алгоритмы прекрасно работают для хорошо текстурированных кадров и их последовательностей. В то время как слабо текстурированные сцены - слабое место в геометрических алгоритмах компьютерного зрения, которые опираются на соответствие точек на нескольких кадрах для определения взаимного положения нескольких камер. Слабо текстурированные сцены - это такие сцены, как городские и интерьерные кадры, на которых преобладают линии. Таким образом, на практике часто встречаются ситуации, когда известны общие линии, а не точки.
В следствии этого, существует необходимость в разработке алгоритма для решения задачи определения взаимного положения камер по линиям, а не по точкам, как это было сделано в алгоритмах одновременной локализации и картографии.
В рамках данной выпускной квалификационной работы были выполнены следующие задачи:
• разработан алгоритм нахождения взаимного положения камер по линиям;
• реализован алгоритм для разных параметризаций матрицы поворота;
• протестировано на случайных данных и проведено сравнение результатов разных параметризаций матрицы поворота;
• протестировано на реальных данных;
Исходный код можно посмотреть в репозитории проекта
https://github.com/NataliaDymnikova/camera-position-by-line