KR102076075B1 - Method to generate data - Google Patents

Method to generate data Download PDF

Info

Publication number
KR102076075B1
KR102076075B1 KR1020190067995A KR20190067995A KR102076075B1 KR 102076075 B1 KR102076075 B1 KR 102076075B1 KR 1020190067995 A KR1020190067995 A KR 1020190067995A KR 20190067995 A KR20190067995 A KR 20190067995A KR 102076075 B1 KR102076075 B1 KR 102076075B1
Authority
KR
South Korea
Prior art keywords
image
training data
data
processor
computer program
Prior art date
Application number
KR1020190067995A
Other languages
Korean (ko)
Inventor
강정훈
Original Assignee
주식회사 수아랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 수아랩 filed Critical 주식회사 수아랩
Priority to KR1020190067995A priority Critical patent/KR102076075B1/en
Application granted granted Critical
Publication of KR102076075B1 publication Critical patent/KR102076075B1/en
Priority to PCT/KR2020/006149 priority patent/WO2020251172A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

Disclosed is a computer program stored in a computer readable storage medium. The computer program, when executed on one or more processors of a computing device, performs an operation for providing a method for generating learning data, and the operation comprises: identifying an object included in an image based on the image included in the first learning data; modifying the image based on at least a part of the object; and generating the second learning data including the modified image.

Description

데이터 생성 방법{METHOD TO GENERATE DATA}How to generate data {METHOD TO GENERATE DATA}

본 발명은 데이터 생성 방법에 관한 것으로, 보다 구체적으로 학습 데이터 생성 방법에 관한 것이다.The present invention relates to a method for generating data, and more particularly, to a method for generating training data.

기계 학습을 통하여 데이터의 분류를 수행하기 위하여, 기계 학습을 위한 학습 데이터 확보가 선행되어야 한다.In order to classify data through machine learning, securing learning data for machine learning must be preceded.

학습 데이터를 구성하는데 있어, 데이터의 클래스 별 불균형이 나타나는 문제가 있다. 예컨대, 반도체 공정에서 결함 반도체에 해당하는 데이터의 수는 결함이 없는 반도체에 해당하는 정상 반도체에 해당하는 데이터의 수 보다 적을 수 있다. 이러한 클래스의 불균형이 있는, 한쪽 클래스에 치우친 데이터의 집합을 통해 학습을 수행할 경우, 그 결과에 따른 네트워크 함수 모델의 정확도는 떨어질 수 있다.In constructing the training data, there is a problem in that an imbalance occurs in each class of data. For example, the number of data corresponding to the defective semiconductor in the semiconductor process may be less than the number of data corresponding to the normal semiconductor corresponding to the semiconductor having no defect. If the learning is performed through a set of skewed data in one class with such a class imbalance, the resulting network function model may be less accurate.

이에 따라, 학습 데이터를 구성하는데 있어, 데이터의 불균형 문제를 해결하기 위한 당업계의 요구가 존재한다.Accordingly, there is a need in the art to solve the imbalance problem of data in constructing the learning data.

대한민국 공개 특허 제2016-0012537호는 신경망 학습 방법 및 장치, 데이터 처리 장치를 개시한다.Republic of Korea Patent Publication No. 2016-0012537 discloses a neural network learning method and apparatus, data processing apparatus.

본 개시는 전술한 배경기술에 대응하여 안출 된 것으로, 데이터 생성 방법을 제공하는 것을 목적으로 한다.The present disclosure has been made in response to the above-described background, and an object thereof is to provide a data generation method.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따른 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작; 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작; 및 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 동작을 포함할 수 있다.A computer program stored in a computer readable storage medium according to an embodiment of the present disclosure for realizing the problems as described above, wherein the computer program is based on an image contained in the first learning data, the object contained in the image Identifying; Modifying an image based on at least a portion of the object; And generating second training data including the modified image.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작은, 상기 이미지에 포함된 관심 객체를 식별하는 동작을 포함할 수 있다.In an alternate embodiment of computer program operations for performing the following operations for generating training data, identifying an object included in the image based on the image included in the first training data is included in the image. May include identifying an object of interest.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 관심 객체는 라벨링된 객체를 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for learning data generation, the object of interest may comprise a labeled object.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 관심 객체는 어노말리 데이터를 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for generating training data, the object of interest may comprise anomaly data.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작은, 상기 이미지에 포함된 객체에 관한 세그먼테이션(segmentation)을 생성하는 동작을 포함할 수 있다.In an alternate embodiment of computer program operations for performing the following operations for generating training data, identifying an object included in the image based on the image included in the first training data is included in the image. And generating a segmentation of the segmented object.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은, 상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑(cropping)하는 동작을 포함할 수 있다.In an alternate embodiment of computer program operations to perform the following operations for generating training data, modifying the image based on at least a portion of the object crops the image to include at least a portion of the object. It may include an operation of cropping.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑하는 동작은, 상기 객체에 포함된 제 1 부분이 상기 크롭핑된 이미지에 포함되도록 상기 이미지를 크롭핑하는 동작을 포함할 수 있다.In an alternative embodiment of computer program operations for performing the following operations for generating training data, cropping the image to include at least a portion of the object may include: cropping the first portion included in the object. Cropping the image to be included in the pinged image.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑하는 동작은, 상기 객체에 포함된 제 1 부분과 상기 크롭핑된 이미지의 제 2 부분이 오버랩(overlap)되도록 상기 이미지를 크롭핑하는 동작을 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for generating training data, cropping the image to include at least a portion of the object includes: first cropping the object and the cropping portion; Cropping the image such that the second portion of the pinged image overlaps.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 제 2 부분은, 상기 크롭핑된 이미지의 중심에서 사전결정된 범위 안의 영역에 포함될 수 있다.In an alternative embodiment of computer program operations to perform the following operations for generating training data, the second portion may be included in an area within a predetermined range at the center of the cropped image.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은, 상기 객체의 적어도 일부를 제외한 이미지의 부분을 변형하는 동작을 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for generating training data, modifying an image based on at least a portion of the object may modify a portion of the image except at least a portion of the object. May include an action.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은, 상기 객체의 적어도 일부를 제외한 부분에 마스킹을 씌우는 동작을 포함할 수 있다.In an alternative embodiment of computer program operations for performing the following operations for generating training data, modifying an image based on at least a portion of the object comprises: masking a portion other than at least a portion of the object. It may include.

학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 제 1 학습 데이터 및 상기 제 2 학습 데이터를 포함하는 학습 데이터 세트를 생성하는 동작; 및 상기 학습 데이터 세트에 기초하여 하나 이상의 네트워크 함수를 포함하는 모델이 상기 모델에 입력된 이미지에 포함된 객체를 식별하도록 학습시키는 동작을 더 포함할 수 있다. In an alternate embodiment of computer program operations to perform the following operations for generating training data, generating an training data set comprising the first training data and the second training data; And training a model including one or more network functions to identify an object included in an image input to the model based on the training data set.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따른 학습 데이터 생성 방법으로서, 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 단계; 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 단계; 및 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 단계를 포함할 수 있다.A method of generating training data according to an embodiment of the present disclosure for realizing an object as described above, the method comprising: identifying an object included in the image based on an image included in first training data; Modifying an image based on at least a portion of the object; And generating second training data including the modified image.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따른 학습 데이터 생성 방법을 제공하기 위한 서버로서, 하나 이상의 코어를 포함하는 프로세서; 및 메모리를 포함하고, 상기 프로세서는, 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하고, 상기 객체의 적어도 일부에 기초하여 이미지를 변형하고, 그리고 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성할 수 있다.A server for providing a method of generating training data according to an embodiment of the present disclosure for realizing the above-mentioned problem, the server comprising: a processor including one or more cores; And a memory, wherein the processor is further configured to: identify an object included in the image based on the image included in the first training data, modify the image based on at least a portion of the object, and modify the modified image. The second training data may be generated.

본 개시는 데이터 생성 방법을 제공할 수 있다.The present disclosure can provide a data generation method.

도 1은 본 개시의 일 실시예에 따라 학습 데이터 생성 방법을 제공하기 위한 동작을 수행하는 컴퓨팅 장치의 블록 구성도를 도시한 도면이다.
도 2a, 2b, 2c는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 예시를 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 예시를 도시한 도면이다.
도 4는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 순서도이다.
도 5는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 블록 구성도이다.
1 is a block diagram of a computing device performing an operation for providing a method of generating training data according to an embodiment of the present disclosure.
2A, 2B, and 2C illustrate examples of a method of generating training data according to an embodiment of the present disclosure.
3 is a diagram illustrating an example of a method of generating training data according to an embodiment of the present disclosure.
4 is a flowchart of a method of generating training data according to an embodiment of the present disclosure.
5 is a block diagram of a computing device according to an embodiment of the present disclosure.

다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.Various embodiments are now described with reference to the drawings. In the present specification, various descriptions are presented to provide an understanding of the present disclosure. It may be evident, however, that such embodiments may be practiced without these specific details.

본 명세서에서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정(procedure), 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있다. 일 컴포넌트는 하나의 컴퓨터 내에 로컬화 될 수 있다. 일 컴포넌트는 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 컴포넌트들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통해 전송되는 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.As used herein, the terms “component”, “module”, “system” and the like refer to computer-related entities, hardware, firmware, software, a combination of software and hardware, or the execution of software. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, a thread of execution, a program, and / or a computer. For example, both an application running on a computing device and the computing device can be a component. One or more components can reside within a processor and / or thread of execution. One component can be localized within one computer. One component may be distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may be connected via a network such as the Internet and other systems via, for example, signals with one or more data packets (e.g., data and / or signals from one component that interacts with other components in a local system, distributed system). Data may be communicated via local and / or remote processes.

더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise or unambiguously in context, "X uses A or B" is intended to mean one of the natural implicit substitutions. That is, X uses A; X uses B; Or where X uses both A and B, "X uses A or B" may apply in either of these cases. In addition, the term "and / or" as used herein is to be understood to refer to and include all possible combinations of one or more of the listed related items.

또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.In addition, the terms "comprises" and / or "comprising" should be understood to mean that the corresponding features and / or components are present. It is to be understood, however, that the terms "comprises" and / or "comprising" do not exclude the presence or addition of one or more other features, components, and / or groups thereof. Also, unless otherwise specified or in the context of indicating a singular form, the singular in the specification and claims should generally be construed as meaning "one or more."

당업자들은 추가적으로 여기서 개시된 실시예들과 관련되어 설명된 다양한 예시 적 논리적 블록들, 구성들, 모듈들, 회로들, 수단들, 로직들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로 구현될 수 있음을 인식해야 한다. 하드웨어 및 소프트웨어의 상호교환성을 명백하게 예시하기 위해, 다양한 예시 적 컴포넌트들, 블록들, 구성들, 수단들, 로직들, 모듈들, 회로들, 및 단계들은 그들의 기능성 측면에서 일반적으로 위에서 설명되었다. 그러한 기능성이 하드웨어로 또는 소프트웨어로서 구현되는지 여부는 전반적인 시스템에 부과된 특정 어플리케이션(application) 및 설계 제한들에 달려 있다. 숙련된 기술자들은 각각의 특정 어플리케이션들을 위해 다양한 방법들로 설명된 기능성을 구현할 수 있다. 다만, 그러한 구현의 결정들이 본 개시내용의 영역을 벗어나게 하는 것으로 해석되어서는 안된다.Those skilled in the art will further appreciate that the various illustrative logical blocks, configurations, modules, circuits, means, logics, and algorithm steps described in connection with the embodiments disclosed herein may be electronic hardware, computer software, or a combination of both. It should be appreciated that it can be implemented with To clearly illustrate the interchangeability of hardware and software, various illustrative components, blocks, configurations, means, logics, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented in hardware or as software depends on the particular application and design constraints imposed on the overall system. Skilled artisans can implement the described functionality in a variety of ways for each particular application. However, such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니다. 본 발명은 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.The description of the presented embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be apparent to those of ordinary skill in the art. The general principles defined herein may be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present invention is not limited to the embodiments presented herein. The invention should be construed in the broadest scope consistent with the principles and novel features set forth herein.

본 개시의 일 실시예에서 서버는 서버의 서버 환경을 수행하기 위한 다른 구성들이 포함될 수도 있다. 서버는 임의의 형태의 장치는 모두 포함할 수 있다. 서버는 디지털 기기로서, 랩탑 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터, 웹 패드, 이동 전화기와 같이 프로세서를 탑재하고 메모리를 구비한 연산 능력을 갖춘 디지털 기기일 수 있다. 서버는 서비스를 처리하는 웹 서버일 수 있다. 전술한 서버의 종류는 예시일 뿐이며 본 개시는 이에 제한되지 않는다. In one embodiment of the present disclosure, the server may include other configurations for performing the server environment of the server. The server may include all types of devices. The server may be a digital device, and may be a digital device having a computing power including a processor and having a memory such as a laptop computer, a notebook computer, a desktop computer, a web pad, a mobile phone, and the like. The server may be a web server that handles services. The type of server described above is merely an example and the present disclosure is not limited thereto.

도 1은 본 개시의 일 실시예에 따라 학습 데이터 생성 방법을 제공하기 위한 동작을 수행하는 컴퓨팅 장치의 블록 구성도를 도시한 도면이다.1 is a block diagram of a computing device performing an operation for providing a method of generating training data according to an embodiment of the present disclosure.

본 개시의 일 실시예에 따른 학습 데이터 생성 방법을 제공하기 위한 컴퓨팅 장치(100)는 네트워크부(110), 프로세서(120) 및 메모리(130)를 포함할 수 있다.The computing device 100 for providing a method of generating training data according to an embodiment of the present disclosure may include a network unit 110, a processor 120, and a memory 130.

네트워크부(110)는 본 개시의 일 실시예에 따른 이미지, 제 1 학습 데이터, 제 2 학습 데이터 등을 다른 컴퓨팅 장치, 서버 등과 송수신할 수 있다.The network unit 110 may transmit and receive an image, first training data, second training data, and the like, according to an exemplary embodiment of the present disclosure.

프로세서(120)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 학습 데이터 생성을 수행하기 위한 프로세서를 포함할 수 있다. 프로세서(120)는 메모리(130)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 학습 데이터 생성 방법을 제공할 수 있다. 본 개시의 일 실시예에 따라 프로세서(120)는 학습 데이터 생성 방법을 제공하기 위한 계산을 수행할 수 있다.The processor 120 may include one or more cores, and may include a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of a computing device. and a processor for performing learning data generation, such as a unit). The processor 120 may read a computer program stored in the memory 130 to provide a method of generating training data according to an embodiment of the present disclosure. According to an embodiment of the present disclosure, the processor 120 may perform calculations to provide a method of generating learning data.

메모리(130)는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법을 제공하기 위한 컴퓨터 프로그램을 저장할 수 있으며, 저장된 컴퓨터 프로그램은 프로세서(120)에 의하여 판독되어 구동될 수 있다.The memory 130 may store a computer program for providing a method of generating learning data according to an embodiment of the present disclosure, and the stored computer program may be read and driven by the processor 120.

본 개시의 실시예들에 따른 메모리(130)는 프로세서(120)의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들 또는 이벤트들을 임시 또는 영구 저장할 수도 있다. 상기 메모리(130)는 디스플레이 및 음향에 관한 데이터를 저장할 수 있다. 메모리(130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory 130 according to embodiments of the present disclosure may store a program for the operation of the processor 120, and may temporarily or permanently store input / output data or events. The memory 130 may store data regarding a display and sound. The memory 130 may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD memory), RAM (Random Access Memory, RAM), Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM), Magnetic Memory, Magnetic It may include a storage medium of at least one type of disk, optical disk.

프로세서(120)는 제 1 학습 데이터에 기초하여 새로운 학습 데이터를 생성하는 데이터 어그멘테이션(augmentation)을 수행할 수 있다. 제 1 학습 데이터는 새로운 학습 데이터 생성의 기초가 되는 학습 데이터일 수 있다. 프로세서(120)는 제 1 학습 데이터에 기초하여 제 2 학습 데이터를 생성할 수 있다.The processor 120 may perform data augmentation to generate new training data based on the first training data. The first training data may be training data that is a basis for generating new training data. The processor 120 may generate second training data based on the first training data.

프로세서(120)는 하나 이상의 네트워크 함수를 포함하는 뉴럴 네트워크 모델을 학습하기 위한 학습 데이터 세트에서 학습 데이터가 부족한 클래스에 대하여 데이터 어그멘테이션을 수행할 수 있다. 뉴럴 네트워크 모델을 학습하기 위한 학습 데이터는 둘 이상의 클래스 각각에 대한 학습 데이터를 포함할 수 있다. 뉴럴 네트워크 모델은 데이터를 분류하기 위한 모델일 수 있다.The processor 120 may perform data aggregation on a class lacking training data in a training data set for training a neural network model including one or more network functions. Training data for training the neural network model may include training data for each of two or more classes. The neural network model may be a model for classifying data.

클래스 불균형은 각각의 클래스에 해당하는 학습 데이터의 비율에 편향이 있는 경우를 의미할 수 있다. 클래스 불균형이 있는 학습 데이터로 훈련된 뉴럴 네트워크 모델은 학습 데이터 내 비율이 높은 분류 쪽으로 결과를 출력하는 문제가 있을 수 있다. 예를 들어, 질병 학습 데이터 세트에서 1 퍼센트의 학습 데이터가 긍정 라벨을 가지고, 나머지 99 퍼센트의 학습 데이터가 부정 라벨을 가지는 경우 클래스 불균형에 해당한다. 예를 들어, 개체 분류 데이터 세트에서 0.48 퍼센트의 학습 데이터가 A 개체 라벨을 가지고, 나머지 0.52 퍼센트의 학습 데이터가 B 개체 라벨을 가지는 경우는 클래스 불균형에 해당하지 않는다. 본 개시에 따른 학습 데이터 생성 방법은 클래스 불균형이 있을 경우 이를 해소하기 위함이다.The class imbalance may refer to a case in which there is a bias in the ratio of training data corresponding to each class. A neural network model trained with training data with class imbalances may have the problem of outputting results toward a higher proportion of training data. For example, if one percent of the training data in a disease learning data set has a positive label and the remaining 99 percent of the training data has a negative label, it is a class imbalance. For example, if 0.48 percent of the training data in the entity classification data set has the A entity label and the remaining 0.52 percent of the training data has the B entity label, then this is not a class imbalance. The training data generation method according to the present disclosure is to solve the class imbalance if there is.

둘 이상의 클래스 각각에 대한 학습 데이터를 포함하는 학습 데이터 세트 중 일부 클래스에 대한 학습 데이터가 부족할 수 있다. 일부 클래스에 대한 학습 데이터가 부족한 상태에서 뉴럴 네트워크 모델에 대한 학습을 수행하는 경우, 학습 데이터가 부족한 클래스에 대해서는 정확한 학습 수행이 어려울 수 있다. 프로세서(120)는 학습 데이터 세트에 포함된 모든 클래스에 대하여 정확한 학습을 수행하기 위하여, 학습 데이터가 부족한 클래스에 대하여 데이터 어그멘테이션을 수행할 수 있다.Training data for some classes of the training data set that includes training data for each of the two or more classes may be insufficient. In the case where the neural network model is trained while the training data for some classes are insufficient, accurate training may be difficult for the classes lacking the training data. The processor 120 may perform data aggregation on a class lacking training data in order to perform accurate learning on all classes included in the training data set.

프로세서(120)는 학습 데이터가 부족한 클래스에 속하는 학습 데이터에 기초하여 데이터 어그멘테이션을 수행할 수 있다. 프로세서(120)는 복수의 클래스의 학습 데이터를 포함하는 학습 데이터 세트에 대해서, 상대적으로 부족한 학습 데이터를 포함하는 클래스에 대하여 데이터 어그멘테이션을 수행함으로써, 상대적으로 수가 부족한 클래스에 속하는 학습 데이터를 추가적으로 생성할 수 있다. The processor 120 may perform data aggregation based on learning data belonging to a class lacking learning data. The processor 120 additionally adds training data belonging to a relatively insufficient class by performing data aggregation on a class including training data that includes a plurality of classes of training data. Can be generated.

예를 들어, 프로세서(120)는 생산 공정에서 제품에 대한 결함 검사를 수행할 수 있다. 프로세서(120)가 제품에 대한 결함 검사를 수행하기 위한 뉴럴 네트워크 모델을 학습하기 위해서는, 결함이 있는 제품에 기초한 학습 데이터 및 결함이 없는 제품에 대한 학습 데이터를 포함하는 학습 데이터 세트가 필요할 수 있다. 결함이 있는 학습 데이터의 수가 결함이 없는 학습 데이터의 수 보다 적을 수 있다. 예를 들어, 결함이 없는 제품에 기초한 학습 데이터(즉, 정상 데이터(normal data))의 개수는 뉴럴 네트워크 모델의 학습을 위해 필요한 충분한 개수일 수 있고, 결함이 있는 제품에 기초한 학습 데이터(즉, 어노말리 데이터(anomaly data))의 개수는 뉴럴 네트워크 모델의 학습을 위해 필요한 개수보다 적을 수 있다. 생성되는 학습 데이터 및 그 클래스의 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다. For example, the processor 120 may perform defect inspection on a product in a production process. In order for the processor 120 to train a neural network model for performing defect checking on a product, a training data set may be required that includes training data based on a defective product and training data for a product without a defect. The number of defective training data may be less than the number of defective training data. For example, the number of training data based on products without defects (i.e., normal data) may be a sufficient number necessary for training the neural network model, and the training data based on defective products (i.e., normal data) The number of anomaly data may be smaller than the number necessary for training the neural network model. Specific description of the generated learning data and its class is only an example, and the present disclosure is not limited thereto.

프로세서(120)는 제 1 학습 데이터에 기초하여 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 1 학습 데이터에 기초하여 데이터 어그멘테이션을 수행하여 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 1 학습 데이터를 변형(transformation)하여 제 2 학습 데이터를 생성할 수 있다. 예를 들어, 제 1 학습 데이터의 변형은, 제 1 학습 데이터에 포함된 제 1 이미지의 적어도 일 부분을 반전, 랜덤(random)하게 자르거나, 마스킹(masking)을 씌우거나, 스케일링(scaling)을 하거나, 채도 또는 명도를 변경하거나, 노이즈를 더하거나, 회전하는 등의 방법을 포함할 수 있다. 전술한 변형에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.The processor 120 may generate second training data based on the first training data. The processor 120 may generate second training data by performing data aggregation based on the first training data. The processor 120 may transform the first training data to generate second training data. For example, the deformation of the first training data may invert, randomly crop, mask, or scale at least a portion of the first image included in the first training data. Or change the saturation or brightness, add noise, rotate, and the like. The detailed description of the above-described modification is only an example and the present disclosure is not limited thereto.

프로세서(120)는 제 1 학습 데이터 및 제 2 학습 데이터를 포함하는 학습 데이터 세트에 기초하여 뉴럴 네트워크 모델을 학습시킬 수 있다.The processor 120 may train the neural network model based on a training data set including the first training data and the second training data.

이하에서는 제 1 학습 데이터를 변형하는 방법에 관하여 구체적으로 설명한다. 이하에서는 제 1 학습 데이터를 변형하는 방법에 관하여 도 2a, 2b 및 2c를 참조하여 설명한다. 도 2a, 2b 및 2c는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 예시를 도시한 도면이다. 도 2a, 2b 및 2c에 도시된 이미지는 학습 데이터 생성 방법을 설명하기 위한 예시일 뿐이며 본 개시는 임의의 학습 데이터 및 임의의 이미지를 포함할 수 있다.Hereinafter, a method of transforming the first training data will be described in detail. Hereinafter, a method of transforming the first training data will be described with reference to FIGS. 2A, 2B, and 2C. 2A, 2B and 2C illustrate examples of a method of generating training data according to an embodiment of the present disclosure. The images shown in FIGS. 2A, 2B, and 2C are merely examples for explaining a method of generating training data, and the present disclosure may include any training data and any images.

도 2a는 제 1 학습 데이터에 포함된 제 1 이미지(300)를 크롭핑하는 방법을 도시하기 위한 개략도이다.2A is a schematic diagram illustrating a method of cropping a first image 300 included in first training data.

본 예시에서 제 1 학습 데이터는 뉴럴 네트워크 모델에 입력될 수 있는 입력 데이터와 상기 입력 데이터의 속성을 나타내는 라벨을 포함할 수 있으며, 입력 데이터는 예를 들어, 이미지로 구성될 수 있다. In the present example, the first training data may include input data that can be input to the neural network model and a label indicating an attribute of the input data, and the input data may be configured, for example, as an image.

프로세서(120)는 제 1 학습 데이터에 포함된 제 1 이미지(300)에서 객체(301)를 식별할 수 있다. 제 1 이미지(300)는 뉴럴 네트워크 모델의 학습을 위하여 뉴럴 네트워크 모델에 입력되는 이미지일 수 있다. 제 1 이미지(300)는 학습 데이터가 부족한 클래스에 해당하는 학습 데이터의 이미지일 수 있다. 전술한 예시에서, 제 1 이미지(300)는 결함이 있는 제품을 촬영한 이미지일 수 있다. 전술한 예시에서, 제 1 이미지(300)는 어노말리(예를 들어, 불량 등)를 포함하는 제품을 촬영한 이미지일 수 있다. 전술한 제 1 학습 데이터에 포함된 이미지에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.The processor 120 may identify the object 301 in the first image 300 included in the first training data. The first image 300 may be an image input to the neural network model for learning the neural network model. The first image 300 may be an image of the training data corresponding to the class lacking the training data. In the above example, the first image 300 may be an image of a defective product. In the above example, the first image 300 may be an image of a product including an anomaly (for example, a defective product). Specific description of the image included in the above-described first training data is only an example and the present disclosure is not limited thereto.

프로세서(120)는 제 1 이미지(300)에 포함된 객체(301)를 식별할 수 있다. 프로세서(120)는 객체(301)에 기초하여 제 1 이미지(300)를 변환하여 새로운 학습 데이터를 생성할 수 있다.The processor 120 may identify the object 301 included in the first image 300. The processor 120 may generate new training data by converting the first image 300 based on the object 301.

객체(301)는 관심 객체를 포함할 수 있다. 관심 객체는 제 1 이미지(300)에서 획득하고자 하는 특정 정보를 포함하고 있는 영역일 수 있다. 예를 들어, 제 1 이미지(300)를 통해 불량 여부를 검출하는 경우 특정 정보는 어노말리 데이터일 수 있으며, 관심 객체는 어노말리 영역일 수 있다. 관심 객체는 제 1 이미지(300)에서 뉴럴 네트워크 모델을 이용하여 연산하려고 하는 영역이거나 또는 뉴럴 네트워크 모델을 이용하여 연산하여 획득하고자 하는 영역일 수 있다.Object 301 may include an object of interest. The object of interest may be a region including specific information to be acquired in the first image 300. For example, when detecting whether a defect is detected through the first image 300, the specific information may be anomaly data, and the object of interest may be an anomaly region. The object of interest may be an area to be calculated using the neural network model in the first image 300 or an area to be calculated and obtained using the neural network model.

관심 객체는 라벨링된(labeled) 객체를 포함할 수 있다.The object of interest may include a labeled object.

본 개시의 일 실시예에 따른 라벨은 예를 들어 세그먼테이션 라벨일 수 있다. 세그먼테이션 라벨은 제 1 이미지(300)에 포함된 일부 영역을 이미지의 다른 영역과 구별되도록 표시한 것일 수 있다. 세그먼테이션 라벨은, 제 1 학습 데이터의 제 1 이미지(300)에 포함된 객체(301)에 대한 위치 정보를 표시하기 위한 라벨일 수 있다. 라벨링된 객체는 제 1 이미지(300)에 포함된 객체(301)를 이미지의 다른 영역과 구별되도록 표시된 것일 수 있다. 라벨링된 객체는 객체에 포함된 영역의 픽셀과 객체에 포함되지 않은 영역의 픽셀이 구별되도록 표시된 것일 수 있다. 예를 들어, 객체(301)가 어노말리 영역(예를 들어, 촬영된 이미지에서 불량이 식별되는 부분 등)일 경우, 라벨링된 객체는 제 1 이미지(300)에서 어노말리 영역에 관하여 어노말리 영역을 제외한 다른 영역과 구별되도록 표시한 것일 수 있다. 전술한 라벨링된 객체에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.The label according to an embodiment of the present disclosure may be, for example, a segmentation label. The segmentation label may indicate a partial region included in the first image 300 to be distinguished from other regions of the image. The segmentation label may be a label for displaying location information on the object 301 included in the first image 300 of the first training data. The labeled object may be displayed to distinguish the object 301 included in the first image 300 from other areas of the image. The labeled object may be displayed to distinguish pixels of an area included in the object from pixels of an area not included in the object. For example, if the object 301 is an anomaly region (eg, a portion where a defect is identified in the captured image, etc.), the labeled object is an anomaly region with respect to the anomaly region in the first image 300. It may be displayed to be distinguished from other areas except for. Specific description of the above-described labeled object is only an example and the present disclosure is not limited thereto.

본 개시의 다른 일 실시예에 따른 라벨은 분류 라벨일 수 있다. 분류 라벨은 제 1 이미지(300)가 어떤 클래스에 속하는지에 대한 정보를 표시한 것일 수 있다. 분류 라벨은 제 1 이미지(300)에 사용자가 이미지에서 획득하고자 하는 특정 정보가 포함되어 있는지 여부에 관하여 표시한 것일 수 있다. 예를 들어, 제품 공정에서 획득된 제품의 결함 검사를 수행할 경우, 해당 제품은 정상 또는 어노말리로 분류될 수 있다. 제품 공정에서 획득한 제품의 이미지에 대한 결함 검사를 하는 경우, 정상 및 어노말리 각각에 대한 클래스가 있을 수 있다. 어노말리 데이터를 포함하는 이미지는 어노말리 정보에 대한 라벨링이 될 수 있다. 어노말리 데이터를 포함하지 않고, 정상 데이터만을 포함하는 이미지는 정상 정보에 대한 라벨링이 될 수 있다. 전술한 라벨링된 객체에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.The label according to another embodiment of the present disclosure may be a classification label. The classification label may indicate information on which class the first image 300 belongs to. The classification label may be displayed as to whether the first image 300 includes specific information that the user wants to acquire from the image. For example, when performing a defect test of a product obtained in a product process, the product may be classified as normal or anomaly. In the case of defect inspection on the image of the product obtained in the product process, there may be classes for each of normal and anomaly. An image containing anomaly data may be a label for anomaly information. An image that does not contain anomaly data and contains only normal data may be labeled for normal information. Specific description of the above-described labeled object is only an example and the present disclosure is not limited thereto.

관심 객체는 어노말리 데이터를 포함할 수 있다. 제 1 학습 데이터의 제 1 이미지(300)에 포함된 객체(301)는 제 1 학습 데이터의 제 1 이미지(300)에 포함된 어노말리 데이터를 포함할 수 있다.The object of interest may include anomaly data. The object 301 included in the first image 300 of the first training data may include anomaly data included in the first image 300 of the first training data.

어노말리 데이터는 데이터의 정상 패턴에서 벗어난 데이터를 의미할 수 있다. 데이터는 비정형 패턴을 가질 수 있으며 어노말리 데이터는 이러한 비정형 패턴에서 벗어난 데이터를 의미할 수 있다. 예를 들어, 생산 공정에서 제품의 이미지에 관한 데이터는 정상 제품이라는 비정형 패턴을 가질 수 있으며, 어노말리 데이터는 정상 제품이라는 비정형 패턴에서 벗어난 데이터(즉, 예를 들어 불량 제품의 이미지 등)일 수 있다. 본 개시의 정상 데이터, 비정형 패턴, 어노말리 데이터에 관한 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.The anomaly data may refer to data that deviates from a normal pattern of data. The data may have an atypical pattern and the anomaly data may refer to data that deviates from this atypical pattern. For example, in a production process, data about an image of a product may have an atypical pattern called a normal product, and anomaly data may be data that deviates from the atypical pattern of a normal product (ie, an image of a bad product, etc.). have. The description of the normal data, the atypical pattern, and the anomaly data of the present disclosure is merely an example and the present disclosure is not limited thereto.

전술한 예시에서, 제 1 학습 데이터는 결함이 있는 제품에 대한 제 1 이미지(300)를 포함하는 학습 데이터일 수 있다. 제 1 학습 데이터는 뉴럴 네트워크 모델의 입력이 되는 제 1 이미지(300) 및 상기 뉴럴 네트워크 모델의 출력과 비교될 수 있는 라벨을 포함할 수 있다. 상기 제 1 학습 데이터의 라벨은, 뉴럴 네트워크 모델에 입력되는 제 1 이미지(300)에 포함된 객체(301)에 기초한 라벨일 수 있다. 상기 제 1 학습 데이터의 라벨은, 뉴럴 네트워크 모델에 입력되는 제 1 이미지(300)에 포함된 어노말리 데이터에 대한 라벨일 수 있다. 전술한 제 1 학습 데이터에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.In the above example, the first training data may be training data including a first image 300 for a defective product. The first training data may include a first image 300 that is an input of a neural network model and a label that can be compared with an output of the neural network model. The label of the first training data may be a label based on the object 301 included in the first image 300 input to the neural network model. The label of the first training data may be a label for anomaly data included in the first image 300 input to the neural network model. The detailed description regarding the first learning data described above is merely an example and the present disclosure is not limited thereto.

프로세서(120)는 제 1 학습 데이터에 포함된 제 1 이미지(300)의 어노말리 데이터에 대한 라벨을 식별할 수 있다.The processor 120 may identify a label for the anomaly data of the first image 300 included in the first training data.

프로세서(120)는 제 1 학습 데이터에 포함된 제 1 이미지(300)에 포함된 객체(301)를 식별할 수 있다. 프로세서(120)는 제 1 이미지(300)의 어노말리 데이터에 대한 라벨에 기초하여 제 1 이미지(300)에 포함된 객체(301)를 식별할 수 있다. 프로세서(120)는 제 1 이미지(300)의 어노말리 데이터에 대한 라벨에 기초하여 객체(301)에 관한 세그먼테이션을 수행할 수 있다.The processor 120 may identify the object 301 included in the first image 300 included in the first training data. The processor 120 may identify the object 301 included in the first image 300 based on a label for the anomaly data of the first image 300. The processor 120 may perform segmentation on the object 301 based on the label for the anomaly data of the first image 300.

본 개시의 일 실시예에 따라 제 1 학습 데이터에 포함된 제 1 이미지(300)에 매칭되는 라벨은 세그먼테이션 라벨일 수 있다. 프로세서(120)는 제 1 이미지(300)에 매칭되는 라벨인 세그먼테이션 라벨을 식별함으로써, 객체(301)에 관한 세그먼테이션을 수행할 수 있다. 제 1 이미지(300)에 포함된 객체(301)에 대한 세그먼테이션은 이미지의 일부를 상기 이미지의 다른 일부와 구분되도록 분리하는 과정을 의미할 수 있다. 이미지 세그먼테이션은 예를 들어, 이미지에서 추출된 엣지, 색상 등에 기초하여 이미지의 일부 영역을 다른 일부 영역과 구별되도록 분리하는 과정을 포함할 수 있다. 또한, 이미지 세그먼테이션은 이미지에서 어노말리 부분의 위치 정보를 추출하여 이미지의 다른 부분으로부터 어노말리 데이터의 위치를 식별하는 과정일 수 있다. 또한 이미지 세그먼테이션은 다른 일부와 구분된 이미지의 일부를 시각화 하여 표시하는 과정 또한 포함할 수 있다.According to an embodiment of the present disclosure, a label matching the first image 300 included in the first training data may be a segmentation label. The processor 120 may perform segmentation on the object 301 by identifying a segmentation label that is a label that matches the first image 300. Segmentation of the object 301 included in the first image 300 may refer to a process of separating a part of an image to be distinguished from another part of the image. The image segmentation may include, for example, separating a portion of the image to be distinguished from other portions based on the edge, color, etc. extracted from the image. In addition, the image segmentation may be a process of identifying the location of the anomaly data from another part of the image by extracting the location information of the anomaly part in the image. In addition, the image segmentation may also include a process of visualizing and displaying a part of the image separated from the other part.

본 개시의 다른 일 실시예에 따라 제 1 학습 데이터에 포함된 제 1 이미지(300)에 매칭되는 라벨은 분류 라벨일 수 있다. 프로세서(120)는 제 1 이미지(300)에 매칭되는 라벨이 분류 라벨인 경우, 다른 컴퓨팅 장치로부터 상기 분류 라벨의 기초가 되는 객체(301)에 대한 세그먼테이션 정보를 수신할 수 있다. According to another embodiment of the present disclosure, a label matching the first image 300 included in the first training data may be a classification label. When the label matching the first image 300 is a classification label, the processor 120 may receive segmentation information about the object 301 that is the basis of the classification label from another computing device.

예를 들어, 어노말리 데이터와 정상 데이터 각각에 대한 분류 라벨을 포함하는 학습 데이터 중 어노말리 데이터로 분류된 데이터들에 대한 데이터 어그멘테이션이 필요할 수 있다. 프로세서(120)는 어노말리 데이터를 포함하는 학습 데이터들을 사용자에게 네트워크부(110)를 통해 전송하거나 또는 인터페이스부(미도시)를 통해 제공하여 어노말리 객체에 대한 세그먼테이션을 수신하거나 또는 입력 받을 수 있다.For example, data aggregation of data classified as anomaly data among training data including classification labels for each of anomaly data and normal data may be required. The processor 120 may receive or receive segmentation on the anomaly object by transmitting learning data including anomaly data to the user through the network unit 110 or through an interface unit (not shown). .

프로세서(120)는 객체(301)의 적어도 일부에 기초하여 제 1 이미지(300)를 변형할 수 있다. 프로세서(120)는 제 1 이미지(300)를 변형하여 제 2 이미지를 생성할 수 있다. 프로세서(120)는 제 1 이미지(300)를 포함하는 제 1 학습 데이터에 기초하여 제 2 이미지를 포함하는 제 2 학습 데이터를 생성할 수 있다.The processor 120 may transform the first image 300 based on at least a portion of the object 301. The processor 120 may transform the first image 300 to generate a second image. The processor 120 may generate second training data including the second image based on the first training data including the first image 300.

본 개시의 일 실시예에 따라 프로세서(120)가 상기 객체(301)의 적어도 일부에 기초하여 제 1 이미지(300)를 변형하는 동작은, 상기 객체(301)의 적어도 일부를 포함하도록 상기 제 1 이미지(300)를 크롭핑(cropping)하는 동작을 포함할 수 있다. 프로세서(120)는 제 1 이미지(300)를 크롭핑하여 제 2 이미지(310, 311, 313)를 생성할 수 있다.프로세서(120)는 사전결정된 크기로 제 1 이미지(300)를 크롭핑할 수 있다. 크롭핑된 제 1 이미지(300)의 크기는 사전 결정된 크기일 수 있다. 프로세서(120)는 뉴럴 네트워크 모델에 기초하여 제 1 이미지(300)를 연산하기 위하여 사전결정된 크기로 제 1 이미지(300)를 크롭핑할 수 있다. 뉴럴 네트워크 모델에 입력되는 이미지의 크기는 뉴럴 네트워크 모델에 포함된 네트워크 함수에서의 연산량과 관계될 수 있다. 따라서, 프로세서(120)는 뉴럴 네트워크의 입력이 동일한 크기를 가지도록 제 1 이미지(300)를 크롭핑할 수 있다. 크롭핑은 제 1 이미지(300)의 적어도 일부만을 포함하도록 이미지의 적어도 일부를 제외한 영역을 자르는 것을 의미할 수 있다.According to an embodiment of the present disclosure, the operation of modifying the first image 300 based on at least a portion of the object 301 by the processor 120 may include the first to include at least a portion of the object 301. And cropping the image 300. The processor 120 may crop the first image 300 to generate second images 310, 311, and 313. The processor 120 may crop the first image 300 to a predetermined size. Can be. The size of the cropped first image 300 may be a predetermined size. The processor 120 may crop the first image 300 to a predetermined size to compute the first image 300 based on the neural network model. The size of the image input to the neural network model may be related to the amount of computation in the network function included in the neural network model. Thus, the processor 120 may crop the first image 300 such that the input of the neural network has the same size. Cropping may mean cutting an area excluding at least a portion of the image to include only at least a portion of the first image 300.

어노말리 데이터에 관한 학습 데이터의 데이터 어그멘테이션을 수행하기 위하여, 프로세서(120)는 제 1 이미지(300)를 크롭핑할 수 있다. 어노말리 데이터를 포함하는 제 1 이미지(300)를 다른 제약 조건 없이 랜덤 크롭핑을 하는 경우, 어노말리 데이터를 제외한 영역만을 포함하도록 크롭핑이 될 수 있고, 제 2 이미지는 어노말리 데이터를 포함하지 않을 수도 있다. 특히, 예를 들어 반도체에 대한 결함 검사를 수행하는 경우 반도체의 결함 부분은 이미지에서 매우 작은 크기일 수 있다. 따라서, 다른 제약 조건 없이 일반적인 랜덤 크롭핑을 통해 반도체 결함 이미지의 데이터 어그멘테이션을 수행하는 경우, 결함 부분을 포함하지 않도록 데이터 어그멘테이션이 수행될 확률이 높다. 예를 들어, 반도체의 어노말리 영역이 매우 작은 크기이고, 어노말리 영역이 제 1 이미지의 왼쪽에 치우쳐져 있고, 제 1 이미지의 오른쪽 영역만을 포함하도록 크롭핑이 된 경우, 제 2 이미지는 어노말리 영역을 전혀 포함하고 있지 않을 수 있다. 본 개시의 실시예에 따라 크롭핑을 수행하는 경우, 결함 부분의 적어도 일부가 포함되도록 크롭핑을 수행하므로 효율적인 데이터 어그멘테이션이 수행될 수 있다.The processor 120 may crop the first image 300 to perform data aggregation of the training data with respect to the anomaly data. When randomly cropping the first image 300 including the anomaly data without other constraints, the first image 300 may be cropped to include only the region excluding the anomaly data, and the second image may not include the anomaly data. It may not. In particular, when performing defect inspection on a semiconductor, for example, the defective portion of the semiconductor can be very small in the image. Therefore, when data aggregation of the semiconductor defect image is performed through general random cropping without any other constraints, the data aggregation is likely to be performed so as not to include the defect portion. For example, if the anomaly region of the semiconductor is very small, the anomaly region is biased to the left of the first image, and cropped to include only the right region of the first image, the second image is anomaly. It may not contain any area at all. When cropping is performed according to an exemplary embodiment of the present disclosure, since cropping is performed so that at least a part of the defective portion is included, efficient data aggregation may be performed.

프로세서(120)는 객체(301)의 적어도 일 부분이 포함되도록 제 1 이미지(300)를 변형하여 제 2 이미지를 생성할 수 있다. 프로세서(120)는 객체(301)의 적어도 일 부분이 포함되도록 제 1 이미지(300)의 크롭핑을 수행할 수 있다. 프로세서(120)는 어노말리 데이터의 적어도 일 부분이 포함되도록 제 1 이미지(300)의 크롭핑을 수행할 수 있다.The processor 120 may generate the second image by modifying the first image 300 to include at least a portion of the object 301. The processor 120 may crop the first image 300 to include at least a portion of the object 301. The processor 120 may crop the first image 300 to include at least a portion of the anomaly data.

프로세서(120)는 객체(301)에 포함된 제 1 부분(321)이 크롭핑된 이미지인 제 2 이미지(310, 311, 313)에 포함되도록 제 1 이미지(300)를 크롭핑할 수 있다. 제 1 부분(321)은 제 1 이미지(300)에 포함된 객체(301)의 적어도 일 영역일 수 있다. 제 1 부분(321)은 객체(301)에서 랜덤으로 결정된 영역일 수 있다. 제 1 부분(321)의 크기는 예를 들어, 1개의 픽셀에 해당하는 영역일 수도 있고, 더 큰 픽셀들에 해당하는 영역일 수도 있다. 예를 들어, 프로세서(120)는 제 2 이미지(310, 311, 313)가 객체(301)에 포함된 적어도 1개 픽셀에 해당하는 영역을 포함하도록 제 1 이미지(300)를 크롭핑할 수 있다. 전술한 크롭핑에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.The processor 120 may crop the first image 300 such that the first portion 321 included in the object 301 is included in the second images 310, 311, and 313 that are cropped images. The first portion 321 may be at least one area of the object 301 included in the first image 300. The first portion 321 may be a region randomly determined in the object 301. The size of the first portion 321 may be, for example, an area corresponding to one pixel or an area corresponding to larger pixels. For example, the processor 120 may crop the first image 300 such that the second images 310, 311, and 313 include an area corresponding to at least one pixel included in the object 301. . Specific description of the above-mentioned cropping is only an example and the present disclosure is not limited thereto.

프로세서(120)는 객체(301)에 포함된 제 1 부분(321)과 상기 크롭핑된 이미지의 제 2 부분(323, 325, 327)이 오버랩(overlap)되도록 상기 제 1 이미지(300)를 크롭핑할 수 있다. 프로세서(120)는 제 1 이미지(300)의 제 1 부분(321)과 크롭핑된 이미지인 제 2 이미지(310, 311, 313)의 제 2 부분(323, 325, 327)이 오버랩 되도록 제 1 이미지(300)를 크롭핑할 수 있다. 도 2a에 도시된 절개선에 기초하여 제 2 이미지(310, 311, 313)를 생성할 수 있다.The processor 120 crops the first image 300 such that the first portion 321 included in the object 301 overlaps the second portions 323, 325, and 327 of the cropped image. You can ping it. The processor 120 is configured such that the first portion 321 of the first image 300 overlaps the second portions 323, 325, and 327 of the second images 310, 311, and 313, which are cropped images. Image 300 can be cropped. The second images 310, 311, and 313 may be generated based on the cut line shown in FIG. 2A.

도 2c는 크롭핑된 제 2 이미지(310, 311, 313)를 예시적으로 도시한 도면이다.2C illustratively shows cropped second images 310, 311, and 313.

제 1 이미지(300)의 제 1 부분(321)과 제 2 이미지(310)의 제 2 부분(323, 325, 327)이 오버랩 되도록 제 1 이미지(300)를 크롭핑하여 제 2 이미지(310, 311, 313)를 생성할 수 있다.The second image 310 is cropped by cropping the first image 300 such that the first portion 321 of the first image 300 overlaps with the second portions 323, 325, and 327 of the second image 310. 311, 313 may be generated.

제 1 이미지(300)의 제 1 부분(321)의 크기와 제 2 이미지(310)의 제 2 부분(323, 325, 327)의 크기는 동일할 수도 있고, 또는 상이할 수도 있다. 제 1 이미지(300)의 제 1 부분(321)의 크기보다 제 2 이미지(310)의 제 2 부분(323, 325, 327)의 크기가 큰 경우, 제 2 이미지(310)의 제 2 부분(323, 325, 327)에 해당하는 영역에 제 1 부분(321)이 포함되도록 제 1 이미지(300)를 크롭핑할 수 있다.The size of the first portion 321 of the first image 300 and the size of the second portions 323, 325, 327 of the second image 310 may be the same or may be different. If the size of the second portion 323, 325, 327 of the second image 310 is greater than the size of the first portion 321 of the first image 300, the second portion of the second image 310 ( The first image 300 may be cropped to include the first portion 321 in the areas corresponding to 323, 325, and 327.

도 2b는 제 2 이미지(310, 311, 313)의 제 2 부분(323,325,327)을 결정하는 방법에 관하여 설명하기 위한 예시적인 도면이다.2B is an exemplary diagram for explaining a method of determining the second portions 323, 325, and 327 of the second images 310, 311, and 313.

제 2 부분(323,325,327)은 크롭핑된 이미지인 제 2 이미지(310, 311, 313)의 중심에서 사전결정된 범위 안의 영역(320)내에 포함될 수 있다. 도 2b에 도시된 제 2 이미지(310, 311, 313) 내의 실선으로 표시한 영역(320)은 제 2 부분(323,325,327)이 위치하면 안되는 버퍼 영역을 제외한 영역일 수 있다. 제 2 부분(323,325,327)은 크롭핑된 이미지인 제 2 이미지(310, 311, 313)의 버퍼 영역을 제외한 영역에 포함될 수 있다. 예를 들어, 버퍼 영역은 제 2 이미지(310, 311, 313)의 외각에서부터 20 퍼센트 면적에 해당하는 영역일 수 있다. 도 2b에서는 제 2 부분(323,325,327)이 포함되어야 하는 영역(320)을 사각형의 모양으로 도시하였으나, 본 발명은 이에 제한되는 것은 아니고, 다른 모양일 수도 있다. 전술한 버퍼 영역에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.The second portions 323, 325, 327 may be included in the region 320 within a predetermined range at the center of the second image 310, 311, 313, which is the cropped image. The region 320 indicated by a solid line in the second images 310, 311, and 313 illustrated in FIG. 2B may be an area except a buffer region where the second portions 323, 325, and 327 should not be located. The second portions 323, 325, and 327 may be included in regions other than the buffer regions of the second images 310, 311, and 313 that are cropped images. For example, the buffer area may be an area corresponding to 20 percent area from the outer edges of the second images 310, 311, and 313. In FIG. 2B, the region 320 in which the second portions 323, 325, and 327 are to be included is illustrated in a quadrangular shape. However, the present invention is not limited thereto and may have other shapes. Specific description of the above-described buffer region is only an example and the present disclosure is not limited thereto.

버퍼 영역이 없이 제 2 부분(323, 325, 327)이 결정되는 경우, 제 2 이미지(310, 311, 313)에는 어노말리 데이터가 극히 일부만 포함되어 있을 수 있다. 어노말리 데이터가 극히 일부만 포함되는 경우, 어노말리 학습 데이터로 사용하기 어려울 수 있다. 예를 들어, 제 1 부분(321)이 제 1 이미지(300)에 포함된 객체(301)의 가장 왼쪽 영역으로 결정되고, 제 2 부분이 제 2 이미지(310)의 가장 오른쪽 영역으로 결정된 경우, 제 2 이미지(310)에는 어노말리 데이터가 극히 일부만 포함되어 있을 수 있다. 따라서, 본 개시는 어노말리 학습 데이터로 사용할 수 있을 정도의 유의미한 어노말리 데이터를 제 2 이미지(310)가 포함하도록, 버퍼 영역을 고려하여 제 2 부분(323, 325, 327)을 결정할 수 있다.When the second portions 323, 325, and 327 are determined without the buffer area, only a portion of the anomaly data may be included in the second images 310, 311, and 313. If only a small portion of anomaly data is included, it can be difficult to use as anomaly training data. For example, when the first portion 321 is determined as the leftmost region of the object 301 included in the first image 300, and the second portion is determined as the rightmost region of the second image 310, Only a portion of the anomaly data may be included in the second image 310. Accordingly, the present disclosure may determine the second portions 323, 325, and 327 in consideration of the buffer area so that the second image 310 includes meaningful anomaly data that can be used as the anomaly learning data.

제 1 부분(220)과 제 2 부분(323, 325, 327)이 오버랩 되도록 제 1 이미지(300)를 크롭핑하여 새로운 학습 데이터인 제 2 학습 데이터에 포함되는 제 2 이미지(310)를 생성할 수 있다.The first image 300 is cropped to overlap the first portion 220 and the second portions 323, 325, and 327 to generate a second image 310 included in the second training data, which is new training data. Can be.

본 개시의 일 실시예에 따라 프로세서(120)가 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은, 프로세서(120)가 상기 객체의 적어도 일부를 제외한 이미지의 부분을 변형하는 동작을 포함할 수 있다. 이하에서는 도 3을 참조하여 설명한다. 도 3은 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 예시를 도시한 도면이다.According to an embodiment of the present disclosure, the operation of the processor 120 modifying the image based on at least a part of the object may include the operation of the processor 120 modifying a portion of the image except at least a portion of the object. Can be. A description with reference to FIG. 3 is as follows. 3 is a diagram illustrating an example of a method of generating training data according to an embodiment of the present disclosure.

프로세서(120)는 객체(301)의 적어도 일부를 제외한 부분에 마스킹을 씌울 수 있다. 마스킹은 뉴럴 네트워크 모델의 연산 시 연산에서 제외되도록 지정된 영역일 수 있다. 프로세서(120)는 객체(301)의 적어도 일부를 제외한 부분에 마스킹을 씌운 제 3 이미지(400)를 생성하여 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 3 이미지(400)를 뉴럴 네트워크 모델을 이용하여 연산하는 경우, 제 2 이미지에서 마스킹을 씌운 부분을 제외하고 연산할 수 있다. 도 3에서 마스킹을 씌운 부분은 이미지(400)에서 검정색으로 표시한 부분이다. 예를 들어, 도 3에 도시된 예시와 같이, 프로세서(120)는 객체(301)를 제외한 모든 부분에 마스킹을 씌울 수 있다. 예를 들어, 프로세서(120)는 객체(301)를 제외한 적어도 일 부분에 마스킹을 씌울 수 있다. 예를 들어, 프로세서(120)는 객체(301)에 포함된 제 1 부분(321)을 제외한 부분 중 적어도 일부에 마스킹을 씌울 수 있다. 전술한 마스킹에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.The processor 120 may mask a portion of the object 301 except at least a portion thereof. Masking may be an area designated to be excluded from the calculation when the neural network model is calculated. The processor 120 may generate second training data by generating a third image 400 masking a portion except at least a portion of the object 301. When the third image 400 is calculated using the neural network model, the processor 120 may calculate the portion except the masked portion of the second image. In FIG. 3, the masked portion is a portion marked in black in the image 400. For example, as shown in FIG. 3, the processor 120 may mask all portions except the object 301. For example, the processor 120 may mask at least one portion except for the object 301. For example, the processor 120 may mask at least some of the portions other than the first portion 321 included in the object 301. Specific description of the above-mentioned masking is only an example and the present disclosure is not limited thereto.

프로세서(120)는 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 1 학습 데이터에 기초하여 관심 객체의 적어도 일부를 포함하도록 크롭핑한 이미지를 생성하여 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 1 학습 데이터에 기초하여 관심 객체의 적어도 일부를 제외하도록 마스킹을 씌운 이미지를 생성하여 제 2 학습 데이터를 생성할 수 있다.The processor 120 may generate second training data including the modified image. The processor 120 may generate the second training data by generating an image cropped to include at least a part of the object of interest based on the first training data. The processor 120 may generate second training data by generating an image masked to exclude at least a portion of the object of interest based on the first training data.

프로세서(120)는 상기 제 1 학습 데이터 및 상기 제 2 학습 데이터를 포함하는 학습 데이터 세트를 생성할 수 있다. 프로세서(120)는 기존 학습 데이터 세트에 포함된 제 1 학습 데이터에 기초하여 데이터 어그멘테이션을 수행할 수 있다. 프로세서(120)는 기존 학습 데이터 세트에 포함되어 있던 제 1 학습 데이터 및 데이터 어그멘테이션을 통해 생성한 제 2 학습 데이터를 포함하는 새로운 학습 데이터 세트를 생성할 수 있다.The processor 120 may generate a training data set including the first training data and the second training data. The processor 120 may perform data aggregation based on the first training data included in the existing training data set. The processor 120 may generate a new training data set including first training data included in the existing training data set and second training data generated through data aggregation.

프로세서(120)는 상기 학습 데이터 세트에 기초하여 하나 이상의 네트워크 함수를 포함하는 모델이 상기 모델에 입력된 이미지에 포함된 객체를 식별하도록 학습시킬 수 있다.The processor 120 may train a model including one or more network functions to identify an object included in an image input to the model based on the training data set.

본 개시의 일 실시예에 따라, 학습 데이터 세트는 제 1 학습 데이터 및 제 2 학습 데이터를 포함할 수 있다. 학습 데이터 세트에 포함된 둘 이상의 학습 데이터 각각은 결함 검사 대상 제품 이미지 및 상기 제품 이미지에 기초한 결함 여부가 라벨링된 정보를 포함할 수 있다. 예를 들어, 제 1 학습 데이터에 포함된 제 1 이미지 및 라벨에 기초하여 제 2 학습 데이터를 생성한 경우, 제 2 학습 데이터는 제 1 이미지를 변형한 제 2 이미지 및 라벨을 포함할 수 있다.According to one embodiment of the present disclosure, the training data set may include first training data and second training data. Each of the at least two training data included in the training data set may include a defect inspection target product image and information labeled whether a defect is based on the product image. For example, when the second training data is generated based on the first image and the label included in the first training data, the second training data may include the second image and the label modified from the first image.

프로세서(120)는 뉴럴 네트워크 모델을 학습하여 생성하기 위하여 학습 데이터를 뉴럴 네트워크 모델의 입력 노드에 입력시키고, 뉴럴 네트워크 모델의 출력 레이어에서 연산하여 출력한 결함 여부 데이터과 학습 데이터에 포함된 라벨에 기초하여 뉴럴 네트워크 모델의 가중치를 조정할 수 있다. 프로세서(120)는 오차에 기초하여 뉴럴 네트워크 모델의 하나 이상의 네트워크 함수에 포함된 출력 레이어로부터 하나 이상의 히든 레이어를 거쳐 입력 레이어로 전파함으로써, 각각의 링크에 설정된 가중치를 업데이트하여 뉴럴 네트워크 모델을 학습시킬 수 있다.The processor 120 inputs the training data to an input node of the neural network model to learn and generate the neural network model, and based on the defect presence data calculated at the output layer of the neural network model and the label included in the training data. The weight of the neural network model can be adjusted. The processor 120 propagates from the output layer included in the one or more network functions of the neural network model through the one or more hidden layers to the input layer based on the error, thereby updating the weights set in each link to train the neural network model. Can be.

도 4는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 순서도이다.4 is a flowchart of a method of generating training data according to an embodiment of the present disclosure.

컴퓨팅 장치(100)는 학습 데이터가 부족한 클래스에 대한 제 1 학습 데이터에 기초하여 데이터 어그멘테이션을 수행할 수 있다. 컴퓨팅 장치(100)는 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별(610)할 수 있다. The computing device 100 may perform data aggregation based on the first training data for the class lacking the training data. The computing device 100 may identify an object included in the image based on the image included in the first training data (610).

컴퓨팅 장치(100)는 상기 이미지에 포함된 관심 객체를 식별할 수 있다.The computing device 100 may identify the object of interest included in the image.

관심 객체는 라벨링된 객체를 포함할 수 있다.The object of interest may include a labeled object.

본 개시의 일 실시예에 따른 라벨은 세그먼테이션 라벨일 수 있다. 세그먼테이션 라벨은 이미지에 포함된 일부 영역을 이미지의 다른 영역과 구별되도록 표시한 것일 수 있다.The label according to an embodiment of the present disclosure may be a segmentation label. The segmentation label may indicate a partial region included in the image to be distinguished from other regions of the image.

본 개시의 다른 일 실시예에 따른 라벨은 분류 라벨일 수 있다. 분류 라벨은 이미지가 어떤 클래스에 속하는지에 대한 정보를 표시한 것일 수 있다. 분류 라벨은 이미지에 사용자가 이미지에서 획득하고자 하는 특정 정보가 포함되어 있는지 여부에 관하여 표시한 것일 수 있다.The label according to another embodiment of the present disclosure may be a classification label. The classification label may indicate information about which class the image belongs to. The classification label may indicate whether the image includes specific information that the user wants to acquire from the image.

관심 객체는 어노말리 데이터를 포함할 수 있다. 어노말리 데이터는 데이터의 정상 패턴에서 벗어나는 어노말리 데이터를 의미할 수 있다. 데이터는 비정형 패턴을 가질 수 있으며 어노말리 데이터는 이러한 비정형 패턴에서 벗어나는 데이터를 의미할 수 있다.The object of interest may include anomaly data. The anomaly data may refer to anomaly data that deviates from a normal pattern of data. The data may have an atypical pattern and the anomaly data may refer to data that deviates from this atypical pattern.

컴퓨팅 장치(100)는 이미지에 포함된 객체에 관한 세그먼테이션을 수행할 수 있다.The computing device 100 may perform segmentation on objects included in the image.

컴퓨팅 장치(100)는 상기 객체의 적어도 일부에 기초하여 이미지를 변형(620)할 수 있다.The computing device 100 may transform 620 the image based on at least a portion of the object.

컴퓨팅 장치(100)는 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑할 수 있다. 컴퓨팅 장치(100)는 객체에 포함된 제 1 부분이 상기 크롭핑된 이미지에 포함되도록 상기 이미지를 크롭핑할 수 있다. 컴퓨팅 장치(100)는 상기 객체에 포함된 제 1 부분과 상기 크롭핑된 이미지의 제 2 부분이 오버랩되도록 상기 이미지를 크롭핑할 수 있다.Computing device 100 may crop the image to include at least a portion of an object. The computing device 100 may crop the image such that the first portion included in the object is included in the cropped image. The computing device 100 may crop the image such that the first portion included in the object and the second portion of the cropped image overlap.

제 2 부분은, 상기 크롭핑된 이미지의 중심에서 사전결정된 범위 안의 영역에 포함된 부분일 수 있다.The second portion may be a portion included in an area within a predetermined range at the center of the cropped image.

컴퓨팅 장치(100)는 상기 객체의 적어도 일부를 제외한 이미지의 부분을 변형할 수 있다. 컴퓨팅 장치(100)는 상기 객체의 적어도 일부를 제외한 부분에 마스킹을 씌울 수 있다.The computing device 100 may modify portions of the image except at least some of the objects. The computing device 100 may mask a portion except at least a portion of the object.

컴퓨팅 장치(100)는 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성(630)할 수 있다.The computing device 100 may generate second training data including the modified image (630).

컴퓨팅 장치(100)는 상기 제 1 학습 데이터 및 상기 제 2 학습 데이터를 포함하는 학습 데이터 세트를 생성할 수 있다.The computing device 100 may generate a training data set including the first training data and the second training data.

컴퓨팅 장치(100)는 상기 학습 데이터 세트에 기초하여 하나 이상의 네트워크 함수를 포함하는 모델이 상기 모델에 입력된 이미지에 포함된 객체를 식별하도록 학습시킬 수 있다.The computing device 100 may train a model including one or more network functions to identify an object included in an image input to the model based on the training data set.

도 5는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 블록 구성도이다.5 is a block diagram of a computing device according to an embodiment of the present disclosure.

도 5는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도를 도시한다.5 shows a brief general schematic diagram of an example computing environment in which embodiments of the present disclosure may be implemented.

본 개시가 일반적으로 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어와 관련하여 전술되었지만, 당업자라면 본 개시가 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로써 구현될 수 있다는 것을 잘 알 것이다.Although the present disclosure has been described above generally with respect to computer executable instructions that may be executed on one or more computers, those skilled in the art will appreciate that the present disclosure may be implemented in combination with other program modules and / or as a combination of hardware and software. will be.

일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 개시의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드 헬드 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types. In addition, those skilled in the art will appreciate that the methods of the present disclosure may include uniprocessor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, and the like (each of which And other computer system configurations, including one or more associated devices.

본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.The described embodiments of the present disclosure can also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있다. 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.Computers typically include a variety of computer readable media. Any medium accessible by a computer can be a computer readable medium. Computer readable media includes volatile and nonvolatile media, transitory and non-transitory media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer readable storage media and computer readable transmission media. Computer-readable storage media are volatile and nonvolatile media, temporary and non-transitory media, removable and non-removable implemented in any method or technology for storing information such as computer readable instructions, data structures, program modules or other data. Media. Computer storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROMs, digital video disks or other optical disk storage devices, magnetic cassettes, magnetic tape, magnetic disk storage devices or other magnetic storage devices, Or any other medium that can be accessed by a computer and used to store desired information.

컴퓨터 판독가능 전송 매체는 통상적으로 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. 피변조 데이터 신호라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 컴퓨터 판독가능 전송 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들 중 임의의 것의 조합도 역시 컴퓨터 판독가능 전송 매체의 범위 안에 포함되는 것으로 한다.Computer-readable transmission media typically embody computer readable instructions, data structures, program modules or other data in a modulated data signal, such as other transport mechanisms, and include all information delivery media. do. The term modulated data signal refers to a signal that has one or more of its characteristics set or changed to encode information in the signal. By way of example, and not limitation, computer readable transmission media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, or other wireless media. Combinations of any of the above should also be included within the scope of computer readable transmission media.

컴퓨터(1102)를 포함하는 본 개시의 여러가지 측면들을 구현하는 예시적인 환경(1100)이 나타내어져 있으며, 컴퓨터(1102)는 처리 장치(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 시스템 메모리(1106)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1104)에 연결시킨다. 처리 장치(1104)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다. 듀얼 프로세서 및 기타 멀티프로세서 아키텍처도 역시 처리 장치(1104)로서 이용될 수 있다.An exemplary environment 1100 is illustrated that implements various aspects of the present disclosure, including a computer 1102, which includes a processing unit 1104, a system memory 1106, and a system bus 1108. do. System bus 1108 connects system components, including but not limited to system memory 1106, to processing unit 1104. Processing unit 1104 may be any of a variety of commercially available processors. Dual processor and other multiprocessor architectures may also be used as the processing unit 1104.

시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1112)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다.System bus 1108 may be any of several types of bus structures that may be further interconnected to a memory bus, a peripheral bus, and a local bus using any of a variety of commercial bus architectures. System memory 1106 includes read only memory (ROM) 1110 and random access memory (RAM) 1112. The basic input / output system (BIOS) is stored in nonvolatile memory 1110, such as ROM, EPROM, EEPROM, etc., and the BIOS provides a basic aid for transferring information between components in the computer 1102, such as during startup. Contains routines. RAM 1112 may also include fast RAM, such as static RAM, for caching data.

컴퓨터(1102)는 또한 내장형 하드 디스크 드라이브(HDD)(1114)(예를 들어, EIDE, SATA)-이 내장형 하드 디스크 드라이브(1114)는 또한 적당한 섀시(도시 생략) 내에서 외장형 용도로 구성될 수 있음-, 자기 플로피 디스크 드라이브(FDD)(1116)(예를 들어, 이동식 디스켓(1118)으로부터 판독을 하거나 그에 기록을 하기 위한 것임), 및 광 디스크 드라이브(1120)(예를 들어, CD-ROM 디스크(1122)를 판독하거나 DVD 등의 기타 고용량 광 매체로부터 판독을 하거나 그에 기록을 하기 위한 것임)를 포함한다. 하드 디스크 드라이브(1114), 자기 디스크 드라이브(1116) 및 광 디스크 드라이브(1120)는 각각 하드 디스크 드라이브 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126) 및 광 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 연결될 수 있다. 외장형 드라이브 구현을 위한 인터페이스(1124)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 그 둘 다를 포함한다.Computer 1102 also includes an internal hard disk drive (HDD) 1114 (eg, EIDE, SATA) —the internal hard disk drive 1114 may also be configured for external use within a suitable chassis (not shown). Yes, magnetic floppy disk drive (FDD) 1116 (eg, for reading from or writing to removable diskette 1118), and optical disk drive 1120 (eg, CD-ROM Disc 1122 for reading from or writing to or writing from other high capacity optical media such as DVD). The hard disk drive 1114, the magnetic disk drive 1116, and the optical disk drive 1120 are connected to the system bus 1108 by the hard disk drive interface 1124, the magnetic disk drive interface 1126, and the optical drive interface 1128, respectively. ) Can be connected. Interface 1124 for external drive implementation includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.

이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비 휘발성 저장을 제공한다. 컴퓨터(1102)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다. 상기에서의 컴퓨터 판독가능 매체에 대한 설명이 HDD, 이동식 자기 디스크, 및 CD 또는 DVD 등의 이동식 광 매체를 언급하고 있지만, 당업자라면 집 드라이브(zip drive), 자기 카세트, 플래쉬 메모리 카드, 카트리지, 기타 등등의 컴퓨터에 의해 판독가능한 다른 유형의 매체도 역시 예시 적인 운영 환경에서 사용될 수 있으며 또 임의의 이러한 매체가 본 개시의 방법들을 수행하기 위한 컴퓨터 실행가능 명령어를 포함할 수 있다는 것을 잘 알 것이다.These drives and their associated computer readable media provide nonvolatile storage of data, data structures, computer executable instructions, and the like. In the case of computer 1102, drives and media correspond to storing any data in a suitable digital format. Although the description of computer readable media above refers to HDDs, removable magnetic disks, and removable optical media such as CDs or DVDs, those skilled in the art will appreciate zip drives, magnetic cassettes, flash memory cards, cartridges, and the like. Other types of media readable by the computer, etc. may also be used in the exemplary operating environment and it will be appreciated that any such media may include computer executable instructions for performing the methods of the present disclosure.

운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1112)에 캐싱될 수 있다. 본 개시가 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.Multiple program modules may be stored in the drive and RAM 1112, including operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136. All or a portion of the operating system, applications, modules and / or data may also be cached in RAM 1112. It will be appreciated that the present disclosure may be implemented in various commercially available operating systems or combinations of operating systems.

사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.A user may enter commands and information into the computer 1102 through one or more wired / wireless input devices, such as a keyboard 1138 and a mouse 1140. Other input devices (not shown) may include a microphone, IR remote control, joystick, game pad, stylus pen, touch screen, and the like. These and other input devices are often connected to the processing unit 1104 through an input device interface 1142 that is connected to the system bus 1108, but the parallel port, IEEE 1394 serial port, game port, USB port, IR interface, Etc. can be connected by other interfaces.

모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.A monitor 1144 or other type of display device is also connected to the system bus 1108 via an interface such as a video adapter 1146. In addition to the monitor 1144, the computer generally includes other peripheral output devices (not shown) such as speakers, printers, and the like.

컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화 된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 워크스테이션, 컴퓨팅 디바이스 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1152) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1154)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.Computer 1102 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer (s) 1148, via wired and / or wireless communications. Remote computer (s) 1148 can be a workstation, computing device computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other conventional network node, and typically is associated with computer 1102. Although many or all of the components described above are included, for simplicity, only memory storage 1150 is shown. The logical connections shown include wired / wireless connections to a local area network (LAN) 1152 and / or a larger network, such as a telecommunications network (WAN) 1154. Such LAN and WAN networking environments are commonplace in offices and businesses, facilitating enterprise-wide computer networks such as intranets, all of which may be connected to worldwide computer networks, such as the Internet.

LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)에의 유선 또는 무선 통신을 용이하게 해줄 수 있으며, 이 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그에 설치되어 있는 무선 액세스 포인트를 포함하고 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함할 수 있거나, WAN(1154) 상의 통신 컴퓨팅 디바이스에 연결되거나, 또는 인터넷을 통하는 등, WAN(1154)을 통해 통신을 설정하는 기타 수단을 갖는다. 내장형 또는 외장형 및 유선 또는 무선 장치일 수 있는 모뎀(1158)은 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크화 된 환경에서, 컴퓨터(1102)에 대해 설명된 프로그램 모듈들 또는 그의 일부분이 원격 메모리/저장 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결이 예시 적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.When used in a LAN networking environment, the computer 1102 is connected to the local network 1152 via a wired and / or wireless communication network interface or adapter 1156. Adapter 1156 may facilitate wired or wireless communication to LAN 1152, which also includes a wireless access point installed therein for communicating with wireless adapter 1156. When used in a WAN networking environment, the computer 1102 may include a modem 1158, connect to a communications computing device on the WAN 1154, or establish communications over the WAN 1154, such as over the Internet. Other means. The modem 1158, which may be an internal or external and wired or wireless device, is connected to the system bus 1108 via the serial port interface 1142. In a networked environment, program modules or portions thereof described with respect to computer 1102 may be stored in remote memory / storage device 1150. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

컴퓨터(1102)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다.Computer 1102 is associated with any wireless device or entity disposed and operating in wireless communication, such as a printer, scanner, desktop and / or portable computer, portable data assistant, communications satellite, wireless detectable tag. Communicate with any equipment or location and telephone. This includes at least Wi-Fi and Bluetooth wireless technology. Thus, the communication can be a predefined structure as in a conventional network or simply an ad hoc communication between at least two devices.

Wi-Fi(Wireless Fidelity)는 유선 없이도 인터넷 등으로의 연결을 가능하게 해준다. Wi-Fi는 이러한 장치, 예를 들어, 컴퓨터가 실내에서 및 실외에서, 즉 기지국의 통화권 내의 아무 곳에서나 데이터를 전송 및 수신할 수 있게 해주는 셀 전화와 같은 무선 기술이다. Wi-Fi 네트워크는 안전하고 신뢰성 있으며 고속인 무선 연결을 제공하기 위해 IEEE 802.11(a,b,g, 기타)이라고 하는 무선 기술을 사용한다. 컴퓨터를 서로에, 인터넷에 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결시키기 위해 Wi-Fi가 사용될 수 있다. Wi-Fi 네트워크는 비인가 2.4 및 5 GHz 무선 대역에서, 예를 들어, 11Mbps(802.11a) 또는 54 Mbps(802.11b) 데이터 레이트로 동작하거나, 양 대역(듀얼 대역)을 포함하는 제품에서 동작할 수 있다.Wireless Fidelity (Wi-Fi) allows you to connect to the Internet without wires. Wi-Fi is a wireless technology such as a cell phone that allows a device, for example, a computer, to transmit and receive data indoors and outdoors, ie anywhere within the coverage area of a base station. Wi-Fi networks use a wireless technology called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, high-speed wireless connections. Wi-Fi may be used to connect computers to each other, to the Internet, and to a wired network (using IEEE 802.3 or Ethernet). Wi-Fi networks can operate in unlicensed 2.4 and 5 GHz wireless bands, for example, at 11 Mbps (802.11a) or 54 Mbps (802.11b) data rates, or in products that include both bands (dual band). have.

본 개시의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명에서 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학장들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.Those skilled in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, instructions, information, signals, bits, symbols, and chips that may be referenced in the above description may include voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields. Or particles, or any combination thereof.

본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 "소프트웨어"로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 개시의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 개시의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.One of ordinary skill in the art of the disclosure will appreciate that the various illustrative logical blocks, modules, processors, means, circuits and algorithm steps described in connection with the embodiments disclosed herein may be implemented in electronic hardware, It will be appreciated that for purposes of the present invention, various forms of program or design code, or combinations thereof, may be implemented. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. One skilled in the art of the present disclosure may implement the described functionality in various ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 "제조 물품"은 임의의 컴퓨터-판독가능 장치로부터 액세스 가능한 컴퓨터 프로그램 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 여기서 제시되는 다양한 저장 매체는 정보를 저장하기 위한 하나 이상의 장치 및/또는 다른 기계-판독가능한 매체를 포함한다. The various embodiments presented herein may be embodied in a method, apparatus, or article of manufacture using standard programming and / or engineering techniques. The term "article of manufacture" includes a computer program or media accessible from any computer-readable device. For example, computer-readable media may include magnetic storage devices (eg, hard disks, floppy disks, magnetic strips, etc.), optical discs (eg, CDs, DVDs, etc.), smart cards, and flash memory. Devices, such as, but not limited to, EEPROM, cards, sticks, key drives, and the like. In addition, various storage media presented herein include one or more devices and / or other machine-readable media for storing information.

제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 개시의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.It is to be understood that the specific order or hierarchy of steps in the processes presented is an example of exemplary approaches. Based upon design priorities, it is understood that the specific order or hierarchy of steps in the processes may be rearranged within the scope of the present disclosure. The accompanying method claims present elements of the various steps in a sample order, but are not meant to be limited to the specific order or hierarchy presented.

제시된 실시예들에 대한 설명은 임의의 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.The description of the presented embodiments is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these embodiments will be apparent to those of ordinary skill in the art. The general principles defined herein may be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present disclosure should not be limited to the embodiments set forth herein but should be construed in the broadest scope consistent with the principles and novel features set forth herein.

Claims (14)

컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 컴퓨팅 장치의 하나 이상의 프로세서에서 실행되는 경우 학습 데이터 생성 방법을 제공하기 위한 동작들을 수행하도록 하며 상기 동작들은,
제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작;
상기 객체의 제 1 부분과 크롭핑된 이미지의 사전 결정된 범위 안의 영역에 포함된 제 2 부분의 적어도 일부가 오버랩(overlap)되도록 상기 이미지를 크롭핑하는 동작; 및
상기 크롭핑된 이미지를 포함하는 제 2 학습 데이터를 생성하는 동작;
을 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer readable storage medium, the computer program configured to perform operations for providing a method of generating learning data when executed on one or more processors of a computing device, the operations comprising:
Identifying an object included in the image based on the image included in the first training data;
Cropping the image such that at least a portion of the second portion included in an area within a predetermined range of the cropped image overlaps with the first portion of the object; And
Generating second training data comprising the cropped image;
Including,
Computer program stored on a computer readable storage medium.
제 1 항에 있어서,
상기 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작은,
상기 이미지에 포함된 관심 객체를 식별하는 동작;
을 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 1,
Identifying an object included in the image based on the image included in the first training data,
Identifying an object of interest included in the image;
Including,
Computer program stored on a computer readable storage medium.
제 2 항에 있어서,
상기 관심 객체는 라벨링된 객체를 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 2,
The object of interest comprises a labeled object,
Computer program stored on a computer readable storage medium.
제 2 항에 있어서,
상기 관심 객체는 어노말리 데이터를 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 2,
The object of interest includes anomaly data,
Computer program stored on a computer readable storage medium.
제 1 항에 있어서,
상기 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작은,
상기 이미지에 포함된 객체에 관한 세그먼테이션(segmentation)을 수행하는 동작;
을 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 1,
Identifying an object included in the image based on the image included in the first training data,
Performing segmentation on an object included in the image;
Including,
Computer program stored on a computer readable storage medium.
삭제delete 삭제delete 제 1 항에 있어서,
상기 객체의 제 1 부분과 크롭핑된 이미지의 적어도 일부인 사전 결정된 범위 안의 영역에 포함된 제 2 부분의 적어도 일부가 오버랩(overlap)되도록 상기 이미지를 크롭핑하는 동작은,
상기 객체에 포함된 제 1 부분과 상기 크롭핑된 이미지의 제 2 부분이 오버랩(overlap)되도록 상기 이미지를 크롭핑하는 동작;
을 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 1,
Cropping the image such that at least a portion of the second portion included in an area within a predetermined range that is at least a portion of the cropped image and the first portion of the object overlaps,
Cropping the image such that a first portion included in the object and a second portion of the cropped image overlap;
Including,
Computer program stored on a computer readable storage medium.
제 1 항에 있어서,
상기 제 2 부분은, 상기 크롭핑된 이미지의 중심에서 사전결정된 범위 안의 영역에 포함된,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 1,
The second portion is included in an area within a predetermined range at the center of the cropped image,
Computer program stored on a computer readable storage medium.
제 1 항에 있어서,
상기 객체의 적어도 일부를 제외한 이미지의 부분을 변형하는 동작; 및
상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 동작;
을 더 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 1,
Modifying a portion of the image except at least a portion of the object; And
Generating second training data including the modified image;
Including more;
Computer program stored on a computer readable storage medium.
제 1 항에 있어서,
상기 객체의 적어도 일부를 제외한 부분에 마스킹을 씌우는 동작; 및
상기 마스킹에 의해 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 동작;
을 더 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 1,
Masking a portion of the object other than at least a portion; And
Generating second training data including the image modified by the masking;
Including more;
Computer program stored on a computer readable storage medium.
제 1 항에 있어서,
상기 제 1 학습 데이터 및 상기 제 2 학습 데이터를 포함하는 학습 데이터 세트를 생성하는 동작; 및
상기 학습 데이터 세트에 기초하여 하나 이상의 네트워크 함수를 포함하는 모델이 상기 모델에 입력된 이미지에 포함된 객체를 식별하도록 학습시키는 동작;
을 더 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 1,
Generating a training data set comprising the first training data and the second training data; And
Training a model including at least one network function to identify an object included in an image input to the model based on the training data set;
Including more;
Computer program stored on a computer readable storage medium.
학습 데이터 생성 방법으로서,
컴퓨팅 장치에 포함된 프로세서가 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 단계;
상기 프로세서가 상기 객체의 제 1 부분과 크롭핑된 이미지의 사전 결정된 범위 안의 영역에 포함된 제 2 부분의 적어도 일부가 오버랩(overlap)되도록 상기 이미지를 크롭핑하는 단계; 및
상기 프로세서가 상기 크롭핑된 이미지를 포함하는 제 2 학습 데이터를 생성하는 단계;
를 포함하는,
학습 데이터 생성 방법.
As a training data generation method,
Identifying, by a processor included in a computing device, an object included in the image based on the image included in the first training data;
The processor cropping the image such that at least a portion of the second portion included in an area within a predetermined range of the cropped image overlaps with the first portion of the object; And
Generating, by the processor, second training data including the cropped image;
Including,
How to generate training data.
학습 데이터 생성 방법을 제공하기 위한 서버로서,
하나 이상의 코어를 포함하는 프로세서; 및
메모리;
를 포함하고,
상기 프로세서는,
제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하고,
상기 객체의 제 1 부분과 크롭핑된 이미지의 사전 결정된 범위 안의 영역에 포함된 제 2 부분의 적어도 일부가 오버랩(overlap)되도록 상기 이미지를 크롭핑하고, 그리고
상기 크롭핑된 이미지를 포함하는 제 2 학습 데이터를 생성하는,
학습 데이터 생성 방법을 제공하기 위한 서버.
As a server for providing a training data generation method,
A processor including one or more cores; And
Memory;
Including,
The processor,
Identify an object included in the image based on the image included in the first training data,
Cropping the image such that at least a portion of the second portion included in an area within a predetermined range of the cropped image overlaps with the first portion of the object, and
Generating second training data comprising the cropped image,
Server for providing training data generation method.
KR1020190067995A 2019-06-10 2019-06-10 Method to generate data KR102076075B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190067995A KR102076075B1 (en) 2019-06-10 2019-06-10 Method to generate data
PCT/KR2020/006149 WO2020251172A1 (en) 2019-06-10 2020-05-11 Data generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190067995A KR102076075B1 (en) 2019-06-10 2019-06-10 Method to generate data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200012948A Division KR20200141376A (en) 2019-06-10 2020-02-04 Method to generate data

Publications (1)

Publication Number Publication Date
KR102076075B1 true KR102076075B1 (en) 2020-02-10

Family

ID=69627537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190067995A KR102076075B1 (en) 2019-06-10 2019-06-10 Method to generate data

Country Status (1)

Country Link
KR (1) KR102076075B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020251172A1 (en) * 2019-06-10 2020-12-17 주식회사 수아랩 Data generation method
GB2600550A (en) * 2020-09-25 2022-05-04 Nvidia Corp Neural network training using robust temporal ensembling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dwibedi, Debidatta, Ishan Misra, and Martial Hebert. Cut, paste and learn: Surprisingly easy synthesis for instance detection. Proceedings of the IEEE International Conference on Computer Vision. 2017* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020251172A1 (en) * 2019-06-10 2020-12-17 주식회사 수아랩 Data generation method
GB2600550A (en) * 2020-09-25 2022-05-04 Nvidia Corp Neural network training using robust temporal ensembling
GB2600550B (en) * 2020-09-25 2023-11-22 Nvidia Corp Neural network training using robust temporal ensembling

Similar Documents

Publication Publication Date Title
KR102450131B1 (en) Systems and methods for detecting flaws on panels using images of the panels
US11062215B2 (en) Using different data sources for a predictive model
US20190147333A1 (en) System and method for semi-supervised conditional generative modeling using adversarial networks
US11714908B2 (en) Bit-level data generation and artificial intelligence techniques and architectures for data protection
KR20200141376A (en) Method to generate data
JP2012032369A (en) Defect identification method, defect identification apparatus, program, and recording medium
US12105837B2 (en) Generating private synthetic training data for training machine-learning models
KR102076075B1 (en) Method to generate data
US11314609B2 (en) Diagnosing and remediating errors using visual error signatures
KR102078133B1 (en) Method for detecting anomaly of data
CN112329762A (en) Image processing method, model training method, device, computer device and medium
US20230409467A1 (en) System and Method for User Interface Testing
US20240330453A1 (en) Bit-level data extraction and threat detection
WO2022017082A1 (en) Method and apparatus for detecting false transaction orders
KR102450130B1 (en) Systems and methods for detecting flaws on panels using images of the panels
US11363064B2 (en) Identifying spam using near-duplicate detection for text and images
US20200058038A1 (en) Venue monitoring through sentiment analysis
KR20200019919A (en) Method for detecting anomaly of data
US11429871B2 (en) Detection of data offloading through instrumentation analysis
WO2020251172A1 (en) Data generation method
KR20210157795A (en) Method to train model
US9928446B2 (en) Augmented automatic defect classification
US20230410476A1 (en) Automated image analysis using artificial intelligence techniques
US11824742B2 (en) Host auto role classifier
US20230410505A1 (en) Video manipulation detection

Legal Events

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