KR102325367B1 - Method, apparatus and computer program for conducting automatic driving data labeling - Google Patents
Method, apparatus and computer program for conducting automatic driving data labeling Download PDFInfo
- Publication number
- KR102325367B1 KR102325367B1 KR1020190144770A KR20190144770A KR102325367B1 KR 102325367 B1 KR102325367 B1 KR 102325367B1 KR 1020190144770 A KR1020190144770 A KR 1020190144770A KR 20190144770 A KR20190144770 A KR 20190144770A KR 102325367 B1 KR102325367 B1 KR 102325367B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- labeling
- sensor data
- bounding box
- computing device
- Prior art date
Links
- 238000002372 labelling Methods 0.000 title claims abstract description 189
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004590 computer program Methods 0.000 title claims abstract description 6
- 238000012937 correction Methods 0.000 claims description 29
- 238000012986 modification Methods 0.000 description 15
- 230000004048 modification Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000012508 change request Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 101100533310 Mus musculus Set gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G06K9/00624—
-
- G06T3/0031—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
자율 주행 데이터의 데이터 레이블링 방법, 장치 및 컴퓨터프로그램이 제공된다. 본 발명의 다양한 실시예에 따른 자율 주행 데이터의 데이터 레이블링 방법은, 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 3D 포인트 클라우드 데이터(Point Cloud Data)를 변환하여 생성된 2D 형태의 데이터 상에서 레이블링(Labeling) 대상을 가리키는 사용자 입력을 얻는 단계, 상기 2D 형태의 데이터와 기 매칭된 센서 데이터에서 상기 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표 값을 선택하는 단계 및 상기 센서 데이터 좌표 값을 이용하여 상기 센서 데이터 상에 레이블링을 수행하는 단계를 포함한다.A method, apparatus and computer program for data labeling of autonomous driving data are provided. The data labeling method of autonomous driving data according to various embodiments of the present invention, in a method performed by a computing device, is labeled on 2D data generated by converting 3D point cloud data (Labeling) Obtaining a user input pointing to a target, selecting a sensor data coordinate value corresponding to a 3D point cloud data coordinate value of the labeling target from sensor data previously matched with the 2D form data, and using the sensor data coordinate value and performing labeling on the sensor data.
Description
본 발명의 다양한 실시예는 지도 학습(Supervised Learning)을 위하여 자율 주행 데이터를 레이블링 하기위한, 자율 주행 데이터의 데이터 레이블링 방법, 장치 및 컴퓨터프로그램에 관한 것이다.Various embodiments of the present invention relate to a data labeling method, apparatus, and computer program of autonomous driving data for labeling autonomous driving data for supervised learning.
차량을 운전하는 사용자들의 편의를 위하여, 각종 센서와 전자 장치 등(예: 차량 운전자 보조 시스템(ADAS: Advanced Driver Assistance System)이 구비되고 있는 추세이며, 특히, 차량의 자율 주행 시스템(Autonomous driving System)에 대한 기술 개발이 활발하게 이루어지고 있다.For the convenience of users driving a vehicle, various sensors and electronic devices (eg, an advanced driver assistance system (ADAS)) are being provided, and in particular, an autonomous driving system of the vehicle. Technological development is being actively carried out.
여기서, 자율 주행 시스템이란 운전자의 개입 없이 주변 환경을 인식하고, 인식된 주변 환경에 따라 스스로 주어진 목적지까지 자동으로 주행하는 차량을 말한다.Here, the autonomous driving system refers to a vehicle that recognizes the surrounding environment without driver intervention and automatically drives to a given destination by itself according to the recognized surrounding environment.
일반적으로 자율 주행 시스템의 경우, 자율 주행 데이터(예: 도로의 상황이나 주행 경로 등에 대한 데이터)를 학습 데이터로 이용하여 모델을 학습시키고, 학습된 모델을 이용하여 차량이 목적지까지 주행할 수 있는 주행 경로를 제공한다.In general, in the case of an autonomous driving system, a model is trained by using autonomous driving data (eg, data on road conditions or driving routes) as learning data, and the vehicle can drive to a destination using the learned model. provide a path
자율 주행 데이터를 학습 데이터로써 이용하여 모델을 지도 학습시키기 위해서는 수많은 센서 데이터(예: 레이저 스캔 센서로부터 획득되는 레이저 스캔 데이터 및 카메라 센서를 통해 감지되는 영상(동영상 또는 이미지) 데이터)와 센서 데이터 상에서 차량의 위치를 가리키는 정답(ground truth)이 필요하다. 따라서, 각각의 센서 데이터 상에 정답을 제공하기 위해 자율 주행 데이터에 대한 레이블링(Labeling)이 필수적이다.In order to supervise a model using autonomous driving data as training data, a large number of sensor data (e.g., laser scan data obtained from a laser scan sensor and image (video or image) data detected through a camera sensor) and a vehicle based on sensor data We need a ground truth that points to the location of . Therefore, in order to provide a correct answer on each sensor data, labeling of autonomous driving data is essential.
한편, 종래에는 자율 주행 데이터에 대한 레이블링을 하기 위하여, 사람이 각각의 센서 데이터마다 직접 레이블링을 해주어야 하기 때문에, 레이블링 작업을 하는데 있어서 많은 시간이 소요된다는 문제가 있다. 또한, 시간을 단축시키기 위해서는 더 많은 인력이 투입해야 하기 때문에, 인건비와 같은 비용이 많이 필요하다는 문제가 있다.On the other hand, in the related art, in order to label autonomous driving data, since a person has to directly label each sensor data, there is a problem that it takes a lot of time for the labeling operation. In addition, since more manpower needs to be input to shorten the time, there is a problem that costs such as labor cost are required.
본 발명이 해결하고자 하는 과제는 레이블링 작업을 수행할 수 있는 사용자 인터페이스(User interface, UI)를 제공하고, UI를 통해 출력된 2D 형태의 데이터 상에 간단한 입력(예: 레이블링 대상 선택)을 입력함으로써 복수의 센서 데이터에 대한 레이블링을 수행할 수 있는 자율 주행 데이터의 데이터 레이블링 방법, 장치 및 컴퓨터프로그램을 제공하는 것이다.The problem to be solved by the present invention is to provide a user interface (UI) capable of performing a labeling operation, and by inputting a simple input (eg, selecting a labeling target) on 2D data output through the UI. An object of the present invention is to provide a data labeling method, apparatus, and computer program for autonomous driving data capable of performing labeling on a plurality of sensor data.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.
상술한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 데이터 레이블링 방법은, 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 3D 포인트 클라우드 데이터(Point Cloud Data)를 X-Y 평면상에 변환하여 생성된 2D 형태의 데이터 상에서 레이블링(Labeling) 대상을 가리키는 사용자 입력을 얻는 단계, 상기 2D 형태의 데이터와 기 매칭된 센서 데이터에서 상기 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표 값을 선택하는 단계 및 상기 센서 데이터 좌표 값을 이용하여 상기 센서 데이터 상에 레이블링을 수행하는 단계를 포함할 수 있다.Data labeling method according to an embodiment of the present invention for solving the above problems, in a method performed by a computing device, a 2D form generated by converting 3D point cloud data (Point Cloud Data) on an XY plane obtaining a user input pointing to a labeling target on the data of , selecting a sensor data coordinate value corresponding to a 3D point cloud data coordinate value of the labeling target from sensor data previously matched with the 2D form data; And The method may include performing labeling on the sensor data by using the coordinate values of the sensor data.
상술한 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 데이터 레이블링 장치는, 하나 이상의 인스트럭션(instruction)을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함할 수 있고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 3D 포인트 클라우드 데이터(Point Cloud Data)를 변환하여 생성된 2D 형태의 데이터 상에서 레이블링(Labeling) 대상을 가리키는 사용자 입력을 얻는 단계, 상기 2D 형태의 데이터와 기 매칭된 센서 데이터에서 상기 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표 값을 선택하는 단계 및 상기 센서 데이터 좌표 값을 이용하여 상기 센서 데이터 상에 레이블링을 수행하는 단계를 포함하는 데이터 레이블링 방법을 수행할 수 있다.A data labeling apparatus according to another embodiment of the present invention for solving the above problems may include a memory for storing one or more instructions and a processor for executing the one or more instructions stored in the memory, The processor executes the one or more instructions, thereby converting 3D point cloud data to obtain a user input pointing to a labeling target on the 2D form data generated by converting 3D point cloud data, and matching with the 2D form data A data labeling method comprising: selecting a sensor data coordinate value corresponding to a coordinate value of the 3D point cloud data of the labeling target from the sensor data; and performing labeling on the sensor data using the sensor data coordinate value can be performed.
상술한 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 데이터 레이블링 컴퓨터프로그램은, 하드웨어인 컴퓨터(또는 컴퓨팅 장치)와 결합되어, 3D 포인트 클라우드 데이터(Point Cloud Data)를 변환하여 생성된 2D 형태의 데이터 상에서 레이블링(Labeling) 대상을 가리키는 사용자 입력을 얻는 단계, 상기 2D 형태의 데이터와 기 매칭된 센서 데이터에서 상기 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표 값을 선택하는 단계 및 상기 센서 데이터 좌표 값을 이용하여 상기 센서 데이터 상에 레이블링을 수행하는 단계를 포함하는 데이터 레이블링 방법을 수행할 수 있도록 컴퓨터(또는 컴퓨팅 장치)에서 판독가능한 기록매체에 저장될 수 있다.A data labeling computer program according to another embodiment of the present invention for solving the above-described problems is combined with a computer (or computing device) that is hardware, and a 2D form generated by converting 3D point cloud data obtaining a user input pointing to a labeling target on the data of , selecting a sensor data coordinate value corresponding to a 3D point cloud data coordinate value of the labeling target from sensor data previously matched with the 2D form data; And It may be stored in a computer (or computing device) readable recording medium to perform a data labeling method including performing labeling on the sensor data using the sensor data coordinate values.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
본 발명의 다양한 실시예에 따르면, 레이블링 작업을 수행할 수 있는 UI를 제공하고, UI를 통해 출력된 2D 형태의 데이터 상에 간단한 동작(예: 터치, 클릭 및 드래그 입력으로 레이블링 대상을 선택하는 동작)을 입력하여 복수의 센서 데이터에 대한 레이블링을 수행함으로써, 복수의 센서 데이터를 개별적으로 레이블링을 수행하는데 소요되는 시간과 비용을 줄일 수 있다는 이점이 있다.According to various embodiments of the present disclosure, a UI capable of performing a labeling operation is provided, and a simple operation (eg, an operation of selecting a labeling target by touch, click, and drag input) is provided on 2D data output through the UI. ) to perform labeling on a plurality of sensor data, there is an advantage in that the time and cost required for individually labeling the plurality of sensor data can be reduced.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.
도 1은 본 발명의 일 실시예에 따른 데이터 레이블링 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 다양한 실시예에 따른 데이터 레이블링 장치의 하드웨어 구성도이다.
도 3은 본 발명의 다양한 실시예에 따른 데이터 레이블링 방법을 설명하기 위한 순서도이다.
도 4는 다양한 실시예에서, 데이터 레이블링 장치가 사용자 단말로 제공하는 UI를 예시적으로 도시한 도면이다.
도 5는 다양한 실시예에서, 데이터 레이블링 장치가 제공하는 UI를 통해 출력되는 2D 형태의 데이터를 도시한 도면이다.
도 6은 다양한 실시예에서, 데이터 레이블링 장치가 제공하는 UI를 통해 출력된 2D 형태의 데이터 상에 레이블링 대상을 가리키는 사용자 입력이 입력된 형태를 도시한 도면이다.
도 7은 다양한 실시예에서, 센서 데이터가 3D 데이터인 경우에 사용자 입력에 따라 UI 상에 출력되는 3D 도형 형태의 경계 박스를 도시한 도면이다.
도 8은 다양한 실시예에서, 센서 데이터가 2D 데이터인 경우에 사용자 입력에 따라 UI 상에 출력되는 2D 도형 형태의 경계 박스를 도시한 도면이다.1 is a diagram showing the configuration of a data labeling system according to an embodiment of the present invention.
2 is a hardware configuration diagram of a data labeling apparatus according to various embodiments of the present invention.
3 is a flowchart illustrating a data labeling method according to various embodiments of the present invention.
4 is a diagram exemplarily illustrating a UI provided by a data labeling apparatus to a user terminal according to various embodiments.
5 is a diagram illustrating data in a 2D form output through a UI provided by a data labeling apparatus according to various embodiments of the present disclosure;
6 is a diagram illustrating a form in which a user input indicating a labeling target is input on 2D data output through a UI provided by a data labeling apparatus according to various embodiments of the present disclosure;
7 is a diagram illustrating a bounding box in the form of a 3D figure output on a UI according to a user input when sensor data is 3D data, according to various embodiments.
8 is a diagram illustrating a bounding box in the form of a 2D figure output on a UI according to a user input when sensor data is 2D data, according to various embodiments.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.As used herein, the term “unit” or “module” refers to a hardware component such as software, FPGA, or ASIC, and “unit” or “module” performs certain roles. However, “part” or “module” is not meant to be limited to software or hardware. A “unit” or “module” may be configured to reside on an addressable storage medium or may be configured to reproduce one or more processors. Thus, by way of example, “part” or “module” refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, Includes procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Components and functionality provided within “parts” or “modules” may be combined into a smaller number of components and “parts” or “modules” or as additional components and “parts” or “modules”. can be further separated.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.Spatially relative terms "below", "beneath", "lower", "above", "upper", etc. It can be used to easily describe the correlation between a component and other components. A spatially relative term should be understood as a term that includes different directions of components during use or operation in addition to the directions shown in the drawings. For example, when a component shown in the drawing is turned over, a component described as “beneath” or “beneath” of another component may be placed “above” of the other component. can Accordingly, the exemplary term “below” may include both directions below and above. Components may also be oriented in other orientations, and thus spatially relative terms may be interpreted according to orientation.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.In this specification, a computer means all types of hardware devices including at least one processor, and may be understood as encompassing software configurations operating in the corresponding hardware device according to embodiments. For example, a computer may be understood to include, but is not limited to, smart phones, tablet PCs, desktops, notebooks, and user clients and applications running on each device.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.Each step described in this specification is described as being performed by a computer, but the subject of each step is not limited thereto, and at least a portion of each step may be performed in different devices according to embodiments.
도 1은 본 발명의 일 실시예에 따른 데이터 레이블링 시스템의 구성을 도시한 도면이다.1 is a diagram showing the configuration of a data labeling system according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터 레이블링 시스템은 데이터 레이블링 장치(100), 사용자 단말(200) 및 외부 서버(300)를 포함할 수 있다.Referring to FIG. 1 , a data labeling system according to an embodiment of the present invention may include a
여기서, 도 1에 도시된 데이터 레이블링 시스템은 일 실시예에 따른 것이고, 그 구성요소가 도 1에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있다.Here, the data labeling system shown in FIG. 1 is according to an embodiment, and its components are not limited to the embodiment shown in FIG. 1 , and may be added, changed, or deleted as necessary.
일 실시예에서, 데이터 레이블링 장치(100)는 외부 서버(300)로부터 3D 포인트 클라우드 데이터 및 센서 데이터(예: 카메라로부터 촬영된 영상 데이터)를 얻을 수 있고, 3D 포인트 클라우드 데이터의 좌표 값과 센서 데이터의 좌표 값을 매칭하여 3D 포인트 클라우드 데이터와 센서 데이터를 캘리브레이션(calibration)할 수 있다.In an embodiment, the
일 실시예에서, 데이터 레이블링 장치(100)는 센서 데이터(예: 카메라로부터 촬영된 영상 데이터)와 매칭된 3D 포인트 클라우드 데이터를 2D로 변환하여 2D 형태의 데이터를 생성할 수 있다. 예를 들어, 데이터 레이블링 장치(100)는 X축 및 Y축을 기준으로 센서 데이터와 매칭된 3D 포인트 클라우드 데이터를 2D로 변환하여 2D 형태의 데이터를 생성(3D 포인트 클라우드 데이터를 조감도(Brid-eye-view, BEV) 형태로 X-Y평면상에 출력되도록 변환하여 2D 형태의 데이터를 생성)할 수 있다. In an embodiment, the
일 실시예에서, 데이터 레이블링 장치(100)는 2D 형태의 데이터 및 센서 데이터(예: 카메라로부터 촬영된 영상 데이터)를 포함하는 UI를 사용자 단말(200)로 제공함으로써, 사용자 단말(200)로부터 레이블링 대상을 가리키는 사용자 입력을 얻을 수 있다.In one embodiment, the
다양한 실시예에서, 데이터 레이블링 장치(100)는 별도의 통신 모듈(미도시)를 포함할 수 있으며, 통신 모듈이 네트워크(400)를 통해 사용자 단말(200)과 연결되어 사용자 단말(200)로 UI(예: 도 4)를 제공하거나, 제공된 UI를 통해 입력된 사용자 입력을 얻을 수 있다. 또한, 통신 모듈이 네트워크(400)를 통해 외부 서버(300)와 연결되어 외부 서버(300)로부터 포인트 클라우드 데이터 및 센서 데이터(예: 카메라로부터 촬영된 영상 데이터)를 수신할 수 있다.In various embodiments, the
일 실시예에서, 데이터 레이블링 장치(100)는 사용자 단말(200)로부터 얻은 레이블링 대상을 가리키는 사용자 입력을 이용하여 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값을 추출할 수 있고, 추출된 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표 값(예: 카메라로부터 촬영된 영상 데이터 상의 좌표 값)을 선택할 수 있으며, 선택한 센서 데이터 좌표 값을 이용하여 센서 데이터 상에 레이블링을 수행할 수 있다.In an embodiment, the
일 실시예에서, 사용자 단말(200)은 사용자 단말(200)의 적어도 일부분에 디스플레이를 포함할 수 있으며, 디스플레이를 통해 데이터 레이블링 장치(100)로부터 제공되는 UI를 출력할 수 있다. 예를 들어, 사용자 단말(200)는 스마트폰, 태블릿 PC, 노트북 및 데스크탑 중 적어도 하나를 포함할 수 있으나, 이에 한정되지 않는다.In an embodiment, the
다양한 실시예에서, 사용자 단말(200)은 데이터 레이블링 장치(100)와 유무선으로 연결되어, 데이터 레이블링 장치(100)로부터 UI를 제공받을 수 있고, UI를 통해 입력한 레이블링 대상을 가리키는 사용자 입력을 데이터 레이블링 장치(100)로 제공할 수 있다. 예를 들어, 사용자는 자신의 스마트폰에 포함된 통신 모듈을 이용하여 데이터 레이블링 장치(100)와 무선 연결될 수 있고, 데이터 레이블링 장치(100)로부터 제공된 UI를 스마트폰 화면에 출력할 수 있으며, 스마트폰에 출력된 UI를 통해 제공되는 2D 형태의 데이터 상에서 레이블링 대상을 터치 입력함으로써, 레이블링 대상을 선택할 수 있다. 이후, 스마트폰에 포함된 통신 모듈을 이용하여 레이블링 대상에 대한 정보(예: 레이블링 대상의 라벨 이름, 좌표 값 등)를 데이터 레이블링 장치(100)로 제공할 수 있다. 그러나, 이에 한정되지 않는다.In various embodiments, the
일 실시예에서, 외부 서버(300)는 복수의 센서로부터 감지된 센서 데이터(예: 레이저 스캔 센서로부터 획득되는 레이저 스캔 데이터 및 카메라 센서를 통해 감지되는 영상(동영상 또는 이미지) 데이터) 및 3D 포인트 클라우드 데이터를 저장할 수 있다. 예를 들어, 외부 서버(300)는 복수의 센서를 구비한 정보 제공 차량이 소정의 지역을 이동하면서 감지한 센서 데이터(예: 카메라의 영상(동영상 및 이미지) 데이터 및 레이저 스캔 데이터)를 수신하여 저장할 수 있다. 그러나, 이에 한정되지 않는다.In an embodiment, the
다양한 실시예에서, 외부 서버(300)는 네트워크(400)를 통해 데이터 레이블링 장치(100)로부터 소정의 지역에 대한 센서 데이터의 송신 요청을 수신할 수 있으며, 복수의 센서 데이터 중 소정의 지역에 대한 센서 데이터만을 추출하여 데이터 레이블링 장치(100)로 제공할 수 있다.In various embodiments, the
다양한 실시예에서, 외부 서버(300)는 센서 데이터가 감지된 시점에 따라 동일한 시점에 감지된 센서 데이터들을 그룹화하고, 그룹화된 센서 데이터를 데이터 레이블링 장치(100)로 제공할 수 있다. 예를 들어, 복수의 센서 데이터를 제1 시점에서의 센서 데이터, 제2 시점에서의 센서 데이터 및 제3 시점에서의 센서 데이터로 그룹화하고, 그룹화한 센서 데이터를 데이터 레이블링 장치(100)로 제공할 수 있다. In various embodiments, the
여기서, 데이터 레이블링 장치(100)는 외부 서버(300)로부터 각종 데이터를 제공받고, 제공된 데이터를 가공, 분석하여 센서 데이터에 대한 레이블링을 수행하는 것으로 설명하고 있으나, 이에 한정되지 않고, 데이터 레이블링 장치(100)는 외부 서버(300)로 센서 데이터의 레이블링 작업을 수행하기 위한 제어 신호(예: 소정의 지역에 대한 동시점의 센서 데이터 추출 신호, 3D 포인트 클라우드 데이터와 센서 데이터를 매칭하는 것을 지시하는 제어 신호 및 2D 형태의 데이터 생성 신호 등)를 송신하는 기능만을 수행할 수 있고, 외부 서버(300)가 데이터 레이블링 장치(100)로부터 수신한 제어 신호를 이용하여 제어 신호에 따른 레이블링 작업 동작을 수행할 수 있다.Here, the
도 2는 본 발명의 다양한 실시예에 따른 데이터 레이블링 장치의 하드웨어 구성도이다.2 is a hardware configuration diagram of a data labeling apparatus according to various embodiments of the present invention.
도 2를 참조하면, 본 발명의 다른 실시예에 따른 데이터 레이블링 장치(100)(이하, "컴퓨팅 장치(100)")는 프로세서(110) 및 메모리(120)를 포함할 수 있다. 다양한 실시예에서, 컴퓨팅 장치(100)는 네트워크 인터페이스(또는 통신 인터페이스)(미도시), 스토리지(미도시), 버스(bus)(미도시)를 더 포함할 수 있다.Referring to FIG. 2 , a data labeling apparatus 100 (hereinafter, "
일 실시예에서, 프로세서(110)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다.In an embodiment, the
다양한 실시예에서, 프로세서(110)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 다양한 실시예에서, 프로세서(110)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예: 버스(bus) 등)를 포함할 수 있다.In various embodiments, the
다양한 실시예에서, 프로세서(110)는 프로세서(110) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(110)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.In various embodiments, the
일 실시예에서, 프로세서(110)는 메모리(120)에 저장된 하나 이상의 인스트럭션(instruction)을 실행함으로써, 도 3 내지 8과 관련하여 설명될 방법(예: 데이터 레이블링 방법)을 수행할 수 있다. 예를 들어, 프로세서(110)는 메모리(120)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 3D 포인트 클라우드 데이터를 변환하여 생성된 2D 형태의 데이터 상에서 레이블링 대상을 가리키는 사용자 입력을 얻는 동작, 2D 형태의 데이터와 기 매칭된 센서 데이터(예: 카메라로부터 촬영된 영상 데이터)에서 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표 값을 선택하는 동작 및 센서 데이터 좌표 값을 이용하여 센서 데이터 상에 레이블링을 수행하는 동작을 포함하는 데이터 레이블링 방법을 수행할 수 있다.In an embodiment, the
일 실시예에서, 메모리(120)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(120)에는 프로세서(110)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(120)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.In one embodiment,
다양한 실시예에서, 본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수 있다. 이하, 도 3 내지 8을 참조하여, 컴퓨팅 장치(100)가 수행하는 데이터 레이블링 방법에 대하여 설명하도록 한다.In various embodiments, steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by a combination thereof. A software module may contain random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains. Hereinafter, a data labeling method performed by the
도 3은 본 발명의 다양한 실시예에 따른 데이터 레이블링 방법을 설명하기 위한 순서도이다.3 is a flowchart illustrating a data labeling method according to various embodiments of the present invention.
일 실시예에서, 컴퓨팅 장치(100)는 본 발명의 다양한 실시예에 따른 데이터 레이블링 방법은 2D 형태의 데이터 상에서 레이블링 대상을 가리키는 사용자 입력을 얻고, 2D 형태의 데이터와 기 매칭된 센서 데이터(예: 카메라로부터 촬영된 영상 데이터)에서 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표 값을 선택하며, 선택한 센서 데이터 좌표 값을 이용하여 센서 데이터 상에 레이블링을 수행할 수 있다. 이를 위해, 컴퓨팅 장치(100)는 본 발명의 또 다른 실시예에 따른 데이터 레이블링 방법을 수행하기에 앞서, 센서 데이터와 매칭된 2D 형태의 데이터를 생성할 수 있다.In one embodiment, the
여기서, 2D 형태의 데이터는 도 5에 도시된 바와 같이 3D 포인트 클라우드 데이터를 2D 화면(예: 사용자 단말(200)의 디스플레이)에 출력될 수 있는 형태로 변환된 데이터를 의미할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 외부 서버(300)로부터 얻은 복수의 센서 데이터 중 동일한 시점에서의 센서 데이터만을 선택하고, 선택한 센서 데이터의 좌표 값과 3D 포인트 클라우드 데이터의 좌표 값을 매칭할 수 있다. 이후, 컴퓨팅 장치(100)는 3D 포인트 클라우드 데이터를 조감도(Bird-eye-view, BEV) 형태로 X-Y평면상에 투사(projection)함으로써, UI를 통해 출력될 때 2D 형태로 출력될 수 있는 2D 형태의 데이터를 생성할 수 있다. Here, the data in the 2D form may refer to data converted into a form that can output 3D point cloud data to a 2D screen (eg, the display of the user terminal 200 ) as shown in FIG. 5 . For example, the
다양한 실시예에서, 컴퓨팅 장치(100)는 3D 포인트 클라우드 데이터를 2D 격자 지도(Grid map) 상에 양자화하여 2D 형태의 데이터를 생성할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 3D 포인트 클라우드 데이터를 조감도 형태로 2D 격자 지도(Grid map)상에 양자화(quantization)하고, 평균 값, 최대 값 및 밀도 값 중 적어도 하나의 값을 대표 값으로 표현함으로써, 2D 형태의 데이터를 생성할 수 있다. 그러나, 이에 한정되지 않는다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 센서 데이터(예: 카메라로부터 촬영된 영상 데이터)의 시점별로 2D 형태의 데이터를 생성할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제1 시점의 센서 데이터에 대한 2D 형태의 데이터와 제1 시점과 다른 제2 시점에 대한 2D 형태의 데이터를 생성할 수 있다. 그러나, 이에 한정되지 않는다.In various embodiments, the
도 3을 참조하면, S110 단계에서, 컴퓨팅 장치(100)는 사용자 단말(200)로 2D 형태의 데이터 및 센서 데이터(예: 카메라로부터 촬영된 영상 데이터)를 출력하고, 2D 형태의 데이터 상에서 레이블링 대상을 가리키는 사용자 입력을 얻으며, 사용자 입력에 대응하는 제1 경계 박스 및 제2 경계 박스를 출력하는 UI를 제공할 수 있다. 이하, 도 4를 참조하여, 컴퓨팅 장치(100)에서 제공하는 UI에 대하여 설명하도록 한다.Referring to FIG. 3 , in step S110 , the
도 4는 다양한 실시예에서, 데이터 레이블링 장치가 사용자 단말로 제공하는 UI를 예시적으로 도시한 도면이다.4 is a diagram exemplarily illustrating a UI provided by a data labeling apparatus to a user terminal according to various embodiments.
도 4를 참조하면, 다양한 실시예에서, UI(40)는 제1 UI(41), 제2 UI(42) 및 제3 UI(43)를 포함하 수 있다. Referring to FIG. 4 , in various embodiments, the
일 실시예에서, 컴퓨팅 장치(100)는 제1 UI(41)를 통해 2D 형태의 데이터(10)를 출력할 수 있고, 사용자로부터 레이블링 대상을 가리키는 사용자 입력을 얻을 수 있다. 이후, 사용자 입력을 분석하여, 레이블링 대상의 종류(또는 라벨 네임) 및 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 같은 레이블링 대상에 대한 정보를 얻을 수 있다. In an embodiment, the
다양한 실시예에서, 컴퓨팅 장치(100)는 제1 UI(41)를 통해 2D 형태의 데이터(10)를 확대 또는 축소하는 기능을 제공할 수 있다. 다양한 실시예에서, 컴퓨팅 장치(100)는 제1 UI(41)를 통해 소정의 지역에 대한 2D 형태의 데이터(10)를 하나의 화면에 출력할 수 있다.In various embodiments, the
일 실시예에서, 컴퓨팅 장치(100)는 제2 UI(42)를 통해 센서 데이터(20) (예: 복수의 카메라로부터 촬영된 복수의 영상 데이터)를 출력할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제1 UI(41)를 통해 출력되는 2D 형태의 데이터와 기 매칭된 센서 데이터(20)를 제2 UI(42)에 출력할 수 있다.In an embodiment, the
다양한 실시예에서, 컴퓨팅 장치(100)는 제1 UI(41) 및 제3 UI(43)만을 출력 UI(40)를 제공할 수 있고, 제1 UI(41)를 통해 레이블링 대상을 가리키는 사용자 입력을 얻는 경우, 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표를 가지는 센서 데이터(20)(예: 영상 데이터)를 출력하는 제2 UI(42)를 팝업(Pop-up) 창형태로 출력할 수 있다.In various embodiments, the
일 실시예에서, 컴퓨팅 장치(100)는 제3 UI(43)를 통해 제1 UI(41) 및 제2 UI(42)를 조작하기 위한 다양한 툴(tool)을 출력할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제3 UI(43)를 통해, 레이블링 대상에 따른 경계 박스(예: 도 6의 11, 12)의 크기, 형태를 선택하는 툴, 기 생성된 경계 박스의 속성을 변경하는 툴 및 제1 UI(41), 제2 UI(42) 및 제3 UI(43)의 설정을 변경하는 툴을 제공할 수 있다. 그러나, 이에 한정되지 않고, 컴퓨팅 장치(100)는 제1 UI(41) 및 제2 UI(42)만을 출력하는 UI(40)를 제공하고, 기 설정된 조건이 만족하는 경우에 한하여 제3 UI(43)를 출력할 수 있다(예: 사용자가 UI(40) 상에서 특정 위치에 대한 터치 입력을 하는 경우, 제3 UI(43)를 출력).In an embodiment, the
다시 도 3을 참조하면, S120 단계에서, 컴퓨팅 장치(100)는 S110 단계에서 사용자 단말(200)로 제공한 UI를 통해 레이블링 대상을 가리키는 사용자 입력을 수신할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 UI에 출력되는 2D 형태의 데이터 상에서 레이블링 대상을 터치 입력함으로써 생성되는 사용자 입력 또는 마우스를 이용하여 마우스 포인터로 레이블링 대상을 클릭 입력함으로써 생성되는 사용자 입력을 수신할 수 있다.Referring back to FIG. 3 , in step S120 , the
다양한 실시예에서, 컴퓨팅 장치(100)는 레이블링 대상의 종류 및 크기에 기초하여 레이블링 대상에 대한 2D 도형 형태의 제1 경계 박스를 생성하고, 생성된 제1 경계 박스를 UI 상에서 사용자 입력이 입력된 위치(예: 2D 형태의 데이터 상에서 사용자 입력이 입력된 위치)에 출력할 수 있다. 이하, 도 6을 참조하여 설명하도록 한다.In various embodiments, the
도 6은 다양한 실시예에서, 데이터 레이블링 장치가 제공하는 UI를 통해 출력된 2D 형태의 데이터 상에 레이블링 대상을 가리키는 사용자 입력이 입력된 형태를 도시한 도면이다.6 is a diagram illustrating a form in which a user input indicating a labeling target is input on 2D data output through a UI provided by a data labeling apparatus according to various embodiments of the present disclosure;
도 6을 참조하면, 일 실시예에서, 사용자가 레이블링을 수행하고자 하는 레이블링 대상의 종류가 자동차인 경우, 컴퓨팅 장치(100)는 자동차의 크기에 기초하여 직사각형 형태의 제1 경계 박스(11, 12)를 생성할 수 있다. 컴퓨팅 장치(100)는 2D 형태의 데이터 상에서 사용자 입력(예: 마우스 포인터(13)를 통한 클릭 입력 및 키보드 입력)에 대응되는 위치에 직사각형 형태의 제1 경계 박스(11, 12)를 출력할 수 있다.Referring to FIG. 6 , in an embodiment, when the type of a labeling object on which the user wants to perform labeling is a car, the
다양한 실시예에서, 컴퓨팅 장치(100)는 사용자 입력(예: 키보드 입력 등)에 따라 UI를 통해 제1 경계 박스를 생성하는 경계 박스 추가 모드, 기 생성된 제1 경계 박스의 속성을 변경하는 경계 박스 수정 모드 및 특정 영역을 학습을 위한 데이터에서 제외하기 위한 ROU(Region of Uninterest) 모드 중 어느 하나의 모드를 제공할 수 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 레이블링 대상의 종류에 기초하여 사용자 입력에 따라 생성되는 제1 경계 박스(11, 12)의 크기 및 형태를 미리 설정할 수 있고, UI가 경계 박스 추가 모드인 경우, 2D 형태의 데이터 상에서 사용자 입력에 대응되는 위치에 미리 설정된 크기 및 형태의 제1 경계 박스(11, 12)를 출력할 수 있다. 예를 들어, 레이블링 대상의 종류가 자동차인 경우, 자동차의 크기 및 형태(예: 경차, 오토바이, 소형차, 중형차, 트럭 및 버스 등)의 크기 및 형태)에 따라 소정의 크기를 가지는 2D 도형 형태(예: 직사각형 형태)의 제1 경계 박스(11, 12)를 템플릿(template)을 미리 설정할 수 있다.In various embodiments, the
이후, 컴퓨팅 장치(100)는 UI를 통해 레이블링 대상의 위치 및 레이블링 대상의 종류에 대한 정보를 포함하는 사용자 입력을 얻는 경우, 사용자 입력에 대응되는 위치에 미리 설정된 직사각형 제1 경계 박스(11, 12)의 템플릿을 출력할 수 있다. 예를 들어, 사용자로부터 입력된 레이블 대상의 종류가 40인승 버스인 경우, 미리 생성된 제1 경계 박스(11, 12)의 템플릿 중 40인승 버스에 대응되는 크기 및 형태의 제1 경계 박스(11, 12)를 사용자 입력에 대응되는 레이블링 대상의 위치에 출력할 수 있다. 그러나, 이에 한정되지 않고, 컴퓨팅 장치(100)는 레이블링 대상의 종류가 사람, 공사 현장과 같은 고정된 장애물, 가드레일 및 표지판 등과 같은 경우에도 상기와 같은 방법을 적용하여 제1 경계 박스(11, 12)의 템플릿을 생성할 수 있고, 사용자 입력에 대응되는 레이블 대상의 종류에 따라 기 생성된 제1 경계 박스(11, 12)의 템플릿을 출력할 수 있다.Then, when the
다양한 실시예에서, 컴퓨팅 장치(100)는 UI가 경계 박스 추가 모드인 경우, 사용자 입력(경계 박스 추가를 가리키는 입력 및 레이블링 대상의 종류를 가리키는 입력)에 대응되는 제1 경계 박스(11, 12)의 템플릿을 선택할 수 있고, 선택한 제1 경계 박스(11, 12)의 템플릿과 동일한 형태로 마우스 포인터의 형태를 설정할 수 있다 (예: 직사각형 형태의 마우스 포인터). 컴퓨팅 장치(100)는 사용자의 마우스 움직임에 응답하여, 제1 경계 박스(11, 12)의 템플릿과 동일한 형태의 마우스 포인터를 화면상에서 이동시킬 수 있고, 2D 형태의 데이터 상의 사용자의 클릭 입력된 위치에 마우스 포인터와 동일한 형태의 제1 경계 박스(11, 12)를 추가할 수 있다.In various embodiments, when the UI is in the bounding box addition mode, the
다양한 실시예에서, 컴퓨팅 장치(100)는 제1 경계 박스(11, 12)의 생성을 가리키는 입력 외에 추가적인 사용자 입력(예: 키보드 입력)이 수신되는 경우, 추가적인 사용자 입력에 따라 제1 경계 박스(11, 12)의 템플릿과 동일한 형태를 가지는 마우스 포인터의 형태(예: 마우스 포인터의 길이, 너비 및 각도)를 변경할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 사용자로부터 소형차에 대한 제1 경계 박스 생성 요청을 수신하는 경우, 소형차에 대응되는 제1 경계 박스(11, 12)의 템플릿과 동일한 형태로 마우스 포인터를 설정할 수 있다. 이때, 컴퓨팅 장치(100)가 사용자로부터 레이블링 대상이 소형차에서 오토바이로 변경됨을 가리키는 제1 키보드 입력을 수신하는 경우, 소형차에 대응되는 제1 경계 박스(11, 12)의 템플릿과 동일한 형태로 설정된 마우스 포인터의 길이, 너비 및 각도를 변경하여 오토바이에 대응되는 제1 경계 박스(11, 12)의 템플릿과 동일한 형태로 마우스 포인터를 변경할 수 있다.다양한 실시예에서, 컴퓨팅 장치(100)는 UI를 통해 서로 상이한 형태(예: 크기, 모양, 각도 등)를 가지는 복수의 제1 경계 박스(11, 12)의 템플릿을 제공할 수 있고, 사용자의 입력에 따라 복수의 제1 경계 박스(11, 12)의 템플릿 중 적어도 하나의 템플릿을 생성할 수 있다. 이후, 컴퓨팅 장치(100)는 생성된 템플릿의 형태(크기, 모양)에 따라 자동적으로 제1 경계 박스가 가리키는 레이블링 대상의 종류를 판단할 수 있다. In various embodiments, when an additional user input (eg, a keyboard input) is received in addition to the input indicating generation of the
다양한 실시예에서, 컴퓨팅 장치(100)는 UI를 통해 제1 경계 박스(11, 12)를 직접 입력(예: 마우스 포인터의 드래그 입력)받을 수 있으며, 직접 입력된 제1 경계 박스(11, 12)의 크기 및 형태를 이용하여, 레이블링 대상의 종류를 판단할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 직접 입력된 제1 경계 박스(11, 12)의 크기 및 형태와 기 저장된 레이블링 대상별 제1 경계 박스(11, 12)의 템플릿을 이용하여 제1 경계 박스(11, 12)가 입력된 레이블링 대상의 종류를 판단할 수 있다. 이를 통해, 컴퓨팅 장치(100)는 UI를 통해 사용자가 별도로 레이블링 대상의 종류를 입력하지 않고도, 레이블링 대상의 종류를 파악할 수 있다는 이점이 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 레이블링 대상의 종류 및 크기와 관계 없이 소정의 크기를 가지는 2D 도형 형태의 제1 경계 박스(11, 12)의 템플릿을 미리 생성할 수 있고, 사용자 입력에 대응되는 위치에 미리 생성된 소정의 크기를 가지는 2D 도형 형태의 제1 경계 박스(11, 12)의 템플릿을 출력할 수 있으며, UI를 통해 사용자로부터 입력된 수정 내용에 따라 소정의 크기를 가지는 2D 도형 형태의 제1 경계 박스(11, 12)의 크기, 형태 및 위치를 수정할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 UI를 통해 출력된 제1 경계 박스(11, 12)에 대하여, 사용자로부터 크기 조절 요청(예: 마우스 포인터(13)를 이용하여 제1 경계 박스(11, 12)의 모서리 또는 꼭지점 부분을 클릭 한 상태에서 드래그 입력을 하는 경우), 형태 변경 요청(예: 제1 경계 박스(11, 12)을 선택(또는 활성화)한 상태에서 변경하고자 하는 도형의 형태를 선택하는 경우) 및 위치 조정 요청(예: 제1 경계 박스(11, 12)을 선택(또는 활성화)한 상태에서 이동하고자 하는 위치로 드래그 입력을 하는 경우)을 포함하는 수정 내용을 입력 받을 수 있다.In various embodiments, the
이후, 컴퓨팅 장치(100)는 UI가 경계 박스 수정 모드인 경우, 크기 조절 요청, 형태 변경 요청 및 위치 조정 요청 중 적어도 하나를 포함하는 수정 내용에 따라 소정의 크기를 가지는 2D 도형 형태의 제1 경계 박스(11, 12)의 형태를 변경할 수 있다. Thereafter, when the UI is in the bounding box modification mode, the
다양한 실시예에서, 컴퓨팅 장치(100)는 사용자로부터 수정 내용이 입력되지 않은 제1 경계 박스(11)와 수정 내용이 입력되거나 또는 입력 중인 제1 경계 박스(12)의 색상을 서로 다르게 하여 출력할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 수정 내용이 입력되지 않은 제1 경계 박스(11)를 빨간색으로 표시하고, 수정 내용이 입력되거나 또는 입력 중인 제1 경계 박스(12)를 파란색으로 표시할 수 있다. 이를 통해, UI를 이용하는 사용자가 레이블링 작업이 완료된 레이블링 대상(예: 수정 내용이 입력되지 않은 제1 경계 박스(11))과 레이블링 작업이 수행중인 레이블링 대상(예: 수정 내용이 입력되거나 또는 입력 중인 제1 경계 박스(12))을 직관적으로 구분할 수 있도록 할 수 있다. In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 UI에 포함된 복수의 제1 경계 박스(11, 12)에 대하여, 사용자로부터 선택되어 활성화된 제1 경계 박스(12)와 사용자로부터 선택되지 않아 활성화되지 않은 제1 경계 박스(11)의 색상을 서로 다르게 하여 출력할 수 있다. 예를 들어, 사용자로부터 선택되지 않아 활성화되지 않은 제1 경계 박스(11)를 빨간색으로 표시하고, 사용자로부터 선택되어 활성화된 제1 경계 박스(12)를 파란색으로 표시함으로써, 사용자가 현재 어느 위치의 레이블링 대상에 대한 레이블링 작업을 수행하고 있는지를 직관적으로 확인 가능하도록 할 수 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 사용자로부터 제1 경계 박스(11, 12)에 대한 수정 내용(예: 키보드 입력을 통한 길이, 너비, 각도, 높이, 지면의 증가 및 감소 등)을 입력받는 경우, 사용자로부터 입력된 수정 내용에 따라 복수의 제1 경계 박스(11, 12) 중 사용자로부터 선택되어 활성화된 제1 경계 박스(12)를 수정할 수 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 UI가 ROU 모드인 경우, 사용자로부터 입력된 임의의 크기의 영역 설정을 입력 받을 수 있으며, 입력 받은 임의의 크기의 영역을 학습을 위한 데이터에서 제외할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 UI가 ROU모드인 상태에서, 마우스를 클릭한 상태를 유지한 상태에서 드래그 동작으로 통해 임의의 크기의 영역을 지정하고, 영역 지정이 완료된 시점에 마우스 클릭을 떼는 동작을 통해 임의의 크기의 영역을 입력 받을 수 있으며, 입력 받은 임의의 크기의 영역을 학습을 위한 데이터에서 제외할 수 있다.In various embodiments, when the UI is in the ROU mode, the
다시 도 3을 참조하면, S130 단계에서, 컴퓨팅 장치(100)는 레이블링 대상에 대한 센서 데이터 좌표(예: 영상 데이터 상의 좌표)를 선택할 수 있다. 예를 들어, 컴퓨팅 장치(100)가 2D 형태의 데이터 상에서 레이블링 대상에 대한 사용자 입력을 수신하는 경우, 사용자 입력에 대응되는 레이블링 대상에 대한 3D 포인트 클라우드 데이터 좌표를 추출할 수 있다. Referring back to FIG. 3 , in step S130 , the
이후, 컴퓨팅 장치(100)는 2D 형태의 데이터와 기 매칭된 센서 데이터에서 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 좌표를 선택할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 조감도 형태로 XY평면상에 투사된 2D 형태의 데이터와 매칭되는 3D 포인트 클라우드 데이터의 좌표(x, y, z의 3차원 좌표)를 이용하여, 3D 포인트 클라우드 데이터와 투영된 센서 데이터(예: 영상 데이터)의 좌표 값을 선택할 수 있다.Thereafter, the
다양한 실시예에서, 컴퓨팅 장치(100)는 2D 형태의 데이터 상에 생성된 제1 경계 박스를 이용하여 센서 데이터 상에 출력할 제2 경계 박스를 생성할 수 있다. 이후, 컴퓨팅 장치(100)는 제2 경계 박스의 3D 좌표 값(X, Y, Z)과 센서 데이터 좌표 값을 매핑(mapping)할 수 있는 매트릭스(matrix)를 이용하여 센서 데이터 좌표를 선택할 수 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 S120 단계에서 생성된 제1 경계 박스(예: 도 6의 11, 12)에 기초하여, 센서 데이터(예: 영상 데이터) 상에서 2D 도형 형태 또는 3D 도형 형태의 제2 경계 박스를 생성할 수 있다. 이하, 도 7 및 8을 참조하여 설명하도록 한다.In various embodiments, the
도 7은 다양한 실시예에서, 센서 데이터가 3D 데이터인 경우에 사용자 입력에 따라 UI 상에 출력되는 3D 도형 형태의 경계 박스를 도시한 도면이다.7 is a diagram illustrating a bounding box in the form of a 3D figure output on a UI according to a user input when sensor data is 3D data, according to various embodiments of the present disclosure;
도 7을 참조하여, 컴퓨팅 장치(100)는 센서 데이터가 3D 데이터인 경우, S120 단계에서 생성된 제1 경계 박스(11a, 11b, 11c)에 기초하여 3D 도형 형태의 제2 경계 박스(31a, 31b, 31c)를 생성할 수 있다. Referring to FIG. 7 , when the sensor data is 3D data, the
다양한 실시예에서, 컴퓨팅 장치(100)는 센서 데이터가 3D 데이터(예: 3D 레이저 스캔 데이터)인 경우, 제1 경계 박스(11a, 11b, 11c) 내부의 적어도 하나의 포인트에 대한 높이 정보를 이용하여 레이블링 대상의 바닥면 및 높이를 산출하고, 산출된 레이블링 대상의 바닥면 및 높이를 이용하여 3D 센서 데이터(30) 상에서 센서 데이터 좌표 값과 대응되는 위치에 3D 도형 형태의 제2 경계 박스(31a, 31b, 31c)를 생성할 수 있다. In various embodiments, when the sensor data is 3D data (eg, 3D laser scan data), the
일례로, 레이블링 대상의 종류가 자동차이고, 제1 경계 박스(11a, 11b, 11c)가 직사각형 형태인 경우, 컴퓨팅 장치(100)는 직사각형 형태의 제1 경계 박스(11a, 11b, 11c) 내부에 포함된 포인트들의 평균 높이, 최소 높이 및 최대 높이를 산출하고, 산출된 평균 높이, 최소 높이 및 최대 높이를 이용하여 레이블링 대상인 자동차의 바닥면과 높이를 산출할 수 있다. For example, when the type of the labeling object is a car and the
이후, 컴퓨팅 장치(100)는 레이블링 대상인 자동차의 바닥면과 높이를 이용하여 중심점(x, y, z), 각도(yaw), 크기(길이(length), 너비(width), 높이(height))를 계산하고, 계산된 중심점, 각도 및 크기를 특징으로 가지는 직육면체 형태의 제2 경계 박스(31a, 31b, 31c)를 생성할 수 있다. 또한, 컴퓨팅 장치(100)는 생성된 직육면체 형태의 제2 경계 박스(31a, 31b, 31c)를 3D 센서 데이터(30) 상 레이블링 대상의 센서 데이터 좌표 값과 대응되는 위치에 출력할 수 있다. 그러나, 이에 한정되지 않는다.Thereafter, the
다양한 실시예에서, 컴퓨팅 장치(100)는 산출된 레이블링 대상인 자동차의 바닥면과 높이를 이용하여 생성된 제2 경계 박스(31a, 31b, 31c)의 주변부를 단면(예: X-Z평면 및 Y-Z평면)으로 잘라 팝업창 형태로 UI상에 출력할 수 있다. 이를 통해, 컴퓨팅 장치(100)에서 산출한 자동차의 바닥면과 높이가 정확하지 않더라도, 사용자가 팝업창 형태로 출력된 제2 경계 박스(31a, 31b, 31c)의 단면을 확인하여 보다 세밀하게 수정 및 변경하도록 할 수 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 사용자로부터 제2 경계 박스의 중심점, 각도 및 크기를 조정하는 사용자 입력(예: 키보드를 통하여 중심점, 각도 및 크기의 값을 직접 입력)을 수신하여 계산된 중심점, 각도 및 크기 값을 수정할 수 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 UI를 통해 제1 경계 박스(11a, 11b, 11c)의 크기 및 형태를 직접 입력 받을 수 있고, 사용자가 레이블링 대상의 종류를 직접 입력하지 않더라도, UI를 통해 직접 입력된 제1 경계 박스(11a, 11b, 11c)의 크기 및 형태를 이용하여 제1 경계 박스(11a, 11b, 11c) 각각이 가리키는 레이블링 대상의 종류를 판단할 수 있다.In various embodiments, the
예를 들어, 레이블링 대상의 종류는 도로상을 주행하는 차량의 종류(예를 들어, 경차, 오토바이, 소형차, 중형차, 트럭 및 버스 등)뿐 아니라, 실시 예에 따라 사람, 공사 현장과 같은 고정된 장애물, 가드레일 및 표지판 등을 포함할 수 있으며, 이에 제한되는 것은 아니다. 이러한 레이블링 대상의 종류는 상술한 바와 같이 사용자의 입력에 기반하여 획득될 수도 있고, 제1 경계 박스의 형태, 크기 및 제1 경계 박스에 포함된 데이터 중 적어도 일부에 기반하여 판단될 수도 있다. 레이블링 대상의 종류에 대한 정보가 기 저장되어 있는 경우, 컴퓨팅 장치(100)는 해당 레이블링 대상의 3차원 형태 및 크기에 대한 정보를 획득할 수 있으며, 실시 예에 따라 종류가 저장되지 않은 레이블링 대상의 경우에도 제1 경계 박스의 크기에 기반하여 소정의 비율로 해당 레이블링 대상의 3차원 형태 및 크기를 추정할 수도 있다.For example, the type of the labeling target may include not only the type of vehicle traveling on the road (eg, light vehicle, motorcycle, small vehicle, medium-sized vehicle, truck, and bus, etc.), but also a person, It may include, but is not limited to, obstacles, guard rails, and signs. The type of the labeling target may be obtained based on a user's input as described above, or may be determined based on at least a part of the shape and size of the first bounding box and data included in the first bounding box. When information on the type of the labeling object is previously stored, the
이후, 컴퓨팅 장치(100)는 제1 경계 박스(11a, 11b, 11c) 각각이 가리키는 레이블링 대상의 종류에 기초하여, 미리 생성된 제2 경계 박스(31a, 31b, 31c)의 템플릿을 중 레이블링 대상의 종류에 대응되는 제2 경계 박스(31a, 31b, 31c)의 템플릿을 선택하고, 선택한 제2 경계 박스(31a, 31b, 31c)의 템플릿을 3D 센서 데이터(30) 상 레이블링 대상의 센서 데이터 좌표 값과 대응되는 위치에 출력할 수 있다.Thereafter, the
다양한 실시예에서, 컴퓨팅 장치(100)는 사용자로부터 제2 경계 박스(31a, 31b, 31c)에 대한 수정 내용을 입력 받을 수 있으며, 수정 내용에 따라 제2 경계 박스(31a, 31b, 31c)를 수정함과 동시에 제2 경계 박스(31a, 31b, 31c)와 대응되는 제1 경계 박스(11a, 11b, 11c)도 함께 수정할 수 있다.In various embodiments, the
도 8은 다양한 실시예에서, 센서 데이터가 2D 데이터인 경우에 사용자 입력에 따라 UI 상에 출력되는 2D 도형 형태의 경계 박스를 도시한 도면이다.8 is a diagram illustrating a bounding box in the form of a 2D figure output on a UI according to a user input when sensor data is 2D data, according to various embodiments of the present disclosure;
도 8을 참조하면, 센서 데이터가 2D 데이터인 경우, S120 단계에서 생성된 제1 경계 박스(11a, 11b, 11c)에 기초하여 2D 도형 형태의 제2 경계 박스(21a, 21b, 21c)를 생성할 수 있다. Referring to FIG. 8 , when sensor data is 2D data,
다양한 실시예에서, 컴퓨팅 장치(100)는 센서 데이터가 2D 데이터(예: 카메라로부터 촬영된 영상 데이터)인 경우, 상기의 방법(예: 센서 데이터가 3D 데이터인 경우에 제2 경계 박스를 생성하는 방법)으로 생성된 3D 도형 형태의 제2 경계 박스(예: 도 7의 31a, 31b, 31c)의 좌표 값을 매트릭스 형태의 카메라 파라미터를 통해 이미지 좌표계로 변환하고, 2D 센서 데이터(20) 상에서 센서 데이터 좌표 값과 대응되는 위치에 이미지 좌표계로 변환된 2D 도형 형태의 제2 경계 박스(21a, 21b, 21c)를 생성할 수 있다.In various embodiments, when the sensor data is 2D data (eg, image data captured from a camera), the
일례로, 레이블링 대상의 종류가 자동차이고, 제1 경계 박스(11a, 11b, 11c)가 직사각형 형태인 경우, 컴퓨팅 장치(100)는 직사각형 형태의 제1 경계 박스(11a, 11b, 11c) 내부에 포함된 포인트들의 평균 높이, 최소 높이 및 최대 높이를 산출하고, 산출된 평균 높이, 최소 높이 및 최대 높이를 이용하여 레이블링 대상인 자동차의 바닥면과 높이를 산출할 수 있다. For example, when the type of the labeling object is a car and the
이후, 컴퓨팅 장치(100)는 레이블링 대상인 자동차의 바닥면과 높이를 이용하여 중심점, 각도, 크기를 계산하고, 계산된 중심점, 각도 및 크기를 특징으로 가지는 직육면체 형태의 제2 경계 박스(예: 도 7의 31a, 31b, 31c)를 생성할 수 있다.Thereafter, the
이후, 컴퓨팅 장치(100)는 직육면체 형태의 제2 경계 박스(예: 도 7의 31a, 31b, 31c)의 꼭지점 좌표 이미지 좌표계로 변환하여 직사각형 형태의 제2 경계 박스(21a, 21b, 21c)를 생성할 수 있고, 생성한 직사각형 형태의 제2 경계 박스(21a, 21b, 21c)를 2D 센서 데이터(20)에서 레이블링 대상의 센서 데이터 좌표 값과 대응되는 위치에 출력할 수 있다. 그러나, 이에 한정되지 않는다.Thereafter, the
다양한 실시예에서, 컴퓨팅 장치(100)는 기 생성된 제1 경계 박스에 대한 수정 내용(예: 제1 경계 박스에 대한 크기 조절 요청, 형태 변경 요청 및 위치 변경 요청 등)을 입력 받는 경우, 수정 내용에 따라 제1 경계 박스를 변경하고, 변경된 제1 경계 박스의 변경 내용에 따라 제2 경계 박스를 변경할 수 있다. 예를 들어, UI를 통해 제1 경계 박스의 형태가 직사각형에서 정사각형으로 변경할 것을 요청하는 수정 내용이 입력되는 경우, 컴퓨팅 장치(100)는 변경된 수정 내용에 따라 제1 경계 박스의 형태를 직사각형에서 정사각형으로 변경할 수 있으며, 제1 경계 박스의 형태가 변경되는 것에 기초하여 제2 경계 박스의 형태를 직육면체에서 정육면체로 변경할 수 있다.According to various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 UI를 통해 기 생성된 제1 경계 박스에 대한 수정 내용이 입력되는 경우, 수정 내용에 따라 제1 경계 박스와 제2 경계 박스의 형태를 동시에 변경할 수 있다. 예를 들어, UI를 통해 입력된 제1 수정 내용이 크기 변경 요청인 경우, 컴퓨팅 장치(100)는 크기 변경 요청에 따라 제1 경계 박스 및 제2 경계 박스의 크기를 순차적으로 변경할 수 있다. 또한, UI를 통해 위치 변경을 요청하는 제2 수정 내용이 입력되는 경우, 제2 수정 내용에 따라 제1 경계 박스 및 제2 경계 박스의 위치를 순차적으로 변경할 수 있다. 이를 통해, 사용자는 제1 UI(예: 도 4의 41)를 통해 제1 경계 박스의 형태를 수정한 내용에 따라 제2 경계 박스가 어떻게 달라지는지는 제2 UI(예: 도 4의 42)를 통해 즉각적으로 확인할 수 있다는 이점이 있다.In various embodiments, when a modification to the previously generated first bounding box is input through the UI, the
다양한 실시예에서, 컴퓨팅 장치(100)는 UI를 통해 기 생성된 제1 경계 박스에 대한 수정 내용이 입력되는 경우, 모든 수정 내용이 완료되는 시점에 모든 수정 내용을 적용하여 제2 경계 박스의 형태를 변경할 수 있다. 예를 들어, 제1 경계 박스에 수정 내용이 입력되고 있는 상태(예: 도 6의 12)에서, 제1 수정 내용 및 제2 수정 내용이 순차적으로 입력되는 경우, 컴퓨팅 장치(100)는 제1 수정 내용 및 제2 수정 내용을 순차적으로 반영하여 제1 경계 박스의 형태를 변경할 수 있고, 제1 경계 박스에 대한 수정 내용 입력이 완료된 상태(예: 도 6의 11)가 되면, 제1 수정 내용 및 제2 수정 내용을 일괄적으로 반영하여 제2 경계 박스의 형태를 변경할 수 있다. 사용자가 제1 경계 박스에 대하여 반복적으로 수정 내용을 입력할 경우, 반복적으로 입력되는 수정 내용에 따라 제2 경계 박스도 함께 반복적으로 변경하게 되면 연산량이 증가하게 된다. 이때, 컴퓨팅 장치(100)는 상기와 같이 반복적으로 입력되는 제1 경계 박스에 대한 수정 내용을 종합하여 일괄적으로 제2 경계 박스에 반영함으로써, 제2 경계 박스를 반복적으로 수정함으로써 연산량이 증가하는 것을 방지할 수 있다는 이점이 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 UI를 통해 기 생성된 제1 경계 박스에 대한 수정 내용이 입력되는 경우, 수정 내용에 따라 수정된 제1 경계 박스의 크기 및 형태에 기초하여 제1 경계 박스에 대응되는 레이블링 대상의 종류를 변경할 수 있다. 또한, 컴퓨팅 장치(100)는 레이블링 대상의 종류가 변경됨에 따라 제2 경계 박스의 크기 및 형태를 변경할 수 있다.In various embodiments, the
다양한 실시예에서, 컴퓨팅 장치(100)는 사용자로부터 제2 경계 박스(21a, 21b, 21c)에 대한 수정 내용을 입력 받을 수 있으며, 수정 내용에 따라 제2 경계 박스(21a, 21b, 21c)를 수정함과 동시에 제2 경계 박스(21a, 21b, 21c)와 대응되는 제1 경계 박스(11a, 11b, 11c)도 함께 수정할 수 있다.In various embodiments, the
다시 도 3을 참조하면, S140 단계에서, 컴퓨팅 장치(100)는 S130 단계에서 선택한 센서 데이터 좌표 값을 이용하여 센서 데이터 상에 레이블링을 수행할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 센서 데이터, 레이블링 대상의 종류(또는 라벨 네임)(예: 자동차, 사람 등)를 가리키는 데이터(예: 사용자로부터 직접 입력 받은 레이블링 대상의 종류 또는 제1 경계 박스의 크기 및 형태에 따라 판단된 레이블링 대상의 종류를 가리키는 데이터), 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값 및 레이블링 대상의 센서 데이터 좌표 값을 포함하는 데이터 셋(data set)을 구성할 수 있다. 그러나, 이에 한정되지 않는다.Referring back to FIG. 3 , in step S140 , the
다양한 실시예에서, 하나의 2D 형태의 데이터와 복수의 센서 데이터가 매칭된 경우, 복수의 센서 데이터 각각에 대하여 데이터 셋을 구성할 수 있다.According to various embodiments, when one 2D data and a plurality of sensor data are matched, a data set may be configured for each of the plurality of sensor data.
다양한 실시예에서, 컴퓨팅 장치(100)는 센서 데이터 중 제1 시점에서의 센서 데이터에 대한 레이블링 작업이 완료되는 경우, 제1 시점 이후의 제2 시점에서의 센서 데이터와 기 매칭된 2D 형태의 데이터를 자동적으로 로드(Load)할 수 있다. 예를 들어, 제1 시점에서의 센서 데이터와 기 매칭된 제1 2D 형태의 데이터에 대한 레이블링 작업이 완료되는 경우(예: UI를 통해 레이블링 완료를 가리키는 사용자 입력이 수신되는 경우), 제1 시점 이후의 제2 시점에서의 센서 데이터와 기 매칭된 제2 2D 형태의 데이터를 자동적으로 로드할 수 있다. 이를 통해, 센서 데이터에 대한 레이블링을 수행하는 사용자가 별도의 동작을 취하지 않고도 작업 완료된 센서 데이터 이후의 센서 데이터에 대한 레이블링 작업을 수행할 수 있다는 점에서, 사용자가 작업의 연속성을 유지할 수 있다는 이점이 있다. In various embodiments, when the labeling operation of the sensor data at the first time point among the sensor data is completed, the
다양한 실시예에서, 컴퓨팅 장치(100)는 레이블링 작업이 완료된 복수의 2D 형태의 데이터 중 적어도 하나의 2D 형태의 데이터에 대한 로드를 요청받을 수 있다. 컴퓨팅 장치(100)는 사용자로부터 요청받은 적어도 하나의 2D 형태의 데이터와 적어도 하나의 2D 형태의 데이터 상에서 작업된 레이블링에 대한 정보(예: 레이블링 작업으로 생성된 데이터 셋 및 감지(detection) 알고리즘의 결과 데이터(2D 형태의 데이터 및 센서 데이터에 대하여 감지 알고리즘을 통해 자동적으로 레이블링 동작이 수행된 결과를 나타내는 데이터) 등)를 포함하는 UI를 사용자 단말(200)로 제공함으로써, 적어도 하나의 2D 형태의 데이터 상에 신규 경계 박스 생성을 입력 받거나, 기 생성된 경계 박스에 대한 수정 내용을 입력 받을 수 있다.In various embodiments, the
전술된 데이터 레이블링 방법은 도면에 도시된 순서도를 참조하여 설명하였다. 간단한 설명을 위해 데이터 레이블링 방법은 일련의 블록들로 도시하여 설명하였으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 본 명세서에 도시되고 시술된 것과 상이한 순서로 수행되거나 또는 동시에 수행될 수 있다. 또한, 본 명세서 및 도면에 기재되지 않은 새로운 블록이 추가되거나, 일부 블록이 삭제 또는 변경된 상태로 수행될 수 있다.The data labeling method described above has been described with reference to the flowchart shown in the drawings. For the sake of simplicity, the data labeling method has been described by showing a series of blocks, but the present invention is not limited to the order of the blocks, and some blocks may be performed in an order different from that illustrated and described herein, or may be performed simultaneously. can In addition, new blocks not described in this specification and drawings may be added, or some blocks may be deleted or changed.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.The components of the present invention may be implemented as a program (or application) to be executed in combination with a computer, which is hardware, and stored in a medium. The components of the present invention may be implemented as software programming or software components, and similarly, embodiments may include various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs, including C, C++ , Java, assembler, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. As mentioned above, although embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing its technical spirit or essential features. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.
100 : 데이터 레이블링 장치(또는 컴퓨팅 장치)
200 : 사용자 단말
300 : 외부 서버100: data labeling device (or computing device)
200: user terminal
300 : external server
Claims (11)
소정의 지역에 대한 3D 포인트 클라우드 데이터(Point Cloud Data)를 변환하여 생성된 2D 형태의 데이터 상에서 레이블링(Labeling) 대상을 가리키는 사용자 입력을 얻는 단계;
상기 3D 포인트 클라우드 데이터와 기 매칭된 센서 데이터 - 상기 센서 데이터는 레이저 스캔 센서로부터 획득되는 레이저 스캔 데이터 및 카메라 센서를 통해 촬영되는 영상 데이터 중 적어도 하나를 포함함 - 를 이용하여, 상기 레이블링 대상의 3D 포인트 클라우드 데이터 좌표 값과 대응되는 센서 데이터 상의 좌표 값을 선택하는 단계; 및
상기 센서 데이터 상의 좌표 값을 이용하여 상기 센서 데이터 상에 레이블링을 수행하는 단계를 포함하며,
상기 사용자 입력을 얻는 단계는,
상기 2D 형태의 데이터 및 상기 센서 데이터를 출력하는 사용자 인터페이스(User interface, UI)를 제공하고, 상기 제공된 UI를 통해 출력된 상기 2D 형태의 데이터 상에서 상기 레이블링 대상을 가리키는 사용자 입력을 얻는 단계를 포함하는, 데이터 레이블링 방법. A data labeling method performed by a computing device, comprising:
obtaining a user input pointing to a labeling target on 2D data generated by converting 3D point cloud data for a predetermined region;
3D of the labeling target using sensor data previously matched with the 3D point cloud data, wherein the sensor data includes at least one of laser scan data obtained from a laser scan sensor and image data captured through a camera sensor selecting a coordinate value on the sensor data corresponding to the point cloud data coordinate value; and
performing labeling on the sensor data by using the coordinate values on the sensor data,
The step of obtaining the user input includes:
Providing a user interface (UI) for outputting the 2D data and the sensor data, and obtaining a user input indicating the labeling target on the 2D data output through the provided UI , data labeling methods.
상기 사용자 입력을 얻는 단계는,
상기 레이블링 대상의 크기에 기초하여 상기 레이블링 대상에 대한 2D 도형 형태의 제1 경계 박스(Bounding box)를 생성하는 단계를 포함하고,
상기 센서 데이터 상의 좌표 값을 선택하는 단계는,
상기 제1 경계 박스를 이용하여 상기 센서 데이터 상에 2D 또는 3D 도형 형태의 제2 경계 박스를 생성하는 단계를 포함하는, 데이터 레이블링 방법.According to claim 1,
The step of obtaining the user input includes:
generating a first bounding box in the form of a 2D figure for the labeling object based on the size of the labeling object,
The step of selecting a coordinate value on the sensor data comprises:
and generating a second bounding box in the form of a 2D or 3D figure on the sensor data by using the first bounding box.
상기 제2 경계 박스를 생성하는 단계는,
상기 센서 데이터가 3D 데이터인 경우, 상기 제1 경계 박스 내부의 적어도 하나의 포인트에 대한 높이 정보를 이용하여 상기 레이블링 대상의 바닥면 및 높이를 산출하고, 상기 산출된 레이블링 대상의 바닥면 및 높이를 이용하여 상기 센서 데이터 상에서 상기 센서 데이터 상의 좌표 값과 대응되는 위치에 3D 도형 형태의 제2 경계 박스를 생성하는 단계; 및
상기 센서 데이터가 2D 데이터인 경우, 상기 3D 도형 형태의 제2 경계 박스의 좌표 값을 이미지 좌표계로 변환하고, 상기 센서 데이터 상에서 상기 센서 데이터 상의 좌표 값과 대응되는 위치에 상기 이미지 좌표계로 변환된 제2 경계 박스를 생성하는 단계를 포함하는, 데이터 레이블링 방법.3. The method of claim 2,
The generating of the second bounding box includes:
When the sensor data is 3D data, the bottom surface and height of the labeling object are calculated using height information on at least one point inside the first bounding box, and the calculated bottom surface and height of the labeling object are calculated generating a second bounding box in the form of a 3D figure at a position corresponding to a coordinate value on the sensor data on the sensor data by using; and
When the sensor data is 2D data, the coordinate value of the second bounding box of the 3D figure form is converted into an image coordinate system, and the first converted into the image coordinate system at a position corresponding to the coordinate value on the sensor data on the sensor data 2 A method for labeling data, comprising generating a bounding box.
상기 사용자 입력을 얻는 단계는,
상기 UI를 통해 상기 사용자 입력에 대응하는 상기 제1 경계 박스 및 상기 제2 경계 박스를 출력하는 단계를 더 포함하는, 데이터 레이블링 방법.3. The method of claim 2,
The step of obtaining the user input includes:
and outputting the first bounding box and the second bounding box corresponding to the user input through the UI.
상기 사용자 입력을 얻는 단계는,
상기 UI를 통해 기 생성된 제1 경계 박스에 대한 수정을 입력 받는 단계를 더 포함하며,
상기 센서 데이터 상의 좌표 값을 선택하는 단계는,
상기 기 생성된 제1 경계 박스의 수정 내용에 따라 상기 제2 경계 박스의 형태를 변경하는 단계를 더 포함하는, 데이터 레이블링 방법.5. The method of claim 4,
The step of obtaining the user input includes:
Further comprising the step of receiving a correction input for the pre-generated first bounding box through the UI,
The step of selecting a coordinate value on the sensor data comprises:
The method further comprising the step of changing the shape of the second bounding box according to the modified content of the pre-generated first bounding box.
상기 사용자 입력을 얻는 단계는,
상기 사용자 입력에 따라 기 생성된 서로 다른 형태를 가지는 복수의 제1 경계 박스의 템플릿 중 어느 하나의 템플릿을 상기 UI상에 출력하는 단계를 더 포함하며,
상기 레이블링을 수행하는 단계는,
상기 출력된 어느 하나의 템플릿의 형태에 따라 상기 레이블링 대상의 종류를 판단하는 단계를 더 포함하는, 데이터 레이블링 방법.5. The method of claim 4,
The step of obtaining the user input includes:
The method further comprising the step of outputting any one template among a plurality of templates of a plurality of first bounding boxes having different shapes previously generated according to the user input on the UI,
The step of performing the labeling comprises:
Further comprising the step of determining the type of the labeling target according to the form of any one of the output template, the data labeling method.
상기 데이터 레이블링 방법은,
상기 센서 데이터 중 동일한 시점에서의 센서 데이터의 좌표 값과 3D 포인트 클라우드 데이터의 좌표 값을 매칭하는 단계; 및
X축 및 Y축을 기준으로 상기 3D 포인트 클라우드 데이터를 조감도(Bird-eye-view, BEV) 형태로 투사(projection)하는 방법 및 상기 3D 포인트 클라우드 데이터를 2D 격자 지도 상에 양자화하는 방법 중 적어도 하나의 방법을 이용하여 상기 2D 형태의 데이터를 생성하는 단계를 더 포함하는, 데이터 레이블링 방법.According to claim 1,
The data labeling method comprises:
matching the coordinate values of the sensor data at the same time point among the sensor data and the coordinate values of the 3D point cloud data; and
At least one of a method of projecting the 3D point cloud data in the form of a bird-eye-view (BEV) based on the X-axis and the Y-axis and a method of quantizing the 3D point cloud data on a 2D grid map The method further comprising the step of generating the data in the 2D form using the method, data labeling method.
상기 데이터 레이블링 방법은,
상기 센서 데이터 중 제1 시점에서의 센서 데이터에 대한 레이블링 작업이 완료되는 경우, 상기 제1 시점 이후의 제2 시점에서의 센서 데이터와 기 매칭된 3D 포인트 클라우드 데이터를 변환하여 생성된 2D 형태의 데이터를 자동적으로 로드하는 단계를 더 포함하는, 데이터 레이블링 방법.8. The method of claim 7,
The data labeling method comprises:
When the labeling operation of the sensor data at the first time point among the sensor data is completed, 2D form data generated by converting the 3D point cloud data matched with the sensor data at the second time point after the first time point Further comprising the step of automatically loading the data labeling method.
상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
제1 항의 방법을 수행하는, 장치.a memory storing one or more instructions; and
a processor executing the one or more instructions stored in the memory;
The processor by executing the one or more instructions,
An apparatus for performing the method of claim 1 .
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190144770A KR102325367B1 (en) | 2019-11-13 | 2019-11-13 | Method, apparatus and computer program for conducting automatic driving data labeling |
KR1020210151623A KR20210135206A (en) | 2019-11-13 | 2021-11-05 | Method, apparatus and computer program for conducting automatic driving data labeling |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190144770A KR102325367B1 (en) | 2019-11-13 | 2019-11-13 | Method, apparatus and computer program for conducting automatic driving data labeling |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210151623A Division KR20210135206A (en) | 2019-11-13 | 2021-11-05 | Method, apparatus and computer program for conducting automatic driving data labeling |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210057943A KR20210057943A (en) | 2021-05-24 |
KR102325367B1 true KR102325367B1 (en) | 2021-11-11 |
Family
ID=76153110
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190144770A KR102325367B1 (en) | 2019-11-13 | 2019-11-13 | Method, apparatus and computer program for conducting automatic driving data labeling |
KR1020210151623A KR20210135206A (en) | 2019-11-13 | 2021-11-05 | Method, apparatus and computer program for conducting automatic driving data labeling |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210151623A KR20210135206A (en) | 2019-11-13 | 2021-11-05 | Method, apparatus and computer program for conducting automatic driving data labeling |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR102325367B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230141103A (en) | 2022-03-31 | 2023-10-10 | 주식회사 비솔 | Object creating system based on real image of background data for AI training |
KR20230146272A (en) | 2022-04-12 | 2023-10-19 | 주식회사 비솔 | Character creating system based on 3d graphics of background data for AI training |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102376397B1 (en) | 2021-09-27 | 2022-03-21 | 국방과학연구소 | A Data Augmentation Method for End-to-End Autonomous Driving Using Fast and Accurate Viewpoint Transformation |
KR102591078B1 (en) * | 2023-05-02 | 2023-10-19 | 주식회사 렛서 | Electronic device for performing 3d object detection using an artificial intelligence model and operating method thereof |
KR102709551B1 (en) * | 2023-09-20 | 2024-09-26 | 주식회사 라이드플럭스 | Method, computing device and computer program for detecting object in real time based on lidar point cloud |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100010011A (en) * | 2008-07-21 | 2010-01-29 | 충북대학교 산학협력단 | Method for detecting double touch of the image sensor touch screen |
KR20170118501A (en) | 2016-04-15 | 2017-10-25 | 현대자동차주식회사 | Driving path planning apparatus and method for autonomous vehicles |
KR102399130B1 (en) * | 2017-06-28 | 2022-05-18 | 현대모비스 주식회사 | Method, apparatus and system for recognizing driving environment of vehicle |
KR20190110073A (en) * | 2019-09-09 | 2019-09-27 | 엘지전자 주식회사 | Artificial intelligence apparatus and method for updating artificial intelligence model |
-
2019
- 2019-11-13 KR KR1020190144770A patent/KR102325367B1/en active Application Filing
-
2021
- 2021-11-05 KR KR1020210151623A patent/KR20210135206A/en active Application Filing
Non-Patent Citations (1)
Title |
---|
K. Lerhinphonphan et al., '2D to 3D Label Propagation For Object Detection in Point Cloud,' 2018 IEEE ICMEW, San Diego, CA, USA, 2018, pp. 1-6 (2018.7.23.) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230141103A (en) | 2022-03-31 | 2023-10-10 | 주식회사 비솔 | Object creating system based on real image of background data for AI training |
KR20230146272A (en) | 2022-04-12 | 2023-10-19 | 주식회사 비솔 | Character creating system based on 3d graphics of background data for AI training |
Also Published As
Publication number | Publication date |
---|---|
KR20210057943A (en) | 2021-05-24 |
KR20210135206A (en) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102325367B1 (en) | Method, apparatus and computer program for conducting automatic driving data labeling | |
EP3955158A1 (en) | Object detection method and apparatus, electronic device, and storage medium | |
US10712739B1 (en) | Feedback to facilitate control of unmanned aerial vehicles (UAVs) | |
US10360473B2 (en) | User interface creation from screenshots | |
KR102363501B1 (en) | Method, apparatus and computer program for generating earth surface data from 3-dimensional point cloud data | |
KR102114496B1 (en) | Method, terminal unit and server for providing task assistance information in mixed reality | |
CN111797650A (en) | Obstacle identification method and device, computer equipment and storage medium | |
US11748998B1 (en) | Three-dimensional object estimation using two-dimensional annotations | |
WO2019138597A1 (en) | System and method for assigning semantic label to three-dimensional point of point cloud | |
US11209277B2 (en) | Systems and methods for electronic mapping and localization within a facility | |
KR102424305B1 (en) | Method, apparatus and computer program for generating and providing data video for generating training data of artificial intelligence model | |
CN112424832A (en) | System and method for detecting 3D association of objects | |
CN114830177A (en) | Electronic device and method for controlling the same | |
KR20220001152A (en) | Method, apparatus and computer program for generating road network data to automatic driving vehicle | |
US11321864B1 (en) | User guided mode for measurement purposes | |
CN116778458B (en) | Parking space detection model construction method, parking space detection method, equipment and storage medium | |
US11829595B1 (en) | Augmented-reality-based facility semantic mapping | |
JP7267068B2 (en) | Trained model generation device, program and trained model generation system | |
KR20220021581A (en) | Robot and control method thereof | |
CN108198272B (en) | Data processing method and equipment thereof | |
US20220284667A1 (en) | Image processing method and image processing device for generating 3d content by means of 2d images | |
US10921950B1 (en) | Pointing and interaction control devices for large scale tabletop models | |
CN114299271A (en) | Three-dimensional modeling method, three-dimensional modeling apparatus, electronic device, and readable storage medium | |
CN106527774B (en) | Processing method and device for non-contact input handwriting | |
JP6495559B2 (en) | Point cloud processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent |