СПОСОБ И СИСТЕМА УПРАВЛЕНИЯ ОТОБРАЖЕНИЕМ ВИРТУАЛЬНЫХ ТУРОВ В МНОГОПОЛЬЗОВАТЕЛЬСКОМ РЕЖИМЕ
METHOD AND SYSTEM FOR CONTROLLING DISPLAY OF VIRTUAL TOURS IN MULTI-USER MODE

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее решение относится к области компьютерной техники, в частности к методам управления взаимодействия пользователей в виртуальных турах.
УРОВЕНЬ ТЕХНИКИ
[0002] Виртуальный тур представляет собой способ реалистичного отображения трехмерного многоэлементного пространства на средстве пользователя, которым может выступать компьютерное устройство (компьютер, планшет или смартфон) или средство виртуальной реальности. Элементами виртуального тура, как правило, являются сферические панорамы, соединенные между собой интерактивными ссылками-переходами (также точки перехода или хотспотами). Виртуальные туры могут также включать цилиндрические панорамы, виртуальные 3D-объекты, обыкновенные фотографии, видео, звук и т.д. При этом панорамы в виртуальном туре имеют привязку к карте по координатам места съемки и ориентированы по сторонам света.
[0003] Иными словами, виртуальный тур является общим обозначением для трехмерной модели окружения, сформированной с помощью нескольких сферических панорам, а также облаков точек, получаемых с помощью лазерной съемки Лидаром (англ. Lidar - Light Detection and Ranging), связанных в единый объект для отображения с помощью точек перехода, по которым в процессе просмотра можно виртуально «перемещаться». В виртуальные туры могут включаться и другие интерактивные элементы: всплывающие информационные окна, поясняющие надписи, графически оформленные клавиши управления и т.п.
[0004] Существующие решения в части отображения и предоставления пользователям доступа к просмотру и взаимодействию с виртуальным туром, как правило, ограничиваются плеером, воспроизводящем окружение виртуального тура, и позволяющим нескольким пользователям коллаборативно просматривать модель окружения внутри тура. Примером такой технологии может являться технология, раскрытая в заявке WO 2021074924 A1 (Mital, 22.04.2021), в которой описывается способ одновременного просмотра виртуального тура несколькими участниками, с возможностью живого общения и отслеживания перемещения курсора ведущего участника.
[0005] Недостатком такого рода решений является принцип отображения интерфейса при подключении новых участников, который обеспечивает формирование отображение модели тура или в первоначальной точке начала тура, или в какой-либо случайной точке, что приводит к неэффективной навигации внутри тура подключаемых пользователей.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] Заявленное решение решает техническую проблему, заключающуюся в эффективном управлении отображением виртуального тура в многопользовательском режиме.
[0007] Технический результат заключается в повышении эффективности навигации пользователей виртуального тура, за счет привязки точки отображения модели тура подключаемых устройств участников к текущей точке отображения устройства ведущего.
[0008] В предпочтительном варианте осуществления заявленного решения заявлен способ управления отображением виртуальных туров в многопользовательском режиме, выполняемый с помощью вычислительного устройства, содержащего по меньшей мере один процессор и память, хранящую машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают:
получение команды от устройства первого пользователя на генерирование виртуального тура в многопользовательском режиме;
генерирование виртуального тура, представляющего собой 3Д-модель, текстурированную 360-градусными фотопанорамами, при этом виртуальный тур отображается в интерфейсе пользовательского устройства, и 3Д-модель содержит заданные точки просмотра (POV), причем каждая точка содержит трехмерные координаты;
отображение виртуального тура для первого пользователя, при этом первый пользователь назначается ведущим;
получение команды от устройств пользователей на подключение к упомянутому виртуальному туру новых пользователей, при этом
получают данные POV, в которой находится первый пользователь;
осуществляют формирование отображения виртуального тура для каждого нового пользователя в POV, в которой находится первый пользователь, причем отображение виртуального тура для каждого нового пользователя после подключения дублирует отображение первого пользователя;
отображают виртуальный тур для пользователей с возможностью его просмотра и перемещения по заданным POV.
[0009] В одном из частных вариантов осуществления подключение пользователей к виртуальному туру осуществляется с помощью формирования гиперссылки на подключения первым пользователем.
[0010] В другом частном варианте осуществления для каждого участника виртуального тура формируется виртуальный аватар.
[0011] В другом частном варианте осуществления при подключении пользователей к виртуальному туру генерируется текстовая и/или голосовая чат-сессия.
[0012] В другом частном варианте осуществления первый пользователь может передать права ведущего другому пользователю.
[0013] В другом частном варианте осуществления при передаче прав отображение виртуального тура устанавливается в соответствии с POV пользователя, назначенного ведущим.
[0014] В другом частном варианте осуществления после момента подключения новых пользователей к POV первого пользователя, на устройствах новых подключенных пользователей, активируется функция ручного перемещения камеры обзора в POV или функция свободного перемещения по POV виртуального тура.
[0015] В другом частном варианте осуществления ведущий пользователь управляет включением/отключением звука микрофона других пользователей в чат-сессии.
[0016] В другом частном варианте осуществления отображение виртуального тура для каждого нового подключаемого пользователя начинается с повтора маршрут перемещения по POV первого пользователя.
[0017] В другом частном варианте осуществления аватар ведущего выполнен с возможностью формирования виртуальной указки.
[0018] В другом частном варианте осуществления 3Д-модель виртуального тура содержит 3Д-объекты и представляет собой модель помещения, выполненную с возможностью изменения по меньшей мере текстуры 3Д-модели и/или 3Д-объектов.
[0019] В другом частном варианте осуществления 3Д-объекты содержат метаданные, обеспечивающие возможность получения дополнительной информации об объекте, включающей по меньшей мере одно из: текстовая информация, видео, ссылка на внешний ресурс.
[0020] В другом частном варианте осуществления информация отображается в дополнительном окне, располагаемом поверх интерфейса виртуального тура.
[0021] В другом частном варианте осуществления интерфейс виртуального тура содержит функцию, обеспечивающую измерение размеров объектов.
[0022] Заявленное решение также осуществляется с помощью системы управления отображением виртуальных туров в многопользовательском режиме, которая содержит по меньшей мере один процессор, функционально связанный с по меньшей мере одной памятью, хранящей машиночитаемые инструкции, которые при их выполнении процессором реализуют вышеуказанный способ.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0023] Фиг. 1 иллюстрирует общую схему подключения пользователей к виртуальному туру.
[0024] Фиг. 2 иллюстрирует пример процесса съемки с помощью 3D-камеры.
[0025] Фиг. 3 иллюстрирует сырые данные, получаемые в процессе съемки.
[0026] Фиг. 4 иллюстрирует пример HDR изображения.
[0027] Фиг. 5 иллюстрирует пример карты полы свипа.
[0028] Фиг. 6 иллюстрирует карту пола этажа.
[0029] Фиг. 7 иллюстрирует схему взаимодействия устройств.
[0030] Фиг. 8 иллюстрирует пример отображения виртуального тура.
[0031] Фиг. 9 иллюстрирует миникарту виртуального тура.
[0032] Фиг. 10 иллюстрирует окно изменения объектов виртуального тура.
[0033] Фиг. 11 иллюстрирует пример перемещения по точкам съемки внутри тура.
[0034] Фиг. 12 иллюстрирует общий вид вычислительного устройства.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0035] На Фиг. 1 представлена общая схема взаимодействия пользователей при совместном участии и просмотре виртуальных туров. Генерация виртуального тура (200) осуществляется на сервере (120), к которому подключаются пользователи (110) с помощью различного вида вычислительных устройств (111-113). В качестве устройств могут выступать, например, смартфон, компьютер, ноутбук, планшет, смарт ТВ, средство виртуальной реальности и прочие устройства, которые функционально могут воспроизводить и формировать интерфейс для пользовательского взаимодействия с виртуальным туром (200), независимо от принципа его отображения (дисплей устройства, виртуальная реальность) и взаимодействия с объектами внутри тура (с помощью средств ввода или контроллеров, предназначенных для виртуальной реальности).
[0036] Сервер (120) представляет собой стандартное вычислительное компьютерное устройства и может представлять как серверный кластер, так и облачный сервер. Основная задача сервера (120) осуществлять обработку данных для предоставления виртуальных туров (200), обеспечивая последующую передачу данных на пользовательские устройства (110). Сервер (120) также может использоваться для непосредственного генерирования виртуальных туров (200) путем обработки данных (облака точек, фотопанорамы, изображения), поступающих со специализированной 3D-камеры (140).
[0037] Обмен информацией между пользователями (110) и сервером (120) осуществляется посредством канала передачи данных (130), который представляет собой, как правило, глобальную сеть «Интернет». Протокол реализации канал передачи данных (130) может выбираться из любого известного типа протоколов, таких как: LAN, WAN, PAN, WLAN, IEEE 802.11, GSM и т.п. Соответствующий протокол и тип подключения конкретного устройства (111 - 113) к серверу (120) определяется исходя из технического воплощения такого типа устройства и соответствующего аппаратного оснащения для выполнения связи с сетью «Интернет».
[0038] В качестве 3D-камеры (140) для съемки трехмерных виртуальных туров (200) может применяться, например, 3D-камера FilinCam V6/V7/X1 и др. 3D-камера (140) предназначена для съемки помещений и открытых пространств для дальнейшего создания их фотореалистичных цифровых моделей и виртуальных туров. Процесс съемки включает сбор и предварительную обработку сырых данных с 3D-камеры (140), которая также содержит по меньшей мере: вычислительный модуль (процессор или микроконтроллер), память, лидар, акселерометр датчик IMU и энкодер (датчик угла поворота), которые необходимы для формирования набора данных для последующего формирования виртуальных туров (200). Управление камерой (140) осуществляется через программное приложение, установленное на мобильном устройстве оператора, например, планшете, смартфоне или ноутбуке. По окончании съемки полученные данные выгружаются с 3D-камеры (140) на сервер постобработки, где происходит их хранение, обработка, создание 3D-моделей отсканированного пространства и виртуальных туров (200) на их основе. Готовые виртуальные туры (200) передаются с сервера постобработки на сервер (120) для последующего доступа к ним со стороны пользователей (110).
[0039] На Фиг. 2 представлен пример процесса съемки области с помощью 3D-камеры для последующего построения на его основе виртуального тура (200). Процесс съемки начинается с установки камеры (140), закрепленной на штативе, в начальную точку съемки (точки 1 - 6 на Фиг. 2). Камера (140) совершает полный оборот вокруг оси, сканируя окружающее пространство лидаром и несколько раз останавливаясь, чтобы выполнить серию фотоснимков. В результате формируется так называемый "свип" (от англ. Sweep), т.е. набор данных, состоящий из нескольких HDR-снимков, лидарного облака точек и метаданных.
[0040] Пример данных, хранимых в свипе.
- три серии по 6 или 7 (в зависимости от выбранного режима) снимков с камеры (140), которые используются для создания HDR-изображений;
- Набор срезов лидара для создания облака точек;
- Кватернионы и углы отклонения камеры (140) от горизонта на момент начала и окончания съемки свипа, рассчитанные на основе данных акселерометра и гироскопа IMU;
- Данные энкодера (временные метки, углы поворота камеры).
- Метаданные (например, режим съемки свипа: разрешение съемки, время и прочее).
[0041] После получения данных в рамках съемки первого свипа в точке №1 камера (140) перемещается в новую точку съемки (например, точка №2) и выполняется съемку следующего свипа. Набор отснятых свипов, приведенный к единой системе координат, называется "сценой".
[0042] Как показано на Фиг. 2, свипы в сцене всегда организованы в древовидный ациклический граф с единственным начальным узлом. Для каждого свипа в сцене, кроме первого, определен так называемый "родительский" свип. По умолчанию родительским считается последний снятый свип, но при необходимости родительским свипом может быть назначен любой из отснятых свипов. Например, на Фиг. 2 родительским для свипа №4 является не свип №3, как было бы назначено по умолчанию, а свип №2.
[0043] Каждый свип имеет свою систему координат, которая совпадает с системой координат 3D-камеры (140) на момент начала съемки данного свипа. Система координат первого свипа также служит системой координат сцены. Таким образом, чтобы построить из свипов сцену, необходимо решить задачу перевода облака точек каждого свипа из собственной системы координат в систему координат сцены.
[0044] Для этого используется алгоритм привязки, который анализирует облака точек и фотопанорамы двух соседних (т.е. соединенных одним ребром графа) свипов в дереве, ищет совпадающие участки, на их основе определяет взаимное расположение и ориентацию этих свипов в сцене и рассчитывает матрицу перехода между ними.
ij
i
j
i
i
j
ij
[0045] Алгоритм привязки рассчитывает матрицы перехода T для каждой пары соседних свипов S и S. Чтобы перевести облако точек P свипа S в систему координат свипа S, достаточно умножить его на T.
j
i
ij
Pi=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
[0046] Чтобы перевести облако точек P свипа S в систему координат свипа S, достаточно умножить это облако точек на матрицу T, обратную к T.
ji
ij
-1
T=(T)
ji
j
ij
-1
P=P*(T)
6
1
5
2
1
6
65
52
21
[0047] Если свипы не являются соседними в дереве, задача разделяется на несколько последовательных шагов. Например, чтобы на Фиг. 1 перевести облако точек свипа S в систему координат свипа S, его следует сначала перевести в систему координат свипа S, затем S, и наконец S. Для этого необходимо последовательно умножить облако точек свипа S на матрицы перехода Т, Т и Т:
6
6
65
5
Р=Р * Т
6
6
52
2
5
Р=Р * Т
6
6
21
1
2
Р=Р * T
Или, более кратко:
6
6
65
52
21
1
Р=Р * Т * Т * Т
[0048] Следует отметить, что древовидная структура графа гарантирует единственность пути между любыми двумя свипами в сцене. Таким образом, чтобы привести все свипы к единой системе координат, на графе необходимо определить единственно возможный путь от каждого свипа до начального свипа №1 и последовательно применять умножение на соответствующие матрицы перехода. В результате этой процедуры формируется сцена, содержащая все отснятые панорамы и облака точек в единой системе координат.
[0049] Съемка свипа состоит из двух основных этапов: непосредственно съемка и предварительная обработка отснятых сырых данных. При съемке 3D-камера (140) совершает полный оборот вокруг оси, сканируя окружающее пространство лидаром с частотой 40 Гц, совершая в процессе съемки несколько остановок (например, три остановки), чтобы сделать серию фотоснимков с различной экспозицией. В результате этого процесса в памяти 3D-камеры (140) сохраняется несколько серий снимков с камеры, набор срезов лидара, а также вспомогательные метаданные, включая временные метки и углы поворота 3D-камеры (140) на момент получения каждого снимка и каждого среза лидара.
[0050] Обработка полученных сырых данных включает следующие операции:
- Из каждой серии снимков, представленных на Фиг. 3, формируется HDR-изображение, представленное на Фиг. 4;
- Из срезов лидара формируется единое облако точек. Для этого каждый срез умножается на матрицу поворота вокруг вертикальной оси Y на угол, заданный показаниями энкодера 3D-камеры (140) на момент съемки среза, и на матрицу калибровки лидара.
Полученные HDR-изображения и облака точек затем используются как исходные данные для расчета попарной привязки свипов.
[0051] В большинстве цифровых фотокамер динамический диапазон матрицы (диапазон яркостей, воспроизводимый без искажений) существенно уступает человеческому зрению. Узкий динамический диапазон означает, что матрица не способна одновременно зафиксировать очень светлый и очень темный участки изображения без потерь информации. В результате либо светлый участок отображается как белое пятно, либо темный как черное.
[0052] Для решения этой проблемы используется технология создания HDR-изображений. HDR-изображение формируется из серии обычных снимков, выполненных с разной экспозицией. На снимках с короткой экспозицией хорошо отображаются более светлые участки, а с длинной более темные. В получаемом HDR-изображении содержатся все детали из всех исходных снимков, как в наиболее темных, так и в максимально светлых участках. Такое изображение максимально приближено к восприятию окружающего мира человеческим глазом.
i
j
i
j
[0053] Далее рассмотрим принцип привязки соседствующих свипов на примере свипов S и S в процессе генерирования сцены виртуального тура (200) с соответствующими точками обзора (точками съемки). Вначале на HDR-изображениях свипов S и Sвыполняется поиск ключевых точек и дескрипторов (векторов, описывающих окрестность найденных ключевых точек). Ключевыми точками считаются точки с характерной геометрией, например, углы, или пересечения плоскостей. Поиск ключевых точек и расчет их дескрипторов выполняется при помощи алгоритмов из открытой библиотеки OpenCV. Дескрипторы, найденные на HDR-изображениях обоих свипов, попарно сопоставляются при помощи алгоритмов из открытой библиотеки FLANN. Совпадение двух дескрипторов называется "мэтч" (от англ. "to match" - совпадать). Наиболее точные из найденных мэтчей проецируются с HDR-изображений на облака точек и сохраняются в памяти камеры (140) для дальнейшего использования.
i
j
[0054] Параллельно выполняется поиск ключевых точек и дескрипторов на облаках точек свипов S и S при помощи алгоритмов из открытой библиотеки PCL (Point cloud library). Найденные дескрипторы на облаках точек обоих свипов попарно сопоставляются при помощи алгоритмов из открытой библиотеки FLANN. Наиболее точные из найденных мэтчей сохраняются в памяти камеры (140) для дальнейшего использования.
[0055] Таким образом формируется объединенный набор лучших мэтчей из двух источников: 2D (HDR-изображения) и 3D (облака точек). Однако возможны и ситуации, когда один из источников отсутствует. Например, если хотя бы один из сопоставляемых свипов снят в режиме "в полной темноте", поиск ключевых точек и дескрипторов по его HDR-изображениям не производится, и из 2D-источника не поступает ни одного мэтча. Аналогично, возможны ситуации, когда геометрия отсканированного пространства не позволяет найти ни одной ключевой точки в облаке точек свипа (например, такое возможно на большом ровном футбольном поле). В этих случаях следует ограничиться набором мэтчей только из одного источника 2D или 3D что немного снижает итоговую точность привязки.
IJ
[0056] Затем на основе набора лучших мэтчей из доступных источников выполняется поиск возможных матриц перехода T при помощи алгоритма RANSAC. Алгоритм берет за основу несколько случайно выбранных мэтча (например, 4-5 мэтчей) и рассчитывает для них матрицу перехода, после чего осуществляет проверку того, какое количество мэтчей соответствует найденной матрице. Процесс повторяется до тех пор, пока не будет найдена матрица перехода, которой соответствует достаточно большое число мэтчей, либо будет достигнуто максимальное число итераций поиска.
IJ
[0057] Возможны случаи, когда алгоритм RANSAC находит больше одной матрицы перехода. Как правило, это происходит в ситуациях однообразно чередующегося окружения (например, длинный коридор с одинаковыми окнами на равном расстоянии). В этом случае, найденные матрицы проходят проверку на соответствие показателям дополнительных датчиков 3D-камеры (140), таких как IMU, магнитометр и т.д. Матрица, максимально точно соответствующая этим критериям, выбирается в качестве финальной матрицы перехода T.
[0058] В зависимости от геометрии сканируемого объекта, сцена может содержать один или несколько этажей. Каждый этаж содержит группу свипов, привязанных друг к другу посредством мэтчинга. Каждый свип всегда принадлежит определенному этажу, т.к. свип не может располагаться вне этажа или на нескольких этажах одновременно.
[0059] Для каждого этажа формируется так называемая "карта пола", схематично отображающая облака точек свипов данного этажа в виде сверху. Карта пола этажа состоит из карт пола всех свипов, относящихся к данному этажу.
[0060] Карта пола свипа формируется следующим образом: через точку начала координат свипа проводится горизонтальная плоскость, отсекающая все точки, лежащие выше нее. Точки облака, лежащие ниже плоскости отсечения, проецируются на HDR-панорамы свипа в соответствии с жестко заданным коэффициентом "метры/пиксели". Затем для каждой точки определяется цвет отображения, соответствующий цвету пикселя HDR-панорамы, на который спроецировалась данная точка. Наконец, все точки отображаются в горизонтальной проекции "вид сверху" с использованием цветов, определенных выше.
[0061] Пример карты пола свипа представлен на Фиг. 5. Карта пола этажа состоит из карт пола всех свипов данного этажа с учетом их взаимного расположения. Информация об относительном расположении свипов получается на этапе мэтчинга, что позволяет сформировать карту пола этажа, представленную на Фиг. 6.
[0062] Карта пола не является статичной и обновляется по мере съемки или удаления свипов. Как только камера (140) снимает свип и выполняет его мэтчинг с родительским свипом, этот свип сразу же отображается на карте пола соответствующего этажа сцены. При удалении одного или нескольких свипов карта пола также автоматически перерисовывается.
[0063] На Фиг. 7 представлена общая схема работы заявленного решения при многопользовательском режиме. Как показано на примере, устройство (111) или устройство ведущего активирует создание комнаты многопользовательского режима для виртуального тура (210). Для этого с помощью устройства (111) пользователь активирует на сервере (120) выбор для генерирования соответствующего виртуального труа (210) и далее осуществляется активация многопользовательского режима с помощью соответствующей функции графического интерфейса пользователя (GUI). Приглашение для участия в рамках единого виртуального тура (210) нескольких пользователей (например, пользователи 112, 113) осуществляется с помощью формирования ссылки на подключение (211), которая создается сервером (120) на основании запроса от устройства ведущего (111). Ссылка (211) представляет собой гиперссылку на подключение, которая передается от устройства (111) на подключаемые устройства (112, 113) с помощью любого пригодного типа обмена данными (CMC, мессенджер, e-mail и т.п.). Ссылка может также кодироваться в QR-код, который также передается от устройства ведущего (111) на подключаемое устройство.
[0064] На Фиг. 8 представлен пример отображения виртуального тура (300) на устройстве пользователя. Виртуальный тур (300) содержит ряд элементов окружающего пространства (311), например, предметы мебели, интерьера и т.п. Каждый элемент представляет собой объект виртуального пространства, с которым может взаимодействовать пользователь. При перемещении внутри модели тура (300) интерфейс также отображает миникарту (310), на которой представлен схематичный план помещения и точка, в которой в текущий момент находится пользователь. На миникарте (310) могут отображаться точки POV для перемещения в них как в текущем помещении, так и на общей модели тура. При активации на миникарте (310) такой точки с помощью графического интерфейса обеспечивает перемещение пользователя в данную точку.
[0065] Как представлено на Фиг. 9, на миникарте (310) помимо местоположения пользователя (например, пользователь 111) отображается также направление его взгляда (1111), показывающее точку осмотра тура (300) с позиции его камеры.
[0066] На Фиг. 10 представлен пример отображения интерфейса при взаимодействии с объектами (311) виртуального тура (300). При взаимодействии с объектом (311) с помощью средства ввода, например, клика мышкой или нажатием на сенсорный дисплей смартфона или планшета, открывается дополнительное окно (312), отображающее дополнительную информации об объекте. Такой информацией может выступать: название объекта (311), его стоимость, возможность заказа и возможность изменения текстуры (313) объекта (311). 3Д-объекты тура (311) содержат метаданные, обеспечивающие возможность получения дополнительной информации об объекте, такой как: текстовая информацию с описанием объекта, видео, ссылка на внешний ресурс.
[0067] Объекты (311) являются реальными фотокопиями предметов мебели, интерьера и т.п. Интерфейс тура (300) позволяет изменять текстуру объекта (311) с помощью ее изменения посредством дополнительного интерфейса (313). Это позволяет изменить цветовую гамму объекта (311) в рамках текущего тура (300). При этом каждый из пользователей, принимающих участие в туре (300), могут независимо друг от друга изменять текстуру объектов (311), что обеспечивает отображение изменений объектов (311) внутри тура (300) для каждого пользователя отдельно. Также, программная логика, реализуемая сервером (120) в рамках генерирования отображения виртуального тура (300) позволяет не только менять цвет/текстуру объектов (311), но их геометрические размеры, позволяя тем самым сформировать уникальное отображение тура для каждого пользователя, что может применяться при подборе дизайна помещений или недвижимости в рамках применения виртуальных туров. Модель виртуального тура (300) обеспечивает возможность ее декора (изменения цвета стен, добавление объектов и т.п.), который может осуществляться как одним пользователем для отображения всем остальным участникам, так и индивидуально каждым участником отдельно.
[0068] Фиг. 11 иллюстрирует схематичное отображение точек съемки Р1-Р7 (POV), которые формируется на основании свипов. В момент подключения новых участников (112, 113) тура (300), при переходе по ссылке, направленной от устройства (111), сервер (120) получает информацию о текущем местоположении внутри тура (300) пользователя (111), который является в данный момент ведущим. Как представлено на Фиг. 11 в момент подключения пользователь (111) находится в Р6. При переходе по ссылке пользователями (112, 113) для них будет осуществляют формирование отображения виртуального тура с области обзора камеры пользователя (111). По умолчанию, при первичном подключении к устройству ведущего (111) новых пользователей дублируется отображение области обзора (1111) пользователя (111), при котором кватернион камеры области обзора участника (112, 113) совпадает с кватернионом камеры области отображения ведущего (111).
[0069] После подключения пользователи (112, 113) дублируют вид камеры пользователя (111), но могут и выбрать с помощью интерфейса тура один из режимов дальнейшего участия в виртуальном туре (300). Таких режимов несколько: 1) Полное копирование всех перемещений, поворотов и текущего увеличения (зума) камеры ведущего (111); 2) Копирование всех перемещений ведущего (111), но возможность управления поворотами и зумом камеры вручную; 3) Режим полной свободы для самостоятельного перемещения внутри тура (300).
[0070] Каждый из подключенных участников (112, 113) может генерировать команду на следование за ним других участников, обеспечивая повторение перемещения по туру и дублирования обзора камеры такого пользователя. Такого рода команда может передаваться посредством взаимодействия с интерфейсом отображения виртуального тура (300). При этом участник, которому передается данное уведомление, может принять или отклонить его.
[0071] Устройство ведущего (111) также может активировать команду сбора участников тура в единой точке, в которой в текущий момент находится ведущий (111). Это реализуется с помощью перемещения участников в POV нахождения ведущего (111). Дополнительно может принудительно формироваться команда на изменение области отображения камеры, дублирующей камеру ведущего (111).
[0072] При подключении к туру нескольких пользователей (111-113) в многопользовательском режиме участия для каждого из пользователей может формироваться уникальный аватар, отображаемый, например, на миникарте (310) или в общем интерфейсе при обзоре тура (300). Интерфейс тура (300) обеспечивает также возможность общения пользователям (111-113) между собой посредством текстового и/или голосового чата. При подключении устройства ведущего (111) является основным устройством, осуществляющим управление и модерацию чата и позволяет включать/отключать микрофоны других участников, а также блокировать и текстовые сообщения от них в случае необходимости. Все пользователи, участвующие в рамках единого просмотра виртуального тура (300), имеют уникальные идентификаторы и указывают логин, под которым они присоединяются посредством ссылки (211). Функция чата может дополнительно содержать встроенный модуль перевода, обеспечивающий перевод текста или аудио с одного языка на другой. Каждый из участников тура может указать предпочтительный язык общения. В этом случае на сервере (120) для каждого идентификатора пользователя устанавливается маркер языка его общения, что позволяет с помощью модуля перевода автоматически переводить формируемый текст или аудиосообщения. При этом для каждого пользователя будет формироваться отдельный перевод чата в зависимости от выбранного им языка.
[0073] Права ведущего могут передаваться другому участнику, это осуществляется при выходе из сессии виртуального тура устройства ведущего (111), или при непосредственном передачи самим ведущим (111) другому участнику данной роли. Передача роли ведущего означает получение другим пользователем аналогичного функционала, который был доступен изначально ведущему (111). В случае назначения нового ведущего другие участники автоматически привязываются к области обзора назначенного ведущего в соответствующего POV, в которой он находится. Участники могут изменить режим просмотра и навигации по туру (300) в любое время после назначения нового ведущего.
[0074] При подключении новых пользователей (112, 113) интерфейс виртуального тура (300) может реализовать функция повтора маршрута перемещения по POV ведущего (111) с отображением кадров области отображения его камеры. Эта функция позволяет повторить путь перемещения ведущего (111) по точкам POV, в которых до этого находился ведущий (111).
[0075] Дополнительно интерфейс виртуального тура (300) может содержать функцию виртуальной указки, обеспечивающей функцию указания на объекты внутри виртуального тура (300). Указка может представлять собой виртуальный луч, или геометрический примитив (например, круг), отображаемые в интерфейсе на устройствах пользователей и позволяющие указать на объект (311) или элемент виртуального тура. При наведении на объект (311) указки он может подсвечиваться или иным образом выделяться внутри отображения тура (300). Устройство ведущего (111) также может активировать функцию "Трансляция указки объекта", при которой подсветка объектов (311) при помощи указки ведущего (111) отображается не только в окне приложения самого ведущего, но и в окнах приложения всех участников комнаты. Если обозначенный указкой объект (311) имеет тэг метаданных, то при подсвечивании этот тэг отображается на панораме для всех участников, которые видят объект подсвеченным. Тэг метаданных может содержать текстовую, визуальную, аудио и видео информацию об объекте, а также гиперссылки и элементы управления (такие как кнопки "Купить" или "Добавить в избранное") как это было описано ранее в настоящих материалах заявки.
[0076] Помимо функции указания на объекты внутри тура (300), интерфейс обеспечивает функцию измерения геометрических размеров между точками в туре (так называемая функция «рулетки»), которая измеряет расстояние между двумя и более точками, т.к. 3D-модель виртуального тура построена на реальных размерах помещений в процессе их съемки. Измерение размеров с помощью графического интерфейса ведущего (111) может отображаться не только в окне его приложения, а также и для всех остальных пользователей.
[0077] Интерфейс отображения тура на устройстве ведущего (111) имеет функцию рисования линий и фигур "поверх" панорамы виртуального тура (300). Все фигуры, нарисованные с помощью такой функции, отображаются на панораме в окне приложения для каждого участника.
[0078] Для устройства ведущего (111) доступен инструмент "Воспроизведение видео", при помощи которого ведущий (111) может транслировать в интерфейсы участников (112, 113) выбранные видео материалы. Также инструмент позволяет воспроизводить выбранный видео материал автоматически, при выполнении заранее заданных условий, например, воспроизведение рекламного видео может начаться, как только ведущий (111) войдет в определенную часть тура (300) или укажет указкой на определенный объект (311).
[0079] Для всех участников (112, 113) тура, кроме ведущего (111), доступен режим "картинка в картинке". Когда этот режим активен, в интерфейсе отображения пользователя (112, 113) отображается не только панорама виртуального тура с области отображения камеры данного участника, но и областью отображения камеры ведущего (111), например, в отдельном окне поверх основного окна. Местоположение и размер окна "картинка в картинке" являются настраиваемыми параметрами.
[0080] Участники тура (300) помимо чат-сессии могут общаться в режиме видеоконференции. При активации данного режима в окне пользователя отображается не только панорама виртуального чата, но и видеопоток с веб-камеры участника, который в данный момент говорит (в режиме "картинка в картинке"). Режим видеоконференции может активироваться также через аватары. Когда этот режим активен, на аватаре участника, как на видеоэкране, отображается видеопоток с веб-камеры данного участника. Эта функция доступна только для аватаров в виде геометрических фигур.
[0081] Реализация вышеуказанных функций и возможностей в рамках генерирования и отображения виртуальных туров для нескольких участников позволяет не только повысить эффективность навигации пользователей за счет привязки в рамках их подключения к точке отображения основного пользователя (ведущего), но и расширить функциональные возможности, обеспечивая не только формирование отображения виртуальных туров для их просмотра с разных точек обзора, но и дополнительные возможности в части виртуального декора помещений и возможности выбора элементов декора, отображаемых на 3D-модели тура.
[0082] Виртуальные туры могут широко применяться как в сфере продажи недвижимости, проведении экскурсий, обучения и т.п.
[0083] На Фиг. 12 представлен пример общего вида вычислительной системы (400) или вычислительного устройства, которая обеспечивает реализацию заявленного способа или является частью компьютерной системы, например, сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения. На базе системы (400) могут изготавливаться устройства пользователей (110), сервер (120) и 3D-камера (140).
[0084] В общем случае система представляет собой компьютерную систему (400) и содержит объединенные общей шиной информационного обмена один или несколько процессоров (401), средства памяти, такие как ОЗУ (402) и ПЗУ (403), интерфейсы ввода/вывода (404), устройства ввода/вывода (405), и устройство для сетевого взаимодействия (406).
[0085] Процессор (401) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в системе (400) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.
[0086] ОЗУ (402) представляет собой оперативную память и предназначено для хранения исполняемых процессором (401) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (402), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (402) может выступать доступный объем памяти графической карты или графического процессора.
[0087] ПЗУ (403) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.
[0088] Для организации работы компонентов системы (400) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (404). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.
[0089] Для обеспечения взаимодействия пользователя с вычислительной системой (400) применяются различные средства (405) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[0090] Средство сетевого взаимодействия (406) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (406) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.
[0091] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.