СПОСОБ И СИСТЕМА АВТОМАТИЗИРОВАННОГО ПОСТРОЕНИЯ ВИРТУАЛЬНОЙ СЦЕНЫ НА ОСНОВАНИИ ТРЕХМЕРНЫХ ПАНОРАМ
METHOD AND SYSTEM FOR AUTOMATED VIRTUAL SCENE CONSTRUCTION BASED ON THREE-DIMENSIONAL PANORAMAS

ОБЛАСТЬ ТЕХНИКИ
[0001] Заявленное техническое решение в общем относится к области вычислительной техники, а в частности к средствам обработки цифровой информации, предназначенным для автоматизированного построения виртуальных сцен для виртуальных туров.
УРОВЕНЬ ТЕХНИКИ
[0002] Виртуальный тур представляет собой способ реалистичного отображения трехмерного многоэлементного пространства на средстве пользователя, которым может выступать компьютерное устройство (компьютер, планшет или смартфон) или средство виртуальной реальности. Элементами виртуального тура, как правило, являются сферические панорамы, соединенные между собой интерактивными ссылками-переходами (также точки перехода или хотспоты). Виртуальные туры могут также включать цилиндрические панорамы, виртуальные 3D-объекты, обыкновенные фотографии, видео, звук и т.д. При этом панорамы в виртуальном туре имеют привязку к карте по координатам места съемки.
[0003] Термин "виртуальный тур", как правило, обозначает сгенерированную модель окружения, построенную, например, с помощью съемки окружения и формирования его трехмерной модели на основании данных облаков точек и сферических панорам, или треугольной сетки (triangle mesh or polygon mesh)", связанных в единый объект для отображения с помощью точек перехода, по которым в процессе просмотра можно виртуально «перемещаться» с помощью взаимодействия пользователя с графическим интерефейсом. В виртуальные туры могут включаться и другие интерактивные элементы: всплывающие информационные окна, поясняющие надписи, графически оформленные клавиши управления и т.п.
[0004] В ходе съемки помещения может возникнуть ситуация, когда часть помещения находится в полной темноте и не может быть освещена.
[0005] Из уровня техники известно решение с использованием Lidar для осуществления съемки в отсутствие освещения, раскрытое в патенте US 20130169668 A1 (Here Global BV 04.07.2013).
[0006] Недостатком известных решений в данной области техники является отсутствие возможности привязки точки в случае, если хотя бы одна или обе из привязываемых точек сняты в условиях недостаточной освещенности, что приводит к снижению точности построения 3D-панорамы помещения.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0007] Заявленное техническое решение решает техническую проблему, заключающуюся в эффективном и точном построении виртуальной сцены на основании трехмерных панорам с помощью 3D-камеры в условиях недостаточной освещенности.
[0008] Основным техническим результатом является повышение точности построения виртуальной сцены на основании трехмерных панорам с помощью 3D-камеры в условиях недостаточной освещенности.
[0009] Указанный технический результат достигается благодаря осуществлению способа автоматизированного построения виртуальной сцены на основании трехмерных панорам с помощью 3D-камеры, обеспечивающей захват фотоизображений и облаков точек окружающего пространства, при этом способ выполняется с помощью процессора 3D-камеры и содержит этапы, на которых:
получают данные в точках съемки, содержащие фотоизображения окружающего пространства и облако точек, характеризующее геометрию пространства, в каждой из упомянутых точек съемки;
определяют для каждой точки съемки степень освещенности фотоизображений, характеризующуюся пороговым значением Т;
осуществляют привязку полученных данных съемки в каждой из точек, причем привязка данных каждой последующей точки выполняется к данным предыдущей точки, и для точек, степень освещенности фотоизображений которых ниже порогового значения Т, привязка к предыдущей точке осуществляется только на основании данных их облаков точек;
осуществляют построение виртуальной сцены на основании выполненной привязки точек съемки.
[0010] В одном из частных вариантов реализации способа режим привязки точек автоматически изменяется в зависимости от освещенности точки съемки.
[0011] В другом частном варианте реализации способа привязка точек осуществляется с помощью формирования древовидного ациклического графа с единственным начальным узлом.
[0012] Кроме того, заявленное решение реализуется с помощью устройства автоматизированного построения виртуальной сцены на основании трехмерных панорам, содержащего:
по меньшей мере один процессор и по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение заявленного способа.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0013] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей.
[0014] Фиг. 1 иллюстрирует дерево свипов, полученных в процессе съемки.
[0015] Фиг. 2 иллюстрирует сырые данные, получаемые в процессе съемки.
[0016] Фиг. 3 иллюстрирует пример HDR-изображения.
[0017] Фиг. 4 иллюстрирует блок-схему заявленного способа.
[0018] Фиг. 5 иллюстрирует пример среза лидара
[0019] Фиг. 6 иллюстрирует пример среза лидара.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0020] В настоящем описании будут использоваться следующие термины для определения.
[0021] Виртуальный тур способ реалистичной визуализации помещения или открытого пространства на экране компьютера, позволяющий конечному пользователю виртуально "перемещаться" по помещению с видом "из глаз".
[0022] Дескриптор - вектор, описывающий окрестность ключевой точки на изображении или облаке точек.
[0023] Ключевая точка - ключевыми точками на изображении считаются существенно выделяющиеся точки, например, с резким перепадом яркости. Ключевыми точками в облаке точек считаются точки с характерной геометрией, например, углы.
[0024] Свип набор данных, полученных в результате съемки из одной точки расположения устройства. Свип содержит набор HDR-изображений, из которых впоследствии формируется 3D-панорама точки съемки, а также облако точек лидара и метаданные.
[0025] Мэтчинг (привязка) - процесс поиска соответствий между дескрипторами в двух свипах и определения их взаимного расположения. Позволяет определить координаты снятого свипа относительно родительского свипа.
[0026] Мэтч - найденное соответствие между двумя дескрипторами в двух разных свипах.
[0027] Облако точек - набор точек в трехмерном пространстве, полученный в ходе лазерного сканирования объекта и представляющий поверхность этого объекта.
[0028] Постобработка - автоматическое преобразование данных сцены в виртуальный тур.
[0029] Родительская точка съемки точка, в которой было расположено устройство при съемке родительского свипа.
[0030] Родительский свип - свип, с которым будет осуществляться мэтчинг следующего снимаемого свипа.
[0031] Сырые данные - данные, полученные с камеры, лидара, энкодера и датчика IMU устройства, до их обработки.
[0032] Срез лидара - лежащее в плоскости облако точек, полученное за один импульс лидара. По окончании съемки из отснятых срезов формируется облако точек, описывающее геометрию отсканированной области.
[0033] Трехмерная панорама (3D-панорама) - интерактивное фотоизображение позволяющее показать окружающее пространство вокруг точки съемки со всех сторон.
[0034] Точка съемки - точка, в которой расположено устройство при съемке свипа.
[0035] В качестве 3D-камеры для съемки трехмерных виртуальных туров может применяться, например, 3D-камера FilinCam V6/V7/X1 и др. 3D-камера предназначена для съемки помещений и открытых пространств для дальнейшего создания их фотореалистичных цифровых моделей и виртуальных туров. Процесс съемки включает сбор и предварительную обработку сырых данных с 3D-камеры, которая также содержит по меньшей мере: вычислительный модуль (процессор или микроконтроллер), память, лидар, акселерометр, датчик IMU, энкодер (датчик угла поворота), механизм вращения камеры, включающий в себя редуктор и шаговый двигатель, камеру высокого разрешения для съемки фотопанорам, которые необходимы для формирования набора данных для последующего формирования виртуальных туров. Управление камерой осуществляется через программное приложение (браузер), установленное на устройстве оператора, например, планшете, смартфоне, ноутбуке или ПК. По окончании съемки полученные данные выгружаются с 3D-камеры на сервер постобработки, где происходит их хранение, обработка, создание 3D-моделей отсканированного пространства и виртуальных туров на их основе. Готовые виртуальные туры передаются с сервера постобработки на сервер для последующего доступа к ним со стороны пользователей.
[0036] На Фиг. 1 представлен пример дерева свипов, полученных в процессе съемки с помощью 3D-камеры. Процесс съемки начинается с установки камеры, закрепленной на штативе, в начальную точку съемки (точки 1-6 на Фиг. 1). Камера совершает полный оборот вокруг оси, сканируя окружающее пространство лидаром и несколько раз останавливаясь, чтобы выполнить серию фотоснимков. В результате формируется так называемый "свип" (от англ. Sweep), т.е. набор данных, состоящий из нескольких HDR-изображений, л ид арного облака точек и метаданных.
[0037] Пример данных, хранимых в свипе:
- 3 серии по 6 или 7 (в зависимости от выбранного режима) снимков с камеры (140), которые используются для создания HDR-изображений;
- Набор срезов лидара для создания облака точек. Лидар с высокой частотой (40 Гц) генерирует импульсы лазерного излучения, сканирующие окружающее пространство. Каждый импульс сканирует пространство в вертикальной плоскости с охватом 270°. Облако точек, полученное в результате одного импульса, называется "срезом лидара". Пример такого среза (отмечен красным на Фиг. 5). Поскольку лидар во время съемки постоянно вращается вокруг вертикальной оси, за полный оборот он собирает несколько сотен таких вертикальных срезов, каждый из которых повернут на небольшой угол относительно предыдущего. Из этих срезов по окончании сканирования формируется единое облако точек, описывающее геометрию окружающего пространства. На Фиг. 6 это облако точек, состоящее из множества отдельных срезов, изображено желтым, а первый срез по-прежнему выделен красным;
- Кватернионы и углы отклонения камеры от горизонта на момент начала и окончания съемки свипа, рассчитанные на основе данных акселерометра и гироскопа IMU;
- Данные энкодера (временные метки, углы поворота камеры);
- Метаданные (например, режим съемки свипа: разрешение съемки, время и прочее).
[0038] После получения данных в рамках съемки первого свипа в точке №1 камера перемещается в новую точку съемки (например, точка №2) и выполняется съемка следующего свипа. Набор отснятых свипов, приведенный к единой системе координат, называется "сценой".
[0039] Как показано на Фиг. 1, свипы в сцене всегда организованы в древовидный ациклический граф с единственным начальным узлом. Для каждого свипа в сцене, кроме первого, определен так называемый "родительский" свип. По умолчанию родительским считается последний снятый свип, но при необходимости родительским свипом может быть назначен любой из ранее отснятых свипов. Например, на Фиг. 1 родительским для свипа №4 является не свип №3, как было бы назначено по умолчанию, а свип №2.
[0040] Каждый свип имеет свою систему координат, которая совпадает с системой координат 3D-камеры на момент начала съемки данного свипа. Система координат первого свипа также служит системой координат сцены. Таким образом, чтобы построить из свипов сцену, необходимо решить задачу перевода облака точек каждого свипа из собственной системы координат в систему координат сцены.
[0041] Для этого используется алгоритм привязки, который анализирует облака точек и фотопанорамы двух соседних (т.е. соединенных одним ребром графа) свипов в дереве, ищет совпадающие участки, на их основе определяет взаимное расположение и ориентацию этих свипов в сцене и рассчитывает матрицу перехода между ними.
j
i
j
i
i
j
ij
[0042] Алгоритм привязки рассчитывает матрицы перехода Ti для каждой пары соседних свипов S и S. Чтобы перевести облако точек P свипа S в систему координат свипа S, достаточно умножить его на T.
i
i
ij
j
P=P*T
Здесь и далее используется следующая нотация:
i
3
• S - свип с номером i. Например, S - свип №3.
i
i
3
• P - облако точек свипа S в собственной системе координат. Например, Р - облако точек свипа №3.
i
i
j
3
j
5
• P - облако точек свипа S, переведенное в систему координат свипа S. Например, Р - облако точек свипа №3 в системе координат свипа №5.
ij
i
j
35
3
3
5
• T - матрица перехода, служащая для преобразования облака точек свипа S в систему координат свипа S. Например, Т - матрица перехода, переводящая облако точек Р в Р.
j
j
i
ji
ij
[0043] Чтобы перевести облако точек P свипа S в систему координат свипа S, достаточно умножить это облако точек на матрицу T, обратную к T.
ji
ij
-1
T=(T)
j
j
ij
i
-1
P=P*(T)
6
1
5
2
1
6
65
52
21
[0044] Если свипы не являются соседними в дереве, задача разделяется на несколько последовательных шагов. Например, чтобы на Фиг. 1 перевести облако точек свипа S в систему координат свипа S, его следует сначала перевести в систему координат свипа S, затем S, и наконец S. Для этого необходимо последовательно умножить облако точек свипа S на матрицы перехода T, Т и Т:
6
6
65
5
Р=Р*Т
6
6
52
2
5
Р=Р*Т
6
6
21
1
2
Р=Р*Т
Или, более кратко:
6
6
65
52
21
1
Р=Р*Т*Т*Т
1
[0045] Следует отметить, что древовидная структура графа гарантирует единственность пути между любыми двумя свипами в сцене. Таким образом, чтобы привести все свипы к единой системе координат, на графе необходимо определить единственно возможный путь от каждого свипа до начального свипа S и последовательно применять умножение на соответствующие матрицы перехода. В результате этой процедуры формируется сцена, содержащая все отснятые панорамы и облака точек в единой системе координат.
[0046] Съемка свипа состоит из двух основных этапов: непосредственно съемка и предварительная обработка отснятых сырых данных. При съемке 3D-камера совершает полный оборот вокруг оси, сканируя окружающее пространство лидаром с частотой 40 Гц, совершая в процессе съемки несколько остановок (например, 3 остановки), чтобы сделать серию фотоснимков с различной экспозицией. В результате этого процесса в памяти 3D-камеры сохраняется несколько серий снимков с камеры, набор срезов лидара, а также вспомогательные метаданные, включая временные метки и углы поворота 3D-камеры на момент получения каждого снимка и каждого среза лидара.
[0047] Обработка полученных сырых данных включает следующие операции:
- Из каждой серии снимков (пример серии представлен на Фиг. 2) формируется HDR-изображение (пример представлен на Фиг. 3);
- Из срезов лидара формируется единое облако точек. Для этого каждый срез умножается на матрицу поворота вокруг вертикальной оси Y на угол, заданный показаниями энкодера 3D-камеры на момент съемки среза, и на матрицу калибровки лидара.
[0048] Полученные HDR-изображения и облака точек затем используются как исходные данные для расчета попарной привязки свипов.
[0049] В большинстве цифровых фотокамер динамический диапазон матрицы (диапазон яркостей, воспроизводимый без искажений) существенно уступает человеческому зрению. Узкий динамический диапазон означает, что матрица не способна одновременно зафиксировать очень светлый и очень темный участки изображения без потерь информации. В результате либо светлый участок отображается как белое пятно, либо темный - как черное.
[0050] Для решения этой проблемы используется технология создания HDR-изображений. HDR-изображение формируется из серии обычных снимков, выполненных с разной экспозицией. На снимках с короткой экспозицией хорошо отображаются более светлые участки, ас длинной - более темные. В получаемом HDR-изображении содержатся все детали из всех исходных снимков, как в наиболее темных, так и в максимально светлых участках. Такое изображение максимально приближено к восприятию окружающего мира человеческим глазом.
[0051] В процессе съемки может возникнуть ситуация, когда часть помещения находится в полной темноте (в условиях, когда степень освещенности ниже порогового значения Т) и не может быть освещена. Тогда камера анализирует полученное изображение и если количество темных пикселей (т.е. пикселей с яркостью ниже порогового значения) превышает 20%, то включается режим съемки при недостаточной освещенности.
[0052] На Фиг. 4 показаны основные этапы способа (100) автоматизированного построения виртуальной сцены на основании трехмерных панорам с помощью 3D-камеры, обеспечивающей захват фотоизображений и облаков точек окружающего пространства, при этом способ выполняется с помощью процессора 3D-камеры.
[0053] На этапе (101) получают данные в точках съемки, содержащие фотоизображения окружающего пространства и облако точек, характеризующее геометрию пространства, в каждой из упомянутых точек съемки. Данный этап был подробно описан выше в материалах заявленного решения.
[0054] На этапе (102) определяют для каждой точки степень освещенности фотоизображений, характеризующийся пороговым значением Т (количество темных пикселей на изображении превышает 20%).
[0055] На этапе (103) осуществляют привязку полученных данных съемки в каждой из точек, причем привязка данных каждой последующей точки выполняется к данным предыдущей точки, и для точек, степень освещенности фотоизображений которых ниже порогового значения Т, привязка к предыдущей точке осуществляется только на основании данных облаков точек.
i
j
[0056] Рассмотрим принцип привязки соседних свипов на примере свипов S и S в процессе генерирования сцены виртуального тура с соответствующими точками обзора (точками съемки).
i
j
[0057] Вначале на HDR-изображениях свипов S и S выполняется поиск ключевых точек и дескрипторов (векторов, описывающих окрестность найденных ключевых точек). Поиск ключевых точек и расчет их дескрипторов выполняется при помощи алгоритмов из открытой библиотеки OpenCV. Дескрипторы, найденные на HDR-изображениях обоих свипов, попарно сопоставляются при помощи алгоритмов из открытой библиотеки FLANN. Совпадение двух дескрипторов называется "мэтч" (от англ. "to match" - совпадать). Наиболее точные из найденных мэтчей проецируются с HDR-изображений на облака точек и сохраняются в памяти камеры для дальнейшего использования.
i
j
[0058] Параллельно выполняется поиск ключевых точек и дескрипторов на облаках точек свипов S и S при помощи алгоритмов из открытой библиотеки PCL (Point cloud library). Найденные дескрипторы на облаках точек обоих свипов попарно сопоставляются при помощи алгоритмов из открытой библиотеки FLANN. Наиболее точные из найденных мэтчей сохраняются в памяти камеры для дальнейшего использования.
[0059] Таким образом формируется объединенный набор лучших мэтчей из двух источников: 2D (HDR-изображения) и 3D (облака точек).
[0060] Когда съемка свипа производится в режиме недостаточной освещенности, поиск ключевых точек и дескрипторов по его HDR-изображениям не производится, и из 2D-источника не поступает ни одного мэтча. В этом случае берется набор мэтчей только из 3D-источника.
[0061] Затем на основе набора лучших мэтчей из доступных источников выполняется поиск возможных матриц перехода Ту при помощи алгоритма RANSAC. Алгоритм берет за основу несколько случайно выбранных мэтчей (например, 4-5 мэтчей) и рассчитывает для них матрицу перехода, после чего осуществляет проверку того, какое количество мэтчей соответствует найденной матрице. Процесс повторяется до тех пор, пока не будет найдена матрица перехода, которой соответствует достаточно большое число мэтчей, либо будет достигнуто максимальное число итераций поиска.
[0062] На этапе (104) осуществляют построение виртуальной сцены на основании выполненной привязки точек съемки. Данный этап был подробно описан выше в материалах заявленного решения.
[0063] Данный подход к съемке в условиях освещенности ниже порогового значения (недостаточной освещенности) позволяет существенно повысить точность построения виртуальной сцены на основе трехмерных панорам с помощью 3D-камеры.
[0064] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.