Введение
На сегодняшний день существует целый набор программных продуктов для построения 3D-моделей объектов и сцен по наборам изображений (например, 123D Autodesk или Photomodeller). Описание работы с такими программами было показано в статье http://habrahabr.ru/post/134781/ и http://habrahabr.ru/post/64080/. В этой статье я хочу описать общую методику к решению данного вопроса, с возможностями каждого из этапов. Статья в первую очередь направлена для тех, кто «далек» от этой тематики, но хотел бы понять, а как оно там работает и что вообще можно получить.
Описание общей схемы
Во-первых, опишем требования к выполнению фотосъемки объекта (см. рис. 1). Перекрытие между парой кадров фотографируемой области пространства должно быть не хуже 50% (иначе модель получится с разрывами). Более того, такая съемка должна гарантировать, что три смежных снимка будут с перекрытием (например, на рисунке 1 смежными снимками можно считать 1,2,3 или 4,5,6). Таким образом, полученная 3D-модель будет определяться только лишь одним масштабным параметром.
Рисунок 1. Схема фотосъемки объекта
Рисунок 2. Пример снимков для построения 3D-модели
Теперь, допустим, имеется набор снимков (см. рис. 2). Далее, выполняя обработку снимков (а именно, поиск одинаковых точек объекта на снимках и решение системы нелинейных уравнений, составленной на основе найденных соответствий), определяем параметры камеры (фокусное расстояние и т.п.) и положение/ориентацию камеры в моменты фотографирования каждого из снимков относительно одного из них (базового, например, первого, см. рис. 3).
Рисунок 3. Ориентированные снимки
Для ориентированных снимков выполняется поиск всех одинаковых точек на смежных парах изображений (так называемые плотные карты или карты глубины), после чего вычисляется положение точек в пространстве (см. рис. 4) в системе координат базового снимка (на основе рассчитанных параметров камеры: фокусное расстояние, положение/ориентация и т.п.).
Рисунок 4. 3D-модель объекта
Рисунок 5. Текстурированная 3D-модель объекта
Как правило, множество точек представляются в виде триангуляционных каркасов (см. рис.6, построение каркаса осуществляется на основе триангуляции Делоне), удобных для последующего текстурирования (см. рис.5, например средствами OpenGL) либо трансформирования снимков.
Рисунок 6. Триангуляционная модель объекта (источник, habrahabr.ru/post/134781/)
Заключение
Описанная технология применяется в большинстве современных коммерческих программных продуктах для построения моделей местности по данным аэрофотосъемки, мобильного картографирования и т.п. При этом все программное обеспечение типа 123D с полностью автоматической обработкой – совершенно бесплатно, но не гарантирует никакой результат вообще (соответственно и точности там нет), а там где требуется результат нужно платить, и там специально создан функционал для контроля каждого из этапов обработки.
Автор: villaint