WO2025159261A1 - 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터 간의 매칭 포인트들의 수에 기반하여 선택된 정합 알고리즘을 이용하는 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터의 정합 방법 및 장치 - Google Patents
타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터 간의 매칭 포인트들의 수에 기반하여 선택된 정합 알고리즘을 이용하는 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터의 정합 방법 및 장치Info
- Publication number
- WO2025159261A1 WO2025159261A1 PCT/KR2024/013764 KR2024013764W WO2025159261A1 WO 2025159261 A1 WO2025159261 A1 WO 2025159261A1 KR 2024013764 W KR2024013764 W KR 2024013764W WO 2025159261 A1 WO2025159261 A1 WO 2025159261A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point cloud
- cloud data
- matching
- freedom
- degree
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Definitions
- Embodiments relate to a method and device for matching target point cloud data and source point cloud data, and to a method and device for matching target point cloud data and source point cloud data using a matching algorithm selected based on the number of matching points between the target point cloud data and the source point cloud data.
- a mapping device such as a mapping robot that includes a sensor unit such as a lidar sensor (i.e., the pose of the lidar sensor or 'lidar pose')
- a mobile device including a lidar sensor drives while recognizing the surrounding environment within a space using the lidar sensor.
- the lidar pose is not accurate, the surrounding environment cannot be accurately recognized, which may cause problems in the driving of the mobile device.
- the performance (accuracy, range, etc.) of the lidar sensor can be improved.
- Korean Patent Publication No. 10-2016-0116862 (published on October 10, 2016) discloses a device and method for automatically aligning building polygons on multiple maps.
- a data processing method can be provided that acquires source point cloud data and target point cloud data for a space, selects a matching algorithm for matching two point cloud data sets based on the number of matching feature pairs according to feature matching between the source point cloud data and the target point cloud data, and performs data matching using the selected matching algorithm.
- a first matching algorithm that matches point cloud data at a first degree of freedom level is selected from among a plurality of matching algorithms, but in a case where the number of matching feature pairs according to feature matching is large, a second matching algorithm that matches point cloud data at a second degree of freedom level higher than the first degree of freedom level is selected, thereby providing a data processing method that performs matching.
- a data processing method performed by a computer system comprising: acquiring first point cloud data for a space in which a moving object travels; acquiring second point cloud data generated based on sensing data from the moving object for the space; performing feature matching between the first point cloud data and the second point cloud data; selecting a matching algorithm for matching the second point cloud data to the first point cloud data based on the number of matching feature pairs between the first point cloud data and the second point cloud data acquired according to the feature matching; and matching the second point cloud data to the first point cloud data using the selected matching algorithm.
- the above data processing method may further include a step of estimating a pose of the moving object based on alignment of the second point cloud data with the first point cloud data.
- the first point cloud data may be at least a portion of source point cloud data for the space that serves as a reference for matching with the second point cloud data
- the second point cloud data may be at least a portion of target point cloud data for the space generated based on the sensing data acquired by a sensor unit of the mobile body while the mobile body moves through the space.
- the above selecting step may include, if the number of the matching feature pairs obtained through the feature matching is less than a first number, selecting a first matching algorithm that matches the second point cloud data to the first point cloud data at a first degree of freedom level among a plurality of matching algorithms, and if the number of the matching feature pairs obtained through the feature matching is greater than or equal to the first number, selecting a second matching algorithm that matches the second point cloud data to the first point cloud data at a second degree of freedom level higher than the first degree of freedom level among the plurality of matching algorithms.
- the first matching algorithm may be configured to match the second point cloud data to the first point cloud data by estimating the first degree of freedom level, which is 4 degrees of freedom (DoF), and the second matching algorithm may be configured to match the second point cloud data to the first point cloud data by estimating the second degree of freedom level, which is 6 degrees of freedom (6 DoF).
- DoF degrees of freedom
- a 4-degree-of-freedom pose can be estimated as the pose of the moving object
- a 6-degree-of-freedom pose can be estimated as the pose of the moving object
- the first matching algorithm may be configured to match the second point cloud data to the first point cloud data by estimating a first degree of freedom variable representing a rotation in the x-axis direction, a second degree of freedom variable representing a rotation in the y-axis direction, a third degree of freedom variable representing a rotation in the z-axis direction, and a fourth degree of freedom variable representing a rotation in the yaw direction as the four degrees of freedom, and the second matching algorithm may be configured to match the second point cloud data to the first point cloud data by further estimating a fifth degree of freedom variable representing a rotation in the roll direction and a sixth degree of freedom variable representing a rotation in the pitch direction in addition to the first to fourth degree of freedom variables as the six degrees of freedom.
- the first matching algorithm may be configured to match the second point cloud data to the first point cloud data under a first environmental condition that assumes that the first point cloud data and the second point cloud data are on the same plane.
- At least one of the first matching algorithm and the second matching algorithm may be configured to match the second point cloud data to the first point cloud data under a second environmental condition that the space is composed of at least one rectangular parallelepiped object.
- the above-described selecting step selects a matching algorithm that matches the second point cloud data to the first point cloud data by estimating a greater number of degree-of-freedom variables among a plurality of degree-of-freedom variables as the number of matching feature pairs obtained according to the feature matching increases, and the plurality of degree-of-freedom variables may include a first degree-of-freedom variable representing a rotation in the x-axis direction, a second degree-of-freedom variable representing a rotation in the y-axis direction, a third degree-of-freedom variable representing a rotation in the z-axis direction, a fourth degree-of-freedom variable representing a rotation in the yaw direction, a fifth degree-of-freedom variable representing a rotation in the roll direction, and a sixth degree-of-freedom variable representing a rotation in the pitch direction.
- the step of performing the feature matching may include: extracting a plurality of feature points from each of the first point cloud data and the second point cloud data; and determining matching feature pairs between the first point cloud data and the second point cloud data by matching feature points extracted from the first point cloud data with feature points extracted from the second point cloud data.
- the selecting step may include, if the number of the matching feature pairs is less than a first number, selecting a first matching algorithm that matches the second point cloud data to the first point cloud data at a first degree of freedom level from among a plurality of matching algorithms, and if the number of the matching feature pairs obtained through the feature matching is greater than or equal to the first number, selecting a second matching algorithm that matches the second point cloud data to the first point cloud data at a second degree of freedom level higher than the first degree of freedom level from among the plurality of matching algorithms, wherein the first number may be a value determined based on at least one of a ratio of first valid feature points among first feature points extracted from the first point cloud data and a ratio of second valid feature points among second feature points extracted from the second point cloud data, and a ratio of first matching points used to determine the matching feature pairs among the first valid feature points and a ratio of second matching points used to determine the matching feature pairs among the second valid feature points.
- a computer system for performing a data processing method comprising at least one processor configured to execute computer-readable instructions contained in a memory, wherein the at least one processor obtains first point cloud data for a space in which a moving object travels, obtains second point cloud data generated based on sensing data for the space from the moving object, performs feature matching between the first point cloud data and the second point cloud data, and selects a matching algorithm for matching the second point cloud data to the first point cloud data based on the number of matching feature pairs between the first point cloud data and the second point cloud data obtained according to the feature matching, and matches the second point cloud data to the first point cloud data using the selected matching algorithm.
- a matching algorithm having a level of freedom suitable for performing the matching can be selected according to the number of matching feature pairs between two target point cloud data sets.
- the accuracy of the estimated lidar pose can be improved accordingly.
- FIG. 1 illustrates a data processing method for matching target point cloud data (second point cloud data) to source point cloud data (first point cloud data) performed by a computer system according to one embodiment.
- FIG. 2 illustrates a computer system performing a data processing method according to one embodiment.
- FIG. 3 is a flowchart illustrating a data processing method for aligning second point cloud data with first point cloud data and estimating a pose of a moving object, according to one embodiment.
- FIG. 4 is a flowchart illustrating a method for selecting an appropriate matching algorithm based on the number of matching feature pairs between first point cloud data and second point cloud data, according to an example.
- FIG. 5 illustrates a method for selecting an appropriate matching algorithm and estimating the pose of a moving object based on the number of matching feature pairs between first point cloud data and second point cloud data, according to an example.
- Figure 6 illustrates source point cloud data and target point cloud data according to an example.
- FIG. 7 illustrates a method for extracting feature points (i.e., performing feature extraction) from each of source point cloud data and target point cloud data, according to an example.
- Figures 8 and 9 illustrate a method for selecting an appropriate matching algorithm based on the result of feature matching, according to an example.
- FIG. 1 illustrates a data processing method for matching target point cloud data (second point cloud data) to source point cloud data (first point cloud data) performed by a computer system according to one embodiment.
- target point cloud data (30) (hereinafter also referred to as second point cloud data (30)) generated based on sensing data (i.e., sensor data) for the corresponding space from a moving object, not shown, with respect to source point cloud data (20) (hereinafter also referred to as first point cloud data (20)) that serves as a reference for the space will be described.
- the space represented by the source point cloud data (20) and the target point cloud data (30) may represent an outdoor or indoor environment, or may represent a composite space combining indoors and outdoors.
- the source point cloud data (20) may be point cloud data for a space that serves as a reference for alignment.
- the source point cloud data (20) may be a pre-built 3D model for the space or data constituting such a 3D model.
- the source point cloud data (20) may be a pre-built 3D map for the space or data constituting such a 3D map.
- target point cloud data (30) may be input point cloud data that is the target of matching with source point cloud data (20).
- Such target point cloud data (30) may be generated based on sensor data acquired as space is sensed by a moving object (e.g., mapping equipment, etc.) including a sensor unit (e.g., lidar sensor, etc.).
- a moving object e.g., mapping equipment, etc.
- a sensor unit e.g., lidar sensor, etc.
- the source point cloud data (20) and the target point cloud data (30) can each represent a data set of point clouds.
- target point cloud data (30) can be aligned with source point cloud data (20) corresponding to a map of a space in which the target point cloud data (30) has been generated, and accordingly, the pose of the moving object (i.e., the lidar sensor included in the moving object) can be estimated.
- the alignment of the above data and estimation of the pose can be performed by a computer system (100).
- the computer system (100) may be a server or a computer system constituting a server.
- the computer system (100) may obtain target point cloud data (30) from a mobile object by communicating with the mobile object that acquires sensor data while traveling through space, or may generate target point cloud data (30) based on sensor data acquired from the mobile object.
- the computer system (100) may align the target point cloud data (30) with the source point cloud data (20) and estimate the pose of the mobile object.
- the computer system (100) may be a computer system included in a mobile body (e.g., a robot).
- the robot may have source point cloud data (20) and may be configured to generate target point cloud data (30) based on acquired sensor data, align the target point cloud data (30) with the source point cloud data (20), and estimate a pose.
- the computer system (100) may be a computer system included in a robot control system for controlling a mobile object (e.g., a robot).
- the robot control system can, similarly to the case of the server described above, align target point cloud data (30) with source point cloud data (20) and estimate the pose of the mobile object.
- feature matching may first be performed between the target point cloud data (30) and the source point cloud data (20).
- the number of matching feature pairs i.e., matching feature points
- the computer system (100) may select a matching algorithm to be used for aligning the target point cloud data (30) and the source point cloud data (20) based on the number of such matching feature pairs (i.e., matching feature points).
- the computer system (100) may align the target point cloud data (30) to the source point cloud data (20) using the selected matching algorithm.
- a matching algorithm may refer to a matching method, matching method, or matching process performed to match point cloud data sets.
- the computer system (100) can use this matching algorithm to estimate a certain degree of freedom to match point cloud data sets.
- feature points included in each matching feature pair between target point cloud data (30) and source point cloud data (20) can be estimated along with their degrees of freedom. These estimated degrees of freedom may vary depending on the type of matching algorithm selected by the computer system (100).
- the computer system (100) may select a matching algorithm for matching the target point cloud data (30) to the source point cloud data (20) based on the number of matching feature pairs between the source point cloud data (20) and the target point cloud data (30) obtained through feature matching (for example, based on a value based on the number). For example, the computer system (100) may select a matching algorithm that estimates a relatively lower degree of freedom when the number of matching feature pairs is less than a certain level, and may select a matching algorithm that estimates a relatively higher degree of freedom when the number of matching feature pairs is greater than a certain level.
- a matching algorithm that estimates a relatively lower degree of freedom when the number of matching feature pairs is less than a certain level
- a matching algorithm that estimates a relatively higher degree of freedom when the number of matching feature pairs is greater than a certain level even when the number of matching feature pairs between the source point cloud data (20) and the target point cloud data (30) is small, occurrence of extreme errors in matching can be prevented, thereby increasing the accuracy of data matching.
- the cloud point data sets can be aligned with an optimal degree of freedom, and accordingly, the pose of the moving object can be estimated with an optimal degree of freedom.
- a specific method for performing feature matching between source point cloud data (20) and target point cloud data (30), a specific method for selecting an appropriate matching algorithm based on the result of feature matching, and a specific method for performing matching using the selected matching algorithm and estimating the pose of a moving object will be described in more detail with reference to FIGS. 2 to 9, which will be described later.
- FIG. 2 illustrates a computer system performing a data processing method according to one embodiment.
- the computer system (100) may be an electronic device configured to perform a data processing method for performing data alignment and pose estimation.
- the computer system (100) may execute an application, software, or program for performing such data processing method.
- the computer system (100) may be a server or a computer system constituting a server, or may be a separate computer system for performing the data processing method described above.
- the computer system (100) may be a computer system included in a mobile device (e.g., a robot), or a computer system included in a robot control system for controlling a mobile device (e.g., a robot).
- the computer system (100) may include, as components, a memory (110), a processor (120), a communication interface (130), and an input/output interface (140).
- the input/output interface (140) may communicate with an input/output device (150) within the computer system (100) or separate from the computer system (100).
- the memory (110) is a computer-readable recording medium, and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive.
- the ROM and the permanent mass storage device such as the disk drive may be included in the computer system (100) as a separate permanent storage device distinct from the memory (110).
- the memory (110) may store an operating system and at least one program code. These software components may be loaded into the memory (110) from a computer-readable recording medium separate from the memory (110).
- This separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, a memory card, etc.
- the software components may be loaded into the memory (110) through a communication interface (130) rather than a computer-readable recording medium.
- software components may be loaded into the memory (110) of the computer system (100) based on a computer program that is installed by files received over a network (160).
- the processor (120) may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to the processor (120) via the memory (110) or the communication interface (130). For example, the processor (120) may be configured to execute instructions received according to program code stored in a storage device such as the memory (110).
- the communication interface (130) may provide a function for the computer system (100) to communicate with other devices via a network (160). For example, requests, commands, data, files, etc. generated by the processor (120) of the computer system (100) according to program codes stored in a recording device such as a memory (110) may be transmitted to other devices via the network (160) under the control of the communication interface (130). Conversely, signals, commands, data, files, etc. from other devices may be received by the computer system (100) via the communication interface (130) of the computer system (100) via the network (160). The signals, commands, data, etc. received via the communication interface (130) may be transmitted to the processor (120) or the memory (110), and the files, etc. may be stored in a storage medium (the aforementioned permanent storage device) that the computer system (100) may further include.
- a storage medium the aforementioned permanent storage device
- the communication method through the communication interface (130) is not limited, and may include not only a communication method utilizing a communication network (e.g., a mobile communication network, wired Internet, wireless Internet, broadcasting network) that the network (160) may include, but also short-range wired/wireless communication between devices.
- a communication network e.g., a mobile communication network, wired Internet, wireless Internet, broadcasting network
- the network (160) may include any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, etc.
- PAN personal area network
- LAN local area network
- CAN campus area network
- MAN metropolitan area network
- WAN wide area network
- BBN broadband network
- the network (160) may include any one or more of a network topology including, but not limited to, a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree, or a hierarchical network.
- a network topology including, but not limited to, a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree, or a hierarchical network.
- the input/output interface (140) may be a means for interfacing with an input/output device (150).
- the input device may include a device such as a microphone, a keyboard, a camera, or a mouse
- the output device may include a device such as a display or a speaker.
- the input/output interface (140) may be a means for interfacing with a device that integrates input and output functions, such as a touchscreen.
- the input/output device (150) may also be configured as a single device with the computer system (100).
- the computer system (100) may include fewer or more components than those illustrated in FIG. 2. However, most conventional components need not be explicitly depicted.
- the computer system (100) may be implemented to include at least some of the input/output devices (150) described above, or may further include other components such as a transceiver, a camera, various sensors, a database, and the like.
- the processor (120) of the computer system (100) may be configured to perform steps for performing a data processing method for acquiring target point cloud data (30) (i.e., second point cloud data (30)) and source point cloud data (20) (i.e., first point cloud data (20)), matching the second point cloud data (30) to the first point cloud data (20), and estimating the pose of a moving object, as described below.
- FIG. 3 is a flowchart illustrating a data processing method for aligning second point cloud data with first point cloud data and estimating a pose of a moving object, according to one embodiment.
- steps for performing a data processing method for matching second point cloud data (30) to first point cloud data (20) and estimating the pose of a moving object by a computer system (100) are described.
- the computer system (100) can acquire first point cloud data (20) for the space in which the mobile device travels.
- the first point cloud data (20) may be pre-stored in the computer system (100), or may be acquired from another computer system or database with which the computer system (100) can communicate.
- the computer system (100) can obtain second point cloud data (30) generated based on sensing data about space from a moving object.
- the moving object may be, for example, a robot that moves through space.
- the moving object may be mapping equipment that generates mapping information (e.g., 3D mapping information) about the space while moving through space.
- mapping equipment may be a mapping robot.
- the moving object may include a sensor unit for sensing data about the space while moving through space.
- the sensing data may be sensor data acquired by such a sensor unit.
- the sensor unit may include, for example, a lidar sensor for sensing the space.
- the computer system (100) can obtain second point cloud data (30) generated based on sensing data about the space acquired by the lidar sensor of the moving object.
- the generation of the second point cloud data (30) may be performed in the computer system (100), or may be performed within the moving object or in a control system (robot control system) that controls the moving object.
- the first point cloud data (20) may be at least a portion of the source point cloud data (20) for a space that serves as a reference for matching with the second point cloud data (30).
- the second point cloud data (30) may be at least a portion of the target point cloud data (30) for a space generated based on sensing data acquired by a sensor unit (such as a lidar sensor) of a moving object while the moving object is moving in the space.
- a sensor unit such as a lidar sensor
- each of the first point cloud data (20) and the second point cloud data (30) may represent a map generated based on a point cloud for space. Accordingly, the alignment between the first point cloud data (20) and the second point cloud data (30) may also mean the alignment between the maps represented by the first point cloud data (20) and the second point cloud data (30).
- step (330) the computer system (100) can perform feature matching between the first point cloud data (20) and the second point cloud data (30).
- Feature matching between the first point cloud data (20) and the second point cloud data (30) may be a matching of feature points between point cloud data sets (or maps).
- feature matching may be a matching of feature points of the first point cloud data (20) with corresponding feature points of the second point cloud data (30).
- the computer system (100) can extract a plurality of characteristic points (i.e., extract features) from each of the first point cloud data (20) and the second point cloud data (30) in step (332).
- the feature points of the first point cloud data (20) may be, for example, vertices (corners) of an outline in the first point cloud data (20) (map), points on an edge, etc.
- the feature points of the second point cloud data (30) (map) may be, for example, vertices of an outline in the second point cloud data (30), points on an edge, etc.
- the feature points may also be pixels (pixel coordinates) on an image (map image) composed of the first point cloud data (20) or the second point cloud data (30).
- the computer system (100) can determine matching feature pairs between the first point cloud data (20) and the second point cloud data (30) by matching feature points extracted from the first point cloud data (20) with feature points extracted from the second point cloud data (30).
- a 'matching feature pair' can represent a pair of matching feature points between the first point cloud data (20) and the second point cloud data (30).
- Feature matching between feature points may be performed based on a descriptor associated with each feature point obtained when extracting the feature points, or any algorithm may be used for such feature matching that identifies the feature point on the second point cloud data (30) that is most similar (most corresponding) to each feature point on the other first point cloud data (20).
- the computer system (100) can determine the number of matching feature pairs determined as a result of such feature matching.
- the computer system (100) may select a matching algorithm for matching the second point cloud data (30) to the first point cloud data (20) based on the number of matching feature pairs between the first point cloud data (20) and the second point cloud data (30) obtained through feature matching.
- “Selecting a matching algorithm based on the number of matching feature pairs” may mean using the number of matching feature pairs itself to select a matching algorithm, or using a value based on the number of matching feature pairs to select a matching algorithm.
- the matching feature pairs may be feature inliers for selecting a matching algorithm, and the number of matching feature pairs may be the number of feature inliers.
- Selecting a matching algorithm may involve selecting an appropriate one from among multiple matching algorithms.
- Each matching algorithm may represent a matching method, matching method, or matching process performed to match point cloud data sets.
- the computer system (100) may use these matching algorithms to estimate a certain degree of freedom to match point cloud data sets.
- feature points included in each matching feature pair between the second point cloud data (30) and the first point cloud data (20) may be estimated along with their degrees of freedom.
- These estimated degrees of freedom may vary depending on the type of matching algorithm selected by the computer system (100) and used for matching.
- the computer system (100) may select a matching algorithm that estimates a relatively lower degree of freedom when the number of matching feature pairs is less than a certain level, and may select a matching algorithm that estimates a relatively higher degree of freedom when the number of matching feature pairs is greater than a certain level.
- the computer system (100) of the embodiment may select a suitable matching algorithm that can prevent the occurrence of extreme errors in matching even when the number of matching feature pairs between the first point cloud data (20) and the second point cloud data (30) is small.
- step (350) the computer system (100) can align the second point cloud data (30) to the first point cloud data (20) using the alignment algorithm selected by step (340).
- step (360) the computer system (100) can estimate the pose of the moving object based on the alignment of the second point cloud data (30) with the first point cloud data (20). That is, this pose is the pose of the moving object that drove to generate the second point cloud data (30), and may be the pose of the sensor unit that acquired the sensor data that serves as the basis of the second point cloud data (30) (i.e., the lidar pose).
- the estimated pose of the moving object may have a degree of freedom corresponding to the degree of freedom estimated by the alignment algorithm selected in the above step (340). For example, if the selected alignment algorithm estimates 4 degrees of freedom (DoF) to align data, the estimated pose may be a 4-degree-of-freedom pose, and if the selected alignment algorithm estimates 6 degrees of freedom (6 DoF) to align data, the estimated pose may be a 6-degree-of-freedom pose.
- DoF degrees of freedom
- FIG. 4 is a flowchart illustrating a method for selecting an appropriate matching algorithm based on the number of matching feature pairs between first point cloud data and second point cloud data, according to an example.
- the computer system (100) can determine whether the number of matching feature pairs obtained through feature matching between the first point cloud data (20) and the second point cloud data (30) is greater than or equal to a first number (i.e., a certain level).
- the first number may be, for example, 10, and may be set to various values as needed.
- step (420) if the number of matching feature pairs obtained according to the feature matching is less than the first number, the computer system (100) may select a first matching algorithm that matches the second point cloud data (30) to the first point cloud data (20) with a first degree of freedom level among a plurality of matching algorithms.
- step (430) if the number of matching feature pairs obtained through the feature matching is greater than or equal to a first number, the computer system (100) may select a second matching algorithm that matches the second point cloud data (30) to the first point cloud data (20) at a second degree of freedom level higher than the first degree of freedom level among the plurality of matching algorithms.
- the computer system (100) can select a matching algorithm having different degrees of freedom to match the second point cloud data (30) to the first point cloud data (20) depending on whether the number of matching feature pairs is above a certain level.
- a higher degree of freedom level may mean estimating more degrees of freedom variables during matching.
- the first alignment algorithm may be a alignment algorithm configured to align second point cloud data (30) to first point cloud data (20) by estimating four degrees of freedom (4 DoF), which is a first degree of freedom level.
- DoF degrees of freedom
- the second alignment algorithm may be a alignment algorithm configured to align the second point cloud data (30) to the first point cloud data (20) by estimating the second degree of freedom level, which is 6 degrees of freedom (6 DoF).
- the first matching algorithm can perform matching by estimating four degree-of-freedom variables.
- the first matching algorithm can be a matching algorithm configured to match the second point cloud data (30) to the first point cloud data (20) by estimating a first degree-of-freedom variable representing rotation in the x-axis direction, a second degree-of-freedom variable representing rotation in the y-axis direction, a third degree-of-freedom variable representing rotation in the z-axis direction, and a fourth degree-of-freedom variable representing rotation in the yaw direction as the four degrees of freedom.
- the second matching algorithm can perform matching by estimating six degree-of-freedom variables.
- the second matching algorithm may be a matching algorithm configured to match the second point cloud data (30) to the first point cloud data (20) by further estimating a fifth degree-of-freedom variable representing a rotation in the roll direction and a sixth degree-of-freedom variable representing a rotation in the pitch direction in addition to the first to fourth degree-of-freedom variables estimated by the first matching algorithm, which are the six degrees of freedom.
- the computer system (100) can select the first matching algorithm or the second matching algorithm as a matching algorithm having different degrees of freedom depending on whether the number of matching feature pairs is above a certain level.
- the computer system (100) can perform the matching by selecting the first matching algorithm that performs the matching by estimating only 4 degrees of freedom when the number of matching feature pairs is less than a certain level, and thus, even when the number of matching feature pairs is small, a relatively accurate matching result can be obtained.
- the degree of freedom variables representing the rotation in the roll direction and the degree of freedom variables representing the rotation in the pitch direction cannot be estimated accurately and may cause extreme errors, and therefore, these degree of freedom variables may not be estimated. In this way, when the number of matching feature pairs is small, performing the matching by estimating only 4 degrees of freedom can obtain a more accurate matching result than performing the matching by estimating 6 degrees of freedom.
- the computer system (100) can perform the matching by selecting the second matching algorithm that estimates all six degrees of freedom and performs the matching when the number of matching feature pairs is above a certain level, and thus, when the number of matching feature pairs is large, an accurate matching result can be obtained.
- the degree of freedom variable indicating the rotation in the roll direction and the degree of freedom variable indicating the rotation in the pitch direction can also be estimated relatively accurately, and thus, these degree of freedom variables can be estimated. In this way, when the number of matching feature pairs is large, a more accurate matching result can be obtained by estimating six degrees of freedom.
- the computer system (100) may select a matching algorithm that matches the second point cloud data to the first point cloud data by estimating a greater number of degree-of-freedom variables among a plurality of degree-of-freedom variables as the number of matching feature pairs obtained through feature matching between the first point cloud data (20) and the second point cloud data (30) increases.
- the plurality of degree of freedom variables may include a first degree of freedom variable representing rotation in the x-axis direction, a second degree of freedom variable representing rotation in the y-axis direction, a third degree of freedom variable representing rotation in the z-axis direction, a fourth degree of freedom variable representing rotation in the yaw direction, a fifth degree of freedom variable representing rotation in the roll direction, and a sixth degree of freedom variable representing rotation in the pitch direction.
- the computer system (100) can consider a plurality of reference numbers as well as the first number, and can select an appropriate matching algorithm from among three or more matching algorithms configured to perform matching by estimating different numbers of degree of freedom variables depending on whether the matching feature pair is greater than or equal to each reference number.
- the computer system (100) may select a suitable matching algorithm from among matching algorithms configured to perform matching by estimating different types and/or numbers of degree-of-freedom variables depending on whether the number of matching feature pairs is greater than or equal to a predetermined reference number.
- FIG. 5 illustrates a method for selecting an appropriate matching algorithm and estimating the pose of a moving object based on the number of matching feature pairs between first point cloud data and second point cloud data according to an example.
- the computer system (100) can select a suitable matching algorithm according to the number of matching feature pairs obtained through feature matching (step (510)).
- the computer system (100) can select a first matching algorithm that performs matching by estimating 4 degrees of freedom, and at this time, the estimated degree of freedom variable may be the first to fourth degree of freedom variable described above (step (520)).
- the computer system (100) can select a second matching algorithm that performs matching by estimating 6 degrees of freedom, and at this time, the estimated degree of freedom variable may be the first to sixth degree of freedom variable described above (step (540)).
- the computer system (100) When the computer system (100) performs the alignment of the second point cloud data (30) to the first point cloud data (20) by the first alignment algorithm, the computer system (100) can estimate a 4-degree-of-freedom pose as the pose of the moving object (step (530)). Meanwhile, when the computer system (100) performs the alignment of the second point cloud data (30) to the first point cloud data (20) by the second alignment algorithm, the computer system (100) can estimate a 6-degree-of-freedom pose as the pose of the moving object (step (550)).
- the computer system (100) can estimate the pose of a moving object by selecting different degrees of freedom to estimate depending on the number of matching feature pairs (i.e., selecting matching algorithms with different degrees of freedom), and thus, the accuracy of pose estimation can be improved even when the number of matching feature pairs is small.
- the first alignment algorithm and/or the second alignment algorithm may be algorithms that align the first point cloud data (20) and the second point cloud data (30) under certain environmental conditions. These environmental conditions may be assumptions (preconditions) regarding the space represented by the first point cloud data (20) and the second point cloud data (30).
- the first alignment algorithm may be configured to align the second point cloud data (30) to the first point cloud data (20) under a first environmental condition that assumes that the first point cloud data (20) and the second point cloud data (30) are on the same plane.
- the first alignment algorithm can be configured to perform alignment under environmental conditions that assume that the two environments (the first point cloud data (20) and the second point cloud data (30)) are vertically identical.
- this first alignment algorithm it can be assumed that there is no rotation in the roll direction and no rotation in the pitch direction in the first point cloud data (20) and the second point cloud data (30) (i.e., the rotation in the roll direction and the rotation in the pitch direction are identical in the two environments).
- At least one of the first matching algorithm and/or the second matching algorithm may be configured to match the second point cloud data (30) to the first point cloud data (20) under a second environmental condition that the space is composed of at least one rectangular parallelepiped object.
- the second environmental condition may represent an assumption that the floor is flat in both environments (the first point cloud data (20) and the second point cloud data (30)) and that objects (buildings, structures, facilities, etc.) within the environment are composed of rectangular parallelepiped(s). Under the second environmental condition, all columns, etc. contained within the space may also be assumed to be vertical.
- the second environmental condition may be applied to the first matching algorithm or may be a precondition applied to both the first and second matching algorithms.
- the first matching algorithm for estimating four degrees of freedom may be, for example, the Quatro matching algorithm.
- the environmental conditions applied to the first algorithm may be the Atlanta world assumption.
- the Quatro matching algorithm may be, for example, described in Reference 1 below.
- a second algorithm for estimating six degrees of freedom may be, for example, the TEASER matching algorithm.
- the TEASER matching algorithm may be, for example, described in Reference 2 below.
- Literature 2 “TEASER: Fast and Certifiable Point Cloud Registration”, Yang, H., Shi, J., & Carlone, L., IEEE Trans. Robotics, 37(2), 314-333.
- the first number of matching feature pairs which is a criterion for selecting the first matching algorithm or the second matching algorithm, may be a value determined based on at least one of a ratio of first valid feature points among first feature points extracted from the first point cloud data (20) and a ratio of second valid feature points among second feature points extracted from the second point cloud data (30), and at least one of a ratio of first matching points used to determine matching feature pairs among the first valid feature points and a ratio of second matching points used to determine matching feature pairs among the second valid feature points.
- the first valid feature points may represent valid feature points (e.g., those excluding feature points corresponding to noise or specific points indicating points that do not correspond to an outline) among the first feature points, which are all feature points extracted from the first point cloud data (20).
- the second valid feature points may represent valid feature points (e.g., those excluding feature points corresponding to noise or specific points indicating points that do not correspond to an outline) among the second feature points, which are all feature points extracted from the second point cloud data (30).
- the ratio of first valid feature points to these first feature points of the first point cloud data (20) and/or the ratio of second valid feature points to these second feature points of the second point cloud data (30) i.e., the first ratio
- the ratio of first matching points included in matching point pairs for the first valid feature points and/or the ratio of second matching points included in matching point pairs for the first valid feature points may be used to determine the first value.
- 2000 feature points can be extracted from each of source point cloud data (20) and target point cloud data (30), and a matching algorithm can be selected so that if there are 200 or more matching point pairs as a result of feature matching, a 6-degree-of-freedom pose can be estimated, and if there are less than 200, a 4-degree-of-freedom pose can be estimated.
- the first number which is the number of matching point pairs that serve as a reference, may be determined as a value based on 'a predetermined minimum ratio of extracted feature points X matching ratio of feature points' by feature extraction.
- the first number may be determined based on "a predetermined minimum value of the aforementioned first ratio X a predetermined minimum value of the aforementioned second ratio.”
- 'A predetermined minimum ratio of extracted feature points X matching ratio of feature points' may be a formula for determining whether there are sufficient valid feature points for the two point cloud data (20, 30).
- a matching algorithm for estimating a 6-degree-of-freedom pose may be selected, and otherwise, a matching algorithm for estimating a 4-degree-of-freedom pose may be selected.
- the first number which is the number of matching point pairs that serve as a reference, may be a value determined by experiment.
- the number of matching point pairs that serve as a reference may correspond to a certain ratio. For example, if point cloud data has 15,000 to 20,000 feature points, the size of data corresponding to approximately 10% may correspond to 2,000 point pairs, and if the number of matched points exceeds 1% (i.e., 200), it may be determined that there is a sufficient ratio of matching points to estimate 6 degrees of freedom, and thus, a matching algorithm for estimating a 6-degree-of-freedom pose may be selected. On the other hand, if the number of matched points is 1% or less, it may be determined that there is an insufficient ratio of matching points to estimate 6 degrees of freedom, and thus, a matching algorithm for estimating a 4-degree-of-freedom pose may be selected. Since the technical features described above with reference to FIGS. 1 to 3 can also be applied to FIGS. 4 and 5, a redundant description will be omitted.
- Figure 6 illustrates source point cloud data and target point cloud data according to an example.
- These point cloud data (610, 620) may be referred to as raw sensor data.
- FIG. 7 illustrates a method for extracting feature points (i.e., performing feature extraction) from each of source point cloud data and target point cloud data according to an example.
- each of the feature points may be a vertex (corner point) of an outline, a point on an edge, etc.
- deep learning-based feature extraction methods can be used to extract these feature points.
- FIGS. 8 and 9 illustrate a method for selecting an appropriate matching algorithm based on the result of feature matching, according to an example.
- a case is exemplified where the first matching algorithm that estimates 4 degrees of freedom (x, y, z, yaw) is selected when the number of matching feature point pairs (i.e., inlier feature correspondence) as a result of feature matching is below a certain level (800).
- a matching algorithm that considers the degree of freedom that can increase the accuracy of data matching and pose estimation can be selected by considering the number of matching feature point pairs according to the result of feature matching, and thus, the accuracy of data matching and pose estimation can be increased as a result.
- the devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components.
- the devices and components described in the embodiments may be implemented using one or more general-purpose computers or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding to them.
- the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
- the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
- OS operating system
- the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
- processing device is sometimes described as being used alone; however, one of ordinary skill in the art will recognize that the processing device may include multiple processing elements and/or multiple types of processing elements.
- a processing unit may include multiple processors, or a processor and a controller.
- Other processing configurations, such as parallel processors, are also possible.
- Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing device to perform a desired operation or may independently or collectively command the processing device.
- the software and/or data may be embodied in any type of machine, component, physical device, computer storage medium, or device for interpretation by the processing device or for providing instructions or data to the processing device.
- the software may also be distributed over networked computer systems and stored or executed in a distributed manner.
- the software and data may be stored on one or more computer-readable recording media.
- the method according to the embodiment may be implemented in the form of program commands that can be executed through various computer means and recorded on a computer-readable medium.
- the medium may be one that continuously stores a computer-executable program or one that temporarily stores it for execution or download.
- the medium may be various recording means or storage means in the form of a single or multiple hardware combinations, and is not limited to a medium directly connected to a computer system, but may also be distributed over a network. Examples of the medium may include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and those configured to store program commands, including ROM, RAM, and flash memory.
- examples of other media may include recording media or storage media managed by app stores that distribute applications, sites that supply or distribute various software, servers, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
공간에 대한 소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터를 획득하고, 소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터 간에 피처 매칭에 따른 매칭 피처 쌍들의 개수에 기반하여, 두 포인트 클라우드 데이터 세트들을 정합하기 위한 정합 알고리즘을 선택하여, 선택된 정합 알고리즘을 이용하여 데이터 정합을 수행하는 데이터 처리 방법이 제공된다.
Description
실시예들은 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터를 정합하는 방법 및 장치에 관한 것으로, 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터 간의 매칭 포인트들의 수에 기반하여 선택된 정합 알고리즘을 이용하여 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터를 정합하는 방법 및 장치에 관한 것이다.
라이다 센서 등의 센서부를 포함하는 매핑 로봇과 같은, 매핑 장비의 공간에 대한 포즈(즉, 라이다 센서의 포즈 또는 '라이다 포즈')를 추정하는 것은, 로봇 등의 이동체의 자율주행이나, 공간에 대한 증강현실 콘텐츠의 구현 등을 구현함에 있어서 매우 중요하다. 예컨대, 라이다 센서를 포함하는 이동체는 라이다 센서를 사용하여 공간 내의 주변 환경을 인식하면서 주행하게 되며, 이 때, 라이다 포즈가 정확하지 않으면 주변 환경을 정확하게 인식할 수 없게 되어 이동체의 주행에 문제가 발생될 수 있다. 라이다 포즈가 정확하게 추정되면, 라이다 센서의 성능(정확도, 범위 등)을 향상시킬 수 있다.
이러한 라이다 포즈를 추정하기 위해서는, 공간에 대해 기준이 되는 소스 포인트 클라우드 데이터에 대해, 라이다 센서를 포함하는 이동체(매핑 장치)로부터 획득된 센서 데이터에 기반하여 생성된 타겟 포인트 클라우드 데이터를 정합할 것이 요구된다.
그러나, 공간의 환경적인 특성 등에 의해 정합의 대상이 되는 타겟 포인트 클라우드 데이터 세트들 간에 매칭 피처 쌍들(즉, 매칭 포인트들)이 적은 경우에는 이러한 타겟 포인트 클라우드 데이터 세트들 간의 정합이 정확하게 이루어지기 어렵고, 이는 라이다 포즈의 부정확한 추정으로 이어지게 된다.
한국공개특허 제10-2016-0116862호(공개일 2016년 10월 10일)는 복수개의 지도 상에서의 건물 폴리곤 자동 정합 장치 및 방법을 개시하고 있다.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있다.
공간에 대한 소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터를 획득하고, 소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터 간에 피처 매칭에 따른 매칭 피처 쌍들의 개수에 기반하여, 두 포인트 클라우드 데이터 세트들을 정합하기 위한 정합 알고리즘을 선택하여, 선택된 정합 알고리즘을 이용하여 데이터 정합을 수행하는 데이터 처리 방법을 제공할 수 있다.
소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터 간에 피처 매칭에 따른 매칭 피처 쌍들의 개수가 적은 경우에는, 복수의 정합 알고리즘들 중에서 제1 자유도 수준으로 포인트 클라우드 데이터를 정합하는 제1 정합 알고리즘을 선택하되, 피처 매칭에 따른 매칭 피처 쌍들의 개수가 많은 경우에는 제1 자유도 수준보다 더 높은 제2 자유도 수준으로 포인트 클라우드 데이터를 정합하는 제2 정합 알고리즘을 선택하여, 정합을 수행하는 데이터 처리 방법을 제공할 수 있다.
일 측면에 있어서, 컴퓨터 시스템에 의해 수행되는 데이터 처리 방법에 있어서, 이동체가 주행하는 공간에 대한 제1 포인트 클라우드 데이터를 획득하는 단계; 상기 이동체로부터의 상기 공간에 대한 센싱 데이터에 기반하여 생성된 제2 포인트 클라우드 데이터를 획득하는 단계; 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간에 피처 매칭을 수행하는 단계; 상기 피처 매칭에 따라 획득된 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들의 개수에 기반하여, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하기 위한 정합 알고리즘을 선택하는 단계; 및 상기 선택된 정합 알고리즘을 이용하여, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 단계를 포함하는, 데이터 처리 방법이 제공된다.
상기 데이터 처리 방법은, 상기 제1 포인트 클라우드 데이터에 대한 상기 제2 포인트 클라우드 데이터의 정합에 기반하여, 상기 이동체의 포즈를 추정하는 단계를 더 포함할 수 있다.
상기 제1 포인트 클라우드 데이터는, 상기 제2 포인트 클라우드 데이터와의 정합의 기준이 되는 상기 공간에 대한 소스 포인트 클라우드 데이터의 적어도 일부이고, 상기 제2 포인트 클라우드 데이터는, 상기 이동체가 상기 공간을 주행하면서 상기 이동체의 센서부가 획득한 상기 센싱 데이터에 기반하여 생성된 상기 공간에 대한 타겟 포인트 클라우드 데이터의 적어도 일부일 수 있다.
상기 선택하는 단계는, 상기 피처 매칭에 따라 획득된 상기 매칭 피처 쌍들의 개수가 제1 개수 미만이면, 복수의 정합 알고리즘들 중에서 제1 자유도 수준으로 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 제1 정합 알고리즘을 선택하고, 상기 피처 매칭에 따라 획득된 상기 매칭 피처 쌍들의 개수가 제1 개수 이상이면, 상기 복수의 정합 알고리즘들 중에서 상기 제1 자유도 수준보다 더 높은 제2 자유도 수준으로 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 제2 정합 알고리즘을 선택할 수 있다.
상기 제1 정합 알고리즘은 상기 제1 자유도 수준인 4 자유도(4 Degree of Freedom; DoF)를 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성되고, 상기 제2 정합 알고리즘은 상기 제2 자유도 수준인 6 자유도(6 DoF)를 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성될 수 있다.
상기 제1 정합 알고리즘에 의해 상기 제1 포인트 클라우드 데이터에 대한 상기 제2 포인트 클라우드 데이터의 정합이 수행되면, 상기 이동체의 포즈로서 4 자유도 포즈가 추정되고, 상기 제2 정합 알고리즘에 의해 상기 제1 포인트 클라우드 데이터에 대한 상기 제2 포인트 클라우드 데이터의 정합이 수행되면, 상기 이동체의 포즈로서 6 자유도 포즈가 추정될 수 있다.
상기 제1 정합 알고리즘은 상기 4 자유도로서 x축 방향의 회전을 나타내는 제1 자유도 변수, y축 방향의 회전을 나타내는 제2 자유도 변수, z축 방향의 회전을 나타내는 제3 자유도 변수 및 요(yaw) 방향의 회전을 나타내는 제4 자유도 변수를 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성되고, 상기 제2 정합 알고리즘은 상기 6 자유도로서 상기 제1 내지 제4 자유도 변수에 더하여 롤(roll) 방향의 회전을 나타내는 제5 자유도 변수 및 피치(pitch) 방향의 회전을 나타내는 제6 자유도 변수를 더 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성될 수 있다.
상기 제1 정합 알고리즘은 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터가 동일한 평면 상이 있는 것으로 가정하는 제1 환경 조건 하에서, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성될 수 있다.
상기 제1 정합 알고리즘 및 상기 제2 정합 알고리즘 중 적어도 하나는 상기 공간이 적어도 하나의 직육면체 객체들로 구성된다는 제2 환경 조건 하에서, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성될 수 있다.
상기 선택하는 단계는, 상기 피처 매칭에 따라 획득된 상기 매칭 피처 쌍들의 개수가 많을수록 복수의 자유도 변수들 중 더 많은 자유도 변수를 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 정합 알고리즘을 선택하고, 상기 복수의 자유도 변수들은, x축 방향의 회전을 나타내는 제1 자유도 변수, y축 방향의 회전을 나타내는 제2 자유도 변수, z축 방향의 회전을 나타내는 제3 자유도 변수, 요(yaw) 방향의 회전을 나타내는 제4 자유도 변수, 롤(roll) 방향의 회전을 나타내는 제5 자유도 변수, 및 피치(pitch) 방향의 회전을 나타내는 제6 자유도 변수를 포함할 수 있다.
상기 피처 매칭을 수행하는 단계는, 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터의 각각으로부터 복수의 특징 포인트들을 추출하는 단계; 및 상기 제1 포인트 클라우드 데이터로부터 추출된 특징 포인트들과 상기 제2 포인트 클라우드 데이터로부터 추출된 특징 포인트들을 매칭시킴으로써, 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들을 결정하는 단계를 포함할 수 있다.
상기 선택하는 단계는, 상기 매칭 피처 쌍들의 개수가 제1 개수 미만이면, 복수의 정합 알고리즘들 중에서 제1 자유도 수준으로 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 제1 정합 알고리즘을 선택하고, 상기 피처 매칭에 따라 획득된 상기 매칭 피처 쌍들의 개수가 제1 개수 이상이면, 상기 복수의 정합 알고리즘들 중에서 상기 제1 자유도 수준보다 더 높은 상기 제2 자유도 수준으로 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 제2 정합 알고리즘을 선택하되, 상기 제1 개수는, 상기 제1 포인트 클라우드 데이터로부터 추출된 제1 특징 포인트들 중 제1 유효 특징 포인트들의 비율 및 상기 제2 포인트 클라우드 데이터로부터 추출된 제2 특징 포인트들 중 제2 유효 특징 포인트들의 비율 중 적어도 하나와, 상기 제1 유효 특징 포인트들 중 상기 매칭 피처 쌍들을 결정하기 위해 사용된 제1 매칭 포인트들의 비율 및 상기 제2 유효 특징 포인트들 중 상기 매칭 피처 쌍들을 결정하기 위해 사용된 제2 매칭 포인트들의 비율 중 적어도 하나에 기반하여 결정된 값일 수 있다.
다른 일 측면에 있어서, 데이터 처리 방법을 수행하는 컴퓨터 시스템에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 이동체가 주행하는 공간에 대한 제1 포인트 클라우드 데이터를 획득하고, 상기 이동체로부터의 상기 공간에 대한 센싱 데이터에 기반하여 생성된 제2 포인트 클라우드 데이터를 획득하고, 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간에 피처 매칭을 수행하고, 상기 피처 매칭에 따라 획득된 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들의 개수에 기반하여, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하기 위한 정합 알고리즘을 선택하고, 상기 선택된 정합 알고리즘을 이용하여, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는, 컴퓨터 시스템이 제공된다.
실시예의 데이터 처리 방법에 의해서는, 공간에 대한 타겟 포인트 클라우드 데이터를 해당 공간에 대한의 소스 포인트 클라우드 데이터에 정합함에 있어서, 두 타겟 포인트 클라우드 데이터 세트들 간의 매칭 피처 쌍들의 개수에 따라, 정합을 수행하기에 적합한 자유도 수준을 갖는 정합 알고리즘을 선택할 수 있다.
두 타겟 포인트 클라우드 데이터 세트들 간의 매칭 피처 쌍들의 개수가 상대적으로 적은 경우에는, 더 낮은 자유도 수준으로 포인트 클라우드 데이터를 정합하는 정합 알고리즘이 선택될 수 있고, 따라서, 정합에 있어서 극단적인 오차의 발생이 방지될 수 있다.
포인트 클라우드 데이터 세트들 간의 정합의 정확도를 높일 수 있음으로써, 추정되는 라이다 포즈의 정확도를 따라서 높일 수 있다.
도 1은 일 실시예에 따른, 컴퓨터 시스템에 의해 수행되는 소스 포인트 클라우드 데이터(제1 포인트 클라우드 데이터)에 대해 타겟 포인트 클라우드 데이터(제2 포인트 클라우드 데이터)를 정합하는 데이터 처리 방법을 나타낸다.
도 2는 일 실시예에 따른, 데이터 처리 방법을 수행하는 컴퓨터 시스템을 나타낸다.
도 3은 일 실시예에 따른, 제1 포인트 클라우드 데이터에 대해 제2 포인트 클라우드 데이터를 정합하고, 이동체의 포즈를 추정하는 데이터 처리 방법을 나타내는 흐름도이다.
도 4는 일 예에 따른, 제1 포인트 클라우드 데이터와 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들의 수에 기반하여, 적절한 정합 알고리즘을 선택하는 방법을 나타내는 흐름도이다.
도 5는 일 예에 따른, 제1 포인트 클라우드 데이터와 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들의 수에 기반하여 적절한 정합 알고리즘을 선택하고, 이동체의 포즈를 추정하는 방법을 나타낸다.
도 6은 일 예에 따른, 소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터를 나타낸다.
도 7는 일 예에 따른, 소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터 각각에서 특징 포인트를 추출(즉, 피처 추출을 수행)하는 방법을 나타낸다.
도 8 및 도 9는 일 예에 따른, 피처 매칭의 결과에 따라 적절한 정합 알고리즘을 선택하는 방법을 나타낸다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다.
도 1은 일 실시예에 따른, 컴퓨터 시스템에 의해 수행되는 소스 포인트 클라우드 데이터(제1 포인트 클라우드 데이터)에 대해 타겟 포인트 클라우드 데이터(제2 포인트 클라우드 데이터)를 정합하는 데이터 처리 방법을 나타낸다.
도 1을 참조하여 공간에 대해 기준이 되는 소스 포인트 클라우드 데이터(20)(이하, 제1 포인트 클라우드 데이터(20)라고도 함)에 대해, 도시되지 않은, 이동체로부터의 해당 공간에 대한 센싱 데이터(즉, 센서 데이터)에 기반하여 생성된 타겟 포인트 클라우드 데이터(30)(이하, 제2 포인트 클라우드 데이터(30)라고도 함)를 정합하는 방법에 대해 설명한다.
소스 포인트 클라우드 데이터(20) 및 타겟 포인트 클라우드 데이터(30)가 나타내는 공간은 실외 또는 실외의 환경을 나타낼 수 있고, 실내와 실외가 결합된 복합 공간을 나타낼 수도 있다.
소스 포인트 클라우드 데이터(20)는, 정합의 기준이 되는 공간에 대한 포인트 클라우드 데이터일 수 있다. 소스 포인트 클라우드 데이터(20)는 공간에 대해 미리 구축된 3차원 모델이거나 이러한 3차원 모델을 구성하는 데이터일 수 있다. 또는, 소스 포인트 클라우드 데이터(20)는 공간에 대해 미리 구축된 3차원 지도(맵)이거나 이러한 3차원 지도를 구성하는 데이터일 수 있다.
한편, 타겟 포인트 클라우드 데이터(30)는, 소스 포인트 클라우드 데이터(20)와의 정합의 대상이 되는 입력 포인트 클라우드 데이터일 수 있다. 이러한 타겟 포인트 클라우드 데이터(30)는 센서부(예컨대, 라이다 센서 등)를 포함하는 이동체(예컨대, 매핑 장비 등)에 의해 공간이 센싱됨에 따라 획득되는 센서 데이터에 기반하여 생성되는 것일 수 있다.
소스 포인트 클라우드 데이터(20)와 타겟 포인트 클라우드 데이터(30)는 각각 포인트 클라우드들의 데이터 세트를 나타낼 수 있다.
실시예에서는, 타겟 포인트 클라우드 데이터(30)가 기 생성되어 있는 공간에 대한 지도에 해당하는 소스 포인트 클라우드 데이터(20)에 정합될 수 있고, 이에 따라, 상기 이동체(즉, 이동체가 포함하는 라이다 센서)의 포즈가 추정될 수 있다.
상기의 데이터의 정합과 포즈의 추정은 컴퓨터 시스템(100)에 의해 수행될 수 있다.
컴퓨터 시스템(100)은 서버 또는 서버를 구성하는 컴퓨터 시스템일 수 있다. 컴퓨터 시스템(100)은 공간을 주행하면서 센서 데이터를 획득하는 이동체와 통신함으로써 이동체로부터 타겟 포인트 클라우드 데이터(30)를 획득하거나, 이동체로부터 획득되는 센서 데이터에 기반하여 타겟 포인트 클라우드 데이터(30)를 생성할 수 있다. 컴퓨터 시스템(100)은 이러한 타겟 포인트 클라우드 데이터(30)를 소스 포인트 클라우드 데이터(20)에 대해 정합하고, 이동체의 포즈를 추정할 수 있다.
또는, 컴퓨터 시스템(100)은 이동체(예컨대, 로봇) 내에 포함되는 컴퓨터 시스템일 수 있다. 이 때, 로봇은 소스 포인트 클라우드 데이터(20)를 가지고 있을 수 있고, 획득된 센서 데이터에 기반하여 타겟 포인트 클라우드 데이터(30)를 생성하고, 타겟 포인트 클라우드 데이터(30)를 소스 포인트 클라우드 데이터(20)에 대해 정합하고, 포즈를 추정하도록 구성될 수 있다.
또는, 컴퓨터 시스템(100)은 이동체(예컨대, 로봇)을 제어하기 위한 로봇 제어 시스템 내에 포함되는 컴퓨터 시스템일 수도 있다. 이 때, 로봇 제어 시스템은 전술한 서버의 경우에서와 유사하게 타겟 포인트 클라우드 데이터(30)를 소스 포인트 클라우드 데이터(20)에 대해 정합하고, 이동체의 포즈를 추정할 수 있다.
실시예에서는, 타겟 포인트 클라우드 데이터(30)를 소스 포인트 클라우드 데이터(20)에 대해 정합하기 위해 먼저, 타겟 포인트 클라우드 데이터(30)와 소스 포인트 클라우드 데이터(20) 간에 피처 매칭이 수행될 수 있다. 상기 피처 매칭의 결과로서, 타겟 포인트 클라우드 데이터(30)와 소스 포인트 클라우드 데이터(20) 간에 매칭 피처 쌍들(즉, 매칭하는 특징 포인트들)의 수가 파악될 수 있다. 컴퓨터 시스템(100)은 이러한 매칭 피처 쌍들(즉, 매칭하는 특징 포인트들)의 수에 기반하여 타겟 포인트 클라우드 데이터(30)와 소스 포인트 클라우드 데이터(20)를 정합하기 위해 사용할 정합 알고리즘을 선택할 수 있다. 컴퓨터 시스템(100)은 선택된 정합 알고리즘을 이용하여 소스 포인트 클라우드 데이터(20)에 대해 타겟 포인트 클라우드 데이터(30)를 정합할 수 있다.
정합 알고리즘은 포인트 클라우드 데이터 세트들을 정합하기 위해 수행되는 정합 방식, 정합 방법 또는 정합 프로세스를 나타낼 수 있다. 컴퓨터 시스템(100)은 이러한 정합 알고리즘을 이용하여 일정 수준의 자유도를 추정하여 포인트 클라우드 데이터 세트들을 정합할 수 있다. 말하자면, 타겟 포인트 클라우드 데이터(30)와 소스 포인트 클라우드 데이터(20) 간에 매칭 피처 쌍들의 각 매칭 피처 쌍에 포함된 특징 포인트들은 자유도와 함께 추정될 수 있다. 이러한 추정되는 자유도는, 컴퓨터 시스템(100)에 의해 선택된 정합 알고리즘의 종류에 따라 상이하게 될 수 있다.
컴퓨터 시스템(100)은 피처 매칭에 따라 획득된 소스 포인트 클라우드 데이터(20)와 타겟 포인트 클라우드 데이터(30) 간의 매칭 피처 쌍들의 개수에 기반하여(일례로, 개수에 기반한 값에 기반하여), 소스 포인트 클라우드 데이터(20)에 대해 타겟 포인트 클라우드 데이터(30)를 정합하기 위한 정합 알고리즘을 선택할 수 있다. 예컨대, 컴퓨터 시스템(100)은 매칭 피처 쌍들의 개수가 일정 수준 미만인 경우에는 상대적으로 더 낮은 수준의 자유도를 추정하는 정합 알고리즘을 선택할 수 있고, 매칭 피처 쌍들의 개수가 일정 수준 이상인 경우에는 상대적으로 더 높은 수준의 자유도를 추정하는 정합 알고리즘을 선택할 수 있다. 이로서, 실시예에서는, 소스 포인트 클라우드 데이터(20)와 타겟 포인트 클라우드 데이터(30) 간의 매칭 피처 쌍들의 개수에 적은 경우라도, 정합에 있어서 극단적인 오차의 발생이 방지할 수 있게 되어, 데이터 정합의 정확도를 높일 수 있다.
즉, 실시예에서는, 소스 포인트 클라우드 데이터(20)와 타겟 포인트 클라우드 데이터(30) 간의 피처 매칭의 결과에 따라, 최적의 자유도 수준으로 클라우드 포인트 데이터 세트들을 정합할 수 있고, 그에 따라, 최적의 자유도로 이동체의 포즈를 추정할 수 있다.
소스 포인트 클라우드 데이터(20)와 타겟 포인트 클라우드 데이터(30) 간의 피처 매칭을 수행하는 구체적인 방법과, 피처 매칭의 결과에 따라 적절한 정합 알고리즘을 선택하는 구체적인 방법, 선택된 정합 알고리즘을 이용해 정합을 수행하고 이동체의 포즈를 추정하는 구체적인 방법에 대해서는 후술될 도 2 내지 도 9를 참조하여 더 자세하게 설명된다.
도 2는 일 실시예에 따른, 데이터 처리 방법을 수행하는 컴퓨터 시스템을 나타낸다.
컴퓨터 시스템(100)은 데이터의 정합과 포즈의 추정을 수행하기 위한 데이터 처리 방법을 수행하도록 구성되는 전자 장치일 수 있다. 컴퓨터 시스템(100)은 이러한 데이터 처리 방법을 수행하기 위한 어플리케이션, 소프트웨어 또는 프로그램을 실행할 수 있다.
전술한 것처럼, 컴퓨터 시스템(100)은 서버이거나 서버를 구성하는 컴퓨터 시스템일 수 있고, 또는, 상기의 데이터 처리 방법을 수행하기 위한 별도의 컴퓨터 시스템일 수 있다. 일례로, 컴퓨터 시스템(100)은 이동체(예컨대, 로봇) 내에 포함되는 컴퓨터 시스템이거나, 이동체(예컨대, 로봇)을 제어하기 위한 로봇 제어 시스템 내에 포함되는 컴퓨터 시스템일 수도 있다.
도 2에서 도시된 것처럼, 컴퓨터 시스템(100)은 구성요소로서, 메모리(110), 프로세서(120), 통신 인터페이스(130) 및 입출력 인터페이스(140)를 포함할 수 있다. 입출력 인터페이스(140)는 컴퓨터 시스템(100) 내의 또는 컴퓨터 시스템(100)과는 분리된 입출력 장치(150)와 통신할 수 있다.
메모리(110)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(110)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 시스템(100)에 포함될 수도 있다. 또한, 메모리(110)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(110)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(110)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(130)를 통해 메모리(110)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(160)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 시스템(100)의 메모리(110)에 로딩될 수 있다.
프로세서(120)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(110) 또는 통신 인터페이스(130)에 의해 프로세서(120)로 제공될 수 있다. 예를 들어 프로세서(120)는 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(130)은 네트워크(160)를 통해 컴퓨터 시스템(100)이 다른 장치와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 시스템(100)의 프로세서(120)가 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(130)의 제어에 따라 네트워크(160)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(160)를 거쳐 컴퓨터 시스템(100)의 통신 인터페이스(130)를 통해 컴퓨터 시스템(100)으로 수신될 수 있다. 통신 인터페이스(130)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(120)나 메모리(110)로 전달될 수 있고, 파일 등은 컴퓨터 시스템(100)이 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
통신 인터페이스(130)를 통한 통신 방식은 제한되지 않으며, 네트워크(160)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 유선/무선 통신을 포함될 수 있다. 예를 들어, 네트워크(160)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(160)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으며, 이에 제한되지 않는다.
입출력 인터페이스(140)는 입출력 장치(150)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드, 카메라 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(140)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(150)는 컴퓨터 시스템(100)과 하나의 장치로 구성될 수도 있다.
또한, 다른 실시예들에서 컴퓨터 시스템(100)은 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요는 없다. 예를 들어, 컴퓨터 시스템(100)은 상술한 입출력 장치(150) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
컴퓨터 시스템(100)의 프로세서(120)는 후술되는 것처럼, 타겟 포인트 클라우드 데이터(30)(즉, 제2 포인트 클라우드 데이터(30))와 소스 포인트 클라우드 데이터(20)(즉, 제1 포인트 클라우드 데이터(20))를 획득하고, 제2 포인트 클라우드 데이터(30)를 제1 포인트 클라우드 데이터(20)에 대해 정합하고, 이동체의 포즈를 추정하는 데이터 처리 방법을 수행하기 위한 단계들을 수행하도록 구성될 수 있다.
후술될 상세한 설명에서는, 설명의 편의상 컴퓨터 시스템(100)에 의해 상기의 단계들이 수행되는 것으로 설명하며, 컴퓨터 시스템(100)의 프로세서(120) 또는 다른 구성들에 의해 수행되는 동작이나, 프로세서(120)가 실행하는 어플리케이션/프로그램에 의해 수행되는 동작은 설명의 편의상 컴퓨터 시스템(100)에 의해 수행되는 동작으로 설명될 수 있다.
이상, 도 1을 참조하여 전술된 기술적 특징은 도 2에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 3은 일 실시예에 따른, 제1 포인트 클라우드 데이터에 대해 제2 포인트 클라우드 데이터를 정합하고, 이동체의 포즈를 추정하는 데이터 처리 방법을 나타내는 흐름도이다.
도 3을 참조하여, 컴퓨터 시스템(100)에 의해 제2 포인트 클라우드 데이터(30)를 제1 포인트 클라우드 데이터(20)에 대해 정합하고, 이동체의 포즈를 추정하는 데이터 처리 방법을 수행하기 위한 단계들을 설명한다.
단계(310)에서, 컴퓨터 시스템(100)은 이동체가 주행하는 공간에 대한 제1 포인트 클라우드 데이터(20)를 획득할 수 있다. 제1 포인트 클라우드 데이터(20)는 컴퓨터 시스템(100)에 미리 저장되어 있을 수 있고, 또는, 컴퓨터 시스템(100)이 통신 가능한 다른 컴퓨터 시스템이나 데이터베이스로부터 획득될 수도 있다.
단계(320)에서, 컴퓨터 시스템(100)은 이동체로부터의 공간에 대한 센싱 데이터에 기반하여 생성된 제2 포인트 클라우드 데이터(30)를 획득할 수 있다. 이동체는, 예컨대, 공간을 주행하는 로봇일 수 있다. 이동체는 공간을 주행하면서 공간에 대한 맵핑 정보(예컨대, 3차원 맵핑 정보)를 생성하는 맵핑 장비일 수 있다. 이러한 맵핑 장비는 맵핑 로봇일 수 있다. 이동체는 공간을 주행하면서 공간에 대한 데이터를 센싱하기 위한 센서부를 포함할 수 있다. 상기 센싱 데이터는 이러한 센서부에 의해 획득되는 센서 데이터일 수 있다. 센서부는 예컨대, 공간을 센싱하기 위한 라이다 센서를 포함할 수 있다. 따라서, 컴퓨터 시스템(100)은 이동체의 라이다 센서에 의해 획득되는 공간에 대한 센싱 데이터에 기반하여 생성된 제2 포인트 클라우드 데이터(30)를 획득할 수 있다. 제2 포인트 클라우드 데이터(30)의 생성은 컴퓨터 시스템(100)에서 수행될 수도 있고, 또는, 이동체 내부에서 혹은 이동체를 제어하는 제어 시스템(로봇 제어 시스템)에서 수행될 수 있다.
앞서 살펴본 것처럼, 제1 포인트 클라우드 데이터(20)는, 제2 포인트 클라우드 데이터(30)와의 정합의 기준이 되는 공간에 대한 소스 포인트 클라우드 데이터(20)의 적어도 일부일 수 있다. 한편, 제2 포인트 클라우드 데이터(30)는, 이동체가 공간을 주행하면서 이동체의 센서부(라이다 센서 등)가 획득한 센싱 데이터에 기반하여 생성된 공간에 대한 타겟 포인트 클라우드 데이터(30)의 적어도 일부일 수 있다.
또한, 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 각각은 공간에 대한 포인트 클라우드에 기반하여 생성된 지도(맵)을 나타낼 수 있다. 따라서, 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 정합은 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30)가 나타내는 맵들 간의 정합을 의미할 수도 있다.
단계(330)에서, 컴퓨터 시스템(100)은 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간에 피처 매칭을 수행할 수 있다.
제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 피처 매칭은 포인트 클라우드 데이터 세트들(또는 맵들) 간의 피처 포인트들의 매칭일 수 있다. 말하자면, 피처 매칭은 제1 포인트 클라우드 데이터(20)의 특징 포인트와 제2 포인트 클라우드 데이터(30)의 대응하는 특징 포인트를 매칭시키는 것일 수 있다.
컴퓨터 시스템(100)은 이러한 피처 매칭을 위해, 단계(332)에서, 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30)의 각각으로부터 복수의 특징 포인트들을 추출(즉, 피처들을 추출)할 수 있다.
제1 포인트 클라우드 데이터(20)의 특징 포인트는, 예컨대, 제1 포인트 클라우드 데이터(20)(맵) 내의 윤곽(outline)의 꼭지점(코너점), 에지 상의 포인트 등일 수 있다. 한편, 제2 포인트 클라우드 데이터(30)(맵)의 특징 포인트는, 예컨대, 제2 포인트 클라우드 데이터(30) 내의 윤곽의 꼭지점, 에지 상의 포인트 등일 수 있다. 특징 포인트는 제1 포인트 클라우드 데이터(20) 또는 제2 포인트 클라우드 데이터(30)가 구성하는 이미지(맵 이미지) 상의 픽셀(픽셀 좌표)일 수도 있다.
단계(334)에서, 컴퓨터 시스템(100)은 제1 포인트 클라우드 데이터(20)로부터 추출된 특징 포인트들과 제2 포인트 클라우드 데이터(30)로부터 추출된 특징 포인트들을 매칭시킴으로써, 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 매칭 피처 쌍들을 결정할 수 있다. '매칭 피처 쌍'은 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 매칭되는 특징 포인트들의 쌍을 나타낼 수 있다.
피처 포인트들 간의 피처 매칭은 피처 포인트들의 추출 시 획득되는 각 피처 포인트와 연관된 디스크립터에 기반하여 이루어지거나, 또는, 이러한 피처 매칭에는 기타 제1 포인트 클라우드 데이터(20) 상의 각 피처 포인트와 가장 유사한(가장 대응하는) 제2 포인트 클라우드 데이터(30) 상의 피처 포인트를 식별하는 여하한 알고리즘이 사용될 수 있다.
컴퓨터 시스템(100)은 이러한 피처 매칭의 결과로서 결정되는 매칭 피처 쌍들의 개수를 파악할 수 있다.
단계(340)에서, 컴퓨터 시스템(100)은 피처 매칭에 따라 획득된 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 매칭 피처 쌍들의 개수에 기반하여, 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하기 위한 정합 알고리즘을 선택할 수 있다.
"매칭 피처 쌍들의 개수에 기반하여 정합 알고리즘을 선택한다"는 것은, 매칭 피처 쌍들의 개수 자체를 정합 알고리즘의 선택에 이용하거나, 매칭 피처 쌍들의 개수에 기반한 값을 정합 알고리즘의 선택에 이용하는 것일 수 있다. 매칭 피처 쌍은 정합 알고리즘을 선택하기 위한 피처 인라이어(feature inlier)일 수 있고 매칭 피처 쌍들의 개수는 피처 인라이어들의 개수일 수 있다.
정합 알고리즘을 선택하는 것은 복수의 정합 알고리즘들 중에서 적합한 것을 선택하는 것일 수 있다.
각각의 정합 알고리즘은 포인트 클라우드 데이터 세트들을 정합하기 위해 수행되는 정합 방식, 정합 방법 또는 정합 프로세스를 나타낼 수 있다. 컴퓨터 시스템(100)은 이러한 정합 알고리즘을 이용하여 일정 수준의 자유도를 추정하여 포인트 클라우드 데이터 세트들을 정합할 수 있다. 말하자면, 제2 포인트 클라우드 데이터(30)와 제1 포인트 클라우드 데이터(20) 간에 매칭 피처 쌍들의 각 매칭 피처 쌍에 포함된 특징 포인트들은 자유도와 함께 추정될 수 있다. 이러한 추정되는 자유도는, 컴퓨터 시스템(100)에 의해 선택되어 정합에 사용된 정합 알고리즘의 종류에 따라 상이하게 될 수 있다.
예컨대, 컴퓨터 시스템(100)은 매칭 피처 쌍들의 개수가 일정 수준 미만인 경우에는 상대적으로 더 낮은 수준의 자유도를 추정하는 정합 알고리즘을 선택할 수 있고, 매칭 피처 쌍들의 개수가 일정 수준 이상인 경우에는 상대적으로 더 높은 수준의 자유도를 추정하는 정합 알고리즘을 선택할 수 있다. 이로서, 실시예의 컴퓨터 시스템(100)은, 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 매칭 피처 쌍들의 개수가 적은 경우라도, 정합에 있어서 극단적인 오차의 발생이 방지할 수 있도록 하는, 적합한 정합 알고리즘을 선택할 수 있다.
복수의 정합 알고리즘들 중에서 적합한 것을 선택하는 구체적인 방법에 대해서는 후술될 도 4를 참조하여 더 자세하게 설명한다.
단계(350)에서, 컴퓨터 시스템(100)은 단계(340)에 의해 선택된 정합 알고리즘을 이용하여, 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합할 수 있다.
단계(360)에서, 컴퓨터 시스템(100)은 제1 포인트 클라우드 데이터(20)에 대한 제2 포인트 클라우드 데이터(30)의 정합에 기반하여, 이동체의 포즈를 추정할 수 있다. 즉, 이러한 포즈는 제2 포인트 클라우드 데이터(30)를 생성하기 위해 주행한 이동체의 포즈로서, 제2 포인트 클라우드 데이터(30)의 기초가 되는 센서 데이터를 획득한 센서부의 포즈(즉, 라이다 포즈)일 수 있다.
추정되는 이동체의 포즈는 상기 단계(340)에서 선택된 정합 알고리즘이 추정하는 자유도에 해당하는 자유도를 가질 수 있다. 예컨대, 선택된 정합 알고리즘이 4 자유도(4 Degree of Freedom; DoF)를 추정하여 데이터를 정합하는 것이라면 추정되는 포즈는 4 자유도 포즈일 수 있고, 선택된 정합 알고리즘이 6 자유도(6 DoF)를 추정하여 데이터를 정합하는 것이라면 추정되는 포즈는 6 자유도 포즈일 수 있다.
선택된 정합 알고리즘에 따라 이동체의 포즈를 추정하는 구체적인 내용에 대해서는 후술될 도 5를 참조하여 더 자세하게 설명한다.
이상, 도 1 및 도 2를 참조하여 전술된 기술적 특징은 도 3에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 4는 일 예에 따른, 제1 포인트 클라우드 데이터와 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들의 수에 기반하여, 적절한 정합 알고리즘을 선택하는 방법을 나타내는 흐름도이다.
도 4를 참조하여, 컴퓨터 시스템(100)이 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 매칭 피처 쌍들의 개수에 기반하여, 적절한 정합 알고리즘을 선택하는 방법에 대해 더 자세하게 설명한다.
단계(410)에서, 컴퓨터 시스템(100)은 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 피처 매칭에 따라 획득된 매칭 피처 쌍들의 개수가 제1 개수(즉, 일정 수준) 이상인지 여부를 판정할 수 있다. 제1 개수는 예컨대, 10개일 수 있고, 필요에 따라 다양한 값으로 설정될 수 있다.
단계(420)에서, 컴퓨터 시스템(100)은, 상기 피처 매칭에 따라 획득된 매칭 피처 쌍들의 개수가 제1 개수 미만이면, 복수의 정합 알고리즘들 중에서 제1 자유도 수준으로 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하는 제1 정합 알고리즘을 선택할 수 있다.
또한, 단계(430)에서, 컴퓨터 시스템(100)은, 상기 피처 매칭에 따라 획득된 매칭 피처 쌍들의 개수가 제1 개수 이상이면, 상기 복수의 정합 알고리즘들 중에서 상기 제1 자유도 수준보다 더 높은 제2 자유도 수준으로 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하는 제2 정합 알고리즘을 선택할 수 있다.
이처럼, 컴퓨터 시스템(100)은 매칭 피처 쌍들의 개수가 일정 수준 이상인지 여부에 따라, 상이한 자유도 수준을 갖는 정합 알고리즘을 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하기 위해 선택할 수 있다.
여기서 더 높은 자유도 수준은 정합 시에 더 많은 자유도 변수를 추정하는 것을 의미할 수 있다.
일례로, 상기 제1 정합 알고리즘은 제1 자유도 수준인 4 자유도(4 DoF)를 추정하여 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하도록 구성되는 정합 알고리즘일 수 있다.
한편, 제2 정합 알고리즘은 제2 자유도 수준인 6 자유도(6 DoF)를 추정하여 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하도록 구성되는 정합 알고리즘일 수 있다.
제1 정합 알고리즘은 4개의 자유도 변수들을 추정하여 정합을 수행할 수 있다. 일례로, 제1 정합 알고리즘은 상기 4 자유도로서 x축 방향의 회전을 나타내는 제1 자유도 변수, y축 방향의 회전을 나타내는 제2 자유도 변수, z축 방향의 회전을 나타내는 제3 자유도 변수 및 요(yaw) 방향의 회전을 나타내는 제4 자유도 변수를 추정하여 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하도록 구성되는 정합 알고리즘일 수 있다.
한편, 제2 정합 알고리즘은 6개의 자유도 변수들을 추정하여 정합을 수행할 수 있다. 일례로, 제2 정합 알고리즘은 상기 6 자유도로서, 상기 제1 정합 알고리즘이 추정하는 제1 내지 제4 자유도 변수에 더하여, 롤(roll) 방향의 회전을 나타내는 제5 자유도 변수 및 피치(pitch) 방향의 회전을 나타내는 제6 자유도 변수를 더 추정하여 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하도록 구성되는 정합 알고리즘일 수 있다.
이처럼, 실시예에서는, 컴퓨터 시스템(100)은 매칭 피처 쌍들의 개수가 일정 수준 이상인지 여부에 따라, 상이한 자유도 수준을 갖는 정합 알고리즘으로서 제1 정합 알고리즘 또는 제2 정합 알고리즘을 선택할 수 있다.
컴퓨터 시스템(100)은 매칭 피처 쌍들의 개수가 일정 수준 미만이면, 4 자유도만을 추정하여 정합을 수행하는 제1 정합 알고리즘을 선택하여 정합을 수행할 수 있고, 따라서, 매칭 피처 쌍들의 개수가 적은 경우라도, 비교적 정확한 정합의 결과를 얻을 수 있다. 매칭 피처 쌍들의 개수가 적은 경우에는 롤(roll) 방향의 회전을 나타내는 자유도 변수 및 피치(pitch) 방향의 회전 회전을 나타내는 자유도 변수는 정확하게 추정될 수 없고, 극단적인 오차를 발생시킬 수 있으므로 이들 자유도 변수들은 추정되지 않을 수 있다. 이처럼, 매칭 피처 쌍들의 개수가 적은 경우에는 4 자유도만을 추정하여 정합을 수행하는 것이 6 자유도를 추정하여 정합을 수행하는 것보다 더 정확한 정합의 결과를 얻을 수 있다.
한편, 컴퓨터 시스템(100)은 매칭 피처 쌍들의 개수가 일정 수준 이상이면, 6 자유도를 모두 추정하여 정합을 수행하는 제2 정합 알고리즘을 선택하여 정합을 수행할 수 있고, 따라서, 매칭 피처 쌍들의 개수가 많은 경우에는 정확한 정합의 결과를 얻을 수 있다. 매칭 피처 쌍들의 개수가 많은 경우에는 롤(roll) 방향의 회전을 나타내는 자유도 변수 및 피치(pitch) 방향의 회전 회전을 나타내는 자유도 변수도 상대적으로 정확하게 추정될 수 있으므로 이들 자유도 변수들은 추정될 수 있다. 이처럼, 매칭 피처 쌍들의 개수가 많은 경우라면 6 자유도를 추정하여 보다 정확한 정합의 결과를 얻을 수 있다.
한편, 실시예에 따라서는, 컴퓨터 시스템(100)은 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30) 간의 피처 매칭에 따라 획득된 매칭 피처 쌍들의 개수가 많을수록 복수의 자유도 변수들 중 더 많은 자유도 변수를 추정하여 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 정합 알고리즘을 선택할 수 있다.
이 때, 복수의 자유도 변수들은, x축 방향의 회전을 나타내는 제1 자유도 변수, y축 방향의 회전을 나타내는 제2 자유도 변수, z축 방향의 회전을 나타내는 제3 자유도 변수, 요(yaw) 방향의 회전을 나타내는 제4 자유도 변수, 롤(roll) 방향의 회전을 나타내는 제5 자유도 변수, 및 피치(pitch) 방향의 회전을 나타내는 제6 자유도 변수를 포함할 수 있다.
예컨대, 컴퓨터 시스템(100)은 상기 제1 개수 뿐만 아니라 복수의 기준이 되는 기준 개수들을 고려할 수 있고, 매칭 피처 쌍이 각 기준 개수 이상인지 여부에 따라 각자 상이한 개수의 자유도 변수들을 추정하여 정합을 수행하도록 구성되는 3개 이상의 정합 알고리즘들 중에서 적합한 정합 알고리즘을 선택할 수 있다.
또는, 컴퓨터 시스템(100)은 매칭 피처 쌍이 소정의 기준 개수 이상인지 여부에 따라 각자 상이한 종류 및/또는 개수의 자유도 변수들을 추정하여 정합을 수행하도록 구성되는 정합 알고리즘들 중에서 적합한 정합 알고리즘을 선택할 수도 있다.
한편, 도 5는 일 예에 따른, 제1 포인트 클라우드 데이터와 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들의 수에 기반하여 적절한 정합 알고리즘을 선택하고, 이동체의 포즈를 추정하는 방법을 나타낸다.
전술한 것처럼, 컴퓨터 시스템(100)은 피처 매칭에 따라 획득된 매칭 피처 쌍들의 개수에 따라 적합한 정합 알고리즘을 선택할 수 있다(단계(510)). 여기서, 컴퓨터 시스템(100)은 획득된 매칭 피처 쌍들의 개수가 일정 수준 미만인 경우에는 4 자유도를 추정하여 정합을 수행하는 제1 정합 알고리즘을 선택할 수 있고, 이 때, 추정되는 자유도 변수는 전술한 제1 내지 제4 자유도 변수일 수 있다(단계(520)). 한편, 컴퓨터 시스템(100)은 획득된 매칭 피처 쌍들의 개수가 일정 수준 이상인 경우에는 6 자유도를 추정하여 정합을 수행하는 제2 정합 알고리즘을 선택할 수 있고, 이 때, 추정되는 자유도 변수는 전술한 제1 내지 제6 자유도 변수일 수 있다(단계(540)). 컴퓨터 시스템(100)은 제1 정합 알고리즘에 의해 제1 포인트 클라우드 데이터(20)에 대한 제2 포인트 클라우드 데이터(30)의 정합이 수행되면, 이동체의 포즈로서 4 자유도 포즈를 추정할 수 있다(단계(530)). 한편, 컴퓨터 시스템(100)은 제2 정합 알고리즘에 의해 제1 포인트 클라우드 데이터(20)에 대한 제2 포인트 클라우드 데이터(30)의 정합이 수행되면, 이동체의 포즈로서 6 자유도 포즈를 추정할 수 있다(단계(550)).
이처럼, 컴퓨터 시스템(100)은 매칭 피처 쌍들의 개수에 따라 추정하는 자유도를 상이하게 선택하여(즉, 상이한 자유도 수준의 정합 알고리즘을 선택하여) 이동체의 포즈를 추정할 수 있고, 따라서, 매칭 피처 쌍들의 개수가 적은 경우에도 포즈 추정의 정확도가 개선될 수 있다.
아래에서는, 전술한 제1 정합 알고리즘 및 제2 정합 알고리즘의 구체적인 예시에 대해 더 자세하게 설명한다.
제1 정합 알고리즘 및/또는 제2 정합 알고리즘은 소정의 환경 조건 하에서 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30)를 정합시키는 알고리즘일 수 있다. 이러한 환경 조건은 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30)가 나타내는 공간에 대한 가정(전제 조건)일 수 있다.
예컨대, 제1 정합 알고리즘은 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30)가 동일한 평면 상이 있는 것으로 가정하는 제1 환경 조건 하에서, 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하도록 구성될 수 있다.
즉, 제1 정합 알고리즘은 두 환경(제1 포인트 클라우드 데이터(20) 및 제2 포인트 클라우드 데이터(30))이 수직적으로 동일하다고 가정하는 환경 조건 하에서 정합을 수행하도록 구성될 수 있다. 이러한 제1 정합 알고리즘에 있어서는, 제1 포인트 클라우드 데이터(20) 및 제2 포인트 클라우드 데이터(30)에서의 롤 방향의 회전과 피치 방향의 회전은 없는 것(즉, 두 환경에서 롤 방향의 회전과 피치 방향의 회전은 동일한 것)으로 가정될 수 있다.
이에 따라, 제1 정합 알고리즘을 이용하여 정합을 수행하는 경우, 즉, 매칭 피처 쌍들이 일정 수준 이하인 경우에는, 더 큰 오차 또는 오류를 발생시키는 롤 방향의 회전과 피치 방향의 회전을 무시하는 4 자유도가 추정될 수 있다.
실시예에서는, 매칭되는 특징 포인트들이 부족한 경우(즉, 특징 포인트들 간에 correspondence가 적은 경우)에는 두 환경들 간에 높이 차가 존재하는지 여부, 즉, 롤 회전 및 피치 회전에서 차이가 있는지를 파악하기가 어렵다는 점을 고려하여 큰 오차를 발생시키는 롤 회전 및 피치 회전을 무시할 수 있다. 이로서, 정합 시에 극단적인 오차가 발생하는 것이 방지될 수 있고, 오차는 특정 인자에서만 커지게 되는 것이 아니라 여러 인자들에 골고루 분산될 수 있다
또한, 제1 정합 알고리즘 및/또는 상기 제2 정합 알고리즘 중 적어도 하나는 공간이 적어도 하나의 직육면체 객체들로 구성된다는 제2 환경 조건 하에서, 제1 포인트 클라우드 데이터(20)에 대해 제2 포인트 클라우드 데이터(30)를 정합하도록 구성될 수 있다.
즉, 제2 환경 조건은 두 환경(제1 포인트 클라우드 데이터(20) 및 제2 포인트 클라우드 데이터(30))에서 바닥은 평평하고, 환경 내의 지물(건물, 구조물, 시설물 등)은 직육면체(들)로 구성된다는 가정을 나타낼 수 있다. 제2 환경 조건 하에서는 공간 내에 포함되는 기둥 등도 모두 수직인 것으로 가정될 수 있다. 제2 환경 조건은 제1 정합 알고리즘에 적용되거나, 제1 정합 알고리즘 및 제2 정합 알고리즘 둘 다에 적용되는 전제 조건일 수 있다.
4 자유도를 추정하는 제1 정합 알고리즘은 일례로, Quatro 정합 알고리즘일 수 있다. 제1 알고리즘에 대해 적용되는 환경 조건은 아틀란타 월드 가정(Atlanta world assumption)일 수 있다. Quatro 정합 알고리즘은, 예컨대, 아래의 문헌 1에서 설명되고 있는 것일 수 있다.
문헌 1: "A Single Correspondence Is Enough: Robust Global Registration to Avoid Degeneracy in Urban Environments", Hyungtae Lim, Suyong Yeon, Soohyun Ryu, Yonghan Lee, Youngji Kim, Jaeseong Yun, Euigon Jung, Donghwan Lee, Hyun Myung, in Proc. IEEE Int'l Conf. on Robotics and Automation (ICRA), pp. 8010-8017, Philadelphia, USA, May 2022.
6 자유도를 추정하는 제2 알고리즘은 일례로, TEASER 정합 알고리즘일 수 있다. TEASER 정합 알고리즘은, 예컨대, 아래의 문헌 2에서 설명되고 있는 것일 수 있다.
문헌 2: "TEASER: Fast and Certifiable Point Cloud Registration", Yang, H., Shi, J., & Carlone, L., IEEE Trans. Robotics, 37(2), 314-333.
아래에서는, 컴퓨터 시스템(100)이 전술한 제1 정합 알고리즘 또는 제2 정합 알고리즘을 선택하기 위한 기준이 되는 매칭 피처 쌍들의 제1 개수(또는 일정 수준)을 결정하는 방법에 대해 더 자세하게 설명한다.
일례로, 제1 정합 알고리즘 또는 제2 정합 알고리즘을 선택하기 위한 기준이 되는 매칭 피처 쌍들의 제1 개수는, 제1 포인트 클라우드 데이터(20)로부터 추출된 제1 특징 포인트들 중 제1 유효 특징 포인트들의 비율 및 제2 포인트 클라우드 데이터(30)로부터 추출된 제2 특징 포인트들 중 제2 유효 특징 포인트들의 비율 중 적어도 하나와, 상기 제1 유효 특징 포인트들 중 매칭 피처 쌍들을 결정하기 위해 사용된 제1 매칭 포인트들의 비율 및 상기 제2 유효 특징 포인트들 중 상기 매칭 피처 쌍들을 결정하기 위해 사용된 제2 매칭 포인트들의 비율 중 적어도 하나에 기반하여 결정된 값일 수 있다.
제1 유효 특징 포인트들은 제1 포인트 클라우드 데이터(20)로부터 추출된 모든 특징 포인트인 제1 특징 포인트들 중에서 유효한 특징 포인트들(예컨대, 노이즈에 해당하는 특징 포인트들이나, 윤곽에 해당하지 않은 포인트를 나타내는 특정 포인트들 등을 배제한 것들)을 나타낼 수 있다. 한편, 제2 유효 특징 포인트들은 제2 포인트 클라우드 데이터(30)로부터 추출된 모든 특징 포인트인 제2 특징 포인트들 중에서 유효한 특징 포인트들(예컨대, 노이즈에 해당하는 특징 포인트들이나, 윤곽에 해당하지 않은 포인트를 나타내는 특정 포인트들 등을 배제한 것들)을 나타낼 수 있다.
실시예에서는, 제1 포인트 클라우드 데이터(20)의 이러한 제1 특징 포인트들에 대한 제1 유효 특징 포인트들의 비율 및/또는 제2 포인트 클라우드 데이터(30)의 이러한 제2 특징 포인트들에 대한 제2 유효 특징 포인트들의 비율과(즉, 제1 비율), 제1 유효 특징 포인트들에 대한 매칭 포인트 쌍들에 포함되는 제1 매칭 포인트들의 비율 및/또는 제1 유효 특징 포인트들에 대한 매칭 포인트 쌍들에 포함되는 제2 매칭 포인트들의 비율을(즉, 제2 비율), 상기 제1 값을 결정하기 위해 이용할 수 있다.
일례로, 실시예에서는, 소스 포인트 클라우드 데이터(20)와 타겟 포인트 클라우드 데이터(30)에서 각각 2000개의 특징 포인트들이 추출될 수 있고, 피처 매칭의 결과로서 매칭 포인트 쌍들이 200개 이상으로 나타나면 6 자유도 포즈가 추정될 수 있고, 200개 미만이면 4 자유도 포즈가 추정될 수 있도록, 정합 알고리즘이 선택될 수 있다.
이 때, 기준이 되는 매칭 포인트 쌍들의 개수인 제1 개수(일정 수준)는, 피처 추출에 의해 '추출된 특징 포인트들의 소정의 최소 비율 X 특징 포인트들의 매칭 비율'에 기반한 값으로 결정될 수 있다. 예컨대, 제1 개수는 "전술한 제1 비율의 기 설정된 최소 값 X 전술한 제2 비율의 기 설정된 최소 값"에 기반하여 결정될 수 있다. '추출된 특징 포인트들의 소정의 최소 비율 X 특징 포인트들의 매칭 비율'은 두 포인트 클라우드 데이터(20, 30)에 대한 유효한 특징 포인트들이 충분하게 존재하는지를 판단하기 위한 수식일 수 있다.
일례로, '추출된 특징 포인트들의 소정의 최소 비율 X 특징 포인트들의 매칭 비율'에 기반한 값 이상의 매칭 피처 쌍들이 존재할 경우 6자유도 포즈를 추정하기 위한 정합 알고리즘이 선택될 수 있고, 그렇지 않으면 4자유도 포즈를 추정하기 위한 정합 알고리즘이 선택될 수 있다.
또는, 기준이 되는 매칭 포인트 쌍들의 개수인 제1 개수는 실험에 의해 결정된 값일 수 있다.
또는, 기준이 되는 매칭 포인트 쌍들의 개수는 일정 비율에 대응할 수 있다. 예컨대, 포인트 클라우드 데이터가, 1.5만개 내지 2만개의 특징 포인트를 가지고 있는 경우에 있어서, 대략 10%에 해당하는 데이터의 크기는 2000개의 포인트 쌍들에 대응할 수 있고, 매칭된 포인트들의 개수가 1% (즉, 200개)를 넘는 경우에는 6 자유도를 추정하기에 충분한 비율의 매칭 포인트를 가지고 있는 것으로 판단될 수 있고, 따라서, 6자유도 포즈를 추정하기 위한 정합 알고리즘이 선택될 수 있다. 한편, 매칭된 포인트들의 개수가 1% 이하인 경우에는, 6 자유도를 추정하기에는 충분하지 않은 비율의 매칭 포인트를 가지고 있는 것으로 판단될 수 있고, 따라서, 4자유도 포즈를 추정하기 위한 정합 알고리즘이 선택될 수 있다. 이상, 도 1 내지 도 3을 참조하여 전술된 기술적 특징은 도 4 및 도 5에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 6은 일 예에 따른, 소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터를 나타낸다.
도 6에서는, 전술한 제1 포인트 클라우드 데이터(20)와 제2 포인트 클라우드 데이터(30)인 소스 포인트 클라우드 데이터(610)와 타겟 포인트 클라우드 데이터(620)의 구체적인 예시가 도시되었다. 이들 포인트 클라우드 데이터(610, 620)는 로우 센서 데이터로 명명될 수 있다.
한편, 도 7는 일 예에 따른, 소스 포인트 클라우드 데이터와 타겟 포인트 클라우드 데이터 각각에서 특징 포인트를 추출(즉, 피처 추출을 수행)하는 방법을 나타낸다.
도 7의 데이터 세트들(700)에서는, 소스 포인트 클라우드 데이터(610)에 대한 특징 포인트들의 추출 결과(710)와 타겟 포인트 클라우드 데이터(620)에 대한 특징 포인트들의 추출 결과(720)가 도시되었다. 도시된 것처럼 특징 포인트들의 각각은 윤곽(outline)의 꼭지점(코너점), 에지 상의 포인트 등일 수 있다.
이러한 특징 포인트들의 추출에는 예컨대, 딥러닝 기반의 피처 추출 방법이 이용될 수 있다.
한편, 도 8 및 도 9는 일 예에 따른, 피처 매칭의 결과에 따라 적절한 정합 알고리즘을 선택하는 방법을 나타낸다.
도 8에서는, 피처 매칭의 결과 매칭 피처 포인트 쌍들(즉, 인라이어 피처 대응 관계)이 일정 수준 미만인 경우로서, 4 자유도(x, y, z, yaw)를 추정하는 제1 정합 알고리즘이 선택된 경우가 예시되었다(800).
이에 비해 도 9에서는, 피처 매칭의 결과 매칭 피처 포인트 쌍들(즉, 인라이어 피처 대응 관계)이 일정 수준 이상인 경우로서, 6 자유도(x, y, z, yaw, pitch, roll)를 추정하는 제2 정합 알고리즘이 선택된 경우가 예시되었다(900).
이처럼, 실시예에서는, 피처 매칭의 결과에 따른 매칭 피처 포인트 쌍들의 수를 고려하여, 데이터 정합과 포즈 추정의 정확도를 높일 수 있도록 하는 자유도 수준을 고려하는 정합 알고리즘의 선택이 이루어질 수 있고, 이에 따라, 결과적으로 데이터 정합과 포즈 추정의 정확도를 높일 수 있다.
이상, 도 1 내지 도 5를 참조하여 전술된 기술적 특징은 도 6 내지 도 9에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (14)
- 컴퓨터 시스템에 의해 수행되는 데이터 처리 방법에 있어서,이동체가 주행하는 공간에 대한 제1 포인트 클라우드 데이터를 획득하는 단계;상기 이동체로부터의 상기 공간에 대한 센싱 데이터에 기반하여 생성된 제2 포인트 클라우드 데이터를 획득하는 단계;상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간에 피처 매칭을 수행하는 단계;상기 피처 매칭에 따라 획득된 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들의 개수에 기반하여, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하기 위한 정합 알고리즘을 선택하는 단계; 및상기 선택된 정합 알고리즘을 이용하여, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 단계를 포함하는, 데이터 처리 방법.
- 제1항에 있어서,상기 제1 포인트 클라우드 데이터에 대한 상기 제2 포인트 클라우드 데이터의 정합에 기반하여, 상기 이동체의 포즈를 추정하는 단계를 더 포함하는, 데이터 처리 방법
- 제1항에 있어서,상기 제1 포인트 클라우드 데이터는, 상기 제2 포인트 클라우드 데이터와의 정합의 기준이 되는 상기 공간에 대한 소스 포인트 클라우드 데이터의 적어도 일부이고,상기 제2 포인트 클라우드 데이터는, 상기 이동체가 상기 공간을 주행하면서 상기 이동체의 센서부가 획득한 상기 센싱 데이터에 기반하여 생성된 상기 공간에 대한 타겟 포인트 클라우드 데이터의 적어도 일부인, 데이터 처리 방법.
- 제1항에 있어서,상기 선택하는 단계는,상기 피처 매칭에 따라 획득된 상기 매칭 피처 쌍들의 개수가 제1 개수 미만이면, 복수의 정합 알고리즘들 중에서 제1 자유도 수준으로 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 제1 정합 알고리즘을 선택하고,상기 피처 매칭에 따라 획득된 상기 매칭 피처 쌍들의 개수가 제1 개수 이상이면, 상기 복수의 정합 알고리즘들 중에서 상기 제1 자유도 수준보다 더 높은 제2 자유도 수준으로 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 제2 정합 알고리즘을 선택하는, 데이터 처리 방법.
- 제4항에 있어서,상기 제1 정합 알고리즘은 상기 제1 자유도 수준인 4 자유도(4 Degree of Freedom; DoF)를 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성되고,상기 제2 정합 알고리즘은 상기 제2 자유도 수준인 6 자유도(6 DoF)를 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성되는, 데이터 처리 방법.
- 제5항에 있어서,상기 제1 정합 알고리즘에 의해 상기 제1 포인트 클라우드 데이터에 대한 상기 제2 포인트 클라우드 데이터의 정합이 수행되면, 상기 이동체의 포즈로서 4 자유도 포즈가 추정되고,상기 제2 정합 알고리즘에 의해 상기 제1 포인트 클라우드 데이터에 대한 상기 제2 포인트 클라우드 데이터의 정합이 수행되면, 상기 이동체의 포즈로서 6 자유도 포즈가 추정되는, 데이터 처리 방법
- 제5항에 있어서,상기 제1 정합 알고리즘은 상기 4 자유도로서 x축 방향의 회전을 나타내는 제1 자유도 변수, y축 방향의 회전을 나타내는 제2 자유도 변수, z축 방향의 회전을 나타내는 제3 자유도 변수 및 요(yaw) 방향의 회전을 나타내는 제4 자유도 변수를 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성되고,상기 제2 정합 알고리즘은 상기 6 자유도로서 상기 제1 내지 제4 자유도 변수에 더하여 롤(roll) 방향의 회전을 나타내는 제5 자유도 변수 및 피치(pitch) 방향의 회전을 나타내는 제6 자유도 변수를 더 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성되는, 데이터 처리 방법.
- 제5항에 있어서,상기 제1 정합 알고리즘은 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터가 동일한 평면 상이 있는 것으로 가정하는 제1 환경 조건 하에서, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성되는, 데이터 처리 방법.
- 제5항에 있어서,상기 제1 정합 알고리즘 및 상기 제2 정합 알고리즘 중 적어도 하나는 상기 공간이 적어도 하나의 직육면체 객체들로 구성된다는 제2 환경 조건 하에서, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하도록 구성되는, 데이터 처리 방법.
- 제1항에 있어서,상기 선택하는 단계는,상기 피처 매칭에 따라 획득된 상기 매칭 피처 쌍들의 개수가 많을수록 복수의 자유도 변수들 중 더 많은 자유도 변수를 추정하여 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 정합 알고리즘을 선택하고,상기 복수의 자유도 변수들은, x축 방향의 회전을 나타내는 제1 자유도 변수, y축 방향의 회전을 나타내는 제2 자유도 변수, z축 방향의 회전을 나타내는 제3 자유도 변수, 요(yaw) 방향의 회전을 나타내는 제4 자유도 변수, 롤(roll) 방향의 회전을 나타내는 제5 자유도 변수, 및 피치(pitch) 방향의 회전을 나타내는 제6 자유도 변수를 포함하는, 데이터 처리 방법.
- 제1항에 있어서,상기 피처 매칭을 수행하는 단계는,상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터의 각각으로부터 복수의 특징 포인트들을 추출하는 단계; 및상기 제1 포인트 클라우드 데이터로부터 추출된 특징 포인트들과 상기 제2 포인트 클라우드 데이터로부터 추출된 특징 포인트들을 매칭시킴으로써, 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들을 결정하는 단계를 포함하는, 데이터 처리 방법.
- 제1항에 있어서,상기 선택하는 단계는,상기 매칭 피처 쌍들의 개수가 제1 개수 미만이면, 복수의 정합 알고리즘들 중에서 제1 자유도 수준으로 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 제1 정합 알고리즘을 선택하고,상기 피처 매칭에 따라 획득된 상기 매칭 피처 쌍들의 개수가 제1 개수 이상이면, 상기 복수의 정합 알고리즘들 중에서 상기 제1 자유도 수준보다 더 높은 상기 제2 자유도 수준으로 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는 제2 정합 알고리즘을 선택하되,상기 제1 개수는,상기 제1 포인트 클라우드 데이터로부터 추출된 제1 특징 포인트들 중 제1 유효 특징 포인트들의 비율 및 상기 제2 포인트 클라우드 데이터로부터 추출된 제2 특징 포인트들 중 제2 유효 특징 포인트들의 비율 중 적어도 하나와,상기 제1 유효 특징 포인트들 중 상기 매칭 피처 쌍들을 결정하기 위해 사용된 제1 매칭 포인트들의 비율 및 상기 제2 유효 특징 포인트들 중 상기 매칭 피처 쌍들을 결정하기 위해 사용된 제2 매칭 포인트들의 비율 중 적어도 하나에 기반하여 결정된 값인, 데이터 처리 방법.
- 제1항의 방법을 상기 컴퓨터 시스템에서 실행시키기 위한 컴퓨터 프로그램이 저장된 비-일시적인 컴퓨터 판독가능한 기록 매체.
- 데이터 처리 방법을 수행하는 컴퓨터 시스템에 있어서,메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,상기 적어도 하나의 프로세서는,이동체가 주행하는 공간에 대한 제1 포인트 클라우드 데이터를 획득하고,상기 이동체로부터의 상기 공간에 대한 센싱 데이터에 기반하여 생성된 제2 포인트 클라우드 데이터를 획득하고,상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간에 피처 매칭을 수행하고,상기 피처 매칭에 따라 획득된 상기 제1 포인트 클라우드 데이터와 상기 제2 포인트 클라우드 데이터 간의 매칭 피처 쌍들의 개수에 기반하여, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하기 위한 정합 알고리즘을 선택하고,상기 선택된 정합 알고리즘을 이용하여, 상기 제1 포인트 클라우드 데이터에 대해 상기 제2 포인트 클라우드 데이터를 정합하는, 컴퓨터 시스템.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2024-0011932 | 2024-01-26 | ||
| KR1020240011932A KR102803033B1 (ko) | 2024-01-26 | 2024-01-26 | 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터 간의 매칭 포인트들의 수에 기반하여 선택된 정합 알고리즘을 이용하는 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터의 정합 방법 및 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025159261A1 true WO2025159261A1 (ko) | 2025-07-31 |
Family
ID=95710207
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2024/013764 Pending WO2025159261A1 (ko) | 2024-01-26 | 2024-09-11 | 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터 간의 매칭 포인트들의 수에 기반하여 선택된 정합 알고리즘을 이용하는 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터의 정합 방법 및 장치 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR102803033B1 (ko) |
| WO (1) | WO2025159261A1 (ko) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104392426A (zh) * | 2014-10-23 | 2015-03-04 | 华中科技大学 | 一种自适应的无标志点三维点云自动拼接方法 |
| JP2018055674A (ja) * | 2016-08-01 | 2018-04-05 | コグネックス・コーポレイション | ビジョンシステムにおいて3dアライメントアルゴリズムを自動選択するためのシステム及び方法 |
| JP2020160594A (ja) * | 2019-03-25 | 2020-10-01 | 本田技研工業株式会社 | 自己位置推定方法 |
| KR20210147855A (ko) * | 2020-05-28 | 2021-12-07 | 네이버랩스 주식회사 | 시각 특징 맵 생성 방법 및 시스템 |
| CN116340876A (zh) * | 2023-01-06 | 2023-06-27 | 苏州航遥启程科技有限公司 | 一种局域多源数据融合的空间目标态势感知方法 |
-
2024
- 2024-01-26 KR KR1020240011932A patent/KR102803033B1/ko active Active
- 2024-09-11 WO PCT/KR2024/013764 patent/WO2025159261A1/ko active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104392426A (zh) * | 2014-10-23 | 2015-03-04 | 华中科技大学 | 一种自适应的无标志点三维点云自动拼接方法 |
| JP2018055674A (ja) * | 2016-08-01 | 2018-04-05 | コグネックス・コーポレイション | ビジョンシステムにおいて3dアライメントアルゴリズムを自動選択するためのシステム及び方法 |
| JP2020160594A (ja) * | 2019-03-25 | 2020-10-01 | 本田技研工業株式会社 | 自己位置推定方法 |
| KR20210147855A (ko) * | 2020-05-28 | 2021-12-07 | 네이버랩스 주식회사 | 시각 특징 맵 생성 방법 및 시스템 |
| CN116340876A (zh) * | 2023-01-06 | 2023-06-27 | 苏州航遥启程科技有限公司 | 一种局域多源数据融合的空间目标态势感知方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102803033B1 (ko) | 2025-05-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020171553A1 (en) | An electronic device applying bokeh effect to image and controlling method thereof | |
| WO2011013862A1 (ko) | 이동 로봇의 위치 인식 및 주행 제어 방법과 이를 이용한 이동 로봇 | |
| WO2020256517A2 (ko) | 전방위 화상정보 기반의 자동위상 매핑 처리 방법 및 그 시스템 | |
| WO2020180084A1 (ko) | 타겟 이미지의 채색 완성 방법, 장치 및 컴퓨터 프로그램 | |
| WO2019124728A1 (ko) | 객체를 식별하기 위한 장치 및 방법 | |
| WO2021025364A1 (ko) | 라이다와 카메라를 이용하여 이미지 특징점의 깊이 정보를 향상시키는 방법 및 시스템 | |
| WO2021086018A1 (ko) | 3차원 증강현실 표시 방법 | |
| WO2023128100A1 (ko) | 3차원 가상모델 제공 방법 및 그를 위한 3차원 가상모델 제공 시스템 | |
| WO2019194544A1 (en) | Method and system for handling 360 degree image content | |
| WO2019132566A1 (ko) | 멀티 심도 이미지의 자동 생성 방법 | |
| WO2023095971A1 (ko) | 단말 거치대를 이용한 이미지 생성 방법 및 그를 위한 휴대 단말 | |
| WO2019245320A1 (ko) | 이미지 센서와 복수의 지자기 센서를 융합하여 위치 보정하는 이동 로봇 장치 및 제어 방법 | |
| WO2025159261A1 (ko) | 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터 간의 매칭 포인트들의 수에 기반하여 선택된 정합 알고리즘을 이용하는 타겟 포인트 클라우드 데이터와 소스 포인트 클라우드 데이터의 정합 방법 및 장치 | |
| WO2020251151A1 (ko) | 3차원 가상 공간 모델을 이용한 사용자 포즈 추정 방법 및 장치 | |
| WO2017007047A1 (ko) | 불규칙 비교를 이용하는 공간적 깊이 불균일성 보상 방법 및 장치 | |
| WO2024101833A1 (ko) | 3차원 모델 및 거리뷰 영상을 이용한 시각 특징맵 생성 방법 및 시스템 | |
| WO2019194561A1 (ko) | 이동형 단말기에서의 증강 현실을 제공하기 위한 위치 인식 방법 및 시스템 | |
| WO2021182793A1 (ko) | 단일 체커보드를 이용하는 이종 센서 캘리브레이션 방법 및 장치 | |
| WO2025116222A1 (ko) | 이미지 기반의 vps 기술이 적용된 3차원 맵 기반 서비스 제공 방법 및 시스템 | |
| WO2025154898A1 (ko) | 2차원 거리뷰 이미지들에 기반하여 생성된 3차원 지도에 ar 이미지들을 정합하는 방법 및 장치 | |
| WO2022071730A1 (en) | Method and device for performing plane detection | |
| WO2024210429A2 (en) | System and method for creating 3d representation of images | |
| WO2025143386A1 (ko) | 특정 위치와 연관된 2차원 이미지가 3차원 디지털 트윈 콘텐츠의 대응하는 위치에 배치되는 3차원 디지털 트윈 콘텐츠를 제공하는 방법 및 장치 | |
| WO2023017947A1 (ko) | 자율주행에서의 시각적 속성 추정을 위한 시각 정보 처리 방법 및 시스템 | |
| WO2021118115A1 (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: 24920677 Country of ref document: EP Kind code of ref document: A1 |