RU2783218C1 - Method and system for controlling display of virtual tours in multi-user mode - Google Patents
Method and system for controlling display of virtual tours in multi-user mode Download PDFInfo
- Publication number
- RU2783218C1 RU2783218C1 RU2022103828A RU2022103828A RU2783218C1 RU 2783218 C1 RU2783218 C1 RU 2783218C1 RU 2022103828 A RU2022103828 A RU 2022103828A RU 2022103828 A RU2022103828 A RU 2022103828A RU 2783218 C1 RU2783218 C1 RU 2783218C1
- Authority
- RU
- Russia
- Prior art keywords
- user
- virtual tour
- virtual
- tour
- pov
- Prior art date
Links
- 230000001276 controlling effect Effects 0.000 title description 2
- 238000005259 measurement Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000003993 interaction Effects 0.000 abstract description 6
- 239000000126 substance Substances 0.000 abstract 1
- 239000011159 matrix material Substances 0.000 description 12
- 238000000034 method Methods 0.000 description 10
- 230000000875 corresponding Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000005755 formation reaction Methods 0.000 description 5
- 239000000463 material Substances 0.000 description 4
- 230000002452 interceptive Effects 0.000 description 2
- 230000003287 optical Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 229920002134 Carboxymethyl cellulose Polymers 0.000 description 1
- 206010012586 Device interaction Diseases 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 241000519995 Stachys sylvatica Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 229930002945 all-trans-retinaldehyde Natural products 0.000 description 1
- 238000004873 anchoring Methods 0.000 description 1
- 230000003190 augmentative Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000010948 carboxy methyl cellulose Nutrition 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000000670 limiting Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 230000036961 partial Effects 0.000 description 1
- 230000002085 persistent Effects 0.000 description 1
- 229920002239 polyacrylonitrile Polymers 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002829 reduced Effects 0.000 description 1
- 230000002207 retinal Effects 0.000 description 1
- 235000020945 retinal Nutrition 0.000 description 1
- 239000011604 retinal Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[0001] Настоящее решение относится к области компьютерной техники, в частности к методам управления взаимодействия пользователей в виртуальных турах.[0001] The present solution relates to the field of computer technology, in particular to methods for managing user interaction in virtual tours.
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION
[0002] Виртуальный тур представляет собой способ реалистичного отображения трехмерного многоэлементного пространства на средстве пользователя, которым может выступать компьютерное устройство (компьютер, планшет или смартфон) или средство виртуальной реальности. Элементами виртуального тура, как правило, являются сферические панорамы, соединенные между собой интерактивными ссылками-переходами (также точки перехода или хотспотами). Виртуальные туры могут также включать цилиндрические панорамы, виртуальные 3D-объекты, обыкновенные фотографии, видео, звук и т.д. При этом панорамы в виртуальном туре имеют привязку к карте по координатам места съемки и ориентированы по сторонам света.[0002] A virtual tour is a method of realistically displaying a three-dimensional multi-element space on a user's tool, which can be a computer device (computer, tablet or smartphone) or a virtual reality tool. The elements of a virtual tour, as a rule, are spherical panoramas, interconnected by interactive transition links (also transition points or hotspots). Virtual tours may also include cylindrical panoramas, virtual 3D objects, ordinary photos, video, sound, etc. At the same time, the panoramas in the virtual tour are linked to the map according to the coordinates of the shooting location and are oriented to the cardinal points.
[0003] Иными словами, виртуальный тур является общим обозначением для трехмерной модели окружения, сформированной с помощью нескольких сферических панорам, а также облаков точек, получаемых с помощью лазерной съемки Лидаром (англ. Lidar - Light Detection and Ranging), связанных в единый объект для отображения с помощью точек перехода, по которым в процессе просмотра можно виртуально «перемещаться». В виртуальные туры могут включаться и другие интерактивные элементы: всплывающие информационные окна, поясняющие надписи, графически оформленные клавиши управления и т.п.[0003] In other words, a virtual tour is a general term for a three-dimensional environment model formed using several spherical panoramas, as well as point clouds obtained using Lidar - Light Detection and Ranging laser shooting, connected into a single object for display using hotspots that you can virtually “navigate” while browsing. Other interactive elements may also be included in virtual tours: pop-up information windows, explanatory labels, graphical control keys, etc.
[0004] Существующие решения в части отображения и предоставления пользователям доступа к просмотру и взаимодействию с виртуальным туром, как правило, ограничиваются плеером, воспроизводящем окружение виртуального тура, и позволяющим нескольким пользователям коллаборативно просматривать модель окружения внутри тура. Примером такой технологии может являться технология, раскрытая в заявке WO 2021074924 A1 (Mital, 22.04.2021), в которой описывается способ одновременного просмотра виртуального тура несколькими участниками, с возможностью живого общения и отслеживания перемещения курсора ведущего участника.[0004] Existing solutions for displaying and allowing users to view and interact with a virtual tour are typically limited to a player that renders the environment of the virtual tour and allows multiple users to collaboratively view the environment model within the tour. An example of such a technology can be the technology disclosed in the application WO 2021074924 A1 (Mital, 04/22/2021), which describes a method for simultaneous viewing of a virtual tour by several participants, with the possibility of live communication and tracking the movement of the cursor of the leading participant.
[0005] Недостатком такого рода решений является принцип отображения интерфейса при подключении новых участников, который обеспечивает формирование отображение модели тура или в первоначальной точке начала тура, или в какой-либо случайной точке, что приводит к неэффективной навигации внутри тура подключаемых пользователей.[0005] The disadvantage of this kind of solutions is the principle of displaying the interface when connecting new participants, which provides the formation of a tour model display either at the original start point of the tour, or at some random point, which leads to inefficient navigation within the tour of connected users.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[0006] Заявленное решение решает техническую проблему, заключающуюся в эффективном управлении отображением виртуального тура в многопользовательском режиме.[0006] The claimed solution solves the technical problem of effectively managing the display of a virtual tour in a multi-user mode.
[0007] Технический результат заключается в повышении эффективности навигации пользователей виртуального тура, за счет привязки точки отображения модели тура подключаемых устройств участников к текущей точке отображения устройства ведущего.[0007] The technical result consists in increasing the efficiency of virtual tour users' navigation by linking the display point of the tour model of the participants' connected devices to the current display point of the host device.
[0008] В предпочтительном варианте осуществления заявленного решения заявлен способ управления отображением виртуальных туров в многопользовательском режиме, выполняемый с помощью вычислительного устройства, содержащего по меньшей мере один процессор и память, хранящую машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают:[0008] In a preferred embodiment of the claimed solution, a method is claimed for controlling the display of virtual tours in a multi-user mode, performed using a computing device containing at least one processor and a memory storing machine-readable instructions that, when executed by at least one processor, provide:
получение команды от устройства первого пользователя на генерирование виртуального тура в многопользовательском режиме;receiving a command from the device of the first user to generate a virtual tour in a multi-user mode;
генерирование виртуального тура, представляющего собой 3Д-модель, текстурированную 360-градусными фотопанорамами, при этом виртуальный тур отображается в интерфейсе пользовательского устройства, и 3Д-модель содержит заданные точки просмотра (POV), причем каждая точка содержит трехмерные координаты;generating a virtual tour, which is a 3D model textured with 360-degree photo panoramas, while the virtual tour is displayed in the user device interface, and the 3D model contains predetermined viewpoints (POV), each point containing three-dimensional coordinates;
отображение виртуального тура для первого пользователя, при этом первый пользователь назначается ведущим;displaying the virtual tour for the first user, with the first user designated as the leader;
получение команды от устройств пользователей на подключение к упомянутому виртуальному туру новых пользователей, при этомreceiving a command from user devices to connect to the said virtual tour of new users, while
получают данные POV, в которой находится первый пользователь;receive data POV, which is the first user;
осуществляют формирование отображения виртуального тура для каждого нового пользователя в POV, в которой находится первый пользователь, причем отображение виртуального тура для каждого нового пользователя после подключения дублирует отображение первого пользователя;forming a virtual tour display for each new user in the POV in which the first user is located, and the virtual tour display for each new user after connection duplicates the display of the first user;
отображают виртуальный тур для пользователей с возможностью его просмотра и перемещения по заданным POV.display a virtual tour for users with the ability to view and navigate through the specified POV.
[0009] В одном из частных вариантов осуществления подключение пользователей к виртуальному туру осуществляется с помощью формирования гиперссылки на подключения первым пользователем.[0009] In one of the private embodiments, the connection of users to the virtual tour is carried out using the formation of a hyperlink to connections by the first user.
[0010] В другом частном варианте осуществления для каждого участника виртуального тура формируется виртуальный аватар.[0010] In another particular embodiment, a virtual avatar is formed for each participant in the virtual tour.
[0011] В другом частном варианте осуществления при подключении пользователей к виртуальному туру генерируется текстовая и/или голосовая чат-сессия.[0011] In another particular embodiment, when users connect to a virtual tour, a text and/or voice chat session is generated.
[0012] В другом частном варианте осуществления первый пользователь может передать права ведущего другому пользователю.[0012] In another particular embodiment, the first user may transfer the host rights to another user.
[0013] В другом частном варианте осуществления при передаче прав отображение виртуального тура устанавливается в соответствии с POV пользователя, назначенного ведущим.[0013] In another particular embodiment, when transferring rights, the display of the virtual tour is set in accordance with the POV of the user designated as host.
[0014] В другом частном варианте осуществления после момента подключения новых пользователей к POV первого пользователя, на устройствах новых подключенных пользователей, активируется функция ручного перемещения камеры обзора в POV или функция свободного перемещения по POV виртуального тура.[0014] In another particular embodiment, once new users connect to the POV of the first user, the function of manually moving the view camera in the POV or the free movement function of the virtual tour POV is activated on the devices of the new connected users.
[0015] В другом частном варианте осуществления ведущий пользователь управляет включением/отключением звука микрофона других пользователей в чат-сессии.[0015] In another particular embodiment, the host user controls the microphone mute/unmute of other users in the chat session.
[0016] В другом частном варианте осуществления отображение виртуального тура для каждого нового подключаемого пользователя начинается с повтора маршрут перемещения по POV первого пользователя.[0016] In another particular embodiment, the virtual tour display for each new connected user begins by repeating the first user's POV path.
[0017] В другом частном варианте осуществления аватар ведущего выполнен с возможностью формирования виртуальной указки.[0017] In another particular embodiment, the host avatar is configured to generate a virtual pointer.
[0018] В другом частном варианте осуществления 3Д-модель виртуального тура содержит 3Д-объекты и представляет собой модель помещения, выполненную с возможностью изменения по меньшей мере текстуры 3Д-модели и/или 3Д-объектов.[0018] In another particular embodiment, the virtual tour 3D model contains 3D objects and is a room model capable of changing at least the texture of the 3D model and/or 3D objects.
[0019] В другом частном варианте осуществления 3Д-объекты содержат метаданные, обеспечивающие возможность получения дополнительной информации об объекте, включающей по меньшей мере одно из: текстовая информация, видео, ссылка на внешний ресурс.[0019] In another particular embodiment, 3D objects contain metadata that makes it possible to obtain additional information about the object, including at least one of: text information, video, a link to an external resource.
[0020] В другом частном варианте осуществления информация отображается в дополнительном окне, располагаемом поверх интерфейса виртуального тура.[0020] In another particular embodiment, the information is displayed in an additional window located on top of the virtual tour interface.
[0021] В другом частном варианте осуществления интерфейс виртуального тура содержит функцию, обеспечивающую измерение размеров объектов.[0021] In another particular embodiment, the virtual tour interface contains a function that provides a measurement of the size of objects.
[0022] Заявленное решение также осуществляется с помощью системы управления отображением виртуальных туров в многопользовательском режиме, которая содержит по меньшей мере один процессор, функционально связанный с по меньшей мере одной памятью, хранящей машиночитаемые инструкции, которые при их выполнении процессором реализуют вышеуказанный способ.[0022] The claimed solution is also implemented using a virtual tour display control system in a multi-user mode, which contains at least one processor operatively associated with at least one memory storing machine-readable instructions that, when executed by the processor, implement the above method.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[0023] Фиг. 1 иллюстрирует общую схему подключения пользователей к виртуальному туру.[0023] FIG. 1 illustrates the general scheme for connecting users to a virtual tour.
[0024] Фиг. 2 иллюстрирует пример процесса съемки с помощью 3D-камеры.[0024] FIG. 2 illustrates an example of a shooting process using a 3D camera.
[0025] Фиг. 3 иллюстрирует сырые данные, получаемые в процессе съемки.[0025] FIG. 3 illustrates the raw data obtained during the survey.
[0026] Фиг. 4 иллюстрирует пример HDR изображения.[0026] FIG. 4 illustrates an example of an HDR image.
[0027] Фиг. 5 иллюстрирует пример карты полы свипа.[0027] FIG. 5 illustrates an example of a sweep floor map.
[0028] Фиг. 6 иллюстрирует карту пола этажа.[0028] FIG. 6 illustrates a floor map of a floor.
[0029] Фиг. 7 иллюстрирует схему взаимодействия устройств.[0029] FIG. 7 illustrates the scheme of device interaction.
[0030] Фиг. 8 иллюстрирует пример отображения виртуального тура.[0030] FIG. 8 illustrates an example of a virtual tour display.
[0031] Фиг. 9 иллюстрирует миникарту виртуального тура.[0031] FIG. 9 illustrates a virtual tour minimap.
[0032] Фиг. 10 иллюстрирует окно изменения объектов виртуального тура.[0032] FIG. 10 illustrates the virtual tour object modification window.
[0033] Фиг. 11 иллюстрирует пример перемещения по точкам съемки внутри тура.[0033] FIG. 11 illustrates an example of moving through survey points within a tour.
[0034] Фиг. 12 иллюстрирует общий вид вычислительного устройства.[0034] FIG. 12 illustrates a general view of the computing device.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION
[0035] На Фиг. 1 представлена общая схема взаимодействия пользователей при совместном участии и просмотре виртуальных туров. Генерация виртуального тура (200) осуществляется на сервере (120), к которому подключаются пользователи (110) с помощью различного вида вычислительных устройств (111-113). В качестве устройств могут выступать, например, смартфон, компьютер, ноутбук, планшет, смарт ТВ, средство виртуальной реальности и прочие устройства, которые функционально могут воспроизводить и формировать интерфейс для пользовательского взаимодействия с виртуальным туром (200), независимо от принципа его отображения (дисплей устройства, виртуальная реальность) и взаимодействия с объектами внутри тура (с помощью средств ввода или контроллеров, предназначенных для виртуальной реальности).[0035] In FIG. 1 shows the general scheme of user interaction with joint participation and viewing of virtual tours. The virtual tour (200) is generated on the server (120), to which users (110) connect using various types of computing devices (111-113). Devices can be, for example, a smartphone, computer, laptop, tablet, smart TV, virtual reality tool and other devices that can functionally reproduce and form an interface for user interaction with a virtual tour (200), regardless of the principle of its display (display devices, virtual reality) and interactions with objects within the tour (using inputs or controllers designed for virtual reality).
[0036] Сервер (120) представляет собой стандартное вычислительное компьютерное устройства и может представлять как серверный кластер, так и облачный сервер. Основная задача сервера (120) осуществлять обработку данных для предоставления виртуальных туров (200), обеспечивая последующую передачу данных на пользовательские устройства (110). Сервер (120) также может использоваться для непосредственного генерирования виртуальных туров (200) путем обработки данных (облака точек, фотопанорамы, изображения), поступающих со специализированной 3D-камеры (140).[0036] The server (120) is a standard computing computing device and can be either a server cluster or a cloud server. The main task of the server (120) is to process data to provide virtual tours (200), providing subsequent data transfer to user devices (110). The server (120) can also be used to directly generate virtual tours (200) by processing data (point clouds, photo panoramas, images) coming from a specialized 3D camera (140).
[0037] Обмен информацией между пользователями (110) и сервером (120) осуществляется посредством канала передачи данных (130), который представляет собой, как правило, глобальную сеть «Интернет». Протокол реализации канал передачи данных (130) может выбираться из любого известного типа протоколов, таких как: LAN, WAN, PAN, WLAN, IEEE 802.11, GSM и т.п. Соответствующий протокол и тип подключения конкретного устройства (111 - 113) к серверу (120) определяется исходя из технического воплощения такого типа устройства и соответствующего аппаратного оснащения для выполнения связи с сетью «Интернет».[0037] The exchange of information between users (110) and the server (120) is carried out via a data link (130), which is, as a rule, the global network "Internet". The data link implementation protocol (130) may be selected from any known type of protocol such as: LAN, WAN, PAN, WLAN, IEEE 802.11, GSM, and the like. The appropriate protocol and type of connection of a specific device (111 - 113) to the server (120) is determined based on the technical implementation of this type of device and the corresponding hardware for communicating with the Internet.
[0038] В качестве 3D-камеры (140) для съемки трехмерных виртуальных туров (200) может применяться, например, 3D-камера FilinCam V6/V7/X1 и др. 3D-камера (140) предназначена для съемки помещений и открытых пространств для дальнейшего создания их фотореалистичных цифровых моделей и виртуальных туров. Процесс съемки включает сбор и предварительную обработку сырых данных с 3D-камеры (140), которая также содержит по меньшей мере: вычислительный модуль (процессор или микроконтроллер), память, лидар, акселерометр датчик IMU и энкодер (датчик угла поворота), которые необходимы для формирования набора данных для последующего формирования виртуальных туров (200). Управление камерой (140) осуществляется через программное приложение, установленное на мобильном устройстве оператора, например, планшете, смартфоне или ноутбуке. По окончании съемки полученные данные выгружаются с 3D-камеры (140) на сервер постобработки, где происходит их хранение, обработка, создание 3D-моделей отсканированного пространства и виртуальных туров (200) на их основе. Готовые виртуальные туры (200) передаются с сервера постобработки на сервер (120) для последующего доступа к ним со стороны пользователей (110).[0038] As a 3D camera (140) for capturing 3D virtual tours (200), for example, a FilinCam V6/V7/X1 3D camera and others can be used. The 3D camera (140) is designed to capture indoors and outdoors for further creation of their photorealistic digital models and virtual tours. The survey process includes the acquisition and pre-processing of raw data from the 3D camera (140), which also contains at least: a computing module (processor or microcontroller), memory, lidar, an IMU accelerometer sensor and an encoder (rotation angle sensor), which are necessary for formation of a data set for the subsequent formation of virtual tours (200). The camera (140) is controlled via a software application installed on the operator's mobile device, such as a tablet, smartphone or laptop. Upon completion of the survey, the data obtained are uploaded from the 3D camera (140) to the post-processing server, where they are stored, processed, and 3D models of the scanned space and virtual tours (200) are created based on them. Ready-made virtual tours (200) are transferred from the post-processing server to the server (120) for subsequent access to them by users (110).
[0039] На Фиг. 2 представлен пример процесса съемки области с помощью 3D-камеры для последующего построения на его основе виртуального тура (200). Процесс съемки начинается с установки камеры (140), закрепленной на штативе, в начальную точку съемки (точки 1 - 6 на Фиг. 2). Камера (140) совершает полный оборот вокруг оси, сканируя окружающее пространство лидаром и несколько раз останавливаясь, чтобы выполнить серию фотоснимков. В результате формируется так называемый "свип" (от англ. Sweep), т.е. набор данных, состоящий из нескольких HDR-снимков, лидарного облака точек и метаданных.[0039] In FIG. 2 shows an example of the process of capturing an area using a 3D camera for subsequent construction of a virtual tour (200) based on it. The shooting process begins with the installation of the camera (140), mounted on a tripod, at the starting point of the shooting (points 1 - 6 in Fig. 2). The camera (140) makes a full rotation around the axis, scanning the surrounding area with lidar and stops several times to take a series of photographs. As a result, the so-called "sweep" (from the English. Sweep) is formed, i.e. a dataset consisting of several HDR images, a lidar point cloud, and metadata.
[0040] Пример данных, хранимых в свипе.[0040] An example of data stored in a sweep.
- три серии по 6 или 7 (в зависимости от выбранного режима) снимков с камеры (140), которые используются для создания HDR-изображений;- three series of 6 or 7 (depending on the selected mode) camera shots (140), which are used to create HDR images;
- Набор срезов лидара для создания облака точек;- A set of lidar slices to create a point cloud;
- Кватернионы и углы отклонения камеры (140) от горизонта на момент начала и окончания съемки свипа, рассчитанные на основе данных акселерометра и гироскопа IMU;- Quaternions and angles of camera deviation (140) from the horizon at the start and end of the sweep survey, calculated on the basis of IMU accelerometer and gyroscope data;
- Данные энкодера (временные метки, углы поворота камеры).- Encoder data (time stamps, camera angles).
- Метаданные (например, режим съемки свипа: разрешение съемки, время и прочее).- Metadata (for example, sweep shooting mode: shooting resolution, time, etc.).
[0041] После получения данных в рамках съемки первого свипа в точке №1 камера (140) перемещается в новую точку съемки (например, точка №2) и выполняется съемку следующего свипа. Набор отснятых свипов, приведенный к единой системе координат, называется "сценой".[0041] Upon acquisition of data from the first sweep at
[0042] Как показано на Фиг. 2, свипы в сцене всегда организованы в древовидный ациклический граф с единственным начальным узлом. Для каждого свипа в сцене, кроме первого, определен так называемый "родительский" свип. По умолчанию родительским считается последний снятый свип, но при необходимости родительским свипом может быть назначен любой из отснятых свипов. Например, на Фиг. 2 родительским для свипа №4 является не свип №3, как было бы назначено по умолчанию, а свип №2.[0042] As shown in FIG. 2, sweeps in a scene are always organized into a tree-like acyclic graph with a single starting node. For each sweep in the scene, except for the first one, a so-called "parent" sweep is defined. By default, the last sweep taken is considered the parent, but if necessary, any of the captured sweeps can be assigned as the parent sweep. For example, in FIG. 2, the parent of
[0043] Каждый свип имеет свою систему координат, которая совпадает с системой координат 3D-камеры (140) на момент начала съемки данного свипа. Система координат первого свипа также служит системой координат сцены. Таким образом, чтобы построить из свипов сцену, необходимо решить задачу перевода облака точек каждого свипа из собственной системы координат в систему координат сцены.[0043] Each sweep has its own coordinate system, which coincides with the coordinate system of the 3D camera (140) at the start of the survey of this sweep. The coordinate system of the first sweep also serves as the scene coordinate system. Thus, in order to build a scene from sweeps, it is necessary to solve the problem of transferring the point cloud of each sweep from its own coordinate system to the scene coordinate system.
[0044] Для этого используется алгоритм привязки, который анализирует облака точек и фотопанорамы двух соседних (т.е. соединенных одним ребром графа) свипов в дереве, ищет совпадающие участки, на их основе определяет взаимное расположение и ориентацию этих свипов в сцене и рассчитывает матрицу перехода между ними.[0044] For this, a binding algorithm is used that analyzes point clouds and photo panoramas of two neighboring (i.e., connected by one graph edge) sweeps in the tree, searches for matching sections, based on them determines the relative position and orientation of these sweeps in the scene and calculates the matrix transition between them.
[0045] Алгоритм привязки рассчитывает матрицы перехода Tij для каждой пары соседних свипов Si и Sj. Чтобы перевести облако точек Pi свипа Si в систему координат свипа Sj, достаточно умножить его на Tij.[0045] The anchoring algorithm calculates transition matrices T ij for each pair of neighboring sweeps S i and S j . To transfer the point cloud P i of the sweep S i to the coordinate system of the sweep S j , it is sufficient to multiply it by T ij .
Pij=Pi*Tij Pi j =P i *T ij
Здесь и далее используется следующая нотация:Here and below, the following notation is used:
• Si - свип с номером i. Например, S3 - свип №3.• S i - sweep number i. For example, S 3 is
• Pi - облако точек свипа Si в собственной системе координат. Например, Р3 - облако точек свипа №3.• P i - sweep point cloud S i in own coordinate system. For example, P 3 is a point cloud of sweep No. 3.
• Pi j - облако точек свипа Si, переведенное в систему координат свипа Sj. Например, Р3 5 - облако точек свипа №3 в системе координат свипа №5.• P i j - point cloud of the sweep S i , converted to the coordinate system of the sweep S j . For example, P 3 5 is the point cloud of
• Tij - матрица перехода, служащая для преобразования облака точек свипа Si в систему координат свипа Sj. Например, Т35 - матрица перехода, переводящая облако точек Р3 в Р3 5.• T ij - transition matrix used to transform the sweep point cloud S i into the sweep coordinate system S j . For example, T 35 is a transition matrix that converts a cloud of points P 3 to P 3 5 .
[0046] Чтобы перевести облако точек Pj свипа Sj в систему координат свипа Si, достаточно умножить это облако точек на матрицу Tji, обратную к Tij.[0046] To translate the point cloud P j of the sweep S j into the coordinate system of the sweep S i , it is sufficient to multiply this point cloud by the matrix T ji inverse to T ij .
Tji=(Tij)-1 T ji =(T ij ) -1
Pji=Pj*(Tij)-1 P ji =P j *(T ij ) -1
[0047] Если свипы не являются соседними в дереве, задача разделяется на несколько последовательных шагов. Например, чтобы на Фиг. 1 перевести облако точек свипа S6 в систему координат свипа S1, его следует сначала перевести в систему координат свипа S5, затем S2, и наконец S1. Для этого необходимо последовательно умножить облако точек свипа S6 на матрицы перехода Т65, Т52 и Т21:[0047] If the sweeps are not adjacent in the tree, the task is divided into several consecutive steps. For example, so that in FIG. 1 to convert the point cloud of sweep S 6 to the coordinate system of sweep S 1 , it should first be translated to the coordinate system of sweep S 5 , then S 2 , and finally S 1 . To do this, it is necessary to successively multiply the cloud of points of the sweep S 6 by the transition matrices T 65 , T 52 and T 21 :
Р6 5=Р6 * Т65 R 6 5 \u003d R 6 * T 65
Р6 2=Р6 5 * Т52 R 6 2 \u003d R 6 5 * T 52
Р6 1=Р6 2 * T21 R 6 1 \u003d R 6 2 * T 21
Или, более кратко:Or, more succinctly:
Р6 1=Р6 * Т65 * Т52 * Т21 R 6 1 \u003d R 6 * T 65 * T 52 * T 21
[0048] Следует отметить, что древовидная структура графа гарантирует единственность пути между любыми двумя свипами в сцене. Таким образом, чтобы привести все свипы к единой системе координат, на графе необходимо определить единственно возможный путь от каждого свипа до начального свипа №1 и последовательно применять умножение на соответствующие матрицы перехода. В результате этой процедуры формируется сцена, содержащая все отснятые панорамы и облака точек в единой системе координат.[0048] It should be noted that the tree structure of the graph guarantees the uniqueness of the path between any two sweeps in the scene. Thus, in order to bring all sweeps to a single coordinate system, it is necessary to determine the only possible path on the graph from each sweep to the initial sweep No. 1 and successively apply multiplication by the corresponding transition matrices. As a result of this procedure, a scene is formed that contains all the captured panoramas and point clouds in a single coordinate system.
[0049] Съемка свипа состоит из двух основных этапов: непосредственно съемка и предварительная обработка отснятых сырых данных. При съемке 3D-камера (140) совершает полный оборот вокруг оси, сканируя окружающее пространство лидаром с частотой 40 Гц, совершая в процессе съемки несколько остановок (например, три остановки), чтобы сделать серию фотоснимков с различной экспозицией. В результате этого процесса в памяти 3D-камеры (140) сохраняется несколько серий снимков с камеры, набор срезов лидара, а также вспомогательные метаданные, включая временные метки и углы поворота 3D-камеры (140) на момент получения каждого снимка и каждого среза лидара.[0049] The survey of the sweep consists of two main stages: the survey itself and pre-processing of the captured raw data. When shooting, the 3D camera (140) makes a complete rotation around the axis, scanning the surrounding area with a 40 Hz lidar, making several stops (for example, three stops) during the shooting to take a series of photographs with different exposures. As a result of this process, the memory of the 3D camera (140) stores several series of images from the camera, a set of lidar slices, as well as auxiliary metadata, including timestamps and rotation angles of the 3D camera (140) at the time of each image and each lidar slice.
[0050] Обработка полученных сырых данных включает следующие операции:[0050] The processing of the received raw data includes the following operations:
- Из каждой серии снимков, представленных на Фиг. 3, формируется HDR-изображение, представленное на Фиг. 4;- From each series of pictures shown in FIG. 3, the HDR image shown in FIG. four;
- Из срезов лидара формируется единое облако точек. Для этого каждый срез умножается на матрицу поворота вокруг вертикальной оси Y на угол, заданный показаниями энкодера 3D-камеры (140) на момент съемки среза, и на матрицу калибровки лидара.- A single cloud of points is formed from the lidar slices. To do this, each slice is multiplied by the rotation matrix around the vertical Y axis by the angle specified by the 3D camera encoder readings (140) at the time the slice was taken, and by the lidar calibration matrix.
Полученные HDR-изображения и облака точек затем используются как исходные данные для расчета попарной привязки свипов.The resulting HDR images and point clouds are then used as input to calculate the pairwise sweep tie.
[0051] В большинстве цифровых фотокамер динамический диапазон матрицы (диапазон яркостей, воспроизводимый без искажений) существенно уступает человеческому зрению. Узкий динамический диапазон означает, что матрица не способна одновременно зафиксировать очень светлый и очень темный участки изображения без потерь информации. В результате либо светлый участок отображается как белое пятно, либо темный как черное.[0051] In most digital cameras, the dynamic range of the sensor (the range of brightness reproduced without distortion) is significantly inferior to human vision. A narrow dynamic range means that the sensor is not able to simultaneously capture very light and very dark areas of the image without loss of information. As a result, either the light area is displayed as a white spot, or the dark area is displayed as black.
[0052] Для решения этой проблемы используется технология создания HDR-изображений. HDR-изображение формируется из серии обычных снимков, выполненных с разной экспозицией. На снимках с короткой экспозицией хорошо отображаются более светлые участки, а с длинной более темные. В получаемом HDR-изображении содержатся все детали из всех исходных снимков, как в наиболее темных, так и в максимально светлых участках. Такое изображение максимально приближено к восприятию окружающего мира человеческим глазом.[0052] To solve this problem, HDR imaging technology is used. An HDR image is formed from a series of normal shots taken at different exposures. Short-exposure shots show brighter areas well, while long-exposure shots show darker areas. The resulting HDR image contains all the details from all the original shots, both in the darkest and brightest areas. Such an image is as close as possible to the perception of the surrounding world by the human eye.
[0053] Далее рассмотрим принцип привязки соседствующих свипов на примере свипов Si и Sj в процессе генерирования сцены виртуального тура (200) с соответствующими точками обзора (точками съемки). Вначале на HDR-изображениях свипов Si и Sj выполняется поиск ключевых точек и дескрипторов (векторов, описывающих окрестность найденных ключевых точек). Ключевыми точками считаются точки с характерной геометрией, например, углы, или пересечения плоскостей. Поиск ключевых точек и расчет их дескрипторов выполняется при помощи алгоритмов из открытой библиотеки OpenCV. Дескрипторы, найденные на HDR-изображениях обоих свипов, попарно сопоставляются при помощи алгоритмов из открытой библиотеки FLANN. Совпадение двух дескрипторов называется "мэтч" (от англ. "to match" - совпадать). Наиболее точные из найденных мэтчей проецируются с HDR-изображений на облака точек и сохраняются в памяти камеры (140) для дальнейшего использования.[0053] Next, consider the principle of binding adjacent sweeps using the example of sweeps Si and Sj in the process of generating the virtual tour scene (200) with the corresponding viewpoints (shooting points). First, on the HDR images of sweeps Si and Sj the search for key points and descriptors (vectors describing the neighborhood of the found key points) is performed. Key points are considered to be points with characteristic geometry, such as corners, or intersections of planes. The search for key points and the calculation of their descriptors is performed using algorithms from the OpenCV open library. The descriptors found on the HDR images of both sweeps are matched in pairs using algorithms from the FLANN open library. The coincidence of two descriptors is called a "match" (from the English "to match" - to match). The most accurate matches found are projected from HDR images onto point clouds and stored in the camera's memory (140) for further use.
[0054] Параллельно выполняется поиск ключевых точек и дескрипторов на облаках точек свипов Si и Sj при помощи алгоритмов из открытой библиотеки PCL (Point cloud library). Найденные дескрипторы на облаках точек обоих свипов попарно сопоставляются при помощи алгоритмов из открытой библиотеки FLANN. Наиболее точные из найденных мэтчей сохраняются в памяти камеры (140) для дальнейшего использования.[0054] In parallel, key points and descriptors are searched on point clouds of sweeps S i and S j using algorithms from the open library PCL (Point cloud library). The descriptors found on the point clouds of both sweeps are compared in pairs using algorithms from the FLANN open library. The most accurate matches found are stored in the camera's memory (140) for further use.
[0055] Таким образом формируется объединенный набор лучших мэтчей из двух источников: 2D (HDR-изображения) и 3D (облака точек). Однако возможны и ситуации, когда один из источников отсутствует. Например, если хотя бы один из сопоставляемых свипов снят в режиме "в полной темноте", поиск ключевых точек и дескрипторов по его HDR-изображениям не производится, и из 2D-источника не поступает ни одного мэтча. Аналогично, возможны ситуации, когда геометрия отсканированного пространства не позволяет найти ни одной ключевой точки в облаке точек свипа (например, такое возможно на большом ровном футбольном поле). В этих случаях следует ограничиться набором мэтчей только из одного источника 2D или 3D что немного снижает итоговую точность привязки.[0055] Thus, a combined set of best matches from two sources is formed: 2D (HDR images) and 3D (point clouds). However, situations are also possible when one of the sources is missing. For example, if at least one of the matched sweeps was shot in the "total darkness" mode, the search for key points and descriptors in its HDR images is not performed, and no matches are received from the 2D source. Similarly, situations are possible when the geometry of the scanned space does not allow finding any key points in the sweep point cloud (for example, this is possible on a large flat football field). In these cases, you should limit yourself to a set of matches from only one 2D or 3D source, which slightly reduces the final binding accuracy.
[0056] Затем на основе набора лучших мэтчей из доступных источников выполняется поиск возможных матриц перехода TIJ при помощи алгоритма RANSAC. Алгоритм берет за основу несколько случайно выбранных мэтча (например, 4-5 мэтчей) и рассчитывает для них матрицу перехода, после чего осуществляет проверку того, какое количество мэтчей соответствует найденной матрице. Процесс повторяется до тех пор, пока не будет найдена матрица перехода, которой соответствует достаточно большое число мэтчей, либо будет достигнуто максимальное число итераций поиска.[0056] Then, based on a set of best matches from available sources, a search is made for possible transition matrices T IJ using the RANSAC algorithm. The algorithm takes several randomly selected matches as a basis (for example, 4-5 matches) and calculates the transition matrix for them, after which it checks how many matches correspond to the found matrix. The process is repeated until a transition matrix is found that corresponds to a sufficiently large number of matches, or the maximum number of search iterations is reached.
[0057] Возможны случаи, когда алгоритм RANSAC находит больше одной матрицы перехода. Как правило, это происходит в ситуациях однообразно чередующегося окружения (например, длинный коридор с одинаковыми окнами на равном расстоянии). В этом случае, найденные матрицы проходят проверку на соответствие показателям дополнительных датчиков 3D-камеры (140), таких как IMU, магнитометр и т.д. Матрица, максимально точно соответствующая этим критериям, выбирается в качестве финальной матрицы перехода TIJ.[0057] There may be cases where the RANSAC algorithm finds more than one transition matrix. Typically, this occurs in situations of uniformly interleaved environments (for example, a long corridor with identical windows at an equal distance). In this case, the found matrices are checked for compliance with the indicators of additional sensors of the 3D camera (140), such as IMU, magnetometer, etc. The matrix that most closely matches these criteria is selected as the final transition matrix T IJ .
[0058] В зависимости от геометрии сканируемого объекта, сцена может содержать один или несколько этажей. Каждый этаж содержит группу свипов, привязанных друг к другу посредством мэтчинга. Каждый свип всегда принадлежит определенному этажу, т.к. свип не может располагаться вне этажа или на нескольких этажах одновременно.[0058] Depending on the geometry of the scanned object, the scene may contain one or more floors. Each floor contains a group of sweeps linked to each other by matching. Each sweep always belongs to a certain floor, because a sweep cannot be located outside a floor or on several floors at the same time.
[0059] Для каждого этажа формируется так называемая "карта пола", схематично отображающая облака точек свипов данного этажа в виде сверху. Карта пола этажа состоит из карт пола всех свипов, относящихся к данному этажу.[0059] For each floor, a so-called "floor map" is generated, schematically displaying the point clouds of the sweeps of that floor in a top view. The floor map of a floor consists of the floor maps of all sweeps related to the given floor.
[0060] Карта пола свипа формируется следующим образом: через точку начала координат свипа проводится горизонтальная плоскость, отсекающая все точки, лежащие выше нее. Точки облака, лежащие ниже плоскости отсечения, проецируются на HDR-панорамы свипа в соответствии с жестко заданным коэффициентом "метры/пиксели". Затем для каждой точки определяется цвет отображения, соответствующий цвету пикселя HDR-панорамы, на который спроецировалась данная точка. Наконец, все точки отображаются в горизонтальной проекции "вид сверху" с использованием цветов, определенных выше.[0060] The sweep floor map is generated as follows: a horizontal plane is drawn through the origin of the sweep, cutting off all points above it. Cloud points lying below the clipping plane are projected onto the sweep HDR panoramas in accordance with a hard-coded "meters/pixels" ratio. Then, for each point, a display color is determined that corresponds to the color of the HDR panorama pixel onto which the point was projected. Finally, all points are displayed in the "top view" horizontal projection using the colors defined above.
[0061] Пример карты пола свипа представлен на Фиг. 5. Карта пола этажа состоит из карт пола всех свипов данного этажа с учетом их взаимного расположения. Информация об относительном расположении свипов получается на этапе мэтчинга, что позволяет сформировать карту пола этажа, представленную на Фиг. 6.[0061] An example of a sweep floor map is shown in FIG. 5. Floor map of a floor consists of floor maps of all sweeps of a given floor, taking into account their relative position. Information about the relative position of the sweeps is obtained at the matching stage, which makes it possible to generate the floor map shown in FIG. 6.
[0062] Карта пола не является статичной и обновляется по мере съемки или удаления свипов. Как только камера (140) снимает свип и выполняет его мэтчинг с родительским свипом, этот свип сразу же отображается на карте пола соответствующего этажа сцены. При удалении одного или нескольких свипов карта пола также автоматически перерисовывается.[0062] The floor map is not static and is updated as sweeps are taken or removed. As soon as the camera (140) captures a sweep and matches it with the parent sweep, the sweep is immediately displayed on the floor map of the corresponding floor of the scene. When one or more sweeps are deleted, the floor map is also automatically redrawn.
[0063] На Фиг. 7 представлена общая схема работы заявленного решения при многопользовательском режиме. Как показано на примере, устройство (111) или устройство ведущего активирует создание комнаты многопользовательского режима для виртуального тура (210). Для этого с помощью устройства (111) пользователь активирует на сервере (120) выбор для генерирования соответствующего виртуального труа (210) и далее осуществляется активация многопользовательского режима с помощью соответствующей функции графического интерфейса пользователя (GUI). Приглашение для участия в рамках единого виртуального тура (210) нескольких пользователей (например, пользователи 112, 113) осуществляется с помощью формирования ссылки на подключение (211), которая создается сервером (120) на основании запроса от устройства ведущего (111). Ссылка (211) представляет собой гиперссылку на подключение, которая передается от устройства (111) на подключаемые устройства (112, 113) с помощью любого пригодного типа обмена данными (CMC, мессенджер, e-mail и т.п.). Ссылка может также кодироваться в QR-код, который также передается от устройства ведущего (111) на подключаемое устройство.[0063] In FIG. 7 shows the general scheme of operation of the claimed solution in a multi-user mode. As shown in the example, the device (111) or the host device activates the creation of a multi-user room for the virtual tour (210). To do this, using the device (111), the user activates on the server (120) the choice to generate the corresponding virtual true (210) and then the activation of the multi-user mode is carried out using the corresponding function of the graphical user interface (GUI). An invitation to participate in a single virtual tour (210) of several users (for example,
[0064] На Фиг. 8 представлен пример отображения виртуального тура (300) на устройстве пользователя. Виртуальный тур (300) содержит ряд элементов окружающего пространства (311), например, предметы мебели, интерьера и т.п. Каждый элемент представляет собой объект виртуального пространства, с которым может взаимодействовать пользователь. При перемещении внутри модели тура (300) интерфейс также отображает миникарту (310), на которой представлен схематичный план помещения и точка, в которой в текущий момент находится пользователь. На миникарте (310) могут отображаться точки POV для перемещения в них как в текущем помещении, так и на общей модели тура. При активации на миникарте (310) такой точки с помощью графического интерфейса обеспечивает перемещение пользователя в данную точку.[0064] In FIG. 8 shows an example of displaying a virtual tour (300) on a user's device. The virtual tour (300) contains a number of elements of the surrounding space (311), for example, furniture, interior items, etc. Each element is a virtual space object that the user can interact with. When moving inside the tour model (300), the interface also displays a minimap (310) showing a schematic floor plan and the point where the user is currently located. The minimap (310) can display POV points for moving to them both in the current room and on the general tour model. When activated on the minimap (310), such a point, using the graphical interface, moves the user to this point.
[0065] Как представлено на Фиг. 9, на миникарте (310) помимо местоположения пользователя (например, пользователь 111) отображается также направление его взгляда (1111), показывающее точку осмотра тура (300) с позиции его камеры.[0065] As shown in FIG. 9, on the minimap (310), in addition to the location of the user (for example, the user 111), the direction of his gaze (1111) is also displayed, showing the point of view of the tour (300) from the position of his camera.
[0066] На Фиг. 10 представлен пример отображения интерфейса при взаимодействии с объектами (311) виртуального тура (300). При взаимодействии с объектом (311) с помощью средства ввода, например, клика мышкой или нажатием на сенсорный дисплей смартфона или планшета, открывается дополнительное окно (312), отображающее дополнительную информации об объекте. Такой информацией может выступать: название объекта (311), его стоимость, возможность заказа и возможность изменения текстуры (313) объекта (311). 3Д-объекты тура (311) содержат метаданные, обеспечивающие возможность получения дополнительной информации об объекте, такой как: текстовая информацию с описанием объекта, видео, ссылка на внешний ресурс.[0066] In FIG. 10 shows an example of interface display when interacting with objects (311) of virtual tour (300). When interacting with the object (311) using an input means, for example, clicking with the mouse or pressing the touch screen of a smartphone or tablet, an additional window (312) opens, displaying additional information about the object. Such information can be: the name of the object (311), its cost, the possibility of ordering and the possibility of changing the texture (313) of the object (311). 3D tour objects (311) contain metadata that provide the possibility of obtaining additional information about the object, such as: text information with a description of the object, video, a link to an external resource.
[0067] Объекты (311) являются реальными фотокопиями предметов мебели, интерьера и т.п. Интерфейс тура (300) позволяет изменять текстуру объекта (311) с помощью ее изменения посредством дополнительного интерфейса (313). Это позволяет изменить цветовую гамму объекта (311) в рамках текущего тура (300). При этом каждый из пользователей, принимающих участие в туре (300), могут независимо друг от друга изменять текстуру объектов (311), что обеспечивает отображение изменений объектов (311) внутри тура (300) для каждого пользователя отдельно. Также, программная логика, реализуемая сервером (120) в рамках генерирования отображения виртуального тура (300) позволяет не только менять цвет/текстуру объектов (311), но их геометрические размеры, позволяя тем самым сформировать уникальное отображение тура для каждого пользователя, что может применяться при подборе дизайна помещений или недвижимости в рамках применения виртуальных туров. Модель виртуального тура (300) обеспечивает возможность ее декора (изменения цвета стен, добавление объектов и т.п.), который может осуществляться как одним пользователем для отображения всем остальным участникам, так и индивидуально каждым участником отдельно.[0067] Objects (311) are actual photocopies of furniture, interiors, and the like. The tour interface (300) allows you to change the texture of the object (311) by changing it through an additional interface (313). This allows you to change the color scheme of the object (311) within the current tour (300). At the same time, each of the users participating in the tour (300) can independently change the texture of objects (311), which provides a display of changes in objects (311) inside the tour (300) for each user separately. Also, the software logic implemented by the server (120) within the framework of generating a virtual tour display (300) allows not only changing the color/texture of objects (311), but their geometric dimensions, thereby allowing a unique tour display to be generated for each user, which can be applied when selecting the design of premises or real estate as part of the use of virtual tours. The virtual tour model (300) provides the possibility of decorating it (changing the color of the walls, adding objects, etc.), which can be carried out both by one user for display to all other participants, and individually by each participant separately.
[0068] Фиг. 11 иллюстрирует схематичное отображение точек съемки Р1-Р7 (POV), которые формируется на основании свипов. В момент подключения новых участников (112, 113) тура (300), при переходе по ссылке, направленной от устройства (111), сервер (120) получает информацию о текущем местоположении внутри тура (300) пользователя (111), который является в данный момент ведущим. Как представлено на Фиг. 11 в момент подключения пользователь (111) находится в Р6. При переходе по ссылке пользователями (112, 113) для них будет осуществляют формирование отображения виртуального тура с области обзора камеры пользователя (111). По умолчанию, при первичном подключении к устройству ведущего (111) новых пользователей дублируется отображение области обзора (1111) пользователя (111), при котором кватернион камеры области обзора участника (112, 113) совпадает с кватернионом камеры области отображения ведущего (111).[0068] FIG. 11 illustrates a schematic display of survey points P1-P7 (POV) that are generated based on sweeps. At the time of connection of new participants (112, 113) of the tour (300), when following the link sent from the device (111), the server (120) receives information about the current location within the tour (300) of the user (111), who is currently leading moment. As shown in FIG. 11 at the time of connection, the user (111) is in P6. When users click on the link (112, 113), they will generate a virtual tour display from the user's camera view area (111). By default, when new users first connect to the host (111) device, the display of the view area (1111) of the user (111) is duplicated, in which the camera quaternion of the participant’s view area (112, 113) matches the camera quaternion of the view area of the leader (111).
[0069] После подключения пользователи (112, 113) дублируют вид камеры пользователя (111), но могут и выбрать с помощью интерфейса тура один из режимов дальнейшего участия в виртуальном туре (300). Таких режимов несколько: 1) Полное копирование всех перемещений, поворотов и текущего увеличения (зума) камеры ведущего (111); 2) Копирование всех перемещений ведущего (111), но возможность управления поворотами и зумом камеры вручную; 3) Режим полной свободы для самостоятельного перемещения внутри тура (300).[0069] After connecting, users (112, 113) duplicate the view of the user's camera (111), but can also select one of the modes of further participation in the virtual tour (300) using the tour interface. There are several such modes: 1) Full copying of all movements, turns and current increase (zoom) of the leader's camera (111); 2) Copying all movements of the presenter (111), but the ability to control the rotation and zoom of the camera manually; 3) Full freedom mode for independent movement within the tour (300).
[0070] Каждый из подключенных участников (112, 113) может генерировать команду на следование за ним других участников, обеспечивая повторение перемещения по туру и дублирования обзора камеры такого пользователя. Такого рода команда может передаваться посредством взаимодействия с интерфейсом отображения виртуального тура (300). При этом участник, которому передается данное уведомление, может принять или отклонить его.[0070] Each of the connected participants (112, 113) can generate a command for other participants to follow, providing a repetition of moving around the tour and duplicating the camera view of such a user. This kind of command may be transmitted by interacting with the virtual tour display interface (300). At the same time, the participant to whom this notification is sent can accept or reject it.
[0071] Устройство ведущего (111) также может активировать команду сбора участников тура в единой точке, в которой в текущий момент находится ведущий (111). Это реализуется с помощью перемещения участников в POV нахождения ведущего (111). Дополнительно может принудительно формироваться команда на изменение области отображения камеры, дублирующей камеру ведущего (111).[0071] The leader's device (111) can also activate a command to gather tour participants at a single point where the leader (111) is currently located. This is implemented by moving the participants in the POV of finding the leader (111). Additionally, a command to change the display area of the camera that duplicates the host's camera (111) can be forcibly generated.
[0072] При подключении к туру нескольких пользователей (111-113) в многопользовательском режиме участия для каждого из пользователей может формироваться уникальный аватар, отображаемый, например, на миникарте (310) или в общем интерфейсе при обзоре тура (300). Интерфейс тура (300) обеспечивает также возможность общения пользователям (111-113) между собой посредством текстового и/или голосового чата. При подключении устройства ведущего (111) является основным устройством, осуществляющим управление и модерацию чата и позволяет включать/отключать микрофоны других участников, а также блокировать и текстовые сообщения от них в случае необходимости. Все пользователи, участвующие в рамках единого просмотра виртуального тура (300), имеют уникальные идентификаторы и указывают логин, под которым они присоединяются посредством ссылки (211). Функция чата может дополнительно содержать встроенный модуль перевода, обеспечивающий перевод текста или аудио с одного языка на другой. Каждый из участников тура может указать предпочтительный язык общения. В этом случае на сервере (120) для каждого идентификатора пользователя устанавливается маркер языка его общения, что позволяет с помощью модуля перевода автоматически переводить формируемый текст или аудиосообщения. При этом для каждого пользователя будет формироваться отдельный перевод чата в зависимости от выбранного им языка.[0072] When connecting to the tour of several users (111-113) in the multi-user mode of participation for each of the users, a unique avatar can be formed, displayed, for example, on the minimap (310) or in the general interface when reviewing the tour (300). The tour interface (300) also allows users (111-113) to communicate with each other via text and/or voice chat. When connected to the host device (111), it is the main device that manages and moderates the chat and allows you to turn on / off the microphones of other participants, as well as block text messages from them if necessary. All users participating in a single view of the virtual tour (300) have unique identifiers and indicate the login under which they join via a link (211). The chat function may further comprise a built-in translation module that provides translation of text or audio from one language to another. Each of the participants of the tour can indicate the preferred language of communication. In this case, a marker of the language of his communication is set on the server (120) for each user identifier, which allows using the translation module to automatically translate the generated text or audio messages. In this case, a separate chat translation will be generated for each user, depending on the language chosen by him.
[0073] Права ведущего могут передаваться другому участнику, это осуществляется при выходе из сессии виртуального тура устройства ведущего (111), или при непосредственном передачи самим ведущим (111) другому участнику данной роли. Передача роли ведущего означает получение другим пользователем аналогичного функционала, который был доступен изначально ведущему (111). В случае назначения нового ведущего другие участники автоматически привязываются к области обзора назначенного ведущего в соответствующего POV, в которой он находится. Участники могут изменить режим просмотра и навигации по туру (300) в любое время после назначения нового ведущего.[0073] The rights of the host can be transferred to another participant, this is done when the session of the virtual tour of the host device (111) exits, or when the host itself (111) directly transfers to another participant in this role. The transfer of the role of the presenter means that another user receives similar functionality that was originally available to the presenter (111). When a new leader is appointed, other participants are automatically assigned to the assigned leader's field of view in the corresponding POV in which he is located. Participants can change the view and navigation of the tour (300) at any time after the appointment of a new leader.
[0074] При подключении новых пользователей (112, 113) интерфейс виртуального тура (300) может реализовать функция повтора маршрута перемещения по POV ведущего (111) с отображением кадров области отображения его камеры. Эта функция позволяет повторить путь перемещения ведущего (111) по точкам POV, в которых до этого находился ведущий (111).[0074] When new users (112, 113) are connected, the virtual tour interface (300) can implement the function of repeating the route of movement along the POV of the leader (111) with displaying frames of the display area of his camera. This function allows you to repeat the path of the leader (111) along the POV points where the leader (111) was before.
[0075] Дополнительно интерфейс виртуального тура (300) может содержать функцию виртуальной указки, обеспечивающей функцию указания на объекты внутри виртуального тура (300). Указка может представлять собой виртуальный луч, или геометрический примитив (например, круг), отображаемые в интерфейсе на устройствах пользователей и позволяющие указать на объект (311) или элемент виртуального тура. При наведении на объект (311) указки он может подсвечиваться или иным образом выделяться внутри отображения тура (300). Устройство ведущего (111) также может активировать функцию "Трансляция указки объекта", при которой подсветка объектов (311) при помощи указки ведущего (111) отображается не только в окне приложения самого ведущего, но и в окнах приложения всех участников комнаты. Если обозначенный указкой объект (311) имеет тэг метаданных, то при подсвечивании этот тэг отображается на панораме для всех участников, которые видят объект подсвеченным. Тэг метаданных может содержать текстовую, визуальную, аудио и видео информацию об объекте, а также гиперссылки и элементы управления (такие как кнопки "Купить" или "Добавить в избранное") как это было описано ранее в настоящих материалах заявки.[0075] Additionally, the virtual tour interface (300) may include a virtual pointer function that provides a function for pointing to objects within the virtual tour (300). The pointer may be a virtual beam, or a geometric primitive (for example, a circle), displayed in the interface on users' devices and allowing you to point to an object (311) or an element of the virtual tour. When pointing at an object (311), it may be highlighted or otherwise highlighted within the tour display (300). The host device (111) can also activate the "Object Pointer Broadcast" function, in which highlighting objects (311) using the host pointer (111) is displayed not only in the application window of the presenter, but also in the application windows of all participants in the room. If the pointer object (311) has a metadata tag, then when highlighted, this tag is displayed in the panorama for all participants who see the object highlighted. The metadata tag may contain textual, visual, audio, and video information about the item, as well as hyperlinks and controls (such as "Buy" or "Add to Favorites" buttons) as described earlier in this application materials.
[0076] Помимо функции указания на объекты внутри тура (300), интерфейс обеспечивает функцию измерения геометрических размеров между точками в туре (так называемая функция «рулетки»), которая измеряет расстояние между двумя и более точками, т.к. 3D-модель виртуального тура построена на реальных размерах помещений в процессе их съемки. Измерение размеров с помощью графического интерфейса ведущего (111) может отображаться не только в окне его приложения, а также и для всех остальных пользователей.[0076] In addition to the function of pointing to objects within the tour (300), the interface provides a function for measuring the geometric dimensions between points in the tour (the so-called "roulette" function), which measures the distance between two or more points, because The 3D model of the virtual tour is built on the actual dimensions of the premises during their shooting. Dimensional measurement using the presenter's GUI (111) can be displayed not only in its application window, but also for all other users.
[0077] Интерфейс отображения тура на устройстве ведущего (111) имеет функцию рисования линий и фигур "поверх" панорамы виртуального тура (300). Все фигуры, нарисованные с помощью такой функции, отображаются на панораме в окне приложения для каждого участника.[0077] The tour display interface on the host device (111) has the function of drawing lines and shapes "on top" of the virtual tour panorama (300). All shapes drawn using this feature are displayed in a panorama in the application window for each participant.
[0078] Для устройства ведущего (111) доступен инструмент "Воспроизведение видео", при помощи которого ведущий (111) может транслировать в интерфейсы участников (112, 113) выбранные видео материалы. Также инструмент позволяет воспроизводить выбранный видео материал автоматически, при выполнении заранее заданных условий, например, воспроизведение рекламного видео может начаться, как только ведущий (111) войдет в определенную часть тура (300) или укажет указкой на определенный объект (311).[0078] For the host device (111), a "Video Playback" tool is available, with which the host (111) can broadcast selected video materials to the participant interfaces (112, 113). Also, the tool allows you to play the selected video material automatically, if predetermined conditions are met, for example, advertising video playback can start as soon as the presenter (111) enters a certain part of the tour (300) or points to a certain object (311) with a pointer.
[0079] Для всех участников (112, 113) тура, кроме ведущего (111), доступен режим "картинка в картинке". Когда этот режим активен, в интерфейсе отображения пользователя (112, 113) отображается не только панорама виртуального тура с области отображения камеры данного участника, но и областью отображения камеры ведущего (111), например, в отдельном окне поверх основного окна. Местоположение и размер окна "картинка в картинке" являются настраиваемыми параметрами.[0079] For all participants (112, 113) of the tour, except for the leader (111), a picture-in-picture mode is available. When this mode is active, the user display interface (112, 113) displays not only the panorama of the virtual tour from the camera display area of this participant, but also the presenter's camera display area (111), for example, in a separate window on top of the main window. The location and size of the picture-in-picture window are configurable.
[0080] Участники тура (300) помимо чат-сессии могут общаться в режиме видеоконференции. При активации данного режима в окне пользователя отображается не только панорама виртуального чата, но и видеопоток с веб-камеры участника, который в данный момент говорит (в режиме "картинка в картинке"). Режим видеоконференции может активироваться также через аватары. Когда этот режим активен, на аватаре участника, как на видеоэкране, отображается видеопоток с веб-камеры данного участника. Эта функция доступна только для аватаров в виде геометрических фигур.[0080] Participants of the tour (300) in addition to the chat session can communicate via videoconference. When this mode is activated, the user window displays not only a panorama of the virtual chat, but also a video stream from the webcam of the participant who is currently speaking (in picture-in-picture mode). The videoconference mode can also be activated via avatars. When this mode is active, the participant's avatar, like a video screen, displays the video stream from the participant's webcam. This feature is only available for geometric shape avatars.
[0081] Реализация вышеуказанных функций и возможностей в рамках генерирования и отображения виртуальных туров для нескольких участников позволяет не только повысить эффективность навигации пользователей за счет привязки в рамках их подключения к точке отображения основного пользователя (ведущего), но и расширить функциональные возможности, обеспечивая не только формирование отображения виртуальных туров для их просмотра с разных точек обзора, но и дополнительные возможности в части виртуального декора помещений и возможности выбора элементов декора, отображаемых на 3D-модели тура.[0081] The implementation of the above functions and capabilities within the framework of generating and displaying virtual tours for several participants allows not only to improve the efficiency of user navigation by binding within their connection to the display point of the main user (master), but also to expand the functionality, providing not only the formation of a display of virtual tours for viewing them from different viewpoints, but also additional opportunities in terms of virtual interior decor and the ability to select decor elements displayed on a 3D tour model.
[0082] Виртуальные туры могут широко применяться как в сфере продажи недвижимости, проведении экскурсий, обучения и т.п.[0082] Virtual tours can be widely used in real estate sales, tours, education, and the like.
[0083] На Фиг. 12 представлен пример общего вида вычислительной системы (400) или вычислительного устройства, которая обеспечивает реализацию заявленного способа или является частью компьютерной системы, например, сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения. На базе системы (400) могут изготавливаться устройства пользователей (110), сервер (120) и 3D-камера (140).[0083] In FIG. 12 shows an example of a general view of a computing system (400) or a computing device that provides the implementation of the claimed method or is part of a computer system, for example, a server, a personal computer, a part of a computing cluster that processes the necessary data to implement the claimed technical solution. Based on the system (400), user devices (110), a server (120), and a 3D camera (140) can be manufactured.
[0084] В общем случае система представляет собой компьютерную систему (400) и содержит объединенные общей шиной информационного обмена один или несколько процессоров (401), средства памяти, такие как ОЗУ (402) и ПЗУ (403), интерфейсы ввода/вывода (404), устройства ввода/вывода (405), и устройство для сетевого взаимодействия (406).[0084] In general, the system is a computer system (400) and contains one or more processors (401), memory facilities such as RAM (402) and ROM (403), input / output interfaces (404) connected by a common information exchange bus ), input/output devices (405), and a device for networking (406).
[0085] Процессор (401) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в системе (400) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[0085] The processor (401) (or multiple processors, multi-core processor, etc.) can be selected from a range of devices currently widely used, for example, manufacturers such as: Intel™, AMD™, Apple™, Samsung Exynos ™, MediaTEK™, Qualcomm Snapdragon™, etc. Under the processor or one of the processors used in the system (400), it is also necessary to take into account the graphics processor, for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial execution of the method, and can also be used to train and apply machine learning models in various information systems.
[0086] ОЗУ (402) представляет собой оперативную память и предназначено для хранения исполняемых процессором (401) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (402), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (402) может выступать доступный объем памяти графической карты или графического процессора.[0086] RAM (402) is a random access memory and is designed to store machine-readable instructions executable by the processor (401) to perform the necessary data logical processing operations. The RAM (402) typically contains the executable instructions of the operating system and associated software components (applications, program modules, etc.). In this case, the RAM (402) may be the available memory of the graphics card or graphics processor.
[0087] ПЗУ (403) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0087] A ROM (403) is one or more persistent storage devices such as a hard disk drive (HDD), a solid state drive (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R/RW, DVD-R/RW, BlueRay Disc, MD), etc.
[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 и т.п.[0088] Various types of I/O interfaces (404) are used to organize the operation of system components (400) and organize the operation of external connected devices. The choice of appropriate interfaces depends on the particular design of the computing device, which can be, but not limited to: 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, etc.
[0089] Для обеспечения взаимодействия пользователя с вычислительной системой (400) применяются различные средства (405) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0089] To ensure user interaction with the computing system (400), various means (405) of I/O information are used, for example, a keyboard, a display (monitor), a touch screen, a touchpad, a joystick, a mouse, a light pen, a stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, indicator lights, projector, camera, biometric identification tools (retinal scanner, fingerprint scanner, voice recognition module), etc.
[0090] Средство сетевого взаимодействия (406) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (406) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0090] The network communication means (406) provides data transmission via an internal or external computer network, for example, an Intranet, the Internet, a LAN, and the like. As one or more means (406) can be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module and others
[0091] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.[0091] The submitted application materials disclose preferred examples of the implementation of the technical solution and should not be construed as limiting other, particular examples of its implementation that do not go beyond the scope of the requested legal protection, which are obvious to specialists in the relevant field of technology.
Claims (29)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2023/050017 WO2023158345A1 (en) | 2022-02-15 | 2023-02-09 | Method and system for controlling the display of virtual tours in multi-user mode |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2783218C1 true RU2783218C1 (en) | 2022-11-10 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2812950C1 (en) * | 2023-04-26 | 2024-02-06 | Общество с ограниченной ответственностью "Визард Тим" | System for constructing three-dimensional space model |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU136911U1 (en) * | 2012-07-12 | 2014-01-20 | Общество с ограниченной ответственностью "Ростр" | MOBILE COMPLEX FOR DEMONSTRATION OF REPRESENTATIVES IN ELECTRONIC (DIGITAL) FORM OF 3D-MODELS OF MUSEUM EXHIBITS |
US20180034865A1 (en) * | 2016-07-29 | 2018-02-01 | Everyscape, Inc. | Systems and Methods for Providing Individual and/or Synchronized Virtual Tours through a Realm for a Group of Users |
US20190012833A1 (en) * | 2013-10-25 | 2019-01-10 | Appliance Computing III, Inc. | Image-based rendering of real spaces |
WO2021074924A1 (en) * | 2019-10-14 | 2021-04-22 | Mital Rohan | Method and system for providing collaborative browsing across a plurality of user devices |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU136911U1 (en) * | 2012-07-12 | 2014-01-20 | Общество с ограниченной ответственностью "Ростр" | MOBILE COMPLEX FOR DEMONSTRATION OF REPRESENTATIVES IN ELECTRONIC (DIGITAL) FORM OF 3D-MODELS OF MUSEUM EXHIBITS |
US20190012833A1 (en) * | 2013-10-25 | 2019-01-10 | Appliance Computing III, Inc. | Image-based rendering of real spaces |
US20180034865A1 (en) * | 2016-07-29 | 2018-02-01 | Everyscape, Inc. | Systems and Methods for Providing Individual and/or Synchronized Virtual Tours through a Realm for a Group of Users |
WO2021074924A1 (en) * | 2019-10-14 | 2021-04-22 | Mital Rohan | Method and system for providing collaborative browsing across a plurality of user devices |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2812950C1 (en) * | 2023-04-26 | 2024-02-06 | Общество с ограниченной ответственностью "Визард Тим" | System for constructing three-dimensional space model |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11783409B1 (en) | Image-based rendering of real spaces | |
WO2023138471A1 (en) | Three-dimensional scene rendering method, device, and storage medium | |
CN112243583B (en) | Multi-endpoint mixed reality conference | |
US9077846B2 (en) | Integrated interactive space | |
US10249089B2 (en) | System and method for representing remote participants to a meeting | |
JP6627861B2 (en) | Image processing system, image processing method, and program | |
US9881425B1 (en) | Synchronized side-by-side display of real and virtual environments | |
EP3654146A1 (en) | Anchoring virtual images to real world surfaces in augmented reality systems | |
US20120192088A1 (en) | Method and system for physical mapping in a virtual world | |
CN102411783A (en) | Automatically tracking user movement in a video chat application | |
CN102253711A (en) | Enhancing presentations using depth sensing cameras | |
JP2010217719A (en) | Wearable display device, and control method and program therefor | |
US9531995B1 (en) | User face capture in projection-based systems | |
Lehment et al. | Creating automatically aligned consensus realities for AR videoconferencing | |
US11736802B2 (en) | Communication management apparatus, image communication system, communication management method, and recording medium | |
JP7241812B2 (en) | Information visualization system, information visualization method, and program | |
Ishigaki et al. | Real-time 3D reconstruction for mixed reality telepresence using multiple depth sensors | |
US11000756B2 (en) | Pre-visualization device | |
RU2783218C1 (en) | Method and system for controlling display of virtual tours in multi-user mode | |
WO2023158345A1 (en) | Method and system for controlling the display of virtual tours in multi-user mode | |
Sánchez Salazar Chavarría et al. | Interactive 3D touch and gesture capable holographic light field display with automatic registration between user and content | |
Tait et al. | A projected augmented reality system for remote collaboration | |
CN107409196B (en) | Projecting virtual copies of remote objects | |
RU2826369C1 (en) | Method and system for automated construction of virtual 3d scene based on two-dimensional spherical photo panoramas | |
Zhang et al. | A smart method for developing game-based virtual laboratories |