RU2783231C1 - Method and system for constructing navigation routes in three-dimensional model of virtual tour - Google Patents
Method and system for constructing navigation routes in three-dimensional model of virtual tour Download PDFInfo
- Publication number
- RU2783231C1 RU2783231C1 RU2022103832A RU2022103832A RU2783231C1 RU 2783231 C1 RU2783231 C1 RU 2783231C1 RU 2022103832 A RU2022103832 A RU 2022103832A RU 2022103832 A RU2022103832 A RU 2022103832A RU 2783231 C1 RU2783231 C1 RU 2783231C1
- Authority
- RU
- Russia
- Prior art keywords
- points
- point
- navigation
- user
- virtual tour
- Prior art date
Links
- 230000000875 corresponding Effects 0.000 claims abstract description 15
- 238000010276 construction Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000005755 formation reaction Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000005266 casting Methods 0.000 description 3
- 230000002452 interceptive Effects 0.000 description 2
- 230000003287 optical Effects 0.000 description 2
- 229920002239 polyacrylonitrile Polymers 0.000 description 2
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 229940116821 SSD Drugs 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
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000036633 rest 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
- 230000000007 visual effect Effects 0.000 description 1
Images
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[0001] Настоящее техническое решение относится к области компьютерной техники, в частности, к методам построения навигационных маршрутов для пользователя в виртуальной среде, такой как, например, трехмерная модель виртуального тура.[0001] The present technical solution relates to the field of computer technology, in particular, to methods for constructing navigation routes for a user in a virtual environment, such as, for example, a three-dimensional model of a virtual tour.
УРОВЕНЬ ТЕХНИКИ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] В связи с этим, построение навигационных маршрутов между точками перехода для пользователя является неотъемлемой частью процесса создания виртуального тура. Так, функциональные возможности навигации, доступные пользователю при перемещении по виртуальному туру, во многом определяют отображаемые пользователю элементы трехмерной модели окружения, что для некоторых типов виртуальных туров, таких как, виртуальные туры по недвижимости, является ключевой особенностью. Кроме того, сложный и/или запутанный маршрут, построенный по точкам навигации (точки перехода) может привести к тому, что пользователь не сфокусирует свое внимание на некоторых [0004] In this regard, the construction of navigation routes between the transition points for the user is an integral part of the process of creating a virtual tour. Thus, the navigation functionality available to the user when moving around the virtual tour largely determines the elements of the three-dimensional model of the environment displayed to the user, which is a key feature for some types of virtual tours, such as virtual tours of real estate. In addition, a complex and/or confusing route based on navigation points (transition points) may cause the user not to focus on some
элементах виртуального тура или вовсе пропустит важные элементы. Поэтому методики построения навигационных маршрутов для пользователя в трехмерной модели виртуального тура являются актуальными и востребованными в настоящее время.elements of the virtual tour or skip important elements altogether. Therefore, the methods for constructing navigation routes for the user in a three-dimensional virtual tour model are relevant and in demand at the present time.
[0005] Так, одним из примеров такой технологии, является технология, описанная в патенте США № US 2007/198178 A1 (TRIMBY MARTIN W, et al.), опубл. 23.08.2007, в которой раскрывается способ построения маршрута между точками виртуального тура с учетом препятствий, расположенных в сцене указанного виртуального тура.[0005] So, one example of such technology is the technology described in US patent No. US 2007/198178 A1 (TRIMBY MARTIN W, et al.), publ. 08/23/2007, which discloses a method for constructing a route between the points of a virtual tour, taking into account the obstacles located in the scene of the specified virtual tour.
[0006] Недостатком такого рода решений является низкая эффективность построения навигационных маршрутов для пользователя ввиду отсутствия возможности построения маршрута в зависимости от высоты и типа препятствия. Кроме того, такого рода решения не предполагают возможность сокращения точек навигации, отображаемых пользователю виртуального тура, что может приводить к высокой плотности однотипных точек, которые будут перекрывать элементы виртуального тура и, как следствие, приводить к неэффективной навигации пользователя по такому туру.[0006] The disadvantage of this kind of solutions is the low efficiency of building navigation routes for the user due to the inability to build a route depending on the height and type of obstacle. In addition, such solutions do not imply the possibility of reducing the navigation points displayed to the user of the virtual tour, which can lead to a high density of the same type of points that will overlap the elements of the virtual tour and, as a result, lead to inefficient user navigation on such a tour.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[0007] Заявленное решение решает техническую проблему эффективного построения навигационных маршрутов для пользователя по виртуальному туру.[0007] The claimed solution solves the technical problem of effectively building navigation routes for the user on a virtual tour.
[0008] Технический результат заключается в повышении эффективности построения навигационных маршрутов для пользователя в трехмерной модели виртуального тура.[0008] The technical result is to increase the efficiency of building navigation routes for the user in a three-dimensional virtual tour model.
[0009] В предпочтительном варианте осуществления заявленного решения заявлен способ построения навигационных маршрутов для пользователя в трехмерной модели виртуального тура, выполняющийся по меньшей мере одним процессором, и содержащий этапы, на которых:[0009] In a preferred embodiment of the claimed solution, a method for constructing navigation routes for a user in a three-dimensional virtual tour model is claimed, which is executed by at least one processor, and contains the steps, in which:
a. получают набор точек с заданными координатами трехмерной модели объекта виртуального тура, причем каждая точка соответствует точке расположения камеры на объекте;a. get a set of points with the given coordinates of the three-dimensional model of the virtual tour object, each point corresponds to the location of the camera on the object;
b. формируют граф достижимости из полученного набора точек и выбирают первую точку из набора точек в качестве начальной точки маршрута пользователя;b. forming a reachability graph from the obtained set of points and selecting the first point from the set of points as the starting point of the user's route;
c. формируют по меньшей мере два параллельных луча из первой точки к точкам из набора точек, полученного на этапе а), причем указанные лучи расположены на разной высоте относительно координаты первой точки;c. forming at least two parallel beams from the first point to the points from the set of points obtained in step a), said beams being located at different heights relative to the coordinate of the first point;
d. формируют ребра графа достижимости между всеми точками, которых достиг по меньшей мере один выпущенный луч;d. forming edges of a reachability graph between all points reached by at least one emitted ray;
e. итеративно повторяют этапы c)-d) для каждой точки из набора точек;e. iteratively repeating steps c)-d) for each point from the set of points;
f. формируют для каждой точки из набора точек по меньшей мере один путь навигации, причем по меньшей мере одному пути навигации соответствует ребро графа достижимости между двумя точками;f. forming for each point from the set of points at least one navigation path, with at least one navigation path corresponding to an edge of the reachability graph between two points;
g. осуществляют построение всех возможных навигационных маршрутов по виртуальному туру для пользователя на основе сформированных путей навигации.g. carry out the construction of all possible navigation routes for the virtual tour for the user based on the generated navigation paths.
[0010] Заявленное решение также осуществляется с помощью системы построения навигационных маршрутов для пользователя в трехмерной модели виртуального тура, которая содержит по меньшей мере один процессор, функционально связанный с по меньшей мере одной памятью, хранящей машиночитаемые инструкции, которые при их выполнении процессором реализуют вышеуказанный способ.[0010] The claimed solution is also implemented using a system for constructing navigation routes for the user in a three-dimensional virtual tour model, 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
[0011] Фиг. 1 иллюстрирует блок-схему способа построения навигационного маршрута пользователя в трехмерной модели виртуального тура.[0011] FIG. 1 illustrates a flowchart of a method for constructing a user navigation route in a 3D virtual tour model.
[0012] Фиг. 2 иллюстрирует общую схему построения виртуального тура.[0012] FIG. 2 illustrates the general scheme for constructing a virtual tour.
[0013] Фиг. 3 иллюстрирует пример процесса съемки с помощью 3D-камеры.[0013] FIG. 3 illustrates an example of a shooting process using a 3D camera.
[0014] Фиг. 4 иллюстрирует пример сформированных путей навигации.[0014] FIG. 4 illustrates an example of generated navigation paths.
[0015] Фиг. 5-6 иллюстрируют примеры формирования путей навигации между точками навигации.[0015] FIG. 5-6 illustrate examples of generating navigation paths between navigation points.
[0016] Фиг. 7 иллюстрирует пример общего вида элементов вычислительной системы, которая обеспечивает реализацию заявленного решения.[0016] FIG. 7 illustrates an example of a general view of the elements of a computing system that provides the implementation of the claimed solution.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION
[0017] Заявленное техническое решение предлагает новый подход, обеспечивающий повышение эффективности построения навигационных маршрутов для пользователя в виртуальном туре за счет добавления точек навигации в указанный маршрут с учетом особенностей высоты расположения самих точек и высоты элементов трехмерной модели, которые создают препятствия между соединяемыми точками. Кроме того, заявленное решение также обеспечивает возможность сокращения точек навигации, отображаемых пользователю виртуального тура, что, как следствие, снижает плотность отображаемых точек в трехмерной модели и повышает скорость отображения виртуального тура на устройстве пользователя.[0017] The claimed technical solution offers a new approach that improves the efficiency of building navigation routes for the user in a virtual tour by adding navigation points to the specified route, taking into account the peculiarities of the height of the points themselves and the height of the three-dimensional model elements that create obstacles between the connected points. In addition, the claimed solution also provides the ability to reduce the navigation points displayed to the user of the virtual tour, which, as a result, reduces the density of the displayed points in the three-dimensional model and increases the speed of displaying the virtual tour on the user's device.
[0018] На Фиг. 1 представлена блок схема способа построения навигационных маршрутов для пользователя в трехмерной модели виртуального тура (100), который раскрыт поэтапно более подробно ниже. Указанный способ (100) заключается в выполнении этапов, направленных на обработку различных цифровых данных, полученных с 3D-камеры (240). Обработка, как правило, выполняется с помощью элементов системы построения навигационных маршрутов для пользователя в виртуальном туре (210), представленной, например, в виде сервера, содержащего процессор, графический процессор (GPU), вычислительный модуль и т.д., функционально связанный с по меньшей мере одной памятью, которая хранит машиночитаемые инструкции, которые при их выполнении процессором реализуют способ (100). Более подробно элементы системы (210) раскрыты на Фиг. 7.[0018] In FIG. 1 is a block diagram of a method for constructing navigational routes for a user in a 3D virtual tour model (100), which is described step by step in more detail below. The specified method (100) consists in performing steps aimed at processing various digital data received from a 3D camera (240). The processing is typically performed by elements of a navigation route building system for a user in a virtual tour (210), represented, for example, as a server containing a processor, a graphic processing unit (GPU), a computing module, etc., functionally associated with at least one memory that stores machine-readable instructions that, when executed by the processor, implement method (100). The elements of system (210) are described in more detail in FIG. 7.
[0019] На этапе (110) выполняется получение набора точек с заданными координатами трехмерной модели объекта виртуального тура, причем каждая точка соответствует точке расположения камеры на объекте.[0019] At step (110), a set of points is obtained with given coordinates of a three-dimensional model of a virtual tour object, each point corresponding to a camera location point on the object.
[0020] На Фиг. 2 представлена общая схема взаимодействия пользователя с виртуальным туром. Генерация виртуального тура (200) осуществляется системой (210), к которой подключаются пользователи (220) с помощью различного вида вычислительных устройств (221-223). Система (210) может представлять собой, например, сервер, облачный сервер, кластер серверов и т.д. В качестве устройств могут выступать, например, смартфон, компьютер, ноутбук, планшет, смарт ТВ, средство виртуальной реальности и прочие устройства, которые функционально могут воспроизводить и формировать интерфейс для пользовательского взаимодействия с виртуальным туром (200), независимо от принципа его отображения (дисплей устройства, виртуальная реальность) и взаимодействия с объектами внутри тура (с помощью средств ввода или контроллеров, предназначенных для виртуальной реальности).[0020] In FIG. 2 shows the general scheme of user interaction with a virtual tour. The virtual tour (200) is generated by the system (210), to which users (220) connect using various types of computing devices (221-223). System (210) may be, for example, a server, cloud server, server cluster, etc. 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).
[0021] Система (210) представляет собой стандартное вычислительное компьютерное устройство и может являться как сервером или серверным кластером, так и облачным сервером. Основная задача системы (210) осуществлять обработку получаемых с 3D-камеры (240) данных для генерирования виртуальных туров (200) и построения навигационных маршрутов в таких турах в соответствии с заявленным способом (100). Так, система (210), например, сервер, может генерировать виртуальный тур (200) путем обработки данных (облака точек, фотопанорамы, изображения), поступающих со специализированной 3D-камеры (240) и осуществлять дальнейшие этапы способа (100) для построения маршрута для пользователя. Кроме того, система (210) выполнена с [0021] The system (210) is a standard computing computer device and can be either a server or a server cluster or a cloud server. The main task of the system (210) is to process the data received from the 3D camera (240) to generate virtual tours (200) and build navigation routes in such tours in accordance with the claimed method (100). Thus, the system (210), for example, a server, can generate a virtual tour (200) by processing data (point clouds, photo panoramas, images) coming from a specialized 3D camera (240) and carry out further steps of the method (100) to build a route for the user. In addition, system (210) is made with
возможностью осуществлять обработку данных для предоставления виртуальных туров (200) для передачи на пользовательские устройства (220).the ability to process data to provide virtual tours (200) for transmission to user devices (220).
[0022] Обмен информацией между пользователями (220) и системой (210) осуществляется посредством канала передачи данных (230), который представляет собой глобальную сеть «Интернет». Протокол реализации канала передачи данных (230) может выбираться из любого известного типа протоколов, таких как: LAN, WAN, PAN, WLAN, IEEE 802.11, GSM и т.п. Соответствующий протокол и тип подключения конкретного устройства (221-223) к системе (210) определяется исходя из технического воплощения такого типа устройства и соответствующего аппаратного оснащения для выполнения связи с сетью «Интернет».[0022] The exchange of information between users (220) and the system (210) is carried out through a data link (230), which is a global network "Internet". The data link implementation protocol (230) 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 (221-223) to the system (210) is determined based on the technical implementation of this type of device and the corresponding hardware for communicating with the Internet.
[0023] В качестве 3D-камеры (240) для съемки трехмерных виртуальных туров (200) может применяться, например, 3D-камера FilinCam V6/V7/X1 и др. 3D-камера 3D-камера (240) предназначена для съемки помещений и открытых пространств для дальнейшего создания их фотореалистичных цифровых моделей и виртуальных туров. Процесс съемки включает сбор и предварительную обработку сырых данных с 3D-камеры (240), которая также содержит по меньшей мере: вычислительный модуль (процессор или микроконтроллер), память, лидар, акселлерометр датчик IMU и энкодер (датчик угла поворота), которые необходимы для формирования набора данных для последующего формирования виртуальных туров (200). Управление камерой (240) осуществляется через программное приложение, установленное на мобильном устройстве оператора, например, планшете, смартфоне или ноутбуке. По окончании съемки полученные данные выгружаются с 3D-камеры (240) в систему (210), где происходит их хранение, обработка, создание 3D-моделей отсканированного пространства, виртуальных туров (200) и построение навигационных маршрутов для пользователя по указанным турам. Готовые виртуальные туры (200), со сгенерированными возможными навигационными маршрутами для пользователя далее могут предоставляться пользователям (220), путем получения доступа вычислительным устройством пользователя (221-223) по каналу передачи данных (230) к указанной системе.[0023] As a 3D camera (240) for capturing 3D virtual tours (200), for example, FilinCam V6/V7/X1 3D camera, etc. can be used. open spaces to further create their photorealistic digital models and virtual tours. The survey process includes the acquisition and pre-processing of raw data from the 3D camera (240), which also contains at least: a computing module (processor or microcontroller), memory, lidar, IMU accelerometer sensor and encoder (rotation angle sensor), which are necessary for formation of a data set for the subsequent formation of virtual tours (200). The camera (240) 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 (240) to the system (210), where they are stored, processed, 3D models of the scanned space, virtual tours (200) are created, and navigation routes are built for the user along the specified tours. Ready-made virtual tours (200), with generated possible navigation routes for the user, can then be provided to users (220), by accessing the user's computing device (221-223) via a data transmission channel (230) to the specified system.
[0024] Соответственно, после создания 3D-модели отсканированного пространства, строится навигационный маршрут для пользователя по указанной модели. В качестве набора точек, которые соответствуют точкам навигации по виртуальному туру, на этапе (110), система (210) получает точки с заданными координатами в формате (х, у, z), которые являются координатами точки расположения камеры (240) на объекте, которому соответствует построенная 3D-модель. Так, координаты точки навигации в трехмерной модели, соответствующие расположению камеры в пространстве могут быть получены из [0024] Accordingly, after creating a 3D model of the scanned space, a navigation route is built for the user according to the specified model. As a set of points that correspond to the virtual tour navigation points, at step (110), the system (210) receives points with given coordinates in the format (x, y, z), which are the coordinates of the camera (240) location point on the object, which corresponds to the constructed 3D model. So, the coordinates of a navigation point in a three-dimensional model, corresponding to the location of the camera in space, can be obtained from
метаданных снимка, который был сделан камерой (240) в процессе съемки объекта для последующего построения на его основе виртуального труа (200).metadata of the image that was taken by the camera (240) in the process of capturing the object for subsequent construction of a virtual trois (200) on its basis.
[0025] Рассмотрим более подробно процесс получения координат каждой точки из набора точек.[0025] Consider in more detail the process of obtaining the coordinates of each point from a set of points.
[0026] На Фиг. 3 представлен пример процесса съемки области с помощью 3D-камеры для последующего построения на его основе виртуального труа (200). Процесс съемки начинается с установки камеры (240), закрепленной на штативе, в начальную точку съемки (точки 1-6 на Фиг. 3). Камера (240) совершает полный оборот вокруг оси, сканируя окружающее пространство лидаром и несколько раз останавливаясь, чтобы выполнить серию фотоснимков. В результате формируется так называемый "свип" (от англ. Sweep), т.е. набор данных, состоящий из нескольких HDR-снимков, лидарного облака точек и метаданных.[0026] In FIG. Figure 3 shows an example of the process of capturing a region using a 3D camera for subsequent construction of a virtual trois (200) on its basis. The shooting process begins with the installation of the camera (240), mounted on a tripod, at the starting point of the shooting (points 1-6 in Fig. 3). The camera (240) makes a full rotation around the axis, scanning the surrounding space with lidar and stopping 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.
[0027] Пример данных, хранимых в свипе.[0027] An example of data stored in a sweep.
- 3 серии по 6 или 7 (в зависимости от выбранного режима) снимков с камеры (140), которые используются для создания HDR-изображений;- 3 bursts of 6 or 7 (depending on selected mode) camera shots (140) used to create HDR images;
- Набор срезов лидара для создания облака точек;- A set of lidar slices to create a point cloud;
- Кватернионы и углы отклонения камеры (240) от горизонта на момент начала и окончания съемки свипа, рассчитанные на основе данных акселерометра и гироскопа IMU;- Quaternions and angles of camera deviation (240) 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.).
[0028] После получения данных в рамках съемки первого свипа в точке №1 камера (240) перемещается в новую точку съемки (например, точка №2) и выполняется съемку следующего свипа. Набор отснятых свипов, приведенный к единой системе координат, называется "сценой".[0028] After receiving data from the first sweep at
[0029] Как показано на Фиг. 3, свипы в сцене всегда организованы в древовидный ациклический граф с единственным начальным узлом. Для каждого свипа в сцене, кроме первого, определен так называемый "родительский" свип. По умолчанию родительским считается последний снятый свип, но при необходимости родительским свипом может быть назначен любой из отснятых свипов. Например, на Фиг. 3 родительским для свипа №4 является не свип №3, как было бы назначено по умолчанию, а свип №2.[0029] As shown in FIG. 3, 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. 3 the parent of
[0030] Каждый свип имеет свою систему координат, которая совпадает с системой координат 3D-камеры (240) на момент начала съемки данного свипа. Система координат первого свипа также служит системой координат сцены. Таким образом, чтобы построить [0030] Each sweep has its own coordinate system, which coincides with the coordinate system of the 3D camera (240) at the start of the survey of this sweep. The coordinate system of the first sweep also serves as the scene coordinate system. So to build
из свипов сцену, необходимо решить задачу перевода облака точек каждого свипа из собственной системы координат в систему координат сцены.from sweeps to the scene, 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.
[0031] Для этого используется алгоритм привязки, который анализирует облака точек и фотопанорамы двух соседних (т.е. соединенных одним ребром графа) свипов в дереве, ищет совпадающие участки, на их основе определяет взаимное расположение и ориентацию этих свипов в сцене и рассчитывает матрицу перехода между ними.[0031] 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.
[0032] Алгоритм привязки рассчитывает матрицы перехода Tij для каждой пары соседних свипов Si и Sj. Чтобы перевести облако точек Pi свипа Si в систему координат свипа Sj, достаточно умножить его на Tij.[0032] 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 .
Здесь и далее используется следующая нотация: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 cloud of sweep points 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 translates the point cloud P 3 into P 3 5 .
[0033] Чтобы перевести облако точек Pj свипа Sj в систему координат свипа Si, достаточно умножить это облако точек на матрицу Τji, обратную к Tij.[0033] 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 Τ ji inverse to T ij .
[0034] Если свипы не являются соседними в дереве, задача разделяется на несколько последовательных шагов. Например, чтобы на Фиг. 1 перевести облако точек свипа S6 в систему координат свипа S1, его следует сначала перевести в систему координат свипа S5, затем S2, и наконец S1. Для этого необходимо последовательно умножить облако точек свипа S6 на матрицы перехода Т65, Т52 и Т21:[0034] 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 :
Или, более кратко:Or, more succinctly:
[0035] Следует отметить, что древовидная структура графа гарантирует единственность пути между любыми двумя свипами в сцене. Таким образом, чтобы привести все свипы к единой системе координат, на графе необходимо определить единственно возможный путь от каждого свипа до начального свипа №1 и последовательно применять умножение на соответствующие матрицы перехода. В результате этой процедуры формируется сцена, содержащая все отснятые панорамы и облака точек в единой системе координат, что позволяет определять координаты каждой точки из набора точек.[0035] 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, which makes it possible to determine the coordinates of each point from a set of points.
[0036] Возвращаясь к этапу (110), для построения всех возможных навигационных маршрутов, т.е. для нахождения возможных путей навигации между всеми точками навигации, система (210), как было описано выше, получает координаты каждой точки из набора точек.[0036] Returning to step (110), to build all possible navigation routes, i.e. to find possible navigation paths between all navigation points, the system (210), as described above, obtains the coordinates of each point from the set of points.
[0037] Навигационным маршрутом может являться, например, перемещение пользователя по заданным точкам навигации в виртуальном туре. Так, при просмотре виртуального тура с использованием компьютера навигационный маршрут может включать в себя манипулирование устройством управления курсором, таким как мышь или трекпад, и/или нажатие клавиш клавиатуры, для перемещения из одной точки навигации, в которой осуществляется отображение элементов виртуального тура, соответствующих объектам в реальном мире, к другой точке навигации. Кроме того, при использовании гарнитуры VR перемещение по навигационному маршруту может включать направление взгляда, движение головы или ручного контроллера в определенном направлении с последующим выполнением действия, запускающего процесс перемещения пользователя к точке навигации. Действие может представлять взаимодействие с элементом управления на гарнитуре, на портативном устройстве и т.д.[0037] The navigation path may be, for example, the user's navigation through predetermined navigation points in a virtual tour. Thus, when viewing a virtual tour using a computer, the navigation path may include manipulating a cursor control device, such as a mouse or trackpad, and/or pressing keyboard keys, to move from one navigation point, which displays elements of the virtual tour corresponding to objects in the real world, to another navigation point. Also, when using a VR headset, navigating a navigation path may involve gaze direction, moving the head or hand controller in a specific direction, followed by an action that initiates the process of moving the user to the navigation point. An action can represent an interaction with a control on a headset, on a portable device, and so on.
[0038] Набор точек навигации - это визуальные индикаторы, отображаемые пользователю в виртуальном туре (200) в которые пользователь может перемещаться для путешествия по указанному туру и, соответственно, осуществлять просмотр элементов виртуального тура, отображенных для конкретной точки. Как указывалось выше, точки навигации соответствуют координатам камеры (240), из которых осуществлялось сканирование объекта для последующего создания трехмерной модели виртуального тура (200). Точки навигации могут принимать различные формы, например, точки навигации могут отображаться как круги, сферы, флажки и т.д., в определенных координатах (х, у, z) виртуального тура (200). Кроме того, указанные точки также могут иметь различный размер.[0038] The set of navigation points are visual indicators displayed to the user in the virtual tour (200) to which the user can navigate to navigate the specified tour and, accordingly, view the elements of the virtual tour displayed for a particular point. As mentioned above, the navigation points correspond to the camera coordinates (240), from which the object was scanned for the subsequent creation of a three-dimensional virtual tour model (200). The navigation points may take various forms, for example, the navigation points may be displayed as circles, spheres, flags, etc., at certain coordinates (x, y, z) of the virtual tour (200). In addition, these points can also have a different size.
[0039] Как было указано выше, точки навигации, как правило, соответствуют позициям захвата изображений с камеры (240), на основе которых строилась 3D-модель виртуального тура (200). Так, некоторые точки навигации, соответствующие позициям камеры (240), могут находиться близко к различным препятствиям, таким как стены, клумбы, столешницы и другие элементы виртуального тура. Виртуальный тур (200) может иметь множество зон, например, комнат или других функциональных пространств, отделенных друг от друга препятствиями. Так, трехмерная модель виртуального тура (200) может включать в себя несколько комнат, которые отделены между собой различными препятствиями. В каждой комнате расположена по меньшей мере одна точка навигации, из которой пользователю доступен просмотр окружающего пространства. Для возможности пользователя последовательно перемещаться между указанными точками навигации с посещением всех комнат, указанные точки должны быть соединены между собой в навигационный маршрут пользователя. При этом маршрут между точками строится только при прямой видимости точек в 3D модели. Указанная особенность необходима для осуществления плавного перехода между элементами (например, комнатами) виртуального тура, чтобы исключить дезориентацию пользователя в пространстве, а также повысить реалистичность погружения пользователя в виртуальный тур. Кроме того, отображение точек, находящихся за препятствием, выраженным элементом виртуального тура (например, стена), может привести к тому, что указанная точка будет перекрывать другие элементы, расположенные на указанном препятствии, что также является критичным для определенных типов виртуального тура (туры по недвижимости).[0039] As noted above, navigation points typically correspond to camera image capture positions (240) from which the 3D virtual tour model (200) was built. For example, some navigation points corresponding to camera positions (240) may be close to various obstacles, such as walls, flower beds, table tops, and other elements of the virtual tour. The virtual tour (200) may have multiple zones, such as rooms or other functional spaces, separated from each other by obstacles. Thus, a three-dimensional virtual tour model (200) may include several rooms that are separated from each other by various obstacles. Each room has at least one navigation point from which the user can view the surrounding space. For the user to be able to sequentially move between the specified navigation points visiting all rooms, the specified points must be connected to each other in the user's navigation route. In this case, the route between the points is built only with a direct line of sight of the points in the 3D model. This feature is necessary to implement a smooth transition between the elements (for example, rooms) of the virtual tour in order to eliminate the user's disorientation in space, as well as to increase the realism of the user's immersion in the virtual tour. In addition, displaying points behind an obstacle expressed by a virtual tour element (for example, a wall) may cause the specified point to overlap other elements located on the specified obstacle, which is also critical for certain types of virtual tour (tours on real estate).
[0040] Таким образом, на указанном этапе (110), происходит получение набора точек с заданными координатами (х, у, z) трехмерной модели объекта виртуального тура (200) (точки навигации), причем каждая точка соответствует точке расположения камеры (240) на объекте для последующего определения всех возможных навигационных маршрутов перемещения пользователя между указанными точками.[0040] Thus, at the specified stage (110), a set of points with given coordinates (x, y, z) of a three-dimensional model of the virtual tour object (200) (navigation points) is obtained, each point corresponding to a camera location point (240) on the object for the subsequent determination of all possible navigation routes for the user to move between the specified points.
[0041] Далее способ (100) переходит к этапу (120).[0041] Next, the method (100) proceeds to step (120).
[0042] На этапе (120) формируют граф достижимости из полученного набора точек и выбирают первую точку из набора точек в качестве начальной точки маршрута пользователя.[0042] At step (120), a reachability graph is generated from the obtained set of points, and the first point from the set of points is selected as the starting point of the user's route.
[0043] В теории графов, достижимость относится к способности получения пути от одной вершины графа к другой. Вершина (точка навигации) может достичь другой вершины (другой точки навигации), если существует последовательность смежных вершин (т.е. путей навигации), начинающаяся с первой вершины и заканчивающийся второй вершины, которую необходимо достичь. Более подробно, сведения, раскрывающие понятие [0043] In graph theory, reachability refers to the ability to obtain a path from one vertex of a graph to another. A vertex (a navigation point) can reach another vertex (another navigation point) if there is a sequence of adjacent vertices (ie navigation paths) starting at the first vertex and ending at the second vertex to be reached. In more detail, information that reveals the concept
графа достижимости раскрыты в уровне техники, например, доступном по ссылке: https://mmass.rn/lighting/dostizhimost-otnoshenie-dostizhimosti-otnoshenie-dostizhimosti-dlya/reachability graphs are disclosed in the prior art, for example, available at: https://mmass.rn/lighting/dostizhimost-otnoshenie-dostizhimosti-otnoshenie-dostizhimosti-dlya/
[0044] Следовательно, для построения навигационных маршрутов в виртуальном туре (200), требуется определить все возможные пути навигации между указанными точками навигации. Для этого, из полученного на этапе (110) набора точек, формируется ориентированный граф, где, соответственно, каждая точка из набора точек является вершиной указанного графа. Стоит отметить, что в качестве начальной точки может быть выбрана как случайная точка, так и точка, соответствующая начальной позиции в виртуальном туре, например, позиции камеры перед входной дверью в виртуальном туре по недвижимости. Указанный граф, на данном этапе еще не содержит ребер, т.е. является не соединенным, что интерпретируется как отсутствие путей между вершинами графа.[0044] Therefore, in order to build navigation routes in the virtual tour (200), it is required to determine all possible navigation paths between the specified navigation points. To do this, from the set of points obtained at step (110), a directed graph is formed, where, respectively, each point from the set of points is a vertex of the specified graph. It is worth noting that both a random point and a point corresponding to the starting position in the virtual tour can be chosen as the starting point, for example, the position of the camera in front of the front door in the virtual real estate tour. The specified graph, at this stage, does not yet contain edges, i.e. is not connected, which is interpreted as the absence of paths between graph vertices.
[0045] Граф, состоящий из точек навигации может храниться в памяти системы (210) и программно управляться указанной системой (210) как структура данных, подходящая для представления графа. Предпочтительно структура данных графа имеет элементы структуры данных, представляющие узлы графа, и элементы структуры данных. Элементы структуры данных для узлов графа могут включать в себя информацию, идентифицирующую соответствующие точки навигации, которые представляют узлы. Такая узловая информация может включать в себя информацию, идентифицирующую соответствующие точки навигации, и/или координаты, идентифицирующие местоположения соответствующих точек навигации. Например, координаты могут идентифицировать местоположения в трехмерном координатном пространстве трехмерной модели, представляющей пространственные измерения моделируемой реальной среды. Элементы структуры данных ребер графа могут связывать (например, указателями, ссылкой или идентификаторами) элементы структуры данных узлов.[0045] A graph consisting of navigation points can be stored in the memory of the system (210) and programmatically managed by the specified system (210) as a data structure suitable for representing a graph. Preferably, the graph data structure has data structure elements representing the nodes of the graph and data structure elements. Data structure elements for graph nodes may include information identifying the respective navigation points that the nodes represent. Such nodal information may include information identifying respective navigation points and/or coordinates identifying the locations of respective navigation points. For example, the coordinates may identify locations in the 3D coordinate space of a 3D model representing the spatial dimensions of the simulated real world. Elements of the graph edges data structure may link (eg, by pointers, links, or identifiers) elements of the node data structure.
[0046] Основной особенностью построения ребер графа, которые интерпретируются как возможный путь навигации между соседними точками навигации, является требование к обеспечению прямой видимости между точками навигации в координатной сетке трехмерной модели виртуального тура. Как упоминалось выше, при построении реалистичного маршрута для пользователя, пользователь должен иметь возможность перемещаться по трехмерной модели виртуального тура также, как указанный пользователь перемещался бы по реальному объекту, на основе которого была создана указанная трехмерная модель. Для решения указанной проблемы, в известном уровне техники, были разработаны методики, которые основываются на построении маршрута для пользователя с учетом препятствий, имеющихся в трехмерной модели виртуального тура (стена, и т.д.). Указанные методики построены на принципе рейкастинга (от англ. Ray casting), см. [0046] The main feature of constructing graph edges, which are interpreted as a possible navigation path between neighboring navigation points, is the requirement to provide direct visibility between navigation points in the coordinate grid of a three-dimensional virtual tour model. As mentioned above, when constructing a realistic route for the user, the user should be able to navigate the 3D virtual tour model in the same way that the specified user would navigate the real object from which the specified 3D model was created. To solve this problem, in the prior art, techniques have been developed that are based on building a route for the user, taking into account the obstacles present in the three-dimensional model of the virtual tour (wall, etc.). These techniques are based on the principle of ray casting (from the English. Ray casting), see.
например: https://ru.wikipedia.org/wiki/Ray_casting. Однако указанные методики могут приводить к таким ситуациям, когда луч, выпущенный из одной точке к другой, не достигает точки, хотя в действительности, проход между указанными точками существует, что соответственно отражается на эффективности построения маршрута и, как следствие, может привести к невозможности посещения пользователем такой точки (ввиду исключения ее из маршрута, как недостижимую). Заявленное решение призвано решить указанную проблему.for example: https://ru.wikipedia.org/wiki/Ray_casting. However, these techniques can lead to situations where the beam fired from one point to another does not reach the point, although in reality there is a passage between the indicated points, which accordingly affects the efficiency of the route construction and, as a result, may lead to the impossibility of visiting user of such a point (due to its exclusion from the route as unreachable). The claimed solution is designed to solve this problem.
[0047] Для решения вышеописанной проблемы и построения высокоэффективного и полного маршрута для пользователя, способ (100) переходит к этапам (130-140).[0047] To solve the above problem and construct a highly efficient and complete route for the user, method (100) proceeds to steps (130-140).
[0048] На этапе (140) выполняется определение достижимости между всеми соседними вершинами графа. Для этого на этапе (130) в трехмерной модели виртуального тура формируются по меньшей мере два параллельных луча из первой точки навигации к остальным точкам навигации из набора точек, полученного на этапе (110), причем указанные лучи расположены на разной высоте относительно координаты первой точки. Т.е. указанный этап (130) определяет возможность соединения вершин графа между собой для дальнейшего определения возможных маршрутов навигации. При достижении по меньшей мере одного луча, выпущенного из первой точки во вторую точку, результат может быть занесен в память системы (210), например, в виде таблицы, для последующего принятия решения о соединении указанных точек в графе. Указанный этап выполняется в автоматизированном режиме системой (210) в момент реализации способа (100). Таким образом, возможность соединения точек навигации (формирование ребра графа между указанными точками) может быть записана в двумерную таблицу. Например, возможность соединения двух точек может быть записана в ячейке, соответствующей двум позициям точек. В некоторых вариантах осуществления возможность подключения может быть записана как двоичное число, где «1» соответствует «соединению», а «0» - «отсутствию соединения».[0048] In step (140), a reachability determination is made between all neighboring graph vertices. To do this, at step (130) in a three-dimensional virtual tour model, at least two parallel beams are formed from the first navigation point to the rest of the navigation points from the set of points obtained at step (110), and these rays are located at different heights relative to the coordinate of the first point. Those. the specified stage (130) determines the possibility of connecting the graph nodes to each other to further determine the possible navigation routes. Upon reaching at least one beam fired from the first point to the second point, the result can be stored in the memory of the system (210), for example, in the form of a table, for the subsequent decision to connect the indicated points in the graph. The specified step is performed in an automated mode by the system (210) at the time of implementation of the method (100). Thus, the possibility of connecting navigation points (forming a graph edge between the specified points) can be recorded in a two-dimensional table. For example, the possibility of connecting two points can be written in a cell corresponding to two positions of points. In some embodiments, connectivity may be written as a binary number, where '1' stands for 'connected' and '0' stands for 'no connection'.
[0049] Рассмотрим указанные этапы (130-140) более подробно на примере, показанном на Фиг. 5. На Фиг. 5 представлена схематическая карта трехмерной модели виртуального тура, где точки навигации (501, 502) являются точками перемещения пользователя по виртуальному туру. Для определения возможности добавления ребра в графе достижимости между точками навигации (501, 502) (этап (140)), система (210) получает координаты каждой точки в указанной трехмерной модели и осуществляет этап (130).[0049] Consider these steps (130-140) in more detail using the example shown in FIG. 5. In FIG. 5 is a schematic map of a 3D virtual tour model, where the navigation points (501, 502) are the user's navigation points on the virtual tour. To determine whether an edge can be added in the reachability graph between navigation points (501, 502) (step (140)), the system (210) obtains the coordinates of each point in the indicated 3D model and performs step (130).
[0050] Так как при создании 3D-модели камера может устанавливаться в произвольные места сканируемого объекта, может возникнуть ситуация, когда точки навигации расположены в одном объекте (комната и т.д.), однако не имеют прямой видимости между [0050] Since when creating a 3D model, the camera can be installed in arbitrary places of the scanned object, a situation may arise when the navigation points are located in the same object (room, etc.), but do not have a direct line of sight between
друг другом. При этом в реальном мире существует свободный проход между указанными точками, лестница на возвышение и т.д. При использовании известных из уровня техники подходов такие точки не будут иметь путь навигации, т.е. не будут соединены ребром в графе достижимости, что, в случае отсутствия других путей к точке, приведет к невозможности посещения пользователем указанной точки. Для решения указанной проблемы был предложен подход, заключающийся в «бросании» (выпускании) не одного луча, а множества параллельных лучей на разной высоте. Термины «бросание», выпускание, проведение и т.д., в настоящей заявки означают один из методов рендеринга в компьютерной графике, при котором сцена строится на основе замеров пересечения лучей с визуализируемой поверхностью.each other. At the same time, in the real world, there is a free passage between the indicated points, a ladder to an elevation, etc. Using prior art approaches, such points will not have a navigation path, i.e. will not be connected by an edge in the reachability graph, which, in the absence of other paths to the point, will make it impossible for the user to visit the specified point. To solve this problem, an approach was proposed, which consists in "throwing" (release) not one beam, but many parallel beams at different heights. The terms "throwing", releasing, holding, etc., in this application mean one of the rendering methods in computer graphics, in which the scene is built based on measurements of the intersection of rays with the rendered surface.
[0051] Возвращаясь к Фиг. 5, начальной позицией пользователя в виртуальном туре является точка (501). При применении известных подходов, подразумевающих только «бросание» одного луча к координатам точки (502), указанный луч встретился бы с препятствием, что не позволило бы сформировать путь навигации между точками (501 и 502). Заявленный подход, в свою очередь, на этапе (130) формирует из координаты выбранной точки (501) в трехмерной модели множество параллельных лучей (511-514), расположенных на разной высоте, т.е. с разными координатами высоты, при сохранении остальных пространственных координат, в точку (502), тем самым определяя путь навигации между указанными точками (возможность формирования ребра графа достижимости между вершинами, выраженными точками (501, 502), т.е. этап (140)). При этом ребро графа формируется в том случае, если по меньшей мере один луч, выпущенный из точки (501), достиг точки (502). Стоит отметить, что хотя на указанной Фиг. 5 показано только две точки, количество точек может быть любым и зависит от плотности фотоснимков, совершенных камерой (240) в выбранной трехмерной модели.[0051] Returning to FIG. 5, the starting position of the user in the virtual tour is point (501). When applying known approaches, implying only the "throw" of one beam to the coordinates of the point (502), the specified beam would meet with an obstacle, which would not allow the formation of a navigation path between points (501 and 502). The claimed approach, in turn, at step (130) forms a set of parallel rays (511-514) located at different heights from the coordinate of the selected point (501) in the three-dimensional model, i.e. with different height coordinates, while maintaining the rest of the spatial coordinates, to the point (502), thereby determining the navigation path between the specified points (the possibility of forming an edge of the reachability graph between the vertices expressed by the points (501, 502), i.e. stage (140) ). In this case, the edge of the graph is formed if at least one ray emitted from the point (501) has reached the point (502). It is worth noting that although in said FIG. 5 shows only two points, the number of points can be any and depends on the density of photographs taken by the camera (240) in the selected three-dimensional model.
[0052] Указанные этапы (130 140) далее итеративно повторяются для каждой точки из набора точек, полученного на этапе (110). Система (210) выполняет указанную последовательность действий из каждой точки, добавленной в граф достижимости на этапе (120). Так, система (210) может определить, все ли точки навигации были добавлены в таблицу, определяющую возможность соединения указанных точек (ребра графа). Если это так, способ (100) переходит к этапу (150). Иначе, способ (100) вернется к этапам (130-140), чтобы выполнить указанную операцию со следующей точкой из набора точек.[0052] These steps (130 140) are then iteratively repeated for each point from the set of points obtained in step (110). The system (210) performs the specified sequence of actions from each point added to the reachability graph in step (120). Thus, the system (210) can determine whether all navigation points have been added to a table that determines the connectivity of the specified points (graph edges). If so, method (100) proceeds to step (150). Otherwise, method (100) will return to steps (130-140) to perform the specified operation on the next point in the set of points.
[0053] Кроме того, в одном частном варианте осуществления, лучи, сформированные из первой точки ко второй точки могут считаться достигшими второй точки, если по меньшей мере один луч достиг координат второй точки в пределах заданного порога допустимых координат высоты.[0053] In addition, in one particular embodiment, rays formed from a first point to a second point may be considered to have reached the second point if at least one ray has reached the coordinates of the second point within a predetermined threshold of valid height coordinates.
[0054] Рассмотрим указанный частный вариант осуществления, показанный на Фиг. 6. При создании маршрутов по виртуальному туру на открытых пространствах могут возникнуть ситуации, когда, например, первая точка навигации располагается перед невысоким препятствием, которое в реальном мире можно преодолеть, однако, как упоминалось выше, при построении маршрута в 3D модели не всегда будет добавлена в указанный маршрут. Так, на фиг.6 показан сквер, в котором между точками (601 и 602) существует низкое препятствие, например, в виде цветочного вазона, зеленой изгороди и т.д. Луч (611), проведенный на малой высоте, «упирается» в препятствие и не достигает точки (602), но луч (612), проведенный выше, свободно достигает точки (612). При использовании известных подходов итоговый граф достижимости не будет содержать прохода между точками (601 и 602), хотя в реальности проход будет существовать. Таким образом, проведение множества лучей позволяет составить более корректный граф достижимости, что, в свою очередь повышает эффективность построения навигационных маршрутов для пользователя. При этом, заданная пороговая величина координат высоты, при которой точки могут быть соединены, задается, например, перед созданием маршрута для пользователя в зависимости от требований к виртуальному туру.[0054] Consider this particular embodiment shown in FIG. 6. When creating routes for a virtual tour in open spaces, situations may arise when, for example, the first navigation point is located in front of a low obstacle that can be overcome in the real world, however, as mentioned above, when building a route in a 3D model, it will not always be added to the specified route. Thus, Fig. 6 shows a square in which between points (601 and 602) there is a low obstacle, for example, in the form of a flower pot, a green hedge, etc. Beam (611), drawn at a low altitude, "rests" against an obstacle and does not reach point (602), but beam (612), drawn higher, freely reaches point (612). When using known approaches, the final reachability graph will not contain a passage between points (601 and 602), although in reality the passage will exist. Thus, drawing a plurality of rays makes it possible to compose a more correct reachability graph, which, in turn, increases the efficiency of constructing navigation routes for the user. At the same time, the predetermined threshold value of the height coordinates at which the points can be connected is set, for example, before creating a route for the user, depending on the requirements for the virtual tour.
[0055] Таким образом, на этапах (130-140) из первой точки проводится множество лучей во все точки из набора точек, причем указанные лучи формируются на разной высоте, т.е. из разных координат высоты указанной точки и по результатам такой операции принимается решение о добавлении ребра графа достижимости между указанными точками. Еще раз необходимо подчеркнуть, что несмотря на то, что указанные этапы (130-140) описаны для двух точек, данные действия могут применяться к любому количеству точек, содержащихся в наборе точек. Указанная особенность обеспечивает новый подход, позволяющий осуществлять построение более корректного графа достижимости, с учетом особенностей рельефа и/или высоты препятствий, которые в реальном мире являются легкопроходимыми и где должен существовать проход, что повышает эффективность построения навигационного маршрута.[0055] Thus, in steps (130-140), a plurality of rays are drawn from the first point to all points of the set of points, said rays being formed at different heights, i.e. from different coordinates of the height of the specified point and based on the results of such an operation, a decision is made to add an edge of the reachability graph between the specified points. Once again, it must be emphasized that although these steps (130-140) are described for two points, these actions can be applied to any number of points contained in the set of points. This feature provides a new approach that allows building a more correct reachability graph, taking into account the terrain and/or the height of obstacles that are easily passable in the real world and where a passage should exist, which increases the efficiency of building a navigation route.
[0056] Далее способ (100) переходит к этапу (150).[0056] Next, the method (100) proceeds to step (150).
[0057] На этапе (150) формируют для каждой точки из набора точек по меньшей мере один путь навигации, причем по меньшей мере одному пути навигации соответствует ребро графа достижимости между двумя точками, полученными на этапе (140).[0057] At step (150), at least one navigation path is formed for each point from the set of points, and at least one navigation path corresponds to an edge of the reachability graph between two points obtained at step (140).
[0058] Как упоминалось выше, путь навигации представляет собой возможность прямого перехода из одной вершины (точки навигации) графа в другую, по меньшей мере одну, вершину графа. Указанные пути навигации необходимы для построения всех [0058] As mentioned above, the navigation path is the possibility of a direct transition from one vertex (navigation point) of the graph to another, at least one, vertex of the graph. The specified navigation paths are required to build all
возможных навигационных маршрутов в виртуальном туре, на основе различных путей навигации.possible navigation routes in the virtual tour, based on different navigation paths.
[0059] Так, на Фиг. 4, для перехода от просмотра элементов трехмерной модели из позиции 1 в позицию 5, пользователь должен быть перемещен через промежуточные позиции (например, позиции 2, 3, 4), которые являются возможными путями навигации из позиции 1. Так, позиция 1, соответственно имеет три пути навигации в позиции 2, 3, 4. Соответственно позиция 2 имеет два пути навигации в позицию 5 и позицию 3, и т.д. Указанные пути навигации имитируют переход пользователя в реальном мире по соответствующему объекту. Причем стоит отметить, что ввиду препятствий, расположенных между позициями 1 и 5, отсутствует прямая видимость, что не позволяет соединить указанные точки и, соответственно, сформировать прямой маршрут. При этом, как видно на Фиг. 6, для пользователя будет существовать множество навигационных маршрутов из позиции 1 в позицию 5, которые базируются на путях навигации.[0059] Thus, in FIG. 4, in order to move from viewing the elements of a three-dimensional model from
[0060] Таким образом, построение навигационных маршрутов для пользователя осуществляется с помощью определения возможных путей навигации между всеми вершинами графа достижимости (точками навигации), по которым пользователь может перемещаться, находясь в виртуальном туре. Возможные маршруты - это разные пути навигации, по которым пользователь может пройти, чтобы добраться от одной точки навигации до другой точки навигации.[0060] Thus, the construction of navigation routes for the user is carried out by determining the possible navigation paths between all the vertices of the reachability graph (navigation points), along which the user can navigate while in a virtual tour. Possible routes are the different navigation paths that a user can take to get from one navigation point to another navigation point.
[0061] После определения всех путей навигации между точками навигации, способ (100) переходит к этапу (160).[0061] After determining all navigation paths between navigation points, method (100) proceeds to step (160).
[0062] На этапе (160) осуществляют построение всех возможных навигационных маршрутов по виртуальному туру для пользователя на основе сформированных путей навигации.[0062] At step (160), all possible navigation routes are built along the virtual tour for the user based on the generated navigation paths.
[0063] На указанном этапе (160) на основе сформированного графа достижимости и путей навигации между его вершинами, система (210) формирует набор маршрутов навигации для пользователя. Так, в соответствии с тем, что от каждой точки может быть несколько путей навигации, в одном частном варианте осуществления, система (210) выполнена с возможностью выбора лучшего маршрута из возможных маршрутов на основе определенных критериев.[0063] At the specified stage (160), based on the generated reachability graph and the navigation paths between its vertices, the system (210) generates a set of navigation routes for the user. Thus, in accordance with the fact that there can be several navigation paths from each point, in one particular embodiment, the system (210) is configured to select the best route from possible routes based on certain criteria.
[0064] Так, если речь идет о виртуальном туре по недвижимости, то в качестве лучшего маршрута будет выбран маршрут, захватывающих все помещения указанного объекта недвижимости, причем, в качестве дополнительного критерия может быть выбран критерий не повторяемости комнат для улучшения пользовательского восприятия.[0064] So, if we are talking about a virtual tour of real estate, then the best route will be the route that captures all the premises of the specified property, and, as an additional criterion, the criterion of non-recurrence of rooms can be chosen to improve user perception.
[0065] В другом частном варианте осуществления набор маршрутов может быть сгенерирован и быть отображен в качестве подсказки с доступными точками для перемещения на пользовательском устройстве в момент прохождения виртуального тура (200).[0065] In another particular embodiment, a set of routes may be generated and displayed as a hint with available points to navigate on the user device at the time of the virtual tour (200).
[0066] В еще одном частном варианте осуществления критерий может заключаться в том, что количество точек на маршруте является наименьшим и/или длина маршрута является наименьшей.[0066] In another particular embodiment, the criterion may be that the number of points on the route is the smallest and/or the length of the route is the smallest.
[0067] Для специалиста в данной области техники очевидно, что указанные выше примеры являются лишь одним из возможных способов применения сформированных навигационных маршрутов и не должны ограничивать настоящее решение. Основной задачей указанного решения является эффективное формирование всех возможных навигационных маршрутов для пользователя по трехмерной модели виртуального тура.[0067] For a person skilled in the art it is obvious that the above examples are only one of the possible ways of using the generated navigation routes and should not limit the present solution. The main task of this solution is the effective formation of all possible navigation routes for the user based on a three-dimensional virtual tour model.
[0068] Возвращаясь к этапу (160) на основе определенных путей навигации система (210), формирует набор навигационных маршрутов, определяя возможные переходы от начальной точки из набора точек ко всем остальным точкам. Например, первая точка может быть начальной точкой перед входом в трехмерную модель недвижимости, вторая точка может являться коридором, а третья и четвертая точки могут являться кухней и гостиной, которые доступны из коридора. Таким образом, набор навигационных маршрутов для пользователя будет содержать два маршрута, состоящих из перехода из первой точки во вторую, а потом в третью, и, соответственно, состоящий из перехода из первой точки во вторую и четвертую.[0068] Returning to step (160), based on the determined navigation paths, the system (210), generates a set of navigation routes, determining the possible transitions from the starting point from the set of points to all other points. For example, the first point could be the starting point before entering the 3D real estate model, the second point could be a corridor, and the third and fourth points could be the kitchen and living room, which are accessible from the corridor. Thus, the set of navigation routes for the user will contain two routes, consisting of a transition from the first point to the second, and then to the third, and, accordingly, consisting of a transition from the first point to the second and fourth.
[0069] Указанный сформированный набор навигационных маршрутов для пользователя может быть сохранен в памяти (210) для последующего отображения в GUI пользователя при отображении трехмерной модели виртуального тура.[0069] The specified generated set of navigation routes for the user may be stored in memory (210) for subsequent display in the user's GUI when displaying a three-dimensional virtual tour model.
[0070] Кроме того, в одном частном варианте осуществления, на основе сформированных навигационных маршрутов из трехмерной модели могут быть удалены некоторые точки навигации. Так, например, при нахождении двух точек навигации в одной комнате ближе порогового расстояния друг к другу, одна из точек может быть удалена как неинформативная. При этом удаление точки возможно только в том случае, если дальнейший путь навигации одинаков из обеих точек. Таким образом, точка навигации, являющаяся кандидатом на удаление, может являться точкой захвата фотоизображения, которое в значительной степени дублируются с фотоизображениями из ближайшей точки навигации. Также, некоторые точки навигации могут быть расположены очень близко к стенам или другим крупным объектам и не иметь дальнейших путей навигации. Указанные точки также могут быть удалены из виртуального тура.[0070] In addition, in one particular embodiment, based on the generated navigation routes, some navigation points can be removed from the 3D model. So, for example, when two navigation points in the same room are closer than the threshold distance to each other, one of the points can be deleted as uninformative. In this case, deleting a point is possible only if the further navigation path is the same from both points. Thus, a navigation point that is a candidate for deletion may be a photo capture point that is largely duplicated with photos from a nearby navigation point. Also, some navigation points may be located very close to walls or other large objects and have no further navigation paths. The specified points can also be removed from the virtual tour.
[0071] На Фиг. 7 представлен пример общего вид вычислительно устройство (700), на базе которого может быть реализована система (210), выполняющая заявленный способ (100), указанное устройство также может являться, например, сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения.[0071] In FIG. 7 shows an example of a general view of a computing device (700), on the basis of which a system (210) can be implemented that performs the claimed method (100), the specified device can also be, for example, a server, a personal computer, part of a computing cluster that processes the necessary data for implementation of the claimed technical solution.
[0072] В общем случае устройство (700) содержит такие компоненты, как: один или более процессоров (701), по меньшей мере одну память (702), средство хранения данных (703), интерфейсы ввода/вывода (704), средство В/В (705), средство сетевого взаимодействия (706), которые объединяются посредством универсальной шины.[0072] In general, the device (700) includes components such as: one or more processors (701), at least one memory (702), data storage media (703), input/output interfaces (704), means B /B (705), means of networking (706), which are combined through a universal bus.
[0073] Процессор (701) выполняет основные вычислительные операции, необходимые для обработки данных при выполнении способа (100). Процессор (701) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (702).[0073] The processor (701) performs the basic computational operations necessary to process the data when executing the method (100). The processor (701) executes the necessary machine-readable instructions contained in the main memory (702).
[0074] Память (702), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.[0074] The memory (702), as a rule, is made in the form of RAM and contains the necessary software logic that provides the required functionality.
[0075] Средство хранения данных (703) может выполняться в виде HDD, SSD дисков, рейд массива, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средства (703) позволяют выполнять долгосрочное хранение различного вида информации, например полученные координаты точек навигации, построенные навигационные маршруты и навигационные пути и т.п.[0075] The data storage means (703) may be in the form of HDD, SSD disks, raid array, flash memory, optical storage media (CD, DVD, MD, Blue-Ray disks), etc. Means (703) allow long-term storage of various types of information, for example, received coordinates of navigation points, constructed navigation routes and navigation paths, and the like.
[0076] Для организации работы компонентов устройства (700) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (704). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SAT A, 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 и т.п.[0076] Various types of I/O interfaces (704) are used to organize the operation of device components (700) and organize the operation of external connected devices. The choice of the appropriate interfaces depends on the specific design of the computing device, which can be, but not limited to: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SAT A, 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.
[0077] Выбор интерфейсов (704) зависит от конкретного исполнения устройства (700), которое может быть реализовано на базе широко класса устройств, например, персональный компьютер, мейнфрейм, ноутбук, серверный кластер, тонкий клиент, смартфон, сервер и т.п.[0077] The choice of interfaces (704) depends on the specific implementation of the device (700), which can be implemented based on a wide class of devices, for example, a personal computer, mainframe, laptop, server cluster, thin client, smartphone, server, etc.
[0078] В качестве средств В/В данных (705) может использоваться: клавиатура, джойстик, дисплей (сенсорный дисплей), монитор, сенсорный дисплей, тачпад, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0078] As means of I/O data (705) can be used: keyboard, joystick, display (touch display), monitor, touch display, touchpad, mouse, light pen, stylus, touch pad, trackball, speakers, microphone, augmented reality tools, optical sensors, tablet, light indicators, projector, camera, biometric identification tools (retinal scanner, fingerprint scanner, voice recognition module), etc.
[0079] Средства сетевого взаимодействия (706) выбираются из устройств, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п. С помощью средств (706) обеспечивается организация обмена данными между, например, системой (210), представленной в виде сервера и камерой (240), а также пользовательскими устройствами (221-223) по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.[0079] The means of networking (706) are selected from devices that provide network reception and transmission of data, for example, an Ethernet card, WLAN / Wi-Fi module, Bluetooth module, BLE module, NFC module, IrDa, RFID module, GSM modem, etc. .P. With the help of the means (706), the organization of data exchange between, for example, the system (210), presented in the form of a server and the camera (240), as well as user devices (221-223) via a wired or wireless data transmission channel, for example, WAN, PAN, LAN (LAN), Intranet, Internet, WLAN, WMAN or GSM.
[0080] Конкретный выбор элементов устройства (700) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.[0080] The specific choice of device elements (700) for implementing various hardware and software architectural solutions may vary while maintaining the required functionality provided.
[0081] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы.[0081] 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. Thus, the scope of this technical solution is limited only by the scope of the attached claims.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2023/050018 WO2023158346A1 (en) | 2022-02-15 | 2023-02-09 | Constructing navigation routes in a three-dimensional model of a virtual tour |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2783231C1 true RU2783231C1 (en) | 2022-11-10 |
Family
ID=
Citations (5)
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 |
US11158126B1 (en) * | 2017-06-30 | 2021-10-26 | Apple Inc. | Redirected walking in virtual reality environments |
Patent Citations (5)
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 |
US11158126B1 (en) * | 2017-06-30 | 2021-10-26 | Apple Inc. | Redirected walking in virtual reality environments |
WO2021074924A1 (en) * | 2019-10-14 | 2021-04-22 | Mital Rohan | Method and system for providing collaborative browsing across a plurality of user devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tran et al. | Shape grammar approach to 3D modeling of indoor environments using point clouds | |
US11645781B2 (en) | Automated determination of acquisition locations of acquired building images based on determined surrounding room data | |
AU2021211999B2 (en) | Automated analysis of image contents to determine the acquisition location of the image | |
US20220114291A1 (en) | Automated Tools For Generating Building Mapping Information | |
US11823325B2 (en) | Providing simulated lighting information for building models | |
US10140000B2 (en) | Multiscale three-dimensional orientation | |
US9424371B2 (en) | Click to accept as built modeling | |
CN109521879B (en) | Interactive projection control method and device, storage medium and electronic equipment | |
US11657085B1 (en) | Optical devices and apparatuses for capturing, structuring, and using interlinked multi-directional still pictures and/or multi-directional motion pictures | |
US20160142650A1 (en) | Methods, systems and apparatuses for multi-directional still pictures and/or multi-directional motion pictures | |
KR20140007367A (en) | Three-dimensional environment reconstruction | |
EP4377777A1 (en) | Browser optimized interactive electronic model based determination of attributes of a structure | |
EP3326156A1 (en) | Consistent tessellation via topology-aware surface tracking | |
US20230154027A1 (en) | Spatial construction using guided surface detection | |
US20240161348A1 (en) | Automated Inter-Image Analysis Of Multiple Building Images For Building Information Determination | |
AU2022252855A1 (en) | Automated analysis of visual data of images to determine the images’ acquisition locations on building floor plans | |
Yuan et al. | A survey on indoor 3D modeling and applications via RGB-D devices | |
CN115439543A (en) | Method for determining hole position and method for generating three-dimensional model in metauniverse | |
JP2022501751A (en) | Systems and methods for selecting complementary images from multiple images for 3D geometric extraction | |
RU2783231C1 (en) | Method and system for constructing navigation routes in three-dimensional model of virtual tour | |
JP7518196B2 (en) | Method, apparatus and program for constructing 3D geometry | |
WO2023158346A1 (en) | Constructing navigation routes in a three-dimensional model of a virtual tour | |
KR20220155245A (en) | Positioning method, method for generating visual map and device thereof | |
KR20230130110A (en) | Registration of 3D augmented scenes to structural floor plans | |
Bulatov et al. | Increasing level of detail of buildings for improved simulation of 4D urban digital twin |