WO2024076023A1 - Gcn 기반의 3차원 객체 인식 및 포즈 추정 방법 및 장치 - Google Patents

Gcn 기반의 3차원 객체 인식 및 포즈 추정 방법 및 장치 Download PDF

Info

Publication number
WO2024076023A1
WO2024076023A1 PCT/KR2023/013667 KR2023013667W WO2024076023A1 WO 2024076023 A1 WO2024076023 A1 WO 2024076023A1 KR 2023013667 W KR2023013667 W KR 2023013667W WO 2024076023 A1 WO2024076023 A1 WO 2024076023A1
Authority
WO
WIPO (PCT)
Prior art keywords
graph
bounding box
pose estimation
object recognition
matrix
Prior art date
Application number
PCT/KR2023/013667
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 WO2024076023A1 publication Critical patent/WO2024076023A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • G06V10/476Contour-based spatial representations, e.g. vector-coding using statistical shape modelling, e.g. point distribution models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/76Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries based on eigen-space representations, e.g. from pose or different illumination conditions; Shape manifolds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • G06V10/7635Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks based on graphs, e.g. graph cuts or spectral clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Definitions

  • the present invention relates to 3D object recognition and pose estimation technology.
  • GCN Graph Convolutional Network
  • 3D objects are detected by structuring points in a point cloud into a graph and 9 degrees of freedom. ; DOF) and a 3D object recognition and pose estimation method for estimating the corresponding pose.
  • Computer vision is one of the computer science research fields that studies aspects of machine vision. Recently, deep learning-based 3D object detection methods using 3D sensors have been actively proposed in various fields such as autonomous driving and robotics.
  • 3D acquisition technology there are various types of 3D scanners, LiDAR, and RGB-D cameras (e.g., Kinect, RealSense, or Apple depth cameras) to acquire 3D information, such as Space and object geometric shape or scale information can be obtained from information collected by a 3D sensor.
  • a 3D sensor uses infrared rays to find depth information between an object and the sensor through changes in the waveform or time difference of the wavelength reflected by the object.
  • Accurate spatial characteristics can be obtained through depth information obtained from a 3D sensor, and can be converted into spatial information including color information using the camera's RGB data. This spatial information can be expressed as a point cloud, one of the three-dimensional data structures.
  • a point cloud is primitive point information representing three-dimensional information, and has information such as color, reflectivity, or transparency as well as coordinate information.
  • Existing 3D information was converted into a 3D mesh model using polygons to reduce data processing, but with the advancement of hardware performance such as GPU, 3D point clouds can now be processed directly.
  • deep learning has been used to efficiently process point clouds, and in particular, research in the field of object detection is being actively conducted for use in the fields of unmanned vehicles, drones, or augmented reality.
  • a method of processing point clouds using deep learning for object detection includes a 3D CNN (Convolution Neural Network) method that processes spatial information implicitly.
  • CNN is a deep learning model widely used in the image field and has the characteristic of efficiently gathering and processing image features.
  • the present invention is a project of the 2021 Test Bed Seoul Demonstration Support Project (IU210024) of the Seoul Business Agency of Seoul, “A restoration content implementation solution and AR urban ruins docent system (App AR + Web AR) implemented in augmented reality on the traces of Seoul urban ruins”. This is a technology developed through
  • Patent Document 1 Korean Patent Publication No. 10-2022-0095091
  • the purpose of the present invention is to represent a point cloud as a graph based on GCN and use a structured adjacency matrix and feature matrix to obtain the class, bounding box, size, and pose of the object to which each vertex belongs. 3D object recognition and pose The purpose is to provide estimation methods and devices.
  • the purpose of the present invention is to apply KAT (Keypoint Attention Mechanism), which sorts coordinates according to the characteristics of neighboring points based on GAT (Graph Attention Network), to estimate the poses of multiple objects with a single shot and reduce the transformation variance of GCN.
  • KAT Keypoint Attention Mechanism
  • GAT Graph Attention Network
  • the purpose of the present invention is to overcome the rotation error by estimating the nine degrees of freedom (i.e., three coordinates, three translations, and three rotations) of the object through quaternion rotation and to estimate the IoU rotated around all axes.
  • the goal is to provide a 3D object recognition and pose estimation method and device that calculates (Intersection over Union).
  • the first aspect of the present invention for achieving the above object is a 3D object recognition and pose estimation method performed in a 3D object recognition and pose estimation device, comprising the steps of receiving a point cloud as an input, the point cloud It includes constructing a graph from, detecting an object and estimating its pose by repeatedly applying GCN (Graph Convolutional Network) to the graph, and determining a bounding box of the detected object.
  • GCN Graph Convolutional Network
  • the step of constructing the graph includes determining key points that will become vertices of the graph in the point cloud, connecting the key points to structure the graph, and generating an adjacency matrix and a feature matrix from the structured graph. It may include steps.
  • the step of determining the key point includes calculating the size of the space based on the maximum coordinate value of the point cloud, dividing the space by dividing the size of the space by a preset voxel size, and dividing the space into the point cloud.
  • Dividing each coordinate by the voxel size to set a voxel index and indicating the position of the voxel corresponding to the voxel index, and randomly determining a key point among points included in the same voxel based on the voxel index, , the voxel size can be set according to the size of the three-dimensional object to be detected.
  • the step of structuring the graph includes addressing the key points in a determined order, and constructing a graph by connecting the key points through a sphere-based nearest neighbor search algorithm set to a size that can include the size of the object. It may include the step of generating an edge list indicating a connection relationship between key points based on the coordinate information and addressing information of the key point.
  • the step of generating the adjacency matrix and the feature matrix includes adding a loop connecting the keypoint itself to the edge list to generate an original adjacency matrix indicating the connection state between keypoints, and the edge list It may include generating a degree matrix representing the number of edges of each key point based on and generating a relative adjacency matrix representing the connection state and relative distance information between key points through the difference between the degree matrix and the original adjacency matrix. .
  • the step of generating the adjacency matrix and the feature matrix includes generating a feature matrix based on feature information of the key point, wherein the feature information includes coordinate information of the key point, RGB information of the key point, or key point information. It may correspond to the coordinate information of the relative adjacency matrix for .
  • the step of detecting the object and estimating the pose includes multiplying the relative adjacency matrix and the feature matrix to generate a relative feature matrix reflecting relative characteristics between the key points, and It may include obtaining a new feature matrix by applying color information to a multi-layer neural network (Multi-Layer Perceptrons (MLP)).
  • MLP Multi-Layer Perceptrons
  • the step of detecting the object and estimating the pose includes repeating an operation of multiplying the new feature matrix and the original adjacency matrix a certain number of times to obtain an operation output value in which information on adjacent key points is aggregated, the operation calculation It may include applying the value to a multi-layer neural network to convert it into a final calculated value from which information about the order of key point features is removed, and predicting the class and bounding box of the object based on the final calculated value.
  • the step of obtaining the operation output value includes obtaining a result value by multiplying the new feature matrix and the original adjacency matrix, applying a skip connection to the result value, and the skip connection.
  • the step of multiplying the new feature matrix and the original adjacency matrix to obtain a result value and re-performing the step of applying a skip connection may be included.
  • the step of predicting the class and bounding box includes applying the final calculated value to a multi-layer neural network to generate a predicted value for each class, and applying the predicted value to Softmax to generate a probability value for each class. It may include converting to , and predicting bounding boxes as many as the number of classes.
  • the step of determining the bounding box includes performing quaternion rotation on the bounding box predicted for the detected object, and when there are multiple predicted bounding boxes, Non-Maximum Suppression (NMS) It may include determining a bounding box for the object using .
  • NMS Non-Maximum Suppression
  • the step of learning the GCN may be further included.
  • generating a class label by assigning a class index, a background index, or a non-consideration index to the object according to the position of the key point constituting the graph with respect to the bounding box, and Generating a box label based on the center coordinates (x, y, z), width, depth, height, pitch, roll, and yaw of the bounding box,
  • the center coordinate corresponds to a vector value calculated through the difference between the center of the bounding box and the key point
  • the width, depth, and height are normalized values between 0 and 1
  • the pitch, roll, and yaw are quaternion rotations. It may correspond to a value converted through .
  • the step of learning the GCN includes calculating cross entropy based on the distribution between the actual class of the object and the class predicted for the object, for class learning for detecting the object, and the object
  • a step of calculating by applying a Huber loss function to the actual bounding box of the object and the bounding box predicted for the object may be included.
  • the second aspect of the present invention for achieving the above object is a 3D object recognition and pose estimation device, comprising a data input module that receives a point cloud, a graph conversion module that constructs a graph from the point cloud, and a GCN in the graph. It includes a deep learning performance module that detects an object and estimates its pose by repeated application, and a box management module that determines a bounding box of the detected object.
  • a third aspect of the present invention for achieving the above object is characterized in that, in a computer program stored in a computer-readable medium, when an instruction of the computer program is executed, a data matching method is performed.
  • the present invention it is possible to obtain the class, bounding box, size, and pose of a 3D object from a point cloud with a single shooting.
  • the learning and prediction layers are simplified compared to GNN-based systems to improve speed, and by introducing a relative adjacency matrix to reflect relative characteristics, accuracy is also improved.
  • the efficiency of memory use is increased by reusing the graph structure in each process of aggregating the point features of the point cloud itself and its neighbors, making learning and prediction possible not only on the GPU but also on the CPU.
  • FIG. 1 is a block diagram of a 3D object recognition and pose estimation device according to a preferred embodiment of the present invention.
  • Figure 2 is a block diagram of a graph transformation module according to one embodiment.
  • Figure 3 is a flowchart of a 3D object recognition and pose estimation method according to an embodiment.
  • Figure 4 is an example diagram for explaining a relative adjacency matrix according to an embodiment.
  • Figure 5 is an example diagram for explaining a new feature matrix according to an embodiment.
  • Figure 6 is an example diagram for explaining Intersection over Union (IoU) according to an embodiment.
  • first, second, etc. are used to describe various elements, elements and/or sections, it is understood that these elements, elements and/or sections are not limited by these terms. These terms are merely used to distinguish one element, element, or section from other elements, elements, or sections. Therefore, it goes without saying that the first element, first element, or first section mentioned below may also be a second element, second element, or second section within the technical spirit of the present invention.
  • identification codes e.g., a, b, c, etc.
  • the identification codes do not explain the order of each step, and each step is clearly specified in the context. Unless the order is specified, it may occur differently from the specified order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the opposite order.
  • FIG. 1 is a block diagram of a 3D object recognition and pose estimation device according to a preferred embodiment of the present invention.
  • the 3D object recognition and pose estimation device 100 includes a data input module 110, a graph transformation module 120, a box management module 130, a deep learning performance module 140, and a visualization module ( 150), and a control module 160.
  • the data input module 110 receives data corresponding to a point cloud.
  • the subject providing the point cloud data can be applied in a variety of ways, and there are no restrictions on the method of providing and receiving data, so it will not be described in detail here.
  • the graph conversion module 120 configures the point cloud into a graph.
  • the graph transformation module 120 extracts key points on a voxel basis to efficiently encode a point cloud in an adjacent graph of a fixed radius and aggregate features of adjacent points using a new graph representation. And the extracted keypoints can be connected to form an adjacency matrix representing the connection relationship and a feature matrix representing the feature information of the keypoints.
  • the graph transformation module 120 includes a keypoint extractor 210 that extracts keypoints based on voxels, and an edge extractor that creates an edge list by forming connections between keypoints.
  • a generator 220 an adjacency matrix converter 230 that converts the edge list into a sparse adjacency matrix, a feature matrix generator 240 that generates a feature matrix containing feature information of each key point, and finally It may include a tensor conversion unit 250 that converts the generated matrix into a tensor that can be used in Pytorch, an open source machine learning library.
  • the box management module 130 converts the actual bounding box of the 3D object into learning data, preprocesses it, and determines the bounding box for the recognized 3D object. That is, the box management module 130 includes a preprocessing algorithm and a normalizing algorithm for converting the actual bounding box into learning data, and may include a Non-Maximum Suppression (NMS) algorithm for determining the bounding box.
  • NMS Non-Maximum Suppression
  • the deep learning performance module 140 is composed of a GCN layer and repeatedly applies GCN to the graph to detect a 3D object and estimate its pose.
  • GCN Graph Neural Networks
  • GCN Graph Convolutional Network
  • a representative GNN method is an extension of the existing CNN (Convolutional Neural Network) and can process data supported by graphs.
  • the one-stage method is a method in which the classification and localization problems of detecting and classifying objects are simultaneously solved. According to the present invention, detection and pose estimation of a 3D object from a point cloud can be performed simultaneously.
  • the deep learning performance module 140 applies a Keypoint Attention Mechanism (KAT) that aggregates the relative features between each point to estimate the class and pose of the object to which the key point of the graph belongs and 9 of multiple object poses.
  • KAT Keypoint Attention Mechanism
  • Degrees of freedom (DOF) estimates can be designed.
  • KAT is an application of GAT (Graph Attention Network) to key points.
  • GAT efficiently performs attention-based operations on graph-structured data and sets different weights for neighboring points. By specifying it, it can be applied to graph nodes with a different degree of freedom that is equal to the number of neighbors the node has.
  • Visualization module 150 provides visualization.
  • the visualization module 150 can visualize the predicted bounding box through the deep learning execution module 140 so that it can be output on the display, and the visualization method can be performed by a person skilled in the art of the present invention. Since it can be easily performed, it will not be described in detail.
  • the control module 160 controls the operations and data flow of the data input module 110, graph conversion module 120, box management module 130, deep learning performance module 140, and visualization module 150.
  • learning and visualization can be implemented through options. That is, the control module 160 can control learning to be performed according to the user's selection or prediction (i.e., testing) based on the learned weight values, and visualization can be performed through the visualization module 150. You can control the visualization to be performed or not performed.
  • the 3D object recognition and pose estimation device 100 increases the reusability of program sources through modularization of the configuration according to each role and allows the preprocessing process, learning process, and prediction process to be performed efficiently.
  • the preprocessing process can be performed equally in both the learning and prediction processes
  • the learning process is a process for learning a deep learning algorithm based on the results of the preprocessing process
  • the prediction process is a process for training the stored model after the learning has sufficiently progressed. This is the process of recognizing a 3D object and estimating its pose based on the results of loading and preprocessing.
  • Figure 3 is a flowchart of a 3D object recognition and pose estimation method according to an embodiment.
  • a point cloud for N points is a set It can be defined as, where is a three-dimensional coordinate that represents the properties of the point and status value It is a point that has all the length vectors corresponding to .
  • the graph conversion module 120 constructs a graph from the point cloud (step S320).
  • E corresponds to the neighboring points that are connected within the radius. Since a point cloud generally consists of tens of thousands of points, constructing a graph with all points as vertices can result in a significant computational burden. Therefore, a graph can be constructed using the down-sampled point cloud, and in the present invention, a graph can be constructed by extracting key points.
  • the keypoint extractor 210 can determine a keypoint that will be the vertex of the graph in the point cloud. More specifically, the keypoint extractor 210 may calculate the size of the space based on the maximum spatial coordinates of the point cloud and divide the space by dividing the size of the space by a preset voxel size. Here, since the number of keypoints is determined according to the voxel size, the voxel size can be set according to the size of the 3D object to be detected. The key point extractor 210 may divide each coordinate of the point cloud by the voxel size to set a voxel index and represent each point as the position of a voxel corresponding to the voxel index.
  • the voxel index may correspond to the quotient obtained by dividing each coordinate of the point cloud by the voxel size.
  • the keypoint extractor 210 may randomly determine a keypoint among points included in the same voxel based on the voxel index.
  • the edge generator 220 can connect the key points to structure the graph. More specifically, the edge generator 220 addresses keypoints according to the order in which the keypoints are determined by the keypoint extractor 210. In other words, key points are numbered and indexed starting from 0 according to the order in which they were determined.
  • the edge generator 220 may construct a graph by connecting the keypoints through a sphere-based nearest neighbor search algorithm (k-Nearest Neighbors) set to a size that can include the size of the 3D object. Additionally, the edge generator 220 may generate an edge list indicating the connection relationship between key points centered on each key point based on the coordinate information and addressing information of the key point.
  • k-Nearest Neighbors sphere-based nearest neighbor search algorithm
  • the adjacency matrix conversion unit 230 generates an adjacency matrix from a structured graph.
  • the adjacency matrix converter 230 converts the adjacency matrix based on the edge list, and the point cloud structured as a graph is not a connection of all key points, but rather a connection of key points within a certain range, so the adjacency matrix is in the form of a sparse matrix. It is expressed.
  • the adjacency matrix converter 230 adds a loop connecting the keypoint itself to the edge list so that the keypoint's own characteristics can be included when calculating feature matrices and matrix multiplication later, thereby indicating the connection status between keypoints.
  • the original adj matrix can be created.
  • the original adjacency matrix generated in this way can indicate the connection state between points, but does not contain information about the relative distance from the key point, so the adjacency matrix converter 230 generates an order matrix indicating the number of edges of each key point based on the edge list. You can create a relative adjacency matrix representing the connection status and relative distance information between key points through the difference between the degree matrix and the original adjacency matrix.
  • a relative adjacency matrix is used to reflect relative information between points in the GCN structure.
  • the present invention can apply a structure based on GAT (Graph Attention Networks) that uses attention to learn the relative weight between two nodes connected in message passing, and GAT is applied to the node pair i and j. It is not explained in detail because it can be easily understood by a person skilled in the art of the present invention to calculate the attention to detail.
  • GAT Graph Attention Networks
  • KAT Keypoint Attention Mechanism
  • KAT Keypoint Attention Mechanism
  • the adjacency matrix conversion unit 230 sorts the coordinates of neighboring points according to structural features instead of the center coordinates of the key point.
  • KAT Keypoint Attention Mechanism
  • the connection relationship of points is expressed as a positive number and the number of edges is expressed as a negative number, which can be used as a relative adjacency matrix.
  • the relative adjacency matrix does not add the central coordinate feature of the key point as it is when calculating the feature matrix and matrix multiplication, but can be expressed as the relative coordinates between adjacent points by subtracting the number of neighboring points connected to the key point.
  • the state of its neighbors the state of the key point is modified by [Equation 1] below, and the value obtained by [Equation 1] is similar to each vector value with direction and size.
  • X is the (x, y, z) coordinate of the point
  • X pk is the coordinate of the kth neighboring point
  • the feature matrix generator 240 generates a feature matrix from a structured graph.
  • the feature matrix generator 240 may generate a feature matrix based on the feature information of the key point, and the feature information may be generated by applying the key point's RGB information, coordinate (x, y, z) information, and KAT. It may contain new coordinate information updated to the modified state, that is, KAT.
  • the deep learning performance module 140 repeatedly applies GCN to the graph to detect the object and estimate the pose (step S330).
  • the graph is a set of nodes and a set of edges ( , ), where the node and the main line between silver node Autumn node It is a binary value indicating whether it is related to .
  • the connections between nodes are directed, so edges is a reciprocal trunk may be different from , and each node has a c-dimensional feature vector, that is, It can be expressed as GCN is an extension of CNN that operates on a graph representation instead of a regular image grid, where the input graph Given a GCN operation is the given node neighbor of in Aggregates the functions of nodes.
  • GCN operations Updates the value of a given node by aggregating features between adjacent nodes as shown in [Equation 2], which mirrors the way a convolutional filter aggregates nearby pixels and aggregates the features of nearby nodes. Unlike CNN, GCN does not apply different weights to different neighbors.
  • the deep learning performance module 140 multiplies the relative adjacency matrix generated by the adjacency matrix conversion unit 230 and the feature matrix generated by the feature matrix generator 240 to create a relative feature matrix reflecting the relative information between key points.
  • a new, higher-dimensional feature matrix can be obtained by generating a relative feature matrix and applying the color information (RGB information) of key points to a multi-layer neural network (Multi-Layer Perceptrons; MLP).
  • MLP multi-layer neural network
  • the deep learning performance module 140 may multiply a relative adjacency matrix and a feature matrix including coordinate information of key points to generate a relative feature matrix reflecting relative characteristics between key points. For example, referring to FIG.
  • the deep learning performance module 140 may repeat the operation of multiplying the new feature matrix and the original adjacency matrix a certain number of times to obtain an operation output value in which information on adjacent key points is aggregated.
  • the deep learning performance module 140 obtains a result value by multiplying the new feature matrix and the original adjacency matrix, applies skip connection to the result value, and then multiplies the original adjacency matrix and the new feature matrix again.
  • the result can be obtained. That is, the deep learning performance module 140 may repeat the process of applying the skin connection to the result of multiplying the new feature matrix and the original adjacency matrix a certain number of times. For example, the GCN operation can be performed three times, and thus information up to the third neighbor of the graph can be aggregated.
  • the skip connection adds previous features to new features created through the graph convolution process, solving the problem that performance weakens as the number of operations on features that disappear through differentiation and the adjacency of the graph increases during the backpropagation process. It is applied for.
  • the deep learning performance module 140 connects the information of the previous layer and the next layer to use the information of the previous layer, adds features of the original point, and spatial information lost during down-sampling of key point extraction. To recover, features can be combined from the contracting path to the expanding path.
  • the deep learning performance module 140 applies the calculation output value to a multi-layer neural network to convert it into a final output value from which information about the order of key point features is removed, and predicts the class and bounding box of the 3D object based on the final output value. You can. That is, the deep learning performance module 140 reads out and generalizes the features aggregated through GCN and then estimates values for the class and bounding box through the fully connected layer. Preferably, the deep learning performance module 140 may apply the final calculated value to a multi-layer neural network to generate a predicted value for each class and apply the predicted value to Softmax to convert it into a probability value for each class.
  • the deep learning performance module 140 can predict bounding boxes as many as the number of predicted classes.
  • the value of the predicted bounding box is the center coordinates (Xc, Yc, Zc), width (W), depth (L), and height (H) information indicating the size of the box, and pitch indicating the degree of rotation of the box. Since it consists of roll and yaw values, prediction of the bounding box means estimation of the object pose.
  • the box management module 130 determines the bounding box of the detected object (step S340). Preferably, the box management module 130 loads the stored model after sufficient learning of the GCN has progressed through the deep learning performance module 140, and when the class and bounding box of the object are predicted, the result of the predicted bounding box is converted to the original. It can be converted on a point basis. In other words, the box management module 30 predicts the bounding box or performs box encoding, which converts it into a label corresponding to a key point and normalizes it before learning proceeds, so the bounding box is transformed through the deep learning performance module 140. Once predicted, box decoding is performed in reverse order of the normalization process in box encoding.
  • the box management module 130 It is possible to perform NMS (Non-Maximum Suppresion) to determine the final bounding box by removing overlapping bounding boxes and making the predicted bounding boxes into one common bounding box that is most suitable for the object.
  • NMS Non-Maximum Suppresion
  • the method of determining the bounding box through NMS can be easily performed by a person skilled in the art of the present invention, so it will not be described in detail.
  • the box management module 130 may perform quaternion rotation on predicted bounding boxes before performing NMS.
  • Quaternion rotation is a method used to solve the case of gimbal lock, which occurs when two rotation axes overlap in certain situations when using Euler angles and the directionality of one axis is lost.
  • the quaternion matrix expresses the rotation of each axis by introducing the concept of complex numbers, so the gimbal lock phenomenon that occurs in Euler rotation, It solves shortcomings such as instability that occurs when the size of increases and an increase in the amount of computation.
  • the visualization module 150 can visualize the bounding box determined by the box management module 130.
  • whether to perform visualization through the visualization module 150 can be performed by the user's selection, and this can be implemented as an option regarding whether to perform visualization through the control module 160.
  • prediction and learning of classes and bounding boxes can be selectively performed by the user and implemented as a prediction and learning option in the control module 160.
  • the deep learning performance module 140 may classify objects and backgrounds to learn classes.
  • the deep learning performance module 140 may receive the actual class of the object as input and convert the actual class into matrix data consisting of integer values through a one-hot encoding process.
  • the deep learning performance module 140 calculates the predicted value for each class in [Equation 4]. After passing softmax to make it a value between 0 and 1, pass log, and calculate the categorical cross-entropy error of the class using the correct answer label and prediction so that the greater the uncertainty of the prediction, the larger the error. Calculate .
  • Cross entropy is the actual answer during training and predicted value It can be calculated based on the distribution between the predicted class and the actual class among key points. Due to the nature of object detection, the distribution of the background class is larger than the distribution of the object class, so efficient learning is difficult when simply calculating the error, so cross entropy is used.
  • the deep learning performance module 140 may perform learning to increase the accuracy of the bounding box through the correct answer label instead of the predicted value for the bounding box. Since the bounding box must be predicted as an exact value rather than a probability prediction, the Huber loss function, which is not sensitive to outliers, can be used. Huber loss function in [Equation 5] is the correct answer and predict The absolute value of the error is If it is smaller than L2 error (Least Square Error) is used. For larger areas, L1 errors (Least Absolute Deviations) are used. By combining the L1 error and L2 error, differentiation is possible in all sections, making it easy to use in the backpropagation process.
  • L2 error Least Square Error
  • L1 errors Least Absolute Deviations
  • the box management module 130 creates a keypoint label through the graph transformation module 120. You can create and normalize the bounding box. More specifically, the box management module 130 assigns an index of the corresponding class to keypoints within the bounding box and assigns a background index to keypoints outside the bounding box. Here, the index is increased by 1 for each class of the object, starting with 0, which means the background, and the last index is Don't Care, which means that if the object is partially cut off severely, it is not distinguished by any object during learning. Can be divided into classes.
  • the box management module 130 may generate a class label corresponding to the index of the class and then generate a box label of the bounding box to be predicted.
  • the bounding box consists of center coordinates (Xc, Yc, Zc), width (W), depth (L), and height (H) information indicating the size of the box, and pitch, roll, and yaw values indicating the degree of rotation of the box.
  • the pitch, roll, and yaw values are values converted through quaternion rotation, and the nine values can be converted into box labels corresponding to the bounding box to which the key point belongs to be used as predicted correct answer labels.
  • the box management module 130 uses a vector value calculated through the difference between the center of the bounding box and the key point as the center coordinate of the bounding box, and sets the standard bounding representing the object for normalization of the width, depth, and height of the bounding box. Take the log of the value divided by the size of the box and normalize it to have a value between 0 and 1. Here, the average value of the class size of the object is used as the size of the standard bounding box.
  • the class labels and box labels generated in this way can be converted to Pytorch tensors and used for learning, and normalization can be performed in the same way during prediction.
  • the box management module 130 may obtain Intersection over Union (IoU) based on the predicted bounding box and the actual bounding box to evaluate the accuracy of the predicted bounding box through step S330.
  • IoU is a widely used evaluation metric for computer vision tasks such as object detection, segmentation, or tracking, and measures how close the predicted bounding box is to the actual one.
  • the box management module 130 may use the predicted bounding box and the actual bounding box as input to calculate the intersection volume of the two bounding boxes through IoU.
  • the exact 3D IoU value of a 3D bounding box can be calculated using a three-part algorithm.
  • the box management module 130 calculates the intersection between the faces of two bounding boxes using the Sutherland-Hodgman polygon clipping algorithm. For example, if x represents a determined bounding box and y represents an actual bounding box, the box management module 130 uses the inverse transformation of the bounding box x to calculate the intersection between the two bounding boxes x and y. Convert all boxes.
  • the transformed bounding box x is aligned with the axes and centered about the origin, while the bounding box y is translated into the coordinate system of the bounding box x and its orientation is maintained, and its volume remains invariant in the rigid body transformation.
  • the box management module 130 can calculate intersection points in this new coordinate system and estimate volumes from the transformed intersection points, and when that coordinate system is used, it is more efficient and simpler for bounding boxes because each surface is perpendicular to one of the coordinate axes. Polygonal clipping is possible.
  • the box management module 130 cuts each side of the bounding box y, which is a convex polygon, with respect to the axis-aligned bounding box x using a polygon clipping algorithm.
  • each world polygon is clipped to the camera frustum, and clipping is performed using the powerful Sutherland-Hodgman algorithm.
  • the edges of the plane are extended to virtually infinity, each edge of the polygon is iterated clockwise, and whether that edge intersects a face of the axis-aligned bounding box x is determined.
  • the box management module 130 can clip a polygon to a bounding box to calculate the intersection of each side, and the overall process of exchanging the bounding boxes x and y Repeat.
  • the box management module 130 calculates the intersection volume using the convex hull algorithm of all truncated polygons. For example, the volume of the intersection can be calculated by the convex hull of all truncated polygons, as shown in green in Figure 6(b).
  • the IoU as shown in (c) of Figure 6 can be calculated.
  • the box management module 130 can perform NMS on a plurality of bounding boxes to determine one bounding box, which is the same as the process performed in step S340 during prediction, so detailed It is not explained clearly.
  • the steps of the method or algorithm described in relation to the embodiment of the present invention may be implemented directly in hardware, implemented as a software module executed by hardware, or a combination thereof.
  • the software module may be RAM (Random Access Memory), ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), Flash Memory, hard disk, removable disk, CD-ROM, or It may reside on any type of computer-readable recording medium well known in the art to which the present invention pertains.
  • the components of the present invention may be implemented as a program (or application) and stored in a medium in order to be executed in conjunction with a hardware computer.
  • Components of the invention may be implemented as software programming or software elements, and similarly, embodiments may include various algorithms implemented as combinations of data structures, processes, routines or other programming constructs, such as C, C++, , may be implemented in a programming or scripting language such as Java, assembler, etc.
  • Functional aspects may be implemented as algorithms running on one or more processors.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 3차원 객체 인식 및 포즈 추정 장치에서 수행되는 3차원 객체 인식 및 포즈 추정 방법으로서, 포인트 클라우드(Point Cloud)를 입력 받는 단계, 상기 포인트 클라우드로부터 그래프를 구성하는 단계, 상기 그래프에 GCN(Graph Convolutional Network)을 반복 적용하여 객체를 감지하고 포즈를 추정하는 단계, 및 상기 감지한 객체의 바운딩 박스(Bounding Box)를 결정하는 단계를 포함한다.

Description

GCN 기반의 3차원 객체 인식 및 포즈 추정 방법 및 장치
본 발명은 3차원 객체 인식 및 포즈 추정 기술에 관한 것으로서, GCN(Graph Convolutional Network)을 기반으로 포인트 클라우드(Point Cloud)에서 포인트들을 그래프로 구조화하여 3차원 객체를 검출하고 9자유도(Degree Of Freedom; DOF)에 해당하는 포즈를 추정하는 3차원 객체 인식 및 포즈 추정 방법에 관한 것이다.
컴퓨터 비전(computer vision)은 기계의 시각에 해당하는 부분을 연구하는 컴퓨터 과학 연구 분야 중 하나이다. 최근에는 자율 주행 및 로봇 공학과 같은 다양한 분야에 3차원 센서를 활용하는 딥러닝 기반의 3차원 물체 검출 방법이 활발히 제안되고 있다. 3차원 획득 기술의 급속한 발전과 함께 3차원 정보를 획득하기 위한 다양한 유형의 3차원 스캐너, LiDAR, 및 RGB-D 카메라(예를 들어, Kinect, RealSense, 또는 애플 심도 카메라) 등이 있으며, 이와 같은 3차원 센서에 의해 수집된 정보로부터 공간과 물체의 기하학적 모양, 또는 스케일 정보가 획득될 수 있다. 3차원 센서는 적외선을 이용하여 물체에 반사되는 파장의 파형 변화나 시간차를 통해 물체와 센서 사이의 깊이 정보를 알아낸다. 3차원 센서로부터 획득한 깊이 정보를 통해 공간의 정확한 특징이 획득될 수 있으며, 카메라의 RGB 데이터를 사용하여 색상 정보가 포함된 공간 정보로 변환될 수 있다. 이러한 공간 정보는 3차원 데이터 구조 중 하나인 포인트 클라우드로 나타내어질 수 있다.
포인트 클라우드는 3차원 정보를 나타내는 원시적인 점 정보로서, 좌표 정보뿐만 아니라 색상, 반사도, 또는 투명도와 같은 정보를 가지고 있다. 기존의 3차원 정보는 데이터 처리량을 줄이기 위해 다각형을 활용한 3차원 메시 모델로 변환하여 사용되었으나, GPU와 같은 하드웨어 성능의 발전으로 3차원 포인트 클라우드가 바로 처리될 수 있게 되었다. 최근에는 포인트 클라우드를 효율적으로 처리하기 위해 딥러닝이 활용되고 있으며, 특히 무인 주행 자동차, 드론, 또는 증강현실 분야에 활용하기 위해 물체 검출 분야의 연구가 활발히 진행되고 있다. 객체 검출을 위해 포인트 클라우드를 딥러닝으로 처리하는 방식에는 공간적 정보를 함축하여 처리하는 3차원 CNN(Convolution Neural Network) 방식이 있다. CNN은 이미지 분야에서 널리 활용되는 딥러닝 모델로 이미지의 특징을 효율적으로 모아 처리하는 특징이 있다. 그러나 3차원의 경우에는 공간적 특징을 함축할 때 CNN 필터 적용으로 많은 연산량이 발생하고, 함축 과정에서 포인트의 3차원 좌표 정보 손실이 발생하는 문제가 있다. 따라서 딥러닝에 가장 적합한 포인트 클라우드 표현을 정의하고 이를 처리하는 방식에 대한 연구는 지속적으로 수행되고 있다.
본 발명은 서울특별시 서울산업진흥원 2021년도 테스트베드 서울 실증지원 사업(IU210024) "서울 도시유적의 흔적 위에 증강현실로 구현되는 복원 콘텐츠 구현 솔루션 및 AR 도시유적 도슨트 시스템 (App AR + Web AR)"을 통해 개발된 기술이다.
[선행기술문헌]
[특허문헌]
(특허문헌 1) 한국공개특허 제10-2022-0095091호
본 발명의 목적은 GCN기반으로 포인트 클라우드를 그래프로 표현하고 구조화한 인접 행렬과 특징 행렬을 이용하여 각 정점이 속하는 객체에 대한 클래스, 바운딩 박스, 크기, 및 포즈를 획득하는 3차원 객체 인식 및 포즈 추정 방법 및 장치를 제공하는데 있다.
본 발명의 목적은 한번의 촬영으로 여러 객체의 포즈를 추정하고 GCN의 변환 분산을 줄이기 위해 GAT(Graph Attention Network)를 기반으로 이웃점들의 특징에 따라 좌표를 정렬하는 KAT(Keypoint Attention Mechanism)을 적용한 3차원 객체 인식 및 포즈 추정 방법 및 장치를 제공하는데 있다.
본 발명의 목적은 쿼터니언 회전(Quaternion rotation)을 통해 객체의 9개의 자유도(즉, 3개의 좌표, 3개의 변환, 및 3개의 회전)를 추정하여 회전오류를 극복하고 모든 축을 중심으로 회전된 IoU(Intersection over Union)을 계산하는 3차원 객체 인식 및 포즈 추정 방법 및 장치를 제공하는데 있다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 제1 측면은, 3차원 객체 인식 및 포즈 추정 장치에서 수행되는 3차원 객체 인식 및 포즈 추정 방법에 있어서, 포인트 클라우드(Point Cloud)를 입력 받는 단계, 상기 포인트 클라우드로부터 그래프를 구성하는 단계, 상기 그래프에 GCN(Graph Convolutional Network)을 반복 적용하여 객체를 감지하고 포즈를 추정하는 단계, 및 상기 감지한 객체의 바운딩 박스(Bounding Box)를 결정하는 단계를 포함한다.
바람직하게, 상기 그래프를 구성하는 단계는, 상기 포인트 클라우드에서 그래프의 정점이 될 키포인트를 결정하는 단계, 상기 키포인트를 연결하여 그래프로 구조화하는 단계, 및 상기 구조화한 그래프로부터 인접 행렬 및 특징 행렬을 생성하는 단계를 포함할 수 있다.
바람직하게, 상기 키포인트를 결정하는 단계는, 상기 포인트 클라우드의 좌표 최대값을 기초로 공간의 크기를 산출하는 단계, 상기 공간의 크기를 기설정된 복셀 크기로 나눠 상기 공간을 분할하는 단계, 상기 포인트 클라우드의 각 좌표를 상기 복셀 크기로 나눠 복셀 인덱스를 설정하고 복셀 인덱스에 해당하는 복셀의 위치로 나타내는 단계, 및 상기 복셀 인덱스를 기초로 동일한 복셀에 포함되는 포인트 중 랜덤으로 키포인트를 결정하는 단계를 포함하되, 상기 복셀 크기는 검출하는 3차원 객체의 크기에 따라 설정될 수 있다.
바람직하게, 상기 그래프로 구조화하는 단계는, 상기 키포인트를 결정된 순서에 따라 주소화하는 단계, 상기 키포인트를 객체의 크기가 포함될 수 있는 크기로 설정된 원구 기반의 근접 이웃 탐색 알고리즘을 통해 연결하여 그래프를 구성하는 단계, 및 상기 키포인트의 좌표 정보와 주소화 정보를 기초로 키포인트들의 연결 관계를 나타내는 에지 리스트를 생성하는 단계를 포함할 수 있다.
바람직하게, 상기 인접 행렬 및 특징 행렬을 생성하는 단계는, 상기 에지 리스트에 키포인트 자신을 연결하는 루프(Loop)를 추가하여 키포인트들 간의 연결 상태를 나타내는 원본 인접 행렬을 생성하는 단계, 및 상기 에지 리스트를 기초로 각 키포인트의 에지 개수를 나타내는 차수 행렬을 생성하고 상기 차수 행렬과 상기 원본 인접 행렬의 차를 통해 키포인트들 간의 연결 상태와 상대적인 거리 정보를 나타내는 상대 인접 행렬을 생성하는 단계를 포함할 수 있다.
바람직하게, 상기 인접 행렬 및 특징 행렬을 생성하는 단계는, 상기 키포인트의 특징 정보를 기초로 특징 행렬을 생성하는 단계를 포함하되, 상기 특징 정보는, 키포인트의 좌표 정보, 키포인트의 RGB 정보, 또는 키포인트에 대한 상대 인접 행렬의 좌표 정보에 해당하할 수 있다.
바람직하게, 상기 객체를 감지하고 포즈를 추정하는 단계는, 상기 상대 인접 행렬과 상기 특징 행렬을 곱하여 상기 키포인트들 간의 상대적 특성이 반영된 상대적 특징 행렬을 생성하는 단계, 및 상기 상대적 특징 행렬과 상기 키포인트의 색상 정보를 다층 신경망(Multi-Layer Perceptrons; MLP)에 적용시켜 새 특징 행렬을 획득하는 단계를 포함할 수 있다.
바람직하게, 상기 객체를 감지하고 포즈를 추정하는 단계는, 상기 새 특징 행렬 및 상기 원본 인접 행렬을 곱하는 연산을 특정 횟수 반복하여 인접한 키포인트의 정보가 집계된 연산 산출값을 획득하는 단계, 상기 연산 산출값을 다층 신경망에 적용시켜 키포인트의 특징 간 순서에 대한 정보가 제거된 최종 산출값으로 변환하는 단계, 및 상기 최종 산출값을 기초로 객체의 클래스 및 바운딩 박스를 예측하는 단계를 포함할 수 있다.
바람직하게, 상기 연산 산출값을 획득하는 단계는, 상기 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하는 단계, 상기 결과값에 대해 스킵 커넥션(Skip Connection)을 적용하는 단계, 및 상기 스킵 커넥션을 적용한 후, 상기 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하는 단계 및 스킵 커넥션을 적용하는 단계를 재수행하는 단계를 포함할 수 있다.
바람직하게, 상기 클래스 및 바운딩 박스를 예측하는 단계는, 상기 최종 산출값을 다층 신경망에 적용시켜 각 클래스에 대한 예측값을 생성하는 단계, 상기 예측값을 소프트맥스(Softmax)에 적용시켜 각 클래스에 대한 확률값으로 변환하는 단계, 및 상기 클래스의 개수만큼 바운딩 박스를 예측하는 단계를 포함할 수 있다.
바람직하게, 상기 바운딩 박스를 결정하는 단계는, 상기 감지된 객체에 대해 예측된 바운딩 박스에 대해 쿼터니언 회전을 수행하는 단계, 및 상기 예측된 바운딩 박스가 복수개인 경우에는, NMS(Non-Maximum Suppression)을 이용하여 상기 객체에 대한 바운딩 박스를 결정하는 단계를 포함할 수 있다.
바람직하게, 상기 GCN을 학습하는 단계를 더 포함할 수 있다.
바람직하게, 상기 GCN을 학습하는 단계 이전에, 상기 그래프를 구성하는 키포인트의 바운딩 박스에 대한 위치에 따라 해당 객체의 클래스 인덱스, 배경 인덱스, 또는 고려 안함 인덱스를 부여하여 클래스 레이블을 생성하는 단계, 및 상기 바운딩 박스의 중심 좌표 (x,y,z), 너비, 깊이, 높이, 피치(pitch), 롤(roll), 및 요(yaw) 값을 기초로 박스 레이블을 생성하는 단계를 포함하되, 상기 중심 좌표는 상기 바운딩 박스의 중심과 키포인트의 차를 통해 연산된 벡터값에 해당하고, 상기 너비, 깊이, 및 높이는 0과 1 사이의 정규화된 값이고, 상기 피치, 롤, 및 요는 쿼터니언 회전을 통해 변환된 값에 해당할 수 있다.
바람직하게, 상기 GCN을 학습하는 단계는, 상기 객체를 감지하기 위한 클래스 학습을 위해, 상기 객체의 실제 클래스와 상기 객체에 대해 예측된 클래스 간의 분포를 기초로 교차 엔트로피를 계산하는 단계, 및 상기 객체의 포즈를 추정하기 위한 바운딩 박스 학습을 위해, 상기 객체의 실제 바운딩 박스와 상기 객체에 대해 예측된 바운딩 박스에 후버 손실(Huber loss) 함수를 적용하여 계산하는 단계를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 제2 측면은, 3차원 객체 인식 및 포즈 추정 장치로서, 포인트 클라우드를 입력 받는 데이터 입력 모듈, 상기 포인트 클라우드로부터 그래프를 구성하는 그래프 변환 모듈, 상기 그래프에 GCN을 반복 적용하여 객체를 감지하고 포즈를 추정하는 딥러닝 수행 모듈, 및 상기 감지한 객체의 바운딩 박스를 결정하는 박스 관리 모듈을 포함한다.
상기 목적을 달성하기 위한 본 발명의 제3 측면은 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램의 명령이 실행될 경우, 데이터 정합 방법이 수행되는 것을 특징으로 한다.
상기한 바와 같이 본 발명에 의하면, 한번의 촬영으로 포인트 클라우드로부터 3차원 객체에 대한 클래스, 바운딩 박스, 크기, 및 포즈를 획득할 수 있는 효과가 있다.
또한, 효율적인 특징 함축을 위한 GCN 모델을 설계하여 GNN 기반의 시스템에 비해 학습 및 예측 레이어를 간소화함으로써 속도를 향상시키고 상대적인 특성을 반영하기 위한 상대 인접 행렬을 도입함으로써 정확도도 향상시키는 효과가 있다.
또한, 포인트 클라우드 자신과 이웃의 포인트 특징을 집계하는 과정마다 그래프 구조를 재사용하여 메모리 사용의 효율성을 높임으로서 GPU 뿐만 아니라 CPU에서도 학습 및 예측이 가능한 효과가 있다.
도 1은 본 발명의 바람직한 실시예에 따른 3차원 객체 인식 및 포즈 추정 장치에 대한 블록도이다.
도 2는 일 실시예에 따른 그래프 변환 모듈에 대한 블록도이다.
도 3은 일 실시예에 따른 3차원 객체 인식 및 포즈 추정 방법에 대한 흐름도이다.
도 4는 일 실시예에 따른 상대 인접 행렬을 설명하기 위한 예시도이다.
도 5는 일 실시예에 따른 새 특징 행렬을 설명하기 위한 예시도이다.
도 6은 일 실시예에 따른 IoU(Intersection over Union)을 설명하기 위한 예시도이다.
이하, 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
또한, 각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다(comprises)" 및/또는 “포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
또한, 본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 3차원 객체 인식 및 포즈 추정 장치에 대한 블록도이다.
도 1을 참조하면, 3차원 객체 인식 및 포즈 추정 장치(100)는 데이터 입력 모듈(110), 그래프 변환 모듈(120), 박스 관리 모듈(130), 딥러닝 수행 모듈(140), 시각화 모듈(150), 및 제어 모듈(160)을 포함한다.
데이터 입력 모듈(110)은 포인트 클라우드(Point Cloud)에 해당하는 데이터를 입력 받는다. 바람직하게, 포인트 클라우드 데이터를 제공하는 주체는 다양하게 적용 가능하고 데이터를 제공하고 입력 받는 방법에도 제한이 없으므로 여기에서는 상세하게 설명하지 않는다.
그래프 변환 모듈(120)은 포인트 클라우드를 그래프로 구성한다. 바람직하게, 그래프 변환 모듈(120)은 고정 반경의 인접 그래프에서 포인트 클라우드를 효율적으로 인코딩하고 새로운 그래프 표현을 사용하여 주변에 인접된 포인트들의 특징을 집계하기 위해 복셀 기반으로 키포인트(Key Point)를 추출하고 추출된 키포인트를 서로 연결하여 연결 관계를 나타내는 인접 행렬과 키포인트의 특징 정보를 나타내는 특징 행렬을 구성할 수 있다. 보다 구체적으로, 도 2를 참조하면, 그래프 변환 모듈(120)은 복셀(Voxel) 기반으로 키포인트를 추출하는 키포인트 추출부(210), 키포인트 간의 연결을 형성하여 에지 리스트(Edge List)를 생성하는 에지 생성부(220), 에지 리스트를 희소행렬 형태의 인접 행렬로 변환시키는 인접행렬 변환부(230), 각 키포인트의 특징 정보를 포함하는 특징 행렬을 생성하는 특징행렬 생성부(240), 및 최종적으로 생성된 행렬을 오픈소스 머신 러닝 라이브러리인 Pytorch에서 사용할 수 있는 텐서(Tensor)로 변환하는 텐서 변환부(250)를 포함할 수 있다.
박스 관리 모듈(130)은 3차원 객체의 바운딩 박스(Bounding Box)에 대해 3차원 객체의 실제 바운딩 박스를 학습 데이터로 변환하고 전처리하며, 인식한 3차원 객체에 대한 바운딩 박스를 결정한다. 즉, 박스 관리 모듈(130)은 실제 바운딩 박스를 학습 데이터로 변환하는 전처리 알고리즘 및 정규화하는 알고리즘을 포함하고 바운딩 박스를 결정하기 위한 NMS(Non-Maximum Suppression) 알고리즘을 포함할 수 있다.
딥러닝 수행 모듈(140)은 GCN 레이어로 구성되어 그래프에 GCN을 반복 적용하여 3차원 객체를 감지하고 포즈를 추정한다. GCN(Graph Neural Networks)은 그래프 표현을 유지하면서 노드(node) 간의 메시지 전달(message passing)을 통해 노드 또는 에지(edge)의 표현을 학습하는 신경망이다. GNN의 대표적인 방법인 GCN(그래프 컨볼루션 신경망, Graph Convolutional Network)은 기존 CNN(Convolutional Neural Network)을 확장한 것으로서, 그래프에서 지원되는 데이터를 처리할 수 있다. 본 발명에서는 불규칙한 포인트들의 분포를 그래프로 구조화하여 3차원 객체를 감지하고 포즈를 추정하는 원 스테이지(one-stage) 방식의 GCN 파이프라인을 제안한다. 원 스테이지 방식은 객체를 감지하고 객체를 분류하는 Classification과 Localization 문제가 동시에 해결되는 방식으로서 본 발명에 의하면 포인트 클라우드로부터 3차원 객체의 감지와 포즈 추정이 동시에 수행될 수 있다.
바람직하게, 딥러닝 수행 모듈(140)은 그래프의 키포인트가 속하는 객체의 클래스(Class)와 포즈를 추정하기 위해 각 포인트 간의 상대적인 특징을 집계하는 KAT(Keypoint attention Mechanism)을 적용하고 여러 객체 포즈의 9자유도(DOF) 추정을 설계할 수 있다. 여기에서, KAT는 GAT(Graph Attention Network)를 키포인트에 대해 적용한 것으로서, GAT는 그래프 구조의 데이터에 대해 어텐션(Attention) 기반의 연산을 효율적으로 수행하고 이웃 포인트들에 대해 서로 다른 가중치(weight)를 지정함으로써 노드가 가지는 이웃의 수와 같으면서 다른 자유도(degree)를 가지는 그래프 노드에 적용될 수 있다.
시각화 모듈(150)은 시각화를 제공한다. 바람직하게, 시각화 모듈(150)은 딥러닝 수행 모듈(140)을 통해서 예측된 바운딩 박스를 디스플레이에 출력될 수 있도록 시각화할 수 있으며, 시각화하는 방법은 본 발명의 기술분야에 속하는 통상의 기술자에 의하여 용이하게 수행될 수 있으므로 상세하게 설명하지 않는다.
제어 모듈(160)은 데이터 입력 모듈(110), 그래프 변환 모듈(120), 박스 관리 모듈(130), 딥러닝 수행 모듈(140), 및 시각화 모듈(150)의 동작 및 데이터의 흐름을 제어하고, 학습 및 시각화는 옵션을 통해 구현될 수 있다. 즉, 제어 모듈(160)은 사용자의 선택에 따라 학습이 수행되거나 학습된 가중치(weight) 값을 기초로 예측(즉, 테스트)이 수행되도록 제어할 수 있고, 시각화 모듈(150)을 통해 시각화가 수행되도록 하거나 시각화가 수행되지 않도록 제어할 수 있다.
일 실시예에서, 3차원 객체 인식 및 포즈 추정 장치(100)는 각 역할에 따른 구성의 모듈화를 통해 프로그램 소스의 재사용성을 높이고 전처리 과정, 학습 과정, 및 예측 과정이 효율적으로 수행되도록 할 수 있다. 바람직하게, 전처리 과정은 학습 및 예측 과정에서 모두 동일하게 수행될 수 있고 학습 과정은 전처리 과정이 수행된 결과물을 기초로 딥러닝 알고리즘을 학습시키기 위한 과정이고 예측 과정은 학습이 충분히 진행된 후에 저장된 모델을 로드하여 전처리 과정이 수행된 결과물을 기초로 3차원 객체를 인식하고 포즈를 추정하는 과정이다.
이하에서는, 3차원 객체 인식 및 포즈 추정 장치(100)의 각 구성을 통하여 수행되는 동작을 도 3을 참조하여 상세하게 설명한다. 도 3를 참조하여 설명될 각 단계는 서로 다른 구성에 의하여 수행되는 것으로 기재하였으나 이에 제한되는 것은 아니며, 실시예에 따라 각 단계들의 적어도 일부는 서로 동일하거나 다른 구성에서 수행될 수도 있다.
도 3은 일 실시예에 따른 3차원 객체 인식 및 포즈 추정 방법에 대한 흐름도이다.
도 3을 참조하면, 데이터 입력 모듈(110)은 포인트 클라우드를 입력 받는다(단계 S310). 예를 들어, N개의 포인트에 대한 포인트 클라우드는 집합
Figure PCTKR2023013667-appb-img-000001
으로 정의될 수 있고, 여기에서
Figure PCTKR2023013667-appb-img-000002
는 포인트의 속성을 나타내는 3차원 좌표
Figure PCTKR2023013667-appb-img-000003
와 상태 값
Figure PCTKR2023013667-appb-img-000004
에 해당하는 길이 벡터를 모두 갖는 포인트이다.
그래프 변환 모듈(120)은 포인트 클라우드로부터 그래프를 구성한다(단계 S320). 바람직하게, 그래프 변환 모듈(120)은 p를 정점으로 사용하고 고정된 반지름, 즉, 기설정된 반경 내의 이웃 포인트를 연결하여 그래프 G=(P,E)를 구성할 수 있다. 여기에서, E는 반경 내에서 연결된 상태의 이웃 포인트에 해당한다. 포인트 클라우드는 일반적으로 수만 개의 포인트로 구성되므로 모든 포인트를 꼭짓점으로 하여 그래프를 구성하면 상당한 계산 부담이 따를 수 있다. 따라서, 다운 샘플링된 포인트 클라우드를 사용하여 그래프가 구성될 수 있고, 본 발명에서는 키포인트를 추출하여 그래프가 구성되도록 할 수 있다.
바람직하게, 키포인트 추출부(210)는 포인트 클라우드에서 그래프의 정점이 될 키포인트를 결정할 수 있다. 보다 구체적으로, 키포인트 추출부(210)는 포인트 클라우드의 공간 좌표 최대값을 기초로 공간의 크기를 산출하고 공간의 크기를 기설정된 복셀 크기로 나누어 공간을 분할할 수 있다. 여기에서, 복셀 크기에 따라 키포인트의 개수가 결정되므로 복셀 크기는 검출하는 3차원 객체의 크기에 따라 설정될 수 있다. 키포인트 추출부(210)는 포인트 클라우드의 각 좌표를 복셀 크기로 나누어 복셀 인덱스를 설정하고 각 포인트를 복셀 인덱스에 해당하는 복셀의 위치로 나타낼 수 있다. 여기에서, 복셀 인덱스는 포인트 클라우드의 각 좌표를 복셀 크기로 나누고 나온 몫에 해당할 수 있다. 그 다음, 키포인트 추출부(210)는 복셀 인덱스를 기초로 동일한 복셀에 포함되는 포인트 중 랜덤으로 키포인트를 결정할 수 있다.
바람직하게, 키포인트 추출부(210)를 통해 키포인트가 결정되면, 에지 생성부(220)는 키포인트를 연결하여 그래프로 구조화할 수 있다. 보다 구체적으로, 에지 생성부(220)는 키포인트 추출부(210)에서 키포인트가 결정된 순서에 따라 키포인트를 주소화한다. 즉, 키포인트가 결정된 순서에 따라 0부터 번호가 부여되어 인덱스화 되는 것이다. 그 다음, 에지 생성부(220)는 키포인트를 3차원 객체의 크기가 포함될 수 있는 크기로 설정된 원구 기반의 근접 이웃 탐색 알고리즘(k-Nearest Neighbors)을 통해 연결하여 그래프로 구성할 수 있다. 또한, 에지 생성부(220)는 키포인트의 좌표 정보와 주소화 정보를 기초로 각 키포인트를 중심으로 키포인트들의 연결 관계를 나타내는 에지 리스트를 생성할 수 있다.
바람직하게, 인접행렬 변환부(230)는 구조화한 그래프로부터 인접 행렬을 생성한다. 즉, 인접행렬 변환부(230)는 에지 리스트를 기반으로 인접 행렬로 변환하고, 그래프로 구조화한 포인트 클라우드는 모든 키포인트를 연결한 것이 아닌 일정 범위 내의 키포인트끼리 연결한 것이므로 인접 행렬은 희소 행렬 형태로 표현된다.
보다 구체적으로, 인접행렬 변환부(230)는 추후 특징 행렬과 행렬곱 연산시 키포인트 자신의 특징이 포함될 수 있도록 에지 리스트에 키포인트 자신을 연결하는 루프(Loop)를 추가하여 키포인트들 간의 연결 상태를 나타내는 원본 인접 행렬(Original Adj Matrix)을 생성할 수 있다. 이렇게 생성된 원본 인접 행렬은 포인트들 간의 연결 상태는 나타낼 수 있지만 키포인트로부터 상대적인 거리에 대한 정보는 담고 있지 않으므로, 인접행렬 변환부(230)는 에지 리스트를 기초로 각 키포인트의 에지 개수를 나타내는 차수 행렬을 생성하고 차수 행렬과 원본 인접 행렬의 차를 통해 키포인트들 간의 연결 상태와 상대적인 거리 정보를 나타내는 상대 인접 행렬을 생성할 수 있다. 즉, GCN 구조에 포인트들 간의 상대적인 정보를 반영하기 위해 상대 인접 행렬(Relative Adj Matrix)이 사용되는 것이다. 본 발명은 메시지 전달(message passing)에서 연결된 두 노드 간의 상대적 가중치를 학습하기 위해 어텐션(Attention)을 사용하는 GAT(Graph Attention Networks) 기반의 구조를 적용할 수 있고, GAT는 노드 쌍 i와 j에 대한 주의를 계산하는 것으로서 본 발명의 기술분야에 속하는 통상의 기술자에 의하여 용이하게 이해될 수 있으므로 상세하게 설명하지 않는다. 본 발명에서 각 포인트 간의 상대적인 특징을 집계하기 위해 적용된 GAT 기반의 구조는 KAT(Keypoint Attention Mechanism)이라고 하고 KAT는 GCN의 변환 분산을 줄이기 위해 이웃하는 포인트들의 특징에 따라 좌표를 정렬한다. 이하, 도 4를 참조하여 KAT에 대해 보다 상세하게 설명한다.
바람직하게, 도 4를 참조하면, KAT를 적용하여 생성되는 상대 인접 행렬을 설명하기 위한 예시도로서, 인접행렬 변환부(230)는 키포인트의 중심 좌표 대신에 구조적 특징에 따라 이웃 포인트의 좌표를 정렬하는 KAT(Keypoint Attention Mechanism)를 적용하고 KAT 적용으로 획득된 행렬에 음수를 취하여 포인트의 연결관계는 양수로, 에지의 개수는 음수로 나타내어 상대 인접 행렬로 사용할 수 있다. 여기에서 상대 인접 행렬은 특징 행렬과 행렬곱 연산시 키포인트의 중심 좌표 특징이 그대로 추가되는 것이 아니고, 키포인트와 연결된 이웃 포인트 개수만큼 차감하여 인접 포인트들 간의 상대 좌표로 표현될 수 있다. 이웃의 상태를 사용하여 키포인트의 상태는 아래의 [식 1]에 의해 수정되고 [식 1]에 의해 획득되는 값은 방향과 크기를 가진 각각의 벡터값과 유사하다.
[식 1]
Figure PCTKR2023013667-appb-img-000005
여기에서, X는 포인트의 (x, y, z) 좌표이고, Xpk는 k번째 이웃 포인트의 좌표이고, Xpcenter는 키포인트의 좌표이다.
특징행렬 생성부(240)는 구조화한 그래프로부터 특징 행렬을 생성한다. 바람직하게, 특징행렬 생성부(240)는 키포인트의 특징 정보를 기초로 특징 행렬을 생성할 수 있고, 특징 정보는 키포인트의 RGB 정보, 좌표(x,y,z) 정보, 및 KAT의 적용으로 키포인트의 수정된 상태, 즉, KAT로 업데이트된 새로운 좌표 정보를 포함할 수 있다.
딥러닝 수행 모듈(140)은 그래프에 GCN을 반복 적용하여 객체를 감지하고 포즈를 추정한다(단계 S330). 먼저, 그래프
Figure PCTKR2023013667-appb-img-000006
는 노드 집합과 간선 집합인 (
Figure PCTKR2023013667-appb-img-000007
,
Figure PCTKR2023013667-appb-img-000008
)로 구성된 튜플(tuple)로 정의되며 여기에서 노드
Figure PCTKR2023013667-appb-img-000009
Figure PCTKR2023013667-appb-img-000010
사이의 간선
Figure PCTKR2023013667-appb-img-000011
은 노드
Figure PCTKR2023013667-appb-img-000012
가 노드
Figure PCTKR2023013667-appb-img-000013
와 관련이 있는지를 나타내는 이진 값이다. 노드 간의 연결은 방향이 지정되므로 간선
Figure PCTKR2023013667-appb-img-000014
는 상호 간선
Figure PCTKR2023013667-appb-img-000015
와 다를 수 있고, 각 노드는 c차원 특징 벡터, 즉,
Figure PCTKR2023013667-appb-img-000016
로 표현될 수 있다. GCN은 일반 이미지 그리드 대신 그래프 표현에서 작동하는 CNN의 확장으로서, 입력 그래프
Figure PCTKR2023013667-appb-img-000017
가 주어지면 GCN 연산
Figure PCTKR2023013667-appb-img-000018
는 주어진 노드
Figure PCTKR2023013667-appb-img-000019
의 이웃
Figure PCTKR2023013667-appb-img-000020
에 있는
Figure PCTKR2023013667-appb-img-000021
노드의 기능을 집계한다. GCN 연산
Figure PCTKR2023013667-appb-img-000022
는 [식 2]와 같이 인접 노드 간의 기능을 집계하여 주어진 노드의 값을 업데이트 하고, 이는 컨볼루션 필터가 근처 픽셀을 집계하는 방식을 미러링하여 근처 노드의 기능을 집계하는 것이다. CNN과 다르게 GCN은 다른 이웃에 다른 가중치를 적용하지 않는다.
[식 2]
Figure PCTKR2023013667-appb-img-000023
보다 구체적으로, 딥러닝 수행 모듈(140)은 인접 행렬 변환부(230)에서 생성된 상대 인접 행렬과 특징행렬 생성부(240)에서 생성된 특징 행렬을 곱하여 키포인트 간의 상대적인 정보가 반영된 상대적 특징 행렬을 생성하고, 상대적 특징 행렬과 키포인트의 색상 정보(RGB 정보)를 다층 신경망(Multi-Layer Perceptrons; MLP)에 적용시켜 고차원화된 새 특징 행렬을 획득할 수 있다. 바람직하게, 딥러닝 수행 모듈(140)은 상대 인접 행렬과 키포인트의 좌표 정보를 포함하는 특징 행렬을 곱하여 키포인트들 간의 상대적 특성이 반영된 상대적 특징 행렬을 생성할 수 있다. 예를 들어, 상대적 특징 행렬을 설명하기 위한 예시도인 도 5를 참조하면 인접 행렬 구성과 특징 행렬과의 연산의 예를 나타낸 것으로서, 딥러닝 수행 모듈(140)은 (a)의 상대 인접 행렬의 행과 (b)의 특징 행렬의 열을 곱하여 (c)와 같이 상대적 특성이 반영된 상대적 특징 행렬을 생성할 수 있다.
딥러닝 수행 모듈(140)은 새 특징 행렬 및 원본 인접 행렬을 곱하는 연산을 특정 횟수 반복하여 인접한 키포인트의 정보가 집계된 연산 산출값을 획득할 수 있다. 바람직하게, 딥러닝 수행 모듈(140)은 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하고, 결과값에 대해 스킵 커넥션(Skip Connection)을 적용한 후, 다시 원본 인접 행렬과 새 특징 행렬을 곱하여 결과값을 획득할 수 있다. 즉, 딥러닝 수행 모듈(140)은 특정 횟수만큼 새 특징 행렬과 원본 인접 행렬을 곱한 결과값에 스킨 커넥션을 적용하는 과정을 반복 수행할 수 있다. 예를 들어, GCN 연산은 3번 이루어질 수 있고 이에 따라 그래프의 3차 인접까지의 정보가 집계될 수 있다. 여기에서, 스킵 커넥션은 그래프 컨볼루션 과정을 통해 만들어진 새로운 특징에 이전 특징을 더하는 것으로서, 역전파 과정에서 미분을 통해 사라지는 특징과 그래프의 인접을 연산하는 횟수가 증가할수록 성능이 약해지는 문제를 해결하기 위하여 적용되는 것이다. 바람직하게, 딥러닝 수행 모듈(140)은 이전 층(Layer)의 정보를 이용하기 위해 이전 층과 다음 층의 정보를 연결하여 원본 포인트의 특징을 추가하고, 키포인트 추출의 다운 샘플링 동안 잃게 되는 공간 정보를 회복하기 위해 수축 경로(Contracting path)에서 확장 경로(Expanding path)로 특징들을 결합할 수 있다.
딥러닝 수행 모듈(140)은 연산 산출값을 다층 신경망에 적용시켜 키포인트의 특징 간 순서에 대한 정보가 제거된 최종 산출값으로 변환하고 최종 산출값을 기초로 3차원 객체의 클래스 및 바운딩 박스를 예측할 수 있다. 즉, 딥러닝 수행 모듈(140)은 GCN을 통해 집계된 특징을 리드아웃(ReadOut)하여 일반화한 후 풀리 커넥티드 레이어(Fully Connected Layer)를 통해 클래스와 바운딩 박스에 대한 값을 추정하는 것이다. 바람직하게 딥러닝 수행 모듈(140)은 최종 산출값을 다층 신경망에 적용시켜 각 클래스에 대한 예측값을 생성하고 예측값을 소프트맥스(Softmax)에 적용시켜 각 클래스에 대한 확률값으로 변환할 수 있다.
바람직하게, 딥러닝 수행 모듈(140)은 예측된 클래스의 개수만큼 바운딩 박스를 예측할 수 있다. 여기에서, 예측된 바운딩 박스의 값은 중심 좌표 (Xc, Yc, Zc)와 박스의 크기를 나타내는 너비(W), 깊이(L), 높이(H) 정보, 및 박스의 회전 정도를 나타내는 pitch, roll, yaw 값으로 구성되므로, 바운딩 박스의 예측이 객체 포즈의 추정을 의미한다.
박스 관리 모듈(130)은 감지한 객체의 바운딩 박스를 결정한다(단계 S340). 바람직하게, 박스 관리 모듈(130)은 딥러닝 수행 모듈(140)을 통해 GCN에 대한 충분한 학습이 진행된 후 저장된 모델을 로드하여 객체의 클래스와 바운딩 박스가 예측되면 예측된 바운딩 박스의 결과물을 원래의 포인트 기준으로 변환시킬 수 있다. 즉, 박스 관리 모듈(30)은 바운딩 박스를 예측하거나 학습이 진행되기 전 키포인트에 해당하는 레이블로 변환하고 정규화 시키는 박스 인코딩(Box Encoding)을 수행하므로 딥러닝 수행 모듈(140)을 통해 바운딩 박스가 예측되면 박스 인코딩에서 정규화 했던 과정을 역순으로 진행하는 박스 디코딩(Box Decoding)을 수행하는 것이다.
바람직하게, 딥러닝 수행 모듈(140)을 통해 각 클래스마다 예측된 바운딩 박스가 동일한 객체에 대한 것인 경우, 즉, 동일한 객체에 대해 복수의 바운딩 박스들이 예측된 경우에는, 박스 관리 모듈(130)은 중복되는 바운딩 박스를 제거하고 예측된 바운딩 박스들을 객체에 가장 적합한 하나의 공통되는 바운딩 박스로 만들어 최종적인 바운딩 박스를 결정하는 NMS(Non-Maximum Suppresion)을 수행할 수 있다. NMS를 통해 바운딩 박스를 결정하는 방법은 본 발명의 기술분야에 속하는 통상의 기술자에 의해 용이하게 수행될 수 있으므로 상세하게 설명하지 않는다.
바람직하게, 박스 관리 모듈(130)은 NMS를 수행하기 이전에 예측된 바운딩 박스들에 대해 쿼터니언 회전을 수행할 수 있다. 쿼터니언 회전은 오일러 각을 사용할 시 특정 상황에서 두 회전축이 겹치게 되어 한 개 축의 방향성이 상실되는 짐벌락 현상이 발생하는 경우를 해결하기 위해 사용되는 방식이다. 즉, 쿼터니언 행렬은 복소수 개념을 도입하여 각 축의 회전을 표현하므로, 오일러 회전에서 발생하는 짐벌락 현상,
Figure PCTKR2023013667-appb-img-000024
의 크기가 커질시 발생하는 불안정성, 및 연산량의 증가 등과 같은 단점들을 해결한다. 쿼터니언은 [식 3]에 도시된 Rq에 해당하는 회전 행렬로 4개의 성분을 가진 벡터이며, 3개는 허수 부분, 1개는 실수 부분으로 q= w+xi+yj+zi으로 정의될 수 있다.
[식 3]
Figure PCTKR2023013667-appb-img-000025
바람직하게 시각화 모듈(150)은 박스 관리 모듈(130)에서 결정된 바운딩 박스를 시각화할 수 있다. 여기에서, 시각화 모듈(150)을 통한 시각화 수행 여부는 사용자의 선택에 의하여 수행될 수 있고 이는 제어 모듈(160)에서의 시각화 수행 여부에 대한 옵션으로 구현될 수 있다.
이하에서는, GCN을 통한 클래스 및 바운딩 박스의 예측을 위해 학습 시 수행되는 구성을 설명한다. 바람직하게, 클래스 및 바운딩 박스의 예측과 학습은 사용자에 의해 선택적으로 수행될 수 있고 이는 제어 모듈(160)에서의 예측과 학습 옵션으로 구현될 수 있다.
일 실시예에서, 딥러닝 수행 모듈(140)은 클래스의 학습을 위해 객체와 배경을 분류할 수 있다. 바람직하게, 딥러닝 수행 모듈(140)은 객체의 실제 클래스를 입력 받고 실제 클래스를 원핫 인코딩(One-Hot Encoding) 과정을 통해 정수 값으로 이루어진 행렬 데이터로 변환할 수 있다. 딥러닝 수행 모듈(140)은 각 클래스에 대해 예측된 예측값을 [식 4]의
Figure PCTKR2023013667-appb-img-000026
와 같이 소프트맥스를 통과시켜 0과 1사이의 값으로 만든 후 log를 통과시키고 예측의 불확실성이 클수록 큰 오차를 나타낼 수 있도록 정답 레이블(Label)과 예측을 이용하여 클래스의 범주형 교차 엔트로피 오차
Figure PCTKR2023013667-appb-img-000027
를 계산한다. 교차 엔트로피는 학습시 실제 정답
Figure PCTKR2023013667-appb-img-000028
와 예측값
Figure PCTKR2023013667-appb-img-000029
을 가지고 키포인트 중 예측한 클래스와 실제 클래스 간의 분포를 기초로 계산될 수 있다. 객체 검출의 특성상 객체의 클래스의 분포보다 배경의 클래스의 분포가 크므로 단순히 오차만 구하는 경우에는 효율적인 학습이 어렵기 때문에 교차 엔트로피가 사용되는 것이다.
[식 4]
Figure PCTKR2023013667-appb-img-000030
일 실시예에서, 딥러닝 수행 모듈(140)은 바운딩 박스에 대한 예측값 대신 정답 레이블을 통해 바운딩 박스의 정확도를 높이는 형태로 학습을 진행할 수 있다. 바운딩 박스는 확률 예측이 아닌 정확한 값으로 예측되어야 하므로 이상치(outlier)에 민감하지 않은 후버 손실(Huber loss) 함수가 사용될 수 있다. [식 5]의 후버 손실 함수
Figure PCTKR2023013667-appb-img-000031
는 정답
Figure PCTKR2023013667-appb-img-000032
와 예측
Figure PCTKR2023013667-appb-img-000033
의 오차가 절대값이
Figure PCTKR2023013667-appb-img-000034
보다 작은 경우 L2 오차(Least Square Error)가 사용되고
Figure PCTKR2023013667-appb-img-000035
보다 큰 영역에는 L1 오차(Least Absolute Deviations)가 사용된다. L1 오차와 L2 오차를 합해 사용됨으로써 모든 구간에서 미분이 가능하므로 역전파 과정에서 용이할 수 있다.
[식 5]
Figure PCTKR2023013667-appb-img-000036
바람직하게, 딥러닝 수행 모듈(140)에서 클래스 및 바운딩 박스의 예측을 위한 학습이 수행되기 이전에, 박스 관리 모듈(130)은 그래프 변환 모듈(120)을 통해 키포인트로 그래프가 생성되면 키포인트 레이블을 생성하고 바운딩 박스를 정규화할 수 있다. 보다 구체적으로, 박스 관리 모듈(130)은 바운딩 박스 안에 속해 있는 키포인트에는 해당 클래스의 인덱스를 부여하고 바운딩 박스 외부에 있는 키포인트에는 배경 인덱스를 부여한다. 여기에서, 인덱스는 배경을 의미하는 0을 시작으로 객체의 클래스마다 1씩 증가되며 마지막 인덱스는 객체의 부분적인 짤림 정도가 심할 경우 학습 시 어떤 객체로도 구분되지 않는 고려 안함(Don't Care) 클래스로 구분될 수 있다. 박스 관리 모듈(130)은 클래스의 인덱스에 해당하는 클래스 레이블을 생성한 후 예측할 바운딩 박스의 박스 레이블을 생성할 수 있다. 바운딩 박스는 중심 좌표 (Xc, Yc, Zc)와 박스의 크기를 나타내는 너비(W), 깊이(L), 높이(H) 정보, 및 박스의 회전 정도를 나타내는 pitch, roll, yaw 값으로 구성된다. 여기에서, pitch, roll, yaw 값은 쿼터니언 회전을 통해 변환된 값이고, 해당 9개의 값은 예측하는 정답 레이블로 사용하기 위해 키포인트가 속해 있는 바운딩 박스에 해당하는 박스 레이블로 변환될 수 있다. 박스 관리 모듈(130)은 바운딩 박스의 중심 좌표로 바운딩 박스의 중심과 키포인트의 차를 통해 연산된 벡터값을 사용하고, 바운딩 박스의 너비, 깊이, 및 높이는 정규화를 위해 해당 객체를 대표하는 기준 바운딩 박스의 크기로 나눈 값에 log를 취해 0과 1사이의 값을 가지도록 정규화한다. 여기에서, 기준 바운딩 박스의 크기는 해당 객체의 클래스 크기의 평균값이 사용된다. 이렇게 생성된 클래스 레이블과 박스 레이블은 Pytorch 텐서로 변환되어 학습에 사용될 수 있고, 예측시에도 이와 같은 방식으로 정규화가 수행될 수 있다.
일 실시예에서, 박스 관리 모듈(130)은 단계 S330을 통해 예측된 바운딩 박스의 정확도를 평가하기 위해 예측된 바운딩 박스와 실제 바운딩 박스를 기초로 IoU(Intersection over Union)를 획득할 수 있다. IoU는 객체 감지, 분할, 또는 추적과 같은 컴퓨터 비전 작업에 대한 평가 메트릭(Metric)으로 널리 사용되는 방식으로서, 예측된 바운딩 박스가 실제에 얼마나 가까운지를 측정한다. 바람직하게, 박스 관리 모듈(130)은 예측된 바운딩 박스와 실제 바운딩 박스를 입력으로 사용하여 IoU를 통해 두 바운딩 박스의 교차 볼륨을 계산할 수 있다.
보다 구체적으로, 3차원 객체 감지에서 3차원 바운딩 박스의 정확한 3차원 IoU 값은 세 부분으로 구성된 알고리즘을 사용하여 계산될 수 있다. 첫째, 박스 관리 모듈(130)은 Sutherland-Hodgman 폴리곤 클리핑 알고리즘으로 두 바운딩 박스의 면 사이의 교차점을 계산한다. 예를 들어, x는 결정된 바운딩 박스를 나타내고 y는 실제 바운딩 박스를 나타내는 경우, 박스 관리 모듈(130)은 두 바운딩 박스 x와 y 사이의 교차점을 계산하기 위해 바운딩 박스 x의 역변환을 사용하여 두 바운딩 박스를 모두 변환한다. 변환된 바운딩 박스 x는 축에 맞춰 정렬되고 원점을 중심으로 중심에 배치되는 반면 바운딩 박스 y는 바운딩 박스 x의 좌표계로 이동되고 방향이 유지되고, 부피는 강체 변환에서 불변으로 유지된다. 박스 관리 모듈(130)은 이와 같은 새로운 좌표계에서 교차점을 계산하고 변환된 교차점에서 부피를 추정할 수 있고, 해당 좌표계가 사용되면 각 표면이 좌표축 중 하나에 수직이기 때문에 바운딩 박스에 대해 더 효율적이고 간단한 다각형 클리핑이 가능하다. 다음으로, 박스 관리 모듈(130)은 폴리곤 클리핑 알고리즘을 이용하여 축 정렬된 바운딩 박스 x에 대해 볼록 다각형인 바운딩 박스 y의 각 면을 자른다. 렌더링된 환경을 결정하기 위해 각 월드 폴리곤이 카메라 절두체에 대해 잘리고, 강력한 Sutherland-Hodgman 알고리즘을 사용하여 클리핑이 수행된다. 이 때, 평면에 대해 다각형을 자르기 위해 평면의 모서리가 가상적으로 무한대로 확장되고, 다각형의 각 모서리를 시계 방향으로 반복하고 해당 모서리가 축 정렬된 바운딩 박스 x의 면과 교차하는지 여부가 결정된다. 그리고 바운딩 박스 y의 각 정점에 대해 바운딩 박스 x 안에 있는 정점이 있는지 확인되고, 교차하는 정점에도 해당 정점이 추가된다. 예를 들어, 도 6의 (a)에 도시된 바와 같이, 박스 관리 모듈(130)은 다각형을 바운딩 박스에 클리핑하여 각 변의 교차점 계산을 수행할 수 있고, 바운딩 박스 x와 y를 교환하는 전체 프로세스를 반복한다. 둘째, 박스 관리 모듈(130)은 모든 잘린 다각형의 볼록 껍질 알고리즘을 사용하여 교차 볼륨을 계산한다. 예를 들어, 교차의 체적은 도 6의 (b)의 녹색으로 표시된 부분과 같이 잘린 모든 다각형의 볼록 껍질에 의해 계산될 수 있다. 셋째, 두 바운딩 박스의 교차 및 결합 볼륨을 기반으로, 도 6의 (c)에 도시된 바와 같은 IoU가 계산될 수 있다. 바람직하게, 박스 관리 모듈(130)은 IoU가 계산된 이후, 복수의 바운딩 박스들에 대해 NMS를 수행하여 하나의 바운딩 박스를 결정할 수 있고, 이는 예측시에 단계 S340에서 수행되는 과정과 동일하므로 상세하게 설명하지 않는다.
한편, 본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시예는 데이터구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.
전술한 본 발명에 따른 3차원 객체 인식 및 포즈 추정 방법 및 장치에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.
[부호의 설명]
100: 3차원 객체 인식 및 포즈 추정 장치
110: 데이터 입력 모듈
120: 그래프 변환 모듈
130: 박스 관리 모듈
140: 딥려닝 수행 모듈
150: 시각화 모듈
160: 제어 모듈
210: 키포인트 추출부
220: 에지 생성부
230: 인접행렬 변환부
240: 특징행렬 생성부
250: 텐서 변환부

Claims (16)

  1. 3차원 객체 인식 및 포즈 추정 장치에서 수행되는 3차원 객체 인식 및 포즈 추정 방법에 있어서,
    포인트 클라우드(Point Cloud)를 입력 받는 단계;
    상기 포인트 클라우드로부터 그래프를 구성하는 단계;
    상기 그래프에 GCN(Graph Convolutional Network)을 반복 적용하여 객체를 감지하고 포즈를 추정하는 단계; 및
    상기 감지한 객체의 바운딩 박스(Bounding Box)를 결정하는 단계를 포함하는 3차원 객체 인식 및 포즈 추정 방법.
  2. 제1항에 있어서, 상기 그래프를 구성하는 단계는,
    상기 포인트 클라우드에서 그래프의 정점이 될 키포인트를 결정하는 단계;
    상기 키포인트를 연결하여 그래프로 구조화하는 단계; 및
    상기 구조화한 그래프로부터 인접 행렬 및 특징 행렬을 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  3. 제2항에 있어서, 상기 키포인트를 결정하는 단계는,
    상기 포인트 클라우드의 좌표 최대값을 기초로 공간의 크기를 산출하는 단계;
    상기 공간의 크기를 기설정된 복셀 크기로 나눠 상기 공간을 분할하는 단계;
    상기 포인트 클라우드의 각 좌표를 상기 복셀 크기로 나눠 복셀 인덱스를 설정하고 복셀 인덱스에 해당하는 복셀의 위치로 나타내는 단계; 및
    상기 복셀 인덱스를 기초로 동일한 복셀에 포함되는 포인트 중 랜덤으로 키포인트를 결정하는 단계를 포함하되,
    상기 복셀 크기는 검출하는 3차원 객체의 크기에 따라 설정되는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  4. 제2항에 있어서, 상기 그래프로 구조화하는 단계는,
    상기 키포인트를 결정된 순서에 따라 주소화하는 단계;
    상기 키포인트를 객체의 크기가 포함될 수 있는 크기로 설정된 원구 기반의 근접 이웃 탐색 알고리즘을 통해 연결하여 그래프를 구성하는 단계; 및
    상기 키포인트의 좌표 정보와 주소화 정보를 기초로 키포인트들의 연결 관계를 나타내는 에지 리스트를 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  5. 제4항에 있어서, 상기 인접 행렬 및 특징 행렬을 생성하는 단계는,
    상기 에지 리스트에 키포인트 자신을 연결하는 루프(Loop)를 추가하여 키포인트들 간의 연결 상태를 나타내는 원본 인접 행렬을 생성하는 단계; 및
    상기 에지 리스트를 기초로 각 키포인트의 에지 개수를 나타내는 차수 행렬을 생성하고 상기 차수 행렬과 상기 원본 인접 행렬의 차를 통해 키포인트들 간의 연결 상태와 상대적인 거리 정보를 나타내는 상대 인접 행렬을 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  6. 제5항에 있어서, 상기 인접 행렬 및 특징 행렬을 생성하는 단계는,
    상기 키포인트의 특징 정보를 기초로 특징 행렬을 생성하는 단계를 포함하되,
    상기 특징 정보는, 키포인트의 좌표 정보, 키포인트의 RGB 정보, 또는 키포인트에 대한 상대 인접 행렬의 좌표 정보에 해당하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  7. 제6항에 있어서, 상기 객체를 감지하고 포즈를 추정하는 단계는,
    상기 상대 인접 행렬과 상기 특징 행렬을 곱하여 상기 키포인트들 간의 상대적 특성이 반영된 상대적 특징 행렬을 생성하는 단계; 및
    상기 상대적 특징 행렬과 상기 키포인트의 색상 정보를 다층 신경망(Multi-Layer Perceptrons; MLP)에 적용시켜 새 특징 행렬을 획득하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  8. 제7항에 있어서, 상기 객체를 감지하고 포즈를 추정하는 단계는,
    상기 새 특징 행렬 및 상기 원본 인접 행렬을 곱하는 연산을 특정 횟수 반복하여 인접한 키포인트의 정보가 집계된 연산 산출값을 획득하는 단계;
    상기 연산 산출값을 다층 신경망에 적용시켜 키포인트의 특징 간 순서에 대한 정보가 제거된 최종 산출값으로 변환하는 단계; 및
    상기 최종 산출값을 기초로 객체의 클래스 및 바운딩 박스를 예측하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  9. 제8항에 있어서, 상기 연산 산출값을 획득하는 단계는,
    상기 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하는 단계;
    상기 결과값에 대해 스킵 커넥션(Skip Connection)을 적용하는 단계; 및
    상기 스킵 커넥션을 적용한 후, 상기 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하는 단계 및 스킵 커넥션을 적용하는 단계를 재수행하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  10. 제8항에 있어서, 상기 클래스 및 바운딩 박스를 예측하는 단계는,
    상기 최종 산출값을 다층 신경망에 적용시켜 각 클래스에 대한 예측값을 생성하는 단계;
    상기 예측값을 소프트맥스(Softmax)에 적용시켜 각 클래스에 대한 확률값으로 변환하는 단계; 및
    상기 클래스의 개수만큼 바운딩 박스를 예측하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  11. 제1항에 있어서, 상기 바운딩 박스를 결정하는 단계는,
    상기 감지된 객체에 대해 예측된 바운딩 박스에 대해 쿼터니언 회전을 수행하는 단계; 및
    상기 예측된 바운딩 박스가 복수개인 경우에는, NMS(Non-Maximum Suppression)을 이용하여 상기 객체에 대한 바운딩 박스를 결정하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  12. 제1항에 있어서,
    상기 GCN을 학습하는 단계를 더 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  13. 제12항에 있어서, 상기 GCN을 학습하는 단계 이전에,
    상기 그래프를 구성하는 키포인트의 바운딩 박스에 대한 위치에 따라 해당 객체의 클래스 인덱스, 배경 인덱스, 또는 고려 안함 인덱스를 부여하여 클래스 레이블을 생성하는 단계; 및
    상기 바운딩 박스의 중심 좌표 (x,y,z), 너비, 깊이, 높이, 피치(pitch), 롤(roll), 및 요(yaw) 값을 기초로 박스 레이블을 생성하는 단계를 포함하되,
    상기 중심 좌표는 상기 바운딩 박스의 중심과 키포인트의 차를 통해 연산된 벡터값에 해당하고, 상기 너비, 깊이, 및 높이는 0과 1 사이의 정규화된 값이고, 상기 피치, 롤, 및 요는 쿼터니언 회전을 통해 변환된 값에 해당하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  14. 제12항에 있어서, 상기 GCN을 학습하는 단계는,
    상기 객체를 감지하기 위한 클래스 학습을 위해, 상기 객체의 실제 클래스와 상기 객체에 대해 예측된 클래스 간의 분포를 기초로 교차 엔트로피를 계산하는 단계; 및
    상기 객체의 포즈를 추정하기 위한 바운딩 박스 학습을 위해, 상기 객체의 실제 바운딩 박스와 상기 객체에 대해 예측된 바운딩 박스에 후버 손실(Huber loss) 함수를 적용하여 계산하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
  15. 포인트 클라우드를 입력 받는 데이터 입력 모듈;
    상기 포인트 클라우드로부터 그래프를 구성하는 그래프 변환 모듈;
    상기 그래프에 GCN을 반복 적용하여 객체를 감지하고 포즈를 추정하는 딥러닝 수행 모듈; 및
    상기 감지한 객체의 바운딩 박스를 결정하는 박스 관리 모듈을 포함하는 3차원 객체 인식 및 포즈 추정 장치.
  16. 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램의 명령이 실행될 경우, 제1항 내지 제14항 중 어느 한 항에 따른 방법이 수행되는 것을 특징으로 하는 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램.
PCT/KR2023/013667 2022-10-07 2023-09-12 Gcn 기반의 3차원 객체 인식 및 포즈 추정 방법 및 장치 WO2024076023A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0128468 2022-10-07
KR1020220128468A KR20240048762A (ko) 2022-10-07 2022-10-07 Gcn 기반의 3차원 객체 인식 및 포즈 추정 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2024076023A1 true WO2024076023A1 (ko) 2024-04-11

Family

ID=90608697

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/013667 WO2024076023A1 (ko) 2022-10-07 2023-09-12 Gcn 기반의 3차원 객체 인식 및 포즈 추정 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20240048762A (ko)
WO (1) WO2024076023A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118570456A (zh) * 2024-08-05 2024-08-30 整数智能信息技术(杭州)有限责任公司 基于时序数据的4d动态物交互标注方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200052420A (ko) * 2018-10-25 2020-05-15 주식회사 인공지능연구원 딥러닝 기반 3차원 원형 예측 장치
KR20220012658A (ko) * 2020-07-23 2022-02-04 삼성전자주식회사 3d xr 미디어 데이터를 전송하는 방법 및 장치
KR20220038996A (ko) * 2020-09-21 2022-03-29 삼성전자주식회사 특징 임베딩 방법 및 장치
KR20220126934A (ko) * 2021-03-10 2022-09-19 주식회사 넥스트도어 Ai 기반의 모니터링 시스템 및 그의 동작 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102565826B1 (ko) 2020-12-29 2023-08-16 한양대학교 산학협력단 데이터 재사용을 통해 컨볼루션 연산 속도를 향상시킨 3차원 객체 인식 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200052420A (ko) * 2018-10-25 2020-05-15 주식회사 인공지능연구원 딥러닝 기반 3차원 원형 예측 장치
KR20220012658A (ko) * 2020-07-23 2022-02-04 삼성전자주식회사 3d xr 미디어 데이터를 전송하는 방법 및 장치
KR20220038996A (ko) * 2020-09-21 2022-03-29 삼성전자주식회사 특징 임베딩 방법 및 장치
KR20220126934A (ko) * 2021-03-10 2022-09-19 주식회사 넥스트도어 Ai 기반의 모니터링 시스템 및 그의 동작 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Master Dissertation", 1 June 2021, KWANGWOON UNIVERSITY, Korea, article JEONG, CHI-SEO: "3D point cloud object detection based on graph convolutional network", pages: 1 - 50, XP009555230 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118570456A (zh) * 2024-08-05 2024-08-30 整数智能信息技术(杭州)有限责任公司 基于时序数据的4d动态物交互标注方法及装置

Also Published As

Publication number Publication date
KR20240048762A (ko) 2024-04-16

Similar Documents

Publication Publication Date Title
CN113449857B (zh) 一种数据处理方法和数据处理设备
CN111797893B (zh) 一种神经网络的训练方法、图像分类系统及相关设备
CN112990211B (zh) 一种神经网络的训练方法、图像处理方法以及装置
CN111291809B (zh) 一种处理装置、方法及存储介质
WO2022068623A1 (zh) 一种模型训练方法及相关设备
CN112183577A (zh) 一种半监督学习模型的训练方法、图像处理方法及设备
WO2018021942A2 (ru) Распознавание лиц с помощью искусственной нейронной сети
CN113362382A (zh) 三维重建方法和三维重建装置
CN110222718B (zh) 图像处理的方法及装置
EP4318313A1 (en) Data processing method, training method for neural network model, and apparatus
US20240185568A1 (en) Image Classification Method and Related Device Thereof
Dong et al. Visual localization via few-shot scene region classification
CN114925320B (zh) 一种数据处理方法及相关装置
WO2023179482A1 (zh) 一种图像处理方法、神经网络的训练方法以及相关设备
CN112115744B (zh) 点云数据的处理方法及装置、计算机存储介质、电子设备
CN113781519A (zh) 目标跟踪方法和目标跟踪装置
CN113011568A (zh) 一种模型的训练方法、数据处理方法及设备
CN113627163A (zh) 一种注意力模型、特征提取方法及相关装置
CN115471833A (zh) 一种动态局部自注意力卷积网络点云分析系统及方法
CN115049833A (zh) 一种基于局部特征增强和相似性度量的点云部件分割方法
US20240185573A1 (en) Image classification method and related device thereof
CN113591629A (zh) 一种手指三模态融合识别方法、系统、设备及存储介质
WO2024076023A1 (ko) Gcn 기반의 3차원 객체 인식 및 포즈 추정 방법 및 장치
CN111695419A (zh) 一种图像数据处理方法及相关装置
CN114638953B (zh) 点云数据的分割方法、装置及计算机可读存储介质

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: 23875091

Country of ref document: EP

Kind code of ref document: A1