KR20210143948A - 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습 및 테스트하는 방법 및 장치 - Google Patents

어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습 및 테스트하는 방법 및 장치 Download PDF

Info

Publication number
KR20210143948A
KR20210143948A KR1020217037929A KR20217037929A KR20210143948A KR 20210143948 A KR20210143948 A KR 20210143948A KR 1020217037929 A KR1020217037929 A KR 1020217037929A KR 20217037929 A KR20217037929 A KR 20217037929A KR 20210143948 A KR20210143948 A KR 20210143948A
Authority
KR
South Korea
Prior art keywords
learning
map
current
feature map
feature
Prior art date
Application number
KR1020217037929A
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 주식회사 스트라드비젼
Publication of KR20210143948A publication Critical patent/KR20210143948A/ko

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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2133Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on naturality criteria, e.g. with non-negative factorisation or negative correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/253Fusion techniques of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • 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/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • 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
    • 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/776Validation; Performance evaluation
    • 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/806Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
    • 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/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle

Landscapes

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

Abstract

어텐션 맵을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 방법이 개시된다. 즉, (a) 학습 장치가, 학습 이미지를 피쳐 추출 네트워크에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵을 출력하도록 하고, 상기 학습용 피쳐 맵을 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하며, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵을 출력하도록 하는 단계; (b) 상기 학습 장치가, 상기 학습용 어텐셔널 피쳐 맵을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하고, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵들을 생성하도록 하며, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하는 단계; 및 (c) 상기 학습 장치가, (i) 상기 학습용 객체 검출 정보들과 객체 원본 정답을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, (ii) 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 (iii) 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리화한 학습용 바이너리 맵을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행하는 단계를 포함하는 방법이 개시된다.

Description

어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습 및 테스트하는 방법 및 장치
본 발명은 2020년 12월 4일 출원된 미국특허출원번호 제17/112,413호와 2020년 5월 13일 출원된 미국특허출원번호 제63/024,018호에 대한 우선권을 주장하며, 이는 본원에 참조로서 포함된다.
본 발명은 객체 검출 네트워크를 학습 및 테스트하는 방법에 관한 것으로, 보다 상세하게는, 어텐션 맵(attention map)을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습 및 테스트하는 방법, 그리고 이를 이용한 학습 장치 및 테스팅 장치에 관한 것이다.
일반적으로 자율주행차량은 머신 러닝 기반으로 주행 환경을 분석하여 자율 주행이 가능하도록 하는 것으로, 사전에 주행 환경에 대응되는 다양한 학습 데이터를 이용하여 학습된 러닝 네트워크를 이용하여 자율주행을 하고 있다.
하지만, 사전에 학습된 러닝 네트워크를 이용하여 자동차가 주행하는 다양한 주행 환경을 모두 커버하기에는 사실상 불가능하다.
그리고, 디바이스에서 수집한 정보들을 클라우드 서버로 전송해 분석하고 다시 디바이스로 전송하여 디바이스에 설치된 러닝 네트워크를 학습시킴으로써 다양한 주행 환경에 대응되도록 하는 방법 등이 제안되고 있으나, 클라우드 통신이 제약되는 상황에서는 학습이 어려운 단점이 있다.
따라서, 최근에는 러닝 네트워크가 다양한 주행 환경을 커버할 수 있도록 하며, 클라우드 통신이 제약되는 상황에서도 학습이 가능한 온디바이스(on-device) 러닝 방법이 제안되고 있다.
즉, 온디바이스 러닝은 클라우드 서버를 거치지 않고, 디바이스가 자체적으로 정보를 수집하고 수집된 정보를 이용하여 러닝 네트워크를 학습시키는 방법이다.
그러나, 온디바이스 러닝의 경우, 지식 디스틸레이션(knowledge distillation)을 할 수 있는 티처 네트워크(teacher network)을 사용 할 수 없기 때문에, positive/negative 샘플링을 하기 어렵고, 자율주행차량 등과 같은 디바이스의 임베디드 시스템의 한정된 계산 성능으로 인해 end-to-end 역전파를 하기 어렵다는 한계가 있다.
따라서, 온디바이스 러닝의 한계를 극복할 수 있으며 러닝 네트워크의 성능을 향상시킬 수 있는 새로운 기술이 기술이 요구되는 실정이다.
본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 별도의 학습 동작 없이 객체 검출 네트워크의 성능을 향상시키는 것을 다른 목적으로 한다.
또한, 본 발명은 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크의 성능을 향상시키는 것을 또 다른 목적으로 한다.
또한, 본 발명은 크로스 디스틸드 로스 레이어(cross-distilled loss layer)를 이용해 파괴적 망각(catastrophic forgetting) 발생을 방지하는 것을 또 다른 목적으로 한다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, 어텐션 맵을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 방법에 있어서, (a) 학습 장치가, 학습 이미지를 피쳐 추출 네트워크(feature extraction network)에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵을 출력하도록 하고, 상기 학습용 피쳐 맵을 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵(prediction map) 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하며, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어(concatenation layer)에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵(attentional feature map)을 출력하도록 하는 단계; (b) 상기 학습 장치가, 상기 학습용 어텐셔널 피쳐 맵을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하고, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵들을 생성하도록 하며, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하는 단계; 및 (c) 상기 학습 장치가, (i) 상기 학습용 객체 검출 정보들과 객체 원본 정답(Ground Truth)을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, (ii) 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 (iii) 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리(binary)화한 학습용 바이너리 맵을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행하는 단계를 포함하는 방법이 개시된다.
일례로서, 상기 (a) 단계에서, 상기 학습 장치는, 상기 어텐션 네트워크로 하여금, 상기 학습용 피쳐 맵을 적어도 한 번 컨볼루션 연산하여 학습용 제1 서브 피쳐 맵을 생성하도록 하고, 상기 학습용 제1 서브 피쳐 맵을 1x1 컨볼루션 연산하여 상기 학습용 피쳐 맵과 동일한 채널을 가지는 학습용 제2 서브 피쳐 맵을 생성하도록 하며, 상기 학습용 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 어텐션 맵을 생성하도록 하고, 상기 학습용 제2 서브 피쳐 맵에 ReLU 함수를 적용한 다음 1x1 컨볼루션 연산하여 하나의 채널을 가지는 학습용 제3 서브 피쳐 맵을 생성하도록 하며, 상기 학습용 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 프리딕션 맵을 생성하도록 하는 방법이 개시된다.
일례로서, 상기 (a) 단계에서, 상기 학습 장치는, 상기 컨케티네이션 레이어로 하여금, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 성분끼리의 곱을 하여 학습용 중간의 어텐션 맵을 생성하도록 하며, 상기 학습용 피쳐 맵과 상기 중간의 어텐션 맵을 성분끼리의 합을 하여 상기 학습용 어텐셔널 피쳐 맵피처맵을 생성하도록 하는 방법이 개시된다.
일례로서, 상기 학습 장치는, 상기 학습용 후보 박스들을 바이너리 변환기에 입력하여 상기 바이너리 변환기로 하여금 상기 학습용 후보 박스들을 바이너리화한 다음, 상기 학습용 피쳐 맵의 사이즈로 리사이즈하여 상기 학습용 바이너리 맵을 생성하도록 하는 방법이 개시된다.
본 발명의 다른 태양에 따르면, 어텐션 맵을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하는 방법에 있어서, (a) 학습 장치에 의해, 학습 이미지를 피쳐 추출 네트워크에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵을 출력하도록 하며, 상기 학습용 피쳐 맵을 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하고, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵을 출력하도록 하며, 상기 학습용 어텐션 피쳐 맵을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하며, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵들을 생성하도록 하고, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하며, 상기 학습용 객체 검출 정보들과 객체 원본 정답을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리화 한 학습용 바이너리 맵(binary map)을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행한 상태에서, 테스트 영상이 획득되면, 테스팅 장치가, 상기 테스트 영상에서의 현재의 프레임에 대응되는 현재의 이미지를 상기 피쳐 추출 네트워크로 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 현재의 이미지를 적어도 한번 컨볼루션 연산하여 현재의 피쳐 맵을 출력하도록 하며, 상기 현재의 피쳐 맵을 메모리에 저장하는 단계; (b) 상기 테스팅 장치가, 상기 메모리에 저장된 상기 테스트 영상에서의 이전 프레임에 대응되는 이전 이미지의 이전 피쳐 맵과, 상기 현재의 피쳐 맵을 상기 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 이전 피쳐 맵에 대응되는 현재의 이전 소프트 프리딕션 맵(current previous soft prediction map), 상기 현재의 피쳐 맵에 대응되는 현재의 소프트 프리딕션 맵과 현재의 프리딕션 맵, 및 상기 현재의 피쳐 맵의 현재의 객체 밀도에 대응되는 현재의 어텐션 맵을 출력하도록 하며, 상기 현재의 소프트 프리딕션 맵을 상기 메모리에 저장하고, 상기 현재의 피쳐 맵 과 상기 현재의 어텐션 맵을 상기 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 컨케티네이트하여 현재의 어텐셔널 피쳐 맵을 출력하도록 하며, 상기 현재의 어텐셔널 피쳐 맵을 상기 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 현재의 어텐셔널 피쳐 맵 상의 현재의 객체들에 대응되는 현재의 후보 박스들을 출력하도록 하고, 상기 현재의 어텐셔널 피쳐 맵과 상기 현재의 후보 박스들을 상기 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 현재의 어텐셔널 피쳐 맵 상에서 상기 현재의 후보 박스들 각각에 대응되는 영역들을 풀링하여 현재의 풀드 피쳐 맵들을 생성하도록 하고, 상기 현재의 풀드 피쳐 맵들을 상기 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 현재의 풀드 피쳐 맵들을 학습 연산하여 상기 현재의 후보 박스들 각각에 대응되는 현재의 객체 검출 정보들을 생성하도록 하는 단계; 및 (c) 상기 테스팅 장치가, 상기 현재의 프리딕션 맵과 상기 현재의 후보 박스들을 바이너리화한 현재의 바이너리 맵을 참조하여 생성한 현재의 교차 엔트로피 손실과, 상기 메모리에 저장된 상기 테스트 영상에서의 상기 이전 프레임에 대응되는 상기 이전 이미지의 이전 소프트 프리딕션 맵과 상기 현재의 이전 소프트 프리딕션 맵을 참조하여 생성한 디스틸레이션(distillation) 로스를 이용하여 상기 어텐션 네트워크를 학습시키는 단계를 포함하는 방법이 개시된다.
일례로서, 상기 (b) 단계에서, 상기 테스팅 장치는, 상기 어텐션 네트워크로 하여금, 상기 이전 피쳐 맵과 상기 현재의 피쳐 맵 각각을 적어도 한 번 컨볼루션 연산하여 이전 제1 서브 피쳐 맵과 현재의 제1 서브 피쳐 맵을 각각 생성하도록 하고, 상기 이전 제1 서브 피쳐 맵과 상기 현재의 제1 서브 피쳐 맵 각각을 1x1 컨볼루션 연산하여 상기 현재의 피쳐 맵과 채널 개수가 동일한 채널을 가지는 이전 제2 피쳐 맵과 현재의 제2 서브 피쳐 맵을 각각 생성하도록 하며, 상기 현재의 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 어텐션 맵을 생성하도록 하고, 상기 이전 제2 서브 피쳐 맵과 현재의 제2 서브 피쳐 맵 각각에 ReLU 함수를 적용한 다음 1x1 컨볼루션 연산하여 하나의 채널을 가지는 이전 제3 서브 피쳐 맵과 현재의 제3 서브 피쳐 맵을 각각 생성하도록 하며, 상기 현재의 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 프리딕션 맵을 생성하도록 하고, 상기 이전 제3 서브 피쳐 맵과 상기 현재의 제3 서브 피쳐 맵 각각에 소프트 시그모이드 함수를 적용하여 상기 현재의 이전 소프트 피쳐 맵과 상기 현재의 소프트 프리딕션 맵을 생성하도록 하는 방법이 개시된다.
일례로서, 상기 소프트 시그모이드 함수는 입력값을 기설정된 하이퍼 파라미터로 나눈 값을 상기 시그모이드 함수에 입력하는 활성화 함수인 방법이 개시된다.
일례로서, 상기 (b) 단계에서, 상기 테스팅 장치는, 상기 컨케티네이션 레이어로 하여금, 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 성분끼리의 곱을 하여 현재의 중간의 어텐션 맵을 생성하도록 하며, 상기 현재의 피쳐 맵과 상기 현재의 중간의 어텐션 맵을 성분끼리의 합을 하여 상기 현재의 어텐셔널 피쳐 맵을 생성하도록 하는 방법이 개시된다.
일례로서, 상기 테스팅 장치는, 상기 현재의 후보 박스들을 바이너리 변환기에 입력하여 상기 바이너리 변환기로 하여금 상기 현재의 후보 박스들을 바이너리화한 다음, 상기 현재의 피쳐 맵의 사이즈로 리사이즈하여 상기 현재의 바이너리 맵을 생성하도록 하는 방법.
본 발명의 또 다른 태양에 따르면, 어텐션 맵을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 학습 장치에 있어서, 인스트럭션들을 저장하는 하나 이상의 메모리; 및 상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되, (I) 상기 프로세서가, 학습 이미지를 피쳐 추출 네트워크에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵을 출력하도록 하고, 상기 학습용 피쳐 맵을 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하며, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵을 출력하도록 하는 프로세스; (II) 상기 프로세서가, 상기 학습용 어텐셔널 피쳐 맵을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하고, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵들을 생성하도록 하며, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하는 프로세스; 및 (III) 상기 프로세서가, (i) 상기 학습용 객체 검출 정보들과 객체 원본 정답을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, (ii) 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 (iii) 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리화한 학습용 바이너리 맵을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행하는 프로세스를 수행하는 학습 장치가 개시된다.
일례로서, 상기 (I) 프로세스에서, 상기 프로세서가, 상기 어텐션 네트워크로 하여금, 상기 학습용 피쳐 맵을 적어도 한 번 컨볼루션 연산하여 학습용 제1 서브 피쳐 맵을 생성하도록 하고, 상기 학습용 제1 서브 피쳐 맵을 1x1 컨볼루션 연산하여 상기 학습용 피쳐 맵과 동일한 채널을 가지는 학습용 제2 서브 피쳐 맵을 생성하도록 하며, 상기 학습용 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 어텐션 맵을 생성하도록 하고, 상기 학습용 제2 서브 피쳐 맵에 ReLU 함수를 적용한 다음 1x1 컨볼루션 연산하여 하나의 채널을 가지는 학습용 제3 서브 피쳐 맵을 생성하도록 하며, 상기 학습용 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 프리딕션 맵을 생성하도록 하는 학습 장치가 개시된다.
일례로서, 상기 (I) 프로세스에서, 상기 프로세서가, 상기 컨케티네이션 레이어로 하여금, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 성분끼리의 곱을 하여 학습용 중간의 어텐션 맵을 생성하도록 하며, 상기 학습용 피쳐 맵과 상기 중간의 어텐션 맵을 성분끼리의 합을 하여 상기 학습용 어텐셔널 피쳐 맵피처맵을 생성하도록 하는 학습 장치가 개시된다.
일례로서, 상기 프로세서가, 상기 학습용 후보 박스들을 바이너리 변환기에 입력하여 상기 바이너리 변환기로 하여금 상기 학습용 후보 박스들을 바이너리화한 다음, 상기 학습용 피쳐 맵의 사이즈로 리사이즈하여 상기 학습용 바이너리 맵을 생성하도록 하는 학습 장치가 개시된다.
본 발명의 또 다른 태양에 따르면, 어텐션 맵을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하는 테스트 장치에 있어서, 인스트럭션들을 저장하는 하나 이상의 메모리; 및 상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되, (I) 학습 장치에 의해, 학습 이미지를 피쳐 추출 네트워크에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵을 출력하도록 하며, 상기 학습용 피쳐 맵을 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하고, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵을 출력하도록 하며, 상기 학습용 어텐션 피쳐 맵을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하며, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵들을 생성하도록 하고, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하며, 상기 학습용 객체 검출 정보들과 객체 원본 정답을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리화한 학습용 바이너리 맵을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행한 상태에서, 테스트 영상이 획득되면, 상기 프로세서가, 상기 테스트 영상에서의 현재의 프레임에 대응되는 현재의 이미지를 상기 피쳐 추출 네트워크로 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 현재의 이미지를 적어도 한번 컨볼루션 연산하여 현재의 피쳐 맵을 출력하도록 하며, 상기 현재의 피쳐 맵을 메모리에 저장하는 프로세스; (II) 상기 프로세서가, 상기 메모리에 저장된 상기 테스트 영상에서의 이전 프레임에 대응되는 이전 이미지의 이전 피쳐 맵과, 상기 현재의 피쳐 맵을 상기 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 이전 피쳐 맵에 대응되는 현재의 이전 소프트 프리딕션 맵, 상기 현재의 피쳐 맵에 대응되는 현재의 소프트 프리딕션 맵과 현재의 프리딕션 맵, 및 상기 현재의 피쳐 맵의 현재의 객체 밀도에 대응되는 현재의 어텐션 맵을 출력하도록 하며, 상기 현재의 소프트 프리딕션 맵을 상기 메모리에 저장하고, 상기 현재의 피쳐 맵 과 상기 현재의 어텐션 맵을 상기 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 컨케티네이트하여 현재의 어텐셔널 피쳐 맵을 출력하도록 하며, 상기 현재의 어텐셔널 피쳐 맵을 상기 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 현재의 어텐셔널 피쳐 맵 상의 현재의 객체들에 대응되는 현재의 후보 박스들을 출력하도록 하고, 상기 현재의 어텐셔널 피쳐 맵과 상기 현재의 후보 박스들을 상기 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 현재의 어텐셔널 피쳐 맵 상에서 상기 현재의 후보 박스들 각각에 대응되는 영역들을 풀링하여 현재의 풀드 피쳐 맵들을 생성하도록 하고, 상기 현재의 풀드 피쳐 맵들을 상기 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 현재의 풀드 피쳐 맵들을 학습 연산하여 상기 현재의 후보 박스들 각각에 대응되는 현재의 객체 검출 정보들을 생성하도록 하는 프로세스; 및 (III) 상기 프로세서가, 상기 현재의 프리딕션 맵과 상기 현재의 후보 박스들을 바이너리화한 현재의 바이너리 맵을 참조하여 생성한 현재의 교차 엔트로피 손실과, 상기 메모리에 저장된 상기 테스트 영상에서의 상기 이전 프레임에 대응되는 상기 이전 이미지의 이전 소프트 프리딕션 맵과 상기 현재의 이전 소프트 프리딕션 맵을 참조하여 생성한 디스틸레익션 로스를 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스를 수행하는 테스트 장치가 개시된다.
일례로서, 상기 (II) 프로세스에서, 상기 프로세서가, 상기 어텐션 네트워크로 하여금, 상기 이전 피쳐 맵과 상기 현재의 피쳐 맵 각각을 적어도 한 번 컨볼루션 연산하여 이전 제1 서브 피쳐 맵과 현재의 제1 서브 피쳐 맵을 각각 생성하도록 하고, 상기 이전 제1 서브 피쳐 맵과 상기 현재의 제1 서브 피쳐 맵 각각을 1x1 컨볼루션 연산하여 상기 현재의 피쳐 맵과 채널 개수가 동일한 채널을 가지는 이전 제2 피쳐 맵과 현재의 제2 서브 피쳐 맵을 각각 생성하도록 하며, 상기 현재의 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 어텐션 맵을 생성하도록 하고, 상기 이전 제2 서브 피쳐 맵과 현재의 제2 서브 피쳐 맵 각각에 ReLU 함수를 적용한 다음 1x1 컨볼루션 연산하여 하나의 채널을 가지는 이전 제3 서브 피쳐 맵과 현재의 제3 서브 피쳐 맵을 각각 생성하도록 하며, 상기 현재의 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 프리딕션 맵을 생성하도록 하고, 상기 이전 제3 서브 피쳐 맵과 상기 현재의 제3 서브 피쳐 맵 각각에 소프트 시그모이드 함수를 적용하여 상기 현재의 이전 소프트 피쳐 맵과 상기 현재의 소프트 프리딕션 맵을 생성하도록 하는 테스트 장치가 개시된다.
일례로서, 상기 소프트 시그모이드 함수는 입력값을 기설정된 하이퍼 파라미터로 나눈 값을 상기 시그모이드 함수에 입력하는 활성화 함수인 테스트 장치가 개시된다.
일례로서, 상기 (II) 프로세스에서, 상기 프로세서가, 상기 컨케티네이션 레이어로 하여금, 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 성분끼리의 곱을 하여 현재의 중간의 어텐션 맵을 생성하도록 하며, 상기 현재의 피쳐 맵과 상기 현재의 중간의 어텐션 맵을 성분끼리의 합을 하여 상기 현재의 어텐셔널 피쳐 맵을 생성하도록 하는 테스트 장치가 개시된다.
일례로서, 상기 프로세서가, 상기 현재의 후보 박스들을 바이너리 변환기에 입력하여 상기 바이너리 변환기로 하여금 상기 현재의 후보 박스들을 바이너리화한 다음, 상기 현재의 피쳐 맵의 사이즈로 리사이즈하여 상기 현재의 바이너리 맵을 생성하도록 하는 테스트 장치가 개시된다.
본 발명은 별도의 학습 동작 없이 객체 검출 네트워크의 성능을 향상시키는 방법을 제공할 수 있는 효과가 있다.
또한, 본 발명은 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크의 성능을 향상시키는 방법을 제공할 수 있는 효과가 있다.
또한, 본 발명은 크로스 디스틸드 로스 레이어를 이용해 파괴적 망각(catastrophic forgetting) 발생을 방지하는 방법을 제공할 수 있는 효과가 있다.
본 발명의 실시예의 설명에 이용되기 위하여 첨부된 아래 도면들은 본 발명의 실시예들 중 단지 일부일 뿐이며, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자(이하 “통상의 기술자”)에게 있어서는 발명적 작업이 이루어짐 없이 이 도면들에 기초하여 다른 도면들이 얻어질 수 있다.
도 1은 본 발명의 일 실시예에 따른 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 학습 장치를 개략적으로 도시한 것이며,
도 2는 본 발명의 일 실시예에 따른 어텐션 맵을 이용해 학습 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 방법을 개략적으로 도시한 것이며,
도 3은 본 발명의 일 실시예에 따른 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습하는 과정에서 어텐션 맵과 교차 엔트로피 손실을 생성하는 과정을 개략적으로 도시한 것이고,
도 4는 본 발명의 일 실시예에 따른 피쳐 맵과 어텐션 맵을 이용해 어텐셔널 피쳐 맵을 생성하는 과정을 개략적으로 도시한 것이고,
도 5는 본 발명의 일 실시예에 따른 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하는 테스트 장치를 개략적으로 도시한 것이고,
도 6은 본 발명의 일 실시예에 따른 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하는 방법을 개략적으로 도시한 것이고,
도 7은 본 발명의 일 실시예에 따른 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하는 과정에서 어텐션 네트워크를 연속 학습시키는 과정을 개략적으로 도시한 것이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명의 목적들, 기술적 해법들 및 장점들을 분명하게 하기 위하여 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 통상의 기술자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다.
또한, 본 발명의 상세한 설명 및 청구항들에 걸쳐, "포함하다"라는 단어 및 그것의 변형은 다른 기술적 특징들, 부가물들, 구성요소들 또는 단계들을 제외하는 것으로 의도된 것이 아니다. 통상의 기술자에게 본 발명의 다른 목적들, 장점들 및 특성들이 일부는 본 설명서로부터, 그리고 일부는 본 발명의 실시로부터 드러날 것이다. 아래의 예시 및 도면은 실례로서 제공되며, 본 발명을 한정하는 것으로 의도된 것이 아니다.
더욱이 본 발명은 본 명세서에 표시된 실시예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 학습 장치를 개략적으로 도시한 것으로, 도 1을 참조하면, 학습 장치(1000)는 어텐션 네트워크를 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키기 위한 인스트럭션들이 저장된 메모리(1100)와 메모리(1100)에 저장된 인스트럭션들에 따라 어텐션 네트워크를 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키기 위한 동작을 수행하는 프로세서(1200)를 포함할 수 있다.
구체적으로는, 학습 장치(1000)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 컴퓨팅 장치는 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
그러나, 컴퓨팅 장치가 본 발명을 실시하기 위한 미디엄, 프로세서 및 메모리가 통합된 형태인 integrated 프로세서를 포함하는 경우를 배제하는 것은 아니다.
이와 같이 구성된 본 발명의 일 실시예에 따른 학습 장치(1000)를 이용하여 어텐션 맵(attention map)을 이용해 학습 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 방법을 도 2를 참조하여 설명하면 다음과 같다.
먼저, 학습 이미지가 획득되면, 학습 장치(1000)가, 학습 이미지를 피쳐 추출 네트워크(feature extraction network)(1210)로 입력하여 피쳐 추출 네트워크(1210)로 하여금 상기 학습 이미지를 컨볼루션 연산하여 학습용 피쳐 맵을 출력 하도록 할 수 있다.
이때, 피쳐 추출 네트워크(1210)은 적어도 하나의 컨볼루션 레이어를 포함할 수 있으며, 상기 학습 이미지를 적어도 한번 컨볼루션 연산하여 학습용 피쳐 맵을 생성할 수 있다. 그리고, 학습용 피쳐 맵의 크기는 K*H*W일 수 있으며, H는 학습용 피쳐 맵의 높이, W는 학습용 피쳐 맵의 너비, K는 학습용 피쳐 맵의 채널 개수일 수 있다.
이후, 학습 장치(1000)는 상기 학습용 피쳐 맵을 어텐션 네트워크(1220)로 입력 하여, 어텐션 네트워크(1220)로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵과 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 할 수 있다.
이때, 도 3을 참조하면, 어텐션 네트워크(1220)는 적어도 하나의 컨볼루션 레이어(1221)를 통해 상기 학습용 피쳐 맵을 적어도 한 번 컨볼루션 연산하여 학습용 제1 서브 피쳐 맵을 생성하고, 제1 1x1 컨볼루션 레이어(1222)를 통해 상기 학습용 제1 서브 피쳐 맵을 1x1 컨볼루션 연산하여 학습용 제2 서브 피쳐 맵을 생성한다. 이때, 제1 1x1 컨볼루션 레이어(1222)는 k개의 커널을 이용하여 상기 학습용 제1 서브 피쳐 맵을 1x1 컨볼루션 연산함으로써 상기 학습용 제2 서브 피쳐 맵이 k개의 채널을 가지도록 할 수 있으며, k를 상기 학습용 피쳐 맵의 채널 개수와 동일하게 함으로써 상기 학습용 제2 서브 피쳐 맵의 채널 개수가 상기 학습용 피쳐 맵의 채널 개수와 동일해지도록 할 수 있다. 즉, 학습용 제2 서브 피쳐 맵의 크기는 K*H*W가 될 수 있다.
그리고, 어텐션 네트워크(1220)는 상기 학습용 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 제2 서브 피쳐 맵에 대응되는 학습용 어텐션 맵을 출력할 수 있다.
이때, 상기 학습용 어텐션 맵은 상기 학습 이미지 상에 위치하는 상기 학습용 객체 밀도를 나타내는 맵(map)일 수 있으며, 상기 학습 이미지 상에서 정보가 많은 특정 영역들을 포커싱한 것일 수 있다.
또한, 어텐션 네트워크(1220)는 ReLU(rectified linear unit)(1223)를 통해 상기 학습용 제2 서브 피쳐 맵에 ReLU 함수를 적용함으로써 특징화된 학습용 제2 서브 피쳐 맵을 생성하고, 제2 1x1 컨볼루션 레이어(1224)를 통해 상기 특징화된 학습용 제2 서브 피쳐 맵을 1x1 컨볼루션 연산하여 학습용 제3 서브 피쳐 맵을 생성할 수 있다.
이때, 제2 1x1 컨볼루션 레이어(1224)는 하나의 커널을 이용하여 상기 학습용 제2 서브 피쳐 맵을 1x1 컨볼루션 연산함으로써 상기 학습용 제3 서브 피쳐 맵이 하나의 채널을 갖도록 할 수 있다. 즉, 학습용 제3 서브 피쳐 맵의 크기는 1*H*W가 될 수 있다.
이후, 어텐션 네트워크(1220)는 상기 학습용 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵을 생성할 수 있다.
다시, 도 2를 참조하면, 학습 장치(1000)는 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어(1230)로 입력하여 컨케티네이션 레이어(1230)로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵을 출력하도록 할 수 있다.
이때, 도 4를 참조하면, 컨케티네이션 레이어(1230)는 상기 학습용 어텐션 맵과 상기 학습용 피쳐 맵을 성분끼리의 곱을(1231)하여 학습용 중간의 어텐션 맵을 생성한 후, 상기 학습용 중간의 어텐션 맵과 상기 학습용 피쳐 맵을 성분끼리의 합을(1232)하여 상기 학습용 어텐셔널 피쳐 맵을 생성할 수 있다. 이때, 상기 학습용 어텐셔널 피쳐 맵은 상기 학습용 어텐션 맵을 참조하여 상기 학습용 피쳐 맵 상에서 정보가 많은 특정 영역들을 포커싱한 것이므로, 후속 객체 검출의 성능을 향상시킬 수 있다.
다음으로, 학습 장치(1000)는 상기 학습용 어텐셔널 피쳐 맵을 region proposal network(1240)로 입력 하여, region proposal network(1240)로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서의 학습용 객체 후보들에 대한 학습용 후보 박스를 출력 하도록 할 수 있다.
이때, region proposal network(1240)는 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 상기 학습용 피쳐 맵 상에서 정보가 많은 특정 영역들이 포커싱된 상기 학습용 어텐셔널 피쳐 맵을 이용하여 상기 학습용 후보 박스를 생성하기 때문에, 단순히 상기 학습용 피쳐 맵만 이용하는 경우보다 정확한 후보 박스를 생성할 수 있다.
그리고, 학습 장치(1000)는 상기 학습용 후보 박스를 바이너리 변환기(1270)에 입력하여 바이너리 변환기(1270)로 하여금 상기 학습용 후보 박스를 binary 화 함으로써, 상기 학습용 바이너리 맵으로 변환하도록 할 수 있다. 이때, 학습 장치(1000)는 상기 학습용 바이너리 맵의 사이즈를 상기 학습용 피쳐 맵의 사이즈로 리사이징 함으로써, 상기 학습용 바이너리 맵이 어텐션 네트워크(1220)의 학습을 위한 타겟 값(target value)로 사용될 수 있도록 할 수 있다.
또한, 학습 장치(1000)는 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스를 ROI(Region of interest) 풀링 레이어(1250)로 입력하여, ROI 풀링 레이어(1250)로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵을 생성하도록 하며, 상기 학습용 풀드 피쳐 맵을 검출 네트워크(1260)로 입력하여, 상기 검출 네트워크(1260)로 하여금 학습용 풀드 피쳐 맵을 학습 연산, 일 예로, fully connected 연산하여 상기 학습용 후보 박스 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 할 수 있다.
이때, 검출 네트워크(1260)는 상기 학습용 피쳐 맵 상에서 정보가 많은 특정 영역들이 포커싱된 상기 학습용 어텐셔널 피쳐 맵을 이용하여 생성한 상기 학습용 풀드 피쳐 맵을 이용하여 객체 검출을 수행하므로 단순히 상기 학습용 피쳐 맵만 이용하는 경우 보다 향상된 성능의 객체 검출을 수행할 수 있다.
다음으로, 학습 장치(1000)는 상기 객체 검출 정보들과 이에 대응하는 객체 검출 원본 정답을 객체 로스 레이어(1261)에 입력하여 객체 로스 레이어(1261)로 하여금 객체 검출 로스를 획득하도록 하고, 상기 학습용 후보 박스와 이에 대응하는 RPN 원본 정답을 RPN 로스 레이어(1241)에 입력하여 RPN 로스 레이어(1241)로 하여금 RPN 로스를 획득하도록 하며, 상기 학습용 프리딕션 맵과 상기 학습용 바이너리 맵을 크로스 디스틸드 로스 레이어(1280)에 입력하여 크로스 디스틸드 로스 레이어(1280)로 하여금 학습용 교차 엔트로피 손실을 획득하도록 할 수 있다. 이후, 학습 장치(1000)는 상기 객체 검출 로스를 이용한 역전파를 통해 피쳐 추출 네트워크(1210) 및 검출 네트워크(1260) 중 적어도 하나를 학습시키는 프로세스, 상기 RPN 로스를 이용한 역전파를 통해 RPN(1240)을 학습시키는 프로세스, 및 상기 학습용 교차 엔트로피 손실을 이용한 역전파를 통해 어텐션 네트워크(1220)을 학습시키는 프로세스 중 적어도 일부를 수행할 수 있다.
이때, 교차 엔트로피 손실은 다음의 수학식과 같이 나타내어질 수 있다.
Figure pct00001
상기에서,
Figure pct00002
는 상기 학습용 제3 서브 피쳐 맵에 시그모이드 함수를 적용한 상기 학습용 프리딕션 맵을 나타내며,
Figure pct00003
는 상기 학습용 바이너리 맵을 나타낼 수 있다.
도 5는 상기와 같은 방법에 의해 학습된 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를, 본 발명의 일 실시예에 따라, 테스트하는 테스트 장치를 개략적으로 도시한 것으로, 도 5를 참조하면, 테스트 장치(2000)는 어텐션 네트워크를 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하기 위한 인스트럭션들이 저장된 메모리(2100)와 메모리(2100)에 저장된 인스트럭션들에 따라 어텐션 네트워크를 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하기 위한 동작을 수행하는 프로세서(2200)를 포함할 수 있다. 이때 메모리(2100)는 온디바이스 store device 일 수 있으나 이에 한정되지 않는다.
구체적으로는, 테스트 장치(2000)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 컴퓨팅 장치는 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
그러나, 컴퓨팅 장치가 본 발명을 실시하기 위한 미디엄, 프로세서 및 메모리가 통합된 형태인 integrated 프로세서를 포함하는 경우를 배제하는 것은 아니다.
이와 같이 구성된 본 발명의 일 실시예에 따른 테스트 장치(2000)를 이용하여 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하는 방법을 도 6을 참조하여 설명하면 다음과 같다.
이하의 설명에서는, 도 2 내지 도 3을 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.
또한, 이하에서 설명될 테스트 장치와 객체 검출 네트워크는 자율주행 자동차, 자율운행 비행체, 자율동작 로봇 등과 같이 객체 검출을 수행하는 device에 on-board될 수 있으며, device 내에서 온디바이스 러닝하도록 구성될 수 있다.
먼저, 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크는 상기 도 2와 도 3을 참조하여 설명한 학습 방법에 의해 학습된 상태일 수 있다.
즉, 학습 장치(1000)에 의해, 상기 학습 이미지가 피쳐 추출 네트워크(1210)에 입력되어 피쳐 추출 네트워크(1210)에 의해 상기 학습 이미지가 컨볼루션 연산되어 상기 학습용 피쳐 맵이 출력되고, 상기 학습용 피쳐 맵이 어텐션 네트워크(1220)에 입력되어 어텐션 네트워크(1220)에 의해 상기 학습용 피쳐 맵에 대응되는 상기 학습용 프리딕션 맵과 상기 학습용 피쳐 맵에서의 상기 학습용 객체 밀도에 대응되는 상기 학습용 어텐션 맵이 출력되며, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵이 컨케티네이션 레이어(1230)에 입력되어 컨케티네이션 레이어(1230)에 의해 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵이 컨케티네이트되어 상기 학습용 어텐셔널 피쳐 맵이 출력되고, 상기 학습용 어텐셔널 피쳐 맵이 RPN(region proposal network)(1240)에 입력되어 RPN(1240)에 의해 상기 학습용 어텐셔널 피쳐 맵 상에서의 상기 학습용 객체 후보들에 대한 상기 학습용 후보 박스가 출력되며, 상기 학습용 후보 박스가 바이너리 변환기(1270)에 입력되어 바이너리 변환기(1270)에 의해 상기 학습용 후보 박스가 상기 학습용 바이너리 맵으로 변환되고, 상기 학습용 후보 박스와 상기 학습용 어텐셔널 피쳐 맵이 ROI 풀링 레이어(1250)에 입력되어 ROI 풀링 레이어(1250)에 의해 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스 각각에 대응되는 영역들이 풀링되어 상기 학습용 풀드 피쳐 맵이 생성되며, 상기 학습용 풀드 피쳐 맵이 검출 네트워크(1260)에 입력되어 검출 네트워크(1260)에 의해 상기 학습용 풀드 피쳐 맵이 학습 연산되어 상기 학습용 후보 박스 각각에 대응되는 상기 학습용 객체 검출 정보들이 생성되며, 상기 학습용 객체 검출 정보들과 이에 대응하는 객체 원본 정답을 참조하여 생성한 상기 객체 로스를 이용한 역전파를 통해 피쳐 추출 네트워크(1210) 및 검출 네트워크(1260) 중 적어도 하나를 학습시키는 프로세스, 상기 학습용 후보 박스와 이에 대응하는 RPN 원본 정답을 참조하여 생성한 상기 RPN 로스를 이용한 역전파를 통해 RPN(1240)을 학습시키는 프로세스, 상기 학습용 바이너리 맵과 상기 학습용 프리딕션 맵을 참조하여 생성한 상기 학습용 교차 엔트로피 손실을 이용한 역전파를 통해 어텐션 네트워크(1220)를 학습시키는 프로세스 중 적어도 일부를 수행한 상태일 수 있다.
이와 같은 방법에 의해 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크가 학습된 상태에서, 테스트 영상이 획득되면, 테스트 장치(2000)는 테스트 영상 중 현재의 프레임에 대응되는 현재의 이미지를 피쳐 추출 네트워크(1210)로 입력하여 피쳐 추출 네트워크(1210)로 하여금 현재의 이미지를 적어도 한번 컨볼루션 연산하여 현재의 피쳐 맵을 출력하도록 할 수 있다. 이때, 상기 현재의 피쳐 맵의 크기는 K*H*W일 수 있으며, K는 상기 현재의 피쳐 맵의 채널 개수, H는 상기 현재의 피쳐 맵의 높이, W는 상기 현재의 피쳐 맵 의 너비일 수 있다.
이후, 테스트 장치(2000)는 상기 테스트 영상 중 이후 프레임과 관련된 어텐셔널 네트워크(1220)의 연속 학습을 위해 위해 상기 현재의 피쳐 맵을 메모리(2100)에 저장하고, 상기 현재의 프레임과 관련된 어텐셔널 네트워크(1220)의 컨티뉴얼 러닝(즉, 연속 학습)을 위해 상기 메모리(2100)에 저장해 두었던 이전 프레임에 대응되는 이전 피쳐 맵과, 상기 현재의 피쳐 맵을 어텐션 네트워크(1220)에 입력하여 어텐션 네트워크(1220)로 하여금 상기 이전 피쳐 맵에 대응되는 현재의 이전 소프트 프리딕션과 상기 현재의 피쳐 맵에 대응되는 현재의 프리딕션 맵 및 현재의 소프트 프리딕션 맵, 그리고 상기 현재의 피쳐 맵에서의 현재의 객체 밀도에 대응되는 현재의 어텐션 맵을 출력하도록 할 수 있으며, 상기 이후 프레임과 관련된 어텐셔널 네트워크(1220)의 연속 학습을 위해 상기 현재의 소프트 프리딕션을 상기 메모리(2100)에 저장할 수 있다.
이때, 도 7을 참조하면, 어텐션 네트워크(1220)는 적어도 하나의 컨볼루션 레이어(1221)를 통해 상기 이전 피쳐 맵과 상기 현재의 피쳐 맵 각각을 적어도 한 번 컨볼루션 연산하여 이전 제1 서브 피쳐 맵과 현재의 제1 서브 피쳐 맵을 각각 생성하며, 제1 1x1 컨볼루션 레이어(1222)를 통해 상기 이전 제1 서브 피쳐 맵과 상기 현재의 제1 서브 피쳐 맵을 각각 1x1 컨볼루션 연산하여 이전 제2 서브 피쳐 맵과 현재의 제2 서브 피쳐 맵을 각각 생성한다. 이때, 제1 1x1 컨볼루션 레이어(1222)는 k개의 커널을 이용하여 상기 이전 제1 서브 피쳐 맵과 상기 현재의 제1 서브 피쳐 맵을 각각 1x1 컨볼루션 연산함으로서 상기 이전 제2 서브 피쳐 맵과 상기 현재의 제2 서브 피쳐 맵 각각이 k개의 채널을 가지도록 할 수 있으며, k를 상기 이전 피쳐 맵 및 상기 현재의 피쳐 맵의 채널 개수와 동일하게 함으로써 상기 이전 제2 서브 피쳐 맵과 상기 현재의 제2 서브 피쳐 맵의 채널 개수가 상기 이전 피쳐 맵 및 상기 현재의 피쳐 맵의 채널 개수와 동일해지도록 할 수 있다. 즉, 상기 이전 제2 서브 피쳐 맵과 상기 현재의 제2 서브 피쳐 맵의 크기는 K*H*W가 될 수 있다.
그리고, 어텐션 네트워크(1220)는 상기 현재의 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 제2 서브 피쳐 맵에 대응되는 상기 현재의 어텐션 맵을 출력할 수 있다.
이때, 상기 현재의 어텐션 맵은 상기 현재의 이미지 상에 위치하는 상기 현재의 객체들의 밀도를 나타내는 맵일 수 있으며, 상기 현재의 이미지 상에서 정보가 많은 특정 영역들을 포커싱한 것일 수 있다.
또한, 어텐션 네트워크(1220)는 ReLU(rectified linear unit)(1223)를 통해 상기 이전 제2 서브 피쳐 맵과 상기 현재의 제2 서브 피쳐 맵에 각각 ReLU 함수를 적용함으로써 특징화된 이전 제2 서브 피쳐 맵과 특징화된 현재의 제2 서브 피쳐 맵을 각각 생성하고, 제2 1x1 컨볼루션 레이어(1224)를 통해 상기 특징화된 이전 제2 서브 피쳐 맵과 상기 특징화된 현재의 제2 서브 피쳐 맵을 각각 1x1 컨볼루션 연산하여 이전 제3 서브 피쳐 맵과 현재의 제3 서브 피쳐 맵을 각각 생성할 수 있다. 이때, 제2 1x1 컨볼루션 레이어(1224)는 하나의 커널을 이용하여 상기 이전 제2 서브 피쳐 맵과 상기 현재의 제2 서브 피쳐 맵을 각각 1x1 컨볼루션 연산함으로써 상기 이전 제3 서브 피쳐 맵과 상기 현재의 제3 서브 피쳐 맵 각각이 하나의 채널을 갖도록 할 수 있다. 즉, 상기 이전 제3 서브 피쳐 맵, 상기 현재의 제3 서브 피쳐, 상기 현재의 제3 서브 피쳐 맵의 크기는 1*H*W가 될 수 있다.
이후, 어텐션 네트워크(1220)는 상기 이전 제3 서브 피쳐 맵에 소프트 시그모이드 함수를 적용하여 상기 현재의 이전 소프트 프리딕션 맵을 생성할 수 있고, 상기 현재의 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 프리딕션 맵을 생성할 수 있으며, 상기 현재의 제3 서브 피쳐 맵에 소프트 시그모이드 함수를 적용하여 상기 현재의 소프트 프리딕션 맵을 생성하여 메모리(2100)에 저장할 수 있다.
이때, 소프트 시그모이드 함수는 다음의 수학식과 같이 나타내어질 수 있다.
Figure pct00004
상기에서,
Figure pct00005
는 시그모이드 함수며, Z는 입력 값이고, T는 온도 하이퍼 파라미터일 수 있다. 그리고, 온도 하이퍼 파라미터는 분류 작업에서 프리딕션 신뢰도를 캘리브레이션 하는 데 사용될 수 있으며, 분포 외 검출 문제에 적용하면 분포 내 샘플과 분포 외 샘플의 클래스 점수를 서로 더 멀어지게 하여 분포 외 샘플을 구별하기 쉽게 도와주는 역할을 할 수 있다.
다음으로, 다시 도 6을 참조하면, 테스트 장치(2000)는 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 컨케티네이션 레이어(1230)로 입력하여 컨케티네이션 레이어(1230)로 하여금 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 컨케티네이트하여 현재의 어텐셔널 피쳐 맵을 출력하도록 할 수 있다.
이후, 테스트 장치(2000)는 상기 현재의 어텐셔널 피쳐 맵을 region proposal network(1240)로 입력 하여, region proposal network(1240)로 하여금 상기 현재의 어텐셔널 피쳐 맵 상에서의 현재의 객체 후보들에 대한 현재의 후보 박스를 출력 하도록 할 수 있다.
그리고, 테스트 장치(2000)는 상기 현재의 후보 박스를 바이너리 변환기(1270)로 입력하여, 바이너리 변환기(1270)로 하여금 상기 현재의 후보 박스를 현재의 바이너리 맵으로 변환하도록 할 수 있다.
또한, 테스트 장치(2000)는 상기 현재의 어텐셔널 피쳐 맵과 현재의 후보 박스를 ROI(Region of interest) 풀링 레이어(1250)로 입력하여, ROI 풀링 레이어(1250)로 하여금 상기 현재의 어텐셔널 피쳐 맵 상에서 상기 현재의 후보 박스 각각에 대응되는 영역들을 풀링하여 현재의 풀드 피쳐 맵을 생성하도록 할 수 있고, 상기 현재의 풀드 피쳐 맵을 검출 네트워크(1260)로 입력하여, 검출 네트워크(1260)로 하여금 상기 현재의 풀드 피쳐 맵을 학습 연산, 일 예로, fully connected 연산하여 상기 현재의 후보 박스 각각에 대응되는 현재의 객체 검출 정보들을 생성하도록 할 수 있다.
다음으로, 도 7을 참조하면, 테스트 장치(2000)는 상기 현재의 프리딕션 맵과, 상기 현재의 바이너리 맵을 크로스 디스틸드 로스 레이어(1280)에 입력하여 크로스 디스틸드 로스 레이어(1280)로 하여금 현재의 교차 엔트로피 손실을 획득하도록 하고, 상기 현재의 프레임과 관련된 어텐셔널 네트워크(1220)의 연속 학습을 위해 상기 메모리(2100)에 저장해 두었던 이전 프레임에 대응되는 이전 소프트 프리딕션 맵과 상기 현재의 이전 소프트 프리딕션 맵을 크로스 디스틸드 로스 레이어(1280)에 입력하여 상기 크로스 디스틸드 로스 레이어(1280)로 하여금 디스틸레이션 로스를 획득하도록 하며, 상기 현재의 교차 엔트로피 손실과 상기 디스틸레이션 로스를 이용한 역전파를 통해 상기 어텐션 네트워크(1220)의 연속 학습을 수행할 수 있다.
이때, 어텐션 네트워크(1220)의 연속 학습을 수행하기 위한 토탈 로스(total loss)는 다음의 수학식과 같이 나타내어질 수 있다.
Figure pct00006
상기에서,
Figure pct00007
는 현재의 프리딕션 맵을 나타내고,
Figure pct00008
는 현재의 이전 소프트 프리딕션 맵을 나타내며,
Figure pct00009
는 현재의 바이너리 맵을 나타내고,
Figure pct00010
는 이전 소프트 프리딕션 맵을 나타내며,
Figure pct00011
는 교차 엔트로피 손실을 나타내고,
Figure pct00012
는 디스틸레이션 로스를 나타낼 수 있다.
이때, 상기 디스틸레이션 로스는 어텐션 네트워크(1220)를 온디바이스 연속 학습 시, 파괴적 망각(catastrophic forgetting)을 방지하는데 쓰일 수 있다.
한편, 이와 같은 방법에 의해 학습된 객체 검출 네트워크를 이용하여 이미지 상의 객체를 검출하는 경우, 어텐션 네트워크(1220)는 객체 검출과 온디바이스 연속 학습을 병행하여 수행함으로써 테스트 영상의 매 프레임마다 업데이트될 수 있다.
이와 같은 방법에 따라 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습 및 테스트하면, 자율주행차량 등과 같은 임베디드 시스템의 한정된 계산 성능으로 자율주행차량 등이 주로 접하는 주행환경에 대해 집중적으로 학습시켜 검출 네트워크의 성능을 개선하면서도, 파괴적 망각의 발생을 방지할 수 있게 된다.
또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (18)

  1. 어텐션 맵(attention map)을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 방법에 있어서,
    (a) 학습 장치가, 학습 이미지를 피쳐 추출 네트워크(feature extraction network)에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵(feature map)을 출력하도록 하고, 상기 학습용 피쳐 맵을 어텐션 네트워크(attention network)에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵(prediction map) 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하며, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵(attentional feature map)을 출력하도록 하는 단계;
    (b) 상기 학습 장치가, 상기 학습용 어텐셔널 피쳐 맵을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하고, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링(pooling)하여 학습용 풀드 피쳐 맵(pooled feature map)들을 생성하도록 하며, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하는 단계; 및
    (c) 상기 학습 장치가, (i) 상기 학습용 객체 검출 정보들과 객체 원본 정답을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, (ii) 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 (iii) 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리화한 학습용 바이너리 맵을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행하는 단계;
    를 포함하는 방법.
  2. 제 1항에 있어서,
    상기 (a) 단계에서,
    상기 학습 장치는, 상기 어텐션 네트워크로 하여금, 상기 학습용 피쳐 맵을 적어도 한 번 컨볼루션 연산하여 학습용 제1 서브 피쳐 맵을 생성하도록 하고, 상기 학습용 제1 서브 피쳐 맵을 1x1 컨볼루션 연산하여 상기 학습용 피쳐 맵과 동일한 채널을 가지는 학습용 제2 서브 피쳐 맵을 생성하도록 하며, 상기 학습용 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 어텐션 맵을 생성하도록 하고, 상기 학습용 제2 서브 피쳐 맵에 ReLU 함수를 적용한 다음 1x1 컨볼루션 연산하여 하나의 채널을 가지는 학습용 제3 서브 피쳐 맵을 생성하도록 하며, 상기 학습용 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 프리딕션 맵을 생성하도록 하는 방법.
  3. 제1항에 있어서,
    상기 (a) 단계에서,
    상기 학습 장치는, 상기 컨케티네이션 레이어로 하여금, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 성분끼리의 곱(element-wise multiplication)을하여 학습용 중간의 어텐션 맵을 생성하도록 하며, 상기 학습용 피쳐 맵과 상기 중간의 어텐션 맵을 성분끼리의 합(element-wise sum)을하여 상기 학습용 어텐셔널 피쳐 맵피처맵을 생성하도록 하는 방법.
  4. 제1항에 있어서,
    상기 학습 장치는, 상기 학습용 후보 박스들을 바이너리 변환기에 입력하여 상기 바이너리 변환기로 하여금 상기 학습용 후보 박스들을 바이너리화한 다음, 상기 학습용 피쳐 맵의 사이즈로 리사이즈하여 상기 학습용 바이너리 맵을 생성하도록 하는 방법.
  5. 어텐션 맵(attention map)을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하는 방법에 있어서,
    (a) 학습 장치에 의해, 학습 이미지를 피쳐 추출 네트워크(feature extraction network)에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵(feature map)을 출력하도록 하며, 상기 학습용 피쳐 맵을 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하고, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵을 출력하도록 하며, 상기 학습용 어텐션 피쳐 맵 을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하며, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어(pooling layer)에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵들을 생성하도록 하고, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하며, 상기 학습용 객체 검출 정보들과 객체 원본 정답을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리화한 학습용 바이너리 맵을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행한 상태에서, 테스트 영상이 획득되면, 테스팅 장치가, 상기 테스트 영상에서의 현재의 프레임에 대응되는 현재의 이미지를 상기 피쳐 추출 네트워크로 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 현재의 이미지를 적어도 한번 컨볼루션 연산하여 현재의 피쳐 맵을 출력하도록 하며, 상기 현재의 피쳐 맵을 메모리에 저장하는 단계;
    (b) 상기 테스팅 장치가, 상기 메모리에 저장된 상기 테스트 영상에서의 이전 프레임에 대응되는 이전 이미지의 이전 피쳐 맵과, 상기 현재의 피쳐 맵을 상기 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 이전 피쳐 맵에 대응되는 현재의 이전 소프트 프리딕션 맵, 상기 현재의 피쳐 맵에 대응되는 현재의 소프트 프리딕션 맵과 현재의 프리딕션 맵, 및 상기 현재의 피쳐 맵의 현재의 객체 밀도에 대응되는 현재의 어텐션 맵을 출력하도록 하며, 상기 현재의 소프트 프리딕션 맵을 상기 메모리에 저장하고, 상기 현재의 피쳐 맵 과 상기 현재의 어텐션 맵을 상기 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 컨케티네이트하여 현재의 어텐셔널 피쳐 맵을 출력하도록 하며, 상기 현재의 어텐셔널 피쳐 맵을 상기 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 현재의 어텐셔널 피쳐 맵 상의 현재의 객체들에 대응되는 현재의 후보 박스들을 출력하도록 하고, 상기 현재의 어텐셔널 피쳐 맵과 상기 현재의 후보 박스들을 상기 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 현재의 어텐셔널 피쳐 맵 상에서 상기 현재의 후보 박스들 각각에 대응되는 영역들을 풀링하여 현재의 풀드 피쳐 맵들을 생성하도록 하고, 상기 현재의 풀드 피쳐 맵들을 상기 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 현재의 풀드 피쳐 맵들을 학습 연산하여 상기 현재의 후보 박스들 각각에 대응되는 현재의 객체 검출 정보들을 생성하도록 하는 단계; 및
    (c) 상기 테스팅 장치가, 상기 현재의 프리딕션 맵과 상기 현재의 후보 박스들을 바이너리화한 현재의 바이너리 맵을 참조하여 생성한 현재의 교차 엔트로피 손실과, 상기 메모리에 저장된 상기 테스트 영상에서의 상기 이전 프레임에 대응되는 상기 이전 이미지의 이전 소프트 프리딕션 맵과 상기 현재의 이전 소프트 프리딕션 맵을 참조하여 생성한 디스틸레익션 로스를 이용하여 상기 어텐션 네트워크를 학습시키는 단계;
    를 포함하는 방법.
  6. 제 5항에 있어서,
    상기 (b) 단계에서,
    상기 테스팅 장치는, 상기 어텐션 네트워크로 하여금, 상기 이전 피쳐 맵과 상기 현재의 피쳐 맵 각각을 적어도 한 번 컨볼루션 연산하여 이전 제1 서브 피쳐 맵과 현재의 제1 서브 피쳐 맵을 각각 생성하도록 하고, 상기 이전 제1 서브 피쳐 맵과 상기 현재의 제1 서브 피쳐 맵 각각을 1x1 컨볼루션 연산하여 상기 현재의 피쳐 맵과 채널 개수가 동일한 채널을 가지는 이전 제2 피쳐 맵과 현재의 제2 서브 피쳐 맵을 각각 생성하도록 하며, 상기 현재의 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 어텐션 맵을 생성하도록 하고, 상기 이전 제2 서브 피쳐 맵과 현재의 제2 서브 피쳐 맵 각각에 ReLU 함수를 적용한 다음 1x1 컨볼루션 연산하여 하나의 채널을 가지는 이전 제3 서브 피쳐 맵과 현재의 제3 서브 피쳐 맵을 각각 생성하도록 하며, 상기 현재의 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 프리딕션 맵을 생성하도록 하고, 상기 이전 제3 서브 피쳐 맵과 상기 현재의 제3 서브 피쳐 맵 각각에 소프트 시그모이드 함수를 적용하여 상기 현재의 이전 소프트 피쳐 맵과 상기 현재의 소프트 프리딕션 맵을 생성하도록 하는 방법.
  7. 제6항에 있어서,
    상기 소프트 시그모이드 함수는 입력값을 기설정된 하이퍼 파라미터로 나눈 값을 상기 시그모이드 함수에 입력하는 활성화 함수인 방법.
  8. 제 5항에 있어서,
    상기 (b) 단계에서,
    상기 테스팅 장치는, 상기 컨케티네이션 레이어로 하여금, 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 성분끼리의 곱을 하여 현재의 중간의 어텐션 맵을 생성하도록 하며, 상기 현재의 피쳐 맵과 상기 현재의 중간의 어텐션 맵을 성분끼리의 합을 하여 상기 현재의 어텐셔널 피쳐 맵피처맵을 생성하도록 하는 방법.
  9. 제5항에 있어서,
    상기 테스팅 장치는, 상기 현재의 후보 박스들을 바이너리 변환기에 입력하여 상기 바이너리 변환기로 하여금 상기 현재의 후보 박스들을 바이너리화한 다음, 상기 현재의 피쳐 맵의 사이즈로 리사이즈하여 상기 현재의 바이너리 맵을 생성하도록 하는 방법.
  10. 어텐션 맵을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습시키는 학습 장치에 있어서,
    인스트럭션들을 저장하는 하나 이상의 메모리; 및
    상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되,
    (I) 상기 프로세서가, 학습 이미지를 피쳐 추출 네트워크에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵을 출력하도록 하고, 상기 학습용 피쳐 맵을 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하며, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵을 출력하도록 하는 프로세스; (II) 상기 프로세서가, 상기 학습용 어텐셔널 피쳐 맵을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하고, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵들을 생성하도록 하며, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하는 프로세스; 및 (III) 상기 프로세서가, (i) 상기 학습용 객체 검출 정보들과 객체 원본 정답을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, (ii) 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 (iii) 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리화한 학습용 바이너리 맵을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행하는 프로세스를 수행하는 학습 장치.
  11. 제 10항에 있어서,
    상기 (I) 프로세스에서,
    상기 프로세서가, 상기 어텐션 네트워크로 하여금, 상기 학습용 피쳐 맵을 적어도 한 번 컨볼루션 연산하여 학습용 제1 서브 피쳐 맵을 생성하도록 하고, 상기 학습용 제1 서브 피쳐 맵을 1x1 컨볼루션 연산하여 상기 학습용 피쳐 맵과 동일한 채널을 가지는 학습용 제2 서브 피쳐 맵을 생성하도록 하며, 상기 학습용 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 어텐션 맵을 생성하도록 하고, 상기 학습용 제2 서브 피쳐 맵에 ReLU 함수를 적용한 다음 1x1 컨볼루션 연산하여 하나의 채널을 가지는 학습용 제3 서브 피쳐 맵을 생성하도록 하며, 상기 학습용 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 학습용 프리딕션 맵을 생성하도록 하는 학습 장치.
  12. 제10항에 있어서,
    상기 (I) 프로세스에서,
    상기 프로세서가, 상기 컨케티네이션 레이어로 하여금, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 성분끼리의 곱을 하여 학습용 중간의 어텐션 맵을 생성하도록 하며, 상기 학습용 피쳐 맵과 상기 중간의 어텐션 맵을 성분끼리의 합을 하여 상기 학습용 어텐셔널 피쳐 맵피처맵을 생성하도록 하는 학습 장치.
  13. 제10항에 있어서,
    상기 프로세서가, 상기 학습용 후보 박스들을 바이너리 변환기에 입력하여 상기 바이너리 변환기로 하여금 상기 학습용 후보 박스들을 바이너리화한 다음, 상기 학습용 피쳐 맵의 사이즈로 리사이즈하여 상기 학습용 바이너리 맵을 생성하도록 하는 학습 장치.
  14. 어텐션 맵을 이용하여 이미지 상의 객체를 검출하는 객체 검출 네트워크를 테스트하는 테스트 장치에 있어서,
    인스트럭션들을 저장하는 하나 이상의 메모리; 및
    상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되,
    (I) 학습 장치에 의해, 학습 이미지를 피쳐 추출 네트워크에 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 학습 이미지를 적어도 한 번 컨볼루션 연산하여 학습용 피쳐 맵을 출력하도록 하며, 상기 학습용 피쳐 맵을 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 학습용 피쳐 맵에 대응되는 학습용 프리딕션 맵 및 상기 학습용 피쳐 맵의 학습용 객체 밀도에 대응되는 학습용 어텐션 맵을 출력하도록 하고, 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 학습용 피쳐 맵과 상기 학습용 어텐션 맵을 컨케티네이트하여 학습용 어텐셔널 피쳐 맵을 출력하도록 하며, 상기 학습용 어텐션 피쳐 맵 을 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 학습용 어텐셔널 피쳐 맵 상의 학습용 객체들에 대응되는 학습용 후보 박스들을 출력하도록 하며, 상기 학습용 어텐셔널 피쳐 맵과 상기 학습용 후보 박스들을 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 학습용 어텐셔널 피쳐 맵 상에서 상기 학습용 후보 박스들 각각에 대응되는 영역들을 풀링하여 학습용 풀드 피쳐 맵들을 생성하도록 하고, 상기 학습용 풀드 피쳐 맵들을 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 학습용 풀드 피쳐 맵들을 학습 연산하여 상기 학습용 후보 박스들 각각에 대응되는 학습용 객체 검출 정보들을 생성하도록 하며, 상기 학습용 객체 검출 정보들과 객체 원본 정답을 참조하여 생성한 객체 로스를 이용하여 상기 검출 네트워크 및 상기 피쳐 추출 네트워크 중 적어도 하나를 학습시키는 프로세스, 상기 학습용 후보 박스들과 RPN 원본 정답을 참조하여 생성한 RPN 로스를 이용하여 상기 RPN을 학습시키는 프로세스 및 상기 학습용 프리딕션 맵과 상기 학습용 후보 박스들을 바이너리화한 학습용 바이너리 맵을 참조하여 생성한 교차 엔트로피 손실을 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스 중 적어도 하나를 수행한 상태에서, 테스트 영상이 획득되면, 상기 프로세서가, 상기 테스트 영상에서의 현재의 프레임에 대응되는 현재의 이미지를 상기 피쳐 추출 네트워크로 입력하여 상기 피쳐 추출 네트워크로 하여금 상기 현재의 이미지를 적어도 한번 컨볼루션 연산하여 현재의 피쳐 맵을 출력하도록 하며, 상기 현재의 피쳐 맵을 메모리에 저장하는 프로세스; (II) 상기 프로세서가, 상기 메모리에 저장된 상기 테스트 영상에서의 이전 프레임에 대응되는 이전 이미지의 이전 피쳐 맵과, 상기 현재의 피쳐 맵을 상기 어텐션 네트워크에 입력하여 상기 어텐션 네트워크로 하여금 상기 이전 피쳐 맵에 대응되는 현재의 이전 소프트 프리딕션 맵, 상기 현재의 피쳐 맵에 대응되는 현재의 소프트 프리딕션 맵과 현재의 프리딕션 맵, 및 상기 현재의 피쳐 맵의 현재의 객체 밀도에 대응되는 현재의 어텐션 맵을 출력하도록 하며, 상기 현재의 소프트 프리딕션 맵을 상기 메모리에 저장하고, 상기 현재의 피쳐 맵 과 상기 현재의 어텐션 맵을 상기 컨케티네이션 레이어에 입력하여 상기 컨케티네이션 레이어로 하여금 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 컨케티네이트하여 현재의 어텐셔널 피쳐 맵을 출력하도록 하며, 상기 현재의 어텐셔널 피쳐 맵을 상기 RPN(region proposal network)으로 입력하여 상기 RPN으로 하여금 상기 현재의 어텐셔널 피쳐 맵 상의 현재의 객체들에 대응되는 현재의 후보 박스들을 출력하도록 하고, 상기 현재의 어텐셔널 피쳐 맵과 상기 현재의 후보 박스들을 상기 ROI(region of interest) 풀링 레이어에 입력하여 상기 ROI 풀링 레이어로 하여금 상기 현재의 어텐셔널 피쳐 맵 상에서 상기 현재의 후보 박스들 각각에 대응되는 영역들을 풀링하여 현재의 풀드 피쳐 맵들을 생성하도록 하고, 상기 현재의 풀드 피쳐 맵들을 상기 검출 네트워크로 입력하여 상기 검출 네트워크로 하여금 상기 현재의 풀드 피쳐 맵들을 학습 연산하여 상기 현재의 후보 박스들 각각에 대응되는 현재의 객체 검출 정보들을 생성하도록 하는 프로세스; 및 (III) 상기 프로세서가, 상기 현재의 프리딕션 맵과 상기 현재의 후보 박스들을 바이너리화한 현재의 바이너리 맵을 참조하여 생성한 현재의 교차 엔트로피 손실과, 상기 메모리에 저장된 상기 테스트 영상에서의 상기 이전 프레임에 대응되는 상기 이전 이미지의 이전 소프트 프리딕션 맵과 상기 현재의 이전 소프트 프리딕션 맵을 참조하여 생성한 디스틸레익션 로스를 이용하여 상기 어텐션 네트워크를 학습시키는 프로세스를 수행하는 테스트 장치.
  15. 제 14항에 있어서,
    상기 (II) 프로세스에서, 상기 프로세서가, 상기 어텐션 네트워크로 하여금, 상기 이전 피쳐 맵과 상기 현재의 피쳐 맵 각각을 적어도 한 번 컨볼루션 연산하여 이전 제1 서브 피쳐 맵과 현재의 제1 서브 피쳐 맵을 각각 생성하도록 하고, 상기 이전 제1 서브 피쳐 맵과 상기 현재의 제1 서브 피쳐 맵 각각을 1x1 컨볼루션 연산하여 상기 현재의 피쳐 맵과 채널 개수가 동일한 채널을 가지는 이전 제2 피쳐 맵과 현재의 제2 서브 피쳐 맵을 각각 생성하도록 하며, 상기 현재의 제2 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 어텐션 맵을 생성하도록 하고, 상기 이전 제2 서브 피쳐 맵과 현재의 제2 서브 피쳐 맵 각각에 ReLU 함수를 적용한 다음 1x1 컨볼루션 연산하여 하나의 채널을 가지는 이전 제3 서브 피쳐 맵과 현재의 제3 서브 피쳐 맵을 각각 생성하도록 하며, 상기 현재의 제3 서브 피쳐 맵에 시그모이드 함수를 적용하여 상기 현재의 프리딕션 맵을 생성하도록 하고, 상기 이전 제3 서브 피쳐 맵과 상기 현재의 제3 서브 피쳐 맵 각각에 소프트 시그모이드 함수를 적용하여 상기 현재의 이전 소프트 피쳐 맵과 상기 현재의 소프트 프리딕션 맵을 생성하도록 하는 테스트 장치.
  16. 제15항에 있어서,
    상기 소프트 시그모이드 함수는 입력값을 기설정된 하이퍼 파라미터로 나눈 값을 상기 시그모이드 함수에 입력하는 활성화 함수인 테스트 장치.
  17. 제 14항에 있어서,
    상기 (II) 프로세스에서,
    상기 프로세서가, 상기 컨케티네이션 레이어로 하여금, 상기 현재의 피쳐 맵과 상기 현재의 어텐션 맵을 성분끼리의 곱을 하여 현재의 중간의 어텐션 맵을 생성하도록 하며, 상기 현재의 피쳐 맵과 상기 현재의 중간의 어텐션 맵을 성분끼리의 합을 하여 상기 현재의 어텐셔널 피쳐 맵피처맵을 생성하도록 하는 테스트 장치.
  18. 제14항에 있어서,
    상기 프로세서가, 상기 현재의 후보 박스들을 바이너리 변환기에 입력하여 상기 바이너리 변환기로 하여금 상기 현재의 후보 박스들을 바이너리화한 다음, 상기 현재의 피쳐 맵의 사이즈로 리사이즈하여 상기 현재의 바이너리 맵을 생성하도록 하는 테스트 장치.

KR1020217037929A 2020-05-13 2020-12-24 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습 및 테스트하는 방법 및 장치 KR20210143948A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063024018P 2020-05-13 2020-05-13
US63/024,018 2020-05-13
US17/112,413 US10970598B1 (en) 2020-05-13 2020-12-04 Learning method and learning device for training an object detection network by using attention maps and testing method and testing device using the same
US17/112,413 2020-12-04
PCT/KR2020/019160 WO2021230457A1 (en) 2020-05-13 2020-12-24 Learning method and learning device for training an object detection network by using attention maps and testing method and testing device using the same

Publications (1)

Publication Number Publication Date
KR20210143948A true KR20210143948A (ko) 2021-11-29

Family

ID=75275483

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217037929A KR20210143948A (ko) 2020-05-13 2020-12-24 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습 및 테스트하는 방법 및 장치

Country Status (6)

Country Link
US (1) US10970598B1 (ko)
EP (1) EP3910532B1 (ko)
JP (1) JP7233571B2 (ko)
KR (1) KR20210143948A (ko)
CN (1) CN115769229A (ko)
WO (1) WO2021230457A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110598840B (zh) * 2018-06-13 2023-04-18 富士通株式会社 知识迁移方法、信息处理设备以及存储介质
CN113379674B (zh) * 2021-04-28 2022-05-13 北京医准智能科技有限公司 一种医学图像的检测方法及装置
CN113221987A (zh) * 2021-04-30 2021-08-06 西北工业大学 一种基于交叉注意力机制的小样本目标检测方法
CN113592007B (zh) * 2021-08-05 2022-05-31 哈尔滨理工大学 一种基于知识蒸馏的不良图片识别系统、方法、计算机及存储介质
US11983240B2 (en) * 2021-11-16 2024-05-14 Huawei Technologies Co., Ltd. Meta few-shot class incremental learning
US11954837B2 (en) * 2021-12-08 2024-04-09 Black Sesame Technologies Inc. Image enhancement system based on nonlocal features
US11869212B1 (en) * 2023-02-07 2024-01-09 Deeping Source Inc. Method for training video object detection model using training dataset and learning device using the same
CN116612378A (zh) * 2023-05-22 2023-08-18 河南大学 一种基于ssd改进的不平衡数据及复杂背景下水下小目标检测方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202144B2 (en) * 2013-10-30 2015-12-01 Nec Laboratories America, Inc. Regionlets with shift invariant neural patterns for object detection
KR102463175B1 (ko) * 2017-09-04 2022-11-04 삼성전자주식회사 객체 인식 방법 및 장치
CN107861938B (zh) * 2017-09-21 2020-09-25 北京三快在线科技有限公司 一种poi文案生成方法及装置,电子设备
US9934440B1 (en) * 2017-10-04 2018-04-03 StradVision, Inc. Method for monitoring blind spot of monitoring vehicle and blind spot monitor using the same
US10223610B1 (en) * 2017-10-15 2019-03-05 International Business Machines Corporation System and method for detection and classification of findings in images
US11537871B2 (en) * 2018-04-25 2022-12-27 Fujitsu Limited Deep neural network training for application program generation
US10755099B2 (en) * 2018-11-13 2020-08-25 Adobe Inc. Object detection in images
US10395140B1 (en) * 2019-01-23 2019-08-27 StradVision, Inc. Learning method and learning device for object detector based on CNN using 1×1 convolution to be used for hardware optimization, and testing method and testing device using the same
US10410120B1 (en) * 2019-01-25 2019-09-10 StradVision, Inc. Learning method and testing method of object detector to be used for surveillance based on R-CNN capable of converting modes according to aspect ratios or scales of objects, and learning device and testing device using the same
CN110059672B (zh) * 2019-04-30 2022-06-14 福州大学 一种对显微镜细胞图像检测模型进行增类学习的方法
CN110751212B (zh) * 2019-10-21 2023-08-22 南京大学 一种移动设备上高效的细粒度图像识别方法

Also Published As

Publication number Publication date
WO2021230457A1 (en) 2021-11-18
EP3910532A1 (en) 2021-11-17
EP3910532B1 (en) 2023-11-08
CN115769229A (zh) 2023-03-07
US10970598B1 (en) 2021-04-06
JP2022539659A (ja) 2022-09-13
JP7233571B2 (ja) 2023-03-06
EP3910532C0 (en) 2023-11-08

Similar Documents

Publication Publication Date Title
KR20210143948A (ko) 어텐션 맵을 이용해 이미지 상의 객체를 검출하는 객체 검출 네트워크를 학습 및 테스트하는 방법 및 장치
JP6755849B2 (ja) 人工ニューラルネットワークのクラスに基づく枝刈り
CN108345827B (zh) 识别文档方向的方法、系统和神经网络
WO2022116322A1 (zh) 异常检测模型生成方法和装置、异常事件检测方法和装置
CN111027576B (zh) 基于协同显著性生成式对抗网络的协同显著性检测方法
CN111488873B (zh) 一种基于弱监督学习的字符级场景文字检测方法和装置
US20220156971A1 (en) Systems and methods for training a machine-learning-based monocular depth estimator
CN111950692B (zh) 用于改进的通用化的基于汉明距离的稳健输出编码
CN113920538B (zh) 目标检测方法、装置、设备、存储介质及计算机程序产品
US10540539B2 (en) Facial recognition encode analysis
Qamar Bhatti et al. Explicit content detection system: An approach towards a safe and ethical environment
CN111931732A (zh) 压缩视频的显著性目标检测方法、系统、设备及存储介质
CN116502174A (zh) 一种基于多模态深度学习的环境识别方法及装置
US11315038B2 (en) Method to measure similarity of datasets for given AI task
JP7172351B2 (ja) 文字列認識装置及び文字列認識プログラム
JP7233572B2 (ja) エクスプレイナブルセルフフォーカスされたアテンションを利用して行動予測を遂行する方法及び装置
CN110796003B (zh) 车道线检测方法、装置及电子设备
CN115810152A (zh) 基于图卷积的遥感图像变化检测方法、装置和计算机设备
JP2019086473A (ja) 学習プログラム、検出プログラム、学習方法、検出方法、学習装置および検出装置
CN113033397A (zh) 目标跟踪方法、装置、设备、介质及程序产品
US20240144634A1 (en) Method and apparatus with region of interest extraction
CN113807354A (zh) 图像语义分割方法、装置、设备和存储介质
US11954898B1 (en) Learning method and learning device for performing transfer learning on an object detector that has been trained to detect first object classes such that the object detector is able to detect second object classes, and testing method and testing device using the same
Zhang et al. Using visual cropping to enhance fine-detail question answering of blip-family models
US20240153130A1 (en) Method and apparatus with attention-based object analysis

Legal Events

Date Code Title Description
E902 Notification of reason for refusal