KR102613162B1 - Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof - Google Patents

Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof Download PDF

Info

Publication number
KR102613162B1
KR102613162B1 KR1020230053734A KR20230053734A KR102613162B1 KR 102613162 B1 KR102613162 B1 KR 102613162B1 KR 1020230053734 A KR1020230053734 A KR 1020230053734A KR 20230053734 A KR20230053734 A KR 20230053734A KR 102613162 B1 KR102613162 B1 KR 102613162B1
Authority
KR
South Korea
Prior art keywords
point
annotation
board
guide points
created
Prior art date
Application number
KR1020230053734A
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 KR1020230053734A priority Critical patent/KR102613162B1/en
Application granted granted Critical
Publication of KR102613162B1 publication Critical patent/KR102613162B1/en

Links

Images

Classifications

    • 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
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/12Acquisition of 3D measurements of objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Remote Sensing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computational Linguistics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 인공지능을 기계 학습하기 위한 데이터의 어노테이션 작업과 관련하여, 라이다에 의해 획득된 3D 점군 데이터에 포함된 객체를 특정하기 위한 어노테이션 방법을 제안한다. 상기 방법은 어노테이션 장치가, 라이다(lidar)로부터 수집된 3D 점군 데이터(3D point group)를 수신하는 단계, 상기 어노테이션 장치가, 상기 3D 점군 데이터를 적어도 하나의 뷰 포인트(view point)로 설정하고, 상기 설정된 적어도 하나의 뷰 포인트 각각에서 객체(object)를 특정하기 위한 복수 개의 가이드 포인트(guide point)들을 생성하는 단계 및 상기 어노테이션 장치가, 상기 선택받은 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행하는 단계를 포함할 수 있다.The present invention proposes an annotation method for specifying objects included in 3D point cloud data acquired by LIDAR in relation to data annotation work for machine learning artificial intelligence. The method includes an annotation device receiving 3D point group data collected from a lidar, the annotation device setting the 3D point group data to at least one view point, and , generating a plurality of guide points for specifying an object at each of the set at least one view point, and the annotation device creates an object based on the selected plurality of guide points. It may include the step of performing annotation to specify.

Description

3D 점군 데이터의 어노테이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램{Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof}An annotation method for 3D point cloud data and a computer program recorded on a recording medium to execute the same {Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof}

본 발명은 인공지능(Artificial Intelligence, AI) 학습용 데이터의 가공에 관한 것이다. 보다 상세하게는, 인공지능(AI)을 기계 학습하기 위한 데이터의 어노테이션(annotation) 작업과 관련하여, 라이다(lidar)에 의해 획득된 3D 점군 데이터에 포함된 객체를 특정하기 위한 어노테이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램에 관한 것이다.The present invention relates to the processing of artificial intelligence (AI) learning data. More specifically, in relation to the annotation task of data for machine learning artificial intelligence (AI), an annotation method for specifying objects included in 3D point cloud data acquired by lidar and the same It relates to a computer program recorded on a recording medium for execution.

인공지능(AI)은 인간의 학습능력, 추론능력 및 지각능력 등의 일부 또는 전부를 컴퓨터 프로그램을 이용하여 인공적으로 구현하는 기술을 의미한다. 인공지능(AI)과 관련하여, 기계 학습(machine learning)은 다수의 파라미터로 구성된 모델을 이용하여 주어진 데이터로 파라미터를 최적화하는 학습을 의미한다. 이와 같은, 기계 학습은 학습용 데이터의 형태에서 따라, 지도 학습(supervised learning), 비지도 학습(unsupervised learning) 및 강화 학습(reinforcement learning)으로 구분된다.Artificial intelligence (AI) refers to a technology that artificially implements some or all of human learning, reasoning, and perception abilities using computer programs. In relation to artificial intelligence (AI), machine learning refers to learning to optimize parameters with given data using a model composed of multiple parameters. According to the type of learning data, machine learning is divided into supervised learning, unsupervised learning, and reinforcement learning.

일반적으로, 인공지능(AI) 학습용 데이터의 설계는 데이터 구조의 설계, 데이터의 수집, 데이터의 정제, 데이터의 가공, 데이터의 확장 및 데이터의 검증 단계로 진행된다.In general, the design of data for artificial intelligence (AI) learning progresses through the stages of data structure design, data collection, data purification, data processing, data expansion, and data verification.

각각의 단계에서 대하여 보다 구체적으로 설명하면, 데이터 구조의 설계는 온톨로지(ontology) 정의, 분류 체계의 정의 등을 통해 이루어진다. 데이터의 수집은 직접 촬영, 웹 크롤링(web crawling) 또는 협회/전문 단체 등을 통해 데이터를 수집하여 이루어진다. 데이터 정제는 수집된 데이터 내에서 중복 데이터를 제거하고, 개인 정보 등을 비식별화하여 이루어진다. 데이터의 가공은 어노테이션(annotation)을 수행하고, 메타데이터(metadata)를 입력하여 이루어진다. 데이터의 확장은 온톨로지 매핑(mapping)을 수행하고, 필요에 따라 온톨로지를 보완하거나 확장하여 이루어진다. 그리고, 데이터의 검증은 다양한 검증 도구를 활용하여 설정된 목표 품질에 따른 유효성을 검증하여 이루어진다.To explain each step in more detail, the design of the data structure is accomplished through the definition of ontology and classification system. Data collection is done through direct photography, web crawling, or through associations/professional organizations. Data cleaning is accomplished by removing duplicate data from the collected data and de-identifying personal information. Data processing is accomplished by performing annotation and entering metadata. Data expansion is accomplished by performing ontology mapping and supplementing or expanding the ontology as needed. In addition, data verification is accomplished by verifying the validity according to the set target quality using various verification tools.

한편, 차량의 자율주행(automatic driving)은 차량 스스로 판단하여 주행할 수 있는 시스템을 의미한다. 이와 같은, 자율주행은 시스템이 주행에 관여하는 정도와 운전자가 차량을 제어하는 정도에 따라 비자동화부터 완전 자동화까지 점진적인 단계로 구분될 수 있다. 일반적으로, 자율주행의 단계는 국제자동차기술자협회(SAE(Society of Automotive Engineers) International)에서 분류한 6단계의 레벨로 구분된다. 국제자동차기술자협회가 분류한 6단계에 따르면, 레벨 0단계는 비자동화, 레벨 1단계는 운전자 보조, 레벨 2단계는 부분 자동화, 레벨 3단계는 조건부 자동화, 레벨 4단계는 고도 자동화, 그리고 레벨 5단계는 완전 자동화 단계이다.Meanwhile, automatic driving of a vehicle refers to a system that allows the vehicle to drive by making its own decisions. As such, autonomous driving can be divided into progressive stages from non-automation to full automation, depending on the degree to which the system participates in driving and the degree to which the driver controls the vehicle. In general, the stages of autonomous driving are divided into six levels classified by SAE (Society of Automotive Engineers) International. According to the six levels classified by the International Association of Automotive Engineers, level 0 is non-automation, level 1 is driver assistance, level 2 is partial automation, level 3 is conditional automation, level 4 is high automation, and level 5. The step is fully automated.

자율주행은 인지(perception), 측위(localization), 경로 계획(path planning) 및 제어(control)의 메커니즘을 통해 수행된다. 그리고, 다양한 기업체들은 자율주행 메커니즘에서 인지 및 경로 계획을 인공지능(AI)을 이용하여 구현하기 위해 개발 중에 있다.Autonomous driving is performed through mechanisms of perception, localization, path planning, and control. Additionally, various companies are developing to implement recognition and path planning in autonomous driving mechanisms using artificial intelligence (AI).

최근에는 상술한 바와 같은, 자율주행의 인공지능(AI) 기계 학습(machine learning)에 사용되는 데이터뿐만 아니라, 다양한 분야에서 라이다(lidar)로부터 획득된 3D 점군 데이터를 인공지능 기계 학습에 사용하기 위한 요구가 증가하고 있다.Recently, in addition to the data used for artificial intelligence (AI) machine learning of autonomous driving as described above, 3D point cloud data acquired from lidar in various fields has been used for artificial intelligence machine learning. The demand for this is increasing.

라이다로부터 획득된 3D 점군 데이터를 가공하기 위해서는 3D 공간에서 각 객체에 해당되는 점들을 효과적으로 그룹(group)화 하여 어노테이션 작업을 수행해야 한다.In order to process 3D point cloud data obtained from LIDAR, annotation work must be performed by effectively grouping the points corresponding to each object in 3D space.

종래의 3D 점군 데이터에 대한 어노테이션 작업은 작업자가 특정 뷰 포인트에서 객체에 해당하는 2D 바운딩 박스(bounding box)를 지정하여 어노테이션 작업을 수행하였다.Conventionally, annotation work on 3D point cloud data was performed by the operator specifying a 2D bounding box corresponding to the object at a specific view point.

그러나, 3D 공간의 특정 시점에서 2D 바운딩 박스를 통해 어노테이션 작업을 수행함에 따라, 특정하기 위한 객체에 해당되지 않는 노이즈 점들까지 선택되는 문제점이 있었다.However, as annotation work was performed through a 2D bounding box at a specific point in 3D space, there was a problem in that noise points that did not correspond to the object to be specified were selected.

대한민국 등록특허공보 제10-2230144호, ‘인공 지능 심층 학습 타겟 탐지 및 속도 퍼텐셜 필드 알고리즘 기반 장애물 회피 및 자율 주행 방법 및 장치’, (2021.03.15. 공고)Republic of Korea Patent Publication No. 10-2230144, ‘Artificial intelligence deep learning target detection and speed potential field algorithm-based obstacle avoidance and autonomous driving method and device’, (announced on March 15, 2021)

본 발명의 일 목적은 인공지능을 기계 학습하기 위한 데이터의 어노테이션 작업과 관련하여, 라이다에 의해 획득된 3D 점군 데이터에 포함된 객체를 특정하기 위한 어노테이션 방법을 제공하는 것이다.One purpose of the present invention is to provide an annotation method for specifying objects included in 3D point cloud data acquired by LIDAR in relation to annotation work on data for machine learning artificial intelligence.

본 발명의 다른 목적은 인공지능을 기계 학습하기 위한 데이터의 어노테이션 작업과 관련하여, 라이다에 의해 획득된 3D 점군 데이터에 포함된 객체를 특정하기 위한 어노테이션 방법을 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램을 제공하는 것이다.Another object of the present invention is to use a computer recorded on a recording medium to execute an annotation method for specifying objects included in 3D point cloud data acquired by LiDAR, in relation to data annotation work for machine learning artificial intelligence. To provide a program.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

상술한 바와 같은 기술적 과제를 달성하기 위하여, 본 발명은 인공지능을 기계 학습하기 위한 데이터의 어노테이션 작업과 관련하여, 라이다에 의해 획득된 3D 점군 데이터에 포함된 객체를 특정하기 위한 어노테이션 방법을 제안한다. 상기 방법은 어노테이션 장치가, 라이다(lidar)로부터 수집된 3D 점군 데이터(3D point group)를 수신하는 단계, 상기 어노테이션 장치가, 상기 3D 점군 데이터를 적어도 하나의 뷰 포인트(view point)로 설정하고, 상기 설정된 적어도 하나의 뷰 포인트 각각에서 객체(object)를 특정하기 위한 복수 개의 가이드 포인트(guide point)들을 생성하는 단계 및 상기 어노테이션 장치가, 상기 생성한 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행하는 단계를 포함할 수 있다.In order to achieve the technical challenges described above, the present invention proposes an annotation method for specifying objects included in 3D point cloud data acquired by LIDAR in relation to annotation work on data for machine learning artificial intelligence. do. The method includes an annotation device receiving 3D point group data collected from a lidar, the annotation device setting the 3D point group data to at least one view point, and , generating a plurality of guide points for specifying an object at each of the set at least one view point, and the annotation device creates an object based on the generated plurality of guide points. It may include the step of performing annotation to specify.

구체적으로, 상기 가이드 포인트들을 생성하는 단계는 상기 3D 점군 데이터에서 상기 객체를 횡단하는 평면인 적어도 하나의 포인트 보드(point board)를 생성하는 단계 및 상기 적어도 하나의 포인트 보드 내에서 상기 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받는 단계를 포함하는 것을 특징으로 한다.Specifically, generating the guide points includes generating at least one point board, which is a plane crossing the object, from the 3D point cloud data, and specifying the object within the at least one point board. It is characterized in that it includes the step of selecting a plurality of guide points for.

또한, 상기 포인트 보드는 상기 3D 점군 데이터에 사전 설정된 3D 직교좌표계(orthogonal coordinate)에서의 좌표 평면인 것을 특징으로 한다.In addition, the point board is characterized in that it is a coordinate plane in a 3D orthogonal coordinate system preset in the 3D point cloud data.

또한, 상기 포인트 보드를 생성하는 단계는 어노테이션을 수행하는 작업자의 제어에 따라 상기 객체의 특정 지점을 선택받으면, 상기 선택받은 지점을 원점으로 하는 상기 3D 직교좌표계를 생성하고, 상기 생성된 3D 직교좌표계에서의 각 좌표축 쌍을 기초로 생성된 좌표 평면을 포인트 보드로 생성하는 것을 특징으로 한다.In addition, in the step of creating the point board, when a specific point of the object is selected under the control of an operator performing annotation, the 3D Cartesian coordinate system is created with the selected point as the origin, and the created 3D Cartesian coordinate system is It is characterized in that the coordinate plane created based on each pair of coordinate axes in is generated as a point board.

상기 포인트 보드를 생성하는 단계는 상기 적어도 하나의 포인트 보드를 생성하되, 각 포인트 보드와 평행하며 상기 객체를 횡단하는 일정 간격 이격된 복수 개의 추가 포인트 보드들을 생성하는 것을 특징으로 한다.The step of generating the point board is characterized by generating the at least one point board, and generating a plurality of additional point boards that are parallel to each point board and spaced apart at a predetermined interval across the object.

상기 포인트 보드를 생성하는 단계는 상기 작업자의 제어에 따라 상기 적어도 하나의 포인트 보드를 평행 이동시켜 복수 개의 추가 포인트 보드들을 생성하는 것을 특징으로 한다.The step of generating the point board may include generating a plurality of additional point boards by moving the at least one point board in parallel under the control of the operator.

상기 포인트 보드를 생성하는 단계는 상기 생성된 적어도 하나의 포인트 보드 각각에서의 상기 객체의 외곽선을 식별하고, 상기 객체를 횡단하는 가상선을 생성하고, 상기 생성된 가상선 중 가장 큰 폭을 갖는 가상선을 기준으로 상기 생성된 적어도 하나의 포인트 보드 각각의 크기를 설정하는 것을 특징으로 한다.The step of generating the point board includes identifying an outline of the object in each of the generated at least one point board, generating a virtual line crossing the object, and generating a virtual line having the largest width among the generated virtual lines. Characterized by setting the size of each of the at least one point board created based on a line.

상기 가이드 포인트들을 선택받는 단계는 상기 적어도 하나의 포인트 보드들 각각에서의 상기 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받되, 상기 적어도 하나의 포인트 보드 각각에서의 상기 객체의 외곽선을 식별하고, 상기 식별된 외곽선으로부터 상기 복수 개의 가이드 포인트들을 사전 설정된 거리만큼 이격시키는 것을 특징으로 한다.The step of selecting the guide points includes selecting a plurality of guide points for specifying the object in each of the at least one point boards, identifying an outline of the object in each of the at least one point boards, and The plurality of guide points are spaced apart from the identified outline by a preset distance.

상기 가이드 포인트들을 선택받는 단계는 상기 적어도 하나의 포인트 보드 각각에서의 상기 객체의 외곽선을 식별하고, 상기 식별된 객체의 외곽선을 따라 일정 간격 이격된 복수 개의 가이드 포인트들을 자동 생성하고, 상기 식별된 객체의 외곽선으로부터 상기 생성된 복수 개의 가이드 포인트들을 사전 설정된 거리만큼 이격시키는 것을 특징으로 한다.The step of selecting the guide points includes identifying an outline of the object in each of the at least one point board, automatically generating a plurality of guide points spaced at regular intervals along the outline of the identified object, and automatically generating a plurality of guide points spaced apart from each other at regular intervals along the outline of the identified object. The plurality of guide points created are spaced apart from the outline of by a preset distance.

상기 어노테이션을 수행하는 단계는 상기 가이드 포인트들을 삼각형으로 연결하여 공간을 분할하되, 삼각형들의 내각의 최소값이 최대가 되도록 분할하여 생성된 삼각형을 기초로 3D 모델링을 수행하는 것을 특징으로 한다.The step of performing the annotation is characterized by dividing the space by connecting the guide points into triangles, and performing 3D modeling based on the triangles created by dividing the triangles so that the minimum value of the interior angle is maximum.

상기 어노테이션을 수행하는 단계는 상기 3D 점군 데이터 내의 점군의 밀도를 기초로 상기 객체에 해당하는 점군을 식별하고, 상기 식별된 점군 중 상기 3D 모델링된 영역의 외곽에 위치하는 점을 추출하고, 상기 추출된 점을 기준으로 3D 모델링을 재수행하는 것을 특징으로 한다.The step of performing the annotation identifies a point cloud corresponding to the object based on the density of the point cloud in the 3D point cloud data, extracts a point located outside the 3D modeled area from among the identified point cloud, and extracts the point cloud. It is characterized by re-performing 3D modeling based on the point made.

상기 어노테이션을 수행하는 단계는 상기 3D 모델링된 영역의 외곽에 위치하는 점에 가이드 포인트를 생성하고, 상기 생성된 가이드 포인트를 기초로 상기 3D 모델링을 재수행하는 것을 특징으로 한다.The step of performing the annotation is characterized by creating a guide point at a point located outside the 3D modeled area and re-performing the 3D modeling based on the generated guide point.

상술한 바와 같은 기술적 과제를 달성하기 위하여, 본 발명은 인공지능을 기계 학습하기 위한 데이터의 어노테이션 작업과 관련하여, 라이다에 의해 획득된 3D 점군 데이터에 포함된 객체를 특정하기 위한 어노테이션 방법을 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램을 제안한다. 상기 컴퓨터 프로그램은 메모리(memory) 및 상기 메모리에 상주된 명령어를 처리하는 프로세서(processor)를 포함하여 구성된 컴퓨팅 장치와 결합될 수 있다. 그리고, 상기 컴퓨터 프로그램은 상기 프로세서가, 라이다(lidar)로부터 수집된 3D 점군 데이터(3D point group)를 수신하는 단계, 상기 프로세서가, 상기 3D 점군 데이터를 적어도 하나의 뷰 포인트(view point)로 설정하고, 상기 적어도 하나의 뷰 포인트 각각에서 객체(object)를 특정하기 위한 복수 개의 가이드 포인트(guide point)들을 생성하는 단계 및 상기 프로세서가, 상기 선택받은 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.In order to achieve the technical task described above, the present invention implements an annotation method to specify objects included in 3D point cloud data acquired by LIDAR in relation to annotation work on data for machine learning artificial intelligence. To do this, we propose a computer program recorded on a recording medium. The computer program may be combined with a computing device that includes a memory and a processor that processes instructions resident in the memory. And, the computer program includes the steps of the processor receiving 3D point group data collected from a lidar, the processor converting the 3D point group data into at least one view point. setting and generating a plurality of guide points for specifying an object at each of the at least one view point, and the processor creates an object based on the selected plurality of guide points. It may be a computer program recorded on a recording medium to execute the step of performing annotation to specify.

기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Specific details of other embodiments are included in the detailed description and drawings.

본 발명의 실시 예들에 따르면, 3D 점군 데이터의 3D 공간 상에서 객체 특정을 위한 가이드 포인트(guide point)를 생성하여 어노테이션을 수행함으로써, 정교하게 객체를 특정할 수 있으며, 객체에 해당되는 점들을 정확하게 특정할 수 있다.According to embodiments of the present invention, by creating a guide point for object specification in the 3D space of 3D point cloud data and performing annotation, it is possible to precisely specify the object and accurately specify the points corresponding to the object. can do.

본 발명의 효과들은 이상에서 언급한 효과로 제한되지 아니하며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 본 발명이 속한 기술분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description of the claims.

도 1 및 2는 본 발명의 다양한 실시예에 따른 인공지능 학습 시스템을 나타낸 구성도이다.
도 3은 본 발명의 일 실시예에 따른 어노테이션 장치의 논리적 구성도이다.
도 4는 본 발명의 일 실시예에 따른 어노테이션 장치의 하드웨어 구성도이다.
도 5는 본 발명의 일 실시예에 따른 어노테이션 방법을 설명하기 위한 순서도이다.
도 6 내지 도 10은 본 발명의 일 실시예에 따른 어노테이션 방법을 설명하기 위한 예시도이다.
1 and 2 are configuration diagrams showing an artificial intelligence learning system according to various embodiments of the present invention.
Figure 3 is a logical configuration diagram of an annotation device according to an embodiment of the present invention.
Figure 4 is a hardware configuration diagram of an annotation device according to an embodiment of the present invention.
Figure 5 is a flowchart for explaining an annotation method according to an embodiment of the present invention.
6 to 10 are exemplary diagrams for explaining an annotation method according to an embodiment of the present invention.

본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in this specification are only used to describe specific embodiments and are not intended to limit the present invention. In addition, the technical terms used in this specification, unless specifically defined in a different way in this specification, should be interpreted as meanings generally understood by those skilled in the art in the technical field to which the present invention pertains, and are not overly comprehensive. It should not be interpreted in a literal or excessively reduced sense. Additionally, if the technical terms used in this specification are incorrect technical terms that do not accurately express the spirit of the present invention, they should be replaced with technical terms that can be correctly understood by those skilled in the art. In addition, general terms used in the present invention should be interpreted according to the definition in the dictionary or according to the context, and should not be interpreted in an excessively reduced sense.

또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 개의 표현을 포함한다. 본 출원에서, "구성된다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.Additionally, as used herein, singular expressions include plural expressions, unless the context clearly dictates otherwise. In this application, terms such as “consists of” or “have” should not be construed as necessarily including all of the various components or steps described in the specification, and only some of the components or steps are included. It may not be possible, or it should be interpreted as including additional components or steps.

또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.Additionally, terms including ordinal numbers, such as first, second, etc., used in this specification may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the present invention.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being “connected” or “connected” to another component, it may be directly connected to or connected to the other component, but other components may also exist in between. On the other hand, when it is mentioned that a component is “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다. 본 발명의 사상은 첨부된 도면 외에 모든 변경, 균등물 내지 대체물에 까지도 확장되는 것으로 해석되어야 한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached drawings. However, identical or similar components will be assigned the same reference numbers regardless of the reference numerals, and duplicate descriptions thereof will be omitted. Additionally, when describing the present invention, if it is determined that a detailed description of related known technologies may obscure the gist of the present invention, the detailed description will be omitted. In addition, it should be noted that the attached drawings are only intended to facilitate easy understanding of the spirit of the present invention, and should not be construed as limiting the spirit of the present invention by the attached drawings. The spirit of the present invention should be construed as extending to all changes, equivalents, or substitutes other than the attached drawings.

한편, 라이다로부터 획득된 3D 점군 데이터를 가공하기 위해서는 3D 공간에서 각 객체에 해당되는 점들을 효과적으로 그룹(group)화 하여 어노테이션 작업을 수행해야 한다.Meanwhile, in order to process 3D point cloud data obtained from LIDAR, annotation work must be performed by effectively grouping the points corresponding to each object in 3D space.

종래의 3D 점군 데이터에 대한 어노테이션 작업은 작업자가 특정 뷰 포인트에서 객체에 해당하는 2D 바운딩 박스(bounding box)를 지정하여 어노테이션 작업을 수행하였다.Conventionally, annotation work on 3D point cloud data was performed by the operator specifying a 2D bounding box corresponding to the object at a specific view point.

그러나, 3D 공간의 특정 시점에서 2D 바운딩 박스를 통해 어노테이션 작업을 수행함에 따라, 특정하기 위한 객체에 해당되지 않는 점들까지 선택되는 문제점이 있었다.However, as annotation work was performed through a 2D bounding box at a specific point in 3D space, there was a problem in that even points that did not correspond to the object to be specified were selected.

이러한 한계를 극복하고자, 본 발명은 라이다에 의해 획득된 3D 점군 데이터에 포함된 객체를 특정할 수 있는 다양한 수단들을 제안하고자 한다.In order to overcome these limitations, the present invention seeks to propose various means for specifying objects included in 3D point cloud data acquired by LIDAR.

도 1 및 2는 본 발명의 다양한 실시예에 따른 인공지능 학습 시스템을 나타낸 구성도이다.1 and 2 are configuration diagrams showing an artificial intelligence learning system according to various embodiments of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 인공지능 학습 시스템은 학습 데이터 생성 장치(100), 하나 이상의 어노테이션 장치(200-1, 200-2, …, 200-n; 200), 학습 데이터 검증 장치(300) 및 학습 장치(400)를 포함하여 구성될 수 있다.As shown in Figure 1, the artificial intelligence learning system according to an embodiment of the present invention includes a learning data generating device 100 and one or more annotation devices (200-1, 200-2, ..., 200-n; 200). , may be configured to include a learning data verification device 300 and a learning device 400.

또한, 도 2에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 인공지능 학습 시스템은 하나 이상의 어노테이션 장치(200-a, 200-b, …, 200-m; 200)와 학습 데이터 검증 장치(300-a, 300-b, …, 300-m; 300)가 하나로 이루어진 복수 개의 그룹(Group-a, Group-b …, Group-m), 학습 데이터 생성 장치(100) 및 학습 장치(400)를 포함하여 구성될 수 있다.In addition, as shown in Figure 2, the artificial intelligence learning system according to another embodiment of the present invention includes one or more annotation devices (200-a, 200-b, ..., 200-m; 200) and a learning data verification device ( A plurality of groups (Group-a, Group-b..., Group-m) consisting of 300-a, 300-b, ..., 300-m; 300), a learning data generating device 100, and a learning device 400 It may be configured to include.

이와 같은, 다양한 실시예에 따른 인공지능 학습 시스템의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.Since the components of the artificial intelligence learning system according to various embodiments of this kind merely represent functionally distinct elements, two or more components are integrated and implemented with each other in the actual physical environment, or one component is implemented in the actual physical environment. may be implemented separately from each other.

각각의 구성 요소에 대하여 설명하면, 학습 데이터 생성 장치(100)는 차량의 자율주행에 사용될 수 있는 인공지능(AI)을 기계 학습시키기 위한 데이터를 설계 및 생성하는데 사용될 수 있는 장치이다. In terms of each component, the learning data generating device 100 is a device that can be used to design and generate data for machine learning artificial intelligence (AI) that can be used for autonomous driving of a vehicle.

이와 같은, 학습 데이터 생성 장치(100)는 기본적으로 학습 데이터 검증 장치(300)와 구분되는 장치이나, 실제 물리적 환경에서 학습 데이터 생성 장치(100)와 학습 데이터 검증 장치(300)가 하나의 장치로 통합되어 구현될 수도 있다.In this way, the learning data generation device 100 is basically a separate device from the learning data verification device 300, but in an actual physical environment, the learning data generation device 100 and the learning data verification device 300 are one device. It can also be integrated and implemented.

구체적으로, 학습 데이터 설계 장치(100)는 학습 장치(400)로부터 인공지능(AI) 학습과 관련된 프로젝트의 속성을 수신할 수 있다. 학습 데이터 설계 장치(100)는 사용자의 제어 및 수신된 프로젝트의 속성을 기초로, 인공지능(AI) 학습을 위한 데이터 구조의 설계, 수집된 데이터의 정제, 데이터의 가공, 데이터의 확장 및 데이터의 검증을 수행할 수 있다.Specifically, the learning data design device 100 may receive the properties of a project related to artificial intelligence (AI) learning from the learning device 400. The learning data design device 100 designs a data structure for artificial intelligence (AI) learning, purifies the collected data, processes the data, expands the data, and Verification can be performed.

우선적으로, 학습 데이터 설계 장치(100)는 인공지능(AI) 학습을 위한 데이터 구조를 설계할 수 있다. 예를 들어, 학습 데이터 설계 장치(100)는 사용자의 제어 및 수신된 프로젝트의 속성을 기초로, 인공지능(AI) 학습을 위한 온톨로지(ontology), 인공지능(AI) 학습을 위한 데이터의 분류 체계를 정의할 수 있다.First, the learning data design device 100 can design a data structure for artificial intelligence (AI) learning. For example, the learning data design device 100 creates an ontology for artificial intelligence (AI) learning and a classification system for data for artificial intelligence (AI) learning based on the user's control and the properties of the received project. can be defined.

학습 데이터 설계 장치(100)는 설계된 데이터 구조를 기초로, 인공지능(AI) 학습을 위한 데이터를 수집할 수 있다. 이를 위하여, 학습 데이터 설계 장치(100)는 외부로부터 3D 점군 데이터를 입력 받거나, 웹 크롤링(web crawling)을 수행하여 3D 점군 데이터를 수집하거나, 또는 외부 기관의 장치로부터 3D 점군 데이터를 다운로드 할 수 있다.The learning data design device 100 can collect data for artificial intelligence (AI) learning based on the designed data structure. To this end, the learning data design device 100 may receive 3D point cloud data from the outside, collect 3D point cloud data by performing web crawling, or download 3D point cloud data from a device of an external organization. .

여기서, 3D 점군 데이터는 차량에 고정 설치된 라이다(lidar)에 의해 획득된 데이터이다. 차량에 고정 설치된 라이다는 레이저 펄스를 발사하고, 차량 주위에 위치하는 객체들에 의해 반사되어 돌아온 빛을 감지하여, 차량 주위에 대한 3차원 영상에 해당하는 3D 점군 데이터를 생성할 수 있다. 즉, 3D 점군 데이터를 구성하는 점군은 라이다에 의해 3차원 공간으로 발사된 레이저 펄스를 반사시킨 점(point)들의 집합을 의미한다.Here, the 3D point cloud data is data acquired by a lidar fixed to a vehicle. Lidar fixed to a vehicle can emit laser pulses, detect light reflected by objects located around the vehicle, and generate 3D point cloud data corresponding to a 3D image of the vehicle's surroundings. In other words, the point cloud that constitutes 3D point cloud data refers to a set of points that reflect laser pulses fired into 3D space by LIDAR.

학습 데이터 생성 장치(100)는 수집된 3D 점군 데이터 중에서 중복되거나 또는 극히 유사한 데이터를 제거할 수 있다.The learning data generating device 100 may remove duplicate or extremely similar data from the collected 3D point cloud data.

학습 데이터 생성 장치(100)는 수집 및 정제된 3D 점군 데이터를 복수 개의 어노테이션 장치(200)에 분배하여 전송할 수 있다. 이 경우, 학습 데이터 생성 장치(100)는 어노테이션 장치(200)의 작업자(즉, 라벨러)에 대하여 사전에 할당된 양에 따라 3D 점군 데이터를 분배할 수 있다.The learning data generating device 100 may distribute and transmit the collected and refined 3D point cloud data to a plurality of annotation devices 200. In this case, the learning data generating device 100 may distribute 3D point cloud data according to a pre-allocated amount to the operator (i.e., labeler) of the annotation device 200.

학습 데이터 생성 장치(100)는 어노테이션 장치(200)로부터 직접 어노테이션 작업 결과물을 수신하거나, 또는 학습 데이터 검증 장치(300)로부터 어노테이션 작업 결과물 및 검수 결과를 수신할 수 있다.The learning data generating device 100 may receive annotation work results directly from the annotation device 200, or may receive annotation work results and inspection results from the learning data verification device 300.

학습 데이터 생성 장치(100)는 수신된 어노테이션 작업 결과물을 패키징(packaging)하여 인공지능(AI) 학습용 데이터를 생성할 수 있다. 그리고, 학습 데이터 생성 장치(100)는 생성된 인공지능(AI) 학습용 데이터를 학습 장치(400)에 전송할 수 있다.The learning data generating device 100 may generate artificial intelligence (AI) learning data by packaging the received annotation work results. Additionally, the learning data generating device 100 may transmit the generated artificial intelligence (AI) learning data to the learning device 400 .

이와 같은 특징을 가지는, 학습 데이터 생성 장치(100)는 어노테이션 장치(200), 학습 데이터 검증 장치(300) 및 학습 장치(400)와 데이터를 송수신하고, 송수신된 데이터를 기초로 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다.Having these characteristics, the learning data generating device 100 can transmit and receive data with the annotation device 200, the learning data verification device 300, and the learning device 400, and perform calculations based on the transmitted and received data. Any device that exists can be permitted.

예를 들어, 학습 데이터 생성 장치(100)는 데스크탑(desktop), 워크스테이션(workstation) 또는 서버(server)와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.For example, the learning data generating device 100 may be any one of fixed computing devices such as a desktop, workstation, or server, but is not limited thereto.

어노테이션 장치(200)는 학습 데이터 생성 장치(100)로부터 제공된 이미지에 대하여 어노테이션 작업을 수행하는데 사용될 수 있는 장치이다.The annotation device 200 is a device that can be used to perform annotation work on images provided from the learning data generating device 100.

구체적으로, 어노테이션 작업은 3D 점군 데이터 내에서 객체를 특정하고, 특정된 객체의 속성 정보를 포함하는 클래스(class) 정보를 입력하는 과정을 포함할 수 있다.Specifically, the annotation task may include the process of specifying an object within 3D point cloud data and inputting class information including attribute information of the specified object.

특히, 본 발명의 일 실시예에 따른 어노테이션 장치(200)는 라이다(lidar)로부터 수집된 3D 점군 데이터(3D point group)를 수신하고, 3D 점군 데이터를 적어도 하나의 뷰 포인트(view point)로 설정하고, 설정된 적어도 하나의 뷰 포인트 각각에서 객체(object)를 특정하기 위한 복수 개의 가이드 포인트(guide point)들을 생성할 수 있다.In particular, the annotation device 200 according to an embodiment of the present invention receives 3D point group data collected from lidar and converts the 3D point group data into at least one view point. It is possible to set and create a plurality of guide points for specifying an object at each of at least one set view point.

그리고, 어노테이션 장치(200)는 선택받은 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행할 수 있다.Additionally, the annotation device 200 may perform annotation to specify an object based on a plurality of selected guide points.

한편, 어노테이션 장치(200)에 관한 구체적인 내용은 이하 도 3 및 도 4를 참조하여 후술하도록 한다.Meanwhile, specific details regarding the annotation device 200 will be described later with reference to FIGS. 3 and 4.

이와 같은, 어노테이션 장치(200)는 학습 데이터 생성 장치(100) 또는 학습 장치(400)와 데이터를 송수신하고, 송수신된 데이터를 이용하여 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다.As such, the annotation device 200 can be any device that can transmit and receive data with the learning data generating device 100 or the learning device 400 and perform calculations using the transmitted and received data.

예를 들어, 어노테이션 장치(200)는 데스크탑(desktop), 워크스테이션(workstation) 또는 서버(server)와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되지 아니하고, 스마트폰(smart phone), 랩탑(laptaop), 태블릿(tablet), 패블릿(phablet), 휴대용 멀티미디어 재생장치(Portable Multimedia Player, PMP), 개인용 휴대 단말기(Personal Digital Assistants, PDA) 또는 전자책 단말기(E-book reader)과 같은 이동식 컴퓨팅 장치 중 어느 하나가 될 수도 있다.For example, the annotation device 200 may be any one of fixed computing devices such as a desktop, workstation, or server, but is not limited thereto, and may be a smart phone, Devices such as laptops, tablets, phablets, Portable Multimedia Players (PMPs), Personal Digital Assistants (PDAs), or E-book readers. It may be any one of the portable computing devices.

다음 구성으로, 학습 데이터 검증 장치(300)는 인공지능(AI) 학습용 데이터를 검증하는데 사용될 수 있는 장치이다. 즉, 학습 데이터 검증 장치(300)는 어노테이션 장치(200)에 의해 생성된 어노테이션 작업 결과물이 사전에 설정된 목표 품질에 부합하는지 여부, 또는 어노테이션 작업 결과물이 인공지능(AI) 학습에 유효한지 여부를 검증할 수 있는 장치이다.With the following configuration, the learning data verification device 300 is a device that can be used to verify artificial intelligence (AI) learning data. In other words, the learning data verification device 300 verifies whether the annotation work product generated by the annotation device 200 meets the preset target quality or whether the annotation work product is valid for artificial intelligence (AI) learning. It is a device that can do this.

구체적으로, 학습 데이터 검증 장치(300)는 어노테이션 장치(200)로부터 어노테이션 작업 결과물을 수신할 수 있다. 여기서, 어노테이션 작업 결과물은 3D 점군 데이터로부터 특정된 객체의 좌표와, 이미지 또는 객체에 대한 메타데이터가 포함될 수 있다. 어노테이션 작업 결과물의 메타데이터에는 특정된 객체의 카테고리(category), 객체가 2D 이미지의 화각에 의해 잘려진 비율(truncation), 객체가 다른 객체 또는 물체에 의해 가려진 비율(occlusion), 객체의 트래킹 아이디(tracking identifier), 이미지가 촬영된 시각, 이미지가 촬영된 날의 기상 조건 등이 포함될 수 있으며, 이에 한정되는 것은 아니다. 이와 같은, 어노테이션 작업 결과물은 JSON(Java Script Object Notation) 파일 형식을 가질 수 있으나, 이에 한정되는 것도 아니다.Specifically, the learning data verification device 300 may receive annotation work results from the annotation device 200. Here, the annotation work result may include coordinates of an object specified from 3D point cloud data and metadata about the image or object. The metadata of the annotation work result includes the category of the specified object, the rate at which the object is truncated by the angle of view of the 2D image (truncation), the rate at which the object is obscured by another object or object (occlusion), and the tracking ID of the object. identifier), the time when the image was taken, weather conditions on the day the image was taken, etc., but are not limited to this. The result of such annotation work may have a JSON (Java Script Object Notation) file format, but is not limited to this.

학습 데이터 검증 장치(300)는 수신된 어노테이션 작업 결과물을 검수할 수 있다. 이를 위하여, 학습 데이터 검증 장치(300)는 어노테이션 작업 결과물을 대상으로 스크립트(script)를 이용하여 검수를 수행할 수 있다. 여기서, 스크립트는 어노테이션 작업 결과물을 대상으로 사전에 설정된 목표 품질의 부합 여부 또는 데이터 유효성 여부를 검증하기 위한 코드이다.The learning data verification device 300 can inspect the received annotation work results. To this end, the learning data verification device 300 may inspect the annotation work results using a script. Here, the script is a code for verifying whether the annotation work results meet the preset target quality or whether the data is valid.

그리고, 학습 데이터 검증 장치(300)는 어노테이션 장치(200)들로부터 수신된 어노테이션 작업 결과물 및 검수 결과를 학습 데이터 생성 장치(100)에 전송할 수 있다.Additionally, the learning data verification device 300 may transmit the annotation work results and inspection results received from the annotation devices 200 to the learning data generation device 100.

상술한 바와 같은 특징을 가지는, 학습 데이터 검증 장치(300)는 어노테이션 장치(200) 및 학습 데이터 생성 장치(100)와 데이터를 송수신하고, 송수신된 데이터를 기초로 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다. 예를 들어, 학습 데이터 검증 장치(300)는 데스크탑, 워크스테이션 또는 서버와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.The learning data verification device 300, which has the characteristics described above, can transmit and receive data with the annotation device 200 and the learning data generation device 100, and can perform operations based on the transmitted and received data. Any device may be permitted. For example, the learning data verification device 300 may be any one of fixed computing devices such as a desktop, workstation, or server, but is not limited thereto.

다음 구성으로, 학습 장치(400)는 학습 데이터 생성 장치(100)로부터 제공된 3D 점군 데이터를 통해 인공지능(AI)을 기계 학습하는데 사용될 수 있는 장치이다.In the following configuration, the learning device 400 is a device that can be used to machine learn artificial intelligence (AI) through 3D point cloud data provided from the learning data generating device 100.

이와 같은, 학습 장치(400)는 학습 데이터 생성 장치(100)와 데이터를 송수신하고, 송수신된 데이터를 이용하여 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다. 예를 들어, 학습 장치(400)는 데스크탑, 워크스테이션 또는 서버와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.As such, the learning device 400 can be any device that can transmit and receive data with the learning data generating device 100 and perform calculations using the transmitted and received data. For example, the learning device 400 may be any one of stationary computing devices such as a desktop, workstation, or server, but is not limited thereto.

상술한 바와 같은, 학습 데이터 생성 장치(100), 하나 이상의 어노테이션 장치(200), 학습 데이터 검증 장치(300) 및 학습 장치(400)는 장치들 사이에 직접 연결된 보안회선, 공용 유선 통신망 또는 이동 통신망 중 하나 이상이 조합된 네트워크를 이용하여 데이터를 송수신할 수 있다. As described above, the learning data generating device 100, one or more annotation devices 200, the learning data verification device 300, and the learning device 400 are connected directly between the devices through a secure line, a public wired communication network, or a mobile communication network. Data can be transmitted and received using a network that combines one or more of the following.

예를 들어, 공용 유선 통신망에는 이더넷(ethernet), 디지털가입자선(x Digital Subscriber Line, xDSL), 광동축 혼합망(Hybrid Fiber Coax, HFC), 광가입자망(Fiber To The Home, FTTH)가 포함될 수 있으나, 이에 한정되는 것도 아니다. 그리고, 이동 통신망에는 코드 분할 다중 접속(Code Division Multiple Access, CDMA), 와이드 밴드 코드 분할 다중 접속(Wideband CDMA, WCDMA), 고속 패킷 접속(High Speed Packet Access, HSPA), 롱텀 에볼루션(Long Term Evolution, LTE), 5세대 이동통신(5th generation mobile telecommunication)가 포함될 수 있으나, 이에 한정되는 것은 아니다. For example, public wired networks may include Ethernet, xDigital Subscriber Line (xDSL), Hybrid Fiber Coax (HFC), and Fiber To The Home (FTTH). It may be possible, but it is not limited to this. In addition, mobile communication networks include Code Division Multiple Access (CDMA), Wideband CDMA (WCDMA), High Speed Packet Access (HSPA), and Long Term Evolution. LTE) and 5th generation mobile telecommunication may be included, but are not limited thereto.

이하, 본 발명의 일 실시예에 따른 어노테이션 장치의 논리적 구성에 대하여 구체적으로 설명하도록 한다.Hereinafter, the logical configuration of the annotation device according to an embodiment of the present invention will be described in detail.

도 3은 본 발명의 일 실시예에 따른 어노테이션 장치의 논리적 구성도이다.Figure 3 is a logical configuration diagram of an annotation device according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 어노테이션 장치(200)는 통신부(205), 입출력부(210), 포인트 생성부(215), 객체 특정부(220) 및 저장부(225)를 포함하여 구성될 수 있다.As shown in Figure 3, the annotation device 200 according to an embodiment of the present invention includes a communication unit 205, an input/output unit 210, a point creation unit 215, an object specification unit 220, and a storage unit ( 225).

이와 같은, 어노테이션 장치(200)의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.Since the components of the annotation device 200 merely represent functionally distinct elements, two or more components may be implemented integrated with each other in the actual physical environment, or one component may be separated from each other in the actual physical environment. It could be implemented.

각각의 구성 요소에 대하여 설명하면, 통신부(205)는 어노테이션의 작업 결과물을 학습 데이터 생성 장치(100) 또는 학습 데이터 검증 장치(300)에 전송할 수 있다.To describe each component, the communication unit 205 may transmit the annotation work result to the learning data generation device 100 or the learning data verification device 300.

여기서, 작업 결과물은 작업자의 제어에 따라 설정된 어노테이션의 작업 결과물에 대한 좌표 및 객체의 속성 정보가 포함될 수 있다. 또한, 작업 결과물은 JSON 파일 형식을 가질 수 있으나, 이에 한정되는 것은 아니다.Here, the work result may include the coordinates of the work result and object attribute information of the annotation set according to the operator's control. Additionally, the work result may be in a JSON file format, but is not limited thereto.

그리고, 통신부(250)는 학습 데이터 생성 장치(100)로부터 프로젝트의 속성, 이미지의 속성 또는 작업자의 속성을 수신할 수 있다.Additionally, the communication unit 250 may receive project properties, image properties, or worker properties from the learning data generating device 100.

여기서, 프로젝트의 속성에는 인공지능(AI)의 학습과 관련된 프로젝트에 대한 학습 목적, 학습 기간, 학습에 필요한 3D 점군 데이터에서 식별하고자 하는 객체의 속성, 어노테이션 규칙 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.Here, the properties of the project may include the learning purpose for the project related to artificial intelligence (AI) learning, the learning period, the properties of the object to be identified in the 3D point cloud data required for learning, annotation rules, etc., but are not limited to this. no.

작업자의 속성에는 작업자의 명칭, 식별번호, 할당된 작업량, 작업에 따른 비용, 작업 결과 평가 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.The worker's attributes may include, but are not limited to, the worker's name, identification number, assigned work amount, cost according to the work, and work result evaluation.

다음 구성으로, 입출력부(210)는 사용자 인터페이스(UI)를 통해 사용자로부터 신호를 입력 받거나, 연산 결과를 외부로 출력할 수 있다.In the following configuration, the input/output unit 210 can receive signals from the user through a user interface (UI) or output calculation results to the outside.

구체적으로, 입출력부(210)는 사용자 인터페이스(User Interface, UI)를 통해 작업자로부터 신호를 입력 거나, 또는 연산된 결과를 외부로 출력할 수 있다.Specifically, the input/output unit 210 may input a signal from an operator through a user interface (UI) or output a calculated result to the outside.

여기서, 작업자는 어노테이션 작업을 수행하는 자를 의미한다. 이와 같은, 작업자는 사용자, 수행자, 라벨러 또는 데이터 라벨러 등으로 지칭될 수 있으며, 이에 한정되는 것은 아니다.Here, a worker refers to a person who performs annotation work. As such, the worker may be referred to as a user, performer, labeler, or data labeler, but is not limited thereto.

구체적으로, 입출력부(210)는 어노테이션 작업의 대상이 되는 3D 점군 데이터를 출력할 수 있다. 입출력부(210)는 어노테이션 작업을 위한 제어 신호를 작업자로부터 입력 받을 수 있다.Specifically, the input/output unit 210 may output 3D point cloud data that is the target of annotation work. The input/output unit 210 can receive a control signal for annotation work from an operator.

다음 구성으로, 포인트 생성부(215)는 3D 점군 데이터를 적어도 하나의 뷰 포인트(view point)로 설정하고, 설정된 적어도 하나의 뷰 포인트 각각에서 객체(object)를 특정하기 위한 복수 개의 가이드 포인트(guide point)들을 생성할 수 있다.In the following configuration, the point generator 215 sets the 3D point cloud data to at least one view point and provides a plurality of guide points for specifying an object at each of the set at least one view point. points) can be created.

구체적으로, 포인트 생성부(215)는 3D 점군 데이터에서 객체를 횡단하는 평면인 적어도 하나의 포인트 보드(point board)를 생성할 수 있다.Specifically, the point generator 215 may generate at least one point board, which is a plane crossing an object, from 3D point cloud data.

여기서, 포인트 보드는 3D 점군 데이터에 사전 설정된 3D 직교좌표계(orthogonal coordinate)에서의 좌표 평면이 될 수 있다.Here, the point board may be a coordinate plane in a 3D orthogonal coordinate system preset in 3D point cloud data.

예를 들어, 포인트 보드는 x축, y축 및 z축을 포함하는 직교좌표계의 xy 좌표 평면, yz 좌표 평면 및 xz 좌표 평면이 될 수 있다.For example, the point board can be an xy coordinate plane, a yz coordinate plane, and an xz coordinate plane in a Cartesian coordinate system that includes the x, y, and z axes.

즉, 포인트 생성부(215)는 어노테이션을 수행하는 작업자의 제어에 따라 객체의 특정 지점을 선택받으면, 선택받은 지점을 원점으로 하는 3D 직교좌표계를 생성하고, 생성된 3D 직교좌표계에서의 각 좌표축 쌍을 기초로 생성된 좌표 평면을 포인트 보드로 생성할 수 있다.That is, when a specific point of an object is selected according to the control of the operator performing the annotation, the point generator 215 generates a 3D Cartesian coordinate system with the selected point as the origin, and each pair of coordinate axes in the created 3D Cartesian coordinate system. The coordinate plane created based on can be created as a point board.

그리고, 포인트 생성부(215)는 작업자의 제어에 따라 적어도 하나의 포인트 보드를 평행 이동시켜 복수 개의 추가 포인트 보드들을 생성할 수 있다.Additionally, the point generator 215 may generate a plurality of additional point boards by moving at least one point board in parallel under the control of the operator.

예를 들어, 포인트 생성부(215)는 작업자로부터 최초 객체의 최상단에 위치한 점을 선택받고, 선택받은 점을 원점으로 하는 3D 직교좌표계를 생성할 수 있다. 이후, 포인트 생성부(215)는 포인트 보드를 z축 방향으로 평행 이동시킬 수 있으며, 최종적으로 객체의 최하단까지 포인트 보드를 이동시킬 수 있다.For example, the point generator 215 may receive a point located at the top of the initial object from the operator and generate a 3D Cartesian coordinate system with the selected point as the origin. Thereafter, the point generator 215 may move the point board in parallel in the z-axis direction, and finally move the point board to the bottom of the object.

하지만 이에 한정된 것은 아니고, 포인트 생성부(215)는 각 포인트 보드와 평행하며 객체를 횡단하는 일정 간격 이격된 복수 개의 추가 포인트 보드들을 생성할 수 있다.However, it is not limited to this, and the point generator 215 may generate a plurality of additional point boards that are parallel to each point board and spaced at a predetermined interval across the object.

예를 들어, 포인트 생성부(215)는 작업자로부터 객체를 선택받을 수 있으며, 객체가 선택되면, 선택받은 객체의 외곽선을 식별할 수 있다. 그리고, 포인트 생성부(215)는 사전 설정된 3D 직교좌표계를 기준으로 좌표 평면인 포인트 보드를 생성하되, 식별된 객체의 외곽선을 기초로 각 포인트 보드와 평행하며 객체를 횡단하는 일정 간격 이격된 복수 개의 추가 포인트 보드들을 생성할 수 있다.For example, the point generator 215 may receive an object selection from an operator, and when an object is selected, the point generator 215 may identify the outline of the selected object. In addition, the point generator 215 generates a point board, which is a coordinate plane, based on a preset 3D orthogonal coordinate system, and, based on the outline of the identified object, a plurality of points parallel to each point board and spaced at a certain interval across the object. Additional point boards can be created.

포인트 생성부(215)는 포인트 보드를 생성함에 있어서 객체의 외곽선을 기준으로 포인트 보드의 크기를 설정함으로써, 작업자가 포인트 보드 상에 가이드 포인트들을 용이하게 입력할 수 있도록 지원할 수 있다.When creating a point board, the point creation unit 215 sets the size of the point board based on the outline of the object, thereby enabling the worker to easily input guide points on the point board.

즉, 포인트 생성부(215)는 생성된 적어도 하나의 포인트 보드 각각에서의 객체의 외곽선을 식별하고, 객체를 횡단하는 가상선을 생성하고, 생성된 가상선 중 가장 큰 폭을 갖는 가상선을 기준으로 생성된 적어도 하나의 포인트 보드 각각의 크기를 설정할 수 있다.That is, the point generator 215 identifies the outline of an object in each of at least one generated point board, generates a virtual line crossing the object, and uses the virtual line with the largest width among the generated virtual lines as a reference. You can set the size of each of at least one point board created.

이후, 포인트 생성부(215)는 적어도 하나의 포인트 보드 내에서 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받을 수 있다.Thereafter, the point generator 215 may select a plurality of guide points for specifying an object within at least one point board.

구체적으로, 포인트 생성부(215)는 적어도 하나의 포인트 보드 각각에서의 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받되, 적어도 하나의 포인트 보드 각각에서의 객체의 외곽선을 식별하고, 식별된 외곽선으로부터 복수 개의 가이드 포인트들을 사전 설정된 거리만큼 이격시킬 수 있다.Specifically, the point generator 215 selects a plurality of guide points for specifying an object in each of at least one point board, identifies the outline of the object in each of the at least one point board, and Multiple guide points can be spaced apart by a preset distance.

또한, 포인트 생성부(215)는 적어도 하나의 포인트 보드 각각에서의 객체의 외곽선을 식별하고, 식별된 객체의 외곽선을 따라 일정 간격 이격된 복수 개의 가이드 포인트들을 자동 생성하고, 식별된 객체의 외곽선으로부터 생성된 복수 개의 가이드 포인트들을 사전 설정된 거리만큼 이격시킬 수 있다.In addition, the point generator 215 identifies the outline of an object in each of at least one point board, automatically generates a plurality of guide points spaced apart at regular intervals along the outline of the identified object, and automatically generates a plurality of guide points spaced apart from the outline of the identified object. The generated plurality of guide points can be spaced apart by a preset distance.

즉, 후술할 객체 특정부(220)가 선택된 복수 개의 가이드 포인트들 연결하여 어노테이션을 수행함에 있어서, 작업자로부터 충분히 가이드 포인트를 입력받지 않은 상태로 복수 개의 가이드 포인트들을 연결하는 경우에는 3D 모델링 된 영역 내에 객체에 대한 점군이 모두 포함되지 않는 문제가 발생될 수 있다.That is, when the object specification unit 220, which will be described later, performs annotation by connecting a plurality of selected guide points, if the plurality of guide points are connected without receiving sufficient guide points from the operator, the object specification unit 220, which will be described later, connects the plurality of guide points without receiving sufficient guide points from the operator, within the 3D modeled area. A problem may arise in which not all point clouds for an object are included.

이에 따라, 포인트 생성부(215)는 작업자가 선택한 가이드 포인트들을 객체로부터 이격시킴으로써, 3D 모델링 된 영역 내에 객체의 점군이 완전히 포함될 수 있도록 지원할 수 있다.Accordingly, the point generator 215 can support the point cloud of the object to be completely included within the 3D modeled area by separating the guide points selected by the operator from the object.

예를 들어, 포인트 생성부(215)는 식별된 객체의 중심점 추정하고, 추정된 중심점을 기준으로 해당 가이드 포인트를 연결하는 가상선을 형성하고, 형성된 가상선을 기준으로 객체의 외곽으로부터 가이드 포인트를 사전 설정된 거리만큼 이격시킬 수 있다.For example, the point generator 215 estimates the center point of the identified object, forms an virtual line connecting the guide points based on the estimated center point, and creates a guide point from the outside of the object based on the formed virtual line. They can be separated by a preset distance.

다음 구성으로, 객체 특정부(220)는 선택받은 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행할 수 있다.With the following configuration, the object specification unit 220 can perform annotation to specify an object based on a plurality of selected guide points.

구체적으로, 객체 특정부(220)는 선택받은 복수 개의 가이드 포인트들을 연결하여, 3D 점군 데이터에서 객체의 점군 기초로 3D 모델링을 수행하여, 특정을 위한 객체의 점군을 포함하는 3D 모델을 생성할 수 있다.Specifically, the object specification unit 220 connects a plurality of selected guide points, performs 3D modeling based on the point cloud of the object in the 3D point cloud data, and creates a 3D model including the point cloud of the object for specification. there is.

예를 들어, 객체 특정부(220)는 가이드 포인트들을 삼각형으로 연결하여 공간을 분할하되, 삼각형들의 내각의 최소값이 최대가 되도록 분할하여 생성된 삼각형을 기초로 3D 모델링을 수행할 수 있다.For example, the object specification unit 220 may divide the space by connecting guide points into triangles and perform 3D modeling based on the triangles created by dividing the space so that the minimum value of the interior angle of the triangles is maximum.

즉, 객체 특정부(220)는 들로네 삼각분할(delaunay triangulation)을 통해 객체를 3D 모델링할 수 있다. 다시 말하면, 객체 특정부(220)는 선택된 복수 개의 가이드 포인트들을 모두 포함하는 최초 삼각형(super triangle)을 구성하고, 최초 삼각형 안에서 각 점을 대상으로 세 점을 포함하는 원 안에 다른 점이 존재하지 않으면, 그 삼각형을 델로니 삼각형으로 추가할 수 있다. 이때, 최초 삼각형은 모든 델로니 삼각망 구성 과정이 수행되면 삭제할 수 있다.That is, the object specification unit 220 can 3D model the object through Delaunay triangulation. In other words, the object specification unit 220 forms a super triangle including all of the selected plurality of guide points, and if there are no other points within the circle containing the three points for each point in the initial triangle, We can add that triangle as a Delaunay triangle. At this time, the initial triangle can be deleted once all Delaney triangle network construction processes have been performed.

또한, 객체 특정부(220)는 3D 점군 데이터 내의 점군의 밀도를 기초로 객체에 해당하는 점군을 식별하고, 식별된 점군 중 3D 모델링 된 영역 외곽에 위치하는 점을 추출하고, 추출된 점을 기준으로 3D 모델링을 재수행할 수 있다.In addition, the object specification unit 220 identifies a point cloud corresponding to an object based on the density of the point cloud in the 3D point cloud data, extracts points located outside the 3D modeled area from among the identified point clouds, and sets the extracted points as the basis. You can re-perform 3D modeling.

예를 들어, 객체 특정부(220)는 3D 모델링 된 영역 외곽에 위치하는 점에 가이드 포인트를 생성하고, 생성된 가이드 포인트를 기초로 3D 모델링을 재수행할 수 있다.For example, the object specification unit 220 may create a guide point at a point located outside the 3D modeled area and re-perform 3D modeling based on the generated guide point.

이하, 상술한 바와 같은 어노테이션 장치(200)의 논리적 구성요소를 구현하기 위한 하드웨어에 대하여 보다 구체적으로 설명한다.Hereinafter, hardware for implementing the logical components of the annotation device 200 as described above will be described in more detail.

도 4는 본 발명의 일 실시예에 따른 어노테이션 장치의 하드웨어 구성도이다.Figure 4 is a hardware configuration diagram of an annotation device according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 어노테이션 장치(200)는 프로세서(Processor, 250), 메모리(Memory, 255), 송수신기(Transceiver, 260), 입출력장치(Input/output device, 265), 데이터 버스(Bus, 270) 및 스토리지(Storage, 275)를 포함하여 구성될 수 있다. As shown in FIG. 4, the annotation device 200 includes a processor (Processor, 250), a memory (Memory, 255), a transceiver (260), an input/output device (265), and a data bus (Bus). , 270) and storage (Storage, 275).

프로세서(250)는 메모리(255)에 상주된 본 발명의 실시예들에 따른 방법이 구현된 소프트웨어(280a)에 따른 명령어를 기초로, 어노테이션 장치(200)의 동작 및 기능을 구현할 수 있다. 메모리(255)에는 본 발명의 실시예들에 따른 방법이 구현된 소프트웨어(280a)가 상주(loading)될 수 있다. 송수신기(260)는 학습 데이터 생성 장치(100), 학습 데이터 검증 장치(300) 및 인공지능 학습 장치(400)와 데이터를 송수신할 수 있다. 입출력장치(265)는 어노테이션 장치(200)의 동작에 필요한 데이터를 입력 받거나, 학습 결과물을 출력할 수 있다. 데이터 버스(270)는 프로세서(250), 메모리(255), 송수신기(260), 입출력장치(265) 및 스토리지(275)와 연결되어, 각각의 구성 요소 사이가 서로 데이터를 전달하기 위한 이동 통로의 역할을 수행할 수 있다.The processor 250 may implement the operations and functions of the annotation device 200 based on instructions according to the software 280a in which the method according to the embodiments of the present invention is implemented, which resides in the memory 255. Software 280a implementing methods according to embodiments of the present invention may be loaded in the memory 255. The transceiver 260 can transmit and receive data with the learning data generating device 100, the learning data verification device 300, and the artificial intelligence learning device 400. The input/output device 265 can receive data required for the operation of the annotation device 200 or output learning results. The data bus 270 is connected to the processor 250, memory 255, transceiver 260, input/output device 265, and storage 275, and forms a moving path for transferring data between each component. can perform its role.

스토리지(275)는 본 발명의 실시예들에 따른 방법이 구현된 소프트웨어(280a)의 실행을 위해 필요한 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API), 라이브러리(library) 파일, 리소스(resource) 파일 등을 저장할 수 있다. 스토리지(275)는 본 발명의 실시예들에 따른 방법이 구현된 소프트웨어(280b)를 저장할 수 있다. 또한, 스토리지(275)는 본 발명의 실시예들에 따른 방법의 수행에 필요한 정보들을 저장할 수 있다.The storage 275 stores an application programming interface (API), library files, resource files, etc. necessary for executing the software 280a in which the method according to the embodiments of the present invention is implemented. You can save it. The storage 275 may store software 280b in which methods according to embodiments of the present invention are implemented. Additionally, the storage 275 may store information necessary for performing methods according to embodiments of the present invention.

본 발명의 일 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 학습 방법을 구현하기 위한 소프트웨어(280a, 280b)는 프로세서(250)가 라이다(lidar)로부터 수집된 3D 점군 데이터(3D point group)를 수신하는 단계, 프로세서(250)가, 3D 점군 데이터를 적어도 하나의 뷰 포인트(view point)로 설정하고, 적어도 하나의 뷰 포인트 각각에서 객체(object)를 특정하기 위한 복수 개의 가이드 포인트(guide point)들을 생성하는 단계 및 프로세서(250)가, 선택받은 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.According to one embodiment of the present invention, software 280a, 280b for implementing a learning method resident in memory 255 or stored in storage 275 allows the processor 250 to use 3D data collected from lidar. Receiving point cloud data (3D point group), the processor 250 sets the 3D point cloud data to at least one view point and specifies an object at each of the at least one view point. In order to execute the step of creating a plurality of guide points and the step of the processor 250 performing an annotation to specify an object based on the selected plurality of guide points, record It can be a computer program recorded on a medium.

보다 구체적으로, 프로세서(250)는 ASIC(Application-Specific Integrated Circuit), 다른 칩셋(chipset), 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리(255)는 ROM(Read-Only Memory), RAM(Random Access Memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다. 송수신기(260)는 유무선 신호를 처리하기 위한 베이스밴드 회로를 포함할 수 있다. 입출력장치(265)는 키보드(keyboard), 마우스(mouse), 및/또는 조이스틱(joystick) 등과 같은 입력 장치 및 액정표시장치(Liquid Crystal Display, LCD), 유기 발광 다이오드(Organic LED, OLED) 및/또는 능동형 유기 발광 다이오드(Active Matrix OLED, AMOLED) 등과 같은 영상 출력 장치 프린터(printer), 플로터(plotter) 등과 같은 인쇄 장치를 포함할 수 있다. More specifically, the processor 250 may include an application-specific integrated circuit (ASIC), another chipset, a logic circuit, and/or a data processing device. The memory 255 may include read-only memory (ROM), random access memory (RAM), flash memory, a memory card, a storage medium, and/or other storage devices. The transceiver 260 may include a baseband circuit for processing wired and wireless signals. The input/output device 265 includes input devices such as a keyboard, mouse, and/or joystick, a liquid crystal display (LCD), an organic light emitting diode (OLED), and/ Alternatively, it may include an image output device such as an active matrix OLED (AMOLED), a printing device such as a printer, a plotter, etc.

본 명세서에 포함된 실시 예가 소프트웨어로 구현될 경우, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리(255)에 상주되고, 프로세서(250)에 의해 실행될 수 있다. 메모리(255)는 프로세서(250)의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서(250)와 연결될 수 있다.When the embodiments included in this specification are implemented as software, the above-described method may be implemented as a module (process, function, etc.) that performs the above-described function. The module resides in memory 255 and can be executed by processor 250. Memory 255 may be internal or external to processor 250 and may be coupled to processor 250 by a variety of well-known means.

도 4에 도시된 각 구성요소는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.Each component shown in FIG. 4 may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, an embodiment of the present invention includes one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), and FPGAs ( Field Programmable Gate Arrays), processor, controller, microcontroller, microprocessor, etc.

또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한, 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, in the case of implementation by firmware or software, an embodiment of the present invention is implemented in the form of a module, procedure, function, etc. that performs the functions or operations described above, and is stored on a recording medium readable through various computer means. can be recorded Here, the recording medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the recording medium may be those specifically designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. For example, recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROM (Compact Disk Read Only Memory) and DVD (Digital Video Disk), and floptical media. It includes magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program instructions such as ROM, RAM, flash memory, etc. Examples of program instructions may include machine language code such as that created by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. Such hardware devices may be configured to operate as one or more software to perform the operations of the present invention, and vice versa.

도 5는 본 발명의 일 실시예에 따른 어노테이션 방법을 설명하기 위한 순서도이다.Figure 5 is a flowchart for explaining an annotation method according to an embodiment of the present invention.

도 5를 참조하면, S100 단계에서 어노테이션 장치는 라이다(lidar)로부터 수집된 3D 점군 데이터(3D point group)를 수신할 수 있다.Referring to FIG. 5, in step S100, the annotation device may receive 3D point group data collected from lidar.

다음으로, S200 단계에서 어노테이션 장치는 3D 점군 데이터에서 객체를 횡단하는 평면인 적어도 하나의 포인트 보드(point board)를 생성할 수 있다.Next, in step S200, the annotation device may generate at least one point board, which is a plane that traverses the object from the 3D point cloud data.

여기서, 포인트 보드는 3D 점군 데이터에 사전 설정된 3D 직교좌표계(orthogonal coordinate)에서의 좌표 평면이 될 수 있다.Here, the point board may be a coordinate plane in a 3D orthogonal coordinate system preset in 3D point cloud data.

즉, 어노테이션 장치는 어노테이션을 수행하는 작업자의 제어에 따라 객체의 특정 지점을 선택받으면, 선택받은 지점을 원점으로 하는 3D 직교좌표계를 생성하고, 생성된 3D 직교좌표계에서의 각 좌표축 쌍을 기초로 생성된 좌표 평면을 포인트 보드로 생성할 수 있다.In other words, when the annotation device selects a specific point of an object under the control of the operator performing the annotation, it creates a 3D Cartesian coordinate system with the selected point as the origin, and creates it based on each pair of coordinate axes in the created 3D Cartesian coordinate system. The coordinate plane can be created as a point board.

이때, 어노테이션 장치는 적어도 하나의 포인트 보드를 생성하되, 각 포인트 보드와 평행하며 객체를 횡단하는 일정 간격 이격된 복수 개의 추가 포인트 보드들을 생성할 수 있다.At this time, the annotation device may generate at least one point board, and may generate a plurality of additional point boards that are parallel to each point board and spaced apart at a predetermined interval across the object.

하지만, 이에 한정된 것은 아니고, 어노테이션 장치는 작업자의 제어에 따라 상기 적어도 하나의 포인트 보드를 평행 이동시켜 복수 개의 추가 포인트 보드들을 생성할 수도 있다.However, the annotation device is not limited to this, and may create a plurality of additional point boards by moving the at least one point board in parallel under the control of the operator.

또한, 어노테이션 장치는 생성된 적어도 하나의 포인트 보드 각각에서의 객체의 외곽선을 식별하고, 객체를 횡단하는 가상선을 생성하고, 생성된 가상선 중 가장 큰 폭을 갖는 가상선을 기준으로 생성된 적어도 하나의 포인트 보드 각각의 크기를 설정할 수 있다.Additionally, the annotation device identifies the outline of an object in each of at least one generated point board, generates a virtual line crossing the object, and generates at least one virtual line based on the virtual line with the largest width among the generated virtual lines. You can set the size of each point board.

다음으로, S300 단계에서 어노테이션 장치는 적어도 하나의 포인트 보드 내에서 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받을 수 있다.Next, in step S300, the annotation device may select a plurality of guide points for specifying an object within at least one point board.

구체적으로, 어노테이션 장치는 적어도 하나의 포인트 보드들 각각에서의 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받되, 적어도 하나의 포인트 보드 각각에서의 객체의 외곽선을 식별하고, 식별된 외곽선으로부터 복수 개의 가이드 포인트들을 사전 설정된 거리만큼 이격시킬 수 있다.Specifically, the annotation device selects a plurality of guide points for specifying an object in each of at least one point board, identifies the outline of the object in each of the at least one point board, and generates a plurality of guide points from the identified outline. Points can be spaced apart by a preset distance.

또한, 어노테이션 장치는 적어도 하나의 포인트 보드 각각에서의 객체의 외곽선을 식별하고, 식별된 객체의 외곽선을 따라 일정 간격 이격된 복수 개의 가이드 포인트들을 자동 생성하고, 식별된 객체의 외곽선으로부터 생성된 복수 개의 가이드 포인트들을 사전 설정된 거리만큼 이격시킬 수 있다.In addition, the annotation device identifies the outline of an object in each of at least one point board, automatically generates a plurality of guide points spaced at regular intervals along the outline of the identified object, and generates a plurality of guide points from the outline of the identified object. Guide points can be spaced apart by a preset distance.

그리고, S400 단계에서 어노테이션 장치는 선택받은 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행할 수 있다.And, in step S400, the annotation device may perform annotation to specify an object based on a plurality of selected guide points.

구체적으로, 어노테이션 장치는 선택받은 복수 개의 가이드 포인트들을 연결하여, 3D 점군 데이터에서 객체의 점군 기초로 3D 모델링을 수행하여, 특정을 위한 객체의 점군을 포함하는 3D 모델을 생성할 수 있다.Specifically, the annotation device may connect a plurality of selected guide points, perform 3D modeling based on the point cloud of the object in 3D point cloud data, and create a 3D model including the point cloud of the object for specification.

예를 들어, 어노테이션 장치는 가이드 포인트들을 삼각형으로 연결하여 공간을 분할하되, 삼각형들의 내각의 최소값이 최대가 되도록 분할하여 생성된 삼각형을 기초로 3D 모델링을 수행할 수 있다.For example, the annotation device may divide space by connecting guide points into triangles, and perform 3D modeling based on the triangles created by dividing the triangles so that the minimum value of the interior angle is maximum.

또한, 어노테이션 장치는 3D 점군 데이터 내의 점군의 밀도를 기초로 객체에 해당하는 점군을 식별하고, 식별된 점군 중 3D 모델링 된 외곽에 위치하는 점을 추출하고, 추출된 점을 기준으로 3D 모델링을 재수행할 수 있다.In addition, the annotation device identifies the point cloud corresponding to the object based on the density of the point cloud in the 3D point cloud data, extracts points located on the 3D modeled outskirts among the identified point clouds, and re-executes 3D modeling based on the extracted points. It can be done.

이때, 어노테이션 장치는 3D 모델링 된 영역의 외곽에 위치하는 점에 가이드 포인트를 생성하고, 생성된 가이드 포인트를 기초로 3D 모델링을 재수행할 수 있다.At this time, the annotation device may create a guide point at a point located on the outside of the 3D modeled area and re-perform 3D modeling based on the generated guide point.

또한, 어노테이션 장치는 3D 모델링 된 영역 내에 위치하는 객체의 점군의 색상을 변경하여 작업자가 용이하게 식별하도록 할 수 있다.Additionally, the annotation device can change the color of the point cloud of an object located within a 3D modeled area so that workers can easily identify it.

도 6 내지 도 10은 본 발명의 일 실시예에 따른 어노테이션 방법을 설명하기 위한 예시도이다.6 to 10 are exemplary diagrams for explaining an annotation method according to an embodiment of the present invention.

도 6 내지 도 10을 참조하면, 본 발명의 일 실시예에 따른 어노테이션 장치는 3D 점군 데이터에서 객체를 횡단하는 평면인 적어도 하나의 포인트 보드(point board)를 생성할 수 있다.Referring to FIGS. 6 to 10 , the annotation device according to an embodiment of the present invention may generate at least one point board, which is a plane crossing an object, from 3D point cloud data.

여기서, 포인트 보드는 3D 점군 데이터에 사전 설정된 3D 직교좌표계(orthogonal coordinate)에서의 좌표 평면이 될 수 있다.Here, the point board may be a coordinate plane in a 3D orthogonal coordinate system preset in 3D point cloud data.

즉, 어노테이션 장치는 어노테이션을 수행하는 작업자의 제어에 따라 객체의 특정 지점을 선택받으면, 선택받은 지점을 원점으로 하는 3D 직교좌표계를 생성하고, 생성된 3D 직교좌표계에서의 각 좌표축 쌍을 기초로 생성된 xy 좌표 평면(a), yz 좌표 평면(b) 및 xz 좌표 평면(c)을 포인트 보드로 생성할 수 있다.In other words, when the annotation device selects a specific point of an object under the control of the operator performing the annotation, it creates a 3D Cartesian coordinate system with the selected point as the origin, and creates it based on each pair of coordinate axes in the created 3D Cartesian coordinate system. The xy coordinate plane (a), yz coordinate plane (b), and xz coordinate plane (c) can be created as a point board.

도 6에 도시된 바와 같이, 어노테이션 장치는 포인트 보드(a, b, c)가 생성되면, 생성된 포인트 보드(a, b, c) 중 적어도 하나에 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받을 수 있다.As shown in FIG. 6, when a point board (a, b, c) is created, the annotation device selects a plurality of guide points to specify an object on at least one of the created point boards (a, b, c). You can receive it.

예를 들어, 작업자는 3D 점군 데이터의 뷰 포인트를 변경하면서, 포인트 보드(a, b, c) 중 하나를 선택할 수 있다. 그리고, 작업자는 포인트 보드(a, b, c) 중 하나를 선택한 상태로, 선택된 포인트 보드 상에서 특정 지점을 지정하게 되면, 해당 포인트 보드 상에 가이드 포인트를 생성할 수 있다.For example, the operator can select one of the point boards (a, b, c) while changing the view point of the 3D point cloud data. Also, when the worker selects one of the point boards (a, b, c) and designates a specific point on the selected point board, a guide point can be created on the point board.

이때, 어노테이션 장치는 작업자의 제어에 따라 포인트 보드(a, b, c)를 평행 이동시킬 수 있다. 즉, 도 7에 도시된 바와 같이, 어노테이션 장치는 작업자의 제어에 따라 포인트 보드(a, b, c)를 z축 방향으로 평행 이동시킬 수 있다.At this time, the annotation device can move the point boards (a, b, c) in parallel according to the operator's control. That is, as shown in FIG. 7, the annotation device can move the point boards (a, b, c) in parallel in the z-axis direction under the control of the operator.

즉, 작업자는 xy 좌표 평면에 해당하는 포인트 보드(a)를 객체(object)의 최상단에 위치시킨 상태로 가이드 포인트들을 생성하고, 객체의 하부로 포인트 보드(a)를 평행 이동시키면서 가이드 포인트들을 추가로 생성할 수 있다.That is, the operator creates guide points by placing the point board (a) corresponding to the xy coordinate plane at the top of the object, and adds guide points by moving the point board (a) to the bottom of the object in parallel. It can be created with

최종적으로, 도 8에 도시된 바와 같이, 작업자는 객체의 최하단에 포인트 보드(a)를 위치시킨 후 가이드 포인트들을 생성할 수 있다.Finally, as shown in FIG. 8, the operator can create guide points after placing the point board (a) at the bottom of the object.

도 9에 도시된 바와 같이, 어노테이션 장치는 작업자의 가이드 포인트 생성 작업이 완료되면, 선택받은 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행할 수 있다.As shown in FIG. 9, when the operator's guide point creation task is completed, the annotation device can perform annotation to specify an object based on a plurality of selected guide points.

구체적으로, 어노테이션 장치는 가이드 포인트들을 삼각형으로 연결하여 공간을 분할하되, 삼각형들의 내각의 최소값이 최대가 되도록 분할할 수 있다.Specifically, the annotation device can divide the space by connecting guide points into triangles so that the minimum value of the interior angles of the triangles is maximum.

그리고, 도 10에 도시된 바와 같이, 어노테이션 장치는 작업자로부터 선택받은 가이드 포인트들을 삭제하고, 생성된 삼각형을 기초로 외부면을 형성함으로써 3D 모델링을 수행할 수 있다.And, as shown in FIG. 10, the annotation device can perform 3D modeling by deleting guide points selected by the operator and forming an external surface based on the generated triangle.

이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.As described above, although preferred embodiments of the present invention have been disclosed in the specification and drawings, it is known in the technical field to which the present invention belongs that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein. It is self-evident to those with ordinary knowledge.

또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적해석에 의해 선정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.In addition, although specific terms are used in the specification and drawings, they are merely used in a general sense to easily explain the technical content of the present invention and aid understanding of the invention, and are not intended to limit the scope of the present invention. Accordingly, the above detailed description should not be construed as restrictive in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

100 : 학습 데이터 생성 장치 200 : 어노테이션 장치
300 : 학습 데이터 검증 장치 400 : 인공지능 학습 장치
205 : 통신부 210 : 입출력부
215 : 포인트 생성부 220 : 객체 특정부
225 : 저장부
100: Learning data generation device 200: Annotation device
300: Learning data verification device 400: Artificial intelligence learning device
205: communication unit 210: input/output unit
215: Point creation unit 220: Object specific unit
225: storage unit

Claims (10)

어노테이션 장치가, 라이다(lidar)로부터 수집된 3D 점군 데이터(3D point group)를 수신하는 단계;
상기 어노테이션 장치가, 상기 3D 점군 데이터를 적어도 하나의 뷰 포인트(view point)로 설정하고, 상기 설정된 적어도 하나의 뷰 포인트 각각에서 객체(object)를 특정하기 위한 복수 개의 가이드 포인트(guide point)들을 생성하는 단계; 및
상기 어노테이션 장치가, 상기 생성한 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행하는 단계; 를 포함하고,
상기 가이드 포인트들을 생성하는 단계는
상기 3D 점군 데이터에서 상기 객체를 횡단하는 평면인 적어도 하나의 포인트 보드(point board)를 생성하는 단계; 및
상기 적어도 하나의 포인트 보드 내에서 상기 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받는 단계;를 포함하며,
상기 포인트 보드는
상기 3D 점군 데이터에 사전 설정된 3D 직교좌표계(orthogonal coordinate)에서의 좌표 평면인 것을 특징으로 하고,
상기 포인트 보드를 생성하는 단계는
어노테이션을 수행하는 작업자의 제어에 따라 상기 객체의 특정 지점을 선택받으면, 상기 선택받은 지점을 원점으로 하는 상기 3D 직교좌표계를 생성하고, 상기 생성된 3D 직교좌표계에서의 각 좌표축 쌍을 기초로 생성된 좌표 평면을 포인트 보드로 생성하는 것을 특징으로 하며,
상기 포인트 보드를 생성하는 단계는
상기 적어도 하나의 포인트 보드를 생성하되, 각 포인트 보드와 평행하며 상기 객체를 횡단하는 일정 간격 이격된 복수 개의 추가 포인트 보드들을 생성하는 것을 특징으로 하는, 어노테이션 방법.
An annotation device receiving 3D point group data collected from lidar;
The annotation device sets the 3D point cloud data to at least one view point and generates a plurality of guide points for specifying an object at each of the set at least one view point. steps; and
performing, by the annotation device, an annotation to specify an object based on the plurality of guide points created; Including,
The step of creating the guide points is
generating at least one point board, which is a plane crossing the object, from the 3D point cloud data; and
A step of selecting a plurality of guide points for specifying the object within the at least one point board,
The point board is
Characterized in that it is a coordinate plane in a 3D orthogonal coordinate system preset in the 3D point cloud data,
The step of creating the point board is
When a specific point of the object is selected under the control of the operator performing annotation, the 3D Cartesian coordinate system is created with the selected point as the origin, and the 3D Cartesian coordinate system is generated based on each pair of coordinate axes in the created 3D Cartesian coordinate system. Characterized by creating a coordinate plane as a point board,
The step of creating the point board is
An annotation method, characterized in that generating the at least one point board and generating a plurality of additional point boards that are parallel to each point board and spaced at a predetermined interval across the object.
제1 항에 있어서, 상기 포인트 보드를 생성하는 단계는
상기 작업자의 제어에 따라 상기 적어도 하나의 포인트 보드를 평행 이동시켜 복수 개의 추가 포인트 보드들을 생성하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the step of creating the point board is
An annotation method, characterized in that a plurality of additional point boards are created by moving the at least one point board in parallel under the control of the operator.
제1 항에 있어서, 상기 가이드 포인트들을 선택받는 단계는
상기 적어도 하나의 포인트 보드들 각각에서의 상기 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받되, 상기 적어도 하나의 포인트 보드 각각에서의 상기 객체의 외곽선을 식별하고, 상기 식별된 외곽선으로부터 상기 복수 개의 가이드 포인트들을 사전 설정된 거리만큼 이격시키는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the step of selecting the guide points is
A plurality of guide points for specifying the object in each of the at least one point boards are selected, an outline of the object in each of the at least one point boards is identified, and the plurality of guide points are selected from the identified outline. An annotation method characterized by separating points by a preset distance.
제1 항에 있어서, 상기 가이드 포인트들을 선택받는 단계는
상기 포인트 보드를 생성하는 단계는
상기 생성된 적어도 하나의 포인트 보드 각각에서의 상기 객체의 외곽선을 식별하고, 상기 객체를 횡단하는 가상선을 생성하고, 상기 생성된 가상선 중 가장 큰 폭을 갖는 가상선을 기준으로 상기 생성된 적어도 하나의 포인트 보드 각각의 크기를 설정하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the step of selecting the guide points is
The step of creating the point board is
Identifying the outline of the object in each of the generated at least one point board, generating a virtual line crossing the object, and generating at least one virtual line based on the virtual line having the largest width among the generated virtual lines. An annotation method characterized by setting the size of each point board.
제1 항에 있어서, 상기 가이드 포인트들을 선택받는 단계는
상기 적어도 하나의 포인트 보드 각각에서의 상기 객체의 외곽선을 식별하고, 상기 식별된 객체의 외곽선을 따라 일정 간격 이격된 복수 개의 가이드 포인트들을 자동 생성하고, 상기 식별된 객체의 외곽선으로부터 상기 생성된 복수 개의 가이드 포인트들을 사전 설정된 거리만큼 이격시키는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the step of selecting the guide points is
Identifying the outline of the object in each of the at least one point board, automatically generating a plurality of guide points spaced at regular intervals along the outline of the identified object, and automatically generating a plurality of guide points created from the outline of the identified object. An annotation method characterized by spacing guide points by a preset distance.
제1 항에 있어서, 상기 어노테이션을 수행하는 단계는
상기 가이드 포인트들을 삼각형으로 연결하여 공간을 분할하되, 삼각형들의 내각의 최소값이 최대가 되도록 분할하여 생성된 삼각형을 기초로 3D 모델링을 수행하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein performing the annotation includes
An annotation method characterized in that the space is divided by connecting the guide points into triangles, and 3D modeling is performed based on the triangles created by dividing the triangles so that the minimum value of the interior angle is maximum.
제6 항에 있어서, 상기 어노테이션을 수행하는 단계는
상기 3D 점군 데이터 내의 점군의 밀도를 기초로 상기 객체에 해당하는 점군을 식별하고, 상기 식별된 점군 중 상기 3D 모델링 된 영역의 외곽에 위치하는 점을 추출하고, 상기 추출된 점을 기준으로 3D 모델링을 재수행하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 6, wherein the step of performing the annotation is
Identify a point cloud corresponding to the object based on the density of the point cloud in the 3D point cloud data, extract points located outside the 3D modeled area from among the identified point clouds, and perform 3D modeling based on the extracted points. An annotation method, characterized in that re-performing.
제7 항에 있어서, 상기 어노테이션을 수행하는 단계는
상기 3D 모델링 된 영역의 외곽에 위치하는 점에 가이드 포인트를 생성하고, 상기 생성된 가이드 포인트를 기초로 3D 모델링을 재수행하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 7, wherein the step of performing the annotation is
An annotation method characterized by creating a guide point at a point located outside the 3D modeled area and re-performing 3D modeling based on the created guide point.
메모리(memory);
송수신기(transceiver); 및
상기 메모리에 상주된 명령어를 처리하는 프로세서(processor)를 포함하여 구성된 컴퓨팅 장치와 결합되어,
상기 프로세서가, 라이다(lidar)로부터 수집된 3D 점군 데이터(3D point group)를 수신하는 단계;
상기 프로세서가, 상기 3D 점군 데이터를 적어도 하나의 뷰 포인트(view point)로 설정하고, 상기 적어도 하나의 뷰 포인트 각각에서 객체(object)를 특정하기 위한 복수 개의 가이드 포인트(guide point)들을 생성하는 단계; 및
상기 프로세서가, 상기 생성한 복수 개의 가이드 포인트들을 기초로 객체(object)를 특정하기 위한 어노테이션(annotation)을 수행하는 단계;를 포함하여 실행시키되,
상기 가이드 포인트들을 생성하는 단계는
상기 3D 점군 데이터에서 상기 객체를 횡단하는 평면인 적어도 하나의 포인트 보드(point board)를 생성하는 단계; 및
상기 적어도 하나의 포인트 보드 내에서 상기 객체를 특정하기 위한 복수 개의 가이드 포인트들을 선택받는 단계;를 포함하며,
상기 포인트 보드는
상기 3D 점군 데이터에 사전 설정된 3D 직교좌표계(orthogonal coordinate)에서의 좌표 평면인 것을 특징으로 하고,
상기 포인트 보드를 생성하는 단계는
어노테이션을 수행하는 작업자의 제어에 따라 상기 객체의 특정 지점을 선택받으면, 상기 선택받은 지점을 원점으로 하는 상기 3D 직교좌표계를 생성하고, 상기 생성된 3D 직교좌표계에서의 각 좌표축 쌍을 기초로 생성된 좌표 평면을 포인트 보드로 생성하는 것을 특징으로 하며,
상기 포인트 보드를 생성하는 단계는
상기 적어도 하나의 포인트 보드를 생성하되, 각 포인트 보드와 평행하며 상기 객체를 횡단하는 일정 간격 이격된 복수 개의 추가 포인트 보드들을 생성하는 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
memory;
transceiver; and
Combined with a computing device configured to include a processor that processes instructions resident in the memory,
Receiving, by the processor, 3D point group data collected from lidar;
The processor sets the 3D point cloud data to at least one view point and generates a plurality of guide points for specifying an object at each of the at least one view point. ; and
The processor performs an annotation to specify an object based on the generated plurality of guide points.
The step of creating the guide points is
generating at least one point board, which is a plane crossing the object, from the 3D point cloud data; and
A step of selecting a plurality of guide points for specifying the object within the at least one point board,
The point board is
Characterized in that it is a coordinate plane in a 3D orthogonal coordinate system preset in the 3D point cloud data,
The step of creating the point board is
When a specific point of the object is selected under the control of the operator performing the annotation, the 3D Cartesian coordinate system is created with the selected point as the origin, and the 3D Cartesian coordinate system is generated based on each pair of coordinate axes in the created 3D Cartesian coordinate system. Characterized by creating a coordinate plane as a point board,
The step of creating the point board is
A computer program recorded on a recording medium, characterized in that it generates the at least one point board and generates a plurality of additional point boards parallel to each point board and spaced at a predetermined interval across the object.
제9 항에 있어서, 상기 어노테이션을 수행하는 단계는
상기 가이드 포인트들을 삼각형으로 연결하여 공간을 분할하되, 삼각형들의 내각의 최소값이 최대가 되도록 분할하여 생성된 삼각형을 기초로 3D 모델링을 수행하는 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
The method of claim 9, wherein the step of performing the annotation is
A computer program recorded on a recording medium, characterized in that space is divided by connecting the guide points into triangles, and 3D modeling is performed based on the triangles created by dividing the triangles so that the minimum value of the interior angle is maximum.
KR1020230053734A 2023-04-25 2023-04-25 Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof KR102613162B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230053734A KR102613162B1 (en) 2023-04-25 2023-04-25 Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230053734A KR102613162B1 (en) 2023-04-25 2023-04-25 Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof

Publications (1)

Publication Number Publication Date
KR102613162B1 true KR102613162B1 (en) 2023-12-13

Family

ID=89157559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230053734A KR102613162B1 (en) 2023-04-25 2023-04-25 Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof

Country Status (1)

Country Link
KR (1) KR102613162B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102230144B1 (en) 2019-07-29 2021-03-22 군산대학교산학협력단 Artificial intelligence deep learning target detection and velocity potential field algorithm based obstacle avoidance and autonomous navigation technique
KR102305229B1 (en) * 2021-01-13 2021-09-27 셀렉트스타 주식회사 Method and device for producing feature map information for extracting boundary information from image
KR102317182B1 (en) * 2020-11-25 2021-10-27 주식회사 리얼이매진 Apparatus for generating composite image using 3d object and 2d background
KR102356910B1 (en) * 2021-08-05 2022-02-08 주식회사 인피닉 Method for preemptively detecting object, and computer program recorded on record-medium for executing method therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102230144B1 (en) 2019-07-29 2021-03-22 군산대학교산학협력단 Artificial intelligence deep learning target detection and velocity potential field algorithm based obstacle avoidance and autonomous navigation technique
KR102317182B1 (en) * 2020-11-25 2021-10-27 주식회사 리얼이매진 Apparatus for generating composite image using 3d object and 2d background
KR102305229B1 (en) * 2021-01-13 2021-09-27 셀렉트스타 주식회사 Method and device for producing feature map information for extracting boundary information from image
KR102356910B1 (en) * 2021-08-05 2022-02-08 주식회사 인피닉 Method for preemptively detecting object, and computer program recorded on record-medium for executing method therefor

Similar Documents

Publication Publication Date Title
US11507099B2 (en) Systems and methods for graph-based AI training
JP2018200685A (en) Forming of data set for fully supervised learning
CN108279670A (en) Method, equipment and computer-readable medium for adjusting point cloud data acquisition trajectories
KR102343056B1 (en) A method of reducing data load of images for annotation, and computer program recorded on record-medium for executing method thereof
KR102305230B1 (en) Method and device for improving accuracy of boundary information from image
KR102310594B1 (en) Method for predicting cost of works, and computer program recorded on record-medium for executing method therefor
KR102356910B1 (en) Method for preemptively detecting object, and computer program recorded on record-medium for executing method therefor
KR102343059B1 (en) Data collecting system for artificial intelligence machine learning, and device therefor
KR102171269B1 (en) Method, apparatus and computer program for coloring of image, Method, apparatus and computer program for learning of artificial neural network
KR102401113B1 (en) Artificial neural network Automatic design generation apparatus and method using compensation possibility and UX-bit
KR102343043B1 (en) Annotation method capable of change of working condition simultaneously, and computer program recorded on record-medium for executing method thereof
KR102310589B1 (en) Method for inspecting of annotation product using scripts, and computer program recorded on record-medium for executing method therefor
KR102310592B1 (en) Annotation method capable of guiding change of working regulation, and computer program recorded on record-medium for executing method thereof
US11703350B2 (en) System and method for automatically annotating a map
KR102310599B1 (en) Method of generating skeleton data of 3D modeling for artificial intelligence learning, and computer program recorded on record-medium for executing method thereof
KR102613162B1 (en) Method for annotation for 3D point cloud data, and computer program recorded on record-medium for executing method thereof
CN111645687A (en) Lane changing strategy determining method, device and storage medium
KR102313922B1 (en) A method of increasing quality for data of connected 3D points group, and computer program recorded on record-medium for executing method thereof
US20220375205A1 (en) Aggregating Nested Vision Transformers
KR102343061B1 (en) Method for de-identifying personal information, and computer program recorded on record-medium for executing method therefor
US11941327B2 (en) Customizable reinforcement learning of column placement in structural design
KR102599192B1 (en) Method for object detection, and computer program recorded on record-medium for executing method thereof
CN113627646A (en) Path planning method, device, equipment and medium based on neural network
KR102343055B1 (en) Load balancing method for annotation using local device, and computer program recorded on record-medium for executing method therefor
KR102378892B1 (en) Batch processing method of 3D points group, and computer program recorded on record-medium for executing method thereof

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant