KR102594480B1 - Mim 기반의 퓨샷 객체 검출 모델 학습 방법 - Google Patents

Mim 기반의 퓨샷 객체 검출 모델 학습 방법 Download PDF

Info

Publication number
KR102594480B1
KR102594480B1 KR1020230028265A KR20230028265A KR102594480B1 KR 102594480 B1 KR102594480 B1 KR 102594480B1 KR 1020230028265 A KR1020230028265 A KR 1020230028265A KR 20230028265 A KR20230028265 A KR 20230028265A KR 102594480 B1 KR102594480 B1 KR 102594480B1
Authority
KR
South Korea
Prior art keywords
learning
learning model
data set
class
data
Prior art date
Application number
KR1020230028265A
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 KR1020230028265A priority Critical patent/KR102594480B1/ko
Application granted granted Critical
Publication of KR102594480B1 publication Critical patent/KR102594480B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/809Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of classification results, e.g. where the classifiers operate on the same input data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

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

Abstract

본 발명은 적은 양의 학습 데이터를 이용하여 높은 객체 검출 성능을 발현할 수 있는 MIM 기반의 퓨샷 객체 검출 모델 학습 방법을 제안한다. 상기 방법은 학습 장치가, 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 객체 검출을 위한 제1 학습 모델을 사전 학습하는 단계, 상기 학습 장치가, 상기 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성하는 단계 및 상기 학습 장치가, 데이터 수가 사전 설정된 값보다 적은 제2 데이터 셋을 기초로 상기 제3 학습 모델을 학습하는 단계를 포함할 수 있다.

Description

MIM 기반의 퓨샷 객체 검출 모델 학습 방법{Method for few shot object detection model based learning masked image modeling}
본 발명은 객체 검출 모델(object detection model)에 관한 것이다. 보다 상세하게는, 적은 양의 학습 데이터를 이용하여 높은 객체 검출 성능을 발현할 수 있는 MIM 기반의 퓨샷 객체 검출 모델 학습 방법에 관한 것이다.
인공지능(AI)은 인간의 학습능력, 추론능력 및 지각능력 등의 일부 또는 전부를 컴퓨터 프로그램을 이용하여 인공적으로 구현하는 기술을 의미한다. 인공지능(AI)과 관련하여, 기계 학습(machine learning)은 다수의 파라미터로 구성된 모델을 이용하여 주어진 데이터로 파라미터를 최적화하는 학습을 의미한다. 이와 같은, 기계 학습은 학습용 데이터의 형태에서 따라, 지도 학습(supervised learning), 비지도 학습(unsupervised learning) 및 강화 학습(reinforcement learning)으로 구분된다.
지도 학습은 사람이 직접 각각의 입력에 대하여, 입력에 대응하는 레이블(label)을 부여한 데이터를 직접 컴퓨터에 제공하여 학습하는 방법을 의미한다. 이러한, 지도 학습은 사람이 직접 개입하므로 정확도가 높은 데이터를 사용할 수 있는 장점이 있다.
비지도 학습은 사람 없이 컴퓨터가 레이블이 부여되지 않은 데이터를 통해 학습하는 방법을 의미한다. 이러한, 비지도 학습은 정답이 없는 문제를 컴퓨터가 해결하는 것이므로 지도 학습에 비해 다소 정확도가 떨어지지만 향후 기계학습이 나아갈 방향으로 설정되어 있다.
강화 학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 방법을 의미한다. 구체적으로, 강화 학습은 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화하는 방향으로 학습이 진행된다.
일반적으로 방대한 양의 학습 데이터를 요구하는 비전 태스크(vision task)는 데이터의 수집, 가공 및 학습에 많은 시간과 자원을 필요로 한다.
데이터의 양이 적은 경우 과적합이나 정확도에서 문제가 발생할 수 있지만, 최근에는 적은 양의 데이터로도 높은 정확도의 검출이 가능한 퓨샷 객체 검출(few shot object detection)에 대한 연구가 활발히 진행되고 있다.
한편, 메타 학습(meta learning)은 적은 양의 데이터와 주어진 환경만으로도 스스로 학습하고, 학습한 정보와 알고리즘을 새로운 문제에 적용하여 해결하는 학습 방법을 의미한다.
최근에는 메타 학습을 퓨샷 객체 검출에 적용하는 연구가 진행되고 있으나, 정확도가 보장된 만큼 복잡한 에피소드 셋팅으로 인한 연산이 비효율 적이라는 한계점이 존재했다.
대한민국 등록특허공보 제10-2348593호, ‘기계 학습 기반의 객체 검출 방법 및 그 장치’, (2022.01.04. 등록)
따라서, 본 발명의 목적은 적은 양의 학습 데이터를 이용하여 높은 객체 검출 성능을 발현할 수 있는 MIM 기반의 퓨샷 객체 검출 모델 학습 방법을 제공하는 것이다.
본 발명의 다른 목적은 적은 양의 학습 데이터를 이용하여 높은 객체 검출 성능을 발현할 수 있는 MIM 기반의 퓨샷 객체 검출 모델 학습 방법을 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 기술적 과제를 달성하기 위하여, 본 발명은 적은 양의 학습 데이터를 이용하여 높은 객체 검출 성능을 발현할 수 있는 MIM 기반의 퓨샷 객체 검출 모델 학습 방법을 제안한다. 상기 방법은 학습 장치가, 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 객체 검출을 위한 제1 학습 모델을 사전 학습하는 단계, 상기 학습 장치가, 상기 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성하는 단계 및 상기 학습 장치가, 데이터 수가 사전 설정된 값보다 적은 제2 데이터 셋을 기초로 상기 제3 학습 모델을 학습하는 단계를 포함하는 것을 특징으로 한다.
구체적으로, 상기 제1 데이터 셋 및 상기 제2 데이터 셋은 적어도 하나의 객체, 상기 적어도 하나의 객체의 클래스(class) 정보 및 상기 적어도 하나의 객체에 어노테이션(annotation) 수행된 바운딩 박스(bounding box) 정보를 포함하는 것을 특징으로 한다.
상기 제2 데이터 셋은 클래스 별 객체 수가 사전 설정된 값보다 많은 베이스 클래스(base class) 이미지 그룹 및 클래스 별 객체 수가 사전 설정된 값보다 적은 노벨 클래스(novel class) 이미지 그룹을 포함하고, 상기 노벨 클래스 이미지 그룹 및 상기 베이스 클래스 이미지 그룹은 서로 중복되지 않는 것을 특징으로 한다.
상기 사전 학습하는 단계는 균일한 제약 조건으로 사전에 설정된 비율에 따라 상기 제1 데이터 셋에 포함된 각 이미지를 샘플링 하는 단계, 상기 샘플링 된 제1 데이터 셋에 포함된 각 이미지를 마스킹(masking) 하는 단계 및 상기 마스킹 된 제1 데이터 셋을 기초로 피라미드 기반의 비전 트랜스포머(vision transformer)를 학습하는 단계를 포함하는 것을 특징으로 한다.
상기 비전 트랜스포머는 PVT(Pyramid Vision Transformer) 및 스윈 트랜스포머(Swin Transformer) 중 하나인 것을 특징으로 한다.
상기 마스킹 하는 단계는 상기 비전 트랜스포머가 PVT 인 경우, 상기 샘플링 된 이미지의 가시적 패치 중 무작위로 마스킹을 수행하되, 공유 마스크 토큰을 사용하여 상기 마스킹 된 패치를 대체하는 것을 특징으로 한다.
상기 공유 마스크 토큰은 상기 수행된 마스킹의 존재를 나타내는 임베딩 벡터(embedding vector) 인 것을 특징으로 한다.
상기 제3 학습 모델을 생성하는 단계에서 상기 제2 학습 모델은 Faster R-CNN 인 것을 특징으로 한다.
상기 제3 학습 모델을 생성하는 단계는 상기 제1 학습 모델에 포함된 인코더(encoder)를 상기 제2 학습 모델의 백본(backbone) 층으로 삽입하는 것을 특징으로 한다.
상기 제3 학습 모델을 학습시키는 단계는 상기 베이스 클래스 이미지 그룹을 기초로 상기 제3 학습 모델을 학습하여 제4 학습 모델을 생성하는 단계 및 상기 제2 데이터 셋을 기초로 상기 제4 학습 모델을 미세 조정(fine tuning)하는 단계를 포함하는 것을 특징으로 한다.
상기 미세 조정하는 단계는 상기 제4 학습 모델의 출력 층의 가중치를 초기화하여 미세 조정하되, 상기 출력 층을 제외한 나머지 구성요소의 가중치는 고정하는 것을 특징으로 한다.
상기 미세 조정하는 단계는 상기 제4 학습 모델의 출력 층을 초기화 하되, 상기 출력 층을 코사인 유사도(cosine similarity) 층으로 대체하고, 상기 코사인 유사도 층의 학습율을 사전 설정된 값으로 미세 조정하는 것을 특징으로 한다.
상술한 바와 같은 기술적 과제를 달성하기 위하여, 본 발명은 학습 방법을 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램을 제안한다. 상기 컴퓨터 프로그램은 메모리(memory), 송수신기(transceiver) 및 상기 메모리에 상주된 명령어를 처리하는 프로세서(processor)를 포함하여 구성된 컴퓨팅 장치와 결합될 수 있다. 그리고, 상기 컴퓨터 프로그램은 상기 프로세서가, 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 제1 학습 모델을 사전 학습하는 단계, 상기 프로세서가, 상기 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성하는 단계 및 상기 프로세서가, 데이터 수가 사전 설정된 값보다 작은 제2 데이터 셋을 기초로 상기 제3 학습 모델을 학습하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.
기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시 예들에 따르면, 랜덤 한 이미지 데이터 셋을 통해 학습 모델을 사전 학습하여 학습 모델의 일반화 성능을 증가시킬 수 있으며, 트랜스포머 기반의 학습 모델을 조합하여 계산 복잡도를 낮출 수 있다.
본 발명의 효과들은 이상에서 언급한 효과로 제한되지 아니하며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 본 발명이 속한 기술분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1 및 2는 본 발명의 다양한 실시예에 따른 인공지능 학습 시스템을 나타낸 구성도이다.
도 3은 본 발명의 일 실시예에 따른 학습 장치의 논리적 구성도이다.
도 4는 본 발명의 일 실시예에 따른 학습 장치의 하드웨어 구성도이다.
도 5는 본 발명의 일 실시예에 따른 학습 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 S110 단계를 구체적으로 나타낸 순서도이다.
도 7은 본 발명의 일 실시예에 따른 S130 단계를 구체적으로 나타낸 순서도이다.
도 8은 본 발명의 일 실시예에 따른 객체 검출 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 학습 방법을 설명하기 위한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 객체 검출 방법을 설명하기 위한 예시도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "구성된다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다. 본 발명의 사상은 첨부된 도면 외에 모든 변경, 균등물 내지 대체물에 까지도 확장되는 것으로 해석되어야 한다.
한편, 일반적으로 방대한 양의 학습 데이터를 요구하는 비전 태스크(vision task)는 데이터의 수집, 가공 및 학습에 많은 시간과 자원을 필요로 한다.
데이터의 양이 적은 경우 과적합이나 정확도에서 문제가 발생할 수 있지만, 최근에는 적은 양의 데이터로도 높은 정확도의 검출이 가능한 퓨샷 객체 검출(few shot object detection)에 대한 연구가 활발히 진행되고 있다.
한편, 메타 학습(meta learning)은 적은 양의 데이터와 주어진 환경만으로도 스스로 학습하고, 학습한 정보와 알고리즘을 새로운 문제에 적용하여 해결하는 학습 방법을 의미한다.
최근에는 메타 학습을 퓨샷 객체 검출에 적용하는 연구가 진행되고 있으나, 정확도가 보장된 만큼 복잡한 에피소드 셋팅으로 인한 연산이 비효율 적이라는 한계점이 존재했다.
이러한 한계를 극복하고자, 본 발명은 적은 양의 학습 데이터를 이용하여 높은 객체 검출 성능을 발현할 수 있는 다양한 수단들을 제안하고자 한다.
도 1 및 2는 본 발명의 다양한 실시예에 따른 인공지능 학습 시스템을 나타낸 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 인공지능 학습 시스템은 학습 데이터 생성 장치(100), 하나 이상의 어노테이션 장치(200-1, 200-2, …, 200-n; 200), 학습 데이터 검증 장치(300) 및 학습 장치(400)를 포함하여 구성될 수 있다.
또한, 도 2에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 인공지능 학습 시스템은 하나 이상의 어노테이션 장치(200-a, 200-b, …, 200-m; 200)와 학습 데이터 검증 장치(300-a, 300-b, …, 300-m; 300)가 하나로 이루어진 복수 개의 그룹(Group-a, Group-b …, Group-m), 학습 데이터 생성 장치(100) 및 학습 장치(400)를 포함하여 구성될 수 있다.
이와 같은, 다양한 실시예에 따른 인공지능 학습 시스템의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.
각각의 구성 요소에 대하여 설명하면, 학습 데이터 생성 장치(100)는 차량의 자율주행에 사용될 수 있는 인공지능(AI)을 기계 학습시키기 위한 데이터를 설계 및 생성하는데 사용될 수 있는 장치이다.
이와 같은, 학습 데이터 생성 장치(100)는 기본적으로 학습 데이터 검증 장치(300)와 구분되는 장치이나, 실제 물리적 환경에서 학습 데이터 생성 장치(100)와 학습 데이터 검증 장치(300)가 하나의 장치로 통합되어 구현될 수도 있다.
구체적으로, 학습 데이터 설계 장치(100)는 학습 장치(400)로부터 인공지능(AI) 학습과 관련된 프로젝트의 속성을 수신할 수 있다. 학습 데이터 설계 장치(100)는 사용자의 제어 및 수신된 프로젝트의 속성을 기초로, 인공지능(AI) 학습을 위한 데이터 구조의 설계, 수집된 데이터의 정제, 데이터의 가공, 데이터의 확장 및 데이터의 검증을 수행할 수 있다.
우선적으로, 학습 데이터 설계 장치(100)는 인공지능(AI) 학습을 위한 데이터 구조를 설계할 수 있다. 예를 들어, 학습 데이터 설계 장치(100)는 사용자의 제어 및 수신된 프로젝트의 속성을 기초로, 인공지능(AI) 학습을 위한 온톨로지(ontology), 인공지능(AI) 학습을 위한 데이터의 분류 체계를 정의할 수 있다.
학습 데이터 설계 장치(100)는 설계된 데이터 구조를 기초로, 인공지능(AI) 학습을 위한 데이터를 수집할 수 있다. 이를 위하여, 학습 데이터 설계 장치(100)는 외부로부터 3D 점군 데이터 및 2D 이미지들을 입력 받거나, 웹 크롤링(web crawling)을 수행하여 3D 점군 데이터 및 2D 이미지들을 수집하거나, 또는 외부 기관의 장치로부터 3D 점군 데이터 및 2D 이미지들을 다운로드 할 수 있다.
여기서, 3D 점군 데이터는 차량에 고정 설치된 라이다(lidar)에 의해 획득된 데이터이다. 차량에 고정 설치된 라이다는 레이저 펄스를 발사하고, 차량 주위에 위치하는 객체들에 의해 반사되어 돌아온 빛을 감지하여, 차량 주위에 대한 3차원 영상에 해당하는 3D 점군 데이터를 생성할 수 있다. 즉, 3D 점군 데이터를 구성하는 점군은 라이다에 의해 3차원 공간으로 발사된 레이저 펄스를 반사시킨 점(point)들의 집합을 의미한다.
그리고, 2D 이미지는 차량에 고정 설치된 복수 개의 카메라에 의해 촬영된 이미지이다. 자율주행을 위하여 하나의 차량에는 다수 개의 카메라가 고정 설치되어, 차량 주위에 대한 2차원 이미지를 각각 촬영할 수 있다. 예를 들어, 하나의 차량에 6개의 카메라가 설치될 수 있으나, 이에 한정되지 않는다.
학습 데이터 생성 장치(100)는 수집된 3D 점군 데이터 및 2D 이미지들 중에서 중복되거나 또는 극히 유사한 데이터를 제거할 수 있다. 학습 데이터 생성 장치(100)는 수집된 3D 점군 데이터 및 2D 이미지들에 포함된 개인정보를 비식별화(de-identification)할 수 있다.
학습 데이터 생성 장치(100)는 수집 및 정제된 3D 점군 데이터 및 2D 이미지들을 복수 개의 어노테이션 장치(200)에 분배하여 전송할 수 있다. 이 경우, 학습 데이터 생성 장치(100)는 어노테이션 장치(200)의 작업자(즉, 라벨러)에 대하여 사전에 할당된 양에 따라 3D 점군 데이터 및 2D 이미지들을 분배할 수 있다.
학습 데이터 생성 장치(100)는 어노테이션 장치(200)로부터 직접 어노테이션 작업 결과물을 수신하거나, 또는 학습 데이터 검증 장치(300)로부터 어노테이션 작업 결과물 및 검수 결과를 수신할 수 있다.
학습 데이터 생성 장치(100)는 수신된 어노테이션 작업 결과물을 패키징(packaging)하여 인공지능(AI) 학습용 데이터를 생성할 수 있다. 그리고, 학습 데이터 생성 장치(100)는 생성된 인공지능(AI) 학습용 데이터를 학습 장치(400)에 전송할 수 있다.
이와 같은 특징을 가지는, 학습 데이터 생성 장치(100)는 어노테이션 장치(200), 학습 데이터 검증 장치(300) 및 학습 장치(400)와 데이터를 송수신하고, 송수신된 데이터를 기초로 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다.
예를 들어, 학습 데이터 생성 장치(100)는 데스크탑(desktop), 워크스테이션(workstation) 또는 서버(server)와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.
어노테이션 장치(200)는 학습 데이터 생성 장치(100)로부터 제공된 이미지에 대하여 어노테이션 작업을 수행하는데 사용될 수 있는 장치이다.
여기서, 어노테이션 작업은 바운딩 박스(bounding box)를 설정하고, 객체의 속성 정보를 포함하는 클래스(class) 정보를 입력하는 과정을 포함할 수 있다.
이와 같은, 어노테이션 장치(200)는 학습 데이터 생성 장치(100) 또는 학습 장치(400)와 데이터를 송수신하고, 송수신된 데이터를 이용하여 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다.
예를 들어, 어노테이션 장치(200)는 데스크탑(desktop), 워크스테이션(workstation) 또는 서버(server)와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되지 아니하고, 스마트폰(smart phone), 랩탑(laptaop), 태블릿(tablet), 패블릿(phablet), 휴대용 멀티미디어 재생장치(Portable Multimedia Player, PMP), 개인용 휴대 단말기(Personal Digital Assistants, PDA) 또는 전자책 단말기(E-book reader)과 같은 이동식 컴퓨팅 장치 중 어느 하나가 될 수도 있다.
다음 구성으로, 학습 데이터 검증 장치(300)는 인공지능(AI) 학습용 데이터를 검증하는데 사용될 수 있는 장치이다. 즉, 학습 데이터 검증 장치(300)는 어노테이션 장치(200)에 의해 생성된 어노테이션 작업 결과물이 사전에 설정된 목표 품질에 부합하는지 여부, 또는 어노테이션 작업 결과물이 인공지능(AI) 학습에 유효한지 여부를 검증할 수 있는 장치이다.
구체적으로, 학습 데이터 검증 장치(300)는 어노테이션 장치(200)로부터 어노테이션 작업 결과물을 수신할 수 있다. 여기서, 어노테이션 작업 결과물은 3D 점군 데이터 및 2D 이미지들로부터 특정된 객체의 좌표와, 이미지 또는 객체에 대한 메타데이터가 포함될 수 있다. 어노테이션 작업 결과물의 메타데이터에는 특정된 객체의 카테고리(category), 객체가 2D 이미지의 화각에 의해 잘려진 비율(truncation), 객체가 다른 객체 또는 물체에 의해 가려진 비율(occlusion), 객체의 트래킹 아이디(tracking identifier), 이미지가 촬영된 시각, 이미지가 촬영된 날의 기상 조건 등이 포함될 수 있으며, 이에 한정되는 것은 아니다. 이와 같은, 어노테이션 작업 결과물은 JSON(Java Script Object Notation) 파일 형식을 가질 수 있으나, 이에 한정되는 것도 아니다.
학습 데이터 검증 장치(300)는 수신된 어노테이션 작업 결과물을 검수할 수 있다. 이를 위하여, 학습 데이터 검증 장치(300)는 어노테이션 작업 결과물을 대상으로 스크립트(script)를 이용하여 검수를 수행할 수 있다. 여기서, 스크립트는 어노테이션 작업 결과물을 대상으로 사전에 설정된 목표 품질의 부합 여부 또는 데이터 유효성 여부를 검증하기 위한 코드이다.
그리고, 학습 데이터 검증 장치(300)는 어노테이션 장치(200)들로부터 수신된 어노테이션 작업 결과물 및 검수 결과를 학습 데이터 생성 장치(100)에 전송할 수 있다.
상술한 바와 같은 특징을 가지는, 학습 데이터 검증 장치(300)는 어노테이션 장치(200) 및 학습 데이터 생성 장치(100)와 데이터를 송수신하고, 송수신된 데이터를 기초로 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다. 예를 들어, 학습 데이터 검증 장치(300)는 데스크탑, 워크스테이션 또는 서버와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.
다음 구성으로, 학습 장치(400)는 학습 데이터 생성 장치(100)로부터 제공된 이미지를 통해 인공지능(AI)을 기계 학습하는데 사용될 수 있는 장치이다.
특히, 본 발명의 일 실시예에 따른 학습 장치(400)는 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 객체 검출을 위한 제1 학습 모델을 사전 학습하고, 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성하고, 데이터 수가 사전 설정된 값보다 적은 제2 데이터 셋을 기초로 제3 학습 모델을 학습할 수 있다.
또한, 본 발명의 다른 실시예에 따른 학습 장치(400)는 제1 객체 검출 모델에 적어도 하나의 이미지를 입력 받고, 제1 객체 검출 모델을 통해 적어도 하나의 이미지에 포함된 객체를 검출하고, 검출된 객체 및 클래스 간의 유사도에 기반한 제1 클래스 스코어를 산출하고, 검출된 객체를 제2 객체 검출 모델에 입력하고, 제2 객체 검출 모델을 통해 검출된 객체 및 클래스 간의 유사도에 기반한 제2 클래스 스코어를 산출하고, 제1 클래스 스코어 및 제2 클래스 스코어를 기초로 검출된 객체의 클래스를 추정할 수 있다.
한편, 본 발명의 일 실시예에 따른 학습 장치(400)의 구체적인 구성에 대해서는 이하, 도 3 및 도 4를 참조하여 상세히 설명하도록 한다.
이와 같은, 학습 장치(400)는 학습 데이터 생성 장치(100)와 데이터를 송수신하고, 송수신된 데이터를 이용하여 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다. 예를 들어, 학습 장치(400)는 데스크탑, 워크스테이션 또는 서버와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.
도 3은 본 발명의 일 실시예에 따른 학습 장치의 논리적 구성도이다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 학습 장치(400)는 통신부(405), 입출력부(410), 학습 모델 생성부(415), 스코어 재조정부(420) 및 저장부(425)를 포함하여 구성될 수 있다.
이와 같은, 학습 장치(400)의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.
각각의 구성 요소에 대하여 설명하면, 통신부(205)는 학습 데이터 생성 장치(100)와 데이터를 송수신할 수 있다.
구체적으로, 통신부(205)는 학습 데이터 생성 장치(100)로부터 데이터 셋을 입력 받을 수 있다.
학습 데이터 생성 장치(100)로부터 수신한 데이터 셋은 적어도 하나의 객체, 적어도 하나의 객체의 클래스(class) 정보 및 적어도 하나의 객체에 어노테이션(annotation) 수행된 바운딩 박스(bounding box) 정보를 포함할 수 있다.
다음 구성으로, 입출력부(210)는 사용자 인터페이스(UI)를 통해 사용자로부터 신호를 입력 받거나, 연산 결과를 외부로 출력할 수 있다.
구체적으로, 입출력부(210)는 학습 모델을 학습하기 위한 설정 신호, 객체 검출 모델의 클래스 스코어를 재조정하기 위한 설정 신호 등을 입력 받을 수 있다.
다음 구성으로, 학습 모델 생성부(415)는 높은 정확도를 가지는 학습 모델을 생성할 수 있다.
이를 위해, 학습 모델 생성부(415)는 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 객체 검출을 위한 제1 학습 모델을 사전 학습할 수 있다.
예를 들어, 랜덤 한 이미지를 포함하는 제1 데이터 셋은 공개된 공공의 데이터 셋인 "Imagenet1k" 데이터 셋을 사용할 수 있다.
구체적으로, 학습 데이터 생성부(415)는 균일한 제약 조건으로 사전에 설정된 비율에 따라 제1 데이터 셋에 포함된 각 이미지를 샘플링 할 수 있다.
예를 들어, 학습 모델 생성부(415)는 제1 데이터 셋에 포함된 각 이미지의 모든 2x2 그리드에서 패치(patch)를 샘플링 할 수 있다. 이에 따라, 샘플링 된 제1 데이터 셋은 모든 로컬 윈도우(local window)에서 균일한 양의 패치가 샘플링되기 때문에 피라미드 기반의 비전 트랜스포머(vision transformer)에 적용될 수 있다. 또한, 샘플링 된 이미지는 크기가 1/4로 줄어 연산량을 줄일 수 있다.
여기서, 피라미드 기반의 비전 트랜스포머는 PVT(Pyramid Vision Transformer) 및 스윈 트랜스포머(Swin Transformer) 중 하나가 될 수 있다.
학습 모델 생성부(415)는 샘플링 된 제1 데이터 셋에 포함된 각 이미지를 마스킹(masking) 할 수 있다. 이때, 학습 모델 생성부(415)는 피라미드 기반의 비전 트랜스포머가 PVT 인 경우, 샘플링 된 이미지의 가시적 패치 중에서 무작위로 마스킹을 수행하되, PVT 와의 호환성을 위하여 공유 마스크 토큰을 사용하여 마스킹 된 패치를 대체할 수 있다.
여기서, 공유 마스크 토큰은 수행된 마스킹의 존재를 나타내는 임베딩 벡터(embedding vector)가 될 수 있다.
학습 모델 생성부(415)는 마스킹 된 제1 데이터 셋을 기초로 피라미드 기반의 비전 트랜스포머(vision transformer)를 학습할 수 있다. 즉, 학습 모델 생성부(415)는 샘플링 및 마스킹을 수행한 제1 데이터 셋을 피라미드 기반의 비전 트랜스포머의 인코더(encoder)에 입력할 수 있다.
다음으로, 학습 모델 생성부(415)는 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성할 수 있다.
구체적으로, 학습 모델 생성부(415)는 제1 학습 모델에 포함된 인코더(encoder)를 제2 학습 모델의 백본 층을 대체하여 삽입할 수 있다.
여기서, 제2 학습 모델은 "Faster R-CNN"이 될 수 있다. "Faster R-CNN"은 백본(backbone) 층, RPN(Region Proposal Network) 층, 관심영역 풀링(ROI Pooling) 층, 관심영역 추출(ROI Feat.Extractor) 층 및 출력층으로 구성될 수 있다.
다음으로, 학습 모델 생성부(415)는 데이터 수가 사전 설정된 값보다 적은 제2 데이터 셋을 기초로 제3 학습 모델을 학습할 수 있다.
여기서, 제2 데이터 셋은 클래스 별 객체 수가 사전 설정된 값보다 많은 베이스 클래스(base class) 이미지 그룹 및 클래스 별 객체 수가 사전 설정된 값보다 적은 노벨 클래스(novel class) 이미지 그룹을 포함할 수 있다. 이때, 노벨 클래스 이미지 그룹 및 베이스 클래스 이미지 그룹은 서로 중복되지 않을 수 있다.
구체적으로, 학습 모델 생성부(415)는 제2 데이터 셋에 포함된 베이스 클래스 이미지 그룹을 기초로 제3 학습 모델을 학습할 수 있다.
즉, 학습 모델 생성부(415)는 베이스 클래스 이미지 그룹을 제3 학습 모델에 입력하여, 제3 학습 모델의 백본 층에 구비된 사전 학습된 제1 학습 모델의 인코더가 특징맵(feature map)을 생성하도록 할 수 있다.
또한, 학습 모델 생성부(415)는 생성된 특징맵을 RPN 층에 입력할 수 있다.
학습 모델 생성부(415)는 RPN 층에서 지정된 위치에 사전에 정의한 서로 다른 크기(scale)와 가로세로비(aspect ratio)를 가지는 바운딩 박스(bounding box)인 앵커 박스(Anchor box)를 생성할 수 있다. 여기서, 스케일은 앵커 박스의 폭 및 높이의 길이를 의미할 수 있다. 가로세로비는 폭 및 높이의 길이의 비율을 의미할 수 있다.
학습 모델 생성부(415)는 앵커 박스를 생성하되, 이미지의 각 그리드 셀(grid cell)의 중심을 기준으로 앵커 박스를 생성할 수 있다. 이때, 학습 모델 생성부(415)는 이미지의 서브 샘플링 비(sub sampling ratio)를 기준으로 앵커 박스를 생성하는 기준점인 앵커를 고정할 수 있다.
또한, 학습 모델 생성부(415)는 앵커 박스에 대응한 리젠 프로포즐(region proposal)에 대하여 사전 저장된 클래스(class)에 대한 클래스 스코어를 산출할 수 있다. 학습 모델 생성부(415)는 산출된 클래스 스코어를 통해 이미지 내에 객체가 포함되어 있는지 여부를 분류할 수 있다.
이때, 학습 모델 생성부(415)는 클래스 스코어에 따라 사전 설정된 값보다 높은 스코어를 갖는 리젠 프로포즐(region proposal)만을 추출하여 관심영역 풀링 층으로 전달할 수 있다.
또한, 학습 모델 생성부(415)는 사전 학습된 제1 학습 모델의 인코더에서 출력된 특징맵과 RPN 층으로부터 전달된 리젠 프로포즐(region proposal)을 통해 관심영역 풀링을 수행하여 고정된 크기의 특징맵을 얻을 수 있다.
구체적으로, 학습 모델 생성부(415)는 특징맵에서 리젠 프로포즐(region proposal)에 해당하는 관심영역(Region of interest)을 지정한 크기의 그리드(grid)로 나눈 후 맥스 풀링(max pooling)을 수행할 수 있다.
이후, 학습 모델 생성부(415)는 고정된 크기의 특징맵을 FC 레이어(fully connected layer)에 입력하여 사전 설정된 크기의 특징 벡터(feature vector)를 생성할 수 있다.
학습 모델 생성부(415)는 생성된 특징 벡터를 분류기(classifier) 및 회기자(regressor)에 입력하고, 출력된 결과를 이용하여 멀티 태스크 로스(multi task loss) 함수를 통해 제3 학습 모델을 학습할 수 있다.
다음으로, 학습 모델 생성부(415)는 제2 데이터 셋을 기초로 제4 학습 모델을 미세 조정(fine tuning)할 수 있다.
구체적으로, 학습 모델 생성부(415)는 제4 학습 모델의 출력 층을 초기화하여, 출력 층을 코사인 유사도(cosine similarity) 층으로 대체하고, 코사인 유사도 층의 학습율을 사전 설정된 값으로 미세 조정할 수 있다.
여기서, 코사인 유사도 층은 내적 공간의 두 벡터간 각도의 코사인 값을 이용하여 측정된 벡터 간의 유사도를 측정하는 층이다.
다음 구성으로, 스코어 재조정부(420)는 서로 다른 학습 모델로부터 산출된 클래스 스코어를 기초로 클래스 스코어를 재조정함으로써, 높은 정확도로 검출된 객체의 클래스를 추정할 수 있다.
이를 위해, 스코어 재조정부(420)는 제1 객체 검출 모델에 적어도 하나의 이미지를 입력 받을 수 있다. 여기서, 제1 객체 검출 모델은 상술한 학습 모델 생성부(415)에 의해 생성된 제4 학습 모델이 될 수 있다.
다음으로, 스코어 재조정부(420)는 제1 객체 검출 모델을 통해 적어도 하나의 이미지에 포함된 객체를 검출하고, 검출된 객체 및 클래스 간의 유사도에 기반한 제1 클래스 스코어를 산출할 수 있다.
다음으로, 스코어 재조정부(420)는 검출된 객체를 객체 검출을 위한 제2 객체 검출 모델에 입력할 수 있다.
한편, 스코어 재조정부(420)는 객체를 제2 객체 검출 모델에 입력하기 이전에, 제2 객체 검출 모델을 사전 학습할 수 있다.
구체적으로, 스코어 재조정부(420)는 사전 저장된 이미지 및 텍스트 데이터 쌍에서 이미지 임베딩(image embedding) 및 텍스트 임베딩(text embedding)을 추출하여, 복수의 제1 이미지 임베딩 및 텍스트 임베딩 쌍을 구성할 수 있다.
여기서, 사전 저장된 이미지 및 텍스트 데이터 쌍은 웹 크롤링(web crawling)을 통해 추출된 이미지 및 이미지와 연관된 자연어 텍스트가 될 수 있다.
스코어 재조정부(420)는 트랜스포머(transformer)의 인코더로 구성된 비전 인코더(vision encoder) 및 텍스트 인코더(text encoder)를 통해 이미지 임베딩 및 상기 텍스트 임베딩을 추출할 수 있다.
이후, 스코어 재조정부(420)는 복수의 제1 이미지 임베딩 및 텍스트 임베딩 쌍에서 긍정적 쌍(positive pair)의 코사인 유사도(cosine similarity)는 최대화하고, 부정적 쌍(negative pair)의 코사인 유사도는 최소화하도록 비전 인코더 및 텍스트 인코더를 사전 학습할 수 있다. 스코어 재조정부(420)는 CE 손실 함수(cross entropy loss function)를 통해 비전 인코더 및 텍스트 인코더를 사전 학습할 수 있다.
다음으로, 스코어 재조정부(420)는 제2 객체 검출 모델을 통해 제1 객체 검출 모델에 의해 검출된 객체 및 클래스 간의 유사도에 기반한 제2 클래스 스코어를 산출할 수 있다.
구체적으로, 스코어 재조정부(420)는 제1 객체 검출 모델에 의해 검출된 객체 및 사전 저장된 텍스트 데이터 셋에서 이미지 임베딩 및 텍스트 임베딩을 추출하여, 복수의 제2 이미지 임베딩 및 텍스트 임베딩 쌍을 구성할 수 있다.
여기서, 스코어 재조정부(420)는 트랜스포머의 인코더로 구성된 비전 인코더 및 텍스트 인코더를 통해 이미지 임베딩 및 텍스트 임베딩을 추출할 수 있다.
스코어 재조정부(420)는 복수의 제2 이미지 임베딩 및 텍스트 임베딩 쌍의 유사도에 기반한 제2 클래스 스코어를 산출할 수 있다.
구체적으로, 스코어 재조정부(420)는 하기의 수학식 1을 통해 상기 제2 클래스 스코어를 산출할 수 있다.
[수학식 1]
(여기서, I 및 T는 각각 이미지 임베딩 및 텍스트 임베딩이고, i 및 k는 각각 이미지 임베딩 및 텍스트 임베딩의 인덱스(index)이고, 는 온도의 역수를 의미하는 하이퍼 파라미터를 의미한다.)
다음으로, 스코어 재조정부(420)는 제1 클래스 스코어 및 제2 클래스 스코어를 기초로 검출된 객체의 클래스를 추정할 수 있다.
구체적으로, 스코어 재조정부(420)는 제1 클래스 스코어 및 제2 클래스 스코어를 기초로 클래스 스코어를 재조정할 수 있다.
즉, 스코어 재조정부(420)는 하기의 수학식 2를 통해 클래스 스코어를 재조정할 수 있다.
[수학식 2]
(여기서, α는 상기 제2 객체 검출 모델에 의해 산출된 유사도의 영향력을 조절하는 하이퍼 파라미터이고, Sik는 제2 클래스 스코어, sik는 제1 클래스 스코어를 의미한다.)
그리고, 스코어 재조정부(420)는 재조정된 클래스 스코어를 기초로 클래스를 추정할 수 있다. 즉, 스코어 재조정부(420)는 재조정된 클래스 스코어를 기초로 클래스 스코어가 가장 높은 클래스를 검출된 객체의 클래스로 추정할 수 있다.
이하, 상술한 바와 같은 학습 장치(400)의 논리적 구성요소를 구현하기 위한 하드웨어에 대하여 보다 구체적으로 설명한다.
도 4는 본 발명의 일 실시예에 따른 학습 장치의 하드웨어 구성도이다.
도 4에 도시된 바와 같이, 학습 장치(400)는 프로세서(Processor, 450), 메모리(Memory, 455), 송수신기(Transceiver, 460), 입출력장치(Input/output device, 465), 데이터 버스(Bus, 470) 및 스토리지(Storage, 475)를 포함하여 구성될 수 있다.
프로세서(450)는 메모리(455)에 상주된 본 발명의 실시예들에 따른 방법이 구현된 소프트웨어(480a)에 따른 명령어를 기초로, 학습 장치(400)의 동작 및 기능을 구현할 수 있다. 메모리(455)에는 본 발명의 실시예들에 따른 방법이 구현된 소프트웨어(480a)가 상주(loading)될 수 있다. 송수신기(460)는 학습 데이터 생성 장치(100), 어노테이션 장치(200) 및 학습 데이터 검증 장치(300)와 데이터를 송수신할 수 있다. 입출력장치(465)는 학습 장치(400)의 동작에 필요한 데이터를 입력 받거나, 학습 결과물을 출력할 수 있다. 데이터 버스(470)는 프로세서(450), 메모리(455), 송수신기(460), 입출력장치(465) 및 스토리지(475)와 연결되어, 각각의 구성 요소 사이가 서로 데이터를 전달하기 위한 이동 통로의 역할을 수행할 수 있다.
스토리지(475)는 본 발명의 실시예들에 따른 방법이 구현된 소프트웨어(480a)의 실행을 위해 필요한 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API), 라이브러리(library) 파일, 리소스(resource) 파일 등을 저장할 수 있다. 스토리지(475)는 본 발명의 실시예들에 따른 방법이 구현된 소프트웨어(480b)를 저장할 수 있다. 또한, 스토리지(475)는 본 발명의 실시예들에 따른 방법의 수행에 필요한 정보들을 저장할 수 있다.
본 발명의 일 실시예에 따르면, 메모리(455)에 상주되거나 또는 스토리지(475)에 저장된 학습 방법을 구현하기 위한 소프트웨어(480a, 480b)는 프로세서(450)가 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 제1 학습 모델을 사전 학습하는 단계, 프로세서(450)가, 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성하는 단계 및 프로세서(450)가, 데이터 수가 사전 설정된 값보다 작은 제2 데이터 셋을 기초로 제3 학습 모델을 학습하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.
본 발명의 다른 실시예에 따르면, 메모리(455)에 상주되거나 또는 스토리지(475)에 저장된 객체 검출 방법을 구현하기 위한 소프트웨어(480a, 480b)는 프로세서(450)가 제1 객체 검출 모델에 적어도 하나의 이미지를 입력 받는 단계, 프로세서(450)가, 제1 객체 검출 모델을 통해 상기 적어도 하나의 이미지에 포함된 객체를 검출하고, 검출된 객체 및 클래스 간의 유사도에 기반한 제1 클래스 스코어를 산출하는 단계, 프로세서(450)가, 검출된 객체를 제2 객체 검출 모델에 입력하는 단계, 프로세서(450)가, 제2 객체 검출 모델을 통해 검출된 객체 및 클래스 간의 유사도에 기반한 제2 클래스 스코어를 산출하는 단계, 프로세서(450)가, 제1 클래스 스코어 및 제2 클래스 스코어를 기초로 검출된 객체의 클래스를 추정하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.
보다 구체적으로, 프로세서(450)는 ASIC(Application-Specific Integrated Circuit), 다른 칩셋(chipset), 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리(455)는 ROM(Read-Only Memory), RAM(Random Access Memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다. 송수신기(460)는 유무선 신호를 처리하기 위한 베이스밴드 회로를 포함할 수 있다. 입출력장치(465)는 키보드(keyboard), 마우스(mouse), 및/또는 조이스틱(joystick) 등과 같은 입력 장치 및 액정표시장치(Liquid Crystal Display, LCD), 유기 발광 다이오드(Organic LED, OLED) 및/또는 능동형 유기 발광 다이오드(Active Matrix OLED, AMOLED) 등과 같은 영상 출력 장치 프린터(printer), 플로터(plotter) 등과 같은 인쇄 장치를 포함할 수 있다.
본 명세서에 포함된 실시 예가 소프트웨어로 구현될 경우, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리(455)에 상주되고, 프로세서(450)에 의해 실행될 수 있다. 메모리(455)는 프로세서(450)의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서(450)와 연결될 수 있다.
도 4에 도시된 각 구성요소는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한, 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이하, 본 발명의 일 실시예에 따른 학습 방법에 대하여 상세히 설명하도록 한다.
도 5는 본 발명의 일 실시예에 따른 학습 방법을 설명하기 위한 순서도이고, 도 6은 본 발명의 일 실시예에 따른 S110 단계를 구체적으로 나타낸 순서도이고, 도 7은 본 발명의 일 실시예에 따른 S130 단계를 구체적으로 나타낸 순서도이다.
도 5 내지 도 7을 참조하면, 먼저 S110 단계에서 학습 장치는 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 객체 검출을 위한 제1 학습 모델을 사전 학습할 수 있다.
구체적으로, S111 단계에서 학습 장치는 균일한 제약 조건으로 사전에 설정된 비율에 따라 제1 데이터 셋에 포함된 각 이미지를 샘플링 할 수 있다.
예를 들어, 학습 장치는 제1 데이터 셋에 포함된 각 이미지의 모든 2x2 그리드에서 패치(patch)를 샘플링 할 수 있다. 이에 따라, 샘플링 된 제1 데이터 셋은 모든 로컬 윈도우(local window)에서 균일한 양의 패치가 샘플링되기 때문에 피라미드 기반의 비전 트랜스포머(vision transformer)에 적용될 수 있다. 또한, 샘플링 된 이미지는 크기가 1/4로 줄어 연산량을 줄일 수 있다.
여기서, 피라미드 기반의 비전 트랜스포머는 PVT(Pyramid Vision Transformer) 및 스윈 트랜스포머(Swin Transformer) 중 하나가 될 수 있다.
S112 단계에서 학습 장치는 샘플링 된 제1 데이터 셋에 포함된 각 이미지를 마스킹(masking) 할 수 있다. 이때, 학습 장치는 피라미드 기반의 비전 트랜스포머가 PVT 인 경우, 샘플링 된 이미지의 가시적 패치 중에서 무작위로 마스킹을 수행하되, PVT 와의 호환성을 위하여 공유 마스크 토큰을 사용하여 마스킹 된 패치를 대체할 수 있다.
여기서, 공유 마스크 토큰은 수행된 마스킹의 존재를 나타내는 임베딩 벡터(embedding vector)가 될 수 있다.
S113 단계에서 학습 장치는 마스킹 된 제1 데이터 셋을 기초로 피라미드 기반의 비전 트랜스포머(vision transformer)를 학습할 수 있다.
즉, 학습 장치는 샘플링 및 마스킹을 수행한 제1 데이터 셋을 피라미드 기반의 비전 트랜스포머의 인코더(encoder)에 입력할 수 있다.
다음으로, S120 단계에서 학습 장치는 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성할 수 있다.
여기서, 제2 학습 모델은 "Faster R-CNN"이 될 수 있다. "Faster R-CNN"은 백본(backbone) 층, RPN(Region Proposal Network) 층, 관심영역 풀링(ROI Pooling) 층, 관심영역 추출(ROI Feat.Extractor) 층 및 출력층으로 구성될 수 있다.
구체적으로, 학습 장치는 제1 학습 모델에 포함된 인코더(encoder)를 제2 학습 모델의 백본 층을 대체하여 삽입할 수 있다.
다음으로, S130 단계에서 학습 장치는 데이터 수가 사전 설정된 값보다 적은 제2 데이터 셋을 기초로 제3 학습 모델을 학습할 수 있다.
구체적으로, S131 단계에서 학습 장치는 제2 데이터 셋에 포함된 베이스 클래스 이미지 그룹을 기초로 제3 학습 모델을 학습하여 제4 학습 모델을 생성할 수 있다.
즉, 학습 장치는 베이스 클래스 이미지 그룹을 제3 학습 모델에 입력하여, 제3 학습 모델의 백본 층에 구비된 사전 학습된 제1 학습 모델의 인코더가 특징맵(feature map)을 생성하도록 할 수 있다.
또한, 학습 장치는 생성된 특징맵을 RPN 층에 입력할 수 있다.
학습 장치는 RPN 층에서 지정된 위치에 사전에 정의한 서로 다른 크기(scale)와 가로세로비(aspect ratio)를 가지는 바운딩 박스(bounding box)인 앵커 박스(Anchor box)를 생성할 수 있다. 여기서, 스케일은 앵커 박스의 폭 및 높이의 길이를 의미할 수 있다. 가로세로비는 폭 및 높이의 길이의 비율을 의미할 수 있다.
학습 장치는 앵커 박스를 생성하되, 이미지의 각 그리드 셀(grid cell)의 중심을 기준으로 앵커 박스를 생성할 수 있다. 이때, 학습 장치는 이미지의 서브 샘플링 비(sub sampling ratio)를 기준으로 앵커 박스를 생성하는 기준점인 앵커를 고정할 수 있다.
또한, 학습 장치는 앵커 박스에 대응한 리젠 프로포즐(region proposal)에 대하여 사전 저장된 클래스(class)에 대한 스코어를 산출할 수 있다. 학습 장치는 산출된 스코어를 통해 이미지 내에 객체가 포함되어 있는지 여부를 분류할 수 있다.
이때, 학습 장치는 클래스 스코어에 따라 사전 설정된 값보다 높은 스코어를 갖는 리젠 프로포즐(region proposal)만을 추출하여 관심영역 풀링 층으로 전달할 수 있다.
또한, 학습 장치는 사전 학습된 제1 학습 모델의 인코더에서 출력된 특징맵과 RPN 층으로부터 전달된 리젠 프로포즐(region proposal)을 통해 관심영역 풀링을 수행하여 고정된 크기의 특징맵을 얻을 수 있다.
구체적으로, 학습 장치는 특징맵에서 리젠 프로포즐(region proposal)에 해당하는 관심영역(Region of interest)을 지정한 크기의 그리드(grid)로 나눈 후 맥스 풀링(max pooling)을 수행할 수 있다.
이후, 학습 장치는 고정된 크기의 특징맵을 FC 레이어(fully connected layer)에 입력하여 사전 설정된 크기의 특징 벡터(feature vector)를 생성할 수 있다.
학습 장치는 생성된 특징 벡터를 분류기(classifier) 및 회기자(regressor)에 입력하고, 출력된 결과를 이용하여 멀티 태스크 로스(multi task loss) 함수를 통해 제3 학습 모델을 학습할 수 있다.
다음으로, 학습 장치는 제2 데이터 셋을 기초로 제4 학습 모델을 미세 조정(fine tuning)할 수 있다. 이때, 학습 장치는 제4 학습 모델의 출력 층의 가중치를 초기하여 미세 조정하되, 출력 층을 제외한 나머지 구성요소의 가중치는 고정시킬 수 있다.
구체적으로, 학습 장치는 제4 학습 모델의 출력 층을 초기화하여, 출력 층을 코사인 유사도(cosine similarity) 층으로 대체하고, 코사인 유사도 층의 학습률을 사전 설정된 값으로 미세 조정할 수 있다.
여기서, 코사인 유사도 층은 내적 공간의 두 벡터간 각도의 코사인 값을 이용하여 측정된 벡터 간의 유사도를 측정하는 층이다.
도 8은 본 발명의 일 실시예에 따른 객체 검출 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, 먼저 S210 단계에서 학습 장치는 제1 객체 검출 모델에 적어도 하나의 이미지를 입력 받을 수 있다.
다음으로, S220 단계에서 학습 장치는 제1 객체 검출 모델을 통해 적어도 하나의 이미지에 포함된 객체를 검출하고, 검출된 객체 및 클래스 간의 유사도에 기반한 제1 클래스 스코어를 산출할 수 있다.
다음으로, S230 단계에서 학습 장치는 검출된 객체를 객체 검출을 위한 제2 객체 검출 모델에 입력할 수 있다.
한편, 학습 장치는 객체를 제2 객체 검출 모델에 입력하기 이전에, 제2 객체 검출 모델을 사전 학습할 수 있다.
구체적으로, 학습 장치는 사전 저장된 이미지 및 텍스트 데이터 쌍에서 이미지 임베딩(image embedding) 및 텍스트 임베딩(text embedding)을 추출하여, 복수의 제1 이미지 임베딩 및 텍스트 임베딩 쌍을 구성할 수 있다.
여기서, 사전 저장된 이미지 및 텍스트 데이터 쌍은 웹 크롤링(web crawling)을 통해 추출된 이미지 및 이미지와 연관된 자연어 텍스트가 될 수 있다.
학습 장치는 트랜스포머(transformer)의 인코더로 구성된 비전 인코더(vision encoder) 및 텍스트 인코더(text encoder)를 통해 이미지 임베딩 및 상기 텍스트 임베딩을 추출할 수 있다.
이후, 학습 장치는 복수의 제1 이미지 임베딩 및 텍스트 임베딩 쌍에서 긍정적 쌍(positive pair)의 코사인 유사도(cosine similarity)는 최대화하고, 부정적 쌍(negative pair)의 코사인 유사도는 최소화하도록 비전 인코더 및 텍스트 인코더를 사전 학습할 수 있다. 학습 장치는 CE 손실 함수(cross entropy loss function)를 통해 비전 인코더 및 텍스트 인코더를 사전 학습할 수 있다.
다음으로, S240 단계에서 학습 장치는 제2 객체 검출 모델을 통해 제1 객체 검출 모델에 의해 검출된 객체 및 클래스 간의 유사도에 기반한 제2 클래스 스코어를 산출할 수 있다.
구체적으로, 학습 장치는 제1 객체 검출 모델에 의해 검출된 객체 및 사전 저장된 텍스트 데이터 셋에서 이미지 임베딩 및 텍스트 임베딩을 추출하여, 복수의 제2 이미지 임베딩 및 텍스트 임베딩 쌍을 구성할 수 있다.
여기서, 학습 장치는 트랜스포머의 인코더로 구성된 비전 인코더 및 텍스트 인코더를 통해 이미지 임베딩 및 텍스트 임베딩을 추출할 수 있다.
학습 장치는 복수의 제2 이미지 임베딩 및 텍스트 임베딩 쌍의 유사도에 기반한 제2 클래스 스코어를 산출할 수 있다.
구체적으로, 학습 장치는 하기의 수학식 1을 통해 상기 제2 클래스 스코어를 산출할 수 있다.
[수학식 1]
(여기서, I 및 T는 각각 이미지 임베딩 및 텍스트 임베딩이고, i 및 k는 각각 이미지 임베딩 및 텍스트 임베딩의 인덱스(index)이고, 는 온도의 역수를 의미하는 하이퍼 파라미터를 의미한다.)
다음으로, S250 단계에서 학습 장치는 제1 클래스 스코어 및 제2 클래스 스코어를 기초로 검출된 객체의 클래스를 추정할 수 있다.
구체적으로, 학습 장치는 제1 클래스 스코어 및 제2 클래스 스코어를 기초로 클래스 스코어를 재조정할 수 있다.
즉, 학습 장치는 하기의 수학식 2를 통해 클래스 스코어를 재조정할 수 있다.
[수학식 2]
(여기서, α는 상기 제2 객체 검출 모델에 의해 산출된 유사도의 영향력을 조절하는 하이퍼 파라미터이고, Sik는 제2 클래스 스코어, sik는 제1 클래스 스코어를 의미한다.)
그리고, 학습 장치는 재조정된 클래스 스코어를 기초로 클래스를 추정할 수 있다. 즉, 학습 장치는 재조정된 클래스 스코어를 기초로 클래스 스코어가 가장 높은 클래스를 검출된 객체의 클래스로 추정할 수 있다.
도 9는 본 발명의 일 실시예에 따른 학습 방법을 설명하기 위한 예시도이다.
도 9에 도시된 바와 같이, 학습 장치는 사전 학습된 제1 학습 모델(1st learning model)을 객체 검출을 위한 제2 학습 모델(2nd learning model)과 결합하여 제3 학습 모델을 생성할 수 있다.
여기서, 제2 학습 모델은 "Faster R-CNN"이 될 수 있다. "Faster R-CNN"은 백본(backbone) 층, RPN(Region Proposal Network) 층, 관심영역 풀링(ROI Pooling) 층, 관심영역 추출(ROI Feat.Extractor) 층 및 출력층으로 구성될 수 있다.
한편, 일반적인 "Faster R-CNN"의 백본 층은 FPN(Feature Pyramid Network)로 구성될 수 있다.
구체적으로, 학습 장치는 제1 학습 모델에 포함된 인코더(encoder)를 제2 학습 모델의 백본 층을 대체하여 삽입할 수 있다.
다음으로, 학습 장치는 데이터 수가 사전 설정된 값보다 적은 제2 데이터 셋을 기초로 제3 학습 모델을 학습할 수 있다.
구체적으로, 학습 장치는 제2 데이터 셋에 포함된 베이스 클래스 이미지 그룹을 기초로 제3 학습 모델을 학습하여 제4 학습 모델을 생성할 수 있다.
즉, 학습 장치는 베이스 클래스 이미지 그룹을 제3 학습 모델에 입력하여, 제3 학습 모델의 백본 층에 구비된 사전 학습된 제1 학습 모델의 인코더가 특징맵(feature map)을 생성하도록 할 수 있다.
또한, 학습 장치는 생성된 특징맵을 RPN 층에 입력할 수 있다.
학습 장치는 RPN 층에서 지정된 위치에 사전에 정의한 서로 다른 크기(scale)와 가로세로비(aspect ratio)를 가지는 바운딩 박스(bounding box)인 앵커 박스(Anchor box)를 생성할 수 있다. 여기서, 스케일은 앵커 박스의 폭 및 높이의 길이를 의미할 수 있다. 가로세로비는 폭 및 높이의 길이의 비율을 의미할 수 있다.
학습 장치는 앵커 박스를 생성하되, 이미지의 각 그리드 셀(grid cell)의 중심을 기준으로 앵커 박스를 생성할 수 있다. 이때, 학습 장치는 이미지의 서브 샘플링 비(sub sampling ratio)를 기준으로 앵커 박스를 생성하는 기준점인 앵커를 고정할 수 있다.
또한, 학습 장치는 앵커 박스에 대응한 리젠 프로포즐(region proposal)에 대하여 사전 저장된 클래스(class)에 대한 스코어를 산출할 수 있다. 학습 장치는 산출된 스코어를 통해 이미지 내에 객체가 포함되어 있는지 여부를 분류할 수 있다.
이때, 학습 장치는 클래스 스코어에 따라 사전 설정된 값보다 높은 스코어를 갖는 리젠 프로포즐(region proposal)만을 추출하여 관심영역 풀링 층으로 전달할 수 있다.
또한, 학습 장치는 사전 학습된 제1 학습 모델의 인코더에서 출력된 특징맵과 RPN 층으로부터 전달된 리젠 프로포즐(region proposal)을 통해 관심영역 풀링을 수행하여 고정된 크기의 특징맵을 얻을 수 있다.
구체적으로, 학습 장치는 특징맵에서 리젠 프로포즐(region proposal)에 해당하는 관심영역(Region of interest)을 지정한 크기의 그리드(grid)로 나눈 후 맥스 풀링(max pooling)을 수행할 수 있다.
이후, 학습 장치는 고정된 크기의 특징맵을 FC 레이어(fully connected layer)에 입력하여 사전 설정된 크기의 특징 벡터(feature vector)를 생성할 수 있다.
학습 장치는 생성된 특징 벡터를 분류기(classifier) 및 회기자(regressor)에 입력하고, 출력된 결과를 이용하여 멀티 태스크 로스(multi task loss) 함수를 통해 제3 학습 모델을 학습할 수 있다.
그리고, 학습 장치는 제2 데이터 셋을 기초로 제4 학습 모델을 미세 조정(fine tuning)할 수 있다. 이때, 학습 장치는 제4 학습 모델의 출력 층의 가중치를 초기하여 미세 조정하되, 출력 층을 제외한 나머지 구성요소의 가중치는 고정시킬 수 있다.
구체적으로, 학습 장치는 제4 학습 모델의 출력 층을 초기화하여, 출력 층을 코사인 유사도(cosine similarity) 층으로 대체하고, 코사인 유사도 층의 학습률을 사전 설정된 값으로 미세 조정할 수 있다.
여기서, 코사인 유사도 층은 내적 공간의 두 벡터간 각도의 코사인 값을 이용하여 측정된 벡터 간의 유사도를 측정하는 층이다.
도 10은 본 발명의 일 실시예에 따른 객체 검출 방법을 설명하기 위한 예시도이다.
도 10에 도시된 바와 같이, 학습 장치는 객체 검출을 위한 제1 객체 검출 모델(1st detection model)에 적어도 하나의 이미지(image)를 입력하여 이미지로부터 식별된 객체(object 1, object 2, object 3)를 검출할 수 있다.
다음으로, S230 단계에서 학습 장치는 검출된 객체를 객체 검출을 위한 제2 객체 검출 모델(2nd detection model)에 입력할 수 있다.
학습 장치는 제2 객체 검출 모델을 통해 제1 객체 검출 모델에 의해 검출된 객체 및 클래스 간의 유사도에 기반한 제2 클래스 스코어를 산출할 수 있다.
구체적으로, 학습 장치는 제1 객체 검출 모델에 의해 검출된 객체 및 사전 저장된 텍스트 데이터 셋에서 이미지 임베딩 및 텍스트 임베딩을 추출하여, 복수의 제2 이미지 임베딩 및 텍스트 임베딩 쌍(I,T)을 구성할 수 있다.
여기서, 학습 장치는 트랜스포머의 인코더로 구성된 비전 인코더 및 텍스트 인코더를 통해 이미지 임베딩 및 텍스트 임베딩을 추출할 수 있다.
학습 장치는 복수의 제2 이미지 임베딩 및 텍스트 임베딩 쌍의 유사도에 기반한 제2 클래스 스코어를 산출할 수 있다.
그리고, 학습 장치는 제1 클래스 스코어 및 제2 클래스 스코어를 기초로 검출된 객체의 클래스를 추정할 수 있다.
이하, 본 발명의 일 실시예에 따른 학습 장치의 객체 검출 성능에 대하여 설명하도록 한다.
한편, 후술할 성능 실험을 위한 데이터 셋은 퓨샷 객체 검출 분야에서 표준적으로 쓰이는 "PASCAL VOC 퓨샷 데이터 셋"이다. "PASCAL VOC 퓨샷 데이터 셋"은 20개의 클래스 중에서 15개의 클래스는 베이스 클래스 그룹이며, 나머지 5개의 클래스는 노벨 클래스 그룹으로 이루어져 있다.
실시예
실시예는 "Imagenet1k 데이터셋"을 상술한 방법으로 샘플링하고, 마스킹 한 후 SWIN 트랜스포머를 800 epoch 사전 학습하였다.
그리고, 사전 학습된 SWIN 트랜스포머는 FPN을 대체하여 "Faster R-CNN"의 백본으로 삽입한 후 베이스 클래스 그룹을 통해 학습을 진행하였다.
이때, 학습 조건은 16 배치 크기, AdamW(1e-4 기본학습률, 0.05 weight decay)와 WarmupMultiStepLR(2000 iteration Warm up, 3×스케줄)을 사용하여 75 epoch 학습을 진행하였다.
그리고, 학습된 학습 모델의 마지막 출력층을 코사인 유사도 레이어로 바꾸어 해당 레이어만 1e-5의 학습율로 미세 조정하였다.
실험
[표 1]
한편 표 1은 "PASCAL VOC 2007+2012 K-shot 객체 검출 학습 데이터셋"을 학습하여 "PASCAL VOC 2007 테스트셋"의 검출 성능을 여러 모델과 비교한 표이다.
표 1을 참조하면, 스플릿(split)은 특정 클래스에 대해서만 편향되는 것을 방지하기 위하여 다양한 노벨 클래스 그룹(Novel Set 1, Novel Set 2, Novel Set 3)을 적용시켰다.
실험 결과, 실시예(Ours)는 "Faster R-CNN"이나, "MetaYOLO"보다 평균적으로 높은 성능을 기록하였으며, "TFA"와 비슷한 성능을 보이는 것을 확인할 수 있었다.
[표 2]
한편, 표 2는 표 1의 노벨 클래스 그룹 1(Novel Set 1)의 검출 성능을 상세히 나타낸 표이다.
표 2를 참조하면, 단일 시드에 대한 성능은 (A)를 통해 확인할 수 있다.
즉, 작은 파라미터를 갖는 "Swin-tiny"버전은 비슷한 크기인 "ResNet50을 사용한 "TFA"보다 모든 AP(average precision)에서 압도적인 성능을 보였고, "ResNet101"을 사용한 "TFA"와 비슷한 AP를 갖는다.
또한, "Swin-tiny"버전 대비 상대적으로 큰 파라미터를 갖는 "Swin large" 버전은 "ResNet101"을 사용한 "TFA"보다 AP가 3.4%, AP50이 1.2%, AP75가 4.0%로 모든 면에서 성능이 증가하였다.
또한, (B)에 표시된 여러 시드에 대한 평균은 작은 파라미터를 갖는 "Swin-tiny"버전이 "TFA"보다 성능이 우수한 것을 확인할 수 있었다.
정리하면, 종래의 객체 검출 모델은 "Imagenet1k 데이터셋"을 지도 학습으로 사전 학습하지만, 실시예는 라벨이 없는 데이터셋으로 백본 층에 대한 사전 학습을 진행한다.
[표 3]
한편, 표 3은 실시예에 따라 사전 학습을 진행한 학습 모델과, 사전 학습을 진행하지 않은 학습 모델의 퓨샷 검출 성능을 비교한 표이다.
표 3을 참조하면, 실시예는 사전 학습을 진행하지 않은 학습 모델보다 성능이 월등히 높은 것을 확인할 수 있었고, 이에 따라 사전 학습이 학습 모델의 일반화 성능에 크게 기여함을 알 수 있었다.
또한, 실시예는 컴퓨터 비전 분야에서 표준적으로 쓰이는 FPN을 사용할 경우 AP가 더 낮아지는 결과(-11.0%)를 보였다.
이와 같이, 퓨샷 객체 검출에서는 백본망의 사전 학습 유무가 중요하므로 사전학습 되지 않은 FPN 층이 오히려 성능 저하를 일으킨다고 볼 수 있다.
결론
본 발명의 일 실시예에 따른 학습 방법은 낮은 연산양으로 높은 객체 검출 성능을 내는 MIM 기반의 사전 학습 트랜스포머를 이용한 퓨샷 객체 검출 방법을 제안한다.
앞서 실험한 바와 같이, 본 발명의 일 실시예에 따른 학습 방법은 기존의 "CNN"기반 모델보다 현저히 높은 성능을 보인다는 것과, MIM을 통한 사전 학습이 일반화 성능에 크게 기여한다는 것을 확인할 수 있었다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적해석에 의해 선정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100 : 학습 데이터 생성 장치 200 : 어노테이션 장치
300 : 학습 데이터 검증 장치 400 : 학습 장치
405 : 통신부 410 : 입출력부
415 : 학습 모델 생성부 420 : 스코어 재조정부
425 : 저장부

Claims (10)

  1. 학습 장치가, 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 객체 검출을 위한 제1 학습 모델을 사전 학습하는 단계;
    상기 학습 장치가, 상기 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성하는 단계; 및
    상기 학습 장치가, 데이터 수가 사전 설정된 값보다 적은 제2 데이터 셋을 기초로 상기 제3 학습 모델을 학습하는 단계; 를 포함하는 것을 특징으로 하고,
    상기 제1 데이터 셋 및 상기 제2 데이터 셋은
    적어도 하나의 객체, 상기 적어도 하나의 객체의 클래스(class) 정보 및 상기 적어도 하나의 객체에 어노테이션(annotation) 수행된 바운딩 박스(bounding box) 정보를 포함하는 것을 특징으로 하며,
    상기 제2 데이터 셋은
    클래스 별 객체 수가 사전 설정된 값보다 많은 베이스 클래스(base class) 이미지 그룹 및 클래스 별 객체 수가 사전 설정된 값보다 적은 노벨 클래스(novel class) 이미지 그룹을 포함하고,
    상기 노벨 클래스 이미지 그룹 및 상기 베이스 클래스 이미지 그룹은 서로 중복되지 않는 것을 특징으로 하며,
    상기 사전 학습하는 단계는
    균일한 제약 조건으로 사전에 설정된 비율에 따라 상기 제1 데이터 셋에 포함된 각 이미지를 샘플링 하는 단계;
    상기 샘플링 된 제1 데이터 셋에 포함된 각 이미지를 마스킹(masking) 하는 단계; 및
    상기 마스킹 된 제1 데이터 셋을 기초로 피라미드 기반의 비전 트랜스포머(vision transformer)를 학습하는 단계; 를 포함하는 것을 특징으로 하고,
    상기 제3 학습 모델을 생성하는 단계에서
    상기 제2 학습 모델은 Faster R-CNN 인 것을 특징으로 하며,
    상기 제3 학습 모델을 생성하는 단계는
    상기 제1 학습 모델에 포함된 인코더(encoder)를 상기 제2 학습 모델의 백본(backbone) 층으로 삽입하는 것을 특징으로 하고,
    상기 제3 학습 모델을 학습시키는 단계는
    상기 베이스 클래스 이미지 그룹을 기초로 상기 제3 학습 모델을 학습하여 제4 학습 모델을 생성하는 단계; 및
    상기 제2 데이터 셋을 기초로 상기 제4 학습 모델을 미세 조정(fine tuning)하는 단계; 를 포함하는 것을 특징으로 하며,
    상기 미세 조정하는 단계는
    상기 제4 학습 모델의 출력 층의 가중치를 초기화하여 미세 조정하되, 상기 출력 층을 제외한 나머지 구성요소의 가중치는 고정하는 것을 특징으로 하고,
    상기 미세 조정하는 단계는
    상기 제4 학습 모델의 출력 층을 초기화 하되, 상기 출력 층을 코사인 유사도(cosine similarity) 층으로 대체하고, 상기 코사인 유사도 층의 학습율을 사전 설정된 값으로 미세 조정하는 것을 특징으로 하는, 학습 방법.
  2. 제1 항에 있어서, 상기 비전 트랜스포머는
    PVT(Pyramid Vision Transformer) 및 스윈 트랜스포머(Swin Transformer) 중 하나인 것을 특징으로 하는, 학습 방법.
  3. 제2 항에 있어서, 상기 마스킹 하는 단계는
    상기 비전 트랜스포머가 PVT 인 경우, 상기 샘플링 된 이미지의 가시적 패치 중 무작위로 마스킹을 수행하되, 공유 마스크 토큰을 사용하여 상기 마스킹 된 패치를 대체하는 것을 특징으로 하는, 학습 방법.
  4. 제3 항에 있어서, 상기 공유 마스크 토큰은
    상기 수행된 마스킹의 존재를 나타내는 임베딩 벡터(embedding vector) 인 것을 특징으로 하는, 학습 방법.
  5. 메모리(memory);
    송수신기(transceiver); 및
    상기 메모리에 상주된 명령어를 처리하는 프로세서(processor)를 포함하여 구성된 컴퓨팅 장치와 결합되어,
    상기 프로세서가, 적어도 하나의 객체를 포함하는 랜덤(random) 한 이미지를 포함하는 제1 데이터 셋을 기초로 제1 학습 모델을 사전 학습하는 단계;
    상기 프로세서가, 상기 사전 학습된 제1 학습 모델을 객체 검출을 위한 제2 학습 모델과 결합하여 제3 학습 모델을 생성하는 단계; 및
    상기 프로세서가, 데이터 수가 사전 설정된 값보다 작은 제2 데이터 셋을 기초로 상기 제3 학습 모델을 학습하는 단계; 를 포함하여 실행시키되,
    상기 제1 데이터 셋 및 상기 제2 데이터 셋은
    적어도 하나의 객체, 상기 적어도 하나의 객체의 클래스(class) 정보 및 상기 적어도 하나의 객체에 어노테이션(annotation) 수행된 바운딩 박스(bounding box) 정보를 포함하는 것을 특징으로 하며,
    상기 제2 데이터 셋은
    클래스 별 객체 수가 사전 설정된 값보다 많은 베이스 클래스(base class) 이미지 그룹 및 클래스 별 객체 수가 사전 설정된 값보다 적은 노벨 클래스(novel class) 이미지 그룹을 포함하고,
    상기 노벨 클래스 이미지 그룹 및 상기 베이스 클래스 이미지 그룹은 서로 중복되지 않는 것을 특징으로 하며,
    상기 사전 학습하는 단계는
    균일한 제약 조건으로 사전에 설정된 비율에 따라 상기 제1 데이터 셋에 포함된 각 이미지를 샘플링 하는 단계;
    상기 샘플링 된 제1 데이터 셋에 포함된 각 이미지를 마스킹(masking) 하는 단계; 및
    상기 마스킹 된 제1 데이터 셋을 기초로 피라미드 기반의 비전 트랜스포머(vision transformer)를 학습하는 단계; 를 포함하는 것을 특징으로 하고,
    상기 제3 학습 모델을 생성하는 단계에서
    상기 제2 학습 모델은 Faster R-CNN 인 것을 특징으로 하며,
    상기 제3 학습 모델을 생성하는 단계는
    상기 제1 학습 모델에 포함된 인코더(encoder)를 상기 제2 학습 모델의 백본(backbone) 층으로 삽입하는 것을 특징으로 하고,
    상기 제3 학습 모델을 학습시키는 단계는
    상기 베이스 클래스 이미지 그룹을 기초로 상기 제3 학습 모델을 학습하여 제4 학습 모델을 생성하는 단계; 및
    상기 제2 데이터 셋을 기초로 상기 제4 학습 모델을 미세 조정(fine tuning)하는 단계; 를 포함하는 것을 특징으로 하며,
    상기 미세 조정하는 단계는
    상기 제4 학습 모델의 출력 층의 가중치를 초기화하여 미세 조정하되, 상기 출력 층을 제외한 나머지 구성요소의 가중치는 고정하는 것을 특징으로 하고,
    상기 미세 조정하는 단계는
    상기 제4 학습 모델의 출력 층을 초기화 하되, 상기 출력 층을 코사인 유사도(cosine similarity) 층으로 대체하고, 상기 코사인 유사도 층의 학습율을 사전 설정된 값으로 미세 조정하는 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
  6. 제5 항에 있어서, 상기 비전 트랜스포머는
    PVT(Pyramid Vision Transformer) 및 스윈 트랜스포머(Swin Transformer) 중 하나인 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
  7. 제6 항에 있어서, 상기 마스킹 하는 단계는
    상기 비전 트랜스포머가 PVT 인 경우, 상기 샘플링 된 이미지의 가시적 패치 중 무작위로 마스킹을 수행하되, 공유 마스크 토큰을 사용하여 상기 마스킹 된 패치를 대체하는 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
  8. 제7 항에 있어서, 상기 공유 마스크 토큰은
    상기 수행된 마스킹의 존재를 나타내는 임베딩 벡터(embedding vector) 인 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
  9. 삭제
  10. 삭제
KR1020230028265A 2023-03-03 2023-03-03 Mim 기반의 퓨샷 객체 검출 모델 학습 방법 KR102594480B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230028265A KR102594480B1 (ko) 2023-03-03 2023-03-03 Mim 기반의 퓨샷 객체 검출 모델 학습 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230028265A KR102594480B1 (ko) 2023-03-03 2023-03-03 Mim 기반의 퓨샷 객체 검출 모델 학습 방법

Publications (1)

Publication Number Publication Date
KR102594480B1 true KR102594480B1 (ko) 2023-10-26

Family

ID=88508725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230028265A KR102594480B1 (ko) 2023-03-03 2023-03-03 Mim 기반의 퓨샷 객체 검출 모델 학습 방법

Country Status (1)

Country Link
KR (1) KR102594480B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200087352A (ko) * 2018-12-31 2020-07-21 삼성전자주식회사 화자 인식을 위한 뉴럴 네트워크 장치, 및 그 동작 방법
KR102348593B1 (ko) 2017-10-26 2022-01-06 삼성에스디에스 주식회사 기계 학습 기반의 객체 검출 방법 및 그 장치
KR20220044027A (ko) * 2020-09-29 2022-04-06 주식회사 딥인스펙션 인공지능 및 메타러닝 기반 공공시설물 균열 및 결함검출 자동화 시스템
KR20230012785A (ko) * 2021-07-16 2023-01-26 서울대학교산학협력단 비디오 스토리 질의응답을 위한 트랜스포머 모델을 구축하는 방법 및 이를 수행하기 위한 컴퓨팅 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102348593B1 (ko) 2017-10-26 2022-01-06 삼성에스디에스 주식회사 기계 학습 기반의 객체 검출 방법 및 그 장치
KR20200087352A (ko) * 2018-12-31 2020-07-21 삼성전자주식회사 화자 인식을 위한 뉴럴 네트워크 장치, 및 그 동작 방법
KR20220044027A (ko) * 2020-09-29 2022-04-06 주식회사 딥인스펙션 인공지능 및 메타러닝 기반 공공시설물 균열 및 결함검출 자동화 시스템
KR20230012785A (ko) * 2021-07-16 2023-01-26 서울대학교산학협력단 비디오 스토리 질의응답을 위한 트랜스포머 모델을 구축하는 방법 및 이를 수행하기 위한 컴퓨팅 장치

Similar Documents

Publication Publication Date Title
Sameen et al. Classification of very high resolution aerial photos using spectral-spatial convolutional neural networks
US11263524B2 (en) Hierarchical machine learning system for lifelong learning
CN111279362B (zh) 胶囊神经网络
US11151417B2 (en) Method of and system for generating training images for instance segmentation machine learning algorithm
US10325223B1 (en) Recurrent machine learning system for lifelong learning
US20210027098A1 (en) Weakly Supervised Image Segmentation Via Curriculum Learning
US9519868B2 (en) Semi-supervised random decision forests for machine learning using mahalanobis distance to identify geodesic paths
WO2022052997A1 (en) Method and system for training neural network model using knowledge distillation
US20180285778A1 (en) Sensor data processor with update ability
EP3853764A1 (en) Training neural networks for vehicle re-identification
US20150347846A1 (en) Tracking using sensor data
US11030750B2 (en) Multi-level convolutional LSTM model for the segmentation of MR images
CN113366494A (zh) 用于少样本无监督图像到图像转换的方法
US20210216874A1 (en) Radioactive data generation
Kolouri et al. Joint dictionaries for zero-shot learning
US11610393B2 (en) Knowledge distillation for neural networks using multiple augmentation strategies
US20220366260A1 (en) Kernelized Classifiers in Neural Networks
US20220301298A1 (en) Multi-task self-training for learning general representations
US20220156585A1 (en) Training point cloud processing neural networks using pseudo-element - based data augmentation
US20220198277A1 (en) Post-hoc explanation of machine learning models using generative adversarial networks
US11599749B1 (en) Method of and system for explainable knowledge-based visual question answering
US11816185B1 (en) Multi-view image analysis using neural networks
Wang et al. Cross-domain learning using optimized pseudo labels: toward adaptive car detection in different weather conditions and urban cities
KR102594480B1 (ko) Mim 기반의 퓨샷 객체 검출 모델 학습 방법
KR102594477B1 (ko) 스코어 재조정을 통한 객체 검출 방법

Legal Events

Date Code Title Description
GRNT Written decision to grant