KR102175531B1 - 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR102175531B1
KR102175531B1 KR1020200049644A KR20200049644A KR102175531B1 KR 102175531 B1 KR102175531 B1 KR 102175531B1 KR 1020200049644 A KR1020200049644 A KR 1020200049644A KR 20200049644 A KR20200049644 A KR 20200049644A KR 102175531 B1 KR102175531 B1 KR 102175531B1
Authority
KR
South Korea
Prior art keywords
data
label
tertiary
discriminator
learning
Prior art date
Application number
KR1020200049644A
Other languages
English (en)
Inventor
임태호
전호석
이효찬
Original Assignee
호서대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 호서대학교 산학협력단 filed Critical 호서대학교 산학협력단
Priority to KR1020200049644A priority Critical patent/KR102175531B1/ko
Application granted granted Critical
Publication of KR102175531B1 publication Critical patent/KR102175531B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/262Analysis of motion using transform domain methods, e.g. Fourier domain methods
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Abstract

본 발명의 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치는 객체의 영상인 원본 데이터에 상기 객체를 식별하는 클래스와 상기 객체가 상기 영상에서 차지하는 영역인 영역상자의 좌표로 이루어진 레이블이 부여된 1차 데이터를 입력 받고, 영상 처리(Image Processing)를 통해 상기 1차 데이터의 객체를 기 설정된 규칙에 따라 변환하여 2차 데이터의 객체를 생성하는 영상처리모듈과, 상기 변환된 2차 데이터의 객체의 영역상자의 좌표를 검출하고, 상기 1차 데이터의 클래스 및 상기 검출된 2차 데이터의 객체의 영역상자의 좌표로 이루어진 2차 데이터의 레이블을 생성하는 레이블생성모듈을 포함한다.

Description

인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체{Apparatus for generating training data including a label for training an artificial neural network, method therefor, and computer recordable medium storing program to perform the method}
본 발명은 학습 데이터 생성 기술에 관한 것으로, 보다 상세하게는, 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다.
최근 AI 기술의 발전으로 인공지능을 이용한 자율주행 자동차, 의료데이터 분석, 지능형 개인비서, 지능형 CCTV 등 많은 곳에 적용되어 사용되고 있다. 인공지능은 데이터를 기반으로 컴퓨터가 스스로 학습한 내용을 바탕으로 회귀, 분류, 군집화 등의 예측 작업을 수행하는 것을 말한다.
지도 학습은 학습데이터로부터 하나의 함수를 유추해내기 위한 인공지능의 한 방법이다. 학습 데이터는 일반적으로 입력 객체에 대한 속성을 벡터 형태로 포함하고 있으며 각각의 벡터에 대해 원하는 결과가 무엇인지 표시되어있다. 이렇게 유추된 함수 중 연속적인 값을 출력하는 것을 회귀분석이라 하고 주어진 입력 벡터가 어떤 종류의 값인지 표식하는 것을 분류라 한다. 분류 또는 회귀에 대한 지도학습 인공지능 알고리즘들의 적용에서, 종속 변수는 러닝 되는 변수이며, 이는 분류 경우에서는 이산적이며 회귀 경우에서는 연속적이고, 분류 시에 태그 또는 라벨로써 알려진다. 라벨은 이미지 데이터에서 객체가 무엇인지에 관한 자신의 견해를 표현하는 지식인의 수동 라벨에 의해 획득될 수 있다.
한국공개특허 제2007-0060862호 2007년 06월 13일 공개 (명칭: 학습 데이터 구축 장치 및 방법)
본 발명의 목적은 인공신경망을 학습시키기 위한 학습 데이터의 양을 증가시키기 위한 인공지능 학습용 데이터 가공 및 자동 라벨링을 위한 장치 및 이를 위한 방법을 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치는 객체의 영상인 원본 데이터에 상기 객체를 식별하는 클래스와 상기 객체가 상기 영상에서 차지하는 영역인 영역상자의 좌표로 이루어진 레이블이 부여된 1차 데이터를 입력 받고, 영상 처리(Image Processing)를 통해 상기 1차 데이터의 객체를 기 설정된 규칙에 따라 변환하여 2차 데이터의 객체를 생성하는 영상처리모듈과, 상기 변환된 2차 데이터의 객체의 영역상자의 좌표를 검출하고, 상기 1차 데이터의 클래스 및 상기 검출된 2차 데이터의 객체의 영역상자의 좌표로 이루어진 2차 데이터의 레이블을 생성하는 레이블생성모듈을 포함한다.
상기 장치는 상기 1차 데이터 및 상기 2차 데이터를 이용하여 상기 기 설정된 규칙에 따라 상기 1차 데이터를 변환하여 상기 2차 데이터를 모사하는 3차 데이터를 생성하도록 생성자와 판별자를 포함하는 인공신경망을 학습시키는 학습모듈을 더 포함한다.
상기 인공신경망의 학습이 완료된 후, 상기 인공신경망은 1차 데이터가 입력되면, 상기 기 설정된 규칙에 따라 상기 입력된 1차 데이터로부터 3차 데이터를 생성하는 것을 특징으로 한다.
상기 인공신경망은 상기 규칙에 따라 상기 1차 데이터의 레이블을 변환하여 상기 2차 데이터의 레이블을 모사하는 3차 데이터의 레이블을 생성하는 레이블생성자와, 상기 1차 데이터의 객체가 입력되면, 상기 규칙에 따라 상기 1차 데이터의 객체를 변환하여 상기 생성된 3차 데이터의 레이블의 영역상자의 내부에 포함되면서 상기 2차 데이터의 객체를 모사하는 상기 3차 데이터의 객체를 생성하는 객체생성자를 포함한다.
상기 학습모듈은 상기 판별자가 상기 2차 데이터를 진짜로 판별하고, 상기 생성자가 생성한 3차 데이터를 가짜로 판별하도록 상기 판별자를 학습시키고, 상기 판별자가 상기 3차 데이터를 진짜로 판별하도록 상기 생성자를 학습시키는 것을 특징으로 한다.
상기 학습모듈은 상기 판별자가 2차 데이터를 진짜로 판별하고 3차 데이터를 가짜로 판별하도록 기댓값을 설정한 후, 상기 판별자가 상기 2차 데이터 및 상기 3차 데이터 각각이 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출하면, 상기 2차 데이터 및 상기 3차 데이터 각각에 대해 상기 산출된 확률과 상기 기댓값과의 차이를 나타내는 손실을 도출하고, 상기 2차 데이터 및 상기 3차 데이터 양자 모두에 대한 손실을 합산하고, 합산된 손실이 최소가 되도록 상기 생성자의 가중치는 고정하고 상기 판별자의 가중치를 최적화함으로써 상기 판별자를 학습시키는 것을 특징으로 한다.
상기 학습모듈은 상기 학습모듈이 상기 판별자가 3차 데이터를 진짜로 판별하도록 기댓값을 설정한 후, 상기 판별자가 상기 3차 데이터가 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출하면, 상기 산출된 확률과 상기 기댓값과의 차이를 나타내는 손실을 도출하고, 상기 손실이 최소가 되도록 상기 판별자의 가중치는 고정하고 상기 생성자의 가중치를 최적화함으로써 상기 생성자를 학습시키는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치는 객체 및 레이블을 포함하는 1차 데이터를 영상 처리(Image Processing)를 통해 기 설정된 규칙에 따라 변환하여 객체 및 레이블을 포함하는 2차 데이터를 생성하는 제1 데이터처리부와, 상기 1차 데이터를 상기 규칙에 따라 변환하여 상기 2차 데이터를 모사하는 3차 데이터를 생성하는 인공신경망을 포함한다.
상기 인공신경망은 상기 규칙에 따라 상기 1차 데이터의 레이블을 변환하여 상기 2차 데이터의 레이블을 모사하는 3차 데이터의 레이블을 생성하는 레이블생성자와, 상기 1차 데이터의 객체가 입력되면, 상기 규칙에 따라 상기 1차 데이터의 객체를 변환하여 상기 생성된 3차 데이터의 레이블의 영역상자의 내부에 포함되면서 상기 2차 데이터의 객체를 모사하는 상기 3차 데이터의 객체를 생성하는 객체생성자로 이루어진 생성자를 포함한다.
상기 인공신경망은 판별자;를 더 포함하며, 상기 장치는 상기 판별자가 상기 2차 데이터를 진짜로 판별하고 상기 생성자가 생성한 3차 데이터를 가짜로 판별하도록 상기 생성자의 가중치를 고정하고 상기 판별자의 가중치를 최적화하여 상기 판별자를 학습시키고, 상기 판별자가 상기 3차 데이터를 진짜로 판별하도록 상기 판별자의 가중치를 고정하고 상기 생성자의 가중치를 최적화하여 상기 생성자를 학습시키는 학습모듈을 더 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치는 영상처리모듈이 객체의 영상인 원본 데이터에 상기 객체를 식별하는 클래스와 상기 객체가 상기 영상에서 차지하는 영역인 영역상자의 좌표로 이루어진 레이블이 부여된 1차 데이터를 입력 받는 단계와, 상기 영상처리모듈이 영상 처리(Image Processing)를 통해 상기 1차 데이터의 객체를 기 설정된 규칙에 따라 변환하여 2차 데이터의 객체를 생성하는 단계와, 레이블생성모듈이 상기 변환된 2차 데이터의 객체의 영역상자의 좌표를 검출하는 단계와, 상기 레이블생성모듈이 상기 1차 데이터의 객체의 클래스 및 상기 검출된 2차 데이터의 객체의 영역상자의 좌표로 이루어진 2차 데이터의 레이블을 생성하는 단계를 포함한다.
상기 방법은 학습모듈이 상기 1차 데이터 및 상기 2차 데이터를 이용하여 상기 기 설정된 규칙에 따라 상기 1차 데이터를 변환하여 상기 2차 데이터를 모사하는 3차 데이터를 생성하도록 생성자와 판별자를 포함하는 인공신경망을 학습시키는 단계를 더 포함한다.
상기 방법은 상기 인공신경망의 학습이 완료된 후, 1차 데이터가 입력되면, 상기 인공신경망이 상기 기 설정된 규칙에 따라 상기 입력된 1차 데이터로부터 3차 데이터를 생성하는 단계를 더 포함한다.
상기 3차 데이터를 생성하는 단계는 상기 인공신경망의 레이블생성자가 상기 규칙에 따라 상기 1차 데이터의 레이블을 변환하여 상기 2차 데이터의 레이블을 모사하는 3차 데이터의 레이블을 생성하는 단계와, 상기 인공신경망의 객체생성자가 상기 1차 데이터의 객체가 입력되면, 상기 규칙에 따라 상기 1차 데이터의 객체를 변환하여 상기 생성된 3차 데이터의 레이블의 영역상자의 내부에 포함되면서 상기 2차 데이터의 객체를 모사하는 상기 3차 데이터의 객체를 생성하는 단계를 포함한다.
상기 인공신경망을 학습시키는 단계는 상기 학습모듈이 상기 판별자가 상기 2차 데이터를 진짜로 판별하고, 상기 생성자가 생성한 3차 데이터를 가짜로 판별하도록 상기 판별자를 학습시키는 단계와, 상기 학습모듈이 상기 판별자가 상기 3차 데이터를 진짜로 판별하도록 상기 생성자를 학습시키는 단계를 포함한다.
상기 판별자를 학습시키는 단계는 상기 학습모듈이 상기 판별자가 2차 데이터를 진짜로 판별하고, 3차 데이터를 가짜로 판별하도록 기댓값을 설정하는 단계와, 상기 판별자가 상기 2차 데이터 및 상기 3차 데이터 각각이 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출하는 단계와, 상기 2차 데이터 및 상기 3차 데이터 각각에 대해 상기 산출된 확률과 상기 기댓값과의 차이를 나타내는 손실을 도출하는 단계와, 상기 2차 데이터 및 상기 3차 데이터 양자 모두에 대한 손실을 합산하고, 합산된 손실이 최소가 되도록 상기 생성자의 가중치는 고정하고 상기 판별자의 가중치를 최적화하는 단계를 포함한다.
상기 생성자를 학습시키는 단계는 상기 학습모듈이 상기 판별자가 3차 데이터를 진짜로 판별하도록 기댓값을 설정하는 단계와, 상기 판별자가 상기 3차 데이터가 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출하는 단계와, 상기 산출된 확률과 상기 기댓값과의 차이를 나타내는 손실을 도출하는 단계와, 상기 손실이 최소가 되도록 상기 판별자의 가중치는 고정하고 상기 생성자의 가중치를 최적화하는 단계를 포함한다.
본 발명의 다른 견지에 따르면, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 학습 데이터를 생성하기 위한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명에 따르면, 인공신경망을 통해 레이블을 가지는 영상을 소정의 규칙에 따라 변환하여 변환된 영상을 생성하고 그 변환에 따라 변환된 영상에 대응하는 레이블을 자동으로 생성함으로써 학습 데이터의 양을 증가시킬 뿐만 아니라 학습 데이터에 대한 레이블을 입력해야하는 번거로움을 해소할 수 있다.
도 1은 본 발명의 실시예에 따른 레이블을 포함하는 학습 데이터를 생성하기 위한 장치의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 객체를 변환하는 규칙을 설명하기 위한 화면 예이다.
도 3은 본 발명의 실시예에 따라 생성된 학습 데이터를 설명하기 위한 화면 예이다.
도 4는 본 발명의 실시예에 따라 생성되는 학습 데이터의 종류를 설명하기 위한 화면 예이다.
도 5는 본 발명의 실시예에 따른 제1 데이터처리부의 구성을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 제2 데이터처리부의 구성을 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 제2 데이터처리부의 인공신경망의 구성을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 인공신경망 중 생성자의 구성을 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따른 인공신경망 중 판별자의 구성을 설명하기 위한 도면이다.
도 10은 본 발명의 실시예에 따른 레이블을 포함하는 학습 데이터를 생성하기 위한 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 실시예에 따른 학습 데이터를 생성하기 위한 인공신경망의 학습 방법을 설명하기 위한 상태도이다.
도 12는 본 발명의 실시예에 따른 판별자를 학습하는 방법을 설명하기 위한 흐름도이다.
도 13은 본 발명의 실시예에 따른 판별자를 학습하는 방법을 설명하기 위한 흐름도이다.
도 14는 본 발명의 실시예에 따른 컴퓨팅 장치의 구성을 설명하기 위한 도면이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
먼저, 본 발명의 실시예에 따른 레이블을 포함하는 학습 데이터를 생성하기 위한 장치에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 레이블을 포함하는 학습 데이터를 생성하기 위한 장치의 구성을 설명하기 위한 도면이다. 도 2는 본 발명의 실시예에 따른 객체를 변환하는 규칙을 설명하기 위한 화면 예이다. 도 3은 본 발명의 실시예에 따라 생성된 학습 데이터를 설명하기 위한 화면 예이다. 도 4는 본 발명의 실시예에 따라 생성되는 학습 데이터의 종류를 설명하기 위한 화면 예이다.
도 1 내지 도 4를 참조하면, 본 발명의 실시예에 따른 레이블을 포함하는 학습 데이터를 생성하기 위한 장치(GA: 이하, '생성장치'로 축약함)는 객체의 영상인 원본 데이터(1)로부터 복수의 학습 데이터를 생성함으로써 영상에서 객체 인식을 위한 인공신경망의 학습 데이터의 수를 증가시키기 위한 것이다. 생성장치(GA)는 예컨대, 도 2에 도시된 바와 같이, Scale(distance), Rotation, Brightness, Contrast, Flip 등의 변화와 같은 기 설정된 규칙에 따라 원본 데이터(1)의 객체를 변환한다. 그리고 생성장치(GA)는 도 3에 도시된 바와 같이, 변환된 객체에 레이블(예컨대, *.txt 파일)을 부여하여 복수의 학습 데이터를 생성함으로써 학습 데이터의 수를 증가시킨다. 레이블은 cls_num, x, y, w, h가 될 수 있다. 여기서, cls_num은 객체(obj)의 클래스(예컨대, 물고기)를 나타내며, x, y, w, h는 객체가 영상에서 차지하는 4각형의 영역을 나타내는 영역상자(Bounding Box)를 특정하기 위한 좌표이다. (x, y)는 영역상자의 중심 좌표이며, w는 영역 상자의 폭이고, h는 영역 상장의 높이를 나타낸다. 도 2 및 도 3에 도시된 바와 같이, 생성장치(GA)는 원본 데이터(1) 객체의 클래스(예컨대, 물고기)를 유지하면서 다양한 규칙에 따라 객체를 변환한다. 이와 같이, 객체 클래스에 대한 학습 데이터의 수를 증가시키기 위하여, 생성장치(GA)는 제1 데이터처리부(100) 및 제2 데이터처리부(200)를 포함한다.
도 4를 참조하면, 제1 데이터처리부(100)는 영상 처리(Image Processing)를 위한 것이다. 본 발명의 실시예에서 영상 처리(Image Processing)는 주로, 디지털 영상 처리(Digital Image Processing)를 의미하며, 화소값 변환, 공간 영역 변환, 기하학적 변환, 주파수 변환 등을 수행한다. 제1 데이터처리부(100)는 영상 처리(Image Processing)를 통해 원본 데이터(1)에 레이블(cls_num, x1, y1, w1, h1)을 부여하여 1차 데이터(10)를 생성한다. 그리고 제1 데이터처리부(100)는 영상 처리(Image Processing)를 통해 1차 데이터(10)에 대해 기 설정된 규칙(도 2 참조)에 따라 객체를 변환하고, 변환된 객체에 부합하는 레이블(cls_num, x2, y2, w2, h2)을 부여하여 2차 데이터(20)를 생성한다.
제2 데이터처리부(200)는 인공신경망을 포함하며, 제1 데이터처리부(100)가 생성한 1차 데이터(10) 및 2차 데이터(20)를 이용하여 규칙(도 2 참조)에 따라 1차 데이터(10)로부터 2차 데이터(20)를 모사하는 3차 데이터(30)를 생성하도록 인공신경망을 학습시킨다. 또한, 제2 데이터처리부(200)는 학습이 완료된 인공신경망을 통해 1차 데이터(10)가 입력되면, 2차 데이터(20)를 생성하지 않고, 규칙에 따라 입력된 1차 데이터(10)로부터 3차 데이터(30)를 생성한다. 3차 데이터(30)는 2차 데이터(20)의 객체 및 레이블을 모사하는 것이기 때문에 3차 데이터(30) 역시 객체 및 레이블(cls_num, x3, y3, w3, h3)을 포함한다. 이에 따라, 소정 수 이상의 학습 데이터가 쌓이고 인공신경망의 학습이 완료되면, 인공신경망을 이용하여 2차 데이터를 생성하지 않고, 원본 데이터(1)로부터 바로 3차 데이터(30)를 생성할 수 있다.
다음으로, 전술한 제1 데이터처리부(100) 및 제2 데이터처리부(200) 각각의 내부 구성에 대해서 보다 상세하게 설명하기로 한다. 우선, 제1 데이터처리부(100)의 내부 구성에 대해서 보다 상세하게 설명하기로 한다. 도 5는 본 발명의 실시예에 따른 제1 데이터처리부의 구성을 설명하기 위한 도면이다.
도 5를 참조하면, 제1 데이터처리부(100)는 영상처리모듈(110) 및 레이블생성모듈(120)을 포함한다.
영상처리모듈(110)은 기 설정된 규칙에 따라 영상 처리(Image Processing)를 통해 객체를 변환하기 위한 것이다. 도 4를 참조하면, 영상처리모듈(110)은 1차 데이터(10)가 마련되면, 기 설정된 규칙에 따라 영상 처리(Image Processing)를 통해 1차 데이터(10)의 객체(obj10)를 2차 데이터(10)의 객체(obj20)로 변환한다. 예컨대, 영상처리모듈(110)은 도 2에 도시된 바와 같은 복수의 규칙 중 어느 하나를 선택할 수 있다. 도 4에 도시된 바와 같이, 본 발명의 실시예에서 기 설정된 규칙은 "시계 방향으로 45도 회전"을 예시적으로 사용할 것이다.
레이블생성모듈(120)은 영상에서 객체가 차지하는 영역을 4각형의 박스로 나타내는 영역박스(Boundary Box)를 검출하고, 검출된 영역박스에 따라 해당 객체에 레이블을 부여하기 위한 것이다. 예컨대, 레이블생성모듈(120)은 도 4에 도시된 바와 같이, 1차 데이터(10)의 객체(obj10)에 대해 영역박스(B10)를 검출하고, 검출된 영역박스(B10)의 좌표에 따라 객체(obj10)에 레이블 (cls_num, x1, y1, w1, h1)을 부여한다. 마찬가지로, 레이블생성모듈(120)은 2차 데이터(20)의 객체(obj20)에 대해 영역박스(B20)를 검출하고, 검출된 영역박스(B20)의 좌표에 따라 객체(obj20)에 레이블 (cls_num, x2, y2, w2, h2)을 부여한다.
다음으로, 제2 데이터처리부(200)의 내부 구성에 대해서 보다 상세하게 설명하기로 한다. 도 6은 본 발명의 실시예에 따른 제2 데이터처리부의 구성을 설명하기 위한 도면이다. 도 7은 본 발명의 실시예에 따른 제2 데이터처리부의 인공신경망의 구성을 설명하기 위한 도면이다. 도 8은 본 발명의 실시예에 따른 인공신경망 중 생성자의 구성을 설명하기 위한 도면이다. 도 9는 본 발명의 실시예에 따른 인공신경망 중 판별자의 구성을 설명하기 위한 도면이다.
도 6을 참조하면, 제2 데이터처리부(200)는 학습모듈(210)과 복수의 인공신경망(220)을 포함한다.
기본적으로, 학습모듈(210)은 기 설정된 규칙에 따라 1차 데이터(10)로부터 2차 데이터(20)를 모사하는 3차 데이터(30)를 생성하도록 인공신경망(220)을 학습시킨다. 특히, 학습모듈(210)은 1차 데이터(10) 및 2차 데이터(10)를 이용하여 인공신경망(220)을 학습시킨다. 하나의 인공신경망(220)은 하나의 규칙에 대응한다. 따라서 인공신경망(220)은 학습하고자 하는 규칙의 수에 맞춰 생성될 수 있다. 학습모듈(210)의 구체적인 동작에 대해서는 아래에서 더 상세하게 설명하기로 한다.
인공신경망(220)의 학습이 완료되면, 인공신경망(220)은 학습된 규칙에 따라 입력된 1차 데이터(10)로부터 3차 데이터(30)를 생성한다. 예컨대, 학습된 규칙이 "시계 방향으로 45도 회전"이라면, 인공신경망(220)은 도 4에 도시된 바와 같이, 1차 데이터(10)의 영역 상자(B10)로부터 학습된 규칙에 따라 1차 데이터(10)의 객체(obj30)를 "시계 방향으로 45도 회전"시켰을 때의 객체(obj30)의 영역상자(B30)를 도출하고, 해당 영역상자(B30)로부터 3차 데이터(30)의 레이블(cls_num, x3, y3, w3, h3)을 생성한다. 그리고 인공신경망(220)은 1차 데이터(10)의 객체(obj10)를 학습된 규칙에 따라 3차 데이터의 레이블의 영역상자(B30)의 내부에 포함되면서, "시계 방향으로 45도 회전"시킨 객체(obj30)를 생성하여 최종적으로 3차 데이터(30)를 완성한다.
다음으로, 본 발명의 실시예에 따른 인공신경망(220)에 대해 보다 상세하게 설명하기로 한다. 도 7에 도시된 바와 같이, 어느 하나의 인공신경망(220)은 생성자(GN: Generator Network) 및 판별자(DN: Discriminator Network)를 포함한다.
도 7 및 도 8을 참조하면, 생성자(GN)는 레이블생성자(GN1) 및 객체생성자(GN2)를 포함한다. 레이블생성자(GN1) 및 객체생성자(GN2)를 포함하는 생성자(GN)는 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층을 포함한다. 여기서, 복수의 연산을 포함하는 복수의 계층은 컨볼루션(Convolution) 연산을 수행하는 컨볼루션계층(CL: Convolution Layer), 다운샘플링(Down Sampling) 연산을 수행하는 풀링계층(PL: Pooling Layer) 및 업샘플링(Up Sampling) 연산을 수행하는 언풀링(UL: Unpooling Layer) 계층 및 디컨불루션 연산을 수행하는 디컨불루션 계층(DL: Deconvolution Layer) 각각을 하나 이상 포함한다. 컨볼루션, 다운샘플링, 업샘플링 및 디컨불루션 연산 각각은 소정의 행렬로 이루어진 필터(커널)를 이용하며, 이러한 행렬의 원소의 값들이 가중치가 된다. 생성자(GN)는 1차 데이터(10)를 입력받고, 입력된 1차 데이터(10)에 대해 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 2차 데이터(20)를 모사하는 3차 데이터(30)를 생성한다.
레이블생성자(GN1)에는 1차 데이터(10)의 레이블이 입력된다. 학습이 완료된 레이블생성자(GN1)는 1차 데이터(10)의 레이블이 입력되면, 기 설정된 규칙, 즉, 학습된 규칙에 따라 1차 데이터(10)의 레이블을 변환하여 2차 데이터(20)의 레이블을 모사하는 3차 데이터(30)의 레이블을 생성한다. 예컨대, 학습된 규칙이 "시계 방향으로 45도 회전"이라면, 레이블생성자(GN1)는 1차 데이터(10)의 레이블(cls_num, x1, y1, w1, h1)에 의해 특정되는 1차 데이터(10)의 영역 상자(B10)로부터 학습된 규칙에 따라 1차 데이터(10)의 객체(obj30)를 "시계 방향으로 45도 회전"시켰을 때의 객체(obj30)의 영역상자(B30)를 도출하고, 해당 영역상자(B30)로부터 3차 데이터(30)의 레이블(cls_num, x3, y3, w3, h3)을 생성한다.
객체생성자(GN2)에는 레이블생성자(GN1)가 생성한 3차 데이터(30)의 레이블 및 1차 데이터(10)가 입력된다. 학습이 완료된 객체생성자(GN2)는 기 설정된 규칙, 즉, 학습된 규칙에 따라 1차 데이터(10)의 객체를 변환하여 생성된 3차 데이터의 레이블의 영역상자의 내부에 포함되면서, 2차 데이터(20)의 객체를 모사하는 3차 데이터(30)의 객체를 생성하여 3차 데이터(30)를 완성한다. 예컨대, 학습된 규칙이 "시계 방향으로 45도 회전"이라면, 객체생성자(GN2)는 1차 데이터(10)의 객체(obj10)를 학습된 규칙에 따라 2차 데이터(20)의 객체를 모사하여 "시계 방향으로 45도 회전"시킨 3차 데이터(30)의 객체(obj30)를 생성하되, 그 객체(obj30)가 레이블생성자(GN1)로부터 입력된 3차 데이터(30)의 레이블(cls_num, x3, y3, w3, h3)에 의해 특정되는 영역상자(B30) 내부에 포함되도록 하는 3차 데이터(30)의 객체(obj30)를 생성한다. 이로써, 객체(obj30)와 레이블(cls_num, x3, y3, w3, h3)을 포함하는 3차 데이터(30)가 완성된다.
도 7 및 도 9를 참조하면, 판별자(DN)는 레이블판별자(DN1), 객체판별자(DN2) 및 병합출력자(MO)를 포함한다. 레이블판별자(DN1), 객체판별자(DN2) 및 병합출력자(MO)를 포함하는 판별자(DN)는 가중치가 적용되는 복수의 연산을 수행하는 복수의 계층을 포함한다. 여기서, 복수의 연산을 수행하는 복수의 계층은 컨볼루션(Convolution) 연산을 수행하는 컨볼루션계층(CL: Convolution Layer) 및 소프트맥스(Soft-max) 연산을 수행하는 완전연결층(FL: Fully Connected Layer)을 포함한다. 컨볼루션 연산은 소정의 행렬로 이루어진 필터를 이용하며, 이러한 행렬의 원소의 값들이 가중치가 된다. 또한, 소프트맥스 연산 또한 가중치를 적용하여 수행된다.
판별자(DN)는 2차 데이터(20) 또는 3차 데이터(30)가 입력되면, 입력된 2차 데이터(20) 또는 3차 데이터(30)에 대해 가중치가 적용되는 복수의 연산을 수행하여 입력된 2차 데이터(20) 또는 3차 데이터(30)가 진짜(real)인지 혹은 가짜(fake)인지 여부를 확률로 출력한다. 여기서, 진짜(real)는 영상 처리(Image Processing)를 통해 생성된 데이터, 즉, 2차 데이터(20)를 의미하며, 가짜(fake)는 생성자(GN)가 생성한 데이터, 즉, 3차 데이터(30)를 의미한다.
레이블판별자(DN1)는 2차 데이터(20) 또는 3차 데이터(30)의 레이블이 입력되면, 입력된 2차 데이터(20) 또는 3차 데이터(30)의 레이블에 대해 가중치가 적용되는 복수의 연산을 수행하여 2차 데이터(20) 또는 3차 데이터(30)의 레이블이 진짜(real)인지 혹은 가짜(fake)인지 여부를 확률로 출력한다.
객체판별자(DN2)는 2차 데이터(20) 또는 3차 데이터(30)가 입력되면, 입력된 2차 데이터(20) 또는 3차 데이터(30)에 대해 가중치가 적용되는 복수의 연산을 수행하여 2차 데이터(20) 또는 3차 데이터(30)의 객체가 2차 데이터(20) 또는 3차 데이터(30)의 레이블에 의해 특정되는 영역상자(B20 혹은 B30) 내에 포함될 때, 2차 데이터(20) 또는 3차 데이터(30)의 객체가 진짜(real)인지 혹은 가짜(fake)인지 여부를 확률로 출력한다. 이와 같이, 객체판별자(DN2)는 2차 데이터(20) 또는 3차 데이터(30)의 객체가 진짜(real)인지 혹은 가짜(fake)인지 여부를 최종적으로 판별하기 전, 선행조건, 즉, 2차 데이터(20) 또는 3차 데이터(30)의 객체가 2차 데이터(20) 또는 3차 데이터(30)의 레이블에 의해 특정되는 영역상자(B20 혹은 B30) 내에 포함되는 것을 만족하는지 여부를 판별한다.
병합출력자(MO)는 레이블판별자(DN1) 및 객체판별자(DN2) 각각이 출력한 확률을 병합하여 2차 데이터(20) 또는 3차 데이터(30)가 진짜(real)인지 혹은 가짜(fake)인지 여부를 확률로 출력한다. 즉, 병합출력자(MO)는 레이블판별자(DN1)에 의해 출력되는 2차 데이터(20) 또는 3차 데이터(30)의 레이블이 진짜(real)인지 혹은 가짜(fake)인지 여부의 확률과, 객체판별자(DN2)에 의해 출력되는 2차 데이터(20) 또는 3차 데이터(30)의 객체가 2차 데이터(20) 또는 3차 데이터(30)의 레이블에 의해 특정되는 영역상자(B20 혹은 B30) 내에 포함되는 조건을 만족하면서, 2차 데이터(20) 또는 3차 데이터(30)의 객체가 진짜(real)인지 혹은 가짜(fake)인지 여부의 확률을 병합하여 최종적으로 2차 데이터(20) 또는 3차 데이터(30)가 진짜(real)인지 혹은 가짜(fake)인지 여부를 확률로 출력한다.
그러면, 전술한 생성장치(GA)의 학습 데이터를 생성하는 방법에 대해서 설명하기로 한다. 도 10은 본 발명의 실시예에 따른 레이블을 포함하는 학습 데이터를 생성하기 위한 방법을 설명하기 위한 흐름도이다.
도 10을 참조하면, 제1 데이터처리부(100)의 영상처리모듈(110)은 S110 단계에서 1차 데이터(10)를 입력 받는다. 1차 데이터(10)는 객체의 영상인 원본 데이터(1)에 객체(obj10)를 식별하는 클래스(cls_num)와 그 객체(obj10)가 영상에서 차지하는 영역인 영역상자(Bounding Box)의 좌표(x, y, w, h)로 이루어진 레이블(cls_num, x, y, w, h)을 부여하여 마련된다.
1차 데이터(10)가 입력되면, 영상처리모듈(110)은 S120 단계에서 영상 처리(Image Processing)를 통해 1차 데이터(10)의 객체(obj10)를 기 설정된 규칙(예컨대, "시계 방향으로 45도 회전")에 따라 변환하여 2차 데이터(20)의 객체(obj20)를 생성한다.
다음으로, 제1 데이터처리부(100)의 레이블생성모듈(120)은 S130 단계에서 앞서 생성된 2차 데이터(20)의 객체(obj20)에 따라 2차 데이터(20)의 레이블(cls_num, x2, y2, w2, h2)을 생성한다. 이때, 레이블생성모듈(120)은 1차 데이터의 객체의 클래스(cls_num)를 그대로 유지하고 2차 데이터(20)의 객체(obj20)의 영역상자(B20)의 좌표(x2, y2, w2, h2)를 검출하여 1차 데이터의 객체의 클래스(cls_num) 및 2차 데이터의 객체(obj20)의 영역상자(B20)의 좌표(x2, y2, w2, h2)로 이루어진 2차 데이터(20)의 레이블(cls_num, x2, y2, w2, h2)로 생성한다.
다음으로, 제2 데이터처리부(200)의 학습모듈(210)은 S140 단계에서 1차 데이터(10) 및 2차 데이터(20)를 기초로 인공신경망(220)을 학습시킨다.
즉, 학습모듈(210)은 2차 데이터(20)를 기댓값으로 설정하고 1차 데이터(10)를 인공신경망(220)에 입력할 수 있다. 그러면, 인공신경망(220)이 1차 데이터(10)에 대해 가중치가 적용되는 복수의 연산을 통해 출력값을 출력할 것이다. 이때, 학습모듈(210)은 그 출력값과 기댓값인 2차 데이터(20)의 차이가 최소가 되도록 인공신경망(220)의 가중치를 최적화한다. 이러한 S140 단계는 아래에서 더 상세하게 설명될 것이다.
다음으로, 학습모듈(210)은 S150 단계에서 인공신경망(220)의 학습이 완료되었는지 여부를 판단한다. 학습의 완료는 학습 데이터 중 테스트 세트를 인공신경망(220)에 입력하여 그 인공신경망(220)의 출력이 원하는 수치 이상의 성능을 가지는 경우 학습을 종료할 수 있다.
따라서 S150 단계의 판단 결과, 학습이 완료되지 않으면, 전술한 S110 단계 내지 S140 단계를 반복한다. 반면, S150 단계의 판단 결과, 학습이 완료된 것으로 판단되면, 인공신경망(220)은 S160 단계에서 새로 입력되는 1차 데이터(10)로부터 학습된 규칙에 따라 3차 데이터(30)를 생성한다. 이러한 S160 단계에서 학습이 완료된 레이블생성자(GN1)는 기 설정된 규칙, 즉, 학습된 규칙에 따라 1차 데이터(10)의 레이블을 변환하여 2차 데이터(20)의 레이블을 모사하는 3차 데이터(30)의 레이블을 생성한다. 그리고 학습이 완료된 객체생성자(GN2)는 레이블생성자(GN1)가 생성한 3차 데이터(30)의 레이블 및 1차 데이터(10)를 입력받고, 기 설정된 규칙, 즉, 학습된 규칙에 따라 1차 데이터(10)의 객체를 변환하여 생성된 3차 데이터의 레이블의 영역상자의 내부에 포함되면서, 2차 데이터(20)의 객체를 모사하는 3차 데이터(30)의 객체를 생성한다. 이로써, 3차 데이터(30)가 완성된다. 예컨대, 학습된 규칙이 "시계 방향으로 45도 회전"이라면, 레이블생성자(GN1)는 1차 데이터(10)의 레이블(cls_num, x1, y1, w1, h1)에 의해 특정되는 1차 데이터(10)의 영역 상자(B10)로부터 학습된 규칙에 따라 1차 데이터(10)의 객체(obj30)를 변환("시계 방향으로 45도 회전")할 경우 생성되는 객체(obj30)의 영역상자(B30)의 좌표(x3, y3, w3, h3)를 검출하고, 1차 데이터(10)의 객체의 클래스(cls_num)와 검출된 좌표(x3, y3, w3, h3)로 이루어진 3차 데이터(30)의 레이블(cls_num, x3, y3, w3, h3)을 생성한다. 그러면, 객체생성자(GN2)는 학습된 규칙에 따라 1차 데이터(10)의 객체(obj10)를 변환("시계 방향으로 45도 회전")하여 2차 데이터(20)의 객체(obj20)를 모사하는 3차 데이터(30)의 객체(obj30)를 생성하되, 그 객체(obj30)가 레이블생성자(GN1)로부터 입력된 3차 데이터(30)의 레이블(cls_num, x3, y3, w3, h3)에 의해 특정되는 영역상자(B30) 내부에 포함되는 조건을 만족하도록 한다. 이로써, 객체(obj30)와 레이블(cls_num, x3, y3, w3, h3)을 포함하는 3차 데이터(30)가 완성된다.
전술한 바와 같이, 복수의 인공신경망(220) 중 어느 하나의 인공신경망(220)은 복수의 규칙(도 2 참조) 중 어느 하나에 대응한다. 하지만, 이 규칙은 객체의 클래스에는 종속되지 않는다. 따라서 어느 하나의 인공신경망(220)에 대한 학습이 완료되면, 해당 인공신경망(220)을 이용하여 해당 인공신경망(220)이 학습된 규칙에 따라 객체의 클래스에 무관하게 많은 수의 학습 데이터를 새로 생성할 수 있다.
특히, 전술한 바와 같은 방법으로 생성된 1차, 2차 및 3차 데이터(10, 20, 30)는 모두 객체를 식별하기 위한 다른 인공신경망(예컨대, Fast-CNN, YOLO 시리즈 등의 객체 인식 모델)의 학습 데이터로 사용될 수 있다. 이와 같이, 본 발명에 따르면, 영상 처리(Image Processing)를 통해 1차 및 2차 데이터(10, 20)를 수집하고, 수집된 1차 및 2차 데이터(10, 20)를 통해 인공신경망(220)을 학습시킨다. 따라서 본 발명은 학습이 완료되지 않은 규칙에 해당하는 인공신경망(220)이 존재하는 경우, 계속해서 영상 처리(Image Processing)를 통해 1차 데이터(10)를 기초로 2차 데이터(10)를 생성한다. 반면, 학습이 완료된 규칙에 대응하는 인공신경망(220)이 있는 경우, 영상 처리(Image Processing) 없이 1차 데이터(10)를 기초로 학습된 인공신경망(220)을 통해 3차 데이터(30)를 생성할 수 있다. 이와 같이, 다양하고 서로 연관된 방식으로 학습 데이터를 수집함으로써 학습 데이터의 수집 속도 및 그 효율이 향상될 수 있다.
그러면, 전술한 S140 단계의 인공신경망(220)의 학습 방법에 대해서 보다 상세하게 설명하기로 한다. 도 11은 본 발명의 실시예에 따른 학습 데이터를 생성하기 위한 인공신경망의 학습 방법을 설명하기 위한 상태도이다.
도 11을 참조하면, 학습모듈(210)은 S210 단계의 판별자 학습과 S220 단계의 생성자 학습을 교번으로 반복하여 수행할 수 있다. 학습모듈(210)은 그래디언트에 따라 S210 단계의 판별자 학습과 S220 단계의 생성자 학습 각각의 학습 횟수를 변경할 수 있다. 즉, 학습모듈(210)의 최종적인 목표는 판별자(DN)가 생성자(GN)가 생성한 3차 데이터가 가짜인지 혹은 진짜인지 여부에 대한 확률을 0.5(50%)로 산출하는 것이다. 그래디언트가 낮다면 요구되는 학습 데이터의 수가 너무 많아져서 학습 속도가 느려지기 때문에 그래디언트를 증가시키는 것이 바람직하다. 따라서 학습모듈(210)은 S210 단계의 판별자 학습 및 S220 단계의 생성자 학습의 에포크(epoch)가 종료될 때마다 그래디언트를 산출하고, S210 단계의 판별자 학습 및 S220 단계의 생성자 학습을 교대로 반복할 때 그래디언트에 반비례하여 S220 단계의 생성자 학습의 횟수를 증가시킬 수 있다. S210 단계의 판별자 학습을 1번과 S220 단계의 생성자 학습을 1번을 교대로 반복하여 수행하던 중 산출된 그래디언트가 기 설정된 임계치 미만인 경우, S210 단계의 판별자 학습의 수행 횟수 1번과, S220 단계의 생성자 학습의 수행 횟수 2번을 교대로 반복하도록 변경할 수 있다.
그러면, 전술한 S210 단계 및 S220 단계 각각에 대해서 설명하기로 한다. 먼저, S210 단계의 판별자(DN)에 대한 학습에 대해서 설명한다. 도 12는 본 발명의 실시예에 따른 판별자를 학습하는 방법을 설명하기 위한 흐름도이다.
도 12를 참조하면, 학습모듈(210)은 S310 단계에서 판별자(DN)가 2차 데이터(20)를 진짜로 판별하고 3차 데이터(30)를 가짜로 판별하도록 기댓값을 설정한다. 예컨대, 판별자(DN)의 출력이 2진 데이터이라고 가정할 때, 2차 데이터(20)에 대한 기댓값은 1.0이고, 3차 데이터에 대한 기댓값은 0.0으로 설정될 수 있다.
판별자(DN)는 S320 단계에서 2차 데이터(20) 및 3차 데이터(30) 각각을 개별적으로 입력받고, 2차 데이터(20) 및 3차 데이터(30) 각각이 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출한다. 이때, 레이블판별자(DN1)는 2차 데이터(20) 및 3차 데이터(30) 각각의 레이블이 진짜인지 혹은 가짜인지 여부를 나타내는 제1 확률을 산출하고, 객체판별자(DN2)는 2차 데이터(20) 및 3차 데이터(30) 각각의 객체가 진짜인지 혹은 가짜인지 여부를 나타내는 제2 확률을 산출한 후, 병합출력자(MO)가 제1 확률 및 제2 확률을 소정의 연산에 따라 병합하여 2차 데이터(20) 및 3차 데이터(30) 각각이 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출한다.
전술한 바와 같이, 확률이 산출되면, 학습모듈(210)은 S330 단계에서 2차 데이터(20) 및 3차 데이터(30) 각각에 대해 산출된 확률과 앞서 설정된 기댓값과의 차이를 나타내는 손실을 도출한다. 이러한 손실은 이진 교차 엔트로피(binary cross entropy) 손실이 될 수 있다. 보다 구체적으로 설명하면, 학습모듈(210)은 2차 데이터(20)에 대한 기댓값인 1.0과 2차 데이터(20)에 대해 산출된 확률과의 차이를 나타내는 손실을 도출하고, 3차 데이터(30)에 대한 기댓값인 0.0과 3차 데이터(30)에 대해 산출된 확률과의 차이를 나타내는 손실을 도출할 수 있다.
그런 다음, 학습모듈(210)은 S340 단계에서 2차 데이터(20) 및 3차 데이터(30) 양자 모두에 대한 손실을 합산하고, 합산된 손실이 최소가 되도록 생성자(GN)의 가중치는 고정하고 판별자(DN)의 가중치를 최적화한다.
다음으로, S220 단계의 생성자(GN)에 대한 학습에 대해서 설명한다. 도 13은 본 발명의 실시예에 따른 판별자를 학습하는 방법을 설명하기 위한 흐름도이다.
도 13을 참조하면, 학습모듈(210)은 S410 단계에서 판별자(DN)가 3차 데이터(30)를 진짜로 판별하도록 기댓값을 설정한다. 예컨대, 학습모듈(210)은 판별자(DN)의 출력이 2진 데이터이라고 가정할 때, 앞서 설명된 판별자(DN)에 대한 학습과 대조적으로 3차 데이터(30)에 대한 기댓값을 1.0으로 설정할 수 있다.
다음으로, 판별자(DN)는 S420 단계에서 3차 데이터(30)를 입력받고, 입력된 3차 데이터(30)가 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출한다. 이때, 레이블판별자(DN1)는 3차 데이터(30) 각각의 레이블이 진짜인지 혹은 가짜인지 여부를 나타내는 제1 확률을 산출하고, 객체판별자(DN2)는 3차 데이터(30)의 객체가 진짜인지 혹은 가짜인지 여부를 나타내는 제2 확률을 산출한 후, 병합출력자(MO)가 제1 확률 및 제2 확률을 소정의 연산에 따라 병합하여 2차 데이터(20) 및 3차 데이터(30) 각각이 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출한다.
전술한 바와 같이, 확률이 산출되면, 학습모듈(210)은 S430 단계에서 3차 데이터(30)에 대해 산출된 확률과 앞서 설정된 기댓값과의 차이를 나타내는 손실을 도출한다. 이러한 손실은 이진 교차 엔트로피(binary cross entropy) 손실이 될 수 있다. 보다 구체적으로 설명하면, 학습모듈(210)은 3차 데이터(30)에 대한 레이블인 1.0과 3차 데이터(30)에 대해 산출된 확률과의 차이를 나타내는 손실을 도출할 수 있다. 그런 다음, 학습모듈(210)은 S440 단계에서 3차 데이터(30)에 대한 손실이 최소가 되도록 판별자(DN)의 가중치는 고정하고 생성자(GN)의 가중치를 최적화한다.
다음으로, 본 발명의 실시예에 따른 컴퓨팅 장치의 구성에 대해서 설명하기로 한다. 도 14는 본 발명의 실시예에 따른 컴퓨팅 장치의 구성을 설명하기 위한 도면이다. 도 14의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치(예컨대, 생성장치(GA) 등)일 수 있다.
도 14의 실시예에서, 컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다.
메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다.
송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다. 송수신 장치(TN120)는 네트워크에 연결되어 통신을 수행할 수 있다.
한편, 앞서 설명된 본 발명의 실시예에 따른 다양한 방법들은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 와이어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 와이어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100: 제1 데이터처리부
110: 영상처리모듈
120: 레이블생성모듈
200: 제2 데이터처리부
210: 학습모듈
220: 인공신경망
GN: 생성자
GN1: 레이블생성자
GN2: 객체 생성자
DN: 판별자
DN1: 레이블판별자
DN2: 객체판별자
MO: 병합출력자

Claims (18)

  1. 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치에 있어서,
    객체의 영상인 원본 데이터에 상기 객체를 식별하는 클래스와 상기 객체가 상기 영상에서 차지하는 영역인 영역상자의 좌표로 이루어진 레이블이 부여된 1차 데이터를 입력 받고, 영상 처리(Image Processing)를 통해 상기 1차 데이터의 객체를 기 설정된 규칙에 따라 변환하여 2차 데이터의 객체를 생성하는 영상처리모듈;
    상기 변환된 2차 데이터의 객체의 영역상자의 좌표를 검출하고, 상기 1차 데이터의 클래스 및 상기 검출된 2차 데이터의 객체의 영역상자의 좌표로 이루어진 2차 데이터의 레이블을 생성하는 레이블생성모듈; 및
    상기 1차 데이터 및 상기 2차 데이터를 이용하여 상기 기 설정된 규칙에 따라 상기1차 데이터를 변환하여 상기 2차 데이터를 모사하는 3차 데이터를 생성하도록 생성자와 판별자를 포함하는 인공신경망을 학습시키는 학습모듈;
    을 포함하며,
    상기 인공신경망의 학습이 완료된 후,
    상기 인공신경망은
    1차 데이터가 입력되면, 상기 기 설정된 규칙에 따라 상기 입력된 1차 데이터로부터 3차 데이터를 생성하고,
    상기 인공신경망은
    상기 규칙에 따라 상기 1차 데이터의 레이블을 변환하여 상기 2차 데이터의 레이블을 모사하는 3차 데이터의 레이블을 생성하는 레이블생성자; 및
    상기 1차 데이터의 객체가 입력되면, 상기 규칙에 따라 상기 1차 데이터의 객체를 변환하여 상기 생성된 3차 데이터의 레이블의 영역상자의 내부에 포함되면서 상기 2차 데이터의 객체를 모사하는 상기 3차 데이터의 객체를 생성하는 객체생성자;
    를 포함하는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 학습모듈은
    상기 판별자가 상기 2차 데이터를 진짜로 판별하고, 상기 생성자가 생성한 3차 데이터를 가짜로 판별하도록 상기 판별자를 학습시키고,
    상기 판별자가 상기 3차 데이터를 진짜로 판별하도록 상기 생성자를 학습시키는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 장치.
  6. 제5항에 있어서,
    상기 학습모듈은
    상기 판별자가 2차 데이터를 진짜로 판별하고 3차 데이터를 가짜로 판별하도록 기댓값을 설정한 후,
    상기 판별자가 상기 2차 데이터 및 상기 3차 데이터 각각이 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출하면,
    상기 2차 데이터 및 상기 3차 데이터 각각에 대해 상기 산출된 확률과 상기 기댓값과의 차이를 나타내는 손실을 도출하고, 상기 2차 데이터 및 상기 3차 데이터 양자 모두에 대한 손실을 합산하고, 합산된 손실이 최소가 되도록 상기 생성자의 가중치는 고정하고 상기 판별자의 가중치를 최적화함으로써
    상기 판별자를 학습시키는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 장치.
  7. 제5항에 있어서,
    상기 학습모듈은
    상기 학습모듈이 상기 판별자가 3차 데이터를 진짜로 판별하도록 기댓값을 설정한 후,
    상기 판별자가 상기 3차 데이터가 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출하면,
    상기 산출된 확률과 상기 기댓값과의 차이를 나타내는 손실을 도출하고, 상기 손실이 최소가 되도록 상기 판별자의 가중치는 고정하고 상기 생성자의 가중치를 최적화함으로써
    상기 생성자를 학습시키는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 장치.
  8. 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치에 있어서,
    객체 및 레이블을 포함하는1차 데이터를 영상 처리(Image Processing)를 통해 기 설정된 규칙에 따라 변환하여 객체 및 레이블을 포함하는 2차 데이터를 생성하는 제1 데이터처리부; 및
    상기1차 데이터를 상기 규칙에 따라 변환하여 상기 2차 데이터를 모사하는 3차 데이터를 생성하는 인공신경망;
    을 포함하며,
    상기 인공신경망은
    상기 규칙에 따라 상기 1차 데이터의 레이블을 변환하여 상기 2차 데이터의 레이블을 모사하는 3차 데이터의 레이블을 생성하는 레이블생성자와,
    상기 1차 데이터의 객체가 입력되면, 상기 규칙에 따라 상기 1차 데이터의 객체를 변환하여 상기 생성된 3차 데이터의 레이블의 영역상자의 내부에 포함되면서 상기 2차 데이터의 객체를 모사하는 상기 3차 데이터의 객체를 생성하는 객체생성자를 포함하는 생성자;
    를 포함하는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 장치.
  9. 삭제
  10. 제8항에 있어서,
    상기 인공신경망은 판별자;를 더 포함하며,
    상기 장치는
    상기 판별자가 상기 2차 데이터를 진짜로 판별하고 상기 생성자가 생성한 3차 데이터를 가짜로 판별하도록 상기 생성자의 가중치를 고정하고 상기 판별자의 가중치를 최적화하여 상기 판별자를 학습시키고,
    상기 판별자가 상기 3차 데이터를 진짜로 판별하도록 상기 판별자의 가중치를 고정하고 상기 생성자의 가중치를 최적화하여 상기 생성자를 학습시키는
    학습모듈;
    을 더 포함하는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 장치.
  11. 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 방법에 있어서,
    영상처리모듈이 객체의 영상인 원본 데이터에 상기 객체를 식별하는 클래스와 상기 객체가 상기 영상에서 차지하는 영역인 영역상자의 좌표로 이루어진 레이블이 부여된 1차 데이터를 입력 받는 단계;
    상기 영상처리모듈이 영상 처리(Image Processing)를 통해 상기 1차 데이터의 객체를 기 설정된 규칙에 따라 변환하여 2차 데이터의 객체를 생성하는 단계;
    레이블생성모듈이 상기 변환된 2차 데이터의 객체의 영역상자의 좌표를 검출하는 단계; 및
    상기 레이블생성모듈이 상기 1차 데이터의 객체의 클래스 및 상기 검출된 2차 데이터의 객체의 영역상자의 좌표로 이루어진 2차 데이터의 레이블을 생성하는 단계;
    학습모듈이 상기 1차 데이터 및 상기 2차 데이터를 이용하여 상기 기 설정된 규칙에 따라 상기 1차 데이터를 변환하여 상기 2차 데이터를 모사하는 3차 데이터를 생성하도록 생성자와 판별자를 포함하는 인공신경망을 학습시키는 단계; 및
    상기 인공신경망의 학습이 완료된 후, 1차 데이터가 입력되면, 상기 인공신경망이 상기 기 설정된 규칙에 따라 상기 입력된 1차 데이터로부터 3차 데이터를 생성하는 단계;
    를 포함하며,
    상기 3차 데이터를 생성하는 단계는
    상기 인공신경망의 레이블생성자가 상기 규칙에 따라 상기 1차 데이터의 레이블을 변환하여 상기 2차 데이터의 레이블을 모사하는 3차 데이터의 레이블을 생성하는 단계; 및
    상기 인공신경망의 객체생성자가 상기 1차 데이터의 객체가 입력되면, 상기 규칙에 따라 상기 1차 데이터의 객체를 변환하여 상기 생성된 3차 데이터의 레이블의 영역상자의 내부에 포함되면서 상기 2차 데이터의 객체를 모사하는 상기 3차 데이터의 객체를 생성하는 단계;
    를 포함하는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 제11항에 있어서,
    상기 인공신경망을 학습시키는 단계는
    상기 학습모듈이 상기 판별자가 상기 2차 데이터를 진짜로 판별하고, 상기 생성자가 생성한 3차 데이터를 가짜로 판별하도록 상기 판별자를 학습시키는 단계; 및
    상기 학습모듈이 상기 판별자가 상기 3차 데이터를 진짜로 판별하도록 상기 생성자를 학습시키는 단계;
    를 포함하는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 방법.
  16. 제15항에 있어서,
    상기 판별자를 학습시키는 단계는
    상기 학습모듈이 상기 판별자가 2차 데이터를 진짜로 판별하고, 3차 데이터를 가짜로 판별하도록 기댓값을 설정하는 단계;
    상기 판별자가 상기 2차 데이터 및 상기 3차 데이터 각각이 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출하는 단계;
    상기 2차 데이터 및 상기 3차 데이터 각각에 대해 상기 산출된 확률과 상기 기댓값과의 차이를 나타내는 손실을 도출하는 단계;
    상기 2차 데이터 및 상기 3차 데이터 양자 모두에 대한 손실을 합산하고, 합산된 손실이 최소가 되도록 상기 생성자의 가중치는 고정하고 상기 판별자의 가중치를 최적화하는 단계;
    를 포함하는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 방법.
  17. 제15항에 있어서,
    상기 생성자를 학습시키는 단계는
    상기 학습모듈이 상기 판별자가 3차 데이터를 진짜로 판별하도록 기댓값을 설정하는 단계;
    상기 판별자가 상기 3차 데이터가 진짜인지 혹은 가짜인지 여부를 나타내는 확률을 산출하는 단계;
    상기 산출된 확률과 상기 기댓값과의 차이를 나타내는 손실을 도출하는 단계;
    상기 손실이 최소가 되도록 상기 판별자의 가중치는 고정하고 상기 생성자의 가중치를 최적화하는 단계;
    를 포함하는 것을 특징으로 하는
    학습 데이터를 생성하기 위한 방법.
  18. 제11항, 제15항, 제16항 및 제17항 중 어느 한 항에 따른 학습 데이터를 생성하기 위한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020200049644A 2020-04-23 2020-04-23 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 KR102175531B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200049644A KR102175531B1 (ko) 2020-04-23 2020-04-23 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200049644A KR102175531B1 (ko) 2020-04-23 2020-04-23 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Publications (1)

Publication Number Publication Date
KR102175531B1 true KR102175531B1 (ko) 2020-11-06

Family

ID=73572012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200049644A KR102175531B1 (ko) 2020-04-23 2020-04-23 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (1)

Country Link
KR (1) KR102175531B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102311089B1 (ko) * 2021-06-03 2021-10-07 호서대학교 산학협력단 스마트 해상부이를 이용한 해양을 모니터링하기 위한 장치 및 이를 위한 방법
KR20220065640A (ko) * 2020-11-13 2022-05-20 홍채은 자가 지도학습을 통한 데이터 특성 학습 방법 및 가짜 정보 판별 방법
WO2022231915A1 (en) * 2021-04-30 2022-11-03 Micron Technology, Inc. Interactive tools to identify and label objects in video frames
KR102498048B1 (ko) * 2022-02-08 2023-02-10 (주)에이아이매틱스 이미지 생성 기술을 이용한 오토라벨 데이터의 자동 교정 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060862A (ko) 2005-12-09 2007-06-13 한국전자통신연구원 학습 데이터 구축 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060862A (ko) 2005-12-09 2007-06-13 한국전자통신연구원 학습 데이터 구축 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dongjun zhu외 7인, "Diverse sample generation with multi-branch conditional generative adversarial network for remote sensing objects detection", ELSEVIER, (2019.11.11.) 1부.* *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220065640A (ko) * 2020-11-13 2022-05-20 홍채은 자가 지도학습을 통한 데이터 특성 학습 방법 및 가짜 정보 판별 방법
KR102406961B1 (ko) * 2020-11-13 2022-06-10 홍채은 자가 지도학습을 통한 데이터 특성 학습 방법 및 가짜 정보 판별 방법
WO2022231915A1 (en) * 2021-04-30 2022-11-03 Micron Technology, Inc. Interactive tools to identify and label objects in video frames
KR102311089B1 (ko) * 2021-06-03 2021-10-07 호서대학교 산학협력단 스마트 해상부이를 이용한 해양을 모니터링하기 위한 장치 및 이를 위한 방법
KR102498048B1 (ko) * 2022-02-08 2023-02-10 (주)에이아이매틱스 이미지 생성 기술을 이용한 오토라벨 데이터의 자동 교정 시스템 및 방법

Similar Documents

Publication Publication Date Title
KR102175531B1 (ko) 인공신경망을 학습시키기 위한 레이블을 포함하는 학습 데이터를 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102532749B1 (ko) 약한 지도 학습에 기초한 뉴럴 네트워크의 계층적 학습 방법 및 장치
CN111242071B (zh) 一种基于锚框的注意力遥感图像目标检测方法
CN109816032B (zh) 基于生成式对抗网络的无偏映射零样本分类方法和装置
US10671077B2 (en) System and method for full-stack verification of autonomous agents
US20230237375A1 (en) Dynamic placement of computation sub-graphs
KR20180028442A (ko) 이미지들에서의 오브젝트 검출을 위한 콘텍스트-기반 프라이어들
CN113486726A (zh) 一种基于改进卷积神经网络的轨道交通障碍物检测方法
CN111507459B (zh) 降低神经网络的注解费用的方法和装置
KR20210051722A (ko) 객체 검출 모델의 학습 방법 및 객체 검출 모델이 실행되는 객체 검출 장치
CN110879960B (zh) 生成卷积神经网络学习用图像数据集的方法及计算装置
WO2020240808A1 (ja) 学習装置、分類装置、学習方法、分類方法、学習プログラム、及び分類プログラム
GB2601898A (en) Detecting adversary attacks on a deep neural network (DNN)
CN114064928A (zh) 一种知识图谱的知识推理方法、装置、设备及存储介质
CN114549369A (zh) 数据修复方法、装置、计算机及可读存储介质
CN115984564A (zh) 一种基于体素聚类和稀疏卷积的点云语义分割方法和系统
CN114330588A (zh) 一种图片分类方法、图片分类模型训练方法及相关装置
CN111738972A (zh) 建筑检测系统、方法和装置
CN113705293A (zh) 图像场景的识别方法、装置、设备及可读存储介质
KR20200099966A (ko) 명목형 데이터를 포함하는 데이터를 기반으로 하는 학습 방법 및 장치
JP2023126130A (ja) オブジェクト検出のためのコンピュータにより実施される方法、データ処理機器及びコンピュータプログラム
KR102401113B1 (ko) 보상 가능성 정보 및 UX-bit를 이용한 자동 디자인 생성 인공신경망 장치 및 방법
KR102259878B1 (ko) 융합 컨볼루셔널 오토인코더를 이용한 객체의 회전에 영향을 받지 않는 분류 모델을 생성하기 위한 장치 및 이를 위한 방법
KR102184395B1 (ko) 결정트리 및 심층신경망을 이용한 대량의 데이터를 분류하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
JP7103987B2 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

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