СПОСОБ АВТОМАТИЗИРОВАННОГО СОЗДАНИЯ ТРЕХМЕРНЫХ СИСТЕМ ГОРОДСКИХ ПАНОРАМ НА ОСНОВЕ ДАННЫХ ЛАЗЕРНОГО СКАНИРОВАНИЯ
METHOD FOR AUTOMATED CREATION OF THREE-DIMENSIONAL SYSTEMS OF URBAN PANORAMAS BASED ON LASER SCANNING DATA

ОБЛАСТЬ ТЕХНИКИ
Заявленное изобретение относится к геоинформационным системам (ГИС), а именно к способам построения трехмерных систем городских панорам.
ОБЛАСТЬ ТЕХНИКИ
Фотографические панорамы Яндекс, Google.
Для построения трехмерных панорам городского пространства применяются фотографии, отснятые мобильными комплексами с панорамными камерами. Полученные панорамы обеспечивают подробное визуальное представление сооружений и городских объектов, находящихся в зоне публичной доступности. Однако полученные таким образом панорамные изображения, в отличие от панорам, построенных с помощью лазерного сканирования, представляют собой обычные «плоские» фотографии и могут быть использованы лишь для визуального осмотра местности человеком. Задача восстановления геокоординат какой-либо точки на фотографии невыполнима, поскольку фотография не имеет «глубины». Невозможно получение реальных координат объектов на фотографиях, измерение расстояний и площадей. Невозможен вывод информации об объектах. Невозможно построение 3D-моделей на базе отснятых данных. Дополнение фотографий новыми объектами и рекламными поверхностями возможно лишь без учета контекста панорамы.
Карты на основе данных ДЗЗ, аэрофотосъемки, космических снимков (например, «Космоснимки» компании «СканЭкс», Eternix)
Космические снимки, снимки с самолетов и беспилотных летательных аппаратов позволяют получить большой охват территории за относительно небольшое время. Они незаменимы для создания планов местности, построения трехмерных моделей рельефов, визуализации больших пространств Земли, мониторинга состояния больших разнесенных объектов.
Основные недостатки в том, что для построения фотореалистичных моделей объектов спутниковые снимки малоприменимы из-за невысокой разрешающей способности и большой погрешности, а также не могут предоставить той детализации и точности, которые дает наземная съемка. Получение реальных координат объектов на фотографиях, измерение расстояний и площадей возможно после частично ручной привязки к карте. Построение 3D-моделей на базе отснятых данных: возможно лишь восстановление рельефа местности. Дополнение фотографий новыми объектами и рекламными поверхностями возможно лишь без учета контекста фотографии. Визуальное представление сооружений и городских объектов - только общий план.
Построение трехмерных моделей на основе фотограмметрических алгоритмов (EarthMine, IWAANE).
На глобальном рынке существуют методики восстановления буферов глубины снимков на основе геометрических алгоритмов по данным из стереофотографий или видеоряда. Полученные трехмерные модели обеспечивают подробное визуальное представление сооружений и городских объектов, находящихся в зоне публичной доступности.
Недостатками данного решения является то, что получение реальных координат объектов на фотографиях, измерение расстояний и площадей возможно со значительной погрешностью. Применимость полученных данных исключается в точных геоинформационных системах; возможное их применение - в системах, где не требуется высокая точность (менее 1 метра).
Построение 3D-моделей на базе отснятых данных требует больших трудозатрат. Дополнение фотографий новыми объектами и рекламными поверхностями возможно лишь в некоторых простых случаях.
Из патента US 8818076, Shenkar et al., известен способ построения трехмерных панорамных изображений улиц, который заключается в использовании лазерного сканирования для построения трехмерной модели панорам, определения ключевых точек на изображениях, формирующих панораму, которые будут использоваться для фиксации объектов при перемещении панорамы.
Недостатком данного решения является отсутствие использования буфера глубины при построении панорам, что ведет к низкой детализации трехмерной модели панорамы.
Наиболее близким аналогом является решение компании Google, описанное в патенте US 8681151, Google Inc., в котором также используется принцип построения трехмерных панорам с применением технологии лазерного сканирования, построения буфера глубины и полигональной модели для последующего наложения на нее фотографических изображений.
Недостатком известного решения является низкая детализация трехмерной модели панорамы, поскольку не используется отладка буфера глубин, при которой осуществляют снижение зашумленности и двоения объектов.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Задачей изобретения является создание способа автоматизированного создания трехмерных систем городских панорам на основе данных лазерного сканирования, который позволяет создавать точные и детализированные трехмерные системы городских панорам, обеспечивающих возможность пользователям дополнять панорамы сторонники объектами (текст, графика) и получать точные данные о расстояниях и площадях между любыми точками объектов панорамы.
Техническим результатом является создание детализированных трехмерных систем городских панорам за счет интеграции фотоизображений с трехмерной моделью, построенной с помощью буфера глубин с устранением шумов и двоений объектов.
Заявленный технический результат достигается за счет способа автоматизированного создания трехмерных систем городских панорам на основе данных лазерного сканирования, содержащего этапы, на которых:
- получают фотографические изображения области;
- получают облако точек упомянутой области, полученное с помощью лазерного сканирования;
- производят построение трехмерной модели области на основании упомянутого облака точек, причем при построении упомянутой трехмерной модели строят буфер глубины и полигональные трехмерные модели элементов области;
- при построении буфера глубины учитываются точки из облака, полученные в разное время сканирования и удаленные от центра панорам на заданную величину, причем упомянутые точки проецируются на грани куба с учетом направления источника съемки и его отклонения от горизонтальной оси;
- осуществляют построение трехмерных систем панорам с помощью объединения полученной трехмерной модели области с фотографическими данными области, причем наложение фотографических данных осуществляется на построенные полигональные модели, причем упомянутые фотографические данные области проецируются на грани куба с учетом направления источника съемки и его отклонения от горизонтальной оси.
В частном варианте осуществления формируют тайлы панорамы, содержащие изображение объектов панорамы в одноканальном режиме.
В частном варианте осуществления формируется несколько уровней тайлов с разным количеством тайлов на одну грань куба.
В частном варианте осуществления на графических изображениях определяются типы объектов с нестационарной структурой
В частном варианте осуществления добавляют внешние трехмерные или двумерные объекты на трехмерную фотопанораму.
В частном варианте осуществления добавление сторонних объектов осуществляется с помощью пересчета буфера глубин.
В частном варианте осуществления изображение на каждом из треугольников полигональной модели изменяется в зависимости от угла обзора панорамы.
Заявленное изобретение реализуется также с помощью устройства, пригодного для выполнения заявленного способа, и системы, включающей упомянутое устройство.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На Фиг. 1 изображен общий принцип выполнения способа построения трехмерных систем городских панорам.
На Фиг. 2 изображены этапы построения трехмерной модели панорамы.
На Фиг. 3 изображен общий вид системы, использующейся для построения трехмерных систем городских панорам.
На Фиг. 4, 5 показан вид трехмерных систем городских панорам с добавлением информации об объектах.
На Фиг. 6-9 показан вид трехмерных систем городских панорам с функцией расчета расстояний между точками панорамы.
На Фиг. 10 показан вид трехмерных систем городских панорам с функцией расчета площади области на панораме.
На Фиг. 11 показан вид трехмерных систем городских панорам с добавлением сторонних объектов.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Суть технологии создания фотореалистичных трехмерных систем городских панорам в том, что фотоизображение панорам объединяется с трехмерной моделью, полученной из облака точек, являющегося результатом измерений расстояний лазерным сканером. Для каждой панорамной фотографии строятся буфер глубины (карта расстояний от точки съемки до окружающих объектов) и полигональные модели (модели, приближающие буфер глубины множеством треугольников, лежащих в разных плоскостях, с «натянутыми» на них фотографическими текстурами).
В отличие от обычных панорам и снимков, панорамы на основе данных лазерного сканирования содержат интегрированную 3D модель и позволяют в автоматическом режиме выполнять различные операции над изображенными на фотографиях объектами: измерять физические параметры, выводить семантическую информацию, дополнять существующую реальность новыми объектами и даже менять точку зрения.
На Фиг. 1 представлен общий принцип выполнения заявленного способа (100). Первоначально на этапе (110) выполняется сбор данных о местности, для которой будет впоследствии выполняться создания панорам. Сбор данных осуществляется с помощью процедуры лазерного сканирования (120) и фотосъемки (130). На основании проведенного сканирования на этапе (120) получают облако точек (140) области сканирования, которое затем используют для построения трехмерной модели области (150). На этапе (160) осуществляют построение панорамы с помощью объединения полученной трехмерной модели (150) и фотографических данных области (130).
Фиг. 2 отображает промежуточные этапы (141) и (142), которые выполняются при построении трехмерной модели на этапе (150). Для каждой панорамной фотографии строятся буфер глубины на этапе (141), который представляет собой карту расстояний от точки съемки до окружающих объектов, и полигональные модели на этапе (142) - модели, приближающие буфер глубины множеством треугольников, лежащих в разных плоскостях. Впоследствии при объединении на этапе (160) трехмерной модели, полученной на этапе (150), с фотографическими данными, полученными на этапе (130), происходит наложение фотографических данных на треугольники полигональной трехмерной модели.
На Фиг. 3 изображен общий вид системы (200), которая используется для построения трехмерных систем городских панорам.
Получение данных, как фотоизображений, так и данных лазерного сканирования области, производится специальным программно-аппаратным комплексом (210), установленным на автомобиль и включающим панорамные фотокамеры высокого разрешения, лазерные сканеры (дальномеры), устройства точного позиционирования машины и управляющий компьютер со специальным программным обеспечением.
Подобные комплексы производятся сразу несколькими зарубежными компаниями (Topcon, Trimble). Тип комплекса не важен, для применения алгоритмов достаточно лишь, чтобы выходные данные содержали в себе облака точек и панорамные фотографии, с привязкой к географическим координатам и направлениям
Автомобиль движется по улицам города со скоростью 40-60 км/ч. С заданным интервалом цифровые камеры производят фотографирование окружающей местности. Лазерные установки постоянно проводят сканирование окружающего пространства и измерение расстояний до объектов.
Для получения трека машины используются данные с GPS/GLONASS приемников с последующим их уточнением на основе данных с базовых станций и инерциального блока (IMU - Inertial measurement unit).
Программные методы базируются на совмещении данных, полученных при различных проездах одной и той же местности.
k
На снимках ищутся характерные точки. Точки на соседних кадрах сопоставляются, и из этих сопоставлений находится трехмерное преобразование ряда центров панорам Отмеченные на разных панорамах точки - это прямые в трехмерном пространстве. Для получения точных координат объекта достаточно найти пересечение этих прямых, то есть решить систему уравнений  где l(p) это расстояние от искомой точки p до k-й прямой. Уравнение решается методом наименьших квадратов.
Получив уточненные координаты объектов, решаем обратную задачу - для каждой панорамы у нас есть N прямых, проходящих через точки с известными координатами (уточненные координаты объектов). Эти прямые пересекаются в одной точке - центре съемки панорамы. Мы находим этот центр методом наименьших квадратов, описанным в предыдущем пункте.
Для повышения точности позиционирования можно пометить на серии изображений объекты с заранее известными координатами, что позволит достигнуть точности достаточной для построения 3D модели.
Эти действия позволяют уточнить трек мобильной платформы (210).
Сервер постобработки (200) выполняет функцию объединения и расчета данных, полученных от мобильного комплекса (210). Сервер (220) может быть выполнен на базе IBM-PC ЭВМ и представлять собой, но не ограничиваться, мейнфрейм, серверный кластер, суперкомпьютер и т.п.
Архитектура сервера (220) включает в себя один или более процессоров, устройства памяти, как внутренние, так и внешние, интерфейсы и средства ввода/вывода (I/O), соединенные для их взаимодействия посредством шины данных (Serial Bus). Устройства памяти представляют собой, но не ограничиваясь, постоянное запоминающее устройство (ПЗУ), или оперативное запоминающее устройство (ОЗУ), или жесткий диск (HDD), или внешний машиночитаемый носитель данных, или их сочетания. Внешний машиночитаемый носитель данных выбирается из группы: USB-флеш накопитель, карта памяти, оптический диск, мини-диск, внешний HDD диск или иной пригодный тип носителя, с возможностью его использования на сервере (220). Интерфейсы I/O представляют собой, но не ограничиваясь, например, последовательные порты, параллельные порты, универсальную последовательную шину (USB), ШЕЕ-1394 (i. Link или Fire Ware), LAN или любой иной тип интерфейса, использующего при конкретном частном варианте реализации серверного устройства (220). Устройства I/O представляют собой, но не ограничиваясь, клавиатуру, манипулятор мышь, трекбол, сенсорный дисплей (емкостный или резистивный), дисплей, тачпад, джойстик, световое перо и т.п.
Обработанные сервером (220) данные передаются на облачный сервис (230), представляющий собой облачное хранилище данных и ресурс, позволяющий пользователям (240) получить доступ к трехмерным системам городских панорам.
Доступ к облачному сервису (230) может осуществляться с таких типов устройств пользователей, но не ограничиваясь, как персональный компьютер, ноутбук, смартфон, портативная игровая консоль, планшет, фаблет, миникомпьютер и т.п.
Полученные на этапе (130) фотографии области, полученные от отдельных камер, или их объединенная развертка проецируются на грани куба, формируемого при обработке данных в программной среде. При проекции необходимо учитывать направление движения машины и ее наклон в момент съемки так, чтобы фотографии, спроецированные на переднюю часть куба, строго соответствовали горизонтальному направлению на север. Для ускорения процесса сохранения и отображения тайлов панорам в памяти они хранятся в виде единого файла собственного формата, включающего таблицу смещений тайлов и данные в JPEG формате.
В процессе обработки панорамы с фотографии удаляется изображение машины, производившей съемку. Для этого создается маска, задающая точки изображения, на которых присутствует машина. Далее программа создает вертикальную проекцию панорамы и заполняет точки маски с помощью текстуры, найденной на других частях проекции.
Поскольку панорама включает в себя полное 360° изображение, часть объектов на фотографии выглядят слишком темными, а часть слишком светлыми. Используя информацию о цвете пиксела и о средней освещенности в окрестности этого пискела, осуществляется автоматическая коррекция освещенности и увеличение насыщенности цветов.
Чтобы избежать излишней зашумленности и двоения в буфере, образующихся за счет накопления помех от движущихся объектов и погрешностей при измерении точек при нескольких проездах по одной или пересекающимся траекториям, из всего облака точек выделяются лишь те, которые были получены лазером во время +/- Т или в другое время, но отстоящие от центра панорам более чем на N метров. Подбор параметров позволяет, с одной стороны, избежать двоений на близких планах, с другой - не потерять объекты на дальних планах буфера глубин. Для выбора точек непосредственно перед процессом формирования буферов происходит индексирование файла облака точек (las-файла) с целью дальнейшего быстрого получения точек, удовлетворяющих этим условиям.
Выбранные на этапе индексирования точки проецируются на грани куба, аналогичного фотографическим данным. Для устранения дырок в буфере производится интерполяция областей по окружающим существующим точкам. Для компенсации малых сдвигов, вызванных погрешностью съемки и обработки, объекты в буфере незначительно увеличиваются в размерах по сравнению с их текущими параметрами.
Для визуального отображения буфера глубины формируются тайлы панорамы, содержащие изображение предметов в одноканальном режиме (чем светлее точка, тем ближе она к наблюдателю). Каждая точка кодируется в данном случае одним байтом. Удаленность точки обратно пропорциональна цвету, благодаря этому точность измерений до ближайших объектов выше, чем до более удаленных.
Для машинной обработки сервером (220) формируется буфер в специальном формате, где удаленности точек хранится в формате числа с плавающей точкой и занимает 2 байта, причем каждая строка файла с буфером архивируется. Этот файл используются при запросах со стороны клиентского ПО (240) для точного определения координаты точки.
Для передачи буфера глубин на клиентское ПО (240) (необходимо для выполнения ряда функций, например, отображения плоскостного курсора) используется облегченный формат, включающий загрубленный буфер глубин и карту наклона плоскостей.
На основании данных о треке машины (210) в базе данных сохраняются координаты точки съемки. Это единственные параметры, привязанные к конкретной системе координат (например, WGS84). Точки буфера имеют координаты относительные (удаленность от центра и углы). Таким образом, задача перевода трехмерных панорам на другую систему (например, московскую) сводится к пересчету только этих параметров. Буфера перестраивать не нужно.
Для уменьшение трафика и ускорение загрузки данных при передаче на клиентское ПО (240) тайлы фотопанорамы изначально формируются в четырех вариантах, каждый следующий уровень имеет в 4 раза больше тайлов чем предыдущий. Для уменьшения трафика при передаче автоматически определяется разрешение экрана клиентского устройства (240) и пересылается количество тайлов, оптимальное по соотношению качество/объем трафика. При этом передача от облачного сервиса (230) на клиентское устройство (240) начинается с наиболее грубого тайла, за счет этого пользователь видит с помощью ПО на устройстве (240) панораму практически сразу, вне зависимости от ширины доступного канала связи. Под каналом связи понимаются различные способы передачи данных с помощь таких типов сетей, как GSM (2G), 2.5G, 3G, 4G, WiMAX, WAN, LAN, WLAN, WI-FI, Internet и т.п.
На Фиг. 4-11 показаны примеры построенных трехмерных систем городских панорам и функционал, обеспечиваемый за счет построения панорам заявленным способом.
Большинство клиентских функций, таких как установка флажков, проведение измерений, размер расстояний между точками и площадей, требуют определение координат точек пространства. Клиентское ПО (240) посылается запрос через серверное API (220) на определение координаты точки панорамы с определенными азимутом и углом места. Серверное ПО (220) на основании координат центра панорамы и буфера глубин производит расчет координаты (широты, долготы и высоты) и возвращает эти данные клиенту. Функции вычислений выполняются непосредственно на клиенте. Например, расстояние между двумя точками определяется по известным их координатам с помощью нормы N в евклидовом пространстве, определяемой как:
Осуществление функций измерения расстояний между точками, добавление дополнительных объектов и т.д. осуществляется с помощью функциональной панели управления (310). На Фиг. 4 показано изображение дополнительных графических плашек, содержащих информацию, добавленную пользователем, например, номера дома (320). На Фиг. 5 при взаимодействии с панелью (310) пользователь также может добавить более детальную информацию об объекте, которая будет отображаться в визуализируемой области (330). Генерирование области (330) может осуществляться при взаимодействии пользователя (клик мышью, взаимодействие сенсора) с любой часть объекта на экране, к которому относится данная информация.
На Фиг. 6-8 показана функция определения точной высоты или ширины объекта на панораме. Клиентское ПО (240) имеет возможность измерять расстояние от точки до прямой и отдельно вертикальную и горизонтальную составляющие расстояния. Делается это также с помощью запросов на получение координат точек к серверному API (220). Данные о расстоянии отображаются в информационной области (340), которая генерируется при указании пользователем двух точек с помощью панели (310).
На Фиг. 9 показано осуществление измерения кривых линий, состоящих из ряда точек, пользователь может создавать линии любой формы на панорамах для вычисления требуемых параметров. На Фиг. 10 изображен способ расчета площади области, которая вычисляется с помощью обрисовки контура (350) необходимой формы как сумма площадей треугольников, составляющих нарисованную фигуру.
Во время съемки существенные погрешности в получаемые данные могут вносить объекты, структура которых изменчива или трудно определяема (деревья с «дрожащей» листвой или провода, натянутые вдоль дороги). В дальнейшем, такие объекты усложняют структуру полигональных моделей и не дают корректно определять границы частично перекрываемых ими сооружений. Также определенные сложности представляют динамические объекты (машины, пешеходы), которые создают помехи сканированию и «выглядят» из разных точек по-разному.
Для вычленения и удаления таких объектов сравниваются между собой данные от разных проездов. Нестационарные объекты, для которых не нашлось соответствий во всех облаках точек, могут быть удалены из результирующего буфера или модели. Также удаление может проведено в рамках заранее определенных областей пространства, например контурах дорог.
Для корректного отображения сторонних объектов (как статических, так и динамических) фотоизображения разбивается на множество элементарных плоских фигур - треугольников с натянутыми текстурами, т.е. создается полигональная модель. Параметром такой модели является число треугольников - чем их больше, тем более точной, но более весомой получается модель. Внедрение сторонних объектов (360), изображенных на Фиг. 11, происходит одним из двух механизмов: на сервере (220) - с помощью пересчета буферов глубин - и на клиенте (240) - с использованием полигональной модели и буферов глубин. Объекты (360) могут являться как двумерными, так и трехмерными объектами. Полигональная модель позволяет смещать точку зрения наблюдателя от центра панорамы. При этом изображения на каждом треугольнике из полигональной модели пересчитывается с учетом нового угла просмотра.
Изложенные в настоящих материалах заявки сведения об осуществлении заявленного изобретения не должны трактоваться как сведения, ограничивающие иные частные варианты осуществления заявленного изобретения, не выходящие за пределы раскрытия информации заявки, и которые должны являться очевидными для специалиста в данной области техники, имеющим обычную квалификацию, на которых рассчитано заявленное техническое решение.