KR20240048762A - Method and apparatus for 3d object recognition and pose estimation based on graph convolutional network - Google Patents

Method and apparatus for 3d object recognition and pose estimation based on graph convolutional network Download PDF

Info

Publication number
KR20240048762A
KR20240048762A KR1020220128468A KR20220128468A KR20240048762A KR 20240048762 A KR20240048762 A KR 20240048762A KR 1020220128468 A KR1020220128468 A KR 1020220128468A KR 20220128468 A KR20220128468 A KR 20220128468A KR 20240048762 A KR20240048762 A KR 20240048762A
Authority
KR
South Korea
Prior art keywords
graph
bounding box
pose estimation
object recognition
matrix
Prior art date
Application number
KR1020220128468A
Other languages
Korean (ko)
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 주식회사 공간의파티
Priority to KR1020220128468A priority Critical patent/KR20240048762A/en
Priority to PCT/KR2023/013667 priority patent/WO2024076023A1/en
Publication of KR20240048762A publication Critical patent/KR20240048762A/en

Links

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/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

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)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Spectroscopy & Molecular Physics (AREA)

Abstract

본 발명은 3차원 객체 인식 및 포즈 추정 장치에서 수행되는 3차원 객체 인식 및 포즈 추정 방법으로서, 포인트 클라우드(Point Cloud)를 입력 받는 단계, 상기 포인트 클라우드로부터 그래프를 구성하는 단계, 상기 그래프에 GCN(Graph Convolutional Network)을 반복 적용하여 객체를 감지하고 포즈를 추정하는 단계, 및 상기 감지한 객체의 바운딩 박스(Bounding Box)를 결정하는 단계를 포함한다.The present invention 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, constructing a graph from the point cloud, and adding GCN (GCN) to the graph. It includes detecting an object and estimating its pose by repeatedly applying a Graph Convolutional Network, and determining a bounding box of the detected object.

Description

GCN 기반의 3차원 객체 인식 및 포즈 추정 방법 및 장치{METHOD AND APPARATUS FOR 3D OBJECT RECOGNITION AND POSE ESTIMATION BASED ON GRAPH CONVOLUTIONAL NETWORK}GCN-based 3D object recognition and pose estimation method and device {METHOD AND APPARATUS FOR 3D OBJECT RECOGNITION AND POSE ESTIMATION BASED ON GRAPH CONVOLUTIONAL NETWORK}

본 발명은 3차원 객체 인식 및 포즈 추정 기술에 관한 것으로서, GCN(Graph Convolutional Network)을 기반으로 포인트 클라우드(Point Cloud)에서 포인트들을 그래프로 구조화하여 3차원 객체를 검출하고 9자유도(Degree Of Freedom; DOF)에 해당하는 포즈를 추정하는 3차원 객체 인식 및 포즈 추정 방법에 관한 것이다.The present invention relates to 3D object recognition and pose estimation technology. Based on GCN (Graph Convolutional Network), 3D objects are detected by structuring points in a point cloud into a graph and 9 degrees of freedom. ; DOF) relates to a 3D object recognition and pose estimation method.

컴퓨터 비전(computer vision)은 기계의 시각에 해당하는 부분을 연구하는 컴퓨터 과학 연구 분야 중 하나이다. 최근에는 자율 주행 및 로봇 공학과 같은 다양한 분야에 3차원 센서를 활용하는 딥러닝 기반의 3차원 물체 검출 방법이 활발히 제안되고 있다. 3차원 획득 기술의 급속한 발전과 함께 3차원 정보를 획득하기 위한 다양한 유형의 3차원 스캐너, LiDAR, 및 RGB-D 카메라(예를 들어, Kinect, RealSense, 또는 애플 심도 카메라) 등이 있으며, 이와 같은 3차원 센서에 의해 수집된 정보로부터 공간과 물체의 기하학적 모양, 또는 스케일 정보가 획득될 수 있다. 3차원 센서는 적외선을 이용하여 물체에 반사되는 파장의 파형 변화나 시간차를 통해 물체와 센서 사이의 깊이 정보를 알아낸다. 3차원 센서로부터 획득한 깊이 정보를 통해 공간의 정확한 특징이 획득될 수 있으며, 카메라의 RGB 데이터를 사용하여 색상 정보가 포함된 공간 정보로 변환될 수 있다. 이러한 공간 정보는 3차원 데이터 구조 중 하나인 포인트 클라우드로 나타내어질 수 있다.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. With the rapid development of 3D acquisition technology, there are various types of 3D scanners, LiDAR, and RGB-D cameras (for example, 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 represented as a point cloud, one of the three-dimensional data structures.

포인트 클라우드는 3차원 정보를 나타내는 원시적인 점 정보로서, 좌표 정보뿐만 아니라 색상, 반사도, 또는 투명도와 같은 정보를 가지고 있다. 기존의 3차원 정보는 데이터 처리량을 줄이기 위해 다각형을 활용한 3차원 메시 모델로 변환하여 사용되었으나, GPU와 같은 하드웨어 성능의 발전으로 3차원 포인트 클라우드가 바로 처리될 수 있게 되었다. 최근에는 포인트 클라우드를 효율적으로 처리하기 위해 딥러닝이 활용되고 있으며, 특히 무인 주행 자동차, 드론, 또는 증강현실 분야에 활용하기 위해 물체 검출 분야의 연구가 활발히 진행되고 있다. 객체 검출을 위해 포인트 클라우드를 딥러닝으로 처리하는 방식에는 공간적 정보를 함축하여 처리하는 3차원 CNN(Convolution Neural Network) 방식이 있다. CNN은 이미지 분야에서 널리 활용되는 딥러닝 모델로 이미지의 특징을 효율적으로 모아 처리하는 특징이 있다. 그러나 3차원의 경우에는 공간적 특징을 함축할 때 CNN 필터 적용으로 많은 연산량이 발생하고, 함축 과정에서 포인트의 3차원 좌표 정보 손실이 발생하는 문제가 있다. 따라서 딥러닝에 가장 적합한 포인트 클라우드 표현을 정의하고 이를 처리하는 방식에 대한 연구는 지속적으로 수행되고 있다.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 used by converting it into a 3D mesh model using polygons to reduce data processing, but with the development of hardware performance such as GPU, 3D point clouds can now be processed directly. Recently, 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. However, in the case of 3D, there is a problem that a large amount of computation occurs due to the application of CNN filters when implying spatial features, and 3D coordinate information of points is lost during the implication process. Therefore, research is continuously being conducted on defining the most suitable point cloud representation for deep learning and how to process it.

한국공개특허 제10-2022-0095091호Korean Patent Publication No. 10-2022-0095091

본 발명의 목적은 GCN기반으로 포인트 클라우드를 그래프로 표현하고 구조화한 인접 행렬과 특징 행렬을 이용하여 각 정점이 속하는 객체에 대한 클래스, 바운딩 박스, 크기, 및 포즈를 획득하는 3차원 객체 인식 및 포즈 추정 방법 및 장치를 제공하는데 있다.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.

본 발명의 목적은 한번의 촬영으로 여러 객체의 포즈를 추정하고 GCN의 변환 분산을 줄이기 위해 GAT(Graph Attention Network)를 기반으로 이웃점들의 특징에 따라 좌표를 정렬하는 KAT(Keypoint Attention Mechanism)을 적용한 3차원 객체 인식 및 포즈 추정 방법 및 장치를 제공하는데 있다.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. The purpose is to provide a 3D object recognition and pose estimation method and device.

본 발명의 목적은 쿼터니언 회전(Quaternion rotation)을 통해 객체의 9개의 자유도(즉, 3개의 좌표, 3개의 변환, 및 3개의 회전)를 추정하여 회전오류를 극복하고 모든 축을 중심으로 회전된 IoU(Intersection over Union)을 계산하는 3차원 객체 인식 및 포즈 추정 방법 및 장치를 제공하는데 있다.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 problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned can be clearly understood by those skilled in the art from the description below.

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

바람직하게, 상기 그래프를 구성하는 단계는, 상기 포인트 클라우드에서 그래프의 정점이 될 키포인트를 결정하는 단계, 상기 키포인트를 연결하여 그래프로 구조화하는 단계, 및 상기 구조화한 그래프로부터 인접 행렬 및 특징 행렬을 생성하는 단계를 포함할 수 있다.Preferably, 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.

바람직하게, 상기 키포인트를 결정하는 단계는, 상기 포인트 클라우드의 좌표 최대값을 기초로 공간의 크기를 산출하는 단계, 상기 공간의 크기를 기설정된 복셀 크기로 나눠 상기 공간을 분할하는 단계, 상기 포인트 클라우드의 각 좌표를 상기 복셀 크기로 나눠 복셀 인덱스를 설정하고 복셀 인덱스에 해당하는 복셀의 위치로 나타내는 단계, 및 상기 복셀 인덱스를 기초로 동일한 복셀에 포함되는 포인트 중 랜덤으로 키포인트를 결정하는 단계를 포함하되, 상기 복셀 크기는 검출하는 3차원 객체의 크기에 따라 설정될 수 있다.Preferably, 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 3D object to be detected.

바람직하게, 상기 그래프로 구조화하는 단계는, 상기 키포인트를 결정된 순서에 따라 주소화하는 단계, 상기 키포인트를 객체의 크기가 포함될 수 있는 크기로 설정된 원구 기반의 근접 이웃 탐색 알고리즘을 통해 연결하여 그래프를 구성하는 단계, 및 상기 키포인트의 좌표 정보와 주소화 정보를 기초로 키포인트들의 연결 관계를 나타내는 에지 리스트를 생성하는 단계를 포함할 수 있다.Preferably, 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 a 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.

바람직하게, 상기 인접 행렬 및 특징 행렬을 생성하는 단계는, 상기 에지 리스트에 키포인트 자신을 연결하는 루프(Loop)를 추가하여 키포인트들 간의 연결 상태를 나타내는 원본 인접 행렬을 생성하는 단계, 및 상기 에지 리스트를 기초로 각 키포인트의 에지 개수를 나타내는 차수 행렬을 생성하고 상기 차수 행렬과 상기 원본 인접 행렬의 차를 통해 키포인트들 간의 연결 상태와 상대적인 거리 정보를 나타내는 상대 인접 행렬을 생성하는 단계를 포함할 수 있다.Preferably, 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. .

바람직하게, 상기 인접 행렬 및 특징 행렬을 생성하는 단계는, 상기 키포인트의 특징 정보를 기초로 특징 행렬을 생성하는 단계를 포함하되, 상기 특징 정보는, 키포인트의 좌표 정보, 키포인트의 RGB 정보, 또는 키포인트에 대한 상대 인접 행렬의 좌표 정보에 해당하할 수 있다.Preferably, 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 .

바람직하게, 상기 객체를 감지하고 포즈를 추정하는 단계는, 상기 상대 인접 행렬과 상기 특징 행렬을 곱하여 상기 키포인트들 간의 상대적 특성이 반영된 상대적 특징 행렬을 생성하는 단계, 및 상기 상대적 특징 행렬과 상기 키포인트의 색상 정보를 다층 신경망(Multi-Layer Perceptrons; MLP)에 적용시켜 새 특징 행렬을 획득하는 단계를 포함할 수 있다.Preferably, 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)).

바람직하게, 상기 객체를 감지하고 포즈를 추정하는 단계는, 상기 새 특징 행렬 및 상기 원본 인접 행렬을 곱하는 연산을 특정 횟수 반복하여 인접한 키포인트의 정보가 집계된 연산 산출값을 획득하는 단계, 상기 연산 산출값을 다층 신경망에 적용시켜 키포인트의 특징 간 순서에 대한 정보가 제거된 최종 산출값으로 변환하는 단계, 및 상기 최종 산출값을 기초로 객체의 클래스 및 바운딩 박스를 예측하는 단계를 포함할 수 있다.Preferably, 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.

바람직하게, 상기 연산 산출값을 획득하는 단계는, 상기 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하는 단계, 상기 결과값에 대해 스킵 커넥션(Skip Connection)을 적용하는 단계, 및 상기 스킵 커넥션을 적용한 후, 상기 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하는 단계 및 스킵 커넥션을 적용하는 단계를 재수행하는 단계를 포함할 수 있다.Preferably, 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. After applying , 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.

바람직하게, 상기 클래스 및 바운딩 박스를 예측하는 단계는, 상기 최종 산출값을 다층 신경망에 적용시켜 각 클래스에 대한 예측값을 생성하는 단계, 상기 예측값을 소프트맥스(Softmax)에 적용시켜 각 클래스에 대한 확률값으로 변환하는 단계, 및 상기 클래스의 개수만큼 바운딩 박스를 예측하는 단계를 포함할 수 있다.Preferably, 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.

바람직하게, 상기 바운딩 박스를 결정하는 단계는, 상기 감지된 객체에 대해 예측된 바운딩 박스에 대해 쿼터니언 회전을 수행하는 단계, 및 상기 예측된 바운딩 박스가 복수개인 경우에는, NMS(Non-Maximum Suppression)을 이용하여 상기 객체에 대한 바운딩 박스를 결정하는 단계를 포함할 수 있다.Preferably, 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 .

바람직하게, 상기 GCN을 학습하는 단계를 더 포함할 수 있다.Preferably, the step of learning the GCN may be further included.

바람직하게, 상기 GCN을 학습하는 단계 이전에, 상기 그래프를 구성하는 키포인트의 바운딩 박스에 대한 위치에 따라 해당 객체의 클래스 인덱스, 배경 인덱스, 또는 고려 안함 인덱스를 부여하여 클래스 레이블을 생성하는 단계, 및 상기 바운딩 박스의 중심 좌표 (x,y,z), 너비, 깊이, 높이, 피치(pitch), 롤(roll), 및 요(yaw) 값을 기초로 박스 레이블을 생성하는 단계를 포함하되, 상기 중심 좌표는 상기 바운딩 박스의 중심과 키포인트의 차를 통해 연산된 벡터값에 해당하고, 상기 너비, 깊이, 및 높이는 0과 1 사이의 정규화된 값이고, 상기 피치, 롤, 및 요는 쿼터니언 회전을 통해 변환된 값에 해당할 수 있다.Preferably, before the step of learning the GCN, generating a class label by assigning a class index, a background index, or a non-consideration index to the corresponding 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, and the pitch, roll, and yaw are quaternion rotations. It may correspond to a value converted through .

바람직하게, 상기 GCN을 학습하는 단계는, 상기 객체를 감지하기 위한 클래스 학습을 위해, 상기 객체의 실제 클래스와 상기 객체에 대해 예측된 클래스 간의 분포를 기초로 교차 엔트로피를 계산하는 단계, 및 상기 객체의 포즈를 추정하기 위한 바운딩 박스 학습을 위해, 상기 객체의 실제 바운딩 박스와 상기 객체에 대해 예측된 바운딩 박스에 후버 손실(Huber loss) 함수를 적용하여 계산하는 단계를 포함할 수 있다.Preferably, 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 In order to learn the bounding box for estimating the pose, 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.

상기 목적을 달성하기 위한 본 발명의 제2 측면은, 3차원 객체 인식 및 포즈 추정 장치로서, 포인트 클라우드를 입력 받는 데이터 입력 모듈, 상기 포인트 클라우드로부터 그래프를 구성하는 그래프 변환 모듈, 상기 그래프에 GCN을 반복 적용하여 객체를 감지하고 포즈를 추정하는 딥러닝 수행 모듈, 및 상기 감지한 객체의 바운딩 박스를 결정하는 박스 관리 모듈을 포함한다.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.

상기 목적을 달성하기 위한 본 발명의 제3 측면은 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램의 명령이 실행될 경우, 데이터 정합 방법이 수행되는 것을 특징으로 한다.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.

상기한 바와 같이 본 발명에 의하면, 한번의 촬영으로 포인트 클라우드로부터 3차원 객체에 대한 클래스, 바운딩 박스, 크기, 및 포즈를 획득할 수 있는 효과가 있다.As described above, according to 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.

또한, 효율적인 특징 함축을 위한 GCN 모델을 설계하여 GNN 기반의 시스템에 비해 학습 및 예측 레이어를 간소화함으로써 속도를 향상시키고 상대적인 특성을 반영하기 위한 상대 인접 행렬을 도입함으로써 정확도도 향상시키는 효과가 있다.In addition, by designing a GCN model for efficient feature implication, 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.

또한, 포인트 클라우드 자신과 이웃의 포인트 특징을 집계하는 과정마다 그래프 구조를 재사용하여 메모리 사용의 효율성을 높임으로서 GPU 뿐만 아니라 CPU에서도 학습 및 예측이 가능한 효과가 있다.In addition, 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.

도 1은 본 발명의 바람직한 실시예에 따른 3차원 객체 인식 및 포즈 추정 장치에 대한 블록도이다.
도 2는 일 실시예에 따른 그래프 변환 모듈에 대한 블록도이다.
도 3은 일 실시예에 따른 3차원 객체 인식 및 포즈 추정 방법에 대한 흐름도이다.
도 4는 일 실시예에 따른 상대 인접 행렬을 설명하기 위한 예시도이다.
도 5는 일 실시예에 따른 새 특징 행렬을 설명하기 위한 예시도이다.
도 6은 일 실시예에 따른 IoU(Intersection over Union)을 설명하기 위한 예시도이다.
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 an 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.

이하, 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.Hereinafter, the advantages and features of the present invention and methods for achieving them will become clear with reference to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and will be implemented in various different forms. The present embodiments only serve to ensure that the disclosure of the present invention is complete and that common knowledge in the technical field to which the present invention pertains is not limited. It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification. “And/or” includes each and every combination of one or more of the mentioned items.

비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.Although 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, component or section from other elements, elements or sections. Accordingly, 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.

또한, 각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, identification codes (e.g., a, b, c, etc.) for each step are used for convenience of explanation. 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.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다(comprises)" 및/또는 “포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for describing embodiments and is not intended to limit the invention. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context. As used in the specification, “comprises” and/or “comprising” refers to the presence of one or more other components, steps, operations and/or elements. or does not rule out addition.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings that can be commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined.

또한, 본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Additionally, in describing the embodiments of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. The terms described below are defined in consideration of functions in the embodiments of the present invention, and may vary depending on the intention or custom of the user or operator. Therefore, the definition should be made based on the contents throughout this specification.

도 1은 본 발명의 바람직한 실시예에 따른 3차원 객체 인식 및 포즈 추정 장치에 대한 블록도이다.1 is a block diagram of a 3D object recognition and pose estimation device according to a preferred embodiment of the present invention.

도 1을 참조하면, 3차원 객체 인식 및 포즈 추정 장치(100)는 데이터 입력 모듈(110), 그래프 변환 모듈(120), 박스 관리 모듈(130), 딥러닝 수행 모듈(140), 시각화 모듈(150), 및 제어 모듈(160)을 포함한다.Referring to FIG. 1, 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.

데이터 입력 모듈(110)은 포인트 클라우드(Point Cloud)에 해당하는 데이터를 입력 받는다. 바람직하게, 포인트 클라우드 데이터를 제공하는 주체는 다양하게 적용 가능하고 데이터를 제공하고 입력 받는 방법에도 제한이 없으므로 여기에서는 상세하게 설명하지 않는다.The data input module 110 receives data corresponding to a point cloud. Preferably, 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.

그래프 변환 모듈(120)은 포인트 클라우드를 그래프로 구성한다. 바람직하게, 그래프 변환 모듈(120)은 고정 반경의 인접 그래프에서 포인트 클라우드를 효율적으로 인코딩하고 새로운 그래프 표현을 사용하여 주변에 인접된 포인트들의 특징을 집계하기 위해 복셀 기반으로 키포인트(Key Point)를 추출하고 추출된 키포인트를 서로 연결하여 연결 관계를 나타내는 인접 행렬과 키포인트의 특징 정보를 나타내는 특징 행렬을 구성할 수 있다. 보다 구체적으로, 도 2를 참조하면, 그래프 변환 모듈(120)은 복셀(Voxel) 기반으로 키포인트를 추출하는 키포인트 추출부(210), 키포인트 간의 연결을 형성하여 에지 리스트(Edge List)를 생성하는 에지 생성부(220), 에지 리스트를 희소행렬 형태의 인접 행렬로 변환시키는 인접행렬 변환부(230), 각 키포인트의 특징 정보를 포함하는 특징 행렬을 생성하는 특징행렬 생성부(240), 및 최종적으로 생성된 행렬을 오픈소스 머신 러닝 라이브러리인 Pytorch에서 사용할 수 있는 텐서(Tensor)로 변환하는 텐서 변환부(250)를 포함할 수 있다.The graph conversion module 120 configures the point cloud into a graph. Preferably, 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. More specifically, referring to FIG. 2, 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.

박스 관리 모듈(130)은 3차원 객체의 바운딩 박스(Bounding Box)에 대해 3차원 객체의 실제 바운딩 박스를 학습 데이터로 변환하고 전처리하며, 인식한 3차원 객체에 대한 바운딩 박스를 결정한다. 즉, 박스 관리 모듈(130)은 실제 바운딩 박스를 학습 데이터로 변환하는 전처리 알고리즘 및 정규화하는 알고리즘을 포함하고 바운딩 박스를 결정하기 위한 NMS(Non-Maximum Suppression) 알고리즘을 포함할 수 있다.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.

딥러닝 수행 모듈(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차원 객체의 감지와 포즈 추정이 동시에 수행될 수 있다.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) is a neural network that learns the representation of nodes or edges through message passing between nodes while maintaining the graph representation. 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. In the present invention, we propose a one-stage GCN pipeline that detects 3D objects and estimates their pose by structuring the distribution of irregular points into a graph. 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.

바람직하게, 딥러닝 수행 모듈(140)은 그래프의 키포인트가 속하는 객체의 클래스(Class)와 포즈를 추정하기 위해 각 포인트 간의 상대적인 특징을 집계하는 KAT(Keypoint attention Mechanism)을 적용하고 여러 객체 포즈의 9자유도(DOF) 추정을 설계할 수 있다. 여기에서, KAT는 GAT(Graph Attention Network)를 키포인트에 대해 적용한 것으로서, GAT는 그래프 구조의 데이터에 대해 어텐션(Attention) 기반의 연산을 효율적으로 수행하고 이웃 포인트들에 대해 서로 다른 가중치(weight)를 지정함으로써 노드가 가지는 이웃의 수와 같으면서 다른 자유도(degree)를 가지는 그래프 노드에 적용될 수 있다.Preferably, 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. Degrees of freedom (DOF) estimates can be designed. Here, 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 that have a different degree of freedom than the number of neighbors the node has.

시각화 모듈(150)은 시각화를 제공한다. 바람직하게, 시각화 모듈(150)은 딥러닝 수행 모듈(140)을 통해서 예측된 바운딩 박스를 디스플레이에 출력될 수 있도록 시각화할 수 있으며, 시각화하는 방법은 본 발명의 기술분야에 속하는 통상의 기술자에 의하여 용이하게 수행될 수 있으므로 상세하게 설명하지 않는다.Visualization module 150 provides visualization. Preferably, the visualization module 150 can visualize the predicted bounding box through the deep learning performance 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.

제어 모듈(160)은 데이터 입력 모듈(110), 그래프 변환 모듈(120), 박스 관리 모듈(130), 딥러닝 수행 모듈(140), 및 시각화 모듈(150)의 동작 및 데이터의 흐름을 제어하고, 학습 및 시각화는 옵션을 통해 구현될 수 있다. 즉, 제어 모듈(160)은 사용자의 선택에 따라 학습이 수행되거나 학습된 가중치(weight) 값을 기초로 예측(즉, 테스트)이 수행되도록 제어할 수 있고, 시각화 모듈(150)을 통해 시각화가 수행되도록 하거나 시각화가 수행되지 않도록 제어할 수 있다.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.

일 실시예에서, 3차원 객체 인식 및 포즈 추정 장치(100)는 각 역할에 따른 구성의 모듈화를 통해 프로그램 소스의 재사용성을 높이고 전처리 과정, 학습 과정, 및 예측 과정이 효율적으로 수행되도록 할 수 있다. 바람직하게, 전처리 과정은 학습 및 예측 과정에서 모두 동일하게 수행될 수 있고 학습 과정은 전처리 과정이 수행된 결과물을 기초로 딥러닝 알고리즘을 학습시키기 위한 과정이고 예측 과정은 학습이 충분히 진행된 후에 저장된 모델을 로드하여 전처리 과정이 수행된 결과물을 기초로 3차원 객체를 인식하고 포즈를 추정하는 과정이다. In one embodiment, 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. . Preferably, 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, and 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.

이하에서는, 3차원 객체 인식 및 포즈 추정 장치(100)의 각 구성을 통하여 수행되는 동작을 도 3을 참조하여 상세하게 설명한다. 도 3를 참조하여 설명될 각 단계는 서로 다른 구성에 의하여 수행되는 것으로 기재하였으나 이에 제한되는 것은 아니며, 실시예에 따라 각 단계들의 적어도 일부는 서로 동일하거나 다른 구성에서 수행될 수도 있다.Hereinafter, operations performed through each component of the 3D object recognition and pose estimation device 100 will be described in detail with reference to FIG. 3. Each step to be described with reference to FIG. 3 is described as being performed by a different configuration, but is not limited thereto, and depending on the embodiment, at least some of the steps may be performed in the same or different configurations.

도 3은 일 실시예에 따른 3차원 객체 인식 및 포즈 추정 방법에 대한 흐름도이다.Figure 3 is a flowchart of a 3D object recognition and pose estimation method according to an embodiment.

도 3을 참조하면, 데이터 입력 모듈(110)은 포인트 클라우드를 입력 받는다(단계 S310). 예를 들어, N개의 포인트에 대한 포인트 클라우드는 집합 으로 정의될 수 있고, 여기에서 는 포인트의 속성을 나타내는 3차원 좌표 와 상태 값 에 해당하는 길이 벡터를 모두 갖는 포인트이다.Referring to FIG. 3, the data input module 110 receives a point cloud (step S310). For example, a point cloud for N points is a set of 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 .

그래프 변환 모듈(120)은 포인트 클라우드로부터 그래프를 구성한다(단계 S320). 바람직하게, 그래프 변환 모듈(120)은 를 정점으로 사용하고 고정된 반지름, 즉, 기설정된 반경 내의 이웃 포인트를 연결하여 그래프 G=(P,E)를 구성할 수 있다. 여기에서, E는 반경 내에서 연결된 상태의 이웃 포인트에 해당한다. 포인트 클라우드는 일반적으로 수만 개의 포인트로 구성되므로 모든 포인트를 꼭짓점으로 하여 그래프를 구성하면 상당한 계산 부담이 따를 수 있다. 따라서, 다운 샘플링된 포인트 클라우드를 사용하여 그래프가 구성될 수 있고, 본 발명에서는 키포인트를 추출하여 그래프가 구성되도록 할 수 있다.The graph conversion module 120 constructs a graph from the point cloud (step S320). Preferably, the graph transformation module 120 You can construct a graph G=(P,E) by using as a vertex and connecting neighboring points within a fixed radius, that is, a preset radius. Here, 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.

바람직하게, 키포인트 추출부(210)는 포인트 클라우드에서 그래프의 정점이 될 키포인트를 결정할 수 있다. 보다 구체적으로, 키포인트 추출부(210)는 포인트 클라우드의 공간 좌표 최대값을 기초로 공간의 크기를 산출하고 공간의 크기를 기설정된 복셀 크기로 나누어 공간을 분할할 수 있다. 여기에서, 복셀 크기에 따라 키포인트의 개수가 결정되므로 복셀 크기는 검출하는 3차원 객체의 크기에 따라 설정될 수 있다. 키포인트 추출부(210)는 포인트 클라우드의 각 좌표를 복셀 크기로 나누어 복셀 인덱스를 설정하고 각 포인트를 복셀 인덱스에 해당하는 복셀의 위치로 나타낼 수 있다. 여기에서, 복셀 인덱스는 포인트 클라우드의 각 좌표를 복셀 크기로 나누고 나온 몫에 해당할 수 있다. 그 다음, 키포인트 추출부(210)는 복셀 인덱스를 기초로 동일한 복셀에 포함되는 포인트 중 랜덤으로 키포인트를 결정할 수 있다.Preferably, 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. Here, the voxel index may correspond to the quotient obtained by dividing each coordinate of the point cloud by the voxel size. Next, the keypoint extractor 210 may randomly determine a keypoint among points included in the same voxel based on the voxel index.

바람직하게, 키포인트 추출부(210)를 통해 키포인트가 결정되면, 에지 생성부(220)는 키포인트를 연결하여 그래프로 구조화할 수 있다. 보다 구체적으로, 에지 생성부(220)는 키포인트 추출부(210)에서 키포인트가 결정된 순서에 따라 키포인트를 주소화한다. 즉, 키포인트가 결정된 순서에 따라 0부터 번호가 부여되어 인덱스화 되는 것이다. 그 다음, 에지 생성부(220)는 키포인트를 3차원 객체의 크기가 포함될 수 있는 크기로 설정된 원구 기반의 근접 이웃 탐색 알고리즘(k-Nearest Neighbors)을 통해 연결하여 그래프로 구성할 수 있다. 또한, 에지 생성부(220)는 키포인트의 좌표 정보와 주소화 정보를 기초로 각 키포인트를 중심으로 키포인트들의 연결 관계를 나타내는 에지 리스트를 생성할 수 있다.Preferably, when a key point is determined through the key point extractor 210, 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. Next, 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.

바람직하게, 인접행렬 변환부(230)는 구조화한 그래프로부터 인접 행렬을 생성한다. 즉, 인접행렬 변환부(230)는 에지 리스트를 기반으로 인접 행렬로 변환하고, 그래프로 구조화한 포인트 클라우드는 모든 키포인트를 연결한 것이 아닌 일정 범위 내의 키포인트끼리 연결한 것이므로 인접 행렬은 희소 행렬 형태로 표현된다.Preferably, the adjacency matrix conversion unit 230 generates an adjacency matrix from a structured graph. In other words, the adjacency matrix conversion unit 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.

보다 구체적으로, 인접행렬 변환부(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에 대해 보다 상세하게 설명한다.More specifically, 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. In other words, 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. In the present invention, the GAT-based structure applied to aggregate the relative characteristics between each point is called KAT (Keypoint Attention Mechanism), and KAT aligns coordinates according to the characteristics of neighboring points to reduce the transformation variance of GCN. Hereinafter, KAT will be described in more detail with reference to FIG. 4.

바람직하게, 도 4를 참조하면, KAT를 적용하여 생성되는 상대 인접 행렬을 설명하기 위한 예시도로서, 인접행렬 변환부(230)는 키포인트의 중심 좌표 대신에 구조적 특징에 따라 이웃 포인트의 좌표를 정렬하는 KAT(Keypoint Attention Mechanism)를 적용하고 KAT 적용으로 획득된 행렬에 음수를 취하여 포인트의 연결관계는 양수로, 에지의 개수는 음수로 나타내어 상대 인접 행렬로 사용할 수 있다. 여기에서 상대 인접 행렬은 특징 행렬과 행렬곱 연산시 키포인트의 중심 좌표 특징이 그대로 추가되는 것이 아니고, 키포인트와 연결된 이웃 포인트 개수만큼 차감하여 인접 포인트들 간의 상대 좌표로 표현될 수 있다. 이웃의 상태를 사용하여 키포인트의 상태는 아래의 [식 1]에 의해 수정되고 [식 1]에 의해 획득되는 값은 방향과 크기를 가진 각각의 벡터값과 유사하다.Preferably, referring to FIG. 4, as an example diagram for explaining a relative adjacency matrix generated by applying KAT, 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. By applying KAT (Keypoint Attention Mechanism) and taking a negative number to the matrix obtained by applying KAT, 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. Here, the relative adjacency matrix can be expressed as relative coordinates between adjacent points by subtracting the center coordinate feature of the key point by the number of neighboring points connected to the key point, rather than adding the center coordinate feature of the key point as is when calculating the feature matrix and matrix multiplication. Using 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.

[식 1] [Equation 1]

여기에서, X는 포인트의 (x, y, z) 좌표이고, Xpk는 k번째 이웃 포인트의 좌표이고, Xpcenter는 키포인트의 좌표이다.Here, X is the (x, y, z) coordinate of the point, X pk is the coordinate of the kth neighboring point , and

특징행렬 생성부(240)는 구조화한 그래프로부터 특징 행렬을 생성한다. 바람직하게, 특징행렬 생성부(240)는 키포인트의 특징 정보를 기초로 특징 행렬을 생성할 수 있고, 특징 정보는 키포인트의 RGB 정보, 좌표(x,y,z) 정보, 및 KAT의 적용으로 키포인트의 수정된 상태, 즉, KAT로 업데이트된 새로운 좌표 정보를 포함할 수 있다. The feature matrix generator 240 generates a feature matrix from a structured graph. Preferably, 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.

딥러닝 수행 모듈(140)은 그래프에 GCN을 반복 적용하여 객체를 감지하고 포즈를 추정한다(단계 S330). 먼저, 그래프 는 노드 집합과 간선 집합인 (,)로 구성된 튜플(tuple)로 정의되며 여기에서 노드 사이의 간선 은 노드 가 노드 와 관련이 있는지를 나타내는 이진 값이다. 노드 간의 연결은 방향이 지정되므로 간선 는 상호 간선 와 다를 수 있고, 각 노드는 c차원 특징 벡터, 즉, 로 표현될 수 있다. GCN은 일반 이미지 그리드 대신 그래프 표현에서 작동하는 CNN의 확장으로서, 입력 그래프 가 주어지면 GCN 연산 는 주어진 노드 의 이웃 에 있는 노드의 기능을 집계한다. GCN 연산 는 [식 2]와 같이 인접 노드 간의 기능을 집계하여 주어진 노드의 값을 업데이트 하고, 이는 컨볼루션 필터가 근처 픽셀을 집계하는 방식을 미러링하여 근처 노드의 기능을 집계하는 것이다. CNN과 다르게 GCN은 다른 이웃에 다른 가중치를 적용하지 않는다.The deep learning performance module 140 repeatedly applies GCN to the graph to detect the object and estimate the pose (step S330). First, 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.

[식 2] [Equation 2]

보다 구체적으로, 딥러닝 수행 모듈(140)은 인접 행렬 변환부(230)에서 생성된 상대 인접 행렬과 특징행렬 생성부(240)에서 생성된 특징 행렬을 곱하여 키포인트 간의 상대적인 정보가 반영된 상대적 특징 행렬을 생성하고, 상대적 특징 행렬과 키포인트의 색상 정보(RGB 정보)를 다층 신경망(Multi-Layer Perceptrons; MLP)에 적용시켜 고차원화된 새 특징 행렬을 획득할 수 있다. 바람직하게, 딥러닝 수행 모듈(140)은 상대 인접 행렬과 키포인트의 좌표 정보를 포함하는 특징 행렬을 곱하여 키포인트들 간의 상대적 특성이 반영된 상대적 특징 행렬을 생성할 수 있다. 예를 들어, 상대적 특징 행렬을 설명하기 위한 예시도인 도 5를 참조하면 인접 행렬 구성과 특징 행렬과의 연산의 예를 나타낸 것으로서, 딥러닝 수행 모듈(140)은 (a)의 상대 인접 행렬의 행과 (b)의 특징 행렬의 열을 곱하여 (c)와 같이 상대적 특성이 반영된 상대적 특징 행렬을 생성할 수 있다.More specifically, 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). Preferably, 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. 5, which is an example diagram for explaining a relative feature matrix, it shows an example of an adjacency matrix configuration and an operation with a feature matrix, and the deep learning performance module 140 uses the relative adjacency matrix of (a). By multiplying the rows and columns of the feature matrix in (b), a relative feature matrix reflecting relative characteristics can be generated as in (c).

딥러닝 수행 모듈(140)은 새 특징 행렬 및 원본 인접 행렬을 곱하는 연산을 특정 횟수 반복하여 인접한 키포인트의 정보가 집계된 연산 산출값을 획득할 수 있다. 바람직하게, 딥러닝 수행 모듈(140)은 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하고, 결과값에 대해 스킵 커넥션(Skip Connection)을 적용한 후, 다시 원본 인접 행렬과 새 특징 행렬을 곱하여 결과값을 획득할 수 있다. 즉, 딥러닝 수행 모듈(140)은 특정 횟수만큼 새 특징 행렬과 원본 인접 행렬을 곱한 결과값에 스킨 커넥션을 적용하는 과정을 반복 수행할 수 있다. 예를 들어, GCN 연산은 3번 이루어질 수 있고 이에 따라 그래프의 3차 인접까지의 정보가 집계될 수 있다. 여기에서, 스킵 커넥션은 그래프 컨볼루션 과정을 통해 만들어진 새로운 특징에 이전 특징을 더하는 것으로서, 역전파 과정에서 미분을 통해 사라지는 특징과 그래프의 인접을 연산하는 횟수가 증가할수록 성능이 약해지는 문제를 해결하기 위하여 적용되는 것이다. 바람직하게, 딥러닝 수행 모듈(140)은 이전 층(Layer)의 정보를 이용하기 위해 이전 층과 다음 층의 정보를 연결하여 원본 포인트의 특징을 추가하고, 키포인트 추출의 다운 샘플링 동안 잃게 되는 공간 정보를 회복하기 위해 수축 경로(Contracting path)에서 확장 경로(Expanding path)로 특징들을 결합할 수 있다.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. Preferably, 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. Here, 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 for features disappearing through differentiation and the adjacency of the graph increases during the backpropagation process. It is applied for. Preferably, 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.

딥러닝 수행 모듈(140)은 연산 산출값을 다층 신경망에 적용시켜 키포인트의 특징 간 순서에 대한 정보가 제거된 최종 산출값으로 변환하고 최종 산출값을 기초로 3차원 객체의 클래스 및 바운딩 박스를 예측할 수 있다. 즉, 딥러닝 수행 모듈(140)은 GCN을 통해 집계된 특징을 리드아웃(ReadOut)하여 일반화한 후 풀리 커넥티드 레이어(Fully Connected Layer)를 통해 클래스와 바운딩 박스에 대한 값을 추정하는 것이다. 바람직하게 딥러닝 수행 모듈(140)은 최종 산출값을 다층 신경망에 적용시켜 각 클래스에 대한 예측값을 생성하고 예측값을 소프트맥스(Softmax)에 적용시켜 각 클래스에 대한 확률값으로 변환할 수 있다.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.

바람직하게, 딥러닝 수행 모듈(140)은 예측된 클래스의 개수만큼 바운딩 박스를 예측할 수 있다. 여기에서, 예측된 바운딩 박스의 값은 중심 좌표 (Xc, Yc, Zc)와 박스의 크기를 나타내는 너비(W), 깊이(L), 높이(H) 정보, 및 박스의 회전 정도를 나타내는 pitch, roll, yaw 값으로 구성되므로, 바운딩 박스의 예측이 객체 포즈의 추정을 의미한다.Preferably, the deep learning performance module 140 can predict bounding boxes as many as the number of predicted classes. Here, 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.

박스 관리 모듈(130)은 감지한 객체의 바운딩 박스를 결정한다(단계 S340). 바람직하게, 박스 관리 모듈(130)은 딥러닝 수행 모듈(140)을 통해 GCN에 대한 충분한 학습이 진행된 후 저장된 모델을 로드하여 객체의 클래스와 바운딩 박스가 예측되면 예측된 바운딩 박스의 결과물을 원래의 포인트 기준으로 변환시킬 수 있다. 즉, 박스 관리 모듈(30)은 바운딩 박스를 예측하거나 학습이 진행되기 전 키포인트에 해당하는 레이블로 변환하고 정규화 시키는 박스 인코딩(Box Encoding)을 수행하므로 딥러닝 수행 모듈(140)을 통해 바운딩 박스가 예측되면 박스 인코딩에서 정규화 했던 과정을 역순으로 진행하는 박스 디코딩(Box Decoding)을 수행하는 것이다.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. That is, the box management module 30 predicts the bounding box or performs box encoding to convert it into a label corresponding to a key point and normalize it before learning progresses, 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.

바람직하게, 딥러닝 수행 모듈(140)을 통해 각 클래스마다 예측된 바운딩 박스가 동일한 객체에 대한 것인 경우, 즉, 동일한 객체에 대해 복수의 바운딩 박스들이 예측된 경우에는, 박스 관리 모듈(130)은 중복되는 바운딩 박스를 제거하고 예측된 바운딩 박스들을 객체에 가장 적합한 하나의 공통되는 바운딩 박스로 만들어 최종적인 바운딩 박스를 결정하는 NMS(Non-Maximum Suppresion)을 수행할 수 있다. NMS를 통해 바운딩 박스를 결정하는 방법은 본 발명의 기술분야에 속하는 통상의 기술자에 의해 용이하게 수행될 수 있으므로 상세하게 설명하지 않는다.Preferably, when the bounding box predicted for each class through the deep learning performance module 140 is for the same object, that is, when a plurality of bounding boxes are predicted for the same object, 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. 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.

바람직하게, 박스 관리 모듈(130)은 NMS를 수행하기 이전에 예측된 바운딩 박스들에 대해 쿼터니언 회전을 수행할 수 있다. 쿼터니언 회전은 오일러 각을 사용할 시 특정 상황에서 두 회전축이 겹치게 되어 한 개 축의 방향성이 상실되는 짐벌락 현상이 발생하는 경우를 해결하기 위해 사용되는 방식이다. 즉, 쿼터니언 행렬은 복소수 개념을 도입하여 각 축의 회전을 표현하므로, 오일러 회전에서 발생하는 짐벌락 현상, 의 크기가 커질시 발생하는 불안정성, 및 연산량의 증가 등과 같은 단점들을 해결한다. 쿼터니언은 [식 3]에 도시된 Rq에 해당하는 회전 행렬로 4개의 성분을 가진 벡터이며, 3개는 허수 부분, 1개는 실수 부분으로 q= w+xi+yj+zi으로 정의될 수 있다.Preferably, 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. In other words, 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. A quaternion is a rotation matrix corresponding to R q shown in [Equation 3] and is a vector with 4 components, 3 of which are imaginary parts and 1 of which is a real part, and can be defined as q= w+xi+yj+zi there is.

[식 3] [Equation 3]

바람직하게 시각화 모듈(150)은 박스 관리 모듈(130)에서 결정된 바운딩 박스를 시각화할 수 있다. 여기에서, 시각화 모듈(150)을 통한 시각화 수행 여부는 사용자의 선택에 의하여 수행될 수 있고 이는 제어 모듈(160)에서의 시각화 수행 여부에 대한 옵션으로 구현될 수 있다.Preferably, the visualization module 150 can visualize the bounding box determined by the box management module 130. Here, 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.

이하에서는, GCN을 통한 클래스 및 바운딩 박스의 예측을 위해 학습 시 수행되는 구성을 설명한다. 바람직하게, 클래스 및 바운딩 박스의 예측과 학습은 사용자에 의해 선택적으로 수행될 수 있고 이는 제어 모듈(160)에서의 예측과 학습 옵션으로 구현될 수 있다.Below, we describe the configuration performed during learning to predict classes and bounding boxes through GCN. Preferably, 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.

일 실시예에서, 딥러닝 수행 모듈(140)은 클래스의 학습을 위해 객체와 배경을 분류할 수 있다. 바람직하게, 딥러닝 수행 모듈(140)은 객체의 실제 클래스를 입력 받고 실제 클래스를 원핫 인코딩(One-Hot Encoding) 과정을 통해 정수 값으로 이루어진 행렬 데이터로 변환할 수 있다. 딥러닝 수행 모듈(140)은 각 클래스에 대해 예측된 예측값을 [식 4]의 와 같이 소프트맥스를 통과시켜 0과 1사이의 값으로 만든 후 log를 통과시키고 예측의 불확실성이 클수록 큰 오차를 나타낼 수 있도록 정답 레이블(Label)과 예측을 이용하여 클래스의 범주형 교차 엔트로피 오차 를 계산한다. 교차 엔트로피는 학습시 실제 정답 와 예측값 을 가지고 키포인트 중 예측한 클래스와 실제 클래스 간의 분포를 기초로 계산될 수 있다. 객체 검출의 특성상 객체의 클래스의 분포보다 배경의 클래스의 분포가 크므로 단순히 오차만 구하는 경우에는 효율적인 학습이 어렵기 때문에 교차 엔트로피가 사용되는 것이다.In one embodiment, the deep learning performance module 140 may classify objects and backgrounds to learn classes. Preferably, 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.

[식 4] [Equation 4]

일 실시예에서, 딥러닝 수행 모듈(140)은 바운딩 박스에 대한 예측값 대신 정답 레이블을 통해 바운딩 박스의 정확도를 높이는 형태로 학습을 진행할 수 있다. 바운딩 박스는 확률 예측이 아닌 정확한 값으로 예측되어야 하므로 이상치(outlier)에 민감하지 않은 후버 손실(Huber loss) 함수가 사용될 수 있다. [식 5]의 후버 손실 함수 는 정답 와 예측 의 오차가 절대값이 보다 작은 경우 L2 오차(Least Square Error)가 사용되고 보다 큰 영역에는 L1 오차(Least Absolute Deviations)가 사용된다. L1 오차와 L2 오차를 합해 사용됨으로써 모든 구간에서 미분이 가능하므로 역전파 과정에서 용이할 수 있다.In one embodiment, 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.

[식 5] [Equation 5]

바람직하게, 딥러닝 수행 모듈(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 텐서로 변환되어 학습에 사용될 수 있고, 예측시에도 이와 같은 방식으로 정규화가 수행될 수 있다.Preferably, before learning to predict classes and bounding boxes is performed in the deep learning performance module 140, 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. . Here, the pitch, roll, and yaw values are values converted through quaternion rotation, and the corresponding 9 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.

일 실시예에서, 박스 관리 모듈(130)은 단계 S330을 통해 예측된 바운딩 박스의 정확도를 평가하기 위해 예측된 바운딩 박스와 실제 바운딩 박스를 기초로 IoU(Intersection over Union)를 획득할 수 있다. IoU는 객체 감지, 분할, 또는 추적과 같은 컴퓨터 비전 작업에 대한 평가 메트릭(Metric)으로 널리 사용되는 방식으로서, 예측된 바운딩 박스가 실제에 얼마나 가까운지를 측정한다. 바람직하게, 박스 관리 모듈(130)은 예측된 바운딩 박스와 실제 바운딩 박스를 입력으로 사용하여 IoU를 통해 두 바운딩 박스의 교차 볼륨을 계산할 수 있다.In one embodiment, the box management module 130 may obtain an 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. Preferably, 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.

보다 구체적으로, 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에서 수행되는 과정과 동일하므로 상세하게 설명하지 않는다.More specifically, in 3D object detection, the exact 3D IoU value of a 3D bounding box can be calculated using a three-part algorithm. First, 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 axis-aligned and centered about the origin, while the bounding box y is translated into the coordinate system of bounding box x, 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. Next, 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. To determine the rendered environment, each world polygon is clipped to the camera frustum, and clipping is performed using the powerful Sutherland-Hodgman algorithm. At this time, to cut the polygon with respect to the plane, 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. And for each vertex of the bounding box y, it is checked whether there is a vertex within the bounding box x, and the corresponding vertex is also added to the intersecting vertices. For example, as shown in (a) of FIG. 6, 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. Second, 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). Third, based on the intersection and combined volumes of the two bounding boxes, the IoU as shown in (c) of FIG. 6 can be calculated. Preferably, after the IoU is 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.

한편, 본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다. Meanwhile, 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.

본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시예는 데이터구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.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.

전술한 본 발명에 따른 3차원 객체 인식 및 포즈 추정 방법 및 장치에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.Although preferred embodiments of the three-dimensional object recognition and pose estimation method and device according to the present invention have been described above, the present invention is not limited thereto and may be modified in various ways within the scope of the claims, detailed description of the invention, and accompanying drawings. It is possible to implement it with modifications, and this also belongs to the present invention.

100: 3차원 객체 인식 및 포즈 추정 장치
110: 데이터 입력 모듈
120: 그래프 변환 모듈
130: 박스 관리 모듈
140: 딥려닝 수행 모듈
150: 시각화 모듈
160: 제어 모듈
210: 키포인트 추출부
220: 에지 생성부
230: 인접행렬 변환부
240: 특징행렬 생성부
250: 텐서 변환부
100: 3D object recognition and pose estimation device
110: data input module
120: Graph transformation module
130: Box management module
140: Deep learning performance module
150: Visualization module
160: control module
210: Keypoint extraction unit
220: Edge creation unit
230: Adjacency matrix conversion unit
240: Feature matrix generator
250: Tensor conversion unit

Claims (16)

3차원 객체 인식 및 포즈 추정 장치에서 수행되는 3차원 객체 인식 및 포즈 추정 방법에 있어서,
포인트 클라우드(Point Cloud)를 입력 받는 단계;
상기 포인트 클라우드로부터 그래프를 구성하는 단계;
상기 그래프에 GCN(Graph Convolutional Network)을 반복 적용하여 객체를 감지하고 포즈를 추정하는 단계; 및
상기 감지한 객체의 바운딩 박스(Bounding Box)를 결정하는 단계를 포함하는 3차원 객체 인식 및 포즈 추정 방법.
In a 3D object recognition and pose estimation method performed in a 3D object recognition and pose estimation device,
Step of receiving point cloud input;
Constructing a graph from the point cloud;
Detecting an object and estimating its pose by repeatedly applying a Graph Convolutional Network (GCN) to the graph; and
A 3D object recognition and pose estimation method comprising determining a bounding box of the detected object.
제1항에 있어서, 상기 그래프를 구성하는 단계는,
상기 포인트 클라우드에서 그래프의 정점이 될 키포인트를 결정하는 단계;
상기 키포인트를 연결하여 그래프로 구조화하는 단계; 및
상기 구조화한 그래프로부터 인접 행렬 및 특징 행렬을 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 1, wherein the step of constructing the graph includes:
determining a key point that will become a vertex of a graph in the point cloud;
Connecting the key points and structuring them into a graph; and
A 3D object recognition and pose estimation method comprising generating an adjacency matrix and a feature matrix from the structured graph.
제2항에 있어서, 상기 키포인트를 결정하는 단계는,
상기 포인트 클라우드의 좌표 최대값을 기초로 공간의 크기를 산출하는 단계;
상기 공간의 크기를 기설정된 복셀 크기로 나눠 상기 공간을 분할하는 단계;
상기 포인트 클라우드의 각 좌표를 상기 복셀 크기로 나눠 복셀 인덱스를 설정하고 복셀 인덱스에 해당하는 복셀의 위치로 나타내는 단계; 및
상기 복셀 인덱스를 기초로 동일한 복셀에 포함되는 포인트 중 랜덤으로 키포인트를 결정하는 단계를 포함하되,
상기 복셀 크기는 검출하는 3차원 객체의 크기에 따라 설정되는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 2, wherein determining the key point comprises:
calculating the size of the space based on the maximum coordinates of the point cloud;
dividing the space by dividing the size of the space by a preset voxel size;
Setting a voxel index by dividing each coordinate of the point cloud by the voxel size and indicating the position of the voxel corresponding to the voxel index; and
A step of randomly determining a key point among points included in the same voxel based on the voxel index,
A 3D object recognition and pose estimation method, wherein the voxel size is set according to the size of the 3D object to be detected.
제2항에 있어서, 상기 그래프로 구조화하는 단계는,
상기 키포인트를 결정된 순서에 따라 주소화하는 단계;
상기 키포인트를 객체의 크기가 포함될 수 있는 크기로 설정된 원구 기반의 근접 이웃 탐색 알고리즘을 통해 연결하여 그래프를 구성하는 단계; 및
상기 키포인트의 좌표 정보와 주소화 정보를 기초로 키포인트들의 연결 관계를 나타내는 에지 리스트를 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 2, wherein the step of structuring into a graph comprises:
Addressing the key points according to a determined order;
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; and
A three-dimensional object recognition and pose estimation method comprising generating an edge list indicating a connection relationship between key points based on coordinate information and addressing information of the key points.
제4항에 있어서, 상기 인접 행렬 및 특징 행렬을 생성하는 단계는,
상기 에지 리스트에 키포인트 자신을 연결하는 루프(Loop)를 추가하여 키포인트들 간의 연결 상태를 나타내는 원본 인접 행렬을 생성하는 단계; 및
상기 에지 리스트를 기초로 각 키포인트의 에지 개수를 나타내는 차수 행렬을 생성하고 상기 차수 행렬과 상기 원본 인접 행렬의 차를 통해 키포인트들 간의 연결 상태와 상대적인 거리 정보를 나타내는 상대 인접 행렬을 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 4, wherein generating the adjacency matrix and feature matrix comprises:
generating an original adjacency matrix representing the connection state between keypoints by adding a loop connecting the keypoints themselves to the edge list; and
Generating a degree matrix representing the number of edges of each key point based on the edge list, 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. A 3D object recognition and pose estimation method characterized by:
제5항에 있어서, 상기 인접 행렬 및 특징 행렬을 생성하는 단계는,
상기 키포인트의 특징 정보를 기초로 특징 행렬을 생성하는 단계를 포함하되,
상기 특징 정보는, 키포인트의 좌표 정보, 키포인트의 RGB 정보, 또는 키포인트에 대한 상대 인접 행렬의 좌표 정보에 해당하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 5, wherein generating the adjacency matrix and feature matrix comprises:
Including generating a feature matrix based on the feature information of the key point,
The feature information corresponds to coordinate information of a key point, RGB information of a key point, or coordinate information of a relative adjacency matrix for a key point.
제6항에 있어서, 상기 객체를 감지하고 포즈를 추정하는 단계는,
상기 상대 인접 행렬과 상기 특징 행렬을 곱하여 상기 키포인트들 간의 상대적 특성이 반영된 상대적 특징 행렬을 생성하는 단계; 및
상기 상대적 특징 행렬과 상기 키포인트의 색상 정보를 다층 신경망(Multi-Layer Perceptrons; MLP)에 적용시켜 새 특징 행렬을 획득하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 6, wherein detecting the object and estimating the pose comprises:
multiplying the relative adjacency matrix and the feature matrix to generate a relative feature matrix reflecting relative characteristics between the keypoints; and
A three-dimensional object recognition and pose estimation method comprising the step of applying the relative feature matrix and the color information of the key points to a multi-layer neural network (Multi-Layer Perceptrons; MLP) to obtain a new feature matrix.
제7항에 있어서, 상기 객체를 감지하고 포즈를 추정하는 단계는,
상기 새 특징 행렬 및 상기 원본 인접 행렬을 곱하는 연산을 특정 횟수 반복하여 인접한 키포인트의 정보가 집계된 연산 산출값을 획득하는 단계;
상기 연산 산출값을 다층 신경망에 적용시켜 키포인트의 특징 간 순서에 대한 정보가 제거된 최종 산출값으로 변환하는 단계; 및
상기 최종 산출값을 기초로 객체의 클래스 및 바운딩 박스를 예측하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 7, wherein detecting the object and estimating the pose comprises:
repeating an operation of multiplying the new feature matrix and the original adjacency matrix a specific number of times to obtain an operation output value in which information on adjacent key points is aggregated;
Applying the calculated calculation 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
A 3D object recognition and pose estimation method comprising predicting a class and bounding box of the object based on the final calculated value.
제8항에 있어서, 상기 연산 산출값을 획득하는 단계는,
상기 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하는 단계;
상기 결과값에 대해 스킵 커넥션(Skip Connection)을 적용하는 단계; 및
상기 스킵 커넥션을 적용한 후, 상기 새 특징 행렬 및 원본 인접 행렬을 곱하여 결과값을 획득하는 단계 및 스킵 커넥션을 적용하는 단계를 재수행하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 8, wherein the step of obtaining the calculated calculation value includes,
obtaining a result by multiplying the new feature matrix and the original adjacency matrix;
Applying a skip connection to the result value; and
After applying the skip connection, obtaining a result by multiplying the new feature matrix and the original adjacency matrix and re-performing the step of applying the skip connection.
제8항에 있어서, 상기 클래스 및 바운딩 박스를 예측하는 단계는,
상기 최종 산출값을 다층 신경망에 적용시켜 각 클래스에 대한 예측값을 생성하는 단계;
상기 예측값을 소프트맥스(Softmax)에 적용시켜 각 클래스에 대한 확률값으로 변환하는 단계; 및
상기 클래스의 개수만큼 바운딩 박스를 예측하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 8, wherein predicting the class and bounding box comprises:
generating a predicted value for each class by applying the final calculated value to a multi-layer neural network;
Converting the predicted value to a probability value for each class by applying Softmax; and
A 3D object recognition and pose estimation method comprising predicting bounding boxes equal to the number of classes.
제1항에 있어서, 상기 바운딩 박스를 결정하는 단계는,
상기 감지된 객체에 대해 예측된 바운딩 박스에 대해 쿼터니언 회전을 수행하는 단계; 및
상기 예측된 바운딩 박스가 복수개인 경우에는, NMS(Non-Maximum Suppression)을 이용하여 상기 객체에 대한 바운딩 박스를 결정하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 1, wherein determining the bounding box comprises:
performing quaternion rotation on a bounding box predicted for the detected object; and
When there are a plurality of predicted bounding boxes, a 3D object recognition and pose estimation method comprising determining a bounding box for the object using Non-Maximum Suppression (NMS).
제1항에 있어서,
상기 GCN을 학습하는 단계를 더 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
According to paragraph 1,
A 3D object recognition and pose estimation method further comprising the step of learning the GCN.
제12항에 있어서, 상기 GCN을 학습하는 단계 이전에,
상기 그래프를 구성하는 키포인트의 바운딩 박스에 대한 위치에 따라 해당 객체의 클래스 인덱스, 배경 인덱스, 또는 고려 안함 인덱스를 부여하여 클래스 레이블을 생성하는 단계; 및
상기 바운딩 박스의 중심 좌표 (x,y,z), 너비, 깊이, 높이, 피치(pitch), 롤(roll), 및 요(yaw) 값을 기초로 박스 레이블을 생성하는 단계를 포함하되,
상기 중심 좌표는 상기 바운딩 박스의 중심과 키포인트의 차를 통해 연산된 벡터값에 해당하고, 상기 너비, 깊이, 및 높이는 0과 1 사이의 정규화된 값이고, 상기 피치, 롤, 및 요는 쿼터니언 회전을 통해 변환된 값에 해당하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 12, before learning the GCN,
generating a class label by assigning a class index, a background index, or a non-consideration index to the corresponding 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 coordinates correspond to vector values 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, and the pitch, roll, and yaw are quaternion rotations. A 3D object recognition and pose estimation method, characterized in that it corresponds to the value converted through .
제12항에 있어서, 상기 GCN을 학습하는 단계는,
상기 객체를 감지하기 위한 클래스 학습을 위해, 상기 객체의 실제 클래스와 상기 객체에 대해 예측된 클래스 간의 분포를 기초로 교차 엔트로피를 계산하는 단계; 및
상기 객체의 포즈를 추정하기 위한 바운딩 박스 학습을 위해, 상기 객체의 실제 바운딩 박스와 상기 객체에 대해 예측된 바운딩 박스에 후버 손실(Huber loss) 함수를 적용하여 계산하는 단계를 포함하는 것을 특징으로 하는 3차원 객체 인식 및 포즈 추정 방법.
The method of claim 12, wherein the step of learning the GCN includes:
For class learning to detect the object, calculating cross entropy based on the distribution between the actual class of the object and the predicted class for the object; and
In order to learn a bounding box for estimating the pose of 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. 3D object recognition and pose estimation method.
포인트 클라우드를 입력 받는 데이터 입력 모듈;
상기 포인트 클라우드로부터 그래프를 구성하는 그래프 변환 모듈;
상기 그래프에 GCN을 반복 적용하여 객체를 감지하고 포즈를 추정하는 딥러닝 수행 모듈; 및
상기 감지한 객체의 바운딩 박스를 결정하는 박스 관리 모듈을 포함하는 3차원 객체 인식 및 포즈 추정 장치.
Data input module that receives point cloud input;
a graph conversion module that constructs a graph from the point cloud;
A deep learning performance module that detects objects and estimates poses by repeatedly applying GCN to the graph; and
A 3D object recognition and pose estimation device including a box management module that determines a bounding box of the detected object.
컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램에 있어서,
상기 컴퓨터 프로그램의 명령이 실행될 경우, 제1항 내지 제14항 중 어느 한 항에 따른 방법이 수행되는 것을 특징으로 하는 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램.


In a computer program stored on a computer-readable medium,
A computer program stored in a computer-readable medium, wherein when the command of the computer program is executed, the method according to any one of claims 1 to 14 is performed.


KR1020220128468A 2022-10-07 2022-10-07 Method and apparatus for 3d object recognition and pose estimation based on graph convolutional network KR20240048762A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220128468A KR20240048762A (en) 2022-10-07 2022-10-07 Method and apparatus for 3d object recognition and pose estimation based on graph convolutional network
PCT/KR2023/013667 WO2024076023A1 (en) 2022-10-07 2023-09-12 Gcn-based three-dimensional object recognition and pose estimation method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220128468A KR20240048762A (en) 2022-10-07 2022-10-07 Method and apparatus for 3d object recognition and pose estimation based on graph convolutional network

Publications (1)

Publication Number Publication Date
KR20240048762A true KR20240048762A (en) 2024-04-16

Family

ID=90608697

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220128468A KR20240048762A (en) 2022-10-07 2022-10-07 Method and apparatus for 3d object recognition and pose estimation based on graph convolutional network

Country Status (2)

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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220095091A (en) 2020-12-29 2022-07-06 한양대학교 산학협력단 3D object recognition method and apparatus that improves the speed of convolution operation through data reuse

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102131592B1 (en) * 2018-10-25 2020-08-05 주식회사 인공지능연구원 Apparatus for Predicting 3D Original Formation
KR20220012658A (en) * 2020-07-23 2022-02-04 삼성전자주식회사 Methods and apparatus for trnasmitting 3d xr media data
KR20220038996A (en) * 2020-09-21 2022-03-29 삼성전자주식회사 Method and apparatus of embedding feature
KR102586773B1 (en) * 2021-03-10 2023-10-10 주식회사 넥스트도어 System for monitoring based on artificial intelligence and operating method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220095091A (en) 2020-12-29 2022-07-06 한양대학교 산학협력단 3D object recognition method and apparatus that improves the speed of convolution operation through data reuse

Also Published As

Publication number Publication date
WO2024076023A1 (en) 2024-04-11

Similar Documents

Publication Publication Date Title
EP3405845B1 (en) Object-focused active three-dimensional reconstruction
CN110168477B (en) Deep learning system for cuboid detection
US20200311855A1 (en) Object-to-robot pose estimation from a single rgb image
Liu et al. Fg-net: A fast and accurate framework for large-scale lidar point cloud understanding
CN113706480B (en) Point cloud 3D target detection method based on key point multi-scale feature fusion
CN111797983A (en) Neural network construction method and device
CN112215332B (en) Searching method, image processing method and device for neural network structure
KR20180055070A (en) Method and device to perform to train and recognize material
Tippetts et al. Dense disparity real-time stereo vision algorithm for resource-limited systems
CN110222718B (en) Image processing method and device
CN114638954B (en) Training method of point cloud segmentation model, point cloud data segmentation method and related device
CN111008631B (en) Image association method and device, storage medium and electronic device
CN117157678A (en) Method and system for graph-based panorama segmentation
JP2019008571A (en) Object recognition device, object recognition method, program, and trained model
US20240135174A1 (en) Data processing method, and neural network model training method and apparatus
CN113781519A (en) Target tracking method and target tracking device
CN114937083A (en) Laser SLAM system and method applied to dynamic environment
CN111797970A (en) Method and apparatus for training neural network
CN113553943B (en) Target real-time detection method and device, storage medium and electronic device
CN115222896A (en) Three-dimensional reconstruction method and device, electronic equipment and computer-readable storage medium
CN114565092A (en) Neural network structure determining method and device
CN116246119A (en) 3D target detection method, electronic device and storage medium
KR20240048762A (en) Method and apparatus for 3d object recognition and pose estimation based on graph convolutional network
CN114638953A (en) Point cloud data segmentation method and device and computer readable storage medium
CN116152334A (en) Image processing method and related equipment