WO2024085573A1 - 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치 - Google Patents

크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치 Download PDF

Info

Publication number
WO2024085573A1
WO2024085573A1 PCT/KR2023/015976 KR2023015976W WO2024085573A1 WO 2024085573 A1 WO2024085573 A1 WO 2024085573A1 KR 2023015976 W KR2023015976 W KR 2023015976W WO 2024085573 A1 WO2024085573 A1 WO 2024085573A1
Authority
WO
WIPO (PCT)
Prior art keywords
map
data
area
user
map area
Prior art date
Application number
PCT/KR2023/015976
Other languages
English (en)
French (fr)
Inventor
최성광
Original Assignee
주식회사 브이알크루
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 브이알크루 filed Critical 주식회사 브이알크루
Publication of WO2024085573A1 publication Critical patent/WO2024085573A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/31Acquisition or tracking of other signals for positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Definitions

  • This disclosure relates to a crowdsourcing-based 3D map updating method and device.
  • AR augmented reality
  • 3D map guidance service car navigation route guidance service
  • tourist information provision service furniture arrangement provision service in indoor space
  • clothing wearing service etc. there is.
  • a glass-type wearable device that can be worn on the human body is worn on the user's head, and visual information about the 3D map is provided through the display on the device, providing the user with a 3D map service in real time.
  • the user's location and camera pose are estimated using the sensing information of the wearable device (i.e., sensing information acquired by sensing devices such as Lidar and/or cameras), and the estimated location and A 3D map based on a visual positioning system (VPS) that creates a 3D map using poses can be used.
  • the sensing information of the wearable device i.e., sensing information acquired by sensing devices such as Lidar and/or cameras
  • VPS visual positioning system
  • the 3D map at the moment the user requests the provision of a 3D map does not exactly match the appearance of the actual space, which reduces the accuracy of the 3D map and makes it difficult to use augmented reality content.
  • the sense of immersion may be reduced.
  • 3D map providers are performing various tasks to update 3D maps in real time, but separate equipment and manpower are required to monitor actual areas one by one and update each map area on the 3D map. Because it is necessary, it may take a lot of time and resources to update and build a 3D map.
  • a method for providing a crowdsourcing-based 3D map update method and device is required to significantly improve the accuracy of the 3D map and prevent the quality of the VPS map service from deteriorating.
  • Korean Patent Publication No. 10-2017-0034121 has been published.
  • the present disclosure was developed in response to the above-described background technology, and seeks to provide a crowdsourcing-based 3D map generation method and device.
  • a crowdsourcing-based 3D map generation method performed by a computing device includes at least a first area corresponding to the location of the user device from a user device. Receiving scan data obtained by scanning a portion, updating or creating a map area on the 3D map corresponding to at least a portion of the first area using the received scan data and a previously created 3D map. and determining a reward to be provided according to the user's contribution to updating or creating the map area.
  • the scan data includes at least one of at least one query image representing at least a portion of the first area, point cloud data, and camera data
  • the camera data includes camera pose data of the user device.
  • the step of updating or creating the map area using the received scan data and the 3D map may be performed when the map area exists on the 3D map using the received scan data and the 3D map. determining whether the map area exists on the 3D map, comparing the first area and the map area to determine a difference value between the first area and the map area, and determining the difference value between the first area and the map area. updating the map area based on the map area, and if the map area does not exist on the 3D map, generating the map area on the 3D map based on scan data received from the user device. It may further include.
  • the step of determining whether the map area exists on the 3D map may include detecting feature point data from the scan data and determining whether the map region corresponding to the detected feature point data exists. You can.
  • comparing the first area and the map area to determine a difference value between the first area and the map area includes using the scan data.
  • Estimating user location data on a 3D map determining a reference image that matches at least one query image of the scan data among pre-stored reference images of the map area corresponding to the estimated user location data, and It may include determining a difference value (reprojection error) between feature point data of at least one query image and each of the determined reference images.
  • comparing the first area and the map area to determine a difference value between the first area and the map area includes using the scan data. estimating user location data on a 3D map, obtaining a captured image of the map area from the estimated user location data, and comparing the captured image and the at least one query image on a pixel basis to obtain the difference value. It may include a step of determining.
  • comparing the first area and the map area to determine a difference value between the first area and the map area includes using the scan data. Estimating user location data on a 3D map, obtaining a captured image for the map area from the estimated user location data, and comparing each of the captured images and the at least one query image by section (neighborhood) It may include determining the difference value.
  • comparing the first area and the map area to determine a difference value between the first area and the map area includes using the scan data. Estimating user location data on a 3D map, determining point cloud data matching the point cloud data of the scan data among pre-stored point cloud data of the map area corresponding to the estimated user location data, and the determined point cloud data. It may include comparing point cloud data of the scan data and determining a difference value between the determined point cloud data and the point cloud data of the scan data.
  • the step of comparing the first area and the map area to determine a difference value between the first area and the map area includes a point cloud based on the scan data. Generating data, estimating user location data on the 3D map using the scan data, and determining point cloud data that matches the generated point cloud data among point cloud data corresponding to the estimated user location data. and comparing the determined point cloud data and the generated point cloud data to determine a difference value between the determined point cloud data and the generated point cloud data.
  • determining whether the map area exists on the 3D map includes estimating user location data on the 3D map using the scan data and determining the map area corresponding to the estimated user location data. It may include determining whether this exists.
  • the step of determining whether the map area corresponding to the estimated user location data exists includes determining whether spatial data for an area corresponding to the direction in which the virtual camera is looking exists in the estimated user location data. It can be.
  • the step of determining whether spatial data for an area corresponding to the direction in which the virtual camera is looking includes determining that the map area corresponding to the estimated user location data exists if the spatial data exists. and determining that the map area corresponding to the estimated user location data does not exist if the spatial data does not exist.
  • the step of determining whether spatial data for an area corresponding to the direction in which the virtual camera is looking includes determining whether the spatial data exists, GPS data included in the spatial data, and the camera included in the scan data. determining that the map area corresponding to the estimated user location data exists if the GPS data of the data corresponds, and if the spatial data exists, and the GPS data included in the spatial data and the scan data are included in the scan data; If the GPS data of the camera data does not correspond, the method may further include determining that the map area corresponding to the estimated user location data does not exist.
  • the crowdsourcing-based 3D map update method there is a map area corresponding to user location data estimated at a first viewpoint, and user location data estimated at a second viewpoint corresponding to the next viewpoint after the first viewpoint. If there is no map area corresponding to the time interval between the first viewpoint and the second viewpoint, and the user location data and IMU data of the first viewpoint acquired during the time interval, an estimate is made at the second viewpoint. determining that user location data does not exist on the 3D map, and creating a new map area on the 3D map based on the user location data estimated at the second viewpoint and scan data acquired at the second viewpoint. A generating step may be further included.
  • the user location data may include the location and orientation of a camera associated with the user device.
  • the step of determining a reward to be provided according to the user's contribution to updating or creating the map area includes calculating the user's contribution based on the determined difference value and providing a reward corresponding to the calculated contribution. It may include the step of determining as the reward to be provided.
  • the step of determining a reward to be provided according to the user's contribution to updating or creating the map area includes calculating the user's contribution based on the importance of each map area preset on the 3D map; It may include the step of determining a reward corresponding to the calculated contribution as the reward to be provided.
  • the step of determining a reward to be provided according to the user's contribution to updating or creating the map area includes determining the user's contribution based on the amount of access of the user to each of the plurality of map areas of the 3D map. It may include calculating and determining a reward corresponding to the calculated contribution as the reward to be provided.
  • the step of determining a reward to be provided according to the user's contribution to updating or creating the map area includes calculating the user's contribution based on a period interval from the update date of the 3D map, and the calculation. It may include the step of determining a reward corresponding to the contribution made as the reward to be provided.
  • a computer program stored in a computer-readable storage medium, wherein the computer program, when executed on one or more processors, provides the following for crowdsourcing-based 3D map update:
  • the operations include receiving scan data obtained by scanning at least a portion of the first area corresponding to the location of the user device from the user device, the received scan data and the previously produced 3
  • a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a computing device, causes the computing device to perform crowdsourcing-based 3
  • a method for updating a dimensional map is performed, the method comprising: receiving scan data obtained by scanning at least a portion of a first area corresponding to a location of the user device from a user device; the received scan data; and Updating or creating a map area on the 3D map corresponding to at least a portion of the first area using a previously produced 3D map, and updating or creating the map area to be provided according to the user's contribution. It may include the step of determining a reward.
  • a computing device for crowdsourcing-based 3D map update includes at least one processor and a memory, wherein the at least one processor is configured to receive information from a user device. Receive scan data obtained by scanning at least a part of a first area corresponding to the location of the user device, and use the received scan data and a previously created 3D map to determine at least a part of the first area. It may be configured to update or create a map area on the 3D map and determine a reward to be provided according to the user's contribution to updating or creating the map area.
  • a highly accurate 3D map can be provided to the user and highly immersive augmented reality content can be provided.
  • the time and resources required to update or generate a 3D map can be minimized.
  • FIG. 1 is a configuration diagram of an example system for updating a crowdsourcing-based 3D map according to an embodiment of the present disclosure.
  • Figure 2 is a block diagram of a server for crowdsourcing-based 3D map update according to an embodiment of the present disclosure.
  • FIG. 3 is a flowchart illustrating an example of a method for crowdsourcing time 3D map update according to an embodiment of the present disclosure.
  • FIG. 4 is a flowchart illustrating an example of a method of updating or creating a map area on a 3D map corresponding to at least a portion of the area using scan data and a 3D map according to an embodiment of the present disclosure.
  • 5 to 9 are flowcharts illustrating examples of various methods for updating a 3D map when a map area exists according to an embodiment of the present disclosure.
  • 10 to 13 are flowcharts illustrating examples of various methods for determining the contribution to be provided according to an embodiment of the present disclosure.
  • Figure 14 is a brief, general schematic diagram of an example computing environment in which embodiments of the present disclosure may be implemented.
  • a component may be, but is not limited to, a process running on a processor, a processor, an object, a thread of execution, a program, and/or a computer.
  • an application running on a computing device and the computing device can be a component.
  • One or more components may reside within a processor and/or thread of execution.
  • a component may be localized within one computer.
  • a component may be distributed between two or more computers. Additionally, these components can execute from various computer-readable media having various data structures stored thereon.
  • Components may transmit signals, for example, with one or more data packets (e.g., data and/or signals from one component interacting with other components in a local system, a distributed system, to other systems and over a network such as the Internet). Depending on the data being transmitted, they may communicate through local and/or remote processes.
  • data packets e.g., data and/or signals from one component interacting with other components in a local system, a distributed system, to other systems and over a network such as the Internet.
  • a network such as the Internet
  • the term “or” is intended to mean an inclusive “or” and not an exclusive “or.” That is, unless otherwise specified or clear from context, “X utilizes A or B” is intended to mean one of the natural implicit substitutions. That is, either X uses A; X uses B; Or, if X uses both A and B, “X uses A or B” can apply to either of these cases. Additionally, the term “and/or” as used herein should be understood to refer to and include all possible combinations of one or more of the related listed items.
  • the term “at least one of A or B” should be interpreted to mean “a case containing only A,” “a case containing only B,” and “a case of combining A and B.”
  • FIG. 1 is a configuration diagram of an example system for updating a crowdsourcing-based 3D map according to an embodiment of the present disclosure.
  • a system for crowdsourcing-based 3D map update includes a user device 10 that provides scan data used for 3D map update, and updates a 3D map based on scan data provided from the user device. It may include a server 100 that does.
  • the components shown in FIG. 1 are exemplary, and additional components may exist or some of the components may be omitted.
  • the user device 10 and the server 100 may mutually transmit and receive data for crowdsourcing-based 3D map update according to some embodiments of the present disclosure through a communication network. .
  • the user device 10 is a device for providing a plurality of query images for updating a 3D map.
  • the user device 10 is equipped with a camera, such as smart glasses for experiencing augmented reality or virtual reality (VR), or has a camera. It may include a wearable device that can be connected to a terminal, and/or any electronic device having network connectivity.
  • a camera such as smart glasses for experiencing augmented reality or virtual reality (VR)
  • VR virtual reality
  • It may include a wearable device that can be connected to a terminal, and/or any electronic device having network connectivity.
  • the user device 10 may transmit scan data used for 3D map update to the server 100.
  • the user device 10 may be one user device (ie, a single user device) or two or more user devices. If the user device 10 is a single user device, the scan data is scan data obtained by scanning at least a portion of a specific area corresponding to the user's location, and includes at least one query image or point cloud representing at least a portion of the specific area. cloud) data.
  • the query image may be a two-dimensional or three-dimensional image acquired through the camera of the user device 10, but is not limited thereto, and the point cloud data may be obtained through a sensor such as Lidar provided in the user device, or It may be obtained from at least one query image, but is not limited to this.
  • the scan data may further include camera data, such as camera pose data of the user device 10, GPS data, or Inertial Measurement Unit (IMU) data.
  • IMU Inertial Measurement Unit
  • the user device 10 may be any entity capable of processing, storing, and outputting any data, including a processor, a storage unit (memory and persistent storage media), and a display unit. there is.
  • the processor in the present disclosure may consist of one or more cores, including a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit of the user device 10. It may include any type of processor, such as a tensor processing unit (TPU), to provide scan data for 3D map update by executing instructions stored in memory.
  • the processor may read the computer program stored in the memory and provide scan data for map update according to an embodiment of the present disclosure.
  • the memory in the present disclosure may store a program for the operation of a processor, and may temporarily or permanently store input/output data.
  • Memory is a flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), and RAM (Random Access).
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • ROM Read-Only Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • PROM Program Programmable Read-Only Memory
  • magnetic memory magnetic disk, optical disk It may include at least one type of storage medium. These memories can be operated under processor control. Additionally, memory and storage may be used interchangeably with each other in the present disclosure.
  • the server 100 is a device for crowdsourcing-based 3D map updating and may include any type of computer system or computer device, such as a computer, digital processor, portable device, and device controller.
  • the server 100 receives scan data from the user device 10 and creates a map area corresponding to at least a portion of a specific area on the 3D map using the received scan data and a previously created 3D map.
  • the reward to be provided can be determined by calculating the user's contribution to the updating or creation of the map area.
  • contribution may refer to the degree to which the user has contributed in updating or creating a 3D map. This contribution can be calculated when various conditions preset by the administrator regarding the 3D map are satisfied.
  • various conditions include whether the map area was updated or created based on scan data provided by the user, the importance of the map area updated or created by the user, the amount of access to the map area accessed by the user, and whether the map area was updated or created by the user. It may include, but is not limited to, the period interval from the update date for the updated map area.
  • rewards refer to compensation provided to users who participate in updating or creating a 3D map, and may be paid differentially according to the contribution level described above.
  • rewards are not only goods that can be used on software that can access and use 3D maps, software related to various services (e.g. cloud, VPN, etc.) of 3D map service providers, or third party software. , may include any form of real goods that can be traded in reality.
  • the server 100 may use a Lidar scan, a Structure from motion (SFM) algorithm, or a Simultaneous Localization and Mapping (SLAM) algorithm, but is not limited thereto.
  • SFM Structure from motion
  • SLAM Simultaneous Localization and Mapping
  • the server 100 may be any entity capable of processing and storing any data, including a processor and a storage unit (memory and persistent storage media).
  • a processor in the present disclosure may consist of one or more cores, including a central processing unit (CPU), general purpose graphics processing unit (GPGPU), tensor processing unit (TPU), graphics processing unit (GPU), and neural processing of a computing device. It may include any type of processor for crowdsourcing-based 3D map update by executing instructions stored in memory, such as a Neural Processing Unit (NPU). The processor may read the computer program stored in the memory and perform crowdsourcing-based 3D map update according to an embodiment of the present disclosure.
  • CPU central processing unit
  • GPU general purpose graphics processing unit
  • TPU tensor processing unit
  • GPU graphics processing unit
  • NPU Neural Processing Unit
  • the processor may read the computer program stored in the memory and perform crowdsourcing-based 3D map update according to an embodiment of the present disclosure.
  • the memory in the present disclosure may store a program for the operation of a processor, and may temporarily or permanently store input/output data.
  • Memory includes flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, magnetic memory, magnetic memory. It may include at least one type of storage medium among disks and optical disks. These memories can be operated under processor control. Additionally, memory and storage may be used interchangeably with each other in the present disclosure.
  • the storage unit according to the present disclosure may be implemented as a database.
  • the system of the present disclosure may be equipped with a separate database for storing various data related to a 3D map.
  • These databases can store 3D maps and spatial data related to 3D maps.
  • the 3D map is based on RGB and/or depth map images captured through cameras at various locations, camera pose data at each location, GPS data of the camera, and point cloud data obtained from RGB and/or depth map images. It refers to a 3D map model reconstructed into a 3D mesh.
  • Spatial data related to a 3D map may include, but is not limited to, a reference image at each location of the 3D map, camera pose data, and feature point data for each of various objects.
  • FIG. 2 is a block diagram of a server for crowdsourcing-based 3D map update according to an embodiment of the present disclosure.
  • the configuration of the server 100 shown in FIG. 2 is only a simplified example.
  • the server 100 may include different configurations for performing the computing environment of the server 100, and only some of the disclosed configurations may configure the server 100.
  • the server 100 may include a communication unit 110, a memory 120, and a processor 130.
  • the above-described components are not essential for implementing the server 100, so the server 100 may have more or less components than the components listed above.
  • each component may be composed of a separate chip, module, or device, or may be included in one device.
  • the communication unit 110 may include any type of wired/wireless Internet module for network connection. Additionally, the communication unit 110 may include a short range communication module. Short-distance communication technologies include Bluetooth, Radio Frequency Identification (RFID), infrared data association (IrDA), Ultra-Wideband (UWB), and ZigBee.
  • RFID Radio Frequency Identification
  • IrDA infrared data association
  • UWB Ultra-Wideband
  • ZigBee ZigBee
  • the communication unit 110 connects the server 100 to enable communication with an external device.
  • the communication unit 110 may be connected to the user device 10 using wired/wireless communication and receive scan data.
  • the storage unit 120 may store any type of information generated or determined by the processor 130 and any type of information received by the communication unit 110. According to some embodiments of the present disclosure, the storage unit 120 may store various data for updating a 3D map.
  • Storage unit 120 may include memory and/or persistent storage media.
  • the storage unit 120 includes flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, It may include at least one type of storage medium among magnetic memory, magnetic disk, and optical disk.
  • the server 100 may operate in relation to web storage that performs the storage function of the storage unit 120 on the Internet.
  • the description of the storage unit described above is merely an example, and the present disclosure is not limited thereto.
  • the processor 130 may be composed of one or more cores, and may include a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of a computing device. unit) and a processor for data analysis, such as a neural processing unit (NPU).
  • CPU central processing unit
  • GPU general purpose graphics processing unit
  • TPU tensor processing unit
  • NPU neural processing unit
  • the processor 130 may read the computer program stored in the memory 130 and perform data processing for crowdsourcing time 3D map update according to an embodiment of the present disclosure.
  • the processor 130 for crowdsourcing-based 3D map update updates or creates a map area corresponding to at least a portion of the area on the 3D map using the received scan data and the previously produced 3D map.
  • at least one query image corresponding to scan data may mean a query image obtained by scanning a specific area viewed by the camera from the location of the user device 10.
  • the point cloud data may be obtained from the user device 10, or the processor 130 may obtain it from a query image received from the user device 10, but is not limited thereto.
  • the processor 130 estimates user location data on a 3D map based on scan data received from the user device 10, acquires a plurality of images taken from the estimated user location data, and then obtains a plurality of images taken from the estimated user location data.
  • Point cloud data can also be obtained from multiple images.
  • the user location data may include values (eg, coordinate values) for the position and direction of the camera associated with the user device 10.
  • the camera associated with the user device 10 may refer to a camera provided in the user device 10 or connected to the user device 10 by wire or wirelessly, but is not limited thereto.
  • the processor 130 may determine the user's contribution to updating or creating a map area and determine a reward to be provided according to the determined contribution.
  • the processor 130 can use various methods. These various methods include a method of determining the contribution by considering the importance of each area on the 3D map designated by the 3D map manager, and a user device A method of determining the contribution based on the difference value between the map area and the actual area on the 3D map corresponding to the location of (10), a method of determining the contribution based on the period interval from the most recent update date of the 3D map, 3 It may include, but is not limited to, a method of determining contribution based on the amount of access to each of the plurality of map areas of the dimensional map.
  • the processor 130 may transmit reward information to the user device 10 to pay virtual goods or real goods for the determined reward, or may transmit it to a third party's server or device for reward payment.
  • the processor 130 may transmit reward information to the user device 10 to pay virtual goods or real goods corresponding to the reward through software that provides a 3D map service installed on the user device 10.
  • the reward information may include user information (eg, user account or account information in software, etc.) as well as information indicating the type or amount of the determined reward.
  • the processor 130 may transmit reward information to a third party's server or device to pay virtual goods or real goods through software related to a service provided by the third party, according to the determined reward.
  • FIGS. 3 to 13 a method for updating a 3D map based on crowdsourcing will be described with reference to FIGS. 3 to 13.
  • the operations of FIGS. 3 to 13 may be performed by the processor 130 of the server 100.
  • FIG. 3 is a flowchart illustrating an example of a method for crowdsourcing time 3D map update according to an embodiment of the present disclosure.
  • the processor 130 receives scan data obtained by scanning at least a portion of the area corresponding to the location of the user device 10 from the user device 10 (S300), and receives the received scan data and A map area corresponding to at least part of the area on the 3D map is updated or created using a previously produced 3D map (S310).
  • the processor 130 may update or create a map area on the 3D map depending on whether the map area exists in the corresponding map area on the 3D map. This will be described in detail below with reference to FIG. 4.
  • FIG. 4 is a flowchart illustrating an example of a method of updating or creating a map area on a 3D map corresponding to at least a portion of the area using scan data and a 3D map according to an embodiment of the present disclosure.
  • the processor 130 determines whether a map area exists on the 3D map using scan data and the 3D map (S400), and if a map area exists on the 3D map, the first area and The map areas are compared to determine the difference value between the first area and the map area (S410).
  • the processor 130 analyzes scan data (i.e., at least one query image or point cloud data) to detect feature point data, It can be determined whether a map area on the 3D map corresponding to the detected feature point data exists.
  • the processor 130 when generating a 3D map, the processor 130 includes a reference image related to each map area of the 3D map, camera pose data at a location corresponding to each reference image, and at least one object extracted from each reference image. Spatial data including feature point data for and feature point data for at least one object in a 3D map may be stored in advance. Such spatial data may be pre-stored in the above-described storage unit 120 or a separate database related to the server 100.
  • the processor 130 may determine whether a map area on the 3D map having feature point data matching the extracted feature point data exists. For example, if there is feature point data of previously stored spatial data that matches the extracted feature point data, the processor 130 may determine that a map area exists. If there is no feature point data of pre-stored spatial data that matches the extracted feature point data, the processor 130 may determine that the map area does not exist.
  • the processor 130 may estimate user location data on a 3D map using scan data and determine whether a map area on the 3D map corresponding to the estimated user location data exists. Specifically, the processor 130 uses at least one of the query image or point cloud data included in the scan data or uses camera data (i.e., at least one of camera pose data, GPS data, or IMU data) to identify the user on the 3D map. Location data can also be estimated. In various embodiments, the processor 130 may estimate user location data on a 3D map using a combination of at least one of query image or point cloud data and at least one of camera pose data, GPS data, or IMU data. It is not limited to this.
  • the processor 130 may determine whether the user exists in a map area corresponding to the estimated user location data. For example, if there is pre-stored spatial data for an area corresponding to the direction in which the virtual camera is looking in the estimated user location data, the processor 130 stores the data in the map area on the 3D map corresponding to the estimated user location data. You can decide that it exists. If there is no pre-stored spatial data for the area corresponding to the direction in which the virtual camera is looking in the estimated user location data, the processor 130 determines that it does not exist in the map area on the 3D map corresponding to the estimated user location data. You can decide.
  • the processor 130 may determine that spatial data for an area corresponding to the direction a virtual camera is facing exists in the estimated user location data, and that GPS data of the spatial data and GPS data of the camera data included in the scan data exist. Depending on whether there is a correspondence between data, it can be determined whether it exists in the map area. Specifically, the processor 130 compares the GPS data of the spatial data and the GPS data of the scan data, and if the difference between the GPS data of the spatial data and the GPS data of the scan data is less than a preset threshold, the GPS data of the spatial data It may be determined that the GPS data of the scan data corresponds to the GPS data and that it exists in a map area on the 3D map corresponding to the estimated user location data.
  • the processor 130 determines that the GPS data of the spatial data and the GPS data of the scan data do not correspond, and It may be determined that it does not exist in the map area on the corresponding 3D map.
  • FIG. 5 to 9 are flowcharts illustrating examples of various methods for updating a 3D map when a map area exists according to an embodiment of the present disclosure.
  • FIG. 5 is a flowchart illustrating an example of a method for updating a 3D map when a map area exists according to an embodiment of the present disclosure.
  • the processor 130 estimates user location data on a 3D map using scan data (S500).
  • Scan data used to estimate the user's location may include at least one of at least one query image, point cloud data, or camera data.
  • the processor 130 may detect feature point data from the at least one query image and detect a map area on the 3D map having feature point data matching the detected feature point data.
  • the processor 130 may estimate the location on the 3D map corresponding to the detected map area as user location data.
  • point cloud data the processor 130 may detect a map area on a 3D map having point cloud data matching the corresponding point cloud data, and estimate the location on the 3D map corresponding to the detected map area as user location data. .
  • the processor 130 may estimate user location data on a 3D map using camera pose data, GPS data, or IMU data corresponding to the camera data. In various embodiments, the processor 130 may estimate user location data using VPS, but is not limited to this.
  • the processor 130 determines a reference image that matches at least one query image of the scan data among pre-stored reference images of the map area corresponding to the estimated user location data (S510). In other words, as described above, the processor 130 may determine a reference image that matches at least one query image among reference images of spatial data of a previously produced 3D map.
  • the processor 130 determines a difference value (reprojection error) between the feature point data of each of the determined reference image and at least one query image (S520). Specifically, the processor 130 detects feature point data from each of the query image and reference image using a feature point detection algorithm or an artificial intelligence model, calculates a difference value between the detected feature point data, and then stores the calculated difference value in the first area. It can be determined as the difference value between and the map area. For example, the processor 130 may determine the difference value between the coordinates of matching feature points between the query image and the reference image as the difference value between the first area and the map area.
  • FIG. 6 is a flowchart illustrating an example of a method for updating a 3D map when a map area exists according to various embodiments of the present disclosure.
  • the processor 130 estimates user location data on a 3D map using scan data (S600). The same method as described in S500 of FIG. 5 can be used to estimate user location data.
  • the processor 130 obtains a captured image of the map area from the estimated user location data (S610). Specifically, the processor 130 may place a virtual camera on user location data on a 3D map and capture at least one captured image by photographing the map area using the placed virtual camera.
  • the processor 130 determines a difference value by comparing the captured image and at least one query image on a pixel basis (S620). Specifically, the processor 130 calculates a difference value between pixels by comparing each pixel of the captured image with each pixel of at least one query image, and calculates the average value of the calculated difference values as the difference between the first area and the map area. It can be determined by value. In the embodiment, it is explained that the average value is calculated, but the present invention is not limited to this, and the maximum value, minimum value, or median value may be calculated as the difference value.
  • FIG. 7 is a flowchart illustrating an example of a method for updating a 3D map when a map area exists according to various embodiments of the present disclosure.
  • the processor 130 estimates user location data on a 3D map using scan data (S700) and acquires a captured image of the map area from the estimated user location data (S710).
  • S700 scan data
  • S710 estimated user location data
  • the same method as described in S500 of FIG. 5 and S600 to S610 of FIG. 6 may be used to estimate user location data and acquire captured images.
  • the processor 130 determines a difference value by comparing the captured image and the at least one query image for each section (neighborhood) (S720). Specifically, the processor 130 may use an algorithm (neighborhood) to process each captured image and at least one query image by dividing them into blocks or sections.
  • the processor 130 calculates the difference value for each block or section processed in this way, calculates the average value of the calculated difference value for each block or section, and then uses the calculated average value as the difference value between the first area and the map area. It can be decided as follows. In the embodiment, it is explained that the average value is calculated, but the present invention is not limited to this, and the maximum value, minimum value, or median value may be calculated as the difference value.
  • FIG. 8 is a flowchart illustrating an example of a method for updating a 3D map when a map area exists according to various embodiments of the present disclosure.
  • the processor 130 estimates user location data on a 3D map using scan data (S800). The same method as described in S500 of FIG. 5 may be used to estimate user location data.
  • the processor 130 determines point cloud data that matches the point cloud data of the scan data among the previously stored point cloud data of the map area corresponding to the estimated user location data (S810). In other words, as described above, the processor 130 may determine the point cloud data of the spatial data that matches the point cloud data of the scan data among the point cloud data of the spatial data of the previously produced 3D map.
  • the processor 130 compares the determined point cloud data with the point cloud data of the scan data and determines a difference value between the determined point cloud data and the point cloud data of the scan data (S820). Specifically, the processor 130 may calculate a difference value between the point cloud coordinates that match the determined point cloud data and the point cloud data of the scan data, and determine the calculated difference value as the difference value between the first area and the map area.
  • FIG. 9 is a flowchart illustrating an example of a method for updating a 3D map when a map area exists according to various embodiments of the present disclosure.
  • the processor 130 generates point cloud data based on scan data (S900).
  • the scan data may include not only a query image, but also a depth map image, camera pose data, GPS data, or IMU data.
  • the processor 130 may detect point cloud data from a plurality of query images and depth map images.
  • the plurality of query images may mean captured images or videos taken of the first area from various positions and directions.
  • the processor 130 can use an artificial intelligence model for detecting point cloud data.
  • the processor 130 may generate point cloud data using the SLAM algorithm.
  • the processor 130 estimates user location data on a 3D map using scan data (S910). The same method as described in S500 of FIG. 5 can be used to estimate user location data.
  • the processor 130 determines point cloud data that matches the generated point cloud data among the previously stored point cloud data of the map area corresponding to the estimated user location data (S920). In other words, the processor 130 may determine the point cloud data of the spatial data that matches the generated point cloud data among the point cloud data of the spatial data of the previously produced 3D map, as described above.
  • the processor 130 compares the determined point cloud data and the generated point cloud data and determines a difference value between the determined point cloud data and the generated point cloud data (S930). Specifically, the processor 130 may calculate a difference value between the point cloud coordinates that match the determined point cloud data and the generated point cloud data, and determine the calculated difference value as the difference value between the first area and the map area.
  • the process of estimating user location data on a 3D map using scan data is explained in FIGS. 5 to 9, but the method is not limited thereto, and the user may be used to determine the presence or absence of a map area on a 3D map. If the location data is estimated first, the corresponding estimation processes (S500, S600, S700, S800, and S910) can be omitted.
  • the processor 130 updates the map area based on the determined difference value (S420). Specifically, the processor 130 may update the map area using the difference value between the first area and the map area described in FIG. 4. For example, the processor 130 uses the difference value to correct (or update) the point cloud data (point cloud coordinate value) of the map area or the feature point data (feature point coordinate value) of each object in the map region, thereby creating a 3D map.
  • the map area can be updated.
  • the processor 130 may not perform an operation to update the map area of the 3D map if the determined difference value is greater than a preset threshold value. For example, if variable objects such as people or cars exist in the first area, the difference between the first area and the map area may appear large. In this case, operations for updating the 3D map may be excluded.
  • the processor 130 creates a map area on the 3D map based on scan data received from the user device 10 (S430). Specifically, the processor 130 may estimate user location data on a 3D map based on scan data and create a map area on the 3D map based on the estimated user location data. For example, the processor 130 may estimate user location data using GPS data in scan data. In various embodiments, the processor ( 130) acquires camera pose data estimated at a location where a map area exists and IMU data acquired during movement from the user device 130, and user location data on a 3D map based on the acquired camera pose data and IMU data. can be estimated. The processor 130 may generate a map area on a 3D map using the lidar scan, SFM algorithm, or SLAM algorithm as described above based on the user location data estimated as such, but is not limited to this.
  • the processor 130 determines a reward to be provided according to the user's contribution to updating or creating a map area (S320). Specifically, the processor 130 may determine the user's contribution to updating or creating a map area, and determine a reward to be provided according to the determined contribution. Information about the reward determined in this way (i.e., reward information) may be provided to the user device 10 or a third party server or device. This will be described in detail below with reference to FIGS. 10 to 13.
  • FIG. 10 to 13 are flowcharts illustrating examples of various methods for determining the contribution to be provided according to an embodiment of the present disclosure.
  • FIG. 10 is a flowchart illustrating an example of a method for determining a contribution and determining a reward according to the contribution according to an embodiment of the present disclosure.
  • the processor 130 determines the user's contribution based on the determined difference value (S1000) and determines a reward corresponding to the determined contribution as the reward to be provided (S1010). Specifically, the processor 130 may determine the user's contribution in proportion to the size of the determined difference value previously described in FIGS. 4 to 9. For example, the processor 130 may determine the highest contribution for a user whose difference value is the maximum value, and determine the lowest contribution for the user whose difference value is the minimum value. The processor 130 may determine the type or amount of the reward so that the reward can be provided differentially or additionally according to the contribution determined in this way. For example, the processor 130 may determine the type or amount of the reward so that the largest reward is provided to the user with the highest contribution or additional rewards are provided.
  • FIG. 11 is a flowchart illustrating an example of a method for determining a contribution level and determining a reward according to the contribution level according to various embodiments of the present disclosure.
  • the processor 130 determines the user's contribution based on the importance of each map area preset on the 3D map (S1100), and determines a reward corresponding to the determined contribution as the reward to be provided (S1110). . Specifically, the processor 130 may determine the user's contribution in proportion to a preset importance for the map area updated or created by the user device 10. For example, if the importance of the updated or created map area is set to be high, the processor 130 may determine a high contribution to the user, and if the importance of the updated or created map area is set to be low, the processor 130 may determine a low contribution to the user. The processor 130 may determine the type or amount of the reward so that the reward can be provided differentially or additionally according to the determined contribution.
  • FIG. 12 is a flowchart illustrating an example of a method for determining a contribution level and determining a reward according to the contribution level according to various embodiments of the present disclosure.
  • the processor 130 determines the user's contribution based on the connection amount of the user device 10 connected to each of the plurality of map areas of the 3D map (S1200), and provides a reward corresponding to the determined contribution. It is determined as a reward to be provided (S1210). Specifically, the processor 130 may determine the user's contribution in proportion to the amount of access made by the user device 10 to each map area of the 3D map. For example, a 3D map may be divided into multiple map regions to determine user contribution. Processor 130 may determine the highest contribution to the user whose user device 10 has the most access to each map area. The processor 130 may determine the type or amount of the reward so that the reward can be provided differentially or additionally according to the determined contribution.
  • FIG. 13 is a flowchart illustrating an example of a method for determining a contribution and determining a reward according to the contribution according to various embodiments of the present disclosure.
  • the processor 130 determines the user's contribution based on the period interval from the update date of the 3D map (S1300), and determines a reward corresponding to the determined contribution as the reward to be provided (S1310). Specifically, the processor 130 may determine the user's contribution in proportion to the period interval from the update date of the 3D map to the date the map area was updated or created by the user device 10. For example, if the period interval from the update date of the 3D map to the date the map area was updated or created is the largest, the processor 130 may determine the largest contribution to the user. The processor 130 may determine the type or amount of the reward so that the reward can be provided differentially or additionally according to the determined contribution.
  • the processor 130 may transmit reward information, including user information such as the type or amount of the determined reward, to the user device 10 or a server of a sub-party.
  • the processor 130 compares the map areas created by each user to determine the contribution of the user who produced similar results to the multiple users. You can decide high.
  • the processor 130 stores the estimated user location data on the 3D map. It is possible to determine whether something does not exist and create a new map area on the 3D map accordingly. Specifically, at a first viewpoint corresponding to a specific viewpoint, the processor 130 may estimate user location data and determine that a map area corresponding to the estimated user location data exists. Subsequently, at a second time point corresponding to the next time point after the first time point, the processor 130 may estimate user location data and determine that a map area corresponding to the estimated user location data does not exist.
  • the processor 130 estimates the user location data at the second viewpoint using the time interval between the first viewpoint and the second viewpoint and the user location data and IMU data at the first viewpoint obtained during the time interval, At a second point in time, it may be determined that the estimated user location data does not exist on the 3D map. For example, if spatial data for an area corresponding to the estimated user location data does not exist or the GPS data included in the spatial data does not correspond to the GPS of the scan data acquired at the second time point, the processor 130 performs the estimation It may be determined that the user location data provided does not exist on the 3D map.
  • Processor 130 is A new map area on the 3D map may be created based on user location data estimated at the second viewpoint and scan data acquired at the second viewpoint. Furthermore, the processor 130 may determine the user's contribution in proportion to the size of the map area created by the scan data received from the user device 130, and provide a reward to the user device 10 according to the determined contribution. there is.
  • Figure 14 is a brief, general schematic diagram of an example computing environment in which embodiments of the present disclosure may be implemented.
  • program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • routines programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • the described embodiments of the disclosure can also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote memory storage devices.
  • Computers typically include a variety of computer-readable media.
  • Computer-readable media can be any medium that can be accessed by a computer, and such computer-readable media includes volatile and non-volatile media, transitory and non-transitory media, removable and non-transitory media. Includes removable media.
  • Computer-readable media may include computer-readable storage media and computer-readable transmission media.
  • Computer-readable storage media refers to volatile and non-volatile media, transient and non-transitory media, removable and non-removable, implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Includes media.
  • Computer readable storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage. This includes, but is not limited to, a device, or any other medium that can be accessed by a computer and used to store desired information.
  • a computer-readable transmission medium typically implements computer-readable instructions, data structures, program modules, or other data on a modulated data signal, such as a carrier wave or other transport mechanism. Includes all information delivery media.
  • modulated data signal refers to a signal in which one or more of the characteristics of the signal have been set or changed to encode information within the signal.
  • computer-readable transmission media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also intended to be included within the scope of computer-readable transmission media.
  • System bus 1108 couples system components, including but not limited to system memory 1106, to processing unit 1104.
  • Processing unit 1104 may be any of a variety of commercially available processors. Dual processors and other multiprocessor architectures may also be used as processing unit 1104.
  • System bus 1108 may be any of several types of bus structures that may further be interconnected to a memory bus, peripheral bus, and local bus using any of a variety of commercial bus architectures.
  • System memory 1106 includes read only memory (ROM) 1110 and random access memory (RAM) 1112.
  • the basic input/output system (BIOS) is stored in non-volatile memory 1110, such as ROM, EPROM, and EEPROM, and is a basic input/output system that helps transfer information between components within the computer 1102, such as during startup. Contains routines.
  • RAM 1112 may also include high-speed RAM, such as static RAM, for caching data.
  • Computer 1102 may also include an internal hard disk drive (HDD) 1114 (e.g., EIDE, SATA)—the internal hard disk drive 1114 may also be configured for external use within a suitable chassis (not shown).
  • a magnetic floppy disk drive (FDD) 1116 e.g., for reading from or writing to a removable diskette 1118
  • an optical disk drive 1120 e.g., a CD-ROM for reading the disk 1122 or reading from or writing to other high-capacity optical media such as DVDs.
  • Hard disk drive 1114, magnetic disk drive 1116, and optical disk drive 1120 are connected to system bus 1108 by hard disk drive interface 1124, magnetic disk drive interface 1126, and optical drive interface 1128, respectively. ) can be connected to.
  • the interface 1124 for implementing an external drive includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
  • drives and their associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, and the like.
  • drive and media correspond to storing any data in a suitable digital format.
  • removable optical media such as HDDs, removable magnetic disks, and CDs or DVDs
  • removable optical media such as zip drives, magnetic cassettes, flash memory cards, cartridges, etc.
  • any such media may contain computer-executable instructions for performing the methods of the present disclosure.
  • a number of program modules may be stored in the drive and RAM 1112, including an operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136. All or portions of the operating system, applications, modules and/or data may also be cached in RAM 1112. It will be appreciated that the present disclosure may be implemented on various commercially available operating systems or combinations of operating systems.
  • a user may enter commands and information into computer 1102 through one or more wired/wireless input devices, such as a keyboard 1138 and a pointing device such as mouse 1140.
  • Other input devices may include microphones, IR remote controls, joysticks, game pads, stylus pens, touch screens, etc.
  • input device interface 1142 which is often connected to the system bus 1108, but may also include a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, It can be connected by other interfaces, etc.
  • a monitor 1144 or other type of display device is also connected to system bus 1108 through an interface, such as a video adapter 1146.
  • computers typically include other peripheral output devices (not shown) such as speakers, printers, etc.
  • Computer 1102 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1148, via wired and/or wireless communications.
  • Remote computer(s) 1148 may be a workstation, computing device computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other conventional network node, and is generally connected to computer 1102.
  • the logical connections depicted include wired/wireless connections to a local area network (LAN) 1152 and/or a larger network, such as a wide area network (WAN) 1154.
  • LAN and WAN networking environments are common in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can be connected to a worldwide computer network, such as the Internet.
  • computer 1102 When used in a LAN networking environment, computer 1102 is connected to local network 1152 through wired and/or wireless communication network interfaces or adapters 1156. Adapter 1156 may facilitate wired or wireless communication to LAN 1152, which also includes a wireless access point installed thereon for communicating with wireless adapter 1156.
  • the computer 1102 When used in a WAN networking environment, the computer 1102 may include a modem 1158 or be connected to a communicating computing device on the WAN 1154 or to establish communications over the WAN 1154, such as over the Internet. Have other means. Modem 1158, which may be internal or external and a wired or wireless device, is coupled to system bus 1108 via serial port interface 1142.
  • program modules described for computer 1102, or portions thereof may be stored in remote memory/storage device 1150. It will be appreciated that the network connections shown are exemplary and that other means of establishing a communications link between computers may be used.
  • Computer 1102 may be associated with any wireless device or object deployed and operating in wireless communications, such as a printer, scanner, desktop and/or portable computer, portable data assistant (PDA), communications satellite, wirelessly detectable tag. Performs actions to communicate with any device or location and telephone. This includes at least Wi-Fi and Bluetooth wireless technologies. Accordingly, communication may be a predefined structure as in a conventional network or may simply be ad hoc communication between at least two devices.
  • wireless communications such as a printer, scanner, desktop and/or portable computer, portable data assistant (PDA), communications satellite, wirelessly detectable tag.
  • PDA portable data assistant
  • Wi-Fi Wireless Fidelity
  • Wi-Fi is a wireless technology, like cell phones, that allows these devices, such as computers, to send and receive data indoors and outdoors, anywhere within the coverage area of a cell tower.
  • Wi-Fi networks use wireless technology called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, and high-speed wireless connections.
  • Wi-Fi can be used to connect computers to each other, to the Internet, and to wired networks (using IEEE 802.3 or Ethernet).
  • Wi-Fi networks can operate in the unlicensed 2.4 and 5 GHz wireless bands, for example, at data rates of 11 Mbps (802.11a) or 54 Mbps (802.11b), or in products that include both bands (dual band). .
  • the various embodiments presented herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques.
  • article of manufacture includes a computer program, carrier, or media accessible from any computer-readable storage device.
  • computer-readable storage media include magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips, etc.), optical disks (e.g., CDs, DVDs, etc.), smart cards, and flash. Includes, but is not limited to, memory devices (e.g., EEPROM, cards, sticks, key drives, etc.).
  • various storage media presented herein include one or more devices and/or other machine-readable media for storing information.
  • It can be used in systems and devices for updating 3D maps based on crowdsourcing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Theoretical Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Graphics (AREA)
  • Instructional Devices (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 개시의 실시예에 따라, 컴퓨팅 장치에 의해 수행되는, 크라우드 소싱 기반 3차원 지도 갱신 방법으로서, 사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하는 단계; 상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 단계; 및 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계를 포함한다. 대표도는 도 3일 수 있다.

Description

크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치
본 개시는 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치에 관한 것이다.
일반적으로, 증강현실(augmented reality, AR)은 현실 세계에 컴퓨터 기술로 만든 가상 물체 및 정보를 융합, 보완해 주는 기술을 의미한다. 최근 기술의 발전에 따라, 3차원 지도 안내 서비스, 자동차 내비게이션의 길 안내 서비스, 관광 정보 제공 서비스, 실내 공간에서의 가구 등의 배치 제공 서비스, 의류 착용 서비스 등과 같이 증간현실을 이용한 다양한 서비스들이 제공되고 있다.
특히, 3차원 지도 안내 서비스의 경우 인체에 착용 가능한 글래스 타입의 웨어러블 디바이스가 사용자의 머리에 착용되고, 디바이스 상의 디스플레이를 통해 3차원 지도에 대한 시각적 정보가 제공됨으로써, 사용자에게 실시간으로 3차원 지도 서비스를 제공할 수 있다. 이러한 서비스를 제공하기 위해 웨어러블 디바이스의 센싱 정보(즉, 라이더(Lidar) 및/또는 카메라 등과 같은 센싱 장치에 의해 획득된 센싱 정보)를 이용하여 사용자의 위치와 카메라 포즈를 추정하고, 추정된 위치와 포즈를 이용하여 3차원 지도를 작성하는 VPS(visual Positioning system) 기반 3차원 지도가 이용될 수 있다.
그러나, 사용자의 환경은 실시간으로 빠르게 변화될 수 있으므로, 사용자가 3차원 지도 제공을 요청하는 순간의 3차원 지도와 실제 공간의 모습이 정확하게 일치하지 않아 3차원 지도의 정확도가 떨어져 증강현실 컨텐츠에 대한 몰입감이 떨어질 수 있다. 이에, 3차원 지도 제공자는 실시간으로 3차원 지도를 갱신하기 위한 다양한 작업을 수행하고 있으나, 실제 지역을 일일이 모니터링하여 3차원 지도 상의 각 지도 영역을 갱신을 하는데 별도의 장비 및 이를 운용하기 위한 인력이 필요하므로, 3차원 지도 갱신 및 구축을 위해 많은 시간 및 자원 등이 소요될 수 있다.
따라서, 3차원 지도에 접속하는 복수의 사용자 장치가 3차원 지도의 갱신 또는 구축에 참여하도록 하여 사용자의 환경 변화에 따른 3차원 지도의 갱신 및 구축이 빠르고 용이하게 이루어질 수 있고, 생성 또는 구축되는 3차원 지도의 정확성을 현저하게 향상시키면서 VPS 지도 서비스의 품질 저하를 방지하기 위해 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치를 제공하기 위한 방법이 요구된다.
이와 관련하여 한국 공개특허 제10-2017-0034121호가 안출되어 있다.
본 개시는 전술한 배경기술에 대응하여 안출된 것으로, 크라우드 소싱 기반 3차원 지도 생성 방법 및 장치를 제공하고자 한다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 실시예에 따라, 컴퓨팅 장치에 의해 수행되는, 크라우드 소싱 기반 3차원 지도 생성 방법은, 사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하는 단계, 상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 단계 및 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계를 포함할 수 있다.
또한, 상기 스캔 데이터는, 상기 제1 영역의 적어도 일부를 나타내는 적어도 하나의 쿼리 이미지, 점군(point cloud) 데이터 및 카메라 데이터 중 적어도 하나를 포함하고, 상기 카메라 데이터는, 상기 사용자 장치의 카메라 포즈 데이터, GPS 데이터 또는 IMU 데이터 중 적어도 하나를 포함할 수 있다.
또한, 상기 수신된 스캔 데이터 및 상기 3차원 지도를 이용하여 상기 지도 영역을 갱신 또는 생성하는 단계는, 상기 수신된 스캔 데이터 및 상기 3차원 지도를 이용하여 상기 3차원 지도 상에 상기 지도 영역이 존재하는지를 결정하는 단계, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계 및 상기 결정된 차이 값에 기반하여 상기 지도 영역을 갱신하는 단계를 포함하고, 상기 3차원 지도 상에 상기 지도 영역이 존재하지 않으면 상기 사용자 장치로부터 수신된 스캔 데이터에 기반하여 상기 3차원 지도 상에 상기 지도 영역을 생성하는 단계를 더 포함할 수 있다.
또한, 상기 3차원 지도 상에 상기 지도 영역이 존재하는지를 결정하는 단계는, 상기 스캔 데이터로부터 특징점 데이터를 검출하는 단계 및 상기 검출된 특징점 데이터와 대응하는 상기 지도 영역이 존재하는지를 결정하는 단계를 포함할 수 있다.
또한, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는, 상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계, 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역의 기 저장된 레퍼런스 이미지 중 상기 스캔 데이터의 적어도 하나의 쿼리 이미지와 매칭되는 레퍼런스 이미지를 결정하는 단계 및 상기 적어도 하나의 쿼리 이미지 및 상기 결정된 레퍼런스 이미지 각각의 특징점 데이터 간의 차이 값(reprojection error)을 결정하는 단계를 포함할 수 있다.
또한, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는, 상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계, 상기 추정된 사용자 위치 데이터에서 상기 지도 영역에 대한 촬영 이미지를 획득하는 단계 및 상기 촬영 이미지와 상기 적어도 하나의 쿼리 이미지를 픽셀 단위로 비교하여 상기 차이 값을 결정하는 단계를 포함할 수 있다.
또한, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는, 상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계, 상기 추정된 사용자 위치 데이터에서 상기 지도 영역에 대한 촬영 이미지를 획득하는 단계 및 상기 촬영 이미지와 상기 적어도 하나의 쿼리 이미지 각각을 섹션(neighborhood)별로 비교하여 상기 차이 값을 결정하는 단계를 포함할 수 있다.
또한, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는, 상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계, 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역의 기 저장된 점군 데이터 중 상기 스캔 데이터의 점군 데이터와 매칭되는 점군 데이터를 결정하는 단계 및 상기 결정된 점군 데이터와 상기 스캔 데이터의 점군 데이터를 비교하여 상기 결정된 점군 데이터와 상기 스캔 데이터의 점군 데이터 간의 차이 값을 결정하는 단계를 포함할 수 있다.
또한, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는, 상기 스캔 데이터에 기반하여 점군 데이터를 생성하는 단계, 상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계, 상기 추정된 사용자 위치 데이터에 대응하는 점군 데이터 중 상기 생성된 점군 데이터와 매칭되는 점군 데이터를 결정하는 단계 및 상기 결정된 점군 데이터와 상기 생성된 점군 데이터를 비교하여 상기 결정된 점군 데이터와 상기 생성된 점군 데이터 간의 차이 값을 결정하는 단계를 포함할 수 있다.
또한, 상기 3차원 지도 상에 상기 지도 영역이 존재하는지를 결정하는 단계는, 상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계 및 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재하는지를 결정하는 단계를 포함할 수 있다.
또한, 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재하는지를 결정하는 단계는, 상기 추정된 사용자 위치 데이터에서 가상의 카메라가 바라보는 방향에 해당하는 영역에 대한 공간 데이터가 존재하는지를 결정하는 단계일 수 있다.
또한, 상기 가상의 카메라가 바라보는 방향에 해당하는 영역에 대한 공간 데이터가 존재하는지를 결정하는 단계는, 상기 공간 데이터가 존재하면 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재한다고 결정하는 단계 및 상기 공간 데이터가 존재하지 않으면 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재하지 않는다고 결정하는 단계를 포함할 수 있다.
또한, 상기 가상의 카메라가 바라보는 방향에 해당하는 영역에 대한 공간 데이터가 존재하는지를 결정하는 단계는, 상기 공간 데이터가 존재하고, 상기 공간 데이터에 포함된 GPS 데이터와 상기 스캔 데이터에 포함된 상기 카메라 데이터의 상기 GPS 데이터가 대응하면 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재한다고 결정하는 단계 및 상기 공간 데이터가 존재하고, 상기 공간 데이터에 포함된 GPS 데이터와 상기 스캔 데이터에 포함된 상기 카메라 데이터의 상기 GPS 데이터가 대응하지 않으면 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재하지 않는다고 결정하는 단계를 더 포함할 수 있다.
또한, 상기 크라우드 소싱 기반 3차원 지도 갱신 방법은, 제1 시점에서 추정된 사용자 위치 데이터에 해당하는 지도 영역이 존재하고, 상기 제1 시점의 다음 시점에 해당하는 제2 시점에서 추정된 사용자 위치 데이터에 해당하는 지도 영역이 존재하지 않으면 상기 제1 시점과 상기 제2 시점 사이의 시간 간격 및 상기 시간 간격 동안 획득된 상기 제1 시점의 사용자 위치 데이터 및 IMU 데이터를 이용하여 상기 제2 시점에서 추정된 사용자 위치 데이터가 상기 3차원 지도 상에 존재하지 않는다고 결정하는 단계 및 상기 제2 시점에서 추정된 사용자 위치 데이터 및 상기 제2 시점에서 획득된 스캔 데이터에 기반하여 상기 3차원 지도 상에 새로운 지도 영역을 생성하는 단계를 더 포함할 수 있다.
또한, 상기 사용자 위치 데이터는, 상기 사용자 장치와 연관된 카메라의 위치 및 방향을 포함할 수 있다.
또한, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계는, 상기 결정된 차이 값에 기반하여 상기 사용자의 기여도를 산정하는 단계 및 상기 산정된 기여도에 해당하는 리워드를 상기 제공될 리워드로서 결정하는 단계를 포함할 수 있다.
또한, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계는, 상기 3차원 지도 상에서 기 설정된 지도 영역별 중요도에 기반하여 상기 사용자의 기여도를 산정하는 단계 및 상기 산정된 기여도에 해당하는 리워드를 상기 제공될 리워드로서 결정하는 단계를 포함할 수 있다.
또한, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계는, 상기 3차원 지도의 복수의 지도 영역 각각에 접속한 사용자의 접속량에 기반하여 상기 사용자의 기여도를 산정하는 단계 및 상기 산정된 기여도에 해당하는 리워드를 상기 제공될 리워드로서 결정하는 단계를 포함할 수 있다.
또한, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계는, 상기 3차원 지도의 갱신일로부터의 기간 간격에 기반하여 상기 사용자의 기여도를 산정하는 단계 및 상기 산정된 기여도에 해당하는 리워드를 상기 제공될 리워드로서 결정하는 단계를 포함할 수 있다.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 실시예에 따라, 컴퓨터 판독가능 저장 매체 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서에서 실행되는 경우, 크라우딩 소싱 기반 3차원 지도 갱신을 위한 이하의 동작들을 수행하도록 하며, 상기 동작들은, 사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하는 동작, 상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 동작 및 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 동작을 포함할 수 있다.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 실시예에 따라, 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행 시, 상기 컴퓨팅 장치로 하여금 크라우딩 소싱 기반 3차원 지도 갱신을 위한 방법을 수행하도록 하며, 상기 방법은, 사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하는 단계, 상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 단계 및 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계를 포함할 수 있다.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 실시예에 따라, 크라우드 소싱 기반 3차원 지도 갱신을 위한 컴퓨팅 장치로서, 적어도 하나의 프로세서 및 메모리를 포함하며, 상기 적어도 하나의 프로세서는, 사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하고, 상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하고, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하도록 구성될 수 있다.
본 개시에서 얻을 수 있는 기술적 해결 수단은 이상에서 언급한 해결 수단들로 제한되지 않으며, 언급하지 않은 또 다른 해결 수단들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 몇몇 실시예에 따르면, 3차원 지도에 접속하는 사용자 장치가 3차원 지도의 갱신 또는 구축에 참여하도록 함으로써, 사용자의 환경 변화에 따른 3차원 지도의 갱신 및 구축이 빠르고 용이하게 이루어질 수 있다.
또한, 본 개시의 몇몇 실시예에 따르면, 3차원 지도를 실시간으로 빠르게 갱신 또는 생성함으로써, 사용자에게 정확도가 높은 3차원 지도를 제공하고, 몰입감이 높은 증강현실 컨텐츠를 제공할 수 있다.
또한, 본 개시의 몇몇 실시예에 따르면, 3차원 지도를 갱신 또는 생성하기 위해 소요되는 시간 및 자원을 최소화할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 양상들이 이제 도면들을 참조로 기재되며, 여기서 유사한 참조 번호들은 총괄적으로 유사한 구성요소들을 지칭하는데 이용된다. 이하의 실시예에서, 설명 목적을 위해, 다수의 특정 세부사항들이 하나 이상의 양상들의 총체적 이해를 제공하기 위해 제시된다. 그러나, 그러한 양상(들)이 이러한 구체적인 세부사항들 없이 실시될 수 있음은 명백할 것이다.
도 1은 본 개시의 실시예에 따른 크라우드 소싱 기반 3차원 지도를 갱신하기 위한 예시적인 시스템의 구성도이다.
도 2는 본 개시의 실시예에 따른 크라우드 소싱 기반 3차원 지도 갱신을 위한 서버의 블록 구성도이다.
도 3은 본 개시의 실시예에 따른 크라우드 소싱 시간 3차원 지도 갱신을 위한 방법의 일례를 설명하기 위한 흐름도이다.
도 4는 본 개시의 실시예에 따른 스캔 데이터 및 3차원 지도를 이용하여 영역의 적어도 일부에 해당하는 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 방법의 일례를 설명하기 위한 흐름도이다.
도 5 내지 도 9는 본 개시의 실시예에 따른 지도 영역이 존재하는 경우 3차원 지도를 갱신하는 다양한 방법들의 일례를 설명하기 위한 흐름도들이다.
도 10 내지 도 13는 본 개시의 실시예에 따른 제공될 기여도를 결정하는 다양한 방법들의 일례를 설명하기 위한 흐름도들이다.
도 14는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도이다.
다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.
본 명세서에서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정(procedure), 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있다. 일 컴포넌트는 하나의 컴퓨터 내에 로컬화 될 수 있다. 일 컴포넌트는 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 컴포넌트들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통해 전송되는 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.
그리고, "A 또는 B 중 적어도 하나"이라는 용어는, "A만을 포함하는 경우", "B 만을 포함하는 경우", "A와 B의 구성으로 조합된 경우"를 의미하는 것으로 해석되어야 한다.
당업자들은 추가적으로 여기서 개시된 실시예들과 관련되어 설명된 다양한 예시적 논리적 블록들, 구성들, 모듈들, 회로들, 수단들, 로직들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로 구현될 수 있음을 인식해야 한다. 하드웨어 및 소프트웨어의 상호교환성을 명백하게 예시하기 위해, 다양한 예시적 컴포넌트들, 블록들, 구성들, 수단들, 로직들, 모듈들, 회로들, 및 단계들은 그들의 기능성 측면에서 일반적으로 위에서 설명되었다. 그러한 기능성이 하드웨어로 또는 소프트웨어로서 구현되는지 여부는 전반적인 시스템에 부과된 특정 어플리케이션(application) 및 설계 제한들에 달려 있다. 숙련된 기술자들은 각각의 특정 어플리케이션들을 위해 다양한 방법들로 설명된 기능성을 구현할 수 있다. 다만, 그러한 구현의 결정들이 본 개시내용의 영역을 벗어나게 하는 것으로 해석되어서는 안된다.
제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예 들로 한정되는 것이 아니다. 본 발명은 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
도 1은 본 개시의 실시예에 따른 크라우드 소싱 기반 3차원 지도를 갱신하기 위한 예시적인 시스템의 구성도이다.
도 1을 참조하면, 크라우드 소싱 기반 3차원 지도 갱신을 위한 시스템은 3차원 지도 갱신을 위해 사용되는 스캔 데이터를 제공하는 사용자 장치(10) 및 사용자 장치로부터 제공된 스캔 데이터에 기반하여 3차원 지도를 갱신하는 서버(100)를 포함할 수 있다. 도 1에서 도시되는 컴포넌트들은 예시적인 것이며, 추가적인 컴포넌트들이 존재하거나 또는 컴포넌트들의 일부가 생략될 수 있다.
본 개시의 몇몇 실시예에 따르면, 사용자 장치(10) 및 서버(100)는 통신 네트워크를 통해, 본 개시의 몇몇 실시예들에 따른 크라우드 소싱 기반 3차원 지도 갱신을 위한 데이터를 상호 송수신할 수 있다.
사용자 장치(10)는 3차원 지도에 대한 업데이트를 위해 복수의 쿼리 이미지를 제공하기 위한 장치로서, 예를 들어 증강현실 또는 가상현실(VR)을 체험하기 위한 스마트 안경 등과 같이 카메라가 장착되거나, 카메라와 연결 가능한 웨어러블 장치, 단말 및/또는 네트워크 접속성을 갖는 임의의 전자 디바이스를 포함할 수 있다.
구체적으로, 사용자 장치(10)는 3차원 지도 갱신을 위해 사용되는 스캔 데이터를 서버(100)로 전달할 수 있다. 여기서, 사용자 장치(10)는 하나의 사용자 장치(즉, 단일 사용자 장치)이거나, 둘 이상의 사용자 장치일 수 있다. 사용자 장치(10)가 단일 사용자 장치인 경우 스캔 데이터는 사용자의 위치에 해당하는 특정 영역의 적어도 일부를 스캔하여 획득된 스캔 데이터로서, 특정 영역의 적어도 일부를 나타내는 적어도 하나의 쿼리 이미지 또는 점군(point cloud) 데이터를 포함할 수 있다. 예를 들어, 쿼리 이미지는 사용자 장치(10)의 카메라를 통해서 획득된 2차원 또는 3차원 이미지일 수 있으나, 이에 한정되지 않으며, 점군 데이터는 사용자 장치에 구비된 Lidar 등과 같은 센서를 통해 획득되거나, 적어도 하나의 쿼리 이미지로부터 획득될 수 있으나, 이에 한정되지 않는다. 다양한 실시예에서 스캔 데이터는 사용자 장치(10)의 카메라 포즈 데이터, GPS 데이터 또는 IMU(Inertial Measurement Unit) 데이터 등과 같은 카메라 데이터를 더 포함할 수 있다.
본 개시의 몇몇 실시예에 따르면, 사용자 장치(10)는 프로세서, 저장부(메모리 및 영구저장매체) 및 표시부를 포함하여, 임의의 데이터를 처리 및 저장하고, 출력할 수 있는 임의의 엔티티일 수 있다.
본 개시 내용에서의 프로세서는 하나 이상의 코어로 구성될 수 있으며, 사용자 장치(10)의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등과 같이 메모리 상에 저장된 명령어들을 실행시킴으로써 3차원 지도 갱신을 위한 스캔 데이터를 제공하기 위한 임의의 형태의 프로세서를 포함할 수 있다. 프로세서는 메모리에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 지도 갱신을 위한 스캔 데이터를 제공할 수 있다.
본 개시 내용에서의 메모리는 프로세서의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 임시 또는 영구 저장할 수도 있다. 메모리는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적 어도 하나의 타입의 저장매체를 포함할 수 있다. 이러한 메모리는 프로세서에 제어에 의하여 동작될 수 있다. 또한, 본 개시 내용에서 메모리 및 저장부는 서로 상호 교환 가능하게 사용될 수 있다.
서버(100)는 크라우드 소싱 기반 3차원 지도 갱신을 위한 장치로서, 예를 들어 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다.
구체적으로, 서버(100)는 사용자 장치(10)로부터 스캔 데이터를 수신하고, 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 3차원 지도 상에 특정 영역의 적어도 일부에 해당하는 지도 영역을 갱신 또는 생성한 후 지도 영역의 갱신 또는 생성에 대하여 사용자의 기여도를 산정하여 제공될 리워드를 결정할 수 있다. 여기서, 기여도는 3차원 지도를 갱신 또는 생성하는데 있어서 사용자가 기여한 정도를 의미할 수 있다. 이러한 기여도는 3차원 지도에 관하여 관리자에 의해 미리 설정된 다양한 조건을 만족시키는 경우 산정될 수 있다. 예를 들어, 다양한 조건은 사용자가 제공한 스캔 데이터에 의해서 지도 영역이 갱신 또는 생성되었는지 여부, 사용자에 의해서 갱신 또는 생성된 지도 영역에 대한 중요도, 사용자가 접속한 지도 영역에 대한 접속량, 사용자에 의해 갱신된 지도 영역에 대한 갱신일부터의 기간 간격 등을 포함할 수 있으나, 이에 한정되지 않는다.
또한, 리워드는 3차원 지도의 갱신 또는 생성에 참여한 사용자들에게 제공되는 보상을 의미하며, 상술한 기여도에 따라 차등 지급될 수 있다. 예를 들어, 리워드는 3차원 지도에 접속 및 이용 가능한 소프트웨어, 3차원 지도 서비스 업체의 다양한 서비스(예: 클라우드, VPN 등)에 관련된 소프트웨어 또는 서드 파티(Third party)의 소프트웨어 상에서 사용 가능한 재화뿐만 아니라, 현실에서 거래 가능한 임의의 형태의 실물 재화를 포함할 수 있다
3차원 지도를 생성하기 위해 서버(100)는 라이더 스캔(Lidar scan), SFM(Structure from motion) 알고리즘 또는 SLAM (Simultaneous Localization and Mapping) 알고리즘을 이용할 수 있으나, 이에 한정되지 않는다.
본 개시의 몇몇 실시예에 따르면, 서버(100)는 프로세서 및 저장부(메모리 및 영구저장매체)를 포함하여, 임의의 데이터를 처리 및 저장할 수 있는 임의의 엔티티일 수 있다.
본 개시 내용에서의 프로세서는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU), 범용 그래픽 처리 장치 (GPGPU), 텐서 처리 장치(TPU), 그래픽 처리 장치(GPU), 신경 처리 장치(NPU: Neural Processing Unit) 등과 같이 메모리 상에 저장된 명령어들을 실행시킴으로써 크라우드 소싱 기반 3차원 지도 갱신을 위한 임의의 형태의 프로세서를 포함할 수 있다. 프로세서는 메모리에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 실시예에 따른 크라우드 소싱 기반 3차원 지도 갱신을 수행할 수 있다.
본 개시 내용에서의 메모리는 프로세서의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 임시 또는 영구 저장할 수도 있다. 메모리는 플래시 메모리 타입, 하드디스크 타입, 멀티미디어 카드 마이크로 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM), SRAM, 롬(ROM), EEPROM, PROM, 자기 메모리, 자기 디스크, 광디스크 중 적 어도 하나의 타입의 저장매체를 포함할 수 있다. 이러한 메모리는 프로세서에 제어에 의하여 동작될 수 있다. 또한, 본 개시 내용에서 메모리 및 저장부는 서로 상호 교환 가능하게 사용될 수 있다.
본 개시에 따른 저장부는 데이터베이스로서 구현될 수 있다. 다양한 실시예에 따르면 본 개시의 시스템은 3차원 지도에 관련된 다양한 데이터를 저장하기 위한 별도의 데이터베이스가 구비될 수 있다. 이러한 데이터베이스는 3차원 지도 및 3차원 지도에 관련된 공간 데이터를 저장할 수 있다. 여기서, 3차원 지도는 다양한 위치에서 카메라를 통해서 촬영된 RGB 및/또는 깊이 맵 이미지, 각 위치에서의 카메라 포즈 데이터, 카메라의 GPS 데이터 및 RGB 및/또는 깊이 맵 이미지로부터 획득된 점군 데이터 등에 기반하여 3차원 메시(mesh)로 재구성된 3차원 지도 모델을 의미한다.
3차원 지도에 관련된 공간 데이터는 3차원 지도의 각 위치에서의 레퍼런스(reference) 이미지, 카메라 포즈 데이터 및 다양한 객체들 각각에 대한 특징점 데이터를 포함할 수 있으나, 이에 한정되지 않는다.
도 2는 본 개시의 실시예에 따른 크라우드 소싱 기반 3차원 지도 갱신을 위한 서버의 블록 구성도이다. 도 2에 도시된 서버(100)의 구성은 간략화하여 나타낸 예시일 뿐이다. 본 개시의 일 실시예에서 서버(100)는 서버(100)의 컴퓨팅 환경을 수행하기 위한 다른 구성들이 포함될 수 있고, 개시된 구성들 중 일부만이 서버(100)를 구성할 수도 있다.
서버(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다. 다만, 상술한 구성 요소들은 서버(100)를 구현하는데 있어서 필수적인 것은 아니어서, 서버(100)는 위에서 열거된 구성요소들보다 많거나, 또는 적은 구성요소들을 가질 수 있다. 여기서, 각각의 구성 요소들은 별개의 칩이나 모듈이나 장치로 구성될 수 있고, 하나의 장치 내에 포함될 수도 있다.
본 개시의 실시예에 따른 통신부(110)는 네트워크 접속을 위한 임의의 형태의 유/무선 인터넷 모듈을 포함할 수 있다. 또한, 통신부(110)는 근거리 통신(short range communication) 모듈을 포함할 수 있다. 근거리 통신 기술로 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra-Wideband), ZigBee 등이 이용될 수 있다.
본 명세서에서 설명된 기술들은 위에서 언급된 네트워크들뿐만 아니라, 다른 네트워크들에서도 사용될 수 있다.
본 개시의 몇몇 실시예에 따르면, 통신부(110)는 서버(100)가 외부 장치와 통신이 가능하도록 연결한다. 통신부(110)는 유/무선 통신을 이용하여 사용자 장치(10)와 연결되어 스캔 데이터를 수신할 수 있다.
본 개시의 일 실시예에 따르면, 저장부(120)는 프로세서(130)가 생성하거나 결정한 임의의 형태의 정보 및 통신부(110)가 수신한 임의의 형태의 정보를 저장할 수 있다. 본 개시의 몇몇 실시예에 따르면, 저장부(120)는 3차원 지도 갱신을 위한 다양한 데이터를 저장할 수 있다.
저장부(120)는 메모리 및/또는 영구저장매체를 포함할 수 있다. 저장부(120)는 플래시 메모리 타입, 하드디스크 타입, 멀티미디어 카드 마이크로 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM), SRAM, 롬(ROM), EEPROM, PROM, 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 서버(100)는 인터넷(internet) 상에서 상기 저장부(120)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 저장부에 대한 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다.
프로세서(130)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit), 신경 처리 장치(NPU: Neural Processing Unit) 등의 데이터 분석을 위한 프로세서를 포함할 수 있다.
프로세서(130)는 메모리(130)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 실시예에 따른 크라우드 소싱 시간 3차원 지도 갱신을 위한 데이터 처리를 수행할 수 있다.
구체적으로, 크라우드 소싱 기반 3차원 지도 갱신을 위한 프로세서(130)는 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 3차원 지도 상에 영역의 적어도 일부에 해당하는 지도 영역을 갱신 또는 생성할 수 있다. 여기서, 스캔 데이터에 해당하는 적어도 하나의 쿼리 이미지는 사용자 장치(10)의 위치에서 카메라가 바라보는 특정 영역을 스캔하여 획득된 쿼리 이미지를 의미할 수 있다. 또한, 점군 데이터는 사용자 장치(10)로부터 획득되거나, 프로세서(130)가 사용자 장치(10)로부터 수신된 쿼리 이미지로부터 획득할 수도 있으나, 이에 한정되지 않는다. 다양한 실시예에서 프로세서(130)는 사용자 장치(10)로부터 수신된 스캔 데이터에 기반하여 3차원 지도 상의 사용자 위치 데이터를 추정하고, 추정된 사용자 위치 데이터에서 촬영한 복수의 이미지를 획득한 후 획득된 복수의 이미지로부터 점군 데이터를 획득할 수도 있다. 여기서, 사용자 위치 데이터는 사용자 장치(10)와 연관된 카메라의 위치 및 방향에 대한 값(예: 좌표값)을 포함할 수 있다. 또한, 사용자 장치(10)와 연관된 카메라는 사용자 장치(10)에 구비되거나, 사용자 장치(10)와 유/무선으로 연결된 카메라를 의미할 수 있으나, 이에 한정되지 않는다.
이어서, 프로세서(130)는 지도 영역의 갱신 또는 생성에 대하여 사용자의 기여도를 결정하고, 결정된 기여도에 따라 제공될 리워드를 결정할 수 있다. 이와 같이 사용자의 기여도를 선정하기 위해 프로세서(130)는 다양한 방식을 이용할 수 있는데, 이러한 다양한 방식은 3차원 지도 관리자에 의해서 지정된 3차원 지도 상의 구역별 중요도를 고려하여 기여도를 결정하는 방식, 사용자 장치(10)의 위치에 해당하는 3차원 지도 상의 지도 영역과 실제 영역 사이의 차이 값에 기반하여 기여도를 결정하는 방식, 3차원 지도의 최근 갱신일로부터의 기간 간격에 기반하여 기여도를 결정하는 방식, 3차원 지도의 복수의 지도 영역 각각에 접속하는 접속량에 기반하여 기여도를 결정하는 방식 등을 포함할 수 있으나, 이에 한정되지 않는다.
리워드 지급을 위해 프로세서(130)는 결정된 리워드에 대한 가상 재화 또는 실물 재화를 지급하도록 리워드 정보를 사용자 장치(10)로 전달하거나, 리워드 지급을 위한 서드 파티의 서버 또는 장치로 전달할 수 있다. 예를 들어, 프로세서(130)는 사용자 장치(10)에 설치된 3차원 지도 서비스를 제공하는 소프트웨어를 통해서 리워드에 해당하는 가상 재화 또는 실물 재화를 지급하도록 리워드 정보를 사용자 장치(10)로 전달할 수 있다. 여기서, 리워드 정보는 결정된 리워드에 대한 종류 또는 양 등을 나타내는 정보뿐만 아니라 사용자 정보(예: 소프트웨어에서의 사용자 계정 또는 계좌 정보 등)를 포함할 수 있다. 다양한 실시예에서 프로세서(130)는 결정된 리워드에 따라 서드 파티에서 제공하는 서비스에 관련된 소프트웨어 등을 통해서 가상 재화 또는 실물 재화를 지급하도록 서드 파티의 서버 또는 장치로 리워드 정보를 전달할 수 있다.
이하에서는 도 3 내지 도 13을 참조하여 크라우드 소싱 기반 3차원 지도 갱신을 위한 방법을 설명하도록 한다. 제시된 실시예에서 도 3 내지 도 13의 동작들은 서버(100)의 프로세서(130)에 의해서 수행될 수 있다.
도 3은 본 개시의 실시예에 따른 크라우드 소싱 시간 3차원 지도 갱신을 위한 방법의 일례를 설명하기 위한 흐름도이다.
도 3을 참조하면, 프로세서(130)는 사용자 장치(10)로부터 사용자 장치(10)의 위치에 해당하는 영역의 적어도 일부를 스캔하여 획득된 스캔 데이터를 수신하고(S300), 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 3차원 지도 상에 영역의 적어도 일부에 해당하는 지도 영역을 갱신 또는 생성한다(S310).
이를 위해 프로세서(130)는 3차원 지도 상에 해당 지도 영역에 존재하는지 여부에 따라 3차원 지도 상의 지도 영역을 갱신 또는 생성할 수 있다. 이에 대해서 도 4를 참조하여 하기에서 구체적으로 설명하도록 한다.
도 4는 본 개시의 실시예에 따른 스캔 데이터 및 3차원 지도를 이용하여 영역의 적어도 일부에 해당하는 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 방법의 일례를 설명하기 위한 흐름도이다.
도 4를 참조하면, 프로세서(130)는 스캔 데이터 및 3차원 지도를 이용하여 3차원 지도 상에 지도 영역이 존재하는지 결정하고(S400), 3차원 지도 상에 지도 영역이 존재하면 제1 영역과 지도 영역을 비교하여 제1 영역과 지도 영역 사이의 차이 값을 결정한다(S410). 스캔 데이터 및 3차원 지도를 이용하여 3차원 지도 상에 지도 영역이 존재하는지 결정하기 위해 프로세서(130)는 스캔 데이터(즉, 적어도 하나의 쿼리 이미지 또는 점군 데이터)를 분석하여 특징점 데이터를 검출하고, 검출된 특징점 데이터와 대응하는 3차원 지도 상의 지도 영역이 존재하는지를 결정할 수 있다.
이를 위해 프로세서(130)는 3차원 지도를 생성할 시 3차원 지도의 각 지도 영역에 관련된 레퍼런스 이미지, 각 레퍼런스 이미지에 해당하는 위치에서의 카메라 포즈 데이터, 각 레퍼런스 이미지에서 추출된 적어도 하나의 객체에 대한 특징점 데이터 및 3차원 지도 안의 적어도 하나의 객체에 대한 특징점 데이터를 포함하는 공간 데이터를 사전에 저장할 수 있다. 이러한 공간 데이터는 상술한 저장부(120) 또는 서버(100)와 관련된 별도의 데이터베이스에 사전 저장될 수 있다.
추출된 특징점 데이터와 대응하는 3차원 지도 상의 지도 영역이 존재하는지를 결정하기 위해 프로세서(130)는 추출된 특징점 데이터와 매칭하는 특징점 데이터를 갖는 3차원 지도 상의 지도 영역이 존재하는지를 결정할 수 있다. 예를 들어, 추출된 특징점 데이터에 매칭되는 기 저장된 공간 데이터의 특징점 데이터가 존재하면 프로세서(130)는 지도 영역이 존재한다고 결정할 수 있다. 추출된 특징점 데이터에 매칭되는 기 저장된 공간 데이터의 특징점 데이터가 존재하지 않으면 프로세서(130)는 지도 영역이 존재하지 않는다고 결정할 수 있다.
다양한 실시예에서 프로세서(130)는 스캔 데이터를 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정하고, 추정된 사용자 위치 데이터에 해당하는 3차원 지도 상의 지도 영역이 존재하는지를 결정할 수도 있다. 구체적으로, 프로세서(130)는 스캔 데이터에 포함된 쿼리 이미지 또는 점군 데이터 중 적어도 하나를 이용하거나 카메라 데이터(즉, 카메라 포즈 데이터, GPS 데이터 또는 IMU 데이터 중 적어도 하나)를 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정할 수도 있다. 보다 다양한 실시예에서 프로세서(130)는 쿼리 이미지 또는 점군 데이터 중 적어도 하나와, 카메라 포즈 데이터, GPS 데이터 또는 IMU 데이터 중 적어도 하나의 조합을 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정할 수 있으나, 이에 한정되지 않는다.
이어서, 프로세서(130)는 추정된 사용자 위치 데이터에 해당하는 지도 영역에 존재하는지를 결정할 수 있다. 예를 들어, 추정된 사용자 위치 데이터에서 가상의 카메라가 바라보는 방향에 해당하는 영역에 대하여 기 저장된 공간 데이터가 존재하면 프로세서(130)는 추정된 사용자 위치 데이터에 해당하는 3차원 지도 상의 지도 영역에 존재한다고 결정할 수 있다. 추정된 사용자 위치 데이터에서 가상의 카메라가 바라보는 방향에 해당하는 영역에 대하여 기 저장된 공간 데이터가 존재하지 않으면 프로세서(130)는 추정된 사용자 위치 데이터에 해당하는 3차원 지도 상의 지도 영역에 존재하지 않는다고 결정할 수 있다.
다양한 실시예에서 프로세서(130)는 추정된 사용자 위치 데이터에서 가상의 카메라가 바라보는 방향에 해당하는 영역에 대한 공간 데이터가 존재하고, 해당 공간 데이터의 GPS 데이터와 스캔 데이터에 포함된 카메라 데이터의 GPS 데이터 간의 대응 여부에 따라 지도 영역에 존재하는지를 결정할 수 있다. 구체적으로, 프로세서(130)는 해당 공간 데이터의 GPS 데이터와 스캔 데이터의 GPS 데이터를 비교하여 해당 공간 데이터의 GPS 데이터와 스캔 데이터의 GPS 데이터 간의 차이가 사전 설정된 임계 값 이하면 해당 공간 데이터의 GPS 데이터와 스캔 데이터의 GPS 데이터가 대응된다고 결정하고, 추정된 사용자 위치 데이터에 해당하는 3차원 지도 상의 지도 영역에 존재한다고 결정할 수 있다. 해당 공간 데이터의 GPS 데이터와 스캔 데이터의 GPS 데이터 간의 차이가 임계 값을 초과하면 프로세서(130)는 해당 공간 데이터의 GPS 데이터와 스캔 데이터의 GPS 데이터가 대응되지 않는다고 결정하고, 추정된 사용자 위치 데이터에 해당하는 3차원 지도 상의 지도 영역에 존재하지 않는다고 결정할 수 있다.
이하에서는 지도 영역이 존재하는 경우 3차원 지도를 갱신하는 다양한 방법에 대해서 도 5 내지 도 9를 참조하여 구체적으로 설명하도록 한다.
도 5 내지 도 9는 본 개시의 실시예에 따른 지도 영역이 존재하는 경우 3차원 지도를 갱신하는 다양한 방법들의 일례를 설명하기 위한 흐름도들이다. 특히, 도 5는 본 개시의 일 실시예에 따른 지도 영역이 존재하는 경우 3차원 지도를 갱신하는 방법의 일례를 설명하기 위한 흐름도이다.
도 5를 참조하면, 프로세서(130)는 스캔 데이터를 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정한다(S500). 사용자의 위치를 추정하기 위해 사용되는 스캔 데이터는 적어도 하나의 쿼리 이미지, 점군 데이터 또는 카메라 데이터 중 적어도 하나가 포함될 수 있다. 적어도 하나의 쿼리 이미지의 경우 프로세서(130)는 적어도 하나의 쿼리 이미지로부터 특징점 데이터를 검출하고, 검출된 특징점 데이터에 매칭되는 특징점 데이터를 갖는 3차원 지도 상의 지도 영역을 검출할 수 있다. 이러한 경우 프로세서(130)는 검출된 지도 영역에 대응하는 3차원 지도 상의 위치를 사용자 위치 데이터로서 추정할 수 있다. 점군 데이터의 경우 프로세서(130)는 해당 점군 데이터에 매칭되는 점군 데이터를 갖는 3차원 지도 상의 지도 영역을 검출하고, 검출된 지도 영역에 대응하는 3차원 지도 상의 위치를 사용자 위치 데이터로서 추정할 수도 있다. 카메라 데이터의 경우 프로세서(130)는 카메라 데이터에 해당하는 카메라 포즈 데이터, GPS 데이터 또는 IMU 데이터 등을 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정할 수 있다. 다양한 실시예에서 프로세서(130)는 VPS를 이용하여 사용자 위치 데이터를 추정할 수 있으나, 이에 한정되지 않는다.
프로세서(130)는 추정된 사용자 위치 데이터에 해당하는 지도 영역의 기 저장된 레퍼런스 이미지 중 상기 스캔 데이터의 적어도 하나의 쿼리 이미지와 매칭되는 레퍼런스 이미지를 결정한다(S510). 다시 말해서, 프로세서(130)는 앞서 설명한 바와 같이 기 제작된 3차원 지도의 공간 데이터의 레퍼런스 이미지 중 적어도 하나의 쿼리 이미지와 매칭되는 레퍼런스 이미지를 결정할 수 있다.
프로세서(130)는 결정된 레퍼런스 이미지 및 적어도 하나의 쿼리 이미지 각각의 특징점 데이터 간의 차이 값(reprojection error)을 결정한다(S520). 구체적으로, 프로세서(130)는 특징점 검출 알고리즘 또는 인공지능 모델을 이용하여 쿼리 이미지 및 레퍼런스 이미지 각각으로부터 특징점 데이터를 검출하고, 검출된 특징점 데이터 간의 차이 값을 산출한 후 산출된 차이 값을 제1 영역과 지도 영역 사이의 차이 값으로써 결정할 수 있다. 예를 들어, 프로세서(130)는 쿼리 이미지와 레퍼런스 이미지 간의 매칭되는 특징점 좌표 사이의 차이 값을 제1 영역과 지도 영역 사이의 차이 값으로써 결정할 수 있다.
도 6은 본 개시의 다양한 실시예에 따른 지도 영역이 존재하는 경우 3차원 지도를 갱신하는 방법의 일례를 설명하기 위한 흐름도이다.
도 6을 참조하면, 프로세서(130)는 스캔 데이터를 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정한다(S600). 사용자 위치 데이터를 추정하는 방식은 도 5의 S500에서 설명한 바와 같은 동일한 방식이 이용될 수 있다.
프로세서(130)는 추정된 사용자 위치 데이터에서 지도 영역에 대한 촬영 이미지를 획득한다(S610). 구체적으로, 프로세서(130)는 3차원 지도 상의 사용자 위치 데이터에 가상 카메라를 배치하고, 배치된 가상 카메라를 이용하여 지도 영역을 촬영하여 적어도 하나의 촬영 이미지를 획득할 수 있다.
프로세서(130)는 촬영 이미지와 적어도 하나의 쿼리 이미지를 픽셀 단위로 비교하여 차이 값을 결정한다(S620). 구체적으로, 프로세서(130)는 촬영 이미지의 각 픽셀과 적어도 하나의 쿼리 이미지의 각 픽셀을 비교하여 픽셀 간의 차이 값을 산출하고, 산출된 차이 값의 평균 값을 제1 영역과 지도 영역 사이의 차이 값으로써 결정할 수 있다. 실시예에서는 평균 값을 산출하는 것으로 설명하였으나, 이에 한정되지 않으며, 최대값, 최소값 또는 중앙값 등이 차이 값으로 산출될 수 있다.
도 7은 본 개시의 다양한 실시예에 따른 지도 영역이 존재하는 경우 3차원 지도를 갱신하는 방법의 일례를 설명하기 위한 흐름도이다.
도 7을 참조하면, 프로세서(130)는 스캔 데이터를 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정하고(S700), 추정된 사용자 위치 데이터에서 지도 영역에 대한 촬영 이미지를 획득한다(S710). 사용자 위치 데이터를 추정하고, 촬영 이미지를 획득하는 방식은 도 5의 S500 및 도 6의 S600~S610에서 설명한 바와 같은 동일한 방식이 이용될 수 있다.
프로세서(130)는 촬영 이미지와 적어도 하나의 쿼리 이미지 각각을 섹션(neighborhood)별로 비교하여 차이 값을 결정한다(S720). 구체적으로, 프로세서(130)는 촬영 이미지와 적어도 하나의 쿼리 이미지 각각을 블록 또는 섹션별로 나눠서 처리하는 알고리즘(neighborhood)을 이용할 수 있다. 프로세서(130)는 이와 같이 처리된 블록 또는 섹션별로 차이 값을 산출하고, 산출된 블록별 또는 섹션별 차이 값의 평균 값을 산출한 후 산출된 평균 값을 제1 영역과 지도 영역 사이의 차이 값으로써 결정할 수 있다. 실시예에서는 평균 값을 산출하는 것으로 설명하였으나, 이에 한정되지 않으며, 최대값, 최소값 또는 중앙값 등이 차이 값으로 산출될 수 있다.
도 8은 본 개시의 다양한 실시예에 따른 지도 영역이 존재하는 경우 3차원 지도를 갱신하는 방법의 일례를 설명하기 위한 흐름도이다.
도 8을 참조하면, 프로세서(130)는 프로세서(130)는 스캔 데이터를 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정한다(S800). 사용자 위치 데이터를 추정하는 방식은 도 5의 S500에서 설명한 바와 같은 동일한 방식이 이용될 수 있다.
프로세서(130)는 추정된 사용자 위치 데이터에 해당하는 지도 영역의 기 저장된 점군 데이터 중 스캔 데이터의 점군 데이터와 매칭되는 점군 데이터를 결정한다(S810). 다시 말해서, 프로세서(130)는 앞서 설명한 바와 같이 기 제작된 3차원 지도의 공간 데이터의 점군 데이터 중 스캔 데이터의 점군 데이터와 매칭되는 공간 데이터의 점군 데이터를 결정할 수 있다.
프로세서(130)는 결정된 점군 데이터와 스캔 데이터의 점군 데이터를 비교하여 결정된 점군 데이터와 스캔 데이터의 점군 데이터 간의 차이 값을 결정한다(S820). 구체적으로, 프로세서(130)는 결정된 점군 데이터와 스캔 데이터의 점군 데이터 간의 매칭되는 점군 좌표 사이의 차이 값을 산출하고, 산출된 차이 값을 제1 영역과 지도 영역 사이의 차이 값으로써 결정할 수 있다.
도 9는 본 개시의 다양한 실시예에 따른 지도 영역이 존재하는 경우 3차원 지도를 갱신하는 방법의 일례를 설명하기 위한 흐름도이다.
도 9를 참조하면, 프로세서(130)는 스캔 데이터에 기반하여 점군 데이터를 생성한다(S900). 여기서, 스캔 데이터는 쿼리 이미지뿐만 아니라, 깊이 맵 이미지, 카메라 포즈 데이터, GPS 데이터 또는 IMU 데이터 등을 포함할 수 있다. 구체적으로, 프로세서(130)는 복수의 쿼리 이미지 및 깊이 맵 이미지로부터 점군 데이터를 검출할 수 있다. 여기서, 복수의 쿼리 이미지는 제1 영역을 다양한 위치 및 방향에서 촬영한 촬영 이미지들 또는 동영상을 의미할 수 있다. 이를 위해 프로세서(130)는 점군 데이터 검출을 위한 인공지능 모델을 이용할 수 있다. 다양한 실시예에서 프로세서(130)는 SLAM 알고리즘을 이용하여 점군 데이터를 생성할 수 있다.
프로세서(130)는 스캔 데이터를 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정한다(S910). 사용자 위치 데이터를 추정하는 방식은 도 5의 S500에서 설명한 바와 같은 동일한 방식이 이용될 수 있다.
프로세서(130)는 추정된 사용자 위치 데이터에 해당하는 지도 영역의 기 저장된 점군 데이터 중 생성된 점군 데이터와 매칭되는 점군 데이터를 결정한다(S920). 다시 말해서, 프로세서(130)는 앞서 설명한 바와 같이 기 제작된 3차원 지도의 공간 데이터의 점군 데이터 중 생성된 점군 데이터와 매칭되는 공간 데이터의 점군 데이터를 결정할 수 있다.
프로세서(130)는 결정된 점군 데이터와 생성된 점군 데이터를 비교하여 결정된 점군 데이터와 생성된 점군 데이터 간의 차이 값을 결정한다(S930). 구체적으로, 프로세서(130)는 결정된 점군 데이터와 생성된 점군 데이터 간의 매칭되는 점군 좌표 사이의 차이 값을 산출하고, 산출된 차이 값을 제1 영역과 지도 영역 사이의 차이 값으로써 결정할 수 있다.
제시된 실시예에서는 도 5 내지 도 9에서 스캔 데이터를 이용하여 3차원 지도 상의 사용자 위치 데이터를 추정하는 과정을 설명하였으나, 이에 한정되지 않으며, 3차원 지도 상의 지도 영역에 대한 존재 여부를 결정하기 위해 사용자 위치 데이터를 먼저 추정할 경우 해당 추정 과정들(S500, S600, S700, S800, S910)은 생략될 수 있다.
다시 도 4를 참조하면, 프로세서(130)는 결정된 차이 값에 기반하여 지도 영역을 갱신한다(S420). 구체적으로, 프로세서(130)는 도 4에서 설명한 제1 영역과 지도 영역 사이의 차이 값을 이용하여 지도 영역을 갱신할 수 있다. 예를 들어, 프로세서(130)는 해당 차이 값을 이용하여 지도 영역의 점군 데이터(점군 좌표값) 또는 지도 영역 안의 각 객체의 특징점 데이터(특징점 좌표값)를 정정(또는 갱신)함으로써, 3차원 지도의 지도 영역을 갱신할 수 있다.
다양한 실시예에서 프로세서(130)는 결정된 차이 값이 기 설정된 임계 값보다 더 크면 3차원 지도의 지도 영역 갱신에 대한 동작을 수행하지 않을 수도 있다. 예를 들어, 제1 영역에 사람 또는 자동차 등과 같이 가변적 객체가 존재하는 경우 제1 지역과 지도 영역 간의 차이가 크게 나타날 수 있다. 이러한 경우 3차원 지도 갱신을 위한 동작이 배제될 수도 있다.
지도 영역에 존재하지 않으면 프로세서(130)는 사용자 장치(10)로부터 수신된 스캔 데이터에 기반하여 3차원 지도 상에 지도 영역을 생성한다(S430). 구체적으로, 프로세서(130)는 스캔 데이터에 기반하여 3차원 지도 상의 사용자 위치 데이터를 추정하고, 추정된 사용자 위치 데이터에 기반하여 3차원 지도 상에 지도 영역을 생성할 수 있다. 예를 들어, 프로세서(130)는 스캔 데이터의 GPS 데이터를 이용하여 사용자 위치 데이터를 추정할 수 있다. 다양한 실시예에서 3차원 지도 상의 지도 영역이 존재하는 위치에서 지도 영역이 존재하지 않은 위치로 이동하거나, 3차원 지도 상의 지도 영역이 존재하지 않은 위치에서 지도 영역이 존재하는 위치로 이동하는 경우 프로세서(130)는 지도 영역이 존재하는 위치에서 추정한 카메라 포즈 데이터와 이동 중에 획득한 IMU 데이터를 사용자 장치(130)로부터 획득하고, 획득된 카메라 포즈 데이터 및 IMU 데이터에 기반하여 3차원 지도 상의 사용자 위치 데이터를 추정할 수 있다. 프로세서(130)는 이와 같이 추정된 사용자 위치 데이터에 기반하여 앞서 설명한 바와 같이 라이더 스캔, SFM 알고리즘 또는 SLAM 알고리즘을 이용하여 3차원 지도 상의 지도 영역을 생성할 수 있으나, 이에 한정되지 않는다.
다시 도 3을 참조하면, 프로세서(130)는 지도 영역의 갱신 또는 생성에 대하여 사용자의 기여도에 따라 제공될 리워드를 결정한다(S320). 구체적으로, 프로세서(130)는 지도 영역의 갱신 또는 생성에 대하여 사용자의 기여도를 결정하고, 결정된 기여도에 따라 제공될 리워드를 결정할 수 있다. 이와 같이 결정된 리워드에 대한 정보(즉, 리워드 정보)는 사용자 장치(10) 또는 서드 파티의 서버 또는 장치로 제공될 수 있다. 이에 대해서 도 10 내지 도 13을 참조하여 하기에서 구체적으로 설명하도록 한다.
도 10 내지 도 13는 본 개시의 실시예에 따른 제공될 기여도를 결정하는 다양한 방법들의 일례를 설명하기 위한 흐름도들이다. 특히, 도 10은 본 개시의 일 실시예에 따른 기여도 결정 및 기여도에 따라 리워드를 결정하는 방법의 일례를 설명하기 위한 흐름도이다.
도 10을 참조하면, 프로세서(130)는 결정된 차이 값에 기반하여 사용자의 기여도를 결정하고(S1000), 결정된 기여도에 해당하는 리워드를 제공될 리워드로서 결정한다(S1010). 구체적으로, 프로세서(130)는 앞서 도 4 내지 도 9에서 설명한 결정된 차이 값의 크기에 비례하여 사용자의 기여도를 결정할 수 있다. 예를 들어, 프로세서(130)는 차이 값이 최대값에 해당하는 사용자에게 가장 높은 기여도를 결정하고, 차이 값이 최소값에 해당하는 사용자에게 가장 낮은 기여도를 결정할 수 있다. 프로세서(130)는 이와 같이 결정된 기여도에 따라 리워드가 차등적으로 제공되거나, 추가적으로 제공될 수 있도록 리워드의 종류 또는 양 등을 결정할 수 있다. 예를 들어, 프로세서(130)는 가장 높은 기여도를 갖는 사용자에게 가장 큰 리워드가 제공되거나, 추가적으로 더 많은 리워드가 제공될 수 있도록 리워드의 종류 또는 양 등을 결정할 수도 있다.
도 11은 본 개시의 다양한 실시예에 따른 기여도 결정 및 기여도에 따라 리워드를 결정하는 방법의 일례를 설명하기 위한 흐름도이다.
도 11을 참조하면, 프로세서(130)는 3차원 지도 상에서 기 설정된 지도 영역별 중요도에 기반하여 사용자의 기여도를 결정하고(S1100), 결정된 기여도에 해당하는 리워드를 제공될 리워드로서 결정한다(S1110). 구체적으로, 프로세서(130)는 사용자 장치(10)에 의해서 갱신되거나 생성된 지도 지역에 대하여 기 설정된 중요도에 비례하여 사용자의 기여도를 결정할 수 있다. 예를 들어, 갱신 또는 생성된 지도 영역의 중요도가 높다고 설정된 경우 프로세서(130)는 사용자에게 높은 기여도를 결정하고, 갱신 또는 생성된 지도 영역의 중요도가 낮다고 설정된 경우 사용자에게 낮은 기여도를 결정할 수 있다. 프로세서(130)는 결정된 기여도에 따라 리워드가 차등적으로 제공되거나, 추가적으로 제공될 수 있도록 리워드의 종류 또는 양 등을 결정할 수 있다.
도 12는 본 개시의 다양한 실시예에 따른 기여도 결정 및 기여도에 따라 리워드를 결정하는 방법의 일례를 설명하기 위한 흐름도이다.
도 12를 참조하면, 프로세서(130)는 3차원 지도의 복수의 지도 영역 각각에 접속한 사용자 장치(10)의 접속량에 기반하여 사용자의 기여도를 결정하고(S1200), 결정된 기여도에 해당하는 리워드를 제공될 리워드로서 결정한다(S1210). 구체적으로, 프로세서(130)는 사용자 장치(10)가 3차원 지도의 각 지도 영역에 접속한 접속량에 비례하여 사용자의 기여도를 결정할 수 있다. 예를 들어, 3차원 지도는 사용자 기여도를 결정하기 위해 복수의 지도 영역으로 구분될 수 있다. 프로세서(130)는 각 지도 영역에 가장 많이 접속한 사용자 장치(10)의 사용자에게 가장 높은 기여도를 결정할 수 있다. 프로세서(130)는 결정된 기여도에 따라 리워드가 차등적으로 제공되거나, 추가적으로 제공될 수 있도록 리워드의 종류 또는 양 등을 결정할 수 있다.
도 13은 본 개시의 다양한 실시예에 따른 기여도 결정 및 기여도에 따라 리워드를 결정하는 방법의 일례를 설명하기 위한 흐름도이다.
도 13을 참조하면, 프로세서(130)는 3차원 지도의 갱신일로부터의 기간 간격에 기반하여 사용자의 기여도를 결정하고(S1300), 결정된 기여도에 해당하는 리워드를 제공될 리워드로서 결정한다(S1310). 구체적으로, 프로세서(130)는 3차원 지도의 갱신일로부터 사용자 장치(10)에 의해서 지도 영역이 갱신 또는 생성된 날까지의 기간 간격에 비례하여 사용자의 기여도를 결정할 수 있다. 예를 들어, 3차원 지도의 갱신일로부터 지도 영역이 갱신 또는 생성된 날까지의 기간 간격이 가장 큰 경우 프로세서(130)는 사용자에게 가장 큰 기여도를 결정할 수 있다. 프로세서(130)는 결정된 기여도에 따라 리워드가 차등적으로 제공되거나, 추가적으로 제공될 수 있도록 리워드의 종류 또는 양 등을 결정할 수 있다.
프로세서(130)는 이와 같이 결정된 리워드의 종류 또는 양 등과 사용자 정보 포함하는 리워드 정보를 사용자 장치(10) 또는 서브 파티의 서버 등으로 전달할 수 있다.
다양한 실시예에서 프로세서(130)는 다수의 사용자가 특정 지역에 해당하는 3차원 지도의 지도 영역을 생성한 경우 각 사용자가 생성한 지도 영역을 비교하여 다수의 사용자와 비슷한 결과를 낸 사용자의 기여도를 높게 결정할 수 있다.
다양한 실시예에서 추정된 사용자 위치 데이터에 해당하는 지도 영역이 존재하다가 다음에 추정된 사용자 위치 데이터에 해당하는 지도 영역이 존재하지 않은 경우 프로세서(130)는 추정된 사용자 위치 데이터가 3차원 지도 상에 존재하지 않는지를 결정하고, 이에 따라 3차원 지도 상의 새로운 지도 영역을 생성할 수 있다. 구체적으로, 특정 시점에 해당하는 제1 시점에서 프로세서(130)는 사용자 위치 데이터를 추정하고, 추정된 사용자 위치 데이터에 해당하는 지도 영역이 존재한다고 결정할 수 있다. 이어서, 제1 시점의 다음 시점에 해당하는 제2 시점에서 프로세서(130)는 사용자 위치 데이터를 추정하고, 추정된 사용자 위치 데이터에 해당하는 지도 영역이 존재하지 않는다고 결정할 수 있다. 이러한 경우, 프로세서(130)는 제1 시점과 제2 시점 사이의 시간 간격 및 해당 시간 간격 동안 획득된 제1 시점의 사용자 위치 데이터 및 IMU 데이터를 이용하여 제2 시점에서 사용자 위치 데이터를 추정하고, 제2 시점에서 추정된 사용자 위치 데이터가 3차원 지도 상에 존재하지 않는다고 결정할 수 있다. 예를 들어, 추정된 사용자 위치 데이터에 해당하는 영역에 대한 공간 데이터가 존재하지 않거나, 공간 데이터에 포함된 GPS 데이터와 제2 시점에서 획득된 스캔 데이터의 GPS가 대응하지 않으면 프로세서(130)는 추정된 사용자 위치 데이터가 3차원 지도 상에 존재하지 않는다고 결정할 수 있다.
프로세서(130)는 제2 시점에서 추정된 사용자 위치 데이터 및 제2 시점에서 획득된 스캔 데이터에 기반하여 3차원 지도 상의 새로운 지도 영역을 생성할 수 있다. 나아가, 프로세서(130)는 사용자 장치(130)로부터 수신된 스캔 데이터에 의해 생성된 지도 영역의 크기에 비례하여 사용자의 기여도를 결정하고, 결정된 기여도에 따라 리워드를 사용자 장치(10)로 제공할 수 있다.
이처럼, 3차원 지도의 갱신 또는 생성을 위해 3차원 지도에 접속하는 복수의 사용자 장치가 3차원 지도의 갱신 또는 생성에 참여하도록 함으로써, 빠르게 변화하는 환경에 따른 3차원 지도의 갱신 또는 생성을 용이하게 수행할 수 있고, 이를 위해 소요되는 시간 및 자원 등을 최소화할 수 있다.
도 14는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도이다.
본 개시가 일반적으로 컴퓨팅 장치에 의해 구현될 수 있는 것으로 전술되었지만, 당업자라면 본 개시가 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어 및/또는 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로써 구현될 수 있다는 것을 잘 알 것이다.
일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 개시의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드헬드(handheld) 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.
본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.
컴퓨터 판독가능 전송 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. 피변조 데이터 신호라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 컴퓨터 판독가능 전송 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들 중 임의의 것의 조합도 역시 컴퓨터 판독가능 전송 매체의 범위 안에 포함되는 것으로 한다.
컴퓨터(1102)를 포함하는 본 개시의 여러가지 측면들을 구현하는 예시적인 환경(1100)이 나타내어져 있으며, 컴퓨터(1102)는 처리 장치(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 시스템 메모리(1106)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1104)에 연결시킨다. 처리 장치(1104)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다. 듀얼 프로세서 및 기타 멀티프로세서 아키텍처도 역시 처리 장치(1104)로서 이용될 수 있다.
시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1112)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다.
컴퓨터(1102)는 또한 내장형 하드 디스크 드라이브(HDD)(1114)(예를 들어, EIDE, SATA) -이 내장형 하드 디스크 드라이브(1114)는 또한 적당한 섀시(도시 생략) 내에서 외장형 용도로 구성될 수 있음-, 자기 플로피 디스크 드라이브(FDD)(1116)(예를 들어, 이동식 디스켓(1118)으로부터 판독을 하거나 그에 기록을 하기 위한 것임), 및 광 디스크 드라이브(1120)(예를 들어, CD-ROM 디스크(1122)를 판독하거나 DVD 등의 기타 고용량 광 매체로부터 판독을 하거나 그에 기록을 하기 위한 것임)를 포함한다. 하드 디스크 드라이브(1114), 자기 디스크 드라이브(1116) 및 광 디스크 드라이브(1120)는 각각 하드 디스크 드라이브 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126) 및 광 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 연결될 수 있다. 외장형 드라이브 구현을 위한 인터페이스(1124)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 그 둘 다를 포함한다.
이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비휘발성 저장을 제공한다. 컴퓨터(1102)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다. 상기에서의 컴퓨터 판독가능 매체에 대한 설명이 HDD, 이동식 자기 디스크, 및 CD 또는 DVD 등의 이동식 광 매체를 언급하고 있지만, 당업자라면 집 드라이브(zip drive), 자기 카세트, 플래쉬 메모리 카드, 카트리지, 기타 등등의 컴퓨터에 의해 판독가능한 다른 유형의 매체도 역시 예시적인 운영 환경에서 사용될 수 있으며 또 임의의 이러한 매체가 본 개시의 방법들을 수행하기 위한 컴퓨터 실행가능 명령어를 포함할 수 있다는 것을 잘 알 것이다.
운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1112)에 캐싱될 수 있다. 본 개시가 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.
사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.
모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.
컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 워크스테이션, 컴퓨팅 디바이스 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1152) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1154)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)에의 유선 또는 무선 통신을 용이하게 해줄 수 있으며, 이 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그에 설치되어 있는 무선 액세스 포인트를 포함하고 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함할 수 있거나, WAN(1154) 상의 통신 컴퓨팅 디바이스에 연결되거나, 또는 인터넷을 통하는 등, WAN(1154)을 통해 통신을 설정하는 기타 수단을 갖는다. 내장형 또는 외장형 및 유선 또는 무선 장치일 수 있는 모뎀(1158)은 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크화된 환경에서, 컴퓨터(1102)에 대해 설명된 프로그램 모듈들 또는 그의 일부분이 원격 메모리/저장 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결이 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.
컴퓨터(1102)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다.
Wi-Fi(Wireless Fidelity)는 유선 없이도 인터넷 등으로의 연결을 가능하게 해준다. Wi-Fi는 이러한 장치, 예를 들어, 컴퓨터가 실내에서 및 실외에서, 즉 기지국의 통화권 내의 아무 곳에서나 데이터를 전송 및 수신할 수 있게 해주는 셀 전화와 같은 무선 기술이다. Wi-Fi 네트워크는 안전하고 신뢰성 있으며 고속인 무선 연결을 제공하기 위해 IEEE 802.11(a, b, g, 기타)이라고 하는 무선 기술을 사용한다. 컴퓨터를 서로에, 인터넷에 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결시키기 위해 Wi-Fi가 사용될 수 있다. Wi-Fi 네트워크는 비인가 2.4 및 5GHz 무선 대역에서, 예를 들어, 11Mbps(802.11a) 또는 54 Mbps(802.11b) 데이터 레이트로 동작하거나, 양 대역(듀얼 대역)을 포함하는 제품에서 동작할 수 있다.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명에서 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학장들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 소프트웨어로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 개시의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 개시의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 제조 물품은 임의의 컴퓨터-판독가능 저장장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 저장매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 여기서 제시되는 다양한 저장 매체는 정보를 저장하기 위한 하나 이상의 장치 및/또는 다른 기계-판독가능한 매체를 포함한다.
제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 개시의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.
제시된 실시예들에 대한 설명은 임의의 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
상기와 같이 발명의 실시를 위한 최선의 형태에서 관련 내용을 기술하였다.
크라우드 소싱 기반으로 3차원 지도를 갱신하기 위한 시스템, 장치 등에서 사용될 수 있다.

Claims (21)

  1. 컴퓨팅 장치에 의해 수행되는, 크라우드 소싱 기반 3차원 지도 갱신 방법으로서,
    사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하는 단계;
    상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 단계; 및
    상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  2. 제1항에 있어서, 상기 스캔 데이터는,
    상기 제1 영역의 적어도 일부를 나타내는 적어도 하나의 쿼리 이미지, 점군(point cloud) 데이터 및 카메라 데이터 중 적어도 하나를 포함하고,
    상기 카메라 데이터는, 상기 사용자 장치의 카메라 포즈 데이터, GPS 데이터 또는 IMU 데이터 중 적어도 하나를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  3. 제2항에 있어서, 상기 수신된 스캔 데이터 및 상기 3차원 지도를 이용하여 상기 지도 영역을 갱신 또는 생성하는 단계는,
    상기 수신된 스캔 데이터 및 상기 3차원 지도를 이용하여 상기 3차원 지도 상에 상기 지도 영역이 존재하는지를 결정하는 단계;
    상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계; 및
    상기 결정된 차이 값에 기반하여 상기 지도 영역을 갱신하는 단계를 포함하고,
    상기 3차원 지도 상에 상기 지도 영역이 존재하지 않으면 상기 사용자 장치로부터 수신된 스캔 데이터에 기반하여 상기 3차원 지도 상에 상기 지도 영역을 생성하는 단계를 더 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  4. 제3항에 있어서, 상기 3차원 지도 상에 상기 지도 영역이 존재하는지를 결정하는 단계는,
    상기 스캔 데이터로부터 특징점 데이터를 검출하는 단계; 및
    상기 검출된 특징점 데이터와 대응하는 상기 지도 영역이 존재하는지를 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  5. 제4항에 있어서, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는,
    상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터 데이터를 추정하는 단계;
    상기 추정된 사용자 위치 데이터 데이터에 해당하는 상기 지도 영역의 기 저장된 레퍼런스 이미지 중 상기 스캔 데이터의 적어도 하나의 쿼리 이미지와 매칭되는 레퍼런스 이미지를 결정하는 단계; 및
    상기 적어도 하나의 쿼리 이미지 및 상기 결정된 레퍼런스 이미지 각각의 특징점 데이터 간의 차이 값(reprojection error)을 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  6. 제4항에 있어서, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는,
    상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계;
    상기 추정된 사용자 위치 데이터에서 상기 지도 영역에 대한 촬영 이미지를 획득하는 단계; 및
    상기 촬영 이미지와 상기 적어도 하나의 쿼리 이미지를 픽셀 단위로 비교하여 상기 차이 값을 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  7. 제4항에 있어서, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는,
    상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계;
    상기 추정된 사용자 위치 데이터에서 상기 지도 영역에 대한 촬영 이미지를 획득하는 단계; 및
    상기 촬영 이미지와 상기 적어도 하나의 쿼리 이미지 각각을 섹션(neighborhood)별로 비교하여 상기 차이 값을 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  8. 제4항에 있어서, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는,
    상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계;
    상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역의 기 저장된 점군 데이터 중 상기 스캔 데이터의 점군 데이터와 매칭되는 점군 데이터를 결정하는 단계; 및
    상기 결정된 점군 데이터와 상기 스캔 데이터의 점군 데이터를 비교하여 상기 결정된 점군 데이터와 상기 스캔 데이터의 점군 데이터 간의 차이 값을 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  9. 제4항에 있어서, 상기 3차원 지도 상에 상기 지도 영역이 존재하면 상기 제1 영역과 상기 지도 영역을 비교하여 상기 제1 영역과 상기 지도 영역 사이의 차이 값을 결정하는 단계는,
    상기 스캔 데이터에 기반하여 점군 데이터를 생성하는 단계;
    상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계;
    상기 추정된 사용자 위치 데이터에 대응하는 점군 데이터 중 상기 생성된 점군 데이터와 매칭되는 점군 데이터를 결정하는 단계; 및
    상기 결정된 점군 데이터와 상기 생성된 점군 데이터를 비교하여 상기 결정된 점군 데이터와 상기 생성된 점군 데이터 간의 차이 값을 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  10. 제3항에 있어서, 상기 3차원 지도 상에 상기 지도 영역이 존재하는지를 결정하는 단계는,
    상기 스캔 데이터를 이용하여 상기 3차원 지도 상의 사용자 위치 데이터를 추정하는 단계; 및
    상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재하는지를 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  11. 제10항에 있어서, 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재하는지를 결정하는 단계는,
    상기 추정된 사용자 위치 데이터에서 가상의 카메라가 바라보는 방향에 해당하는 영역에 대한 공간 데이터가 존재하는지를 결정하는 단계인,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  12. 제11항에 있어서, 상기 가상의 카메라가 바라보는 방향에 해당하는 영역에 대한 공간 데이터가 존재하는지를 결정하는 단계는,
    상기 공간 데이터가 존재하면 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재한다고 결정하는 단계; 및
    상기 공간 데이터가 존재하지 않으면 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재하지 않는다고 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  13. 제11항에 있어서, 상기 가상의 카메라가 바라보는 방향에 해당하는 영역에 대한 공간 데이터가 존재하는지를 결정하는 단계는,
    상기 공간 데이터가 존재하고, 상기 공간 데이터에 포함된 GPS 데이터와 상기 스캔 데이터에 포함된 상기 카메라 데이터의 상기 GPS 데이터가 대응하면 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재한다고 결정하는 단계; 및
    상기 공간 데이터가 존재하고, 상기 공간 데이터에 포함된 GPS 데이터와 상기 스캔 데이터에 포함된 상기 카메라 데이터의 상기 GPS 데이터가 대응하지 않으면 상기 추정된 사용자 위치 데이터에 해당하는 상기 지도 영역이 존재하지 않는다고 결정하는 단계를 더 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  14. 제6항에 있어서,
    제1 시점에서 추정된 사용자 위치 데이터에 해당하는 지도 영역이 존재하고, 상기 제1 시점의 다음 시점에 해당하는 제2 시점에서 추정된 사용자 위치 데이터에 해당하는 지도 영역이 존재하지 않으면 상기 제1 시점과 상기 제2 시점 사이의 시간 간격 및 상기 시간 간격 동안 획득된 상기 제1 시점의 사용자 위치 데이터 및 IMU 데이터를 이용하여 상기 제2 시점에서 추정된 사용자 위치 데이터가 상기 3차원 지도 상에 존재하지 않는다고 결정하는 단계; 및
    상기 제2 시점에서 추정된 사용자 위치 데이터 및 상기 제2 시점에서 획득된 스캔 데이터에 기반하여 상기 3차원 지도 상에 새로운 지도 영역을 생성하는 단계를 더 포함하고,
    상기 사용자 위치 데이터는, 상기 사용자 장치와 연관된 카메라의 위치 및 방향을 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  15. 제3항에 있어서, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계는,
    상기 결정된 차이 값에 기반하여 상기 사용자의 기여도를 산정하는 단계; 및
    상기 산정된 기여도에 해당하는 리워드를 상기 제공될 리워드로서 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  16. 제3항에 있어서, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계는,
    상기 3차원 지도 상에서 기 설정된 지도 영역별 중요도에 기반하여 상기 사용자의 기여도를 산정하는 단계; 및
    상기 산정된 기여도에 해당하는 리워드를 상기 제공될 리워드로서 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  17. 제3항에 있어서, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계는,
    상기 3차원 지도의 복수의 지도 영역 각각에 접속한 사용자의 접속량에 기반하여 상기 사용자의 기여도를 산정하는 단계; 및
    상기 산정된 기여도에 해당하는 리워드를 상기 제공될 리워드로서 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  18. 제3항에 있어서, 상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계는,
    상기 3차원 지도의 갱신일로부터의 기간 간격에 기반하여 상기 사용자의 기여도를 산정하는 단계; 및
    상기 산정된 기여도에 해당하는 리워드를 상기 제공될 리워드로서 결정하는 단계를 포함하는,
    크라우드 소싱 기반 3차원 지도 갱신 방법.
  19. 컴퓨터 판독가능 저장 매체 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서에서 실행되는 경우, 크라우딩 소싱 기반 3차원 지도 갱신을 위한 이하의 동작들을 수행하도록 하며, 상기 동작들은:
    사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하는 동작;
    상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 동작; 및
    상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 동작을 포함하는,
    컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
  20. 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행 시, 상기 컴퓨팅 장치로 하여금 크라우딩 소싱 기반 3차원 지도 갱신을 위한 방법을 수행하도록 하며, 상기 방법은:
    사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하는 단계;
    상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하는 단계; 및
    상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하는 단계를 포함하는,
    컴퓨터 판독가능 저장 매체.
  21. 크라우드 소싱 기반 3차원 지도 갱신을 위한 컴퓨팅 장치로서,
    적어도 하나의 프로세서; 및
    메모리를 포함하며,
    상기 적어도 하나의 프로세서는:
    사용자 장치로부터 상기 사용자 장치의 위치에 해당하는 제1 영역의 적어도 일부를 스캔하여 획득한 스캔 데이터를 수신하고,
    상기 수신된 스캔 데이터 및 기 제작된 3차원 지도를 이용하여 상기 제1 영역의 적어도 일부에 해당하는 상기 3차원 지도 상의 지도 영역을 갱신 또는 생성하고,
    상기 지도 영역의 갱신 또는 생성에 대하여 상기 사용자의 기여도에 따라 제공될 리워드를 결정하도록 구성되는,
    컴퓨팅 장치.
PCT/KR2023/015976 2022-10-17 2023-10-17 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치 WO2024085573A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0133301 2022-10-17
KR1020220133301A KR102669915B1 (ko) 2022-10-17 2022-10-17 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2024085573A1 true WO2024085573A1 (ko) 2024-04-25

Family

ID=90738084

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/015976 WO2024085573A1 (ko) 2022-10-17 2023-10-17 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치

Country Status (2)

Country Link
KR (2) KR102669915B1 (ko)
WO (1) WO2024085573A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210003834A (ko) * 2018-09-04 2021-01-12 후아웨이 테크놀러지 컴퍼니 리미티드 전송 제어 방법 및 장치
KR20210058659A (ko) * 2019-11-14 2021-05-24 이시완 모바일 디바이스를 이용한 보행도로 데이터 구축 방법 및 그 시스템
KR20210074180A (ko) * 2019-12-11 2021-06-21 한국과학기술원 크라우드소싱 환경에서 객체의 위치를 추정하는 시스템 및 방법
KR20210147855A (ko) * 2020-05-28 2021-12-07 네이버랩스 주식회사 시각 특징 맵 생성 방법 및 시스템
KR20220082433A (ko) * 2020-12-10 2022-06-17 한국과학기술원 크라우드소싱 환경에서 객체 정보 분석 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472317B1 (ko) 2015-09-18 2022-11-30 에스케이플래닛 주식회사 무선 신호 정보를 이용한 사용자 참여형 실내 지도 구축 방법 및 이를 위한 장치, 이를 수행하는 컴퓨터 프로그램을 기록한 기록 매체
KR20190078414A (ko) * 2017-12-26 2019-07-04 이중호 지도기반정보 활용 시스템 및 그 활용 방법
KR102103834B1 (ko) * 2019-11-12 2020-04-23 한국도로공사 고정밀 전자지도 갱신을 위한 객체 변화 탐지 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210003834A (ko) * 2018-09-04 2021-01-12 후아웨이 테크놀러지 컴퍼니 리미티드 전송 제어 방법 및 장치
KR20210058659A (ko) * 2019-11-14 2021-05-24 이시완 모바일 디바이스를 이용한 보행도로 데이터 구축 방법 및 그 시스템
KR20210074180A (ko) * 2019-12-11 2021-06-21 한국과학기술원 크라우드소싱 환경에서 객체의 위치를 추정하는 시스템 및 방법
KR20210147855A (ko) * 2020-05-28 2021-12-07 네이버랩스 주식회사 시각 특징 맵 생성 방법 및 시스템
KR20220082433A (ko) * 2020-12-10 2022-06-17 한국과학기술원 크라우드소싱 환경에서 객체 정보 분석 방법 및 장치

Also Published As

Publication number Publication date
KR102669915B1 (ko) 2024-05-28
KR20240053331A (ko) 2024-04-24
KR20240082282A (ko) 2024-06-10

Similar Documents

Publication Publication Date Title
US9558559B2 (en) Method and apparatus for determining camera location information and/or camera pose information according to a global coordinate system
CN103162682B (zh) 基于混合现实的室内路径导航方法
WO2017086561A1 (en) Landmark location determination
WO2018164460A1 (en) Method of providing augmented reality content, and electronic device and system adapted to the method
US20150206337A1 (en) Method and apparatus for visualization of geo-located media contents in 3d rendering applications
WO2023093217A1 (zh) 数据标注方法、装置、计算机设备、存储介质和程序
WO2017200662A1 (en) Predictor-corrector based pose detection
CN110349212B (zh) 即时定位与地图构建的优化方法及装置、介质和电子设备
WO2020042968A1 (zh) 一种对象信息的获取方法、装置以及存储介质
WO2020017890A1 (en) System and method for 3d association of detected objects
CN113936085B (zh) 三维重建方法和装置
WO2022080869A1 (ko) 이미지를 이용한 3차원 지도의 업데이트 방법 및 이를 지원하는 전자 장치
WO2020189909A2 (ko) 3d-vr 멀티센서 시스템 기반의 도로 시설물 관리 솔루션을 구현하는 시스템 및 그 방법
US20240161254A1 (en) Information processing apparatus, information processing method, and program
WO2024080791A1 (ko) 데이터셋을 생성하기 위한 방법
WO2022039476A1 (ko) 이미지를 이용한 위치 정보 획득 방법 및 이를 지원하는 전자 장치
WO2019198634A1 (ja) 学習データ生成装置、変化領域検出方法及びコンピュータプログラム
WO2024085573A1 (ko) 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치
WO2021086018A1 (ko) 3차원 증강현실 표시 방법
WO2022097766A1 (ko) 가려진 영역 복원 방법 및 장치
WO2022265347A1 (en) Three-dimensional scene recreation using depth fusion
WO2021177785A1 (ko) 위치 판단 방법 및 이를 지원하는 전자 장치
WO2024019373A1 (ko) 3차원 지도를 업데이트하기 위한 방법 및 장치
WO2020222373A1 (ko) 실내 측위 장치 및 방법
KR20210051002A (ko) 포즈 추정 방법 및 장치, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23880150

Country of ref document: EP

Kind code of ref document: A1