KR20230149255A - Method for annotation using boundary designation - Google Patents

Method for annotation using boundary designation Download PDF

Info

Publication number
KR20230149255A
KR20230149255A KR1020230050696A KR20230050696A KR20230149255A KR 20230149255 A KR20230149255 A KR 20230149255A KR 1020230050696 A KR1020230050696 A KR 1020230050696A KR 20230050696 A KR20230050696 A KR 20230050696A KR 20230149255 A KR20230149255 A KR 20230149255A
Authority
KR
South Korea
Prior art keywords
data
image
annotation
outline
objects
Prior art date
Application number
KR1020230050696A
Other languages
Korean (ko)
Other versions
KR102658711B1 (en
Inventor
장소연
Original Assignee
주식회사 인피닉
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 인피닉 filed Critical 주식회사 인피닉
Publication of KR20230149255A publication Critical patent/KR20230149255A/en
Application granted granted Critical
Publication of KR102658711B1 publication Critical patent/KR102658711B1/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
    • 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
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 이미지 속에 포함된 중첩된 객체를 용이하게 지정할 수 있는, 경계선 지정을 통한 어노테이션 방법을 제안한다. 상기 방법은 어노테이션 장치가, 작업자의 제어에 따라, 인공지능(Artificial Intelligence, AI) 학습을 위한 어노테이션(annotation) 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체의 외곽선을 지정하는 단계, 상기 어노테이션 장치가, 상기 지정된 외곽선 내에서 상기 복수의 객체 사이의 경계선을 지정하는 단계 및 상기 어노테이션 장치가, 상기 지정된 경계선을 기준으로 구획된 복수의 영역을 기준으로 상기 복수의 객체를 각각 식별하는 단계를 포함할 수 있다.The present invention proposes an annotation method through boundary designation that can easily specify overlapping objects included in an image. The method uses an annotation device, under operator control, to specify the outlines of a plurality of objects arranged to overlap each other contained in an image that is the target of annotation work for artificial intelligence (AI) learning. Step, the annotation device designates a boundary line between the plurality of objects within the designated outline, and the annotation device identifies each of the plurality of objects based on a plurality of areas divided based on the designated boundary line. It may include steps.

Description

경계선 지정을 통한 어노테이션 방법{Method for annotation using boundary designation}Annotation method using boundary designation {Method for annotation using boundary designation}

본 발명은 인공지능(Artificial Intelligence, AI) 기계 학습용 데이터의 가공에 관한 것이다. 보다 상세하게는, 인공지능(AI) 학습용 데이터를 어노테이션함에 있어서, 이미지 속에 포함된 중첩된 객체를 용이하게 지정할 수 있는, 경계선 지정을 통한 어노테이션 방법에 관한 것이다.The present invention relates to processing data for artificial intelligence (AI) machine learning. More specifically, it relates to an annotation method through boundary designation that can easily specify overlapping objects included in an image when annotating artificial intelligence (AI) learning data.

인공지능(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) 학습용 데이터의 설계는 데이터 구조의 설계, 데이터의 수집, 데이터의 정제, 데이터의 가공, 데이터의 확장, 및 데이터의 검증 단계로 진행된다.Generally, 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) 또는 협회/전문 단체 등을 통해 데이터를 수집하여 이루어진다. 데이터 정제는 수집된 데이터 내에서 중복 데이터를 제거하고, 개인 정보 등을 비식별화하여 이루어진다. 데이터의 가공은 메타데이터(meta data)를 입력하고 어노테이션(annotation)을 수행하여 이루어진다. 데이터의 확장은 온톨로지 매핑(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 entering meta data and performing annotation. 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단계의 레벨로 구분된다. 국제자동차기술자협회(SAE)가 분류한 6단계에 따르면, 레벨 0단계는 비자동화(no automation), 레벨 1단계는 운전자 보조(driver assistance), 레벨 2단계는 부분 자동화(partial automation), 레벨 3단계는 조건부 자동화(conditional automation), 레벨 4단계는 고도 자동화(high automation), 그리고 레벨 5단계는 완전 자동화(full automation) 단계이다.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 Society of Automotive Engineers (SAE), level 0 is no automation, level 1 is driver assistance, level 2 is partial automation, and level 3 is. The levels are conditional automation, level 4 is high automation, and level 5 is full automation.

차량의 자율주행은 인지(perception), 측위(localization), 경로 계획(path planning) 및 제어(control)의 메커니즘을 통해 수행된다. 현재 여러 기업체들은 자율주행 메커니즘 중에서 인지 및 경로 계획을 인공지능(AI)을 이용하여 구현하기 위해 개발 중에 있다. 그리고, 자율주행에 사용될 수 있는 인공지능(AI)의 기계 학습에 사용되는 데이터는 적게는 몇 천개에서, 많게는 수 백만개에 이르는 많은 수로 이루어진다. Autonomous driving of a vehicle is performed through mechanisms of perception, localization, path planning, and control. Currently, several companies are developing autonomous driving mechanisms to implement recognition and path planning using artificial intelligence (AI). And, the data used for machine learning of artificial intelligence (AI) that can be used in autonomous driving consists of a large number ranging from a few thousand to as many as millions.

이러한, 차량의 자율주행에 사용될 수 있는 인공지능(AI)의 기계 학습에 사용되는 데이터는 차량에 설치된 다양한 종류의 센서들에 의해 수집된다. 예를 들어, 차량의 자율주행에 사용될 수 있는 인공지능(AI)의 기계 학습에 사용되는 데이터들은 차량에 고정 설치된 라이다(lidar), 카메라(camera), 레이더(radar), 초음파 센서(ultrasonic sensor) 및 GPS(Global Positioning System) 등에 의해 획득, 촬영 또는 감지된 데이터들이 될 수 있으며, 이에 한정되는 것도 아니다.Data used for machine learning of artificial intelligence (AI) that can be used for autonomous driving of vehicles is collected by various types of sensors installed in the vehicle. For example, data used for machine learning of artificial intelligence (AI) that can be used for autonomous driving of vehicles comes from lidar, cameras, radar, and ultrasonic sensors fixed to the vehicle. ) and GPS (Global Positioning System), etc., may be data acquired, photographed, or sensed, but are not limited thereto.

일반적으로, 학습 데이터의 수집은 프로젝트(project) 단위로 진행된다. 이때, 각 프로젝트의 컨트롤 타워는 데이터 수집을 위한 장치가 설치된 복수의 차량으로부터 데이터를 수신하게 된다.Generally, the collection of learning data is carried out on a project basis. At this time, the control tower of each project receives data from multiple vehicles equipped with data collection devices.

이때, 복수의 차량으로부터 수집된 데이터를 업로드 받는 과정에서는 각 차량으로부터 동일한 이미지가 중복되어 업로드 되거나, 서로 다른 차량으로부터 동일한 이미지가 중복되어 업로드 되는 문제점이 있었다.At this time, in the process of uploading data collected from multiple vehicles, there was a problem in which the same image was uploaded repeatedly from each vehicle or the same image was uploaded repeatedly from different vehicles.

또한, 각 차량의 관리자는 컨트롤 타워로부터 수집 조건이 명시된 가이드에 따라 데이터를 수집하고, 수집된 데이터를 업로드하게 된다. 이때, 각 차량의 관리자의 주관인 관점, 수집 환경, 수집 장치의 오류 둥에 따라, 기준에 적합하지 않은 데이터들이 무작위로 업로드 되는 문제점이 있었다.In addition, the manager of each vehicle collects data from the control tower according to a guide specifying collection conditions and uploads the collected data. At this time, there was a problem in which data that did not meet the standards was randomly uploaded depending on the subjective viewpoint of the manager of each vehicle, the collection environment, and errors in the collection device.

위와 같은 문제점을 방지하기 위하여, 컨트롤 타워는 업로드 된 데이터를 수동으로 검수하기 위한 검수자를 배치하고 있다. 그러나, 검수자를 배치함에 따른 불필요한 리소스 낭비를 방지할 수 방안이 필요한 실정이다.To prevent the above problems, the control tower deploys inspectors to manually inspect the uploaded data. However, there is a need for a method to prevent unnecessary waste of resources due to deploying inspectors.

한편, 데이터 가공 단계의 어노테이션 작업은 이미지 속에 포함된 객체에 대하여 바운딩 박스(bounding box), 폴리곤(polygon) 등으로 객체를 식별하고, 식별된 객체의 속성 정보를 입력하여 진행된다. 이와 같은 어노테이션 작업은 데이터 라벨링(data labeling)이라 지칭되기도 한다. 그리고, 어노테이션 작업 결과물에 해당되는 데이터셋(dataset)은 JSON(Java Script Object Notation) 파일 형태로 산출된다. 이러한, 어노테이션 작업은 적게는 몇 천개에서 많게는 수 백만개에 이르는 많은 수의 데이터를 대상으로 이루어지므로, 어노테이션 작업을 수행하는 작업자 또한 많은 수의 인원으로 이루어진다.Meanwhile, the annotation work in the data processing stage is performed by identifying objects included in the image using bounding boxes, polygons, etc., and inputting attribute information of the identified objects. This kind of annotation work is also referred to as data labeling. And, the dataset corresponding to the annotation work result is produced in the form of a JSON (Java Script Object Notation) file. Since this annotation work is performed on a large number of data ranging from a few thousand to as many as millions of pieces of data, a large number of workers perform the annotation work.

따라서, 수많은 작업자가 수많은 어노테이션 작업을 수행해야하는 프로젝트의 전체 작업 비용을 산출하는 것은 어려운 작업이다. 종래에는 어노테이션 작업에 관한 프로젝트의 전체 작업 비용은 단순히 작업 대상이 되는 데이터의 개수, 또는 담당자의 직관에 따라 예측된 작업의 난이도에 의존하여 산출되고 있는 문제점이 있었다.Therefore, it is a difficult task to calculate the overall work cost of a project that requires numerous workers to perform numerous annotation tasks. In the past, there was a problem in that the total work cost of a project related to annotation work was calculated simply depending on the number of data to be worked on or the difficulty of the work predicted according to the intuition of the person in charge.

또한, 어노테이션 작업 중 폴리곤 기법은 작업자가 이미지 내에 포함된 객체의 외곽선을 따라 복수의 점을 생성하여 객체를 식별하는 방법이다. 이러한 폴리곤 기법은 자동차나 사람과 같은 비정형 객체의 윤곽을 정밀하게 선택할 수 있어, 객체의 크기와 형태를 정확하게 인식할 수 있는 장점이 있다.In addition, the polygon technique during annotation work is a method in which workers identify objects by creating a plurality of points along the outline of the object included in the image. This polygon technique has the advantage of being able to precisely select the outline of an atypical object such as a car or person, allowing the size and shape of the object to be accurately recognized.

그러나, 이미지 내에 객체가 중첩되어 배치되는 경우, 폴리곤 기법으로 각각의 객체를 식별하기 위해서는 이미지를 확대하여 경계선의 동일한 지점에 이중으로 점을 생성해야 한다. 이때, 경계선의 동일한 지점에 정확히 점을 생성하지 않는 경우, 중첩된 객체와 객체 사이에 공간이 발생되는 문제점이 있었다.However, when objects are placed overlapping in an image, in order to identify each object using the polygon technique, the image must be enlarged and a double point must be created at the same point of the boundary line. At this time, if a point was not created exactly at the same point of the boundary line, there was a problem that a space was created between the overlapping objects.

대한민국 공개특허공보 제10-2020-0042629호, ‘인공지능 학습을 위한 모바일 기기의 터치 기반 어노테이션과 이미지 생성 방법 및 그 장치’, (2020.04.24. 공개)Republic of Korea Patent Publication No. 10-2020-0042629, ‘Touch-based annotation and image generation method and device for mobile devices for artificial intelligence learning’, (published on April 24, 2020)

본 발명의 일 목적은 인공지능 학습용 데이터를 어노테이션함에 있어서, 이미지 속에 포함된 중첩된 객체를 용이하게 지정할 수 있는, 경계선 지정을 통한 어노테이션 방법을 제공하는 것이다.One purpose of the present invention is to provide an annotation method through boundary designation that can easily specify overlapping objects included in an image when annotating artificial intelligence learning data.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.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.

상술한 바와 같은 기술적 과제를 달성하기 위하여, 본 발명은 이미지 속에 포함된 중첩된 객체를 용이하게 지정할 수 있는, 경계선 지정을 통한 어노테이션 방법을 제안한다. 상기 방법은 어노테이션 장치가, 작업자의 제어에 따라, 인공지능(Artificial Intelligence, AI) 학습을 위한 어노테이션(annotation) 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체의 외곽선을 지정하는 단계, 상기 어노테이션 장치가, 상기 지정된 외곽선 내에서 상기 복수의 객체 사이의 경계선을 지정하는 단계 및 상기 어노테이션 장치가, 상기 지정된 경계선을 기준으로 구획된 복수의 영역을 기준으로 상기 복수의 객체를 각각 식별하는 단계를 포함할 수 있다.In order to achieve the technical problems described above, the present invention proposes an annotation method through boundary designation that can easily specify overlapping objects included in an image. The method uses an annotation device, under operator control, to specify the outlines of a plurality of objects arranged to overlap each other contained in an image that is the target of annotation work for artificial intelligence (AI) learning. Step, the annotation device designates a boundary line between the plurality of objects within the designated outline, and the annotation device identifies each of the plurality of objects based on a plurality of areas divided based on the designated boundary line. It may include steps.

구체적으로, 상기 외곽선을 지정하는 단계는 서로 중첩되어 배치되는 적어도 제1 객체와 제2 객체를 포함하는 복수의 객체의 전체 외곽선을 지정하는 것을 특징으로 하고, 상기 경계선을 지정하는 단계는 상기 지정된 외곽선 내에서 상기 제1 객체와 상기 제2 객체 사이의 중첩된 경계선을 지정하는 것을 특징으로 하며, 상기 경계선은, 상기 제1 객체의 제2 객체와 중첩되는 부분의 외곽선을 형성하는 동시에, 상기 제2 객체의 제1 객체와 중첩되는 부분의 외곽선을 형성하는 것을 특징으로 한다.Specifically, the step of specifying the outline is characterized in that designating the entire outline of a plurality of objects including at least a first object and a second object arranged to overlap each other, and the step of specifying the boundary line is characterized by designating the entire outline of a plurality of objects arranged to overlap each other, and the step of specifying the border line Characterized in that designating an overlapping boundary line between the first object and the second object within the boundary line, wherein the boundary line forms an outline of a portion of the first object overlapping with the second object and the second object It is characterized by forming an outline of a portion of the object that overlaps with the first object.

상기 외곽선을 지정하는 단계는 상기 작업자로부터 상기 복수 개의 객체를 포함하는 외곽선을 따라 복수 개의 점을 입력 받고, 상기 복수 개의 점을 연결하여, 상기 복수 개의 객체에 대한 외곽선을 생성하는 것을 특징으로 한다.The step of specifying the outline is characterized by receiving a plurality of points as input along an outline including the plurality of objects from the operator, connecting the plurality of points, and generating outlines for the plurality of objects.

상기 외곽선을 지정하는 단계는 상기 이미지의 엣지(edge)를 추출하고, 상기 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 상기 작업자로부터 상기 식별된 객체 중 복수의 객체를 선택받고, 상기 추출된 엣지를 기초로 상기 선택받은 복수의 객체에 대한 외곽선을 생성하는 것을 특징으로 한다.The step of specifying the outline includes extracting an edge of the image, identifying at least one object based on the extracted edge, receiving a plurality of objects selected from the identified objects by the operator, and extracting the edge. It is characterized by generating outlines for the plurality of selected objects based on the selected edges.

상기 외곽선을 지정하는 단계는 상기 이미지와 동시에 라이다(lidar)로부터 획득된 점군 데이터를 기초로, 상기 지정된 외곽선 내부에 존재하는 점들 중 거리(depth)가 일정 범위(range)를 갖는 복수의 점군을 식별하고, 상기 작업자로부터 상기 복수의 점군 중 복수의 객체를 선택받고, 상기 식별된 복수의 점군을 기초로 상기 선택받은 복수의 객체에 대한 외곽선을 생성하는 것을 특징으로 한다.The step of specifying the outline is to select a plurality of point clouds with a certain depth among the points present inside the designated outline based on point cloud data acquired from lidar at the same time as the image. identifying, receiving a plurality of objects selected from the plurality of point clouds by the operator, and generating outlines for the selected plurality of objects based on the identified plurality of point clouds.

상기 외곽선을 지정하는 단계는 상기 복수의 객체를 포함하는 일부 영역을 바운딩 박스(bounding box)로 설정하고, 상기 바운딩 박스 내측 영역에서 객체의 엣지를 추출하고, 추출된 엣지를 기준으로 객체(object)와 배경(background)을 구분하고, 상기 배경을 삭제하여 상기 복수의 객체의 외곽선을 지정하는 것을 특징으로 한다.The step of specifying the outline includes setting a partial area including the plurality of objects as a bounding box, extracting the edge of the object from the area inside the bounding box, and dividing the object based on the extracted edge. It is characterized by distinguishing between a background and a background, deleting the background, and specifying an outline of the plurality of objects.

상기 경계선을 지정하는 단계는 상기 추출된 엣지를 기초로 상기 복수의 객체에 대한 외곽선 내에서 경계선을 식별하는 것을 특징으로 한다.The step of specifying the boundary line is characterized by identifying a boundary line within the outline of the plurality of objects based on the extracted edges.

상기 경계선을 지정하는 단계는 상기 작업자로부터 상기 복수의 객체에 대한 외곽선 내부에 위치한 복수의 점을 입력받고, 상기 입력받은 복수의 점을 연결하여 상기 경계선을 생성하는 것을 특징으로 한다.The step of specifying the boundary line is characterized in that a plurality of points located inside the outline of the plurality of objects are input from the operator, and the boundary line is created by connecting the plurality of input points.

상기 경계선을 지정하는 단계는 상기 이미지와 동시에 라이다로부터 획득된 점군 데이터를 기초로, 상기 지정된 외곽선 내부에 존재하는 점들 중 거리가 일정 범위를 갖는 복수의 점군을 식별하고, 상기 복수의 점군 사이의 경계선을 상기 복수의 객체 사이의 경계선으로 지정하는 것을 특징으로 한다.The step of specifying the boundary line identifies a plurality of point clouds with a distance within a certain range among the points present inside the designated outline based on the point cloud data acquired from the lidar simultaneously with the image, and the distance between the plurality of point clouds is identified. It is characterized in that the boundary line is designated as a boundary line between the plurality of objects.

상기 경계선을 지정하는 단계는 상기 지정된 외곽선 내부에 위치한 픽셀(pixel)의 RGB(Red, Green, Blue) 값을 기초로, 사전 설정된 값보다 유사한 RGB 값을 갖는 그룹을 생성하고, 생성된 그룹을 각각 객체로 인식하고, 상기 인식된 객체의 경계선을 생성하는 것을 특징으로 한다.The step of specifying the boundary line generates groups with RGB values similar to preset values based on the RGB (Red, Green, Blue) values of pixels located inside the designated outline, and each created group is It is characterized by recognizing it as an object and creating a boundary line of the recognized object.

상기 경계선을 지정하는 단계는 상기 이미지와 동시에 라이다로부터 획득된 점군 데이터를 기초로, 상기 지정된 외곽선 내부에 존재하는 점들 중 거리가 일정 범위를 갖는 복수의 점군을 식별하고, 상기 작업자로부터 상기 복수의 점군 중 하나의 객체를 선택받고, 상기 선택받은 객체의 점군을 기초로 상기 경계선을 생성하는 것을 특징으로 한다.The step of specifying the boundary line identifies a plurality of point clouds having a certain distance within a certain range among the points present inside the designated outline based on the point cloud data acquired from the lidar simultaneously with the image, and the plurality of point clouds are identified from the operator. One object from a point cloud is selected, and the boundary line is generated based on the point cloud of the selected object.

상기 경계선을 지정하는 단계는 상기 지정된 외곽선 내부의 엣지를 추출하고, 상기 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 상기 작업자로부터 상기 식별된 객체 중 하나의 객체를 선택받고, 상기 추출된 엣지를 기초로 상기 경계선을 생성하는 것을 특징으로 한다.The step of specifying the boundary line includes extracting an edge inside the designated outline, identifying at least one object based on the extracted edge, selecting one of the identified objects from the operator, and selecting the extracted object. The boundary line is generated based on an edge.

상기 경계선을 지정하는 단계는 상기 생성된 경계선을 따라 사전 설정된 간격을 갖는 복수의 점을 생성하고, 상기 작업자의 제어에 따라 상기 복수의 점 중 적어도 하나의 점을 이동시켜 상기 경계선을 수정하는 것을 특징으로 한다.The step of specifying the boundary line generates a plurality of points having a preset interval along the created boundary line, and modifies the boundary line by moving at least one of the plurality of points under the control of the operator. Do it as

상술한 바와 같은 기술적 과제를 달성하기 위하여, 본 발명은 이미지 속에 포함된 중첩된 객체를 용이하게 지정할 수 있는, 경계선 지정을 통한 어노테이션 방법을 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램을 제안한다. 상기 컴퓨터 프로그램은 메모리(memory); 및 상기 메모리에 상주된 명령어를 처리하는 프로세서(processor)를 포함하여 구성된 컴퓨팅 장치와 결합될 수 있다. 그리고, 상기 컴퓨터 프로그램은 상기 프로세서가, 작업자의 제어에 따라, 인공지능(Artificial Intelligence, AI) 학습을 위한 어노테이션(annotation) 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체의 외곽선을 지정하는 단계, 상기 프로세서가, 상기 지정된 외곽선 내에서 상기 복수의 객체 사이의 경계선을 지정하는 단계 및 상기 프로세서가, 상기 지정된 경계선을 기준으로 구획된 복수의 영역을 기준으로 상기 복수의 객체를 각각 식별하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.In order to achieve the technical problems described above, the present invention proposes a computer program recorded on a recording medium to implement an annotation method through boundary designation that can easily specify overlapping objects included in an image. The computer program includes memory; and a processor that processes instructions resident in the memory. In addition, the computer program generates the outlines of a plurality of objects arranged to overlap each other included in the image that is the subject of annotation work for artificial intelligence (AI) learning, according to the control of the operator. A step of designating, wherein the processor designates a boundary line between the plurality of objects within the designated outline, and wherein the processor selects each of the plurality of objects based on a plurality of areas divided based on the designated boundary line. In order to execute the identification step, it may be a computer program recorded on a recording medium.

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

본 발명의 실시예들에 따르면, 어노테이션을 수행함에 있어서, 이미지 내에 포함된 서로 중첩되어 배치되는 복수의 객체를 대상으로, 복수의 객체 전체에 대한 외곽선을 지정한 후에, 각 객체의 경계선을 지정하여 각 객체를 구분함으로써, 중첩되어 배치되는 개체를 용이하게 식별할 수 있다.According to embodiments of the present invention, when performing annotation, an outline for a plurality of objects is specified for a plurality of objects included in an image and arranged to overlap each other, and then the boundary line of each object is designated. By distinguishing objects, objects placed overlapping can be easily identified.

본 발명의 효과들은 이상에서 언급한 효과로 제한되지 아니하며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 본 발명이 속한 기술분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.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은 본 발명의 일 실시예에 따른 데이터 분류 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 다른 실시예에 따른 데이터 분류 방법을 설명하기 위한 순서도이다.
도 8는 본 발명의 일 실시예에 따른 작업 비용 예측 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 어노테이션 방법을 설명하기 위한 순서도이다.
도 10 내지 도 16은 본 발명의 일 실시예에 따른 어노테이션 방법을 설명하기 위한 예시도이다.
도 17은 본 발명의 다른 실시예에 따른 어노테이션 방법을 설명하기 위한 순서도이다.
도 18 내지 도 20은 본 발명의 다른 실시예에 따른 어노테이션 방법을 설명하기 위한 예시도이다.
도 21은 본 발명의 일 실시예에 따른 데이터 분류 방법을 설명하기 위한 예시도이다.
도 22는 본 발명의 다른 실시예에 따른 데이터 분류 방법을 설명하기 위한 예시도이다.
도 23 및 도 24는 본 발명의 또 다른 실시예에 따른 어노테이션 방법을 설명하기 위한 예시도이다.
도 25 및 도 26은 중첩된 복수 개의 객체의 외곽선을 설명하기 위한 예시도이다.
1 is a configuration diagram of an artificial intelligence learning system according to an embodiment of the present invention.
Figure 2 is a logical configuration diagram of a learning data generating device according to an embodiment of the present invention.
Figure 3 is a hardware configuration diagram of a learning data generating device according to an embodiment of the present invention.
Figure 4 is a logical configuration diagram of an annotation device according to an embodiment of the present invention.
Figure 5 is a hardware configuration diagram of an annotation device according to an embodiment of the present invention.
Figure 6 is a flowchart for explaining a data classification method according to an embodiment of the present invention.
Figure 7 is a flowchart for explaining a data classification method according to another embodiment of the present invention.
Figure 8 is a flowchart illustrating a method for predicting work costs according to an embodiment of the present invention.
Figure 9 is a flowchart for explaining an annotation method according to an embodiment of the present invention.
10 to 16 are exemplary diagrams for explaining an annotation method according to an embodiment of the present invention.
Figure 17 is a flowchart for explaining an annotation method according to another embodiment of the present invention.
18 to 20 are exemplary diagrams for explaining an annotation method according to another embodiment of the present invention.
Figure 21 is an example diagram for explaining a data classification method according to an embodiment of the present invention.
Figure 22 is an example diagram for explaining a data classification method according to another embodiment of the present invention.
Figures 23 and 24 are exemplary diagrams for explaining an annotation method according to another embodiment of the present invention.
Figures 25 and 26 are example diagrams for explaining outlines of a plurality of overlapping objects.

본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.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.

한편, 학습 데이터의 수집은 프로젝트(project) 단위로 진행된다. 이때, 각 프로젝트의 컨트롤 타워는 데이터 수집을 위한 장치가 설치된 복수의 차량으로부터 데이터를 수신하게 된다.Meanwhile, the collection of learning data is carried out on a project basis. At this time, the control tower of each project receives data from multiple vehicles equipped with data collection devices.

이때, 복수의 차량으로부터 수집된 데이터를 업로드 받는 과정에서는 각 차량으로부터 동일한 이미지가 중복되어 업로드 되거나, 서로 다른 차량으로부터 동일한 이미지가 중복되어 업로드 되는 문제점이 있었다.At this time, in the process of uploading data collected from multiple vehicles, there was a problem in which the same image was uploaded repeatedly from each vehicle or the same image was uploaded repeatedly from different vehicles.

또한, 각 차량의 관리자는 컨트롤 타워로부터 수집 조건이 명시된 가이드에 따라 데이터를 수집하고, 수집된 데이터를 업로드하게 된다. 이때, 각 차량의 관리자의 주관인 관점, 수집 환경, 수집 장치의 오류 둥에 따라, 기준에 적합하지 않은 데이터들이 무작위로 업로드 되는 문제점이 있었다.In addition, the manager of each vehicle collects data from the control tower according to a guide specifying collection conditions and uploads the collected data. At this time, there was a problem in which data that did not meet the standards was randomly uploaded depending on the subjective viewpoint of the manager of each vehicle, the collection environment, and errors in the collection device.

위와 같은 문제점을 방지하기 위하여, 컨트롤 타워는 업로드 된 데이터를 수동으로 검수하기 위한 검수자를 배치하고 있다. 그러나, 검수자를 배치함에 따른 불필요한 리소스 낭비를 방지할 수 방안이 필요한 실정이다.To prevent the above problems, the control tower deploys inspectors to manually inspect the uploaded data. However, there is a need for a method to prevent unnecessary waste of resources due to deploying inspectors.

또한, 수많은 작업자가 수많은 어노테이션 작업을 수행해야하는 프로젝트의 전체 작업 비용을 산출하는 것은 어려운 작업이다. 종래에는 어노테이션 작업에 관한 프로젝트의 전체 작업 비용은 단순히 작업 대상이 되는 데이터의 개수, 또는 담당자의 직관에 따라 예측된 작업의 난이도에 의존하여 산출되고 있는 문제점이 있었다.Additionally, estimating the overall cost of a project that requires numerous workers to perform numerous annotation tasks is a difficult task. In the past, there was a problem in that the total work cost of a project related to annotation work was calculated simply depending on the number of data to be worked on or the difficulty of the work predicted according to the intuition of the person in charge.

그리고, 이미지 내에 객체가 중첩되어 배치되는 경우, 폴리곤 기법으로 각각의 객체를 식별하기 위해서는 이미지를 확대하여 경계선의 동일한 지점에 이중으로 점을 생성해야 한다. 이때, 경계선의 동일한 지점에 정확히 점을 생성하지 않는 경우, 중첩된 객체와 객체 사이에 공간이 발생되는 문제점이 있었다.Also, when objects are placed overlapping in an image, in order to identify each object using the polygon technique, the image must be enlarged and a double point must be created at the same point of the boundary line. At this time, if a point was not created exactly at the same point of the boundary line, there was a problem that a space was created between the overlapping objects.

이러한 한계를 극복하고자, 본 발명은 인공지능의 기계 학습용 데이터를 수집하고, 수집된 데이터 중 불필요한 데이터를 정제할 수 있는 다양한 수단을 제안하고자 한다.In order to overcome these limitations, the present invention seeks to propose various means for collecting data for artificial intelligence machine learning and purifying unnecessary data among the collected data.

또한, 본 발명은 인공지능 학습용 데이터의 어노테이션 작업에 관한 프로젝트의 전체 작업 비용을 합리적으로 예측할 수 있는 다양한 수단을 제안하고자 한다.In addition, the present invention seeks to propose various means for reasonably predicting the overall work cost of a project related to annotation work on artificial intelligence learning data.

그리고, 본 발명은 인공지능 학습용 데이터를 어노테이션함에 있어서, 이미지 속에 포함된 중첩된 객체를 용이하게 지정할 수 있는 다양한 수단을 제공하고자 한다.Additionally, the present invention seeks to provide various means for easily specifying overlapping objects included in images when annotating artificial intelligence learning data.

도 1은 본 발명의 일 실시예에 따른 인공지능 학습 시스템의 구성도이다.1 is a configuration diagram of an artificial intelligence learning system according to an embodiment of the present invention.

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

이와 같은, 일 실시예에 따른 인공지능 학습 시스템의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.Since the components of the artificial intelligence learning system according to this embodiment 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)을 기계 학습시키기 위한 데이터를 수집하기 위하여, 차량에 설치된 라이다(lidar), 카메라(camera), 레이더(radar), 초음파 센서(ultrasonic sensor), 레인 센서(rain sensor), 위치 측정 센서 및 속도 감지 센서 중 하나 이상으로부터 실시간으로 데이터를 수집하는 장치이다.To describe each component, the learning data collection device 100 includes a lidar and a camera (lidar) installed in the vehicle to collect data for machine learning artificial intelligence (AI) that can be used for autonomous driving. It is a device that collects data in real time from one or more of a camera, radar, ultrasonic sensor, rain sensor, position measurement sensor, and speed detection sensor.

이러한, 학습 데이터 수집 장치(100)는 인공지능의 기계 학습을 위한 데이터의 수집을 학습 데이터 생성 장치(100)로부터 요청받을 수 있다. 이때, 학습 데이터 수집 장치(100)는 데이터의 수집 조건을 포함하는 가이드 정보를 학습 데이터 생성 장치(100)로부터 수신할 수 있다.The learning data collection device 100 may receive a request from the learning data generation device 100 to collect data for machine learning of artificial intelligence. At this time, the learning data collection device 100 may receive guide information including data collection conditions from the learning data generating device 100.

여기서, 가이드 정보는 수집 조건인 객체(object)의 클래스(class), 데이터 확장자(filename extension), 이미지 해상도(resolution) 등을 포함할 수 있다. 이때, 학습 데이터 수집 장치(100)는 가이드 정보를 샘플 이미지를 통해 제공받을 수 있다.Here, the guide information may include the object class, data extension, and image resolution, which are collection conditions. At this time, the learning data collection device 100 may receive guide information through a sample image.

이러한, 학습 데이터 수집 장치(100)의 제어 대상이자, 차량에 설치되어 기계 학습용 데이터를 획득, 촬영 또는 감지하는 센서의 종류에는 라이다(lidar), 카메라(camera), 레이더(radar), 초음파 센서(ultrasonic sensor), 레인 센서(rain sensor), 위치 측정 센서 및 속도 감지 센서 중 하나 이상이 포함될 수 있으나, 이에 한정되는 것은 아니다. 또한, 학습 데이터 수집 장치(100)의 제어 대상이자, 차량에 설치되어 기계 학습용 데이터를 획득, 촬영 또는 감지하는 센서는 종류별로 하나씩 구비되는 것으로 한정되지 아니하며, 동일한 종류의 센서라 할지라도 복수 개로 구비될 수 있다.The types of sensors that are controlled by the learning data collection device 100 and installed in the vehicle to acquire, photograph, or detect data for machine learning include lidar, camera, radar, and ultrasonic sensors. One or more of an ultrasonic sensor, a rain sensor, a position measurement sensor, and a speed sensor may be included, but are not limited thereto. In addition, the sensor that is the control object of the learning data collection device 100 and is installed in the vehicle to acquire, photograph, or detect data for machine learning is not limited to being provided one for each type, and may be provided in plural even for the same type of sensor. It can be.

다음 구성으로, 학습 데이터 생성 장치(200)는 차량의 자율주행에 사용될 수 있는 인공지능(AI)을 기계 학습시키기 위한 데이터를 설계 및 생성하는데 사용될 수 있는 장치이다.In the following configuration, the learning data generating device 200 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.

특징적으로, 본 발명의 일 실시예에 따른 학습 데이터 생성 장치(200)는 인공지능(AI)의 기계 학습(machine learning)을 위한 이미지의 수집을 적어도 하나의 학습 데이터 수집 장치(100)에 요청하고, 적어도 하나의 학습 데이터 수집 장치(100)로부터 이미지들을 수신할 수 있다. 학습 데이터 생성 장치(200)는 수신한 이미지들의 컬러 정보를 추출하고, 이미지들 사이의 컬러 정보를 기준으로 노이즈 이미지를 분류할 수 있다.Characteristically, the learning data generating device 200 according to an embodiment of the present invention requests at least one learning data collection device 100 to collect images for machine learning of artificial intelligence (AI), and , images may be received from at least one learning data collection device 100. The learning data generating device 200 may extract color information from received images and classify noise images based on color information between images.

또한, 본 발명의 다른 실시예에 따른 학습 데이터 생성 장치(200)는 인공지능의 기계 학습을 위한 이미지의 수집 조건을 포함하는 가이드 정보를 적어도 하나의 학습 데이터 수집 장치(100)에 전송하고, 적어도 하나의 학습 데이터 수집 장치(100)로부터 이미지들을 수신할 수 있다. 학습 데이터 생성 장치(200)는 수집 조건과 대응하는 이미지 정보를 이미지들로부터 추출하고, 추출한 이미지 정보를 가이드 정보와 비교하여, 수집 환경에 따른 노이즈 이미지를 분류할 수 있다.In addition, the learning data generation device 200 according to another embodiment of the present invention transmits guide information including image collection conditions for machine learning of artificial intelligence to at least one learning data collection device 100, and at least Images can be received from one learning data collection device 100. The learning data generating device 200 may extract image information corresponding to collection conditions from images, compare the extracted image information with guide information, and classify noise images according to the collection environment.

또한, 본 발명의 다른 실시예에 따른 학습 데이터 생성 장치(200)는 인공지능의 기계 학습을 위한 이미지의 수집 조건을 포함하는 가이드 정보를 적어도 하나의 학습 데이터 수집 장치(100)에 전송하고, 적어도 하나의 학습 데이터 수집 장치(100)로부터 이미지들을 수신할 수 있다. 학습 데이터 생성 장치(200)는 수집 조건과 대응하는 이미지 정보를 이미지들로부터 추출하고, 추출한 이미지 정보를 가이드 정보와 비교하여, 학습 데이터 수집 장치(100)의 물리적 요인에 따른 노이즈 이미지를 분류할 수 있다.In addition, the learning data generation device 200 according to another embodiment of the present invention transmits guide information including image collection conditions for machine learning of artificial intelligence to at least one learning data collection device 100, and at least Images can be received from one learning data collection device 100. The learning data generation device 200 extracts image information corresponding to the collection conditions from the images, compares the extracted image information with guide information, and classifies noise images according to physical factors of the learning data collection device 100. there is.

그리고, 본 발명의 또 다른 실시예에 따른 학습 데이터 생성 장치(200)는 인공지능 학습을 위하여 수행 예정인 어노테이션(annotation) 작업과 관련된 프로젝트를 수행하기 위한 적어도 하나의 샘플 데이터를 수신하고, 기 수행된 복수의 프로젝트에 포함된 기존 데이터를 상기 샘플 데이터와 비교하고, 샘플 데이터와의 유사도가 사전 설정된 값보다 높은 기존 데이터가 포함된 적어도 하나의 프로젝트를 추출할 수 있다. 학습 데이터 생성 장치(200)는 추출된 적어도 하나의 프로젝트를 기초로 수행 예정인 어노테이션 작업과 관련된 프로젝트를 수행하기 위하여 요구되는 전체 작업 비용을 예측할 수 있다.In addition, the learning data generating device 200 according to another embodiment of the present invention receives at least one sample data for performing a project related to annotation work scheduled to be performed for artificial intelligence learning, and Existing data included in a plurality of projects can be compared with the sample data, and at least one project containing existing data whose similarity to the sample data is higher than a preset value can be extracted. The learning data generating device 200 may predict the total work cost required to perform a project related to annotation work to be performed based on at least one extracted project.

이와 같은 특징을 가지는, 학습 데이터 생성 장치(200)는 학습 데이터 수집 장치(100), 어노테이션 장치(300) 및 인공지능 학습 장치(400)와 데이터를 송수신하고, 송수신된 데이터를 기초로 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다. 예를 들어, 학습 데이터 생성 장치(200)는 데스크탑(desktop), 워크스테이션(workstation) 또는 서버(server)와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.The learning data generation device 200, which has these characteristics, transmits and receives data with the learning data collection device 100, the annotation device 300, and the artificial intelligence learning device 400, and performs calculations based on the transmitted and received data. Any device that can do this is acceptable. For example, the learning data generating device 200 may be any one of fixed computing devices such as a desktop, workstation, or server, but is not limited thereto.

상술한 바와 같은, 학습 데이터 생성 장치(200)에 대한 구체적인 구성 및 동작에 대해서는 추후 도 2 및 도 3을 참조하여 설명하기로 한다.As described above, the specific configuration and operation of the learning data generating device 200 will be described later with reference to FIGS. 2 and 3.

다음 구성으로, 어노테이션 장치(300)는 학습 데이터 생성 장치(200)로부터 제공된 이미지에 대하여 어노테이션을 수행하는데 사용될 수 있는 장치이다.In the following configuration, the annotation device 300 is a device that can be used to annotate images provided from the learning data generating device 200.

이와 같은, 어노테이션 장치(300)의 사용자는 라벨러(labeler), 리뷰어(reviewer), 인스펙터(inspector) 및 트레이니(trainee)로 구분될 수 있다.As such, users of the annotation device 300 may be divided into labelers, reviewers, inspectors, and trainees.

여기서, 라벨러는 이미지를 대상으로 어노테이션 작업을 수행하는 자에 해당된다. 리뷰어는 상기 어노테이션 작업이 수행된 이미지를 시각적으로 검증하는 자에 해당된다. 인스펙터는 상기 어노테이션 작업 결과물을 스크립트(script)를 이용하여 검증하는 자에 해당된다. 그리고, 트레이니는 상기 어노테이션 작업을 수행하기 위한 교육을 받는 자에 해당된다.Here, the labeler is a person who performs annotation work on images. A reviewer is a person who visually verifies the image on which the annotation work has been performed. An inspector is a person who verifies the annotation work results using a script. Additionally, a trainer is a person who receives training to perform the annotation task.

구체적으로, 어노테이션 장치(300)는 라벨러에 해당되는 사용자의 제어에 따라 다음과 같이 어노테이션 작업을 수행할 수 있다.Specifically, the annotation device 300 can perform annotation work as follows under the control of the user corresponding to the labeler.

어노테이션 장치(300)는 사용자의 제어에 따라, 학습 데이터 생성 장치(200)로부터 수신된 이미지를 출력할 수 있다. The annotation device 300 may output images received from the learning data generating device 200 according to user control.

어노테이션 장치(300)는 사용자의 제어에 따라, 툴을 선택할 수 있다. 여기서, 툴(tool)은 이미지 속에 포함되어 있는 하나 이상의 객체를 특정하기 위한 도구이다. 어노테이션 장치(300)는 선택된 툴을 이용한 사용자의 제어에 따라, 좌표를 입력 받을 수 있다. 어노테이션 장치(300)는 입력된 좌표를 기초로 객체를 식별할 수 있다.The annotation device 300 can select a tool according to user control. Here, the tool is a tool for specifying one or more objects included in the image. The annotation device 300 can receive coordinates input according to user control using a selected tool. The annotation device 300 can identify objects based on input coordinates.

한편, 본 발명의 일 실시예에 따른 어노테이션 장치(300)는 작업자가 이미지 내에 포함된 객체의 외곽선을 따라 복수의 점을 생성하여 객체를 식별하는 폴리곤(polygon) 기법을 통해 이미지 속에 포함된 하나 이상의 객체를 식별할 수 있다. 하지만, 이에 한정된 것은 아니고 어노테이션 장치(300)는 바운딩 박스(bounding box), 폴리라인(polyline), 포인트(point), 큐보이드(cuboid), 시맨틱 세그멘티이션(semantic segmentation) 등의 기법을 사용할 수도 있다.Meanwhile, the annotation device 300 according to an embodiment of the present invention uses a polygon technique in which an operator identifies an object by creating a plurality of points along the outline of an object included in the image. Objects can be identified. However, it is not limited to this, and the annotation device 300 may use techniques such as bounding box, polyline, point, cuboid, and semantic segmentation. there is.

특히, 본 발명의 일 실시예에 따른 어노테이션 장치(300)는 작업자의 제어에 따라, 인공지능 학습을 위한 어노테이션 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체 중 제1 객체의 외곽선을 지정하고, 제1 객체와 중첩되어 배치된 제2 객체 사이의 경계선을 지정하고, 경계선을 상기 제2 객체의 외곽선의 일부로 설정할 수 있다. 어노테이션 장치(300)는 설정된 경계선을 기준으로 제2 객체의 외곽선을 지정할 수 있다.In particular, the annotation device 300 according to an embodiment of the present invention, under the control of the operator, selects a first object among a plurality of objects arranged to overlap each other included in an image that is the target of annotation work for artificial intelligence learning. An outline can be designated, a borderline between a first object and a second object arranged to overlap can be designated, and the borderline can be set as part of the outline of the second object. The annotation device 300 can specify the outline of the second object based on the set boundary line.

또한, 본 발명의 다른 실시예에 따른 어노테이션 장치(300)는 작업자의 제어에 따라, 인공지능 학습을 위한 어노테이션 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체의 외곽선을 지정하고, 지정된 외곽선 내에서 복수의 객체 사이의 경계선을 지정할 수 있다. 어노테이션 장치(300)는 지정된 경계선을 기준으로 구획된 복수의 영역을 기준으로 복수의 객체를 각각 식별할 수 있다.In addition, the annotation device 300 according to another embodiment of the present invention specifies the outlines of a plurality of objects arranged to overlap each other included in the image that is the target of the annotation task for artificial intelligence learning, under the control of the operator. , you can specify boundaries between multiple objects within the designated outline. The annotation device 300 can identify a plurality of objects based on a plurality of areas divided based on a designated boundary line.

어노테이션 장치(300)는 특정된 객체의 속성 정보를 설정할 수 있다. 여기서, 객체의 속성 정보는 인공지능(AI) 학습의 대상이 되는 객체의 속성을 지정하기 위한 정보이다. 이와 같은, 객체의 속성 정보에는 어노테이션의 종류(type), 클래스 명(class), 분류 항목(tags), 객체의 잘림 여부(truncated), 대분류, 소분류 또는 상위 레벨(instance upper)에 관한 정보가 포함될 수 있으며, 이에 한정되는 것은 아니다.The annotation device 300 can set attribute information of a specified object. Here, the object property information is information for specifying the properties of the object that is the target of artificial intelligence (AI) learning. In this way, the object property information includes information about the annotation type (type), class name (class), classification items (tags), whether the object is truncated (truncated), major classification, small classification, or upper level (instance upper). It can be done, but is not limited to this.

어노테이션 장치(300)는 사용자에 의해 설정된 객체의 위치 및 크기에 따른 좌표와, 설정된 속성 정보를 포함하여 어노테이션의 작업 결과물을 생성할 수 있다. 이와 같은, 작업 결과물은 JSON(Java Script Object Notation) 파일 형식을 가질 수 있으나, 이에 한정되는 것은 아니다.The annotation device 300 may generate an annotation work result including coordinates according to the location and size of the object set by the user and set attribute information. Such work results may have a JSON (Java Script Object Notation) file format, but are not limited thereto.

그리고, 어노테이션 장치(300)는 생성된 어노테이션 작업 결과물을 학습 데이터 생성 장치(200)에 전송할 수 있다.And, the annotation device 300 may transmit the generated annotation work result to the learning data generation device 200.

한편, 어노테이션 장치(300)와 관련한 구체적인 설명은 도 4 및 도 5를 참조하여 후술하도록 한다.Meanwhile, a detailed description regarding the annotation device 300 will be described later with reference to FIGS. 4 and 5.

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

예를 들어, 어노테이션 장치(300)는 데스크탑(desktop), 워크스테이션(workstation) 또는 서버(server)와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되지 아니하고, 스마트폰(smart phone), 랩탑(laptaop), 태블릿(tablet), 패블릿(phablet), 휴대용 멀티미디어 재생장치(Portable Multimedia Player, PMP), 개인용 휴대 단말기(Personal Digital Assistants, PDA) 또는 전자책 단말기(E-book reader)과 같은 이동식 컴퓨팅 장치 중 어느 하나가 될 수도 있다.For example, the annotation device 300 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.

다음 구성으로, 인공지능 학습 장치(400)는 인공지능 학습용 데이터를 기초로, 인공지능의 기계 학습을 수행하는데 사용될 수 있는 장치이다.In the following configuration, the artificial intelligence learning device 400 is a device that can be used to perform machine learning of artificial intelligence based on artificial intelligence learning data.

구체적으로, 인공지능 학습 장치(400)는 수행 예정인 프로젝트와 관련된 샘플 데이터를 학습 데이터 생성 장치(200)에 전송할 수 있다. 여기서, 샘플 데이터는 인공지능 학습을 위하여 수행 예정인 어노테이션 작업과 관련된 샘플이다. 이와 같은, 샘플 데이터는 어노테이션 작업의 대상이 되는 이미지이거나, 또는 어노테이션 작업 결과물이 될 수 있으며, 이에 한정되는 것도 아니다.Specifically, the artificial intelligence learning device 400 may transmit sample data related to a project to be performed to the learning data generating device 200. Here, sample data is a sample related to annotation work scheduled to be performed for artificial intelligence learning. Such sample data may be an image that is the target of annotation work, or may be an annotation work result, but is not limited thereto.

인공지능 학습 장치(400)는 학습 데이터 생성 장치(200)로부터 수행 예정인 프로젝트를 수행하기 위하여 요구되는 전체 작업 비용을 수신할 수 있다. 인공지능 학습 장치(400)는 수신된 전체 작업 비용을 출력할 수 있다.The artificial intelligence learning device 400 may receive the total work cost required to perform the project scheduled to be performed from the learning data generating device 200. The artificial intelligence learning device 400 can output the total received job cost.

이러한, 전체 작업 비용은 인공지능 학습 장치(400)의 운영 주체와 학습 데이터 생성 장치(200)의 운영 주체 사이에 프로젝트 수행과 관련된 계약을 체결하는데 활용될 수 있다.This total work cost can be utilized to conclude a contract related to project performance between the operating entity of the artificial intelligence learning device 400 and the operating entity of the learning data generating device 200.

인공지능 학습 장치(400)의 운영 주체와 학습 데이터 생성 장치(200)의 운영 주체 사이에 프로젝트 수행과 관련된 계약이 체결된 이후, 인공지능 학습 장치(400)는 학습 데이터 생성 장치(200)로부터 패키징 된 어노테이션 작업 결과물을 수신할 수 있다. 그리고, 인공지능 학습 장치(400)는 수신된 어노테이션 작업 결과물을 기반으로, 인공지능(AI)의 기계 학습을 수행할 수 있다.After a contract related to project performance is concluded between the operating entity of the artificial intelligence learning device 400 and the operating entity of the learning data generating device 200, the artificial intelligence learning device 400 is packaged from the learning data generating device 200. You can receive the annotation work results. And, the artificial intelligence learning device 400 can perform artificial intelligence (AI) machine learning based on the received annotation work results.

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

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

예를 들어, 공용 유선 통신망에는 이더넷(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.

이하, 상술한 바와 같은, 학습 데이터 생성 장치(200)의 구성에 대하여 보다 구체적으로 설명하기로 한다.Hereinafter, the configuration of the learning data generating device 200 as described above will be described in more detail.

도 2는 본 발명의 일 실시예에 따른 학습 데이터 생성 장치의 논리적 구성도이다.Figure 2 is a logical configuration diagram of a learning data generating device according to an embodiment of the present invention.

도 2를 참조하면, 학습 데이터 생성 장치(200)는 통신부(205), 입출력부(210), 데이터 설계부(215), 데이터 수집부(220), 데이터 전처리부(225), 데이터 납품부(230) 및 저장부(235)를 포함하여 구성될 수 있다.Referring to FIG. 2, the learning data generating device 200 includes a communication unit 205, an input/output unit 210, a data design unit 215, a data collection unit 220, a data preprocessing unit 225, and a data delivery unit 230. ) and a storage unit 235.

이와 같은, 학습 데이터 생성 장치(200)의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.Since the components of the learning data generating 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 integrated with each other in the actual physical environment. It could be implemented separately.

구체적으로, 통신부(205)는 인공지능(AI)의 기계 학습을 위한 이미지의 수집 조건을 포함하는 가이드 정보를 적어도 하나의 학습 데이터 수집 장치에 전송할 수 있다.Specifically, the communication unit 205 may transmit guide information including image collection conditions for machine learning of artificial intelligence (AI) to at least one learning data collection device.

또한, 통신부(205)는 학습 데이터 수집 장치(100)로부터, 카메라(camera)에 의해 촬영된 이미지, 라이다(lidar)로부터 획득된 점군 데이터, 위치 측정 센서 및 속도 감지 센서로부터 감지된 데이터를 수신할 수 있다.In addition, the communication unit 205 receives images captured by a camera, point cloud data obtained from a lidar, and data detected from a position measurement sensor and a speed detection sensor from the learning data collection device 100. can do.

또한, 통신부(205)는 어노테이션 작업의 대상이 되는 하나 이상의 이미지를 어노테이션 장치(300)에 전송할 수 있다. 또한, 통신부(205)는 어노테이션 장치(300)로부터 어노테이션 작업 결과물을 수신할 수 있다.Additionally, the communication unit 205 may transmit one or more images that are the subject of annotation work to the annotation device 300. Additionally, the communication unit 205 may receive annotation work results from the annotation device 300.

또한, 통신부(205)는 인공지능 학습 장치(400)로부터 적어도 하나의 샘플 데이터를 수신할 수 있다. 통신부(205)는 데이터 설계부(215)에 의해 예측되거나, 또는 사용자로부터 입력된, 수행 예정인 프로젝트를 수행하기 위하여 요구되는 전체 작업 비용을 인공지능 학습 장치(400)에 전송할 수 있다.Additionally, the communication unit 205 may receive at least one sample data from the artificial intelligence learning device 400. The communication unit 205 may transmit to the artificial intelligence learning device 400 the total work cost required to perform the project to be performed, which is predicted by the data design unit 215 or input by the user.

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

구체적으로, 입출력부(210)는 사용자로부터 학습 데이터 수집 장치(100)의 수집 조건을 포함하는 가이드 정보를 입력받을 수 있다. 가이드 정보에는 학습 목적, 학습 기간, 학습에 필요한 이미지의 수, 이미지에서 식별하고자 하는 객체의 속성, 이미지의 해상도, 이미지의 확장자 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.Specifically, the input/output unit 210 may receive guide information including collection conditions of the learning data collection device 100 from the user. Guide information may include, but is not limited to, the learning purpose, learning period, number of images required for learning, properties of the object to be identified in the image, image resolution, image extension, etc.

또한, 입출력부(210)는 사용자로부터 샘플 데이터를 입력 받을 수 있다. 또한, 입출력부(210)는 사용자로부터 분해 구성요소, 가중치 및 가이드 정보를 입력 받을 수 있다. 여기서, 분해 구성요소는 어노테이션 작업 결과물을 구성하고 있는 요소들 중에서, 프로젝트의 전체 작업 비용을 예측하기 위해 사용되는 요소이다. 예를 들어, 분해 구성요소에는 클래스(class)와 툴(tool)이 포함될 수 있으나, 이에 한정되는 것은 아니다.Additionally, the input/output unit 210 can receive sample data from the user. Additionally, the input/output unit 210 may receive input of decomposition components, weights, and guide information from the user. Here, the decomposition component is an element used to predict the overall work cost of the project among the elements that make up the annotation work result. For example, decomposition components may include, but are not limited to, classes and tools.

입출력부(210)는 데이터 설계부(215)에 의해 예측된, 수행 예정인 프로젝트를 수행하기 위하여 요구되는 전체 작업 비용을 출력할 수 있다. 입출력부(210)는 사용자로부터 수정된 전체 작업 비용을 입력 받을 수 있다.The input/output unit 210 may output the total work cost required to perform the project to be performed, predicted by the data design unit 215. The input/output unit 210 may receive a revised total job cost input from the user.

다음 구성으로, 데이터 설계부(215)는 수행 예정인 프로젝트를 수행하기 위하여 요구되는 전체 작업 비용을 예측하여, 인공지능 학습 장치(400)에 제공할 수 있다.With the following configuration, the data design unit 215 can predict the total work cost required to perform the project scheduled to be performed and provide the estimate to the artificial intelligence learning device 400.

구체적으로, 데이터 설계부(215)는 인공지능 학습을 위하여 수행 예정인 어노테이션 작업과 관련된 프로젝트를 수행하기 위한 적어도 하나의 샘플 데이터를 인공지능 학습 장치(400)로부터 수신할 수 있다. 여기서, 샘플 데이터는 인공지능(AI) 학습을 위하여 수행 예정인 어노테이션 작업과 관련된 샘플이다. 이와 같은, 샘플 데이터는 어노테이션 작업의 대상이 되는 이미지이거나, 또는 어노테이션 작업 결과물이 될 수 있으며, 이에 한정되는 것도 아니다.Specifically, the data design unit 215 may receive at least one sample data from the artificial intelligence learning device 400 to perform a project related to annotation work scheduled to be performed for artificial intelligence learning. Here, the sample data is a sample related to annotation work scheduled to be performed for artificial intelligence (AI) learning. Such sample data may be an image that is the target of annotation work, or may be an annotation work result, but is not limited thereto.

데이터 설계부(215)는 기 수행된 복수의 프로젝트에 포함된 기존 데이터를 샘플 데이터와 비교하고, 샘플 데이터와의 유사도가 사전 설정된 값보다 높은 기존 데이터가 포함된 적어도 하나의 프로젝트를 추출할 수 있다.The data design unit 215 may compare existing data included in a plurality of previously performed projects with sample data and extract at least one project containing existing data whose similarity to the sample data is higher than a preset value.

이때, 데이터 설계부(215)는 기존 데이터를 대상으로, 기존 데이터를 구성하고 있는 하나 이상의 분해 구성요소를 식별할 수 있다. 여기서, 분해 구성요소는 어노테이션 작업 결과물을 구성하고 있는 요소들 중에서, 프로젝트의 전체 작업 비용을 예측하기 위해 사용되는 요소이다. 예를 들어, 분해 구성요소에는 클래스(class)와 툴(tool)이 포함될 수 있으나, 이에 한정되는 것은 아니다.At this time, the data design unit 215 may identify one or more decomposed components that constitute the existing data. Here, the decomposition component is an element used to predict the overall work cost of the project among the elements that make up the annotation work result. For example, decomposition components may include, but are not limited to, classes and tools.

일 예를 들어, 샘플 데이터가 어노테이션 작업 대상이 되는 이미지에 해당되는 경우, 데이터 설계부(215)는 샘플 데이터에 해당되는 이미지를 대상으로, 사용자의 제어에 따라 어노테이션 작업을 수행할 수 있다. 그리고, 데이터 설계부(215)는 어노테이션 작업에 의해 이미지로부터 특정된 객체의 클래스와, 객체를 특정하기 위하여 사용된 툴을 샘플 데이터의 분해 구성요소로 식별할 수 있다For example, when the sample data corresponds to an image subject to annotation work, the data design unit 215 may perform annotation work on the image corresponding to the sample data under user control. In addition, the data design unit 215 can identify the class of the object specified from the image through annotation work and the tool used to specify the object as a decomposition component of the sample data.

또한, 데이터 설계부(215)는 샘플 데이터와의 유사도가 사전 설정된 값보다 높은 기존 데이터가 포함된 적어도 하나의 프로젝트를 추출할 수 있다. 이때, 데이터 설계부(215)는 인공지능 학습 장치(400)로부터 샘플 이미지의 분해 구성요소에 대한 가중치를 입력 받고, 입력받은 가중치를 고려하여, 기존 이미지와의 유사도를 평가할 수 있다. 예를 들어, 인공지능 학습 장치(400)에 의해 객체의 클래스와, 객체를 특정하기 위하여 사용된 툴 중 객체의 클래스에 더 높은 가중치를 부여하는 경우, 데이터 설계부(215)는 객체의 클래스를 중점적으로 유사한 기존 데이터를 추출하고, 해당 기존 데이터가 포함된 프로젝트를 추출할 수 있다.Additionally, the data design unit 215 may extract at least one project containing existing data whose similarity to sample data is higher than a preset value. At this time, the data design unit 215 may receive weights for the decomposed components of the sample image from the artificial intelligence learning device 400 and evaluate the degree of similarity with the existing image by considering the input weights. For example, when a higher weight is given to the class of the object by the artificial intelligence learning device 400 and the class of the object among the tools used to specify the object, the data design unit 215 focuses on the class of the object. You can extract similar existing data and extract projects containing the existing data.

데이터 설계부(215)는 샘플 이미지의 엣지(edge)를 추출하고, 추출된 엣지를 기초로 샘플 데이터에 포함된 객체를 검출하고, 객체의 RGB(Red, Green, Blue) 값을 기존 데이터에 포함된 객체의 RGB 값과 비교하여 유사도를 평가할 수 있다.The data design unit 215 extracts the edge of the sample image, detects the object included in the sample data based on the extracted edge, and stores the RGB (Red, Green, Blue) value of the object included in the existing data. Similarity can be evaluated by comparing with the RGB values of the object.

예를 들어, 데이터 설계부(215)는 검출된 객체의 픽셀(pixel)에 대한 RGB(Red, Green, Blue) 히스토그램을 생성하고, 생성된 RGB 히스토그램을 비교하여 유사도를 산출할 수 있다. 여기서 RGB 히스토그램은 이미지에서 각 원색(RGB)의 밝기 분포를 나타내는 그래프이다. 예를 들어, RGB 히스토그램은 가로축이 컬러의 밝기 레벨을 표시하며, 세로축이 컬러의 밝기 레벨에 할당된 픽셀 수로 표시되고, 좌측으로 치우친 픽셀 수가 많을수록 색상이 어둡고 덜 선명하게 표현되며, 우측으로 치운 친 픽셀 수가 많을수록 색상이 더 밝고 진하게 표현될 수 있다. 이와 같이, 데이터 설계부(215)는 RGB 히스토그램을 통해 샘플 이미지에 포함된 객체 및 기존 이미지에 포함된 객체의 색상의 채도와 계조 상태, 화이트 밸런스의 성향 등을 비교하여 유사도를 산출할 수 있다. 하지만, 이에 한정된 것은 아니고, 데이터 설계부(215)는 추출된 객체의 엣지에 대한 모멘트(moment)를 비교하여 유사도를 산출할 수 있다.For example, the data design unit 215 may generate an RGB (Red, Green, Blue) histogram for the pixel of the detected object, and calculate the degree of similarity by comparing the generated RGB histograms. Here, the RGB histogram is a graph showing the brightness distribution of each primary color (RGB) in the image. For example, in an RGB histogram, the horizontal axis represents the brightness level of a color, the vertical axis represents the number of pixels assigned to the color's brightness level, the more pixels deviated to the left, the darker and less vivid the color, and the more pixels deviated to the right, the darker and less vivid the color is. The greater the number of pixels, the brighter and darker the color can be expressed. In this way, the data design unit 215 can calculate the similarity by comparing the color saturation, gradation state, white balance tendency, etc. of the object included in the sample image and the object included in the existing image through the RGB histogram. However, it is not limited to this, and the data design unit 215 may calculate the degree of similarity by comparing the moments about the edges of the extracted objects.

또한, 데이터 설계부(215)는 기 수행된 복수의 프로젝트 별로 각각 사전 저장된 대표 이미지를 샘플 이미지와 비교하고, 샘플 이미지와의 유사도가 사전 설정된 값보다 높은 복수의 대표 이미지를 인공지능 학습 장치에 전송하고, 인공지능 학습 장치(400)로부터 복수의 대표 이미지 중 하나를 선택받을 수 있다. 여기서, 대표 이미지는 기 수행된 복수의 프로젝트를 수행하는 과정에서 수집된 이미지 중 기 수행된 복수의 프로젝트 각각을 수행하기 위하여 수신한 샘플 이미지와 유사도가 가장 높은 이미지가 될 수 있다. In addition, the data design unit 215 compares representative images pre-stored for each of the plurality of previously performed projects with sample images, and transmits a plurality of representative images with a similarity to the sample image higher than a preset value to the artificial intelligence learning device. , one of a plurality of representative images can be selected from the artificial intelligence learning device 400. Here, the representative image may be an image with the highest similarity to a sample image received to carry out each of the plurality of projects among the images collected in the process of performing the plurality of projects that have already been performed.

이때, 데이터 설계부(215)는 샘플 이미지와의 유사도가 사전 설정된 값보다 높은 복수의 대표 이미지를 인공지능 학습 장치(400)에 전송하되, 대표 이미지에 포함된 객체를 식별하고, 식별된 객체의 클래스가 기밀 정보로 사전 등록된 경우, 식별된 객체를 비식별(de-identify) 처리하여 인공지능 학습 장치(400)에 전송할 수 있다. 데이터 설계부(215)는 기밀 정보로 등록된 클래스에 해당하는 객체를 블러링(blurring) 처리하여 비식별 처리를 수행할 수 있다.At this time, the data design unit 215 transmits a plurality of representative images whose similarity to the sample image is higher than a preset value to the artificial intelligence learning device 400, identifies objects included in the representative images, and classifies the identified objects. If is pre-registered as confidential information, the identified object can be de-identified and transmitted to the artificial intelligence learning device 400. The data design unit 215 may perform de-identification processing by blurring objects corresponding to classes registered as confidential information.

즉, 각 프로젝트별로 수집된 이미지에는 기밀 정보가 포함될 수 있다. 여기서, 기밀 정보는 각 프로젝트를 의뢰한 기업으로부터 지정된 각 기업의 기밀 정보이거나, 얼굴, 자동차번호판 등의 개인 정보가 포함될 수 있다. 이러한, 기밀 정보는 기 수행된 복수의 프로젝트 각각을 요청한 인공지능 학습 장치(400)로부터 설정되거나, 학습 데이터 생성 장치(200)에 의해 미리 설정될 수 있다.In other words, images collected for each project may contain confidential information. Here, the confidential information may be confidential information of each company designated by the company that requested each project, or may include personal information such as face or license plate. This confidential information may be set from the artificial intelligence learning device 400 that requested each of a plurality of projects that have already been performed, or may be set in advance by the learning data generating device 200.

데이터 설계부(215)는 기밀 정보로 지정된 객체의 일부를 블러링(blurring) 처리하여 비식별 처리를 수행하되, 식별된 객체에서 랜드 마크(land mark)를 추출하고, 추출된 랜드 마크에 블러링 처리를 수행할 수 있다. 예를 들어, 데이터 설계부(215)는 식별된 객체가 사람일 경우, 사람의 랜드 마크에 해당하는 눈, 코, 입을 추출하고, 추출된 눈, 코, 입만 선택적으로 블러링 처리할 수 있다.The data design unit 215 performs de-identification processing by blurring some of the objects designated as confidential information, extracts landmarks from the identified objects, and performs blurring on the extracted landmarks. can be performed. For example, when the identified object is a person, the data design unit 215 can extract the eyes, nose, and mouth corresponding to the landmarks of the person, and selectively perform blurring only on the extracted eyes, nose, and mouth.

또한, 데이터 설계부(215)는 추출된 적어도 하나의 프로젝트를 기초로 수행 예정인 어노테이션 작업과 관련된 프로젝트를 수행하기 위하여 요구되는 전체 작업 비용을 예측할 수 있다. 이때, 데이터 설계부(215)는 수행 예정인 어노테이션 작업과 관련된 프로젝트의 데이터 수량을 입력 받고, 추출된 프로젝트의 비용 및 데이터 수량을 고려하여, 전체 작업 비용을 예측할 수 있다.Additionally, the data design unit 215 may predict the total work cost required to perform a project related to annotation work to be performed based on at least one extracted project. At this time, the data design unit 215 can receive the data quantity of the project related to the annotation work to be performed and predict the total work cost by considering the extracted project cost and data quantity.

예를 들어, 데이터 설계부(215)는 추출된 적어도 하나의 프로젝트에 대한 데이터 수량 및 작업 비용을 검출한다. 그리고, 데이터 설계부(215)는 수행 예정인 프로젝트의 데이터 수량을 입력 받고, 추출된 프로젝트의 데이터 수량 및 작업 비용과 비례하여, 입력받은 데이터 수량에 따른 작업 비용을 가감하여 전체 작업 비용을 예측할 수 있다.For example, the data design unit 215 detects the data quantity and work cost for at least one extracted project. In addition, the data design unit 215 receives the data quantity of the project to be performed, and predicts the total work cost by adding or subtracting the work cost according to the input data quantity in proportion to the data quantity and work cost of the extracted project.

또한, 데이터 설계부(215)는 샘플 데이터와 유사도가 사전 설정된 값보다 높은 기존 데이터가 포함된 복수의 프로젝트를 추출하고, 추출된 복수의 프로젝트의 작업 비용 평균값을 수행 예정인 프로젝트의 전체 작업 비용으로 예측할 수 있다.In addition, the data design unit 215 can extract a plurality of projects containing existing data whose similarity to sample data is higher than a preset value, and predict the average work cost of the extracted plurality of projects as the total work cost of the project to be performed. there is.

그리고, 데이터 설계부(215)는 예측된 전체 작업 비용을 입출력부(210)를 통하여 출력할 수 있다. 데이터 설계부(215)는 입출력부(210)를 통해 입력된 사용자의 제어에 따라, 전체 작업 비용을 수정할 수도 있다. 그리고, 데이터 설계부(215)는 예측 또는 수정된 전체 작업 비용을 통신부(205)를 통해 인공지능 학습 장치(400)에 전송할 수 있다.And, the data design unit 215 can output the predicted total work cost through the input/output unit 210. The data design unit 215 may modify the overall work cost according to user control input through the input/output unit 210. In addition, the data design unit 215 may transmit the predicted or revised total work cost to the artificial intelligence learning device 400 through the communication unit 205.

다음 구성으로, 데이터 수집부(220)는 인공지능 학습 장치(400)의 운영 주체와 프로젝트 수행과 관련된 계약이 체결되면, 해당 프로젝트를 위하여 인공지능(AI) 학습용 데이터를 수집할 수 있다.In the following configuration, the data collection unit 220 can collect artificial intelligence (AI) learning data for the project when a contract related to project performance is concluded with the operator of the artificial intelligence learning device 400.

구체적으로, 데이터 수집부(220)는 인공지능의 기계 학습을 위한 이미지의 수집을 적어도 하나의 학습 데이터 수집 장치(100)에 요청할 수 있다. 이를 위해, 데이터 수집부(220)는 이미지의 수집 조건을 포함하는 가이드 정보를 학습 데이터 수집 장치(100)에 전송할 수 있다. 여기서, 가이드 정보는 수집 조건인 객체의 클래스, 데이터 확장자, 이미지 해상도 등을 포함할 수 있다. 이때, 데이터 수집부(220)는 가이드 정보를 샘플 이미지를 통해 제공할 수 있다. 즉, 데이터 수집부(220)는 프로젝트 계약 당시 수신한 샘플 이미지를 학습 데이터 수집 장치(100)에 전송하여, 학습 데이터 수집 장치(100) 수집 조건을 인지하도록 할 수 있다.Specifically, the data collection unit 220 may request at least one learning data collection device 100 to collect images for machine learning of artificial intelligence. To this end, the data collection unit 220 may transmit guide information including image collection conditions to the learning data collection device 100. Here, the guide information may include the object class, data extension, image resolution, etc., which are collection conditions. At this time, the data collection unit 220 may provide guide information through a sample image. That is, the data collection unit 220 may transmit the sample image received at the time of the project contract to the learning data collection device 100 to recognize the collection conditions of the learning data collection device 100.

또한, 데이터 수집부(220)는 적어도 하나의 학습 데이터 수집 장치(100)로부터 이미지들을 수신할 수 있다. 이때, 데이터 수집부(220)는 적어도 하나의 학습 데이터 수집 장치(100) 각각에 식별자(identifier)를 부여하고, 부여된 식별자별로 수신한 이미지들을 저장할 수 있다.Additionally, the data collection unit 220 may receive images from at least one learning data collection device 100. At this time, the data collection unit 220 may assign an identifier to each of the at least one learning data collection device 100 and store the images received for each assigned identifier.

다음 구성으로, 데이터 정제부(225)는 수신한 이미지들의 컬러 정보를 추출할 수 있다. 여기서, 컬러 정보는 픽셀(pixel)에 대한 RGB(Red, Green, Blue) 값 또는 컬러 코드(color code) 값이 될 수 있다. 데이터 정제부(225)는 적어도 하나의 학습 데이터 수집 장치 각각에 부여된 식별자(identifier)를 기준으로 이미지들의 파일명 및 컬러 정보를 저장부(235)에 저장할 수 있다.With the following configuration, the data purification unit 225 can extract color information of received images. Here, the color information may be an RGB (Red, Green, Blue) value or a color code value for a pixel. The data purification unit 225 may store the file name and color information of the images in the storage unit 235 based on an identifier assigned to each of at least one learning data collection device.

데이터 정제부(225)는 이미지들 사이의 컬러 정보를 기준으로 노이즈 이미지를 분류할 수 있다. 즉, 데이터 정제부(225)는 이미지들 중 컬러 정보의 유사도가 사전 설정된 값보다 높은 이미지들 중 적어도 하나를 노이즈 이미지로 분류할 수 있다.The data purification unit 225 may classify noise images based on color information between images. That is, the data purification unit 225 may classify at least one of the images in which the similarity of color information is higher than a preset value as a noise image.

이때, 데이터 정제부(225)는 이미지들을 사전 설정된 해상도로 리샘플링(resamping)하고, 리샘플링 된 이미지들의 동일한 좌표에 존재하는 픽셀의 컬러 정보를 각각 비교하여 이미지들 간 유사도를 평가할 수 있다.At this time, the data purification unit 225 may resample the images to a preset resolution and evaluate the degree of similarity between the images by comparing the color information of pixels present at the same coordinates of the resampled images.

또한, 데이터 정제부(225)는 동일한 식별자에 동일한 파일명을 갖는 이미지가 복수개로 존재하는 경우, 동일한 파일명을 갖는 이미지 중 적어도 하나를 노이즈 이미지로 분류할 수 있다. 데이터 정제부(225)는 식별자가 상이하나 동일한 파일명이 복수개로 존재하는 경우, 동일한 파일명을 갖는 이미지 중 적어도 하나를 노이즈 이미지로 분류할 수 있다. 즉, 데이터 정제부(225)는 동일한 식별자에서 같은 이름의 파일이 중복되어 등록되거나, 다른 식별자로부터 동일한 파일이 중복되어 등록되는 경우를 사전 방지할 수 있다.Additionally, when there are multiple images with the same file name and the same identifier, the data purification unit 225 may classify at least one of the images with the same file name as a noise image. When there are multiple file names with different identifiers but the same file name, the data purification unit 225 may classify at least one of the images with the same file name as a noise image. That is, the data purification unit 225 can prevent the case in which files with the same name are repeatedly registered with the same identifier or the same file is repeatedly registered with different identifiers.

또한, 데이터 정제부(225)는 이미지들을 시간 순으로 나열하고, 나열된 이미지들을 사전 설정된 개수로 그룹핑(grouping) 한 시퀀스 데이터를 생성하고, 시퀀스 데이터 별로 포함된 이미지들의 컬러 정보를 각각 비교하여 노이즈 이미지를 분류할 수 있다.In addition, the data purification unit 225 lists the images in chronological order, generates sequence data by grouping the listed images into a preset number, and compares the color information of the images included in each sequence data to create a noise image. can be classified.

구체적으로, 데이터 정제부(225)는 생성된 시퀀스 데이터의 이미지들 각각에 포함된 객체의 엣지(edge)를 추출할 수 있다. 데이터 정제부(225)는 시퀀스 데이터 별로 연속된 이미지 사이의 엣지 변화량을 기준으로 이미지들의 유사도를 평가할 수 있다.Specifically, the data purification unit 225 may extract the edge of an object included in each image of the generated sequence data. The data purification unit 225 may evaluate the similarity of images based on the amount of edge change between consecutive images for each sequence data.

여기서, 엣지는 이미지 안에서 픽셀의 값이 급격하게 변하는 곳이다. 이러한, 데이터 정제부(225)는 이미지를 미분한 그레디언트(gradient) 벡터의 크기로 엣지를 판단할 수 있다. 예를 들어, 데이터 정제부(225)는 소벨 엣지 검출(sobel edge detection) 알고리즘, 케니 엣지 검출(canny edge detection) 알고리즘 등의 엣지 추출 알고리즘을 통해 이미지 상의 엣지를 추출할 수 있다.Here, an edge is a place where pixel values change rapidly within an image. The data purification unit 225 may determine the edge based on the size of a gradient vector obtained by differentiating the image. For example, the data purification unit 225 may extract edges on the image through an edge extraction algorithm such as the Sobel edge detection algorithm and the Canny edge detection algorithm.

또한, 데이터 정제부(225)는 이미지들 중 유사도가 사전 설정된 값보다 높은 이미지들의 선명도(sharpness)를 산출하고, 산출된 선명도가 가장 높은 이미지를 제외한 나머지 이미지를 노이즈 이미지로 분류할 수 있다.Additionally, the data purification unit 225 may calculate the sharpness of images whose similarity is higher than a preset value, and classify the images other than the image with the highest calculated sharpness as noise images.

즉, 유사한 이미지가 복수개 존재하는 경우, 특정 기준을 통해 복수의 이미지 중 하나를 제외한 나머지 이미지를 제거해야 한다. 이를 위해, 데이터 정제부(225)는 선정된 이미지들 중 선명도가 가장 높은 이미지를 제외한 나머지 이미지를 노이즈 이미지로 분류하여 삭제할 수 있다.In other words, if a plurality of similar images exist, all but one of the plurality of images must be removed based on a specific criterion. To this end, the data purification unit 225 may classify the remaining images, excluding the image with the highest clarity among the selected images, as noise images and delete them.

또한, 데이터 정제부(225)는 시퀀스 데이터 별로 연속된 이미지 사이의 유사도를 산출하고, 산출된 유사도를 기준으로 시퀀스 데이터 별 초당 프레임 수(frame per second)를 결정할 수 있다.Additionally, the data purification unit 225 may calculate the similarity between consecutive images for each sequence data and determine the number of frames per second for each sequence data based on the calculated similarity.

즉, 데이터 정제부(225)는 하나의 시퀀스 데이터에 연속된 이미지 사이의 유사도가 사전 설정된 값보다 높은 경우, 해당 이미지를 수집한 차량의 속도로 높은 것으로 판단하고, 해당 시퀀스 데이터 별 초당 프레임 수를 결정하여, 시퀀스 데이터 내에 포함된 이미지의 부피를 줄일 수 있다.That is, if the similarity between consecutive images in one sequence data is higher than a preset value, the data purification unit 225 determines that the speed of the vehicle that collected the image is high, and sets the number of frames per second for each sequence data. By making this decision, the volume of the image included in the sequence data can be reduced.

또한, 데이터 정제부(225)는 수집 조건과 대응하는 이미지 정보를 이미지들로부터 추출할 수 있다. 여기서, 이미지 정보는 파일 확장자, 이미지 해상도, 픽셀(pixel)에 대한 RGB(Red, Green, Blue) 값 및 컬러 코드(color code) 값 중 적어도 하나를 포함할 수 있다.Additionally, the data purification unit 225 may extract image information corresponding to collection conditions from the images. Here, the image information may include at least one of a file extension, image resolution, RGB (Red, Green, Blue) value for a pixel, and a color code value.

여기서, 데이터 정제부(225)는 추출한 이미지 정보를 가이드 정보와 비교하여, 수집 환경 또는 학습 데이터 수집 장치(100)의 오류에 따른 노이즈 이미지를 분류할 수 있다.Here, the data purification unit 225 may compare the extracted image information with guide information and classify noise images according to errors in the collection environment or the learning data collection device 100.

구체적으로, 데이터 정제부(225)는 샘플 이미지의 파일 확장자, 이미지 해상도, 픽셀에 대한 RGB 값 및 컬러 코드 값 중 적어도 하나를 포함하는 샘플 이미지 정보를 추출하고, 추출된 샘플 이미지 정보를 이미지들로부터 추출된 이미지 정보와 비교할 수 있다.Specifically, the data purification unit 225 extracts sample image information including at least one of the file extension, image resolution, RGB value for the pixel, and color code value of the sample image, and extracts the extracted sample image information from the images. It can be compared with extracted image information.

이때, 데이터 정제부(225)는 샘플 이미지와 유사도가 사전 설정된 값보다 낮은 이미지를 노이즈 이미지로 분류할 수 있다. 즉, 데이터 정제부(225)는 샘플 이미지와 파일 확장자 또는 이미지 해상도가 상이하거나, 픽셀(pixel)에 대한 RGB(Red, Green, Blue) 값 및 컬러 코드(color code) 값의 유사도가 사전 설정된 값보다 낮은 경우, 해당 이미지를 노이즈 이미지로 분류할 수 있다.At this time, the data purification unit 225 may classify an image whose similarity to the sample image is lower than a preset value as a noise image. That is, the data purification unit 225 determines whether the sample image and the file extension or image resolution are different, or the similarity of the RGB (Red, Green, Blue) values and color code values for the pixel is set to a preset value. If it is lower, the image can be classified as a noise image.

데이터 정제부(225)는 이미지들을 시간 순으로 나열하고, 나열된 이미지들을 사전 설정된 개수로 그룹핑(grouping) 한 시퀀스 데이터를 생성하고, 시퀀스 데이터 별로 노이즈 이미지를 분류할 수 있다. 이때, 데이터 정제부(225)는 시퀀스 데이터 중 특정 이미지를 대상으로 전후 이미지의 유사도를 비교하고, 전후 이미지 사이의 유사도가 사전 설정된 값보다 높되, 전후 이미지와 상기 특정 이미지 사이의 유사도가 사전 설정된 값보다 낮은 경우, 특정 이미지를 노이즈 이미지로 판단할 수 있다.The data purification unit 225 may arrange images in chronological order, generate sequence data by grouping the listed images into a preset number, and classify noise images by sequence data. At this time, the data purification unit 225 compares the similarity between the before and after images for a specific image among the sequence data, and determines that the similarity between the before and after images is higher than a preset value, but the similarity between the before and after images and the specific image is at a preset value. If it is lower, a specific image may be judged to be a noise image.

즉, 데이터 정제부(225)는 특정 이미지의 전후 이미지를 비교하여 특정 이미지 만 유사도가 낮은 경우, 특정 이미지가 과속 방지턱을 넘는 과정에서 촬영된 이미지로 판단하고, 해당 이미지를 노이즈 이미지로 분류할 수 있다. 여기서, 데이터 정제부(225)는 이미지들을 사전 설정된 해상도로 리샘플링하고, 리샘플링 된 이미지들의 동일한 위치에 존재하는 픽셀의 컬러 정보를 각각 비교하여 이미지들 간 유사도를 평가할 수 있다.That is, the data purification unit 225 compares the images before and after a specific image, and if only the specific image has low similarity, it determines that the specific image is an image taken in the process of crossing a speed bump, and classifies the image as a noise image. there is. Here, the data purification unit 225 may resample the images to a preset resolution and evaluate the degree of similarity between the images by comparing the color information of pixels present at the same location in the resampled images.

또한, 데이터 정제부(225)는 이미지들 각각에 포함된 객체의 엣지를 추출하고, 이미지들 각각에 포함된 객체를 검출하고, 검출된 객체의 위치 변화 값이 사전 설정된 값보다 높은 이미지를 노이즈 이미지로 분류할 수 있다. 즉, 데이터 정제부(225)는 이미지에 포함된 객체의 움직임의 정도를 통해 특정 이미지가 과속 방지턱을 넘는 과정에서 촬영된 이미지 인지를 판단할 수 있다.In addition, the data purification unit 225 extracts the edge of the object included in each of the images, detects the object included in each of the images, and selects an image in which the position change value of the detected object is higher than a preset value as a noise image. It can be classified as: That is, the data purification unit 225 can determine whether a specific image is an image taken in the process of crossing a speed bump based on the degree of movement of an object included in the image.

또한, 데이터 정제부(225)는 통신부(205)를 통해 적어도 하나의 학습 데이터 수집 장치(100)로부터 이미지들 각각의 메타 정보를 함께 수신할 수 있다. 여기서, 메타 정보는 이미지들 각각의 촬영 시점에서 학습 데이터 수집 장치(100)의 위치 정보 및 속도 정보를 포함할 수 있다.Additionally, the data purification unit 225 may receive meta information of each image from at least one learning data collection device 100 through the communication unit 205. Here, the meta information may include location information and speed information of the learning data collection device 100 at the time of capturing each of the images.

학습 데이터 수집 장치(100)로부터 제공받은 메타 정보를 활용하여, 데이터 정제부(225)는 학습 데이터 수집 장치(100)가 이동한 경로를 포함하는 지도 정보에 포함된 과속 방지턱의 위치 정보를 기준으로 메타 정보와 비교하여, 과속 방지턱의 위치에서 촬영된 이미지를 노이즈 이미지로 분류할 수 있다.Using the meta information provided from the learning data collection device 100, the data purification unit 225 uses the location information of the speed bump included in the map information including the path traveled by the learning data collection device 100. By comparing with the meta information, the image taken at the location of the speed bump can be classified as a noise image.

또한, 데이터 정제부(225)는 학습 데이터 수집 장치(100)가 이동한 경로를 포함하는 지도 정보에 포함된 커브(curve)길의 위치 정보를 기준으로 메타 정보와 비교하여, 커브길의 위치에서 생성된 이미지를 노이즈 이미지로 분류할 수 있다.In addition, the data purification unit 225 compares the location information of the curved road included in the map information including the path traveled by the learning data collection device 100 with meta information, and determines the location of the curved road. The generated image can be classified as a noise image.

또한, 데이터 정제부(225)는 시퀀스 데이터에서 연속된 이미지 사이의 유사도를 비교하고, 유사도가 사전에 설정된 값보다 낮은 이미지가 연속적으로 검출된 경우, 검출된 이미지들이 커브길에서 촬영된 이미지들로 판단하고, 검출된 이미지들을 노이즈 이미지로 분류할 수 있다.In addition, the data purification unit 225 compares the similarity between consecutive images in the sequence data, and when images with a similarity lower than a preset value are continuously detected, the detected images are images taken on a curved road. It is possible to determine and classify the detected images as noise images.

또한, 데이터 정제부(225)는 시퀀스 데이터 별 연속된 이미지의 유사도를 기초로 노이즈 이미지를 분류하고, 분류된 노이즈 이미지 각각의 오류 종류를 추정할 수 있다.Additionally, the data purification unit 225 may classify noise images based on the similarity of consecutive images for each sequence data and estimate the type of error for each classified noise image.

구제적으로, 데이터 정제부(225)는 시퀀스 데이터 중 연속된 이미지 사이의 유사도를 비교하고, 제1 이미지와 연속된 제2 이미지 사이의 유사도가 사전 설정된 값보다 낮고, 제2 이미지와 연속된 제3 이미지와 제2 이미지의 유사도가 사전 설정된 값보다 높은 경우, 시퀀스 데이터에 포함된 이미지를 촬영한 카메라의 카메라 앵글(camera angle)이 변경된 오류로 판단할 수 있다. 즉, 데이터 정제부(225)는 이미지가 급격하게 변화된 후 변화된 상태의 이미지가 지속적으로 수집되는 경우, 이미지가 변화된 이후의 데이터를 카메라 앵글이 변경된 오류에 따른 노이즈 데이터로 판단할 수 있다.Specifically, the data purification unit 225 compares the similarity between consecutive images among the sequence data, and determines that the similarity between the first image and the second consecutive image is lower than a preset value, and the similarity between the first image and the second consecutive image is lower than a preset value, and the 3 If the similarity between the image and the second image is higher than the preset value, it can be determined as an error in which the camera angle of the camera that captured the image included in the sequence data has changed. That is, when the image is rapidly changed and the image in the changed state is continuously collected, the data purification unit 225 may determine that the data after the image change is noise data due to an error in the camera angle change.

또한, 데이터 정제부(225)는 시퀀스 데이터 중 연속된 이미지 사이의 유사도를 비교하고, 유사도가 사전에 설정된 값보다 낮은 이미지가 사전 설정된 개수를 초과하는 경우, 시퀀스 데이터에 포함된 이미지를 촬영한 카메라의 결속 불량에 따른 오류로 판단할 수 있다. 즉, 데이터 정제부(225)는 이미지가 지속적으로 변화되는 경우, 카메라의 결속 불량에 따른 오류로 판단할 수 있다.In addition, the data purification unit 225 compares the similarity between consecutive images in the sequence data, and when the number of images with similarity lower than a preset value exceeds the preset number, the camera that took the images included in the sequence data It can be judged to be an error due to poor binding. In other words, if the image continuously changes, the data purification unit 225 may determine it to be an error due to poor binding of the camera.

데이터 정제부(225)는 추정된 오류에 해당하는 데이터를 삭제하거나, 추정된 오류의 종류를 메타 정보에 포함시켜 검수자가 확인할 수 있도록 할 수 있다.The data purification unit 225 may delete data corresponding to the estimated error or include the type of the estimated error in meta information so that the inspector can check it.

또한, 데이터 정제부(225)는 GPS(global positioning system) 좌표를 기초로 수신한 이미지들 및 사전 저장된 이미지를 매칭하고, 매칭된 이미지 사이의 유사도를 비교하여, 노이즈 이미지를 분류할 수 있다. 즉, 데이터 정제부(225)는 기 수행된 프로젝트 중 해당 위치에서 이전에 수집된 이미지와, 현재 수집된 이미지들을 매칭하고, 매칭된 이미지 사이의 유사도를 비교하여 유사도가 사전 설정된 값보다 낮은 경우, 해당 이미지를 노이즈 이미지로 분류할 수 있다.Additionally, the data purification unit 225 may match received images and pre-stored images based on global positioning system (GPS) coordinates, compare similarities between the matched images, and classify noise images. That is, the data purification unit 225 matches the images previously collected at the corresponding location among the previously performed projects with the currently collected images, and compares the similarity between the matched images. If the similarity is lower than a preset value, The image can be classified as a noise image.

또한, 데이터 정제부(225)는 각 이미지의 제1 변(side)을 구성하는 픽셀들과 제2 변을 구성하는 픽셀들 사이의 RGB 값의 유사도를 기준으로 제1 변 및 제2 변으로부터 각각 하나의 정점(vertex)을 식별하고, 제1 변 및 상기 제2 변으로부터 각각 식별된 두 정점을 연결한 선분을 추출할 수 있다. In addition, the data purification unit 225 selects each image from the first side and the second side based on the similarity of RGB values between the pixels constituting the first side and the pixels constituting the second side. One vertex can be identified, and a line segment connecting the two identified vertices can be extracted from the first side and the second side.

즉, 데이터 정제부(225)는 이미지 내에서 도로, 방음벽, 가드레일 등의 정적으로 존재하는 객체를 식별하기 위하여, 이미지 내에서 양단부에 존재하는 픽셀의 유사도를 평가하여 이미지의 양단부를 연결하는 객체를 식별할 수 있다. 그리고, 이미지의 양단부를 연결하는 객체를 정적으로 존재하는 객체로 인식할 수 있다.That is, the data purification unit 225 evaluates the similarity of pixels existing at both ends of the image to identify objects that statically exist in the image, such as roads, soundproof walls, and guardrails, and connects both ends of the image. can be identified. Additionally, the object connecting both ends of the image can be recognized as a static object.

데이터 정제부(225)는 매칭된 이미지 각각에서 추출된 선분의 길이 및 각도 중 적어도 하나를 기준으로 사전 설정된 오차 범위를 벗어나는 경우, 카메라 앵글이 변경된 오류로 판단할 수 있다. If the data purification unit 225 is outside a preset error range based on at least one of the length and angle of the line segment extracted from each matched image, it may be determined as an error in which the camera angle has changed.

하지만 이에 한정된 것은 아니고, 데이터 정제부(225)는 매칭된 이미지 각각에서 엣지(edge)를 추출하고, 추출된 엣지를 기초로 매칭된 이미지 각각에 포함된 객체를 식별하고, 식별된 객체의 위치 변화 값을 기초로 노이즈 이미지를 분류할 수 있다.However, it is not limited to this, and the data purification unit 225 extracts an edge from each matched image, identifies objects included in each matched image based on the extracted edge, and changes the position of the identified object. Noisy images can be classified based on their values.

또한, 데이터 정제부(225)는 통신부(205)를 통해 이미지들과 동시에 획득된 라이다(lidar)를 통해 획득된 3D 점군(3D points group) 데이터를 더 수신할 수 있다. 데이터 정제부(225)는 3D 점군 데이터에 포함된 거리 정보를 기초로 매칭된 이미지 각각에 검출된 객체의 유형이 유동 객체 또는 정적 객체 인지 여부를 판단하고, 검출된 객체 중 정적 객체의 위치 변화 값을 기초로 상기 노이즈 이미지를 분류할 수 있다.In addition, the data purification unit 225 may further receive images and 3D point group data acquired through lidar simultaneously through the communication unit 205. The data purification unit 225 determines whether the type of object detected in each matched image is a moving object or a static object based on the distance information included in the 3D point cloud data, and determines the position change value of the static object among the detected objects. The noise image can be classified based on .

즉, 이미지에 포함된 객체 중에는 자동차, 자전거, 사람 등과 같은 유동 객체와, 도로, 건물, 가이드레일 등과 같은 정적 객체가 존재할 수 있다. 이에 따라, 데이터 정제부(225)는 샘플 이미지와 매칭되는 이미지 사이의 정적 객체의 위치 변화 값이 사전 설정된 값보다 높은 이미지를 노이즈 이미지로 분류할 수 있다.That is, among the objects included in the image, there may be moving objects such as cars, bicycles, and people, and static objects such as roads, buildings, and guide rails. Accordingly, the data purification unit 225 may classify an image in which the position change value of a static object between the sample image and the matching image is higher than a preset value as a noise image.

다음 구성으로, 데이터 납품부(230)는 어노테이션 장치(300)들에 대하여 하나 이상의 어노테이션 작업 대상물(즉, 이미지)을 분배할 수 있다. 또한, 데이터 납품부(230)는 어노테이션 작업 결과물을 검증한 후, 인공지능 학습 장치(400)에 납품할 수 있다.In the following configuration, the data delivery unit 230 can distribute one or more annotation work objects (ie, images) to the annotation devices 300. Additionally, the data delivery unit 230 may verify the annotation work result and then deliver it to the artificial intelligence learning device 400.

다음 구성으로, 저장부(235)는 학습 데이터 생성 장치(200)의 동작에 필요한 데이터를 저장할 수 있다. 저장부(235)는 인공지능(AI) 학습을 위한 데이터 설계하는데 필요한 데이터를 저장할 수 있다.With the following configuration, the storage unit 235 can store data necessary for the operation of the learning data generating device 200. The storage unit 235 can store data necessary for designing data for artificial intelligence (AI) learning.

구체적으로, 저장부(235)는 어노테이션 작업의 대상이 되는 이미지들을 저장할 수 있다. 저장부(235)는 프로젝트의 속성, 이미지의 속성 또는 작업자의 속성을 저장할 수 있다. Specifically, the storage unit 235 may store images that are the target of annotation work. The storage unit 235 may store project properties, image properties, or worker properties.

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

도 3은 본 발명의 일 실시예에 따른 학습 데이터 생성 장치의 하드웨어 구성도이다.Figure 3 is a hardware configuration diagram of a learning data generating device according to an embodiment of the present invention.

학습 데이터 생성 장치(200)는 프로세서(Processor, 250), 메모리(Memory, 255), 송수신기(Transceiver, 260), 입출력장치(Input/output device, 265), 데이터 버스(Bus, 270) 및 스토리지(Storage, 275)를 포함하여 구성될 수 있다.The learning data generating device 200 includes a processor (250), a memory (255), a transceiver (260), an input/output device (265), a data bus (Bus), and storage (270). It can be configured to include 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 learning data generating device 200 based on instructions according to the software 280a residing in the memory 255. Software 280a implementing the method according to the present invention may be loaded in the memory 255. The transceiver 260 can transmit and receive data with the learning data collection device 100, the annotation device 300, and the artificial intelligence learning device 400. The input/output device 265 may receive data required for the operation of the learning data design device 200 and output classified noise images, predicted total work costs, etc. 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)는 인공지능 학습용 데이터 생성 방법의 수행에 필요한 정보들을 저장할 수 있다. 특히, 스토리지(275)는 프로젝트의 속성, 이미지의 속성, 작업자의 속성, 기존에 수행된 복수 개의 프로젝트에 관한 정보 및 작업자들의 풀을 저장하는 데이터베이스(285)를 포함할 수 있다.The storage 275 may store an application programming interface (API), a library file, a resource file, etc. required to execute the software 280a in which another method according to the present invention is implemented. Storage 275 may store software 280b in which the method according to the present invention is implemented. Additionally, the storage 275 may store information necessary to perform a method of generating data for artificial intelligence learning. In particular, the storage 275 may include a database 285 that stores project properties, image properties, worker properties, information on a plurality of previously performed projects, and a pool of workers.

본 발명의 일 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 소프트웨어(280a, 280b)는 프로세서(250)가 인공지능(Artificial Intelligence, AI)의 기계 학습(machine learning)을 위한 이미지의 수집을 적어도 하나의 학습 데이터 수집 장치에 요청하는 단계, 프로세서(250)가, 적어도 하나의 학습 데이터 수집 장치로부터 이미지들을 수신하는 단계, 프로세서(250)가, 수신한 이미지들의 컬러 정보를 추출하는 단계 및 프로세서(250)가, 이미지들 사이의 컬러 정보를 기준으로 노이즈 이미지를 분류하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.According to one embodiment of the present invention, the software 280a, 280b residing in the memory 255 or stored in the storage 275 allows the processor 250 to perform machine learning of artificial intelligence (AI). requesting collection of images for at least one learning data collection device, the processor 250 receiving images from the at least one learning data collection device, the processor 250 receiving color information of the received images It may be a computer program recorded on a recording medium in order to execute the step of extracting and the processor 250 classifying the noise image based on color information between images.

본 발명의 다른 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 소프트웨어(280a, 280b)는 프로세서(250)가, 인공지능(Artificial Intelligence, AI)의 기계 학습(machine learning)을 위한 수집 조건을 포함하는 가이드 정보를 적어도 하나의 수집 장치에 전송하는 단계, 프로세서(250)가, 적어도 하나의 학습 데이터 수집 장치로부터 이미지들을 수신하는 단계, 프로세서(250)가, 수집 조건과 대응하는 이미지 정보를 이미지들로부터 추출하는 단계 및 프로세서(250)가, 이미지 정보를 가이드 정보와 비교하여, 수집 환경에 따른 노이즈 이미지를 분류하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.According to another embodiment of the present invention, the software 280a, 280b residing in the memory 255 or stored in the storage 275 is used by the processor 250 to perform machine learning of artificial intelligence (AI). ) transmitting guide information including collection conditions for at least one collection device, the processor 250 receiving images from the at least one learning data collection device, the processor 250, collecting conditions and In order to execute the step of extracting corresponding image information from the images and the step of the processor 250 comparing the image information with the guide information and classifying the noise image according to the collection environment, a computer program recorded on the recording medium is used. It can be.

본 발명의 다른 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 소프트웨어(280a, 280b)는 프로세서(250)가, 인공지능(Artificial Intelligence, AI)의 기계 학습(machine learning)을 위한 이미지의 수집 조건을 포함하는 가이드 정보를 적어도 하나의 학습 데이터 수집 장치에 전송하는 단계, 프로세서(250)가, 적어도 하나의 학습 데이터 수집 장치로부터 이미지들을 수신하는 단계, 프로세서(250)가, 수집 조건과 대응하는 이미지 정보를 이미지들로부터 추출하는 단계 및 프로세서(250)가, 추출한 이미지 정보를 상기 가이드 정보와 비교하여, 이미지들 중 수집 장치 오류에 따른 노이즈 이미지를 분류하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.According to another embodiment of the present invention, the software 280a, 280b residing in the memory 255 or stored in the storage 275 is used by the processor 250 to perform machine learning of artificial intelligence (AI). ) transmitting guide information including image collection conditions for to at least one learning data collection device, the processor 250 receiving images from the at least one learning data collection device, the processor 250 Executing a step of extracting image information corresponding to the collection conditions from the images and a step of the processor 250 comparing the extracted image information with the guide information and classifying noise images according to collection device errors among the images. For this purpose, it may be a computer program recorded on a recording medium.

본 발명의 또 다른 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 소프트웨어(280a, 280b)는 프로세서(250)가, 인공지능(Artificial Intelligence, AI) 학습을 위하여 수행 예정인 어노테이션(annotation) 작업과 관련된 프로젝트를 수행하기 위한 적어도 하나의 샘플 데이터를 인공지능 학습 장치로부터 수신하는 단계, 프로세서(250)가, 기 수행된 복수의 프로젝트에 포함된 기존 데이터를 샘플 데이터와 비교하고, 샘플 데이터와의 유사도가 사전 설정된 값보다 높은 기존 데이터가 포함된 적어도 하나의 프로젝트를 추출하는 단계 및 프로세서(250)가, 추출된 적어도 하나의 프로젝트를 기초로 수행 예정인 어노테이션 작업과 관련된 프로젝트를 수행하기 위하여 요구되는 전체 작업 비용을 예측하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.According to another embodiment of the present invention, the software 280a, 280b resident in the memory 255 or stored in the storage 275 is scheduled to be performed by the processor 250 for artificial intelligence (AI) learning. Receiving at least one sample data for performing a project related to an annotation task from an artificial intelligence learning device, the processor 250 compares existing data included in a plurality of previously performed projects with the sample data, and , extracting at least one project containing existing data whose similarity to sample data is higher than a preset value, and the processor 250 performs a project related to annotation work to be performed based on the extracted at least one project. It may be a computer program recorded on a recording medium to execute the steps of predicting the total cost of work required to do so.

보다 구체적으로, 프로세서(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.

도 3에 도시된 각 구성요소는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(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. 3 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 constructed 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.

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

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

도 4를 참조하면, 본 발명의 일 실시예에 따른 어노테이션 장치(300)는 통신부(305), 입출력부(310), 저장부(315), 객체 식별부(320), 객체 속성 설정부(325) 및 결과물 생성부(330)를 포함하여 구성될 수 있다.Referring to FIG. 4, the annotation device 300 according to an embodiment of the present invention includes a communication unit 305, an input/output unit 310, a storage unit 315, an object identification unit 320, and an object property setting unit 325. ) and a result generating unit 330.

이와 같은, 어노테이션 장치(300)의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.Since the components of the annotation device 300 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.

각각의 구성 요소에 대하여 설명하면, 통신부(305)는 학습 데이터 생성 장치(200)와 데이터를 송수신할 수 있다.To describe each component, the communication unit 305 can transmit and receive data with the learning data generating device 200.

구체적으로, 통신부(305)는 학습 데이터 생성 장치(200)로부터 이미지를 수신할 수 있다.Specifically, the communication unit 305 may receive an image from the learning data generating device 200.

여기서, 이미지는 인공지능(AI) 학습을 위한 어노테이션 작업의 대상이 되는 이미지이다. 이와 같은, 이미지는 학습 데이터 생성 장치(200)가 설계한 데이터 가공 계획에 따라, 어노테이션 작업의 대상이 되는 이미지를 개별적으로 수신하거나, 또는 복수 개의 이미지를 일괄적으로 수신할 수 있다.Here, the image is an image that is the target of annotation work for artificial intelligence (AI) learning. In this way, images subject to annotation work may be received individually, or a plurality of images may be received in batches, according to a data processing plan designed by the learning data generating device 200.

또한, 통신부(305)는 어노테이션의 작업 결과물을 학습 데이터 생성 장치(200)에 전송할 수 있다.Additionally, the communication unit 305 may transmit the annotation work result to the learning data generating device 200.

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

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

여기서, 프로젝트의 속성에는 인공지능(AI)의 학습과 관련된 프로젝트에 대한 학습 목적, 학습 기간, 학습에 필요한 이미지의 수, 이미지에서 식별하고자 하는 객체의 속성, 폴리곤 설정 규칙 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.Here, the properties of the project may include the learning purpose for the project related to artificial intelligence (AI) learning, learning period, number of images required for learning, properties of the object to be identified in the image, polygon setting rules, etc. It is not limited.

이미지의 속성에는 이미지의 파일명, 이미지의 크기(너비, 높이), 해상도, 비트 수준, 압축 형식, 촬영 장치명, 노출 시간, ISO 감도, 초점 거리, 조리개 개방 값, 촬영 장소 좌표(GPS 위도, 경도), 촬영 시각 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.Image properties include image file name, image size (width, height), resolution, bit level, compression format, shooting device name, exposure time, ISO sensitivity, focal length, aperture opening value, and shooting location coordinates (GPS latitude, longitude). , shooting time, etc. may be included, but are not limited thereto.

작업자의 속성에는 작업자의 명칭, 식별번호, 할당된 작업량, 작업에 따른 비용, 작업 결과 평가 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.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.

다음 구성으로, 입출력부(310)는 사용자 인터페이스(User Interface, UI)를 통해 작업자로부터 신호를 입력 거나, 또는 연산된 결과를 외부로 출력할 수 있다.In the following configuration, the input/output unit 310 can input a signal from an operator through a user interface (UI) or output the 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.

구체적으로, 입출력부(310)는 어노테이션 작업의 대상이 되는 이미지를 출력할 수 있다. 입출력부(310)는 객체를 지정하기 위한 제어 신호를 작업자로부터 입력 받을 수 있다. 그리고, 입출력부(310)는 이미지 위에 사용자가 지정한 영역을 오버레이(overlay)하여 출력할 수 있다.Specifically, the input/output unit 310 may output an image that is the target of an annotation task. The input/output unit 310 may receive a control signal for specifying an object from the operator. Additionally, the input/output unit 310 can overlay and output an area designated by the user on the image.

또한, 입출력부(310)는 객체의 속성 정보를 설정하기 위한 제어 신호를 작업자로부터 입력 받을 수 있다.Additionally, the input/output unit 310 may receive a control signal for setting attribute information of an object from an operator.

객체의 속성 정보는 인공지능(AI) 학습의 대상이 되는 객체의 속성을 지정하기 위한 정보이다. 이와 같은, 객체의 속성 정보에는 어노테이션의 종류(type), 클래스 명(class), 분류 항목(tags), 객체의 잘림 여부(truncated), 대분류, 소분류 또는 상위 레벨(instance upper)에 관한 정보가 포함될 수 있으며, 이에 한정되는 것은 아니다.Object property information is information for specifying the properties of an object that is the target of artificial intelligence (AI) learning. In this way, the object property information includes information about the annotation type (type), class name (class), classification items (tags), whether the object is truncated (truncated), major classification, small classification, or upper level (instance upper). It can be done, but is not limited to this.

다음 구성으로, 저장부(315)는 통신부(305)를 통해 수신된 이미지를 저장할 수 있다. 저장부(315)는 통신부(305)를 통해 수신된 프로젝트의 속성, 이미지의 속성 또는 작업자의 속성을 저장할 수 있다.With the following configuration, the storage unit 315 can store the image received through the communication unit 305. The storage unit 315 may store project properties, image properties, or worker properties received through the communication unit 305.

다음 구성으로, 객체 식별부(320)는 인공지능(AI) 학습을 위한 어노테이션(annotation) 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체 중 제1 객체의 외곽선을 지정할 수 있다.In the following configuration, the object identification unit 320 can specify the outline of a first object among a plurality of objects arranged to overlap each other included in an image that is the target of an annotation task for artificial intelligence (AI) learning. .

이때, 객체 식별부(320)는 작업자로부터 제1 객체의 외곽선을 따라 복수의 점을 입력 받고, 복수의 점을 연결하여 제1 객체의 외곽선을 형성할 수 있다. 즉, 객체 식별부(320)는 작업자가 지정한 점을 연결하여 폴리곤(polygon) 형태의 영역을 생성할 수 있다.At this time, the object identification unit 320 may receive a plurality of points along the outline of the first object from the operator and connect the plurality of points to form the outline of the first object. That is, the object identification unit 320 can create a polygon-shaped area by connecting points designated by the operator.

이때, 객체 식별부(320)는 작업자로부터 상기 복수의 점 중 임의의 제1 점 및 제2 점을 선택받고, 제1 점 및 제2 점 사이에 적어도 하나의 새로운 제3 점을 지정 받는 경우, 제1 점, 제2 점 및 상기 제3 점을 연결하여, 제1 객체의 외곽선을 수정할 수 있다. 즉, 객체 식별부(320)는 복수의 점을 지정받은 후에 수정이 필요한 영역에 해당하는 두개의 점을 선택받고, 두개의 점 사이에 새로운 점을 지정하는 경우, 기존에 지정했던 점을 삭제하고, 새로운 점을 기준으로 복수의 점을 연결하여 새로운 영역을 생성할 수 있다.At this time, when the object identification unit 320 selects an arbitrary first and second point among the plurality of points from the operator and designates at least one new third point between the first point and the second point, By connecting the first point, the second point, and the third point, the outline of the first object can be modified. That is, after receiving a plurality of points, the object identification unit 320 selects two points corresponding to the area requiring correction, and when specifying a new point between the two points, deletes the previously designated point and , a new area can be created by connecting multiple points based on a new point.

하지만, 이에 한정된 것은 아니고, 객체 식별부(320)는 작업자의 제어에 따라, 복수의 점 중 임의의 점을 드레그(drag)하여 이동시키는 경우, 이동시킨 점을 기준으로 제1 객체의 외곽선을 수정할 수 있다.However, it is not limited to this, and the object identification unit 320 may modify the outline of the first object based on the moved point when any point among the plurality of points is dragged and moved according to the operator's control. You can.

또한, 객체 식별부(320)는 이미지의 엣지(edge)를 추출하고, 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 작업자로부터 하나의 점을 입력 받으면, 입력 받은 점을 포함하는 객체의 엣지를 제1 객체의 외곽선으로 지정할 수 있다.In addition, the object identification unit 320 extracts an edge of the image, identifies at least one object based on the extracted edge, and, upon receiving one point from the operator, identifies the object including the input point. The edge can be designated as the outline of the first object.

즉, 객체 식별부(320)는 작업자로부터 복수의 점을 입력 받아 객체의 외곽선을 생성하지 않고, 자동으로 객체를 식별하여 객체의 외곽선을 지정할 수 있다. 즉, 엣지를 기초로 객체를 식별하는 경우, 이미지 내에 여러 개의 객체가 식별될 수 있다. 이때, 객체 식별부(320)는 작업자가 특정 점을 선택하게 되면, 해당 점이 포함된 엣지를 식별하고자 하는 객체의 엣지로 판단하고, 해당 객체의 엣지를 외곽선으로 인식할 수 있다.That is, the object identification unit 320 can automatically identify the object and designate the outline of the object without receiving a plurality of points input from the operator and generating the outline of the object. That is, when identifying an object based on an edge, multiple objects may be identified in the image. At this time, when the operator selects a specific point, the object identification unit 320 may determine that the edge containing the point is the edge of the object to be identified, and may recognize the edge of the object as an outline.

제1 객체의 외곽선을 지정한 후에, 객체 식별부(320)는 제1 객체와 중첩되어 배치된 제2 객체 사이의 경계선을 지정할 수 있다.After designating the outline of the first object, the object identification unit 320 may designate a boundary line between the first object and the second object arranged to overlap.

구체적으로, 객체 식별부(320)는 제1 객체의 외곽선을 따라 사전 설정된 간격을 갖는 복수의 점을 생성하고, 생성된 복수의 점 중 적어도 하나의 점을 선택받고, 선택받은 적어도 하나의 점을 기초로 상기 경계선을 지정할 수 있다.Specifically, the object identification unit 320 generates a plurality of points having a preset interval along the outline of the first object, selects at least one point from the plurality of generated points, and selects at least one point selected. The above boundary line can be specified as a basis.

이때, 사용자에게 경계선에 해당하는 모든 점을 입력받는 것이 아니고, 객체 식별부(320)는 복수의 점 중 임의의 두개의 점을 선택받고, 선택받은 두개의 점 사이에 존재하는 적어도 하나의 점을 연결하는 선을 생성하고, 생성된 선을 경계선으로 지정할 수 있다.At this time, rather than receiving all points corresponding to the boundary line from the user, the object identification unit 320 selects two random points among a plurality of points and selects at least one point that exists between the two selected points. You can create connecting lines and designate the created lines as boundary lines.

여기서, 객체 식별부(320)는 복수의 점 중 임의의 제1 점 및 제2 점을 선택받고, 제1 점 및 제2 점 사이에 존재하는 제3 점을 선택받는 경우, 제1 점, 제2 점 및 제3 점을 연결하는 선을 생성할 수 있다. 즉, 두개의 점을 선택받는 경우, 선택받은 두개의 점을 기준으로 객체의 외곽선을 이루는 두개의 선이 존재한다. 이에 따라, 객체 식별부(320)는 두개의 점 사이에 다른 한점을 선택받아, 경계선을 명확히 인식할 수 있다.Here, when the object identification unit 320 selects an arbitrary first point and a second point among a plurality of points and selects a third point that exists between the first point and the second point, the object identification unit 320 selects the first point and the second point. A line connecting two points and a third point can be created. That is, when two points are selected, there are two lines forming the outline of the object based on the two selected points. Accordingly, the object identification unit 320 can select a point that is different between two points and clearly recognize the boundary line.

경계선을 지정한 후에 객체 식별부(320)는 경계선을 제2 객체의 외곽선의 일부로 설정할 수 있다. 이때, 객체 식별부(320)는 경계선이 제1 객체의 외곽선과 구분되도록 색상을 달리하여 출력할 수 있다.After designating the boundary line, the object identification unit 320 may set the boundary line as part of the outline of the second object. At this time, the object identification unit 320 may output the boundary line in a different color to distinguish it from the outline of the first object.

또한, 객체 식별부(320)는 설정된 경계선을 기준으로 제2 객체의 외곽선을 지정할 수 있다.Additionally, the object identification unit 320 may designate the outline of the second object based on the set boundary line.

이때, 객체 식별부(320)는 이미지의 엣지를 추출하고, 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 식별된 적어도 하나의 객체 중 경계선을 포함하는 객체 중 제1 객체를 제외한 나머지 객체의 엣지를 제2 객체의 외곽선으로 지정할 수 있다.At this time, the object identification unit 320 extracts the edge of the image, identifies at least one object based on the extracted edge, and selects the remaining objects excluding the first object among the identified at least one object including the boundary line. The edge of can be designated as the outline of the second object.

또한, 객체 식별부(320)는 작업자로부터 제2 객체의 외곽선을 따라 복수의 점을 입력 받고, 경계선 및 복수의 점을 연결하여 제2 객체의 외곽선을 형성할 수 있다.Additionally, the object identification unit 320 may receive a plurality of points along the outline of the second object from the operator and connect the boundary line and the plurality of points to form the outline of the second object.

그리고, 객체 식별부(320)는 제1 객체의 외곽선 및 제2 객체의 외곽선의 너비를 합산한 너비로 경계선의 너비를 변경하고, 너비가 변경된 경계선을 인접(adjacent)한 두개의 선으로 구분하고, 구분된 두개의 선 각각을 제1 객체의 외곽선 및 제2 객체의 외곽선과 연결할 수 있다. 즉, 객체 식별부(320)는 입력받은 하나의 경계선을 서로 밀착되어 배치되는 두개의 경계선으로 생성하고, 생성된 두개의 경계선을 각 객체에 연결할 수 있다.Then, the object identification unit 320 changes the width of the borderline to the width of the sum of the widths of the outline of the first object and the outline of the second object, divides the borderline with the changed width into two adjacent lines, and , each of the two divided lines can be connected to the outline of the first object and the outline of the second object. That is, the object identification unit 320 can generate one input boundary line into two boundary lines arranged in close contact with each other, and connect the two created boundary lines to each object.

한편, 객체 식별부(320)는 상술한 방법 이외에 하기와 같이 객체를 식별할 수 있다.Meanwhile, the object identification unit 320 can identify objects as follows in addition to the above-described method.

구체적으로, 객체 식별부(320)는 인공지능(AI) 학습을 위한 어노테이션 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체의 외곽선을 지정할 수 있다.Specifically, the object identification unit 320 may specify the outlines of a plurality of objects arranged to overlap each other included in an image that is the target of an annotation task for artificial intelligence (AI) learning.

이때, 객체 식별부(320)는 작업자로부터 복수의 객체를 포함하는 외곽선을 따라 복수의 점을 입력 받고, 복수의 점을 연결하여, 복수의 객체에 대한 외곽선을 생성할 수 있다.At this time, the object identification unit 320 may receive a plurality of points input from the operator along an outline including a plurality of objects, connect the plurality of points, and generate outlines for the plurality of objects.

또한, 객체 식별부(320)는 이미지의 엣지(edge)를 추출하고, 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 작업자로부터 식별된 객체 중 복수의 객체를 선택받고, 추출된 엣지를 기초로 경계선을 제외한 선택받은 복수의 객체에 대한 외곽선을 생성할 수 있다.In addition, the object identification unit 320 extracts an edge of the image, identifies at least one object based on the extracted edge, receives a plurality of objects selected from the identified objects by the operator, and selects the extracted edge. As a basis, you can create outlines for multiple selected objects excluding boundary lines.

또한, 객체 식별부(320)는 통신부(305)를 통해 이미지와 동시에 라이다(lidar)로부터 획득된 점군 데이터를 수신할 수 있다. 객체 식별부(320)는 이미지와 동시에 라이다로부터 획득된 점군 데이터를 기초로, 지정된 외곽선 내부에 존재하는 점들 중 거리(depth)가 일정 범위(range)를 갖는 복수의 점군을 식별하고, 작업자로부터 복수의 점군 중 복수의 객체를 선택받고, 식별된 복수의 점군을 기초로 선택받은 복수의 객체에 대한 외곽선을 생성할 수 있다.Additionally, the object identification unit 320 may receive point cloud data obtained from lidar simultaneously with the image through the communication unit 305. The object identification unit 320 identifies a plurality of point clouds with a certain depth within a certain range among the points present inside the designated outline based on the point cloud data acquired from the lidar simultaneously with the image, and receives the information from the operator. A plurality of objects from among a plurality of point clouds may be selected, and outlines for the selected objects may be generated based on the identified plurality of point clouds.

그리고, 객체 식별부(320)는 복수의 객체를 포함하는 일부 영역을 바운딩 박스(bounding box)로 설정하고, 바운딩 박스 내측 영역에서 객체의 엣지를 추출하고, 추출된 엣지를 기준으로 객체(object)와 배경(background)을 구분하고, 배경을 삭제하여 복수의 객체의 외곽선을 지정할 수 있다.Then, the object identification unit 320 sets a partial area containing a plurality of objects as a bounding box, extracts the edge of the object from the area inside the bounding box, and identifies the object based on the extracted edge. You can specify the outlines of multiple objects by distinguishing between the background and the background and deleting the background.

복수의 객체에 대한 외곽선을 지정한 후에, 객체 식별부(320)는 지정된 외곽선 내에서 복수의 객체 사이의 경계선을 지정할 수 있다.After designating outlines for a plurality of objects, the object identification unit 320 may designate boundaries between the plurality of objects within the designated outlines.

여기서, 객체 식별부(320)는 추출된 엣지를 기초로 복수의 객체에 대한 외곽선 내에서 경계선을 식별할 수 있다. Here, the object identification unit 320 may identify a boundary line within the outline of a plurality of objects based on the extracted edges.

또한, 객체 식별부(320)는 작업자로부터 복수의 객체에 대한 외곽선 내부에 위치한 복수의 점을 입력 받고, 입력받은 복수의 점을 연결하여 경계선을 생성할 수 있다.Additionally, the object identification unit 320 may receive input from an operator as a plurality of points located inside the outline of a plurality of objects and connect the plurality of input points to create a boundary line.

또한, 객체 식별부(320)는 이미지와 동시에 라이다로부터 획득된 점군 데이터를 기초로, 지정된 외곽선 내부에 존재하는 점들 중 거리가 일정 범위를 갖는 복수의 점군을 식별하고, 복수의 점군 사이의 경계선을 복수의 객체 사이의 경계선으로 지정할 수 있다.In addition, the object identification unit 320 identifies a plurality of point clouds with a certain distance within a certain range among the points present inside the designated outline based on the point cloud data acquired from the lidar simultaneously with the image, and the boundary line between the plurality of point clouds. can be designated as a boundary line between multiple objects.

또한, 객체 식별부(320)는 지정된 외곽선 내부에 위치한 픽셀(pixel)의 RGB(Red, Green, Blue) 값을 기초로, 사전 설정된 값보다 유사한 RGB 값을 갖는 그룹을 생성하고, 생성된 그룹을 각각 객체로 인식하고, 인식된 객체의 경계선을 생성할 수 있다.In addition, the object identification unit 320 creates a group with RGB values similar to a preset value based on the RGB (Red, Green, Blue) values of pixels located inside the designated outline, and the created group is Each can be recognized as an object and the boundary line of the recognized object can be created.

또한, 객체 식별부(320)는 이미지와 동시에 라이다로부터 획득된 점군 데이터를 기초로, 지정된 외곽선 내부에 존재하는 점들 중 거리가 일정 범위를 갖는 복수의 점군을 식별하고, 작업자로부터 복수의 점군 중 하나의 객체를 선택받고, 선택받은 객체의 점군을 기초로 경계선을 생성할 수 있다.In addition, the object identification unit 320 identifies a plurality of point clouds with a certain distance within a certain range among the points present inside the designated outline based on the point cloud data acquired from the lidar simultaneously with the image, and selects a plurality of point clouds from the operator among the plurality of point clouds. One object can be selected and a boundary line can be created based on the point cloud of the selected object.

그리고, 객체 식별부(320)는 지정된 외곽선 내부의 엣지를 추출하고, 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 작업자로부터 식별된 객체 중 하나의 객체를 선택받고, 추출된 엣지를 기초로 경계선을 생성할 수 있다. 이때, 객체 식별부(320)는 생성된 경계선을 따라 사전 설정된 간격을 갖는 복수의 점을 생성하고, 작업자의 제어에 따라 복수의 점 중 적어도 하나의 점을 이동시켜 경계선을 수정할 수 있다.Then, the object identification unit 320 extracts an edge inside the specified outline, identifies at least one object based on the extracted edge, selects one object among the identified objects from the operator, and selects an object based on the extracted edge. You can create a boundary line with . At this time, the object identification unit 320 may generate a plurality of points having a preset interval along the generated boundary line, and modify the boundary line by moving at least one of the plurality of points under the control of the operator.

경계선을 지정한 후에, 객체 식별부(320)는 지정된 경계선을 기준으로 구획된 복수의 영역을 기준으로 복수의 객체를 각각 식별할 수 있다.After designating the boundary line, the object identification unit 320 may identify a plurality of objects based on a plurality of areas divided based on the designated boundary line.

다음 구성으로, 객체 속성 설정부(325)는 입출력부(310)를 통해 작업자로부터 객체의 속성 정보를 설정하기 위한 제어 신호를 입력받을 수 있다.In the following configuration, the object property setting unit 325 can receive a control signal for setting property information of an object from an operator through the input/output unit 310.

객체 속성 설정부(325)는 작업자의 제어에 의해 추천 정보의 목록 중에서 하나의 정보가 선택되면, 선택된 정보에 대응하는 객체의 유형에 따라 피드백(feedback)을 제공할 수 있다.When one piece of information is selected from the list of recommended information under the operator's control, the object attribute setting unit 325 may provide feedback according to the type of object corresponding to the selected information.

일 실시예로, 객체 속성 설정부(325)는 선택된 정보에 대응하는 객체의 유형에 따라 서로 다르게 설정된 색상 또는 투명도를 반영하여, 객체 내부의 영역과 관련된 사용자 인터페이스(User Interface, UI)를 변경할 수 있다.In one embodiment, the object property setting unit 325 may change the user interface (UI) related to the area inside the object by reflecting differently set colors or transparency depending on the type of object corresponding to the selected information. there is.

다음 구성으로, 결과물 생성부(330)는 어노테이션의 작업 결과물을 생성하여, 학습 데이터 생성 장치(200)에 전송할 수 있다.With the following configuration, the result generator 330 can generate an annotation work result and transmit it to the learning data generation device 200.

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

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

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

프로세서(350)는 메모리(355)에 상주된 어노테이션 방법이 구현된 소프트웨어(380a)에 따른 명령어를 기초로, 어노테이션 장치(300)의 동작 및 기능을 구현할 수 있다. 메모리(355)에는 어노테이션 방법이 구현된 소프트웨어(380a)가 상주(loading)될 수 있다. 송수신기(360)는 학습 데이터 생성 장치(200) 와 데이터를 송수신할 수 있다. 입출력장치(365)는 어노테이션 장치(300)의 동작에 필요한 데이터를 입력 받고, 이미지를 출력할 수 있다. 데이터 버스(370)는 프로세서(350), 메모리(355), 송수신기(360), 입출력장치(365) 및 스토리지(375)와 연결되어, 각각의 구성 요소 사이가 서로 데이터를 전달하기 위한 이동 통로의 역할을 수행할 수 있다.The processor 350 may implement the operations and functions of the annotation device 300 based on instructions according to the software 380a in which the annotation method is implemented, which resides in the memory 355. Software 380a implementing an annotation method may be loaded in the memory 355. The transceiver 360 can transmit and receive data with the learning data generating device 200. The input/output device 365 can receive data required for the operation of the annotation device 300 and output an image. The data bus 370 is connected to the processor 350, memory 355, transceiver 360, input/output device 365, and storage 375, and forms a moving path for transferring data between each component. can perform its role.

스토리지(375)는 어노테이션 방법이 구현된 소프트웨어(180a)의 실행을 위해 필요한 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API), 라이브러리(library) 파일, 리소스(resource) 파일 등을 저장할 수 있다. 스토리지(375)는 어노테이션 방법이 구현된 소프트웨어(380b)를 저장할 수 있다. 또한, 스토리지(375)는 어노테이션 방법의 수행에 필요한 정보들을 저장할 수 있다. 특히, 스토리지(375)는 어노테이션 작업의 대상이 되는 이미지를 저장하는 데이터베이스(385)를 포함할 수 있다.The storage 375 may store an application programming interface (API), a library file, a resource file, etc. required to execute the software 180a in which the annotation method is implemented. The storage 375 may store software 380b in which the annotation method is implemented. Additionally, the storage 375 may store information necessary to perform the annotation method. In particular, the storage 375 may include a database 385 that stores images that are subject to annotation work.

본 발명의 일 실시예에 따르면, 메모리(355)에 상주되거나 또는 스토리지(375)에 저장된 어노테이션 방법을 구현하기 위한 소프트웨어(380a, 380b)는 프로세서(350)가 작업자의 제어에 따라, 인공지능(Artificial Intelligence, AI) 학습을 위한 어노테이션(annotation) 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체 중 제1 객체의 외곽선을 지정하는 단계, 프로세서(350)가, 제1 객체와 중첩되어 배치된 제2 객체 사이의 경계선을 지정하는 단계, 프로세서(350)가, 경계선을 제2 객체의 외곽선의 일부로 설정하는 단계 및 프로세서(350)가, 경계선을 기준으로 제2 객체의 외곽선을 지정하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.According to one embodiment of the present invention, the software 380a, 380b for implementing the annotation method resident in the memory 355 or stored in the storage 375 is operated by the processor 350 under the control of the operator, using artificial intelligence (AI). A step of specifying the outline of a first object among a plurality of objects arranged overlapping each other included in an image that is the target of an annotation task for Artificial Intelligence (AI) learning, where the processor 350 A step of specifying a boundary line between overlapping second objects, where the processor 350 sets the boundary line as part of the outline of the second object, and where the processor 350 sets the outline of the second object based on the boundary line. It may be a computer program recorded on a recording medium to execute the specified steps.

본 발명의 다른 실시예에 따르면, 메모리(355)에 상주되거나 또는 스토리지(375)에 저장된 어노테이션 방법을 구현하기 위한 소프트웨어(380a, 380b)는 프로세서(350)가 작업자의 제어에 따라, 인공지능학습을 위한 어노테이션 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체의 외곽선을 지정하는 단계, 프로세서(350)가, 지정된 외곽선 내에서 복수의 객체 사이의 경계선을 지정하는 단계 및 프로세서(350)가, 지정된 경계선을 기준으로 구획된 복수의 영역을 기준으로 복수의 객체를 각각 식별하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.According to another embodiment of the present invention, the software 380a, 380b for implementing the annotation method resident in the memory 355 or stored in the storage 375 allows the processor 350 to perform artificial intelligence learning under the control of the operator. A step of specifying the outlines of a plurality of objects arranged to overlap each other included in an image that is the target of an annotation work for, a step of the processor 350 designating a boundary line between the plurality of objects within the specified outline, and the processor ( 350) may be a computer program recorded on a recording medium to execute the step of identifying a plurality of objects based on a plurality of areas divided based on a designated boundary line.

보다 구체적으로, 프로세서(350)는 ASIC(Application-Specific Integrated Circuit), 다른 칩셋(chipset), 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리(355)는 ROM(Read-Only Memory), RAM(Random Access Memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다. 송수신기(360)는 유무선 신호를 처리하기 위한 베이스밴드 회로를 포함할 수 있다. 입출력장치(365)는 키보드(keyboard), 마우스(mouse), 및/또는 조이스틱(joystick) 등과 같은 입력 장치 및 액정표시장치(Liquid Crystal Display, LCD), 유기 발광 다이오드(Organic LED, OLED) 및/또는 능동형 유기 발광 다이오드(Active Matrix OLED, AMOLED) 등과 같은 영상 출력 장치 프린터(printer), 플로터(plotter) 등과 같은 인쇄 장치를 포함할 수 있다. More specifically, the processor 350 may include an application-specific integrated circuit (ASIC), another chipset, a logic circuit, and/or a data processing device. The memory 355 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 360 may include a baseband circuit for processing wired and wireless signals. The input/output device 365 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.

본 명세서에 포함된 실시 예가 소프트웨어로 구현될 경우, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리(355)에 상주되고, 프로세서(350)에 의해 실행될 수 있다. 메모리(355)는 프로세서(350)의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서(350)와 연결될 수 있다.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 355 and can be executed by processor 350. Memory 355 may be internal or external to processor 350 and may be coupled to processor 350 by a variety of well-known means.

도 5에 도시된 각 구성요소는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(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. 5 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 constructed 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.

이하, 본 발명의 일 실시예에 따른 데이터 분류 방법을 설명하도록 한다.Hereinafter, a data classification method according to an embodiment of the present invention will be described.

도 6은 본 발명의 일 실시예에 따른 데이터 분류 방법을 설명하기 위한 순서도이다.Figure 6 is a flowchart for explaining a data classification method according to an embodiment of the present invention.

도 6을 참조하면, 먼저 S110 단계에서 학습 데이터 생성 장치는 적어도 하나의 학습 데이터 수집 장치에 이미지 수집을 요청할 수 있다.Referring to FIG. 6, first, in step S110, the learning data generating device may request image collection from at least one learning data collecting device.

다음으로, S120 단계에서 학습 데이터 생성 장치는 적어도 하나의 학습 데이터 수집 장치로부터 이미지들을 수신할 수 있다.Next, in step S120, the learning data generating device may receive images from at least one learning data collecting device.

다음으로, S130 단계에서 학습 데이터 생성 장치는 수신한 이미지들의 컬러 정보를 추출할 수 있다. 여기서, 컬러 정보는 픽셀(pixel)에 대한 RGB(Red, Green, Blue) 값 또는 컬러 코드(color code) 값이 될 수 있다.Next, in step S130, the learning data generating device may extract color information of the received images. Here, the color information may be an RGB (Red, Green, Blue) value or a color code value for a pixel.

여기서, 학습 데이터 생성 장치는 적어도 하나의 학습 데이터 수집 장치 각각에 부여된 식별자(identifier)를 기준으로 이미지들의 파일명 및 컬러 정보를 저장할 수 있다.Here, the learning data generating device may store the file name and color information of the images based on an identifier assigned to each of the at least one learning data collection device.

다음으로, S140 단계에서 학습 데이터 생성 장치는 이미지들 사이의 컬러 정보를 기준으로 노이즈 이미지를 분류할 수 있다. 즉, 학습 데이터 생성 장치는 이미지들 중 컬러 정보의 유사도가 사전 설정된 값보다 높은 이미지들 중 적어도 하나를 노이즈 이미지로 분류할 수 있다.Next, in step S140, the learning data generating device may classify noise images based on color information between images. That is, the learning data generating device may classify at least one of the images in which the similarity of color information is higher than a preset value as a noise image.

구체적으로, 학습 데이터 생성 장치는 동일한 식별자에 동일한 파일명을 갖는 이미지가 복수개로 존재하는 경우, 동일한 파일명을 갖는 이미지 중 적어도 하나를 노이즈 이미지로 분류할 수 있다. Specifically, when a plurality of images with the same file name and the same identifier exist, the learning data generating device may classify at least one of the images with the same file name as a noise image.

또한, 학습 데이터 생성 장치는 식별자가 상이하나 동일한 파일명이 복수개로 존재하는 경우, 동일한 파일명을 갖는 이미지 중 적어도 하나를 노이즈 이미지로 분류할 수 있다.Additionally, when there are multiple file names with different identifiers but the same file name, the learning data generating device may classify at least one of the images with the same file name as a noise image.

즉, 학습 데이터 생성 장치는 동일한 식별자에서 같은 이름의 파일이 중복되어 등록되거나, 다른 식별자로부터 동일한 파일이 중복되어 등록되는 경우를 사전 방지할 수 있다.In other words, the learning data generating device can prevent the case in which files with the same name are repeatedly registered with the same identifier or the same file is repeatedly registered with different identifiers.

또한, 학습 데이터 생성 장치는 이미지들을 시간 순으로 나열하고, 나열된 이미지들을 사전 설정된 개수로 그룹핑(grouping) 한 시퀀스 데이터를 생성하고, 시퀀스 데이터 별로 포함된 이미지들의 컬러 정보를 각각 비교하여 노이즈 이미지를 분류할 수 있다.In addition, the learning data generation device lists images in chronological order, generates sequence data by grouping the listed images into a preset number, and classifies noise images by comparing the color information of the images included in each sequence data. can do.

구체적으로, 학습 데이터 생성 장치는 생성된 시퀀스 데이터의 이미지들 각각에 포함된 객체의 엣지(edge)를 추출할 수 있다. 학습 데이터 생성 장치는 시퀀스 데이터 별로 연속된 이미지 사이의 엣지 변화량을 기준으로 이미지들의 유사도를 평가할 수 있다.Specifically, the learning data generating device may extract the edge of an object included in each image of the generated sequence data. The learning data generating device can evaluate the similarity of images based on the amount of edge change between consecutive images for each sequence data.

또한, 학습 데이터 생성 장치는 이미지들 중 유사도가 사전 설정된 값보다 높은 이미지들의 선명도(sharpness)를 산출하고, 산출된 선명도가 가장 높은 이미지를 제외한 나머지 이미지를 노이즈 이미지로 분류할 수 있다.In addition, the learning data generating device may calculate the sharpness of images whose similarity is higher than a preset value and classify the images other than the image with the highest calculated sharpness as noise images.

또한, 학습 데이터 생성 장치는 시퀀스 데이터 별로 연속된 이미지 사이의 유사도를 산출하고, 산출된 유사도를 기준으로 시퀀스 데이터 별 초당 프레임 수(frame per second)를 결정할 수 있다.Additionally, the learning data generating device can calculate the similarity between consecutive images for each sequence data and determine the number of frames per second for each sequence data based on the calculated similarity.

그리고, S150 단계에서 학습 데이터 생성 장치는 S140 단계에서 분류된 노이즈 이미지를 리스트화 하여 출력하거나, 노이즈 이미지로 분류된 이미지를 삭제할 수 있다.Then, in step S150, the learning data generating device may list and output the noise images classified in step S140 or delete the images classified as noise images.

이하, 본 발명의 다른 실시예에 따른 데이터 분류 방법을 설명하도록 한다.Hereinafter, a data classification method according to another embodiment of the present invention will be described.

도 7은 본 발명의 다른 실시예에 따른 데이터 분류 방법을 설명하기 위한 순서도이다.Figure 7 is a flowchart for explaining a data classification method according to another embodiment of the present invention.

도 7을 참조하면, 먼저, S210 단계에서 학습 데이터 생성 장치는 적어도 하나의 학습 데이터 수집 장치에 이미지 수집을 요청할 수 있다. 이때, 학습 데이터 생성 장치는 수집 조건을 포함하는 가이드 정보를 적어도 하나의 학습 데이터 수집 장치에 전송할 수 있다.Referring to FIG. 7, first, in step S210, the learning data generating device may request image collection from at least one learning data collecting device. At this time, the learning data generating device may transmit guide information including collection conditions to at least one learning data collection device.

다음으로, S220 단계에서 학습 데이터 생성 장치는 적어도 하나의 학습 데이터 수집 장치로부터 이미지들을 수신할 수 있다.Next, in step S220, the learning data generating device may receive images from at least one learning data collecting device.

다음으로, S230 단계에서 학습 데이터 생성 장치는 수집 조건과 대응하는 이미지 정보를 이미지들로부터 추출할 수 있다. 여기서, 이미지 정보는 파일 확장자, 이미지 해상도, 픽셀(pixel)에 대한 RGB(Red, Green, Blue) 값 및 컬러 코드(color code) 값 중 적어도 하나를 포함할 수 있다.Next, in step S230, the learning data generating device may extract image information corresponding to the collection conditions from the images. Here, the image information may include at least one of a file extension, image resolution, RGB (Red, Green, Blue) value for a pixel, and a color code value.

다음으로, S240 단계에서 학습 데이터 생성 장치는 추출한 이미지 정보를 가이드 정보와 비교하여, 수집 환경 또는 학습 데이터 수집 장치의 오류에 따른 노이즈 이미지를 분류할 수 있다.Next, in step S240, the learning data generating device may compare the extracted image information with guide information to classify noise images according to errors in the collection environment or the learning data collection device.

구체적으로, 학습 데이터 생성 장치는 샘플 이미지의 파일 확장자, 이미지 해상도, 픽셀에 대한 RGB 값 및 컬러 코드 값 중 적어도 하나를 포함하는 샘플 이미지 정보를 추출하고, 추출된 샘플 이미지 정보를 이미지들로부터 추출된 이미지 정보와 비교할 수 있다. 이때, 학습 데이터 생성 장치는 샘플 이미지와 유사도가 사전 설정된 값보다 낮은 이미지를 노이즈 이미지로 분류할 수 있다. 즉, 학습 데이터 생성 장치는 샘플 이미지와 파일 확장자 또는 이미지 해상도가 상이하거나, 픽셀(pixel)에 대한 RGB(Red, Green, Blue) 값 및 컬러 코드(color code) 값의 유사도가 사전 설정된 값보다 낮은 경우, 해당 이미지를 노이즈 이미지로 분류할 수 있다.Specifically, the learning data generating device extracts sample image information including at least one of the file extension of the sample image, image resolution, RGB value for a pixel, and color code value, and uses the extracted sample image information extracted from the images. It can be compared with image information. At this time, the learning data generating device may classify an image whose similarity to the sample image is lower than a preset value as a noise image. In other words, the learning data generating device has a different file extension or image resolution from the sample image, or the similarity of the RGB (Red, Green, Blue) values and color code values for the pixel is lower than the preset value. In this case, the image can be classified as a noise image.

또한, 학습 데이터 생성 장치는 이미지들을 시간 순으로 나열하고, 나열된 이미지들을 사전 설정된 개수로 그룹핑(grouping) 한 시퀀스 데이터를 생성하고, 시퀀스 데이터 별로 노이즈 이미지를 분류할 수 있다. Additionally, the learning data generating device may list images in chronological order, generate sequence data by grouping the listed images into a preset number, and classify noise images for each sequence data.

이때, 학습 데이터 생성 장치는 시퀀스 데이터 중 특정 이미지를 대상으로 전후 이미지의 유사도를 비교하고, 전후 이미지 사이의 유사도가 사전 설정된 값보다 높되, 전후 이미지와 상기 특정 이미지 사이의 유사도가 사전 설정된 값보다 낮은 경우, 특정 이미지를 노이즈 이미지로 판단할 수 있다.At this time, the learning data generating device compares the similarity of the before and after images for a specific image among the sequence data, and the similarity between the before and after images is higher than the preset value, but the similarity between the before and after images and the specific image is lower than the preset value. In this case, a specific image may be determined to be a noise image.

또한, 학습 데이터 생성 장치는 이미지들 각각에 포함된 객체의 엣지(edge)를 추출하고, 이미지들 각각에 포함된 객체를 검출하고, 검출된 객체의 위치 변화 값이 사전 설정된 값보다 높은 이미지를 노이즈 이미지로 분류할 수 있다. 즉, 학습 데이터 생성 장치는 이미지에 포함된 객체의 움직임의 정도를 통해 특정 이미지가 과속 방지턱을 넘는 과정에서 촬영된 이미지인지를 판단할 수 있다.In addition, the learning data generating device extracts the edges of the objects included in each of the images, detects the objects included in each of the images, and noises the images in which the position change value of the detected object is higher than the preset value. It can be classified as an image. In other words, the learning data generating device can determine whether a specific image is an image taken in the process of crossing a speed bump through the degree of movement of an object included in the image.

또한, 학습 데이터 생성 장치는 적어도 하나의 학습 데이터 수집 장치로부터 이미지들 각각의 메타 정보를 함께 수신할 수 있다. 여기서, 메타 정보는 이미지들 각각의 촬영 시점에서 학습 데이터 수집 장치의 위치 정보 및 속도 정보를 포함할 수 있다.Additionally, the learning data generating device may receive meta information for each of the images from at least one learning data collection device. Here, the meta information may include location information and speed information of the learning data collection device at the time of capturing each image.

학습 데이터 생성 장치는 학습 데이터 수집 장치가 이동한 경로를 포함하는 지도 정보에 포함된 과속 방지턱의 위치 정보를 기준으로 메타 정보와 비교하여, 과속 방지턱의 위치에서 촬영된 이미지를 노이즈 이미지로 분류할 수 있다.The learning data generation device can classify the image taken at the location of the speed bump as a noise image by comparing it with meta information based on the location information of the speed bump included in the map information including the path traveled by the learning data collection device. there is.

또한, 학습 데이터 생성 장치는 학습 데이터 수집 장치가 이동한 경로를 포함하는 지도 정보에 포함된 커브(curve)길의 위치 정보를 기준으로 메타 정보와 비교하여, 커브길의 위치에서 생성된 이미지를 노이즈 이미지로 분류할 수 있다.In addition, the learning data generation device compares the meta information based on the location information of the curved road included in the map information including the path traveled by the learning data collection device, and noises the image generated at the location of the curved road. It can be classified as an image.

또한, 학습 데이터 생성 장치는 시퀀스 데이터에서 연속된 이미지 사이의 유사도를 비교하고, 유사도가 사전에 설정된 값보다 낮은 이미지가 연속적으로 검출된 경우, 검출된 이미지들이 커브길에서 촬영된 이미지들로 판단하고, 검출된 이미지들을 노이즈 이미지로 분류할 수 있다.In addition, the learning data generation device compares the similarity between consecutive images in the sequence data, and when images with a similarity lower than a preset value are continuously detected, it determines that the detected images are images taken on a curved road. , the detected images can be classified as noise images.

또한, 학습 데이터 생성 장치는 시퀀스 데이터 별 연속된 이미지의 유사도를 기초로 노이즈 이미지를 분류하고, 분류된 노이즈 이미지 각각의 오류 종류를 추정할 수 있다.Additionally, the learning data generating device can classify noise images based on the similarity of consecutive images for each sequence data and estimate the type of error for each classified noise image.

구제적으로, 학습 데이터 생성 장치는 시퀀스 데이터 중 연속된 이미지 사이의 유사도를 비교하고, 제1 이미지와 연속된 제2 이미지 사이의 유사도가 사전 설정된 값보다 낮고, 제2 이미지와 연속된 제3 이미지와 제2 이미지의 유사도가 사전 설정된 값보다 높은 경우, 시퀀스 데이터에 포함된 이미지를 촬영한 카메라의 카메라 앵글(camera angle)이 변경된 오류로 판단할 수 있다. Specifically, the learning data generating device compares the similarity between consecutive images among the sequence data, and the similarity between the first image and the second consecutive image is lower than a preset value, and the similarity between the second image and the third consecutive image is lower than the preset value. If the similarity between and the second image is higher than a preset value, it can be determined as an error in which the camera angle of the camera that captured the image included in the sequence data has changed.

또한, 학습 데이터 생성 장치는 시퀀스 데이터 중 연속된 이미지 사이의 유사도를 비교하고, 유사도가 사전에 설정된 값보다 낮은 이미지가 사전 설정된 개수를 초과하는 경우, 시퀀스 데이터에 포함된 이미지를 촬영한 카메라의 결속 불량에 따른 오류로 판단할 수 있다.In addition, the learning data generation device compares the similarity between consecutive images in the sequence data, and if the number of images with similarity lower than a preset value exceeds the preset number, the camera that captured the images included in the sequence data is bound. It can be judged as an error due to a defect.

또한, 학습 데이터 생성 장치는 GPS(global positioning system) 좌표를 기초로 수신한 이미지들 및 사전 저장된 이미지를 매칭하고, 매칭된 이미지 사이의 유사도를 비교하여, 노이즈 이미지를 분류할 수 있다. Additionally, the learning data generating device may match received images and pre-stored images based on global positioning system (GPS) coordinates, compare the similarity between the matched images, and classify noise images.

또한, 학습 데이터 생성 장치는 각 이미지의 제1 변(side)을 구성하는 픽셀들과 제2 변을 구성하는 픽셀들 사이의 RGB 값의 유사도를 기준으로 제1 변 및 제2 변으로부터 각각 하나의 정점(vertex)을 식별하고, 제1 변 및 상기 제2 변으로부터 각각 식별된 두 정점을 연결한 선분을 추출할 수 있다. In addition, the learning data generating device generates one data from the first side and the second side based on the similarity of the RGB values between the pixels constituting the first side and the pixels constituting the second side of each image. A vertex may be identified, and a line segment connecting the two identified vertices may be extracted from the first side and the second side.

학습 데이터 생성 장치는 매칭된 이미지 각각에서 추출된 선분의 길이 및 각도 중 적어도 하나를 기준으로 사전 설정된 오차 범위를 벗어나는 경우, 카메라 앵글이 변경된 오류로 판단할 수 있다.If the learning data generating device deviates from a preset error range based on at least one of the length and angle of the line segment extracted from each matched image, it may be determined as an error in which the camera angle has changed.

하지만 이에 한정된 것은 아니고, 학습 데이터 생성 장치는 매칭된 이미지 각각에서 엣지(edge)를 추출하고, 추출된 엣지를 기초로 매칭된 이미지 각각에 포함된 객체를 식별하고, 식별된 객체의 위치 변화 값을 기초로 노이즈 이미지를 분류할 수 있다.However, it is not limited to this, and the learning data generating device extracts an edge from each matched image, identifies the object included in each matched image based on the extracted edge, and calculates the position change value of the identified object. Based on this, noise images can be classified.

또한, 학습 데이터 생성 장치는 이미지들과 동시에 획득된 라이다(lidar)를 통해 획득된 3D 점군(3D points group) 데이터를 더 수신할 수 있다. 학습 데이터 생성 장치는 3D 점군 데이터에 포함된 거리 정보를 기초로 매칭된 이미지 각각에 검출된 객체의 유형이 유동 객체 또는 정적 객체 인지 여부를 판단하고, 검출된 객체 중 정적 객체의 위치 변화 값을 기초로 상기 노이즈 이미지를 분류할 수 있다.Additionally, the learning data generating device may further receive 3D point group data acquired through lidar simultaneously with the images. The learning data generation device determines whether the type of object detected in each matched image is a moving object or a static object based on the distance information included in the 3D point cloud data, and based on the position change value of the static object among the detected objects. The noise image can be classified as follows.

그리고, S250 단계에서 학습 데이터 생성 장치는 분류된 노이즈 이미지를 리스트화 하여 출력하거나, 노이즈 이미지로 분류된 이미지를 삭제할 수 있다.Then, in step S250, the learning data generating device may list and output the classified noise images or delete the images classified as noise images.

이하, 본 발명의 일 실시예에 따른 작업 비용 예측 방법에 대하여 설명하도록 한다.Hereinafter, a method for predicting work costs according to an embodiment of the present invention will be described.

도 8는 본 발명의 일 실시예에 따른 작업 비용 예측 방법을 설명하기 위한 순서도이다.Figure 8 is a flowchart illustrating a method for predicting work costs according to an embodiment of the present invention.

도 8을 참조하면, S310 단계에서 학습 데이터 생성 장치는 인공지능 학습을 위하여 수행 예정인 어노테이션 작업과 관련된 프로젝트를 수행하기 위한 적어도 하나의 샘플 데이터를 인공지능 학습 장치(400)로부터 수신할 수 있다.Referring to FIG. 8, in step S310, the learning data generating device may receive from the artificial intelligence learning device 400 at least one sample data for performing a project related to annotation work scheduled to be performed for artificial intelligence learning.

다음으로, S320 단계에서 학습 데이터 생성 장치는 기 수행된 복수의 프로젝트에 포함된 기존 데이터를 샘플 데이터와 비교하고, 샘플 데이터와의 유사도가 사전 설정된 값보다 높은 기존 데이터가 포함된 적어도 하나의 프로젝트를 추출할 수 있다.Next, in step S320, the learning data generation device compares existing data included in a plurality of previously performed projects with sample data, and selects at least one project containing existing data whose similarity to the sample data is higher than a preset value. It can be extracted.

이때, 학습 데이터 생성 장치는 기존 데이터를 대상으로, 기존 데이터를 구성하고 있는 하나 이상의 분해 구성요소를 식별할 수 있다.At this time, the learning data generating device may target existing data and identify one or more decomposed components that constitute the existing data.

구체적으로, 샘플 데이터가 어노테이션 작업 대상이 되는 이미지에 해당되는 경우, 학습 데이터 생성 장치는 샘플 데이터에 해당되는 이미지를 대상으로, 사용자의 제어에 따라 어노테이션 작업을 수행할 수 있다. 그리고, 학습 데이터 생성 장치는 어노테이션 작업에 의해 이미지로부터 특정된 객체의 클래스와, 객체를 특정하기 위하여 사용된 툴을 샘플 데이터의 분해 구성요소로 식별할 수 있다Specifically, when the sample data corresponds to an image that is the target of annotation work, the learning data generating device may perform annotation work on the image corresponding to the sample data under user control. In addition, the learning data generation device can identify the class of the object specified from the image through annotation work and the tool used to specify the object as a decomposition component of the sample data.

또한, 학습 데이터 생성 장치는 샘플 데이터와의 유사도가 사전 설정된 값보다 높은 기존 데이터가 포함된 적어도 하나의 프로젝트를 추출할 수 있다. 이때, 학습 데이터 생성 장치는 인공지능 학습 장치로부터 샘플 이미지의 분해 구성요소에 대한 가중치를 입력 받고, 입력 받은 가중치를 고려하여, 기존 이미지와의 유사도를 평가할 수 있다.Additionally, the learning data generating device may extract at least one project containing existing data whose similarity to sample data is higher than a preset value. At this time, the learning data generating device may receive weights for the decomposition components of the sample image from the artificial intelligence learning device and evaluate the similarity with the existing image by considering the input weights.

또한, 학습 데이터 생성 장치는 샘플 이미지의 엣지(edge)를 추출하고, 추출된 엣지를 기초로 샘플 데이터에 포함된 객체를 검출하고, 객체의 RGB(Red, Green, Blue) 값을 기존 데이터에 포함된 객체의 RGB 값과 비교하여 유사도를 평가할 수 있다.In addition, the learning data generation device extracts the edge of the sample image, detects the object included in the sample data based on the extracted edge, and includes the RGB (Red, Green, Blue) value of the object in the existing data. Similarity can be evaluated by comparing with the RGB values of the object.

또한, 학습 데이터 생성 장치는 기 수행된 복수의 프로젝트 별로 각각 사전 저장된 대표 이미지를 샘플 이미지와 비교하고, 샘플 이미지와의 유사도가 사전 설정된 값보다 높은 복수의 대표 이미지를 인공지능 학습 장치에 전송하고, 인공지능 학습 장치로부터 복수의 대표 이미지 중 하나를 선택받을 수 있다.In addition, the learning data generation device compares representative images pre-stored for each of the plurality of previously performed projects with sample images, and transmits a plurality of representative images whose similarity to the sample image is higher than a preset value to the artificial intelligence learning device, One of multiple representative images can be selected from the artificial intelligence learning device.

이때, 학습 데이터 생성 장치는 샘플 이미지와의 유사도가 사전 설정된 값보다 높은 복수의 대표 이미지를 인공지능 학습 장치에 전송하되, 대표 이미지에 포함된 객체를 식별하고, 식별된 객체의 클래스가 기밀 정보로 사전 등록된 경우, 식별된 객체를 비식별(de-identify) 처리하여 인공지능 학습 장치(400)에 전송할 수 있다.At this time, the learning data generation device transmits a plurality of representative images with a similarity to the sample image higher than a preset value to the artificial intelligence learning device, identifies objects included in the representative images, and classifies the identified objects as confidential information. If pre-registered, the identified object can be de-identified and transmitted to the artificial intelligence learning device 400.

그리고, S330 단계에서 학습 데이터 생성 장치는 추출된 적어도 하나의 프로젝트를 기초로 수행 예정인 어노테이션 작업과 관련된 프로젝트를 수행하기 위하여 요구되는 전체 작업 비용을 예측할 수 있다. 이때, 학습 데이터 생성 장치는 수행 예정인 어노테이션 작업과 관련된 프로젝트의 데이터 수량을 입력 받고, 추출된 프로젝트의 비용 및 데이터 수량을 고려하여, 전체 작업 비용을 예측할 수 있다.And, in step S330, the learning data generation device may predict the total work cost required to perform a project related to annotation work to be performed based on at least one extracted project. At this time, the learning data generating device can receive the data quantity of the project related to the annotation work to be performed and predict the total work cost by considering the cost and data quantity of the extracted project.

또한, 학습 데이터 생성 장치는 샘플 데이터와 유사도가 사전 설정된 값보다 높은 기존 데이터가 포함된 복수의 프로젝트를 추출하고, 추출된 복수의 프로젝트의 작업 비용 평균값을 수행 예정인 프로젝트의 전체 작업 비용으로 예측할 수 있다.In addition, the learning data generation device extracts a plurality of projects containing existing data whose similarity to sample data is higher than a preset value, and predicts the average work cost of the extracted multiple projects as the total work cost of the project to be performed. .

그리고, 학습 데이터 생성 장치는 예측된 전체 작업 비용을 출력할 수 있다. 학습 데이터 생성 장치는 사용자의 제어에 따라, 전체 작업 비용을 수정할 수도 있다. 그리고, 학습 데이터 생성 장치는 예측 또는 수정된 전체 작업 비용을 인공지능 학습 장치에 전송할 수 있다.And, the learning data generating device can output the predicted total work cost. The learning data generating device may modify the overall task cost under user control. And, the learning data generating device can transmit the predicted or corrected total task cost to the artificial intelligence learning device.

이하, 본 발명의 일 실시예에 따른 어노테이션 방법에 대하여 설명하도록 한다.Hereinafter, an annotation method according to an embodiment of the present invention will be described.

도 9는 본 발명의 일 실시예에 따른 어노테이션 방법을 설명하기 위한 순서도이고, 도 10 내지 도 16은 본 발명의 일 실시예에 따른 어노테이션 방법을 설명하기 위한 예시도이다.Figure 9 is a flow chart for explaining an annotation method according to an embodiment of the present invention, and Figures 10 to 16 are exemplary diagrams for explaining an annotation method according to an embodiment of the present invention.

먼저, 도 10에 도시된 바와 같이, S410 단계에서 어노테이션 장치는 작업자의 제어에 따라, 인공지능(AI) 학습을 위한 어노테이션(annotation) 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체(A, B) 중 제1 객체(A)의 외곽선을 지정할 수 있다.First, as shown in FIG. 10, in step S410, the annotation device, under the control of the operator, includes a plurality of overlapping arrays included in the image that are the target of the annotation task for artificial intelligence (AI) learning. The outline of the first object (A) among the objects (A, B) can be specified.

이때, 도 11에 도시된 바와 같이, 어노테이션 장치는 작업자로부터 제1 객체(A)의 외곽선을 따라 복수의 점(point)을 입력 받고, 복수의 점을 연결하여 제1 객체(A)의 외곽선을 형성할 수 있다. 즉, 어노테이션 장치는 작업자가 지정한 점을 연결하여 폴리곤(polygon) 형태의 영역을 생성할 수 있다.At this time, as shown in FIG. 11, the annotation device receives a plurality of points along the outline of the first object (A) from the operator and connects the plurality of points to create an outline of the first object (A). can be formed. In other words, the annotation device can create a polygon-shaped area by connecting points specified by the operator.

다음으로, S420 단계에서 어노테이션 장치는 제1 객체(A)의 외곽선을 지정한 후에, 제1 객체(A)와 중첩되어 배치된 제2 객체(A) 사이의 경계선(borderline)을 지정할 수 있다.Next, in step S420, the annotation device may designate the outline of the first object (A) and then designate a borderline between the first object (A) and the overlapping second object (A).

구체적으로, 어노테이션 장치는 제1 객체(A)의 외곽선을 따라 생성된 복수의 점 중 적어도 하나의 점을 선택받고, 선택받은 적어도 하나의 점을 기초로 경계선을 지정할 수 있다.Specifically, the annotation device may select at least one point among a plurality of points created along the outline of the first object (A) and designate a boundary line based on the at least one selected point.

이때, 사용자에게 경계선에 해당하는 모든 점을 입력받는 것이 아니고, 도 12에 도시된 바와 같이, 어노테이션 장치는 복수의 점 중 임의의 두개의 점을 선택받고, 도 13에 도시된 바와 같이, 선택받은 두개의 점 사이에 존재하는 적어도 하나의 점을 연결하는 선을 생성하고, 생성된 선을 경계선으로 지정할 수 있다.At this time, rather than receiving all points corresponding to the borderline from the user, as shown in FIG. 12, the annotation device selects two arbitrary points among a plurality of points, and as shown in FIG. 13, the selected You can create a line connecting at least one point that exists between two points, and designate the created line as a boundary line.

다음으로, 도 14에 도시된 바와 같이, S430 단계에서 어노테이션 장치는 경계선을 지정한 후에 경계선을 제2 객체(B)의 외곽선의 일부로 설정할 수 있다. 이때, 어노테이션 장치는 경계선이 제1 객체(A)의 외곽선과 구분되도록 출력할 수 있다.Next, as shown in FIG. 14, in step S430, the annotation device may specify the boundary line and then set the boundary line as part of the outline of the second object (B). At this time, the annotation device can output the boundary line to be distinguished from the outline of the first object (A).

다음으로, 도 15에 도시된 바와 같이, S440 단계에서 어노테이션 장치는 설정된 경계선을 기준으로 제2 객체(B)의 외곽선을 지정할 수 있다.Next, as shown in FIG. 15, in step S440, the annotation device can specify the outline of the second object (B) based on the set boundary line.

이때, 어노테이션 장치는 작업자로부터 제2 객체(B)의 외곽선을 따라 복수의 점을 입력 받고, 경계선 및 복수의 점을 연결하여 제2 객체(B)의 외곽선을 형성할 수 있다.At this time, the annotation device may receive a plurality of points along the outline of the second object (B) from the operator and connect the boundary line and the plurality of points to form the outline of the second object (B).

또한, 어노테이션 장치는 이미지의 엣지를 추출하고, 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 식별된 적어도 하나의 객체 중 경계선을 포함하는 객체 중 제1 객체(A)를 제외한 나머지 객체의 엣지를 제2 객체(B)의 외곽선으로 지정할 수 있다.In addition, the annotation device extracts the edge of the image, identifies at least one object based on the extracted edge, and identifies the remaining objects except the first object (A) among the objects including the boundary line among the at least one identified object. The edge can be designated as the outline of the second object (B).

그리고, 도 16에 도시된 바와 같이, S450 단계에서 어노테이션 장치는 지정된 제1 객체(A) 및 제2 객체(B)를 각각 식별할 수 있다.And, as shown in FIG. 16, in step S450, the annotation device can identify the designated first object (A) and second object (B), respectively.

이하, 본 발명의 다른 실시예에 따른 어노테이션 방법에 대하여 설명하도록 한다.Hereinafter, an annotation method according to another embodiment of the present invention will be described.

도 17은 본 발명의 다른 실시예에 따른 어노테이션 방법을 설명하기 위한 순서도이고, 도 18 내지 도 21은 본 발명의 다른 실시예에 따른 어노테이션 방법을 설명하기 위한 예시도이다.Figure 17 is a flow chart for explaining an annotation method according to another embodiment of the present invention, and Figures 18 to 21 are exemplary diagrams for explaining an annotation method according to another embodiment of the present invention.

먼저, 도 18에 도시된 바와 같이, S510 단계에서 어노테이션 장치는 인공지능(AI) 학습을 위한 어노테이션 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수의 객체(A, B)의 외곽선을 지정할 수 있다. 이때, 복수의 객체의 외곽선은 경계선을 제외한 외곽선이 될 수 있다.First, as shown in FIG. 18, in step S510, the annotation device creates the outlines of a plurality of objects (A, B) arranged to overlap each other included in the image that is the target of the annotation task for artificial intelligence (AI) learning. You can specify. At this time, the outline of the plurality of objects may be an outline excluding the border line.

이때, 어노테이션 장치는 작업자로부터 복수의 객체를 포함하는 외곽선을 따라 복수의 점을 입력 받고, 복수의 점을 연결하여, 복수의 객체에 대한 외곽선을 생성할 수 있다.At this time, the annotation device may receive a plurality of points as input along an outline including a plurality of objects from the operator, connect the plurality of points, and generate outlines for the plurality of objects.

또한, 어노테이션 장치는 이미지의 엣지(edge)를 추출하고, 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 작업자로부터 식별된 객체 중 복수의 객체를 선택받고, 추출된 엣지를 기초로 경계선을 제외한 선택받은 복수의 객체에 대한 외곽선을 생성할 수 있다.In addition, the annotation device extracts the edge of the image, identifies at least one object based on the extracted edge, receives a plurality of objects selected from the identified objects by the operator, and draws a boundary line based on the extracted edge. You can create outlines for multiple selected objects, excluding them.

또한, 어노테이션 장치는 이미지와 동시에 라이다(lidar)로부터 획득된 점군 데이터를 기초로, 지정된 외곽선 내부에 존재하는 점들 중 거리(depth)가 일정 범위(range)를 갖는 복수의 점군을 식별하고, 작업자로부터 복수의 점군 중 복수의 객체를 선택받고, 식별된 복수의 점군을 기초로 선택받은 복수의 객체에 대한 외곽선을 생성할 수 있다.In addition, based on point cloud data acquired from lidar simultaneously with the image, the annotation device identifies a plurality of point clouds with a certain depth range among the points that exist inside the designated outline, and identifies the operator. A plurality of objects may be selected from among a plurality of point clouds, and outlines for the selected plurality of objects may be generated based on the identified plurality of point clouds.

그리고, 어노테이션 장치는 복수의 객체를 포함하는 일부 영역을 바운딩 박스(bounding box)로 설정하고, 바운딩 박스 내측 영역에서 객체의 엣지를 추출하고, 추출된 엣지를 기준으로 객체(object)와 배경(background)을 구분하고, 배경을 삭제하여 복수의 객체의 외곽선을 지정할 수 있다.Then, the annotation device sets a part of the area containing a plurality of objects as a bounding box, extracts the edge of the object from the area inside the bounding box, and creates the object and background based on the extracted edge. ), you can specify the outlines of multiple objects by deleting the background.

다음으로, 도 19에 도시된 바와 같이, 어노테이션 장치는 지정된 외곽선 내에서 복수의 객체 사이의 경계선을 지정할 수 있다.Next, as shown in FIG. 19, the annotation device can specify boundaries between a plurality of objects within a designated outline.

여기서, 어노테이션 장치는 S510 단계에서 추출된 엣지를 기초로 복수의 객체에 대한 외곽선 내에서 경계선을 식별할 수 있다. Here, the annotation device may identify a boundary line within the outline of a plurality of objects based on the edge extracted in step S510.

또한, 어노테이션 장치는 작업자로부터 복수의 객체에 대한 외곽선 내부에 위치한 복수의 점을 입력 받고, 입력받은 복수의 점을 연결하여 경계선을 생성할 수 있다.Additionally, the annotation device can receive input from a worker as a plurality of points located inside the outline of a plurality of objects and connect the plurality of input points to create a boundary line.

또한, 어노테이션 장치는 이미지와 동시에 라이다로부터 획득된 점군 데이터를 기초로, 지정된 외곽선 내부에 존재하는 점들 중 거리가 일정 범위를 갖는 복수의 점군을 식별하고, 복수의 점군 사이의 경계선을 복수의 객체 사이의 경계선으로 지정할 수 있다.In addition, based on point cloud data acquired from LiDAR simultaneously with the image, the annotation device identifies a plurality of point clouds with a certain distance within a certain range among the points that exist inside the designated outline, and marks the boundary between the plurality of point clouds as a plurality of objects. It can be specified as a boundary line between them.

또한, 어노테이션 장치는 지정된 외곽선 내부에 위치한 픽셀(pixel)의 RGB(Red, Green, Blue) 값을 기초로, 사전 설정된 값보다 유사한 RGB 값을 갖는 그룹을 생성하고, 생성된 그룹을 각각 객체로 인식하고, 인식된 객체의 경계선을 생성할 수 있다.In addition, the annotation device creates groups with RGB values similar to preset values based on the RGB (Red, Green, Blue) values of pixels located inside the specified outline, and recognizes each created group as an object. And the boundary line of the recognized object can be created.

또한, 어노테이션 장치는 이미지와 동시에 라이다로부터 획득된 점군 데이터를 기초로, 지정된 외곽선 내부에 존재하는 점들 중 거리가 일정 범위를 갖는 복수의 점군을 식별하고, 작업자로부터 복수의 점군 중 하나의 객체를 선택받고, 선택받은 객체의 점군을 기초로 경계선을 생성할 수 있다.In addition, based on point cloud data acquired from LiDAR simultaneously with the image, the annotation device identifies a plurality of point clouds with a certain distance within a certain range among the points that exist inside the designated outline, and selects one object from the plurality of point clouds from the operator. A boundary line can be created based on the point cloud of the selected object.

그리고, 어노테이션 장치는 지정된 외곽선 내부의 엣지를 추출하고, 추출된 엣지를 기초로 적어도 하나의 객체를 식별하고, 작업자로부터 식별된 객체 중 하나의 객체를 선택받고, 추출된 엣지를 기초로 경계선을 생성할 수 있다. 이때, 어노테이션 장치는 생성된 경계선을 따라 사전 설정된 간격을 갖는 복수의 점을 생성하고, 작업자의 제어에 따라 복수의 점 중 적어도 하나의 점을 이동시켜 경계선을 수정할 수 있다.Then, the annotation device extracts the edge inside the specified outline, identifies at least one object based on the extracted edge, selects one object among the identified objects from the operator, and creates a boundary line based on the extracted edge. can do. At this time, the annotation device can generate a plurality of points with a preset interval along the generated borderline, and modify the borderline by moving at least one of the plurality of points under the control of the operator.

그리고, 도 20에 도시된 바와 같이, 어노테이션 장치는 지정된 경계선을 기준으로 구획된 복수의 영역을 기준으로 복수의 객체를 각각 식별할 수 있다.And, as shown in FIG. 20, the annotation device can each identify a plurality of objects based on a plurality of areas divided based on a designated boundary line.

도 21은 본 발명의 일 실시예에 따른 데이터 분류 방법을 설명하기 위한 예시도이다.Figure 21 is an example diagram for explaining a data classification method according to an embodiment of the present invention.

도 21을 참조하면, 학습 데이터 생성 장치는 이미지들을 시간 순으로 나열하고, 나열된 이미지들을 사전 설정된 개수로 그룹핑(grouping) 한 시퀀스 데이터(sequence data)를 생성하고, 시퀀스 데이터 별로 포함된 이미지들의 컬러 정보를 각각 비교하여 노이즈 이미지를 분류할 수 있다.Referring to FIG. 21, the learning data generation device lists images in chronological order, generates sequence data by grouping the listed images into a preset number, and color information of the images included for each sequence data. You can classify noise images by comparing each.

구체적으로, 학습 데이터 생성 장치는 연속하는 제1 이미지(image A) 및 제2 이미지(image B) 각각의 RGB 값에 대한 컬러 히스토그램을 생성하고, 생성된 컬러 히스토그램을 기준으로 제1 이미지(image A) 및 제2 이미지(image B)의 유사도를 판단할 수 있다.Specifically, the learning data generating device generates a color histogram for the RGB values of each of the consecutive first images (image A) and the second image (image B), and creates a color histogram for the first image (image A) based on the generated color histogram. ) and the similarity of the second image (image B) can be determined.

학습 데이터 생성 장치는 제1 이미지(image A) 및 제2 이미지(image B)의 유사도가 사전 설정된 값보다 높은 경우, 제1 이미지(image A) 및 제2 이미지(image B) 중 적어도 하나를 노이즈 이미지로 판단할 수 있다.When the similarity between the first image (image A) and the second image (image B) is higher than a preset value, the learning data generating device noises at least one of the first image (image A) and the second image (image B). You can judge by the image.

이때, 학습 데이터 생성 장치는 이미지들 중 유사도가 사전 설정된 값보다 높은 이미지들의 선명도(sharpness)를 산출하고, 산출된 선명도가 가장 높은 이미지를 제외한 나머지 이미지를 노이즈 이미지로 분류할 수 있다.At this time, the learning data generating device may calculate the sharpness of images whose similarity is higher than a preset value and classify the remaining images as noise images except for the image with the highest calculated sharpness.

즉, 제1 이미지(image A) 및 제2 이미지(image B)의 유사도가 높게 판단된 경우, 특정 기준을 통해 제1 이미지(image A) 및 제2 이미지(image B) 중 하나를 제거해야 한다. 이를 위해, 학습 데이터 생성 장치는 선정된 제1 이미지(image A) 및 제2 이미지(image B) 중 선명도가 높은 이미지를 제외한 나머지 이미지를 노이즈 이미지로 분류하여 삭제할 수 있다.In other words, if the similarity between the first image (image A) and the second image (image B) is determined to be high, one of the first image (image A) and the second image (image B) must be removed based on specific criteria. . To this end, the learning data generating device may classify the remaining images, excluding the image with high clarity among the selected first image (image A) and second image (image B), as noise images and delete them.

도 22는 본 발명의 다른 실시예에 따른 데이터 분류 방법을 설명하기 위한 예시도이다.Figure 22 is an example diagram for explaining a data classification method according to another embodiment of the present invention.

도 22를 참조하면, 학습 데이터 생성 장치는 GPS(global positioning system) 좌표를 기초로 수신한 이미지들 및 사전 저장된 이미지를 매칭하고, 매칭된 이미지 사이의 유사도를 비교하여, 노이즈 이미지를 분류할 수 있다.Referring to FIG. 22, the learning data generating device matches received images and pre-stored images based on GPS (global positioning system) coordinates, compares the similarity between the matched images, and classifies noise images. .

즉, (A)에 도시된 바와 같이, 학습 데이터 생성 장치는 사전 저장된 이미지의 제1 변을 구성하는 픽셀들과 제2 변을 구성하는 픽셀들 사이의 RGB 값의 유사도를 기준으로 제1 변 및 제2 변으로부터 각각 하나의 정점(point A, B)을 식별할 수 있다. 이때, 식별된 각각 하나의 정점은 정적 객체인 가이드 레일이 될 수 있다.That is, as shown in (A), the learning data generating device determines the first side and One vertex (point A, B) can be identified from each second side. At this time, each identified vertex can be a guide rail, which is a static object.

학습 데이터 생성 장치는 제1 변 및 제2 변으로부터 각각 식별된 두 정점(point A, B)을 연결한 선분(line A)을 추출할 수 있다.The learning data generating device may extract a line segment (line A) connecting two identified vertices (points A and B) from the first side and the second side, respectively.

그리고, (B)에 도시된 바와 같이, 학습 데이터 생성 장치는 사전 저장된 이미지와 동일한 위치에 존재하는 이미지에서 제1 변을 구성하는 픽셀들과 제2 변을 구성하는 픽셀들 사이의 RGB 값의 유사도를 기준으로 제1 변 및 제2 변으로부터 각각 하나의 정점(point A, C)을 식별할 수 있다.And, as shown in (B), the learning data generating device measures the similarity of RGB values between the pixels constituting the first side and the pixels constituting the second side in the image existing at the same location as the pre-stored image. Based on , one vertex (point A, C) can be identified from the first side and the second side, respectively.

학습 데이터 생성 장치는 제1 변 및 제2 변으로부터 각각 식별된 두 정점(point A, C)을 연결한 선분(line B)을 추출할 수 있다.The learning data generating device may extract a line segment (line B) connecting two identified vertices (points A and C) from the first side and the second side, respectively.

그리고, 학습 데이터 생성 장치는 추출된 선분의 길이 및 각도 중 적어도 하나를 기준으로 사전 설정된 오차 범위를 벗어나는 경우, 카메라 앵글이 변경된 오류로 판단할 수 있다.Additionally, if the learning data generating device is outside a preset error range based on at least one of the length and angle of the extracted line segment, it may be determined as an error in which the camera angle has changed.

도 23 및 도 24는 본 발명의 또 다른 실시예에 따른 어노테이션 방법을 설명하기 위한 예시도이다.Figures 23 and 24 are exemplary diagrams for explaining an annotation method according to another embodiment of the present invention.

도 23 및 도 24를 참조하면, 본 발명의 또 다른 실시예에 따른 어노테이션 장치는 외곽선에 포함된 두 점과 작업자의 제어에 따라 입력된 복수 개의 점(point)들을 연속적으로 연결하여 설정된 복수 개의 간선을 포함시켜 경계선(borderline)을 지정할 수 있다.Referring to Figures 23 and 24, the annotation device according to another embodiment of the present invention has a plurality of trunk lines established by continuously connecting two points included in the outline and a plurality of points input under the control of the operator. You can specify a borderline by including .

객체 사이의 경계선을 지정함에 있어서, 어노테이션 장치는 작업자로부터 입력된 복수 개의 점들을 연결하는 간선을 기초로 객체 사이의 경계선을 지정하되, 객체의 엣지를 기초로 작업자로부터 지정된 경계선 사이의 점에 대한 보간(interpolation)을 수행할 수 있다.In specifying the boundary line between objects, the annotation device specifies the boundary line between objects based on an edge connecting a plurality of points input from the operator, and interpolates the points between the boundary lines specified by the operator based on the edge of the object. (interpolation) can be performed.

구체적으로, 도 24에 도시된 바와 같이, 어노테이션 장치는 지정된 외곽선 내부에 위치한 픽셀(pixel)의 RGB(Red, Green, Blue) 값을 기초로 지정된 외곽선 내부에 위치한 객체의 엣지(edge)를 추출하고, 간선(line)의 중심점을 기준으로 간선과 수직한 가상선을 생성할 수 있다.Specifically, as shown in FIG. 24, the annotation device extracts the edge of the object located inside the specified outline based on the RGB (Red, Green, Blue) values of the pixel located inside the specified outline, and , you can create a virtual line perpendicular to the main line based on the center point of the line.

그리고, 어노테이션 장치는 생성된 가상선과 추출된 엣지가 교차하는 지점(c)으로부터 중심점 사이의 거리(x)가 사전 설정된 값보다 큰 간선에 포함된 점을 보간할 수 있다.Additionally, the annotation device may interpolate points included in the trunk line where the distance (x) between the center point and the point (c) where the generated virtual line and the extracted edge intersect is greater than a preset value.

하지만, 이에 한정된 것은 아니고, 어노테이션 장치는 복수 개의 간선 각각의 길이가 사전 설정된 값을 초과하는 간선에 포함된 점을 보간할 수도 있다. 즉, 어노테이션 장치는 간선의 길이를 기준으로, 길이가 사전 설정된 값보다 긴 간선에 대하여 보간이 필요한 간선으로 판단하고, 해당 간선에 포함된 점에 대한 보간을 수행할 수 있다.However, the annotation device is not limited to this, and may interpolate points included in a plurality of trunk lines whose lengths exceed a preset value. That is, based on the length of the trunk line, the annotation device may determine that an trunk line whose length is longer than a preset value is an trunk line that requires interpolation, and may perform interpolation for points included in the trunk line.

일 실시예로, 어노테이션 장치는 가상선과 추출된 엣지가 교차하는 지점(c)에 보간을 위한 신규 점을 추가할 수 있다.In one embodiment, the annotation device may add a new point for interpolation at the point (c) where the virtual line and the extracted edge intersect.

또한, 어노테이션 장치는 사용자의 프로파일을 기초로 작업자로부터 입력된 점에 대한 보정을 수행할 수 있다.Additionally, the annotation device can correct points input from the operator based on the user's profile.

여기서, 사용자의 프로파일은 작업자가 점을 입력하기 위한 입력 도구 및 입력 도구를 사용하기 위한 작업자의 주 사용손에 대한 정보를 포함할 수 있다.Here, the user's profile may include information about the input tool for the worker to input points and the worker's dominant hand for using the input tool.

구체적으로, 어노테이션 장치는 작업자의 프로파일을 획득하고, 획득된 프로파일을 기초로 복수 개의 점들을 입력하기 위한 입력 도구 및 입력 도구를 사용하기 위한 주 사용손을 식별할 수 있다.Specifically, the annotation device can obtain the worker's profile and identify an input tool for inputting a plurality of points and a dominant hand for using the input tool based on the obtained profile.

예를 들어, 어노테이션 장치는 해당 작업자가 입력 도구로 마우스(mouse)를 사용하고, 오른손을 주 사용손으로 사용하는 것으로 식별할 수 있다.For example, the annotation device can identify that the worker uses a mouse as an input tool and uses the right hand as the dominant hand.

어노테이션 장치는 입력 도구 및 주 사용손에 따른 사전 저장된 보정 테이블로부터 식별된 입력 도구 및 주 사용손에 대응되는 보정 값을 획득하고, 획득된 보정 값을 기초로 작업자로부터 입력된 복수 개의 점들을 일괄적으로 보정할 수 있다.The annotation device acquires correction values corresponding to the identified input tool and dominant hand from a pre-stored correction table according to the input tool and dominant hand, and batches a plurality of points input from the operator based on the obtained correction values. It can be corrected.

예를 들어, 작업자가 마우스를 사용하고 오른손을 주 사용손으로 사용하는 경우, 해당 작업자에 의해 입력된 점은 마우스의 버튼을 입력하는 과정에서 왼쪽 아래 방향으로 치우치는 경향을 보인다.For example, when a worker uses a mouse and uses the right hand as the dominant hand, the points entered by the worker tend to be biased toward the bottom left during input with the mouse button.

이에 따라, 어노테이션 장치는 프로파일에 따른 보정 테이블을 사전 저장하고, 식별된 프로파일에 따라 입력된 복수 개의 점들을 일괄적으로 보정할 수 있다.Accordingly, the annotation device can pre-store a correction table according to the profile and collectively correct a plurality of points input according to the identified profile.

또한, 어노테이션 장치는 작업자를 대상으로 누적 기록된 보정 히스토리를 기초로 작업자로부터 입력된 복수 개의 점들을 일괄적으로 보정할 수 있다.Additionally, the annotation device can collectively correct a plurality of points input from the operator based on the correction history accumulated for the operator.

예를 들어, 어노테이션 장치는 프로파일에 따른 보정 테이블을 기초로 입력된 복수 개의 점들을 보정하되, 누적 기록된 보정 히스토리를 기초로 가중치를 부여하여 보정 강도를 조절할 수 있다.For example, the annotation device may correct a plurality of input points based on a correction table according to a profile and adjust the correction strength by assigning weights based on accumulated correction history.

그리고, 어노테이션 장치는 식별된 객체의 유형에 대응되는 3D 모델을 추출하여 작업자로부터 입력된 복수 개의 점을 검증할 수 있다.Additionally, the annotation device can extract a 3D model corresponding to the type of the identified object and verify a plurality of points input from the operator.

구체적으로, 어노테이션 장치는 식별된 객체의 외곽선을 기초로 객체의 유형을 추정하고, 추정된 객체의 유형별로 사전에 저장된 3D 모델을 추출할 수 있다.Specifically, the annotation device may estimate the type of the object based on the outline of the identified object and extract a 3D model stored in advance for each type of the estimated object.

예를 들어, 어노테이션 장치는 식별된 객체의 외곽선의 형태를 기초로 객체의 유형을 특정 자동차로 추정하고, 특정 자동차에 해당하는 3D 모델을 추출할 수 있다.For example, the annotation device may estimate the type of object as a specific car based on the shape of the outline of the identified object and extract a 3D model corresponding to the specific car.

어노테이션 장치는 추출된 3D 모델을 3D 회전시켜 객체의 촬영 방향을 식별하고, 식별된 촬영 방향에 대응하여 사전에 설정된 객체 별 필수 구성요소를 식별할 수 있다.The annotation device can rotate the extracted 3D model in 3D to identify the shooting direction of the object, and identify preset essential components for each object in response to the identified shooting direction.

예를 들어, 어노테이션 장치는 추출된 3D 모델을 3D 회전시키면서 식별된 객체와의 외곽선에 대한 유사도가 사전 설정된 값보다 높은 시점을 객체의 촬영 방향으로 식별할 수 있으며, 식별된 객체가 자동차의 경우, 타이어, 본네트, 사이드 미러, 트렁크 등을 필수 구성요소로 식별할 수 있다.For example, while rotating the extracted 3D model in 3D, the annotation device can identify a point in time when the similarity of the outline with the identified object is higher than a preset value in the shooting direction of the object. If the identified object is a car, Tires, bonnet, side mirrors, trunk, etc. can be identified as essential components.

이후, 어노테이션 장치는 식별된 객체의 폐쇄 영역 내에 필수 구성요소가 존재하는지 판단하여 작업자의 제어에 따라 입력된 점을 검증할 수 있다.Afterwards, the annotation device can determine whether essential components exist within the closed area of the identified object and verify the input points under the operator's control.

이때, 어노테이션 장치는 식별된 객체에 필수 구성요소가 존재하지 않는 경우, 해당 영역에 특정 기호를 표시하여 해당 영역을 작업자가 직관적으로 인지하여 해당 영역에 입력된 점을 보정할 수 있도록 할 수 있다.At this time, if an essential component does not exist in the identified object, the annotation device can display a specific symbol in the corresponding area so that the operator can intuitively recognize the area and correct the points entered in the area.

예를 들어, 어노테이션 장치는 3D 모델에서 식별된 필수 구성요소에 대한 외곽선을 인식된 객체에 이식하되 색상 또는 굵기를 달리하여 표시할 수 있다.For example, the annotation device can transplant the outlines of essential components identified in the 3D model to the recognized object and display them in different colors or thicknesses.

도 25 및 도 26은 중첩된 복수 개의 객체의 외곽선을 설명하기 위한 예시도이다.Figures 25 and 26 are example diagrams for explaining outlines of a plurality of overlapping objects.

먼저, 도 25에 도시된 바와 같이, S510 단계에서 어노테이션 장치는 인공지능(AI) 학습을 위한 어노테이션 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수 개의 객체의 외곽선을 지정할 수 있다. 이때, 복수 개의 객체의 외곽선은 경계선(borderline)을 제외한 외곽선이 될 수 있다.First, as shown in FIG. 25, in step S510, the annotation device may specify the outlines of a plurality of objects arranged to overlap each other included in an image that is the target of an annotation task for artificial intelligence (AI) learning. At this time, the outline of the plurality of objects may be the outline excluding the borderline.

이하에서는, 제1 객체(A), 제2 객체(B) 및 제3 객체(C)의 적어도 일부가 서로 중첩되어 배치된 것을 예로 설명하기로 한다.Hereinafter, an example will be given where at least part of the first object (A), second object (B), and third object (C) are arranged to overlap each other.

다음으로, 어노테이션 장치는 지정된 외곽선 내에서 제1 객체(A), 제2 객체(B) 및 제3 객체(C) 사이의 중첩된 경계선(borderline)을 지정할 수 있다.Next, the annotation device can specify an overlapped borderline between the first object (A), the second object (B), and the third object (C) within the designated outline.

도 25를 참조하여 구체적으로 설명하면, 어노테이션 작업의 대상이 되는 이미지에 서로 중첩된 제1 객체(A), 제2 객체(B), 제3 객체(C)가 존재할 경우, S510 단계는 제1 객체(A), 제2 객체(B), 제3 객체(C)를 포함하는 굵은 선(외곽선)을 지정하고, S520 단계는 굵은 선 내에서 제1 객체(A), 제2 객체(B), 제3 객체(C)의 중첩된 얇은 선(경계선, borderline)을 지정할 수 있다.To be described in detail with reference to FIG. 25, when there is a first object (A), a second object (B), and a third object (C) overlapping with each other in the image that is the target of the annotation work, step S510 is the first object (A), the second object (B), and the third object (C). Specify a thick line (outline) including the object (A), the second object (B), and the third object (C), and in step S520, the first object (A) and the second object (B) are drawn within the thick line. , You can specify an overlapping thin line (borderline) of the third object (C).

여기서, 얇은 선(경계선, borderline)은, 도 26에 도시된 바와 같이, 제1 객체(A)와 제3 객체(C)가 중첩되는 부분의 쇄선 경계선(BL1), 제1 객체(A)와 제2 객체(B)가 중첩되는 부분의 실선 경계선(BL2), 제2 객체(B)와 제3 객체(C)가 중첩되는 부분의 점선 경계선(BL3)으로 지정될 수 있으며, 이와 같이 지정된 각 경계선(BL1, BL2, BL3) 중 하나는 적어도 두 개의 객체의(A,B,C) 외곽선으로 형성된다.Here, the thin line (borderline) is, as shown in FIG. 26, the dashed line border line BL1 at the overlap between the first object A and the third object C, the first object A and It can be designated as a solid line boundary line (BL2) at the portion where the second object (B) overlaps, and a dotted line boundary line (BL3) at the portion where the second object (B) and the third object (C) overlap. One of the boundaries (BL1, BL2, BL3) is formed by the outlines of at least two objects (A, B, C).

즉, 쇄선 경계선(BL1)은, 제1 객체(A)의 외관선을 형성하는 동시에 제3 객체(C)의 외곽선을 형성할 수 있고, 실선 경계선(BL2)은, 제1 객체(A)의 외곽선을 형성하는 동시에 제2 객체(B)의 외곽선을 형성할 수 있으며, 점선 경계선(BL3)은, 제2 객체(B)의 외곽선을 형성하는 동시에 제3 객체(C)의 외곽선을 형성할 수 있다.That is, the dashed line border BL1 can form the outline of the first object A and at the same time the outline of the third object C, and the solid line border BL2 can form the outline of the first object A. It is possible to form the outline of the second object (B) at the same time as forming the outline, and the dotted border line (BL3) can form the outline of the second object (B) and the outline of the third object (C) at the same time. there is.

이를 통해, 본 발명은 폴리곤 기법으로 복수의 객체의 사이에 중첩된 경계선을 복수 개 생성(예, 제1 객체(A)와 제2 객체(B)의 경계선인 실선 경계선(BL2)를 각 객체의 외곽선으로 두 번 지정)했을 경우 두 번 지정된 실선 경계선(BL2)이 일치하지 않는 문제점을 해결할 수 있다.Through this, the present invention creates a plurality of overlapping boundary lines between a plurality of objects using a polygon technique (e.g., a solid line boundary line (BL2), which is the boundary line between the first object (A) and the second object (B), of each object. If it is specified twice as an outline, the problem that the twice-designated solid line boundary line (BL2) does not match can be solved.

이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적해석에 의해 선정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.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 : 데이터 정제부 230 : 데이터 납품부
235 : 저장부 305 : 통신부
310 : 입출력부 315 : 저장부
320 : 객체 식별부 325 : 객체 속성 설정부
330 : 결과물 생성부
100: Learning data collection device 200: Learning data generation device
300: Annotation device 400: Artificial intelligence learning device
205: communication unit 210: input/output unit
215: data design department 220: data collection department
225: data purification unit 230: data delivery unit
235: storage unit 305: communication unit
310: input/output unit 315: storage unit
320: Object identification unit 325: Object property setting unit
330: Result generation unit

Claims (10)

어노테이션 장치가, 작업자의 제어에 따라, 인공지능(Artificial Intelligence, AI) 학습을 위한 어노테이션(annotation) 작업의 대상이 되는 이미지에 포함된 서로 중첩되어 배치되는 복수 개의 객체를 포함하는 외곽선을 지정하는 단계;
상기 어노테이션 장치가, 상기 지정된 외곽선 내에 포함된 객체들을 서로 구분하기 위한 상기 복수 개의 객체들 사이의 경계선을 지정하는 단계; 및
상기 어노테이션 장치가, 상기 지정된 경계선을 기준으로 구획된 복수 개의 영역별로 상기 복수 개의 객체들을 각각 식별하는 단계; 를 포함하되,
A step in which the annotation device specifies an outline containing a plurality of objects arranged to overlap each other included in an image that is the target of annotation work for artificial intelligence (AI) learning, under the control of the operator. ;
specifying, by the annotation device, a boundary line between the plurality of objects to distinguish the objects included within the designated outline from each other; and
identifying, by the annotation device, each of the plurality of objects for each of a plurality of areas divided based on the designated boundary line; Including,
제1 항에 있어서,
상기 외곽선을 지정하는 단계는
서로 중첩되어 배치되는 적어도 제1 객체와 제2 객체를 포함하는 복수의 객체의 전체 외곽선을 지정하는 것을 특징으로 하고,
상기 경계선을 지정하는 단계는
상기 지정된 외곽선 내에서 상기 제1 객체와 상기 제2 객체 사이의 중첩된 경계선을 지정하는 것을 특징으로 하며,
상기 경계선은,
상기 제1 객체의 제2 객체와 중첩되는 부분의 외곽선을 형성하는 동시에, 상기 제2 객체의 제1 객체와 중첩되는 부분의 외곽선을 형성하는 것을 특징으로 하는, 어노테이션 방법.
According to claim 1,
The step of specifying the outline is
Characterized by specifying the entire outline of a plurality of objects including at least a first object and a second object arranged to overlap each other,
The step of specifying the boundary line is
Characterized by specifying an overlapped boundary line between the first object and the second object within the designated outline,
The boundary line is,
An annotation method characterized by forming an outline of a portion of the first object that overlaps with the second object and simultaneously forming an outline of a portion of the second object that overlaps with the first object.
제1 항에 있어서,
상기 경계선을 지정하는 단계는
상기 외곽선에 포함된 두 점과 상기 작업자의 제어에 따라 입력된 복수 개의 점들을 연속적으로 연결하여 설정된 복수 개의 간선을 포함시켜 상기 경계선을 지정하는 것을 특징으로 하는, 어노테이션 방법.
According to claim 1,
The step of specifying the boundary line is
An annotation method, characterized in that the boundary line is designated by including a plurality of trunk lines established by continuously connecting two points included in the outline and a plurality of points input under the control of the operator.
제1 항에 있어서, 상기 외곽선을 지정하는 단계는
상기 작업자로부터 상기 복수 개의 객체를 포함하는 외곽선을 따라 복수 개의 점을 입력 받고, 상기 복수 개의 점을 연결하여, 상기 복수 개의 객체에 대한 외곽선을 생성하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the step of designating the outline is
An annotation method, characterized in that: receiving a plurality of points along an outline including the plurality of objects from the worker, connecting the plurality of points, and generating an outline for the plurality of objects.
제1 항에 있어서, 상기 외곽선을 지정하는 단계는
상기 복수 개의 객체를 포함하는 일부 영역을 바운딩 박스(bounding box)로 설정하고, 상기 바운딩 박스 내측 영역에서 객체의 엣지를 추출하고, 상기 추출된 엣지를 기준으로 객체(object)와 배경(background)을 구분하고, 상기 배경을 삭제하여 상기 복수 개의 객체의 외곽선을 지정하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the step of designating the outline is
Set a partial area containing the plurality of objects as a bounding box, extract the edge of the object from the area inside the bounding box, and select the object and background based on the extracted edge. An annotation method, characterized in that designating the outline of the plurality of objects by distinguishing them and deleting the background.
제1 항에 있어서, 상기 경계선을 지정하는 단계는
상기 지정된 외곽선 내부에 위치한 픽셀(pixel)의 RGB(Red, Green, Blue) 값을 기초로 상기 지정된 외곽선 내부에 위치한 객체의 엣지를 추출하고, 상기 복수 개의 간선 각각의 중심점을 기준으로 간선과 수직한 가상선을 생성하며, 상기 생성된 가상선과 상기 추출된 엣지가 교차하는 지점으로부터 상기 중심점 사이의 거리가 사전 설정된 값보다 큰 간선에 포함된 점을 보간(interpolation)하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the step of designating the boundary line is
The edge of the object located inside the specified outline is extracted based on the RGB (Red, Green, Blue) value of the pixel located inside the specified outline, and the edge of the object located inside the specified outline is perpendicular to the edge based on the center point of each of the plurality of edges. An annotation method that generates a virtual line and interpolates points included in the edge where the distance between the center point and the point where the generated virtual line and the extracted edge intersect is greater than a preset value.
제6 항에 있어서, 상기 경계선을 지정하는 단계는
상기 가상선과 상기 추출된 엣지가 교차하는 지점에 보간을 위한 신규 점을 추가하는, 어노테이션 방법.
The method of claim 6, wherein the step of designating the boundary line is
An annotation method that adds a new point for interpolation at the point where the virtual line and the extracted edge intersect.
제6 항에 있어서, 상기 경계선을 지정하는 단계는
상기 복수 개의 간선 각각의 길이가 사전 설정된 값을 초과하는 간선에 포함된 점을 보간하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 6, wherein the step of designating the boundary line is
An annotation method, characterized in that interpolating points included in an edge whose length of each of the plurality of edges exceeds a preset value.
제1 항에 있어서, 상기 경계선을 지정하는 단계는
상기 작업자의 프로파일을 획득하고, 상기 획득된 프로파일을 기초로 상기 복수 개의 점들을 입력하기 위한 입력 도구 및 상기 입력 도구를 사용하기 위한 주 사용손을 식별하고, 보정 테이블로부터 상기 식별된 입력 도구 및 상기 주 사용손에 대응되는 보정 값을 획득하고, 상기 획득된 보정 값을 기초로 작업자로부터 입력된 복수 개의 점들을 일괄적으로 보정하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the step of designating the boundary line is
Obtain a profile of the worker, identify an input tool for inputting the plurality of points and a dominant hand for using the input tool based on the obtained profile, and identify the identified input tool and the An annotation method characterized by obtaining a correction value corresponding to the dominant hand and collectively correcting a plurality of points input from the operator based on the obtained correction value.
제1 항에 있어서, 상기 식별하는 단계는
상기 식별된 객체의 외곽선을 기초로 객체의 유형을 추정하고, 상기 추정된 객체의 유형별로 사전에 저장된 3D 모델을 추출하고, 상기 추출된 3D 모델을 3D 회전시켜 객체의 촬영 방향을 식별하고, 상기 식별된 촬영 방향에 대응하여 사전에 설정된 객체 별 필수 구성요소를 식별하고, 상기 식별된 객체의 폐쇄 영역 내에 필수 구성요소가 존재하는지 판단하여 상기 작업자의 제어에 따라 입력된 점을 검증하는 것을 특징으로 하는, 어노테이션 방법.
The method of claim 1, wherein the identifying step
Estimating the type of object based on the outline of the identified object, extracting a 3D model stored in advance for each type of the estimated object, rotating the extracted 3D model in 3D to identify the shooting direction of the object, and Characterized by identifying essential components for each preset object in response to the identified shooting direction, determining whether essential components exist within the closed area of the identified object, and verifying the input points under the operator's control. Annotation method.
KR1020230050696A 2022-04-19 2023-04-18 Method for annotation using boundary designation KR102658711B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020220048069 2022-04-19
KR20220048069 2022-04-19
KR1020220164783 2022-11-30
KR20220164783 2022-11-30

Publications (2)

Publication Number Publication Date
KR20230149255A true KR20230149255A (en) 2023-10-26
KR102658711B1 KR102658711B1 (en) 2024-04-24

Family

ID=88509045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230050696A KR102658711B1 (en) 2022-04-19 2023-04-18 Method for annotation using boundary designation

Country Status (1)

Country Link
KR (1) KR102658711B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200042629A (en) 2018-10-16 2020-04-24 주식회사 키센스 Method for generating annotation and image based on touch of mobile device to learn artificial intelligence and apparatus therefor
KR102305230B1 (en) * 2021-01-13 2021-09-27 셀렉트스타 주식회사 Method and device for improving accuracy of boundary information from image
KR102433002B1 (en) * 2021-12-21 2022-08-18 주식회사 인피닉 Annotation method through multiple binding box selection and a computer program recorded on a recording medium to execute the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200042629A (en) 2018-10-16 2020-04-24 주식회사 키센스 Method for generating annotation and image based on touch of mobile device to learn artificial intelligence and apparatus therefor
KR102305230B1 (en) * 2021-01-13 2021-09-27 셀렉트스타 주식회사 Method and device for improving accuracy of boundary information from image
KR102433002B1 (en) * 2021-12-21 2022-08-18 주식회사 인피닉 Annotation method through multiple binding box selection and a computer program recorded on a recording medium to execute the same

Also Published As

Publication number Publication date
KR102658711B1 (en) 2024-04-24

Similar Documents

Publication Publication Date Title
Hara et al. Tohme: detecting curb ramps in google street view using crowdsourcing, computer vision, and machine learning
CN112348846A (en) Artificial intelligence driven ground truth generation for object detection and tracking on image sequences
JP2019075116A (en) Method for acquiring bounding box corresponding to object on image by using cnn (convolutional neural network) including tracking network
WO2020047420A1 (en) Method and system for facilitating recognition of vehicle parts based on a neural network
US20150379371A1 (en) Object Detection Utilizing Geometric Information Fused With Image Data
CN117893845A (en) Method for providing AI model, AI platform, computing device and storage medium
EP3620958B1 (en) Learning method, learning device for detecting lane through lane model and testing method, testing device using the same
Huang et al. Spatial-temproal based lane detection using deep learning
KR102403169B1 (en) Method for providing guide through image analysis, and computer program recorded on record-medium for executing method therefor
KR102389998B1 (en) De-identification processing method and a computer program recorded on a recording medium to execute the same
JP7389787B2 (en) Domain adaptive object detection device and method based on multi-level transition region
WO2020007589A1 (en) Training a deep convolutional neural network for individual routes
KR102537943B1 (en) Image data labelling apparatus and method thereof
Wang et al. Instance segmentation of soft‐story buildings from street‐view images with semiautomatic annotation
CN114627397A (en) Behavior recognition model construction method and behavior recognition method
KR102658711B1 (en) Method for annotation using boundary designation
KR102599196B1 (en) Method for estimate job cost of work on generating training data, and computer program recorded on record-medium for executing method thereof
KR102546193B1 (en) Method for learning data classification using color information, and computer program recorded on record-medium for executing method thereof
KR102531917B1 (en) Method for annotation using boundary transplant, and computer program recorded on record-medium for executing method thereof
KR102546198B1 (en) Method for learning data classification based physical factor, and computer program recorded on record-medium for executing method thereof
KR102546195B1 (en) Method for learning data classification based on collection environment, and computer program recorded on record-medium for executing method thereof
CN113807315B (en) Method, device, equipment and medium for constructing object recognition model to be recognized
Barra et al. Can Existing 3D Monocular Object Detection Methods Work in Roadside Contexts? A Reproducibility Study
CN115565072A (en) Road garbage recognition and positioning method and device, electronic equipment and medium
KR102301635B1 (en) Method of inferring bounding box using artificial intelligence model and computer apparatus of inferring bounding box

Legal Events

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