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