KR20200021626A - 객체 검출 모델 트레이닝 장치 및 방법 - Google Patents

객체 검출 모델 트레이닝 장치 및 방법 Download PDF

Info

Publication number
KR20200021626A
KR20200021626A KR1020180097170A KR20180097170A KR20200021626A KR 20200021626 A KR20200021626 A KR 20200021626A KR 1020180097170 A KR1020180097170 A KR 1020180097170A KR 20180097170 A KR20180097170 A KR 20180097170A KR 20200021626 A KR20200021626 A KR 20200021626A
Authority
KR
South Korea
Prior art keywords
bounding box
object detection
output
loss
box
Prior art date
Application number
KR1020180097170A
Other languages
English (en)
Other versions
KR102615196B1 (ko
Inventor
최희민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180097170A priority Critical patent/KR102615196B1/ko
Priority to CN201910695644.XA priority patent/CN110853036A/zh
Priority to US16/542,971 priority patent/US11450063B2/en
Publication of KR20200021626A publication Critical patent/KR20200021626A/ko
Application granted granted Critical
Publication of KR102615196B1 publication Critical patent/KR102615196B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural 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/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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • 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
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • 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/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/653Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Abstract

객체 검출 트레이닝 장치 및 방법이 제공된다. 일 실시예에 따른 객체 검출 트레이닝 장치는 객체 검출 모델에 기초하여 입력 이미지로부터 객체의 치수, 자세, 및 다양한 시점에서의 바운딩 박스를 결정할 수 있고, 각 임시 출력들에 대한 손실에 기초하여 객체 검출 모델을 트레이닝시킬 수 있다.

Description

객체 검출 모델 트레이닝 장치 및 방법{METHOD AND DEVICE TO TRAIN OBJECT DETECTION MODEL}
이하, 객체 검출 모델을 트레이닝시키는 기술이 제공된다.
최근 들어, 입력 패턴을 특정 그룹으로 분류하는 문제를 해결하는 방안으로써, 인간이 지니고 있는 효율적인 패턴 인식 방법을 실제 컴퓨터에 적용시키려는 연구가 활발히 진행되고 있다. 이러한 연구 중 하나로, 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 인공 뉴럴 네트워크(artificial neural network)에 대한 연구가 있다. 입력 패턴을 특정 그룹으로 분류하는 문제를 해결하기 위해, 인공 뉴럴 네트워크는 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여 인공 뉴럴 네트워크는 입력 패턴과 출력 패턴들 간의 사상(mapping)을 생성해낼 수 있는데, 이를 인공 뉴럴 네트워크가 학습 능력이 있다고 표현한다. 또한, 인공 뉴럴 네트워크는 학습된 결과에 기초하여 학습에 이용되지 않았던 입력 패턴에 대하여 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가지고 있다.
자율 주행 차량은 인공 뉴럴 네트워크를 이용하여 전방의 객체를 검출할 수도 있다.
일 실시예에 따른 객체 검출 트레이닝 방법은, 객체 검출 모델에 기초하여, 입력 이미지로부터 추출된 특징을 이용하여 객체의 치수 및 자세를 추정하는 단계; 상기 치수 및 상기 자세로부터 산출된 3차원 바운딩 박스를 제1 투영도에 투영함으로써 상기 객체에 대응하는 제1 출력 바운딩 박스를 결정하는 단계; 상기 산출된 3차원 박스를 제2 투영도에 투영함으로써 상기 객체에 대응하는 제2 출력 바운딩 박스를 결정하는 단계; 및 상기 치수, 상기 자세, 상기 제1 출력 바운딩 박스, 및 상기 제2 출력 바운딩 박스에 기초하여 상기 객체 검출 모델을 트레이닝시키는 단계를 포함할 수 있다.
상기 제1 출력 바운딩 박스를 결정하는 단계는, 상기 산출된 3차원 바운딩 박스를 조감 투영도(bird's eye view projection image)에 투영함으로써, 상기 객체에 대응하는 조감 바운딩 박스(bird's eye view bounding box)를 결정하는 단계를 포함할 수 있다.
상기 제2 출력 바운딩 박스를 결정하는 단계는, 상기 산출된 3차원 바운딩 박스를 투시 투영도(perspective view image)에 투영함으로써, 상기 객체에 대응하는 투시 바운딩 박스(perspective bounding box)를 결정하는 단계를 포함할 수 있다.
상기 객체의 치수 및 자세를 추정하는 단계는, 상기 객체 검출 모델에 기초하여, 상기 입력 이미지에서 검출된 객체에 대응하는 2차원 바운딩 박스(bounding box) 및 상기 2차원 바운딩 박스에 대응하는 크롭 이미지(crop image)로부터 특징을 추출하는 단계를 포함할 수 있다.
상기 트레이닝시키는 단계는, 상기 치수, 자세, 제1 출력 바운딩 박스, 및 제2 출력 바운딩 박스에 기초하여 손실을 산출하는 단계; 및 상기 산출된 손실에 기초하여 상기 객체 검출 모델을 트레이닝시키는 단계를 포함할 수 있다.
상기 손실을 산출하는 단계는, 상기 제1 출력 바운딩 박스 및 제1 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 상기 제1 출력 바운딩 박스에 대한 손실을 산출하는 단계; 및 상기 제2 출력 바운딩 박스 및 제2 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 상기 제2 출력 바운딩 박스에 대한 손실을 산출하는 단계를 포함할 수 있다.
상기 손실을 산출하는 단계는, 상기 객체에 대응하는 투시 바운딩 박스로부터 상기 객체의 전면을 지시하는 전면 박스(front face box) 및 상기 객체의 후면을 지시하는 후면 박스(rear face box)에 기초하여 대상 박스를 결정하는 단계; 및 상기 대상 박스 및 기준 박스 간의 중첩되는 정도에 기초하여 상기 투시 바운딩 박스에 대한 손실을 산출하는 단계를 포함할 수 있다.
상기 객체의 치수 및 자세를 추정하는 단계는, 상기 추출된 특징으로부터 위치 오프셋(location offset)을 더 추정하는 단계; 및 상기 치수 및 상기 자세로부터 초기 위치(initial location)를 추정하고, 상기 추정된 초기 위치에 상기 위치 오프셋을 적용함으로써 출력 위치(output location)를 결정하는 단계를 포함하고, 상기 손실을 산출하는 단계는, 상기 추정된 위치에 더 기초하여 손실을 산출하는 단계를 포함할 수 있다.
상기 객체의 치수 및 자세를 추정하는 단계는, 상기 추출된 특징으로부터 상기 추정된 치수 및 상기 자세에 대한 신뢰도를 추정하는 단계를 포함할 수 있다.
상기 객체의 치수 및 자세를 추정하는 단계는, 상기 치수로서 상기 객체의 폭, 너비, 및 높이를 추정하는 단계를 포함할 수 있다.
일 실시예에 따른 객체 검출 트레이닝 방법은, 객체 검출 모델에 기초하여, 입력 이미지 및 깊이 이미지로부터 추출된 특징을 이용하여 객체에 대응하는 3차원 바운딩 박스 및 상기 객체의 자세를 추정하는 단계; 상기 3차원 바운딩 박스를 투영도에 투영함으로써, 상기 객체에 대응하는 출력 바운딩 박스를 결정하는 단계; 및 상기 3차원 바운딩 박스, 상기 자세, 상기 출력 바운딩 박스에 기초하여 상기 객체 검출 모델을 트레이닝시키는 단계를 포함할 수 있다.
상기 출력 바운딩 박스를 결정하는 단계는, 상기 3차원 바운딩 박스를 투시 투영도(perspective view image)에 투영함으로써, 상기 객체에 대응하는 투시 바운딩 박스(perspective bounding box)를 결정하는 단계를 포함할 수 있다.
상기 3차원 바운딩 박스 및 상기 객체의 자세를 추정하는 단계는, 상기 입력 이미지 및 상기 깊이 이미지에서 영역 제안 네트워크(RPN, region proposal network)에 의해 산출된 영역에 기초하여 특징을 추출하는 단계를 포함할 수 있다.
상기 트레이닝시키는 단계는, 상기 3차원 바운딩 박스, 자세, 및 출력 바운딩 박스에 기초하여 손실을 산출하는 단계; 및 상기 산출된 손실에 기초하여 상기 객체 검출 모델을 트레이닝시키는 단계를 포함할 수 있다.
상기 손실을 산출하는 단계는, 상기 출력 바운딩 박스 및 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 상기 출력 바운딩 박스에 대한 손실을 산출하는 단계를 포함할 수 있다.
상기 손실을 산출하는 단계는, 상기 객체에 대응하는 투시 바운딩 박스로부터 상기 객체의 전면을 지시하는 전면 박스 및 상기 객체의 후면을 지시하는 후면 박스에 기초하여 대상 박스를 결정하는 단계; 및 상기 대상 박스 및 기준 박스 간의 중첩되는 정도에 기초하여 상기 투시 바운딩 박스에 대한 손실을 산출하는 단계를 포함할 수 있다.
상기 3차원 바운딩 박스 및 상기 객체의 자세를 추정하는 단계는, 상기 3차원 바운딩 박스를 정의하는 점(point)의 위치를 추정하는 단계를 포함할 수 있다.
상기 3차원 바운딩 박스 및 상기 객체의 자세를 추정하는 단계는, 조감 뷰(bird's eye view)에 대응하는 상기 깊이 이미지를 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 객체 검출 트레이닝 장치는, 객체 검출 모델을 저장하는 메모리; 및 상기 객체 검출 모델에 기초하여, 입력 이미지로부터 추출된 특징을 이용하여 객체의 치수 및 자세를 추정하고, 상기 치수 및 상기 자세로부터 산출된 3차원 바운딩 박스를 제1 투영도에 투영함으로써 상기 객체에 대응하는 제1 출력 바운딩 박스를 결정하며, 상기 산출된 3차원 박스를 제2 투영도에 투영함으로써 상기 객체에 대응하는 제2 출력 바운딩 박스를 결정하고, 상기 치수, 상기 자세, 상기 제1 출력 바운딩 박스, 및 상기 제2 출력 바운딩 박스에 기초하여 상기 객체 검출 모델을 트레이닝시키는 프로세서를 포함할 수 있다.
도 1은 객체 검출을 위한 바운딩 박스를 설명하는 도면이다.
도 2는 일 실시예에 따른 객체 검출 트레이닝 장치를 설명하는 블록도이다.
도 3은 일 실시예에 따른 객체 검출 트레이닝 방법을 설명하는 블록도이다.
도 4는 일 실시예에 따른 객체 검출 모델의 예시로서 뉴럴 네트워크를 설명하는 도면이다.
도 5는 일 실시예에 따른 객체 검출 트레이닝 과정을 설명하는 도면이다.
도 6은 일 실시예에 따른 투시 투영도 및 조감 투영도를 도시한 도면이다.
도 7은 일 실시예에 따른 IOU를 설명하는 도면이다.
도 8은 일 실시예에 따른 투시 바운딩 박스를 설명하는 도면이다.
도 9는 다른 일 실시예에 따른 객체 검출 트레이닝 장치를 설명하는 도면이다.
도 10은 다른 일 실시예에 따른 객체 검출 트레이닝 과정을 설명하는 도면이다.
도 11은 또 다른 일 실시예에 따른 객체 검출 트레이닝 방법을 설명하는 흐름도이다.
도 12는 또 다른 일 실시예에 따른 객체 검출 트레이닝 장치를 설명하는 도면이다.
도 13은 또 다른 일 실시예에 따른 특징 추출 과정을 설명하는 도면이다.
도 14는 또 다른 일 실시예에 따른 객체 검출 트레이닝 과정을 설명하는 도면이다.
도 15는 일 실시예에 따른 객체 검출 트레이닝 장치의 구성을 도시한 블록도이다.
도 16은 일 실시예에 따른 객체 검출 장치의 구성을 도시한 블록도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 객체 검출을 위한 바운딩 박스를 설명하는 도면이다.
일 실시예에 따른 객체 검출 장치는 객체 검출 모델에 기초하여 이미지(100)로부터 객체를 검출할 수 있다. 객체 검출 모델은 이미지(100)로부터 객체의 위치, 크기, 및 자세와 연관된 정보를 출력하도록 트레이닝된 모델을 나타낼 수 있고, 아래에서 상세히 설명한다.
객체 검출 장치는 센서를 통해 이미지(100)를 획득할 수 있다. 센서는 객체 검출 장치의 주변(예를 들어, 전방)에 존재하는 물체 및 배경 등으로부터 반사되는 임의의 신호(예를 들어, 빛 및 전자기파 등)의 세기를 센싱할 수 있다. 예를 들어, 객체 검출 장치는 센서를 통해 컬러 이미지, 적외선 이미지, 및 깊이 이미지 등을 획득할 수 있다. 컬러 이미지는 복수의 색상 채널 이미지들을 포함할 수 있고, 예를 들어, 가시광선 중 적색 파장에 대응하는 세기를 지시하는 적색 채널 이미지, 녹색 파장에 대응하는 세기를 지시하는 녹색 채널 이미지, 및 청색 파장에 대응하는 세기를 지시하는 청색 채널 이미지를 포함할 수 있다. 적외선 이미지는 센서에 수신된 적외선에 대응하는 세기를 나타낼 수 있다. 깊이 이미지는 임의의 타겟 지점까지의 깊이(예를 들어, 거리)를 나타내는 이미지일 수 있다. 깊이 이미지는 예를 들어, 라이다(LiDAR, Light Detection And Ranging) 센서에 의해 획득될 수 있다.
도 1은 객체 검출의 결과인 바운딩 박스를 설명하는 도면이다. 도 1에서는 2차원 이미지(예를 들어, 컬러 이미지 또는 흑백 이미지 등)로부터 검출된 객체를 지시하는 바운딩 박스를 설명한다.
객체 검출 장치는 이미지(100)로부터 3차원 공간 내에서 객체를 포함하는 바운딩 박스의 크기, 위치, 및 자세(pose)를 추정할 수 있다. 3차원 공간은 객체 검출 장치가 존재하는 물리적인 실제 환경을 나타낼 수 있다. 예를 들어, 객체 검출 장치가 차량에 탑재된 경우, 3차원 공간은 차량 주변 공간을 나타낼 수 있다.
바운딩 박스는 객체를 포함하는 박스를 나타낼 수 있다. 도 1에 도시된 바운딩 박스는 임의의 형태(예를 들어, 직육면체)를 가지는 3차원 바운딩 박스(110)로서, 3차원 공간에서 객체가 차지하는 공간을 포함하는 박스를 나타낼 수 있다. 예를 들어, 3차원 바운딩 박스(110)의 각 면(face)은 객체의 일부와 접하면서, 해당 3차원 바운딩 박스(110)의 크기가 최소화되도록 정의된 최소 바운딩 박스(minimum bounding box)일 수 있다. 객체가 차량인 경우, 차량의 앞부분은 3차원 바운딩 박스(110)의 전면(121)과 접할 수 있고, 차량의 뒷부분은 3차원 바운딩 박스(110)의 후면(122)과 접할 수 있다. 차량의 윗부분은 3차원 바운딩 박스(110)의 윗면과 접할 수 있고, 차량의 아래 부분은 3차원 바운딩 박스(110)의 아랫면과 접할 수 있다. 차량의 측면은 3차원 바운딩 박스(110)의 측면과 접할 수 있다.
예를 들어, 객체 검출 장치는 3차원 바운딩 박스(110)의 각 꼭지점의 3차원 공간 내 좌표를 객체 검출 모델에 기초하여 추정할 수 있다. 다른 예를 들어, 객체 검출 장치는 3차원 바운딩 박스(110)의 기준이 되는 지점(예를 들어, 중심점, 임의의 꼭지점 등), 치수(dimension), 및 자세를 추정할 수 있다. 치수는 객체의 높이(height), 폭(width), 및 길이(length) 등을 나타낼 수 있다. 자율 주행 또는 운전 보조에 있어서, 선행하는 객체는 주로 차량일 수 있고, 이미지(100)로부터 검출된 3차원 바운딩 박스(110)의 전면(121) 및 후면(122)이 주로 활용될 수 있다.
객체 검출 장치는 트레이닝이 완료된 객체 검출 모델에 기초하여, 이미지로부터 객체를 검출할 수 있다. 예를 들어, 객체 검출 장치는 객체에 대응하는 바운딩 박스(예를 들어, 3차원 바운딩 박스(110))를 결정할 수 있다. 객체 검출 트레이닝 장치는 객체 검출 모델을 트레이닝 데이터에 기초하여 트레이닝시킬 수 있다. 아래에서는 객체 검출 트레이닝 장치가 객체 검출 모델을 트레이닝하는 동작을 설명한다.
도 2는 일 실시예에 따른 객체 검출 트레이닝 장치를 설명하는 블록도이다.
객체 검출 트레이닝 장치(200)는 특징 추출기(210), 추정기(220), 제1 투영 계산기(231), 제2 투영 계산기(232), 손실 산출기(240), 및 트레이닝기(250)를 포함할 수 있다. 객체 검출 모델(270)은 특징 추출기(210), 추정기(220), 제1 투영 계산기(231), 및 제2 투영 계산기(232)를 포함할 수 있다.
특징 추출기(210)는 이미지로부터 특징을 추출할 수 있다. 예를 들어, 특징 추출기(210)는 하나 이상의 컨볼루션 레이어를 포함할 수 있다. 특징 추출기(210)는 바운딩 박스 및 크롭 이미지(201)로부터, 이미지가 추상화된 특징을 추출할 수 있다. 입력된 바운딩 박스는 2차원 바운딩 박스로서, 입력 이미지로부터 객체의 2차원 바운딩 박스를 검출하는 선행 동작을 통해 획득될 수 있다. 크롭 이미지는 입력 이미지에서 2차원 바운딩 박스에 대응하는 부분 이미지일 수 있다.
추정기(220)는 추출된 특징을 이용하여 객체의 치수 및 자세(202)를 추정할 수 있다. 추정기(220)는 추출된 특징으로부터 객체의 치수 및 자세(202)를 회귀 분석(regression analysis)을 통해 추정할 수 있다. 객체의 치수는 객체의 크기를 나타내는 정보로서, 예를 들어, 객체의 높이, 너비, 및 길이를 나타낼 수 있다. 추정기(220)는 객체의 치수로서, 객체를 포함하는 3차원 바운딩 박스의 높이, 너비, 및 길이를 추정할 수 있다. 또한, 추정기(220)는 객체의 자세로서, 객체를 포함하는 3차원 바운딩 박스의 자세를 추정할 수 있다. 3차원 바운딩 박스의 자세는 객체의 방향(orientation)을 지시하는 정보일 수 있고, 예를 들어, 센서로부터 해당 객체의 중심을 향하는 방향 및 객체의 진행 방향 간의 각도 차이 등으로 표현될 수 있다. 다만, 객체의 치수 및 자세는 예시로서, 상술한 바로 한정하는 것은 아니다.
본 명세서에서 언급되는 센서는 객체 검출 장치에 장착된 센서뿐만 아니라, 트레이닝 데이터의 수집을 위해 사용된 센서도 포함할 수 있다. 예를 들어, 위에서 언급된 센서로부터 해당 객체의 중심을 향하는 방향은, 입력 이미지가 획득되던 시점에서의 센서로부터, 객체의 중심을 향하는 방향을 나타낼 수 있다. 본 명세서의 나머지 부분에서 언급되는 센서와 연관된 위치 관계는, 트레이닝을 수행하는 시점이 아닌, 입력 이미지 또는 깊이 이미지의 획득 시점에서의 센서와 객체 간의 위치 관계를 나타낼 수 있다.
제1 투영 계산기(231)는 객체의 치수 및 자세(202)로부터 제1 투영도(281)(first projection image)를 계산할 수 있다. 예를 들어, 제1 투영 계산기(231)는 치수 및 자세로부터 산출된 3차원 바운딩 박스를 제1 투영도(281)에 투영함으로써 객체에 대응하는 제1 출력 바운딩 박스를 결정할 수 있다. 제1 투영도(281)는 제1 시점에서 객체를 관측(observe)한 경우의 투영도일 수 있다. 제1 시점은 예를 들어, 조감 뷰(bird's eye view)일 수 있고, 제1 투영도(281)는 조감 투영도(bird's eye view projection image)일 수 있다. 조감 투영도는 하기 도 6에서 보다 상세히 설명한다. 제1 출력 바운딩 박스는 제1 투영도(281)에서 객체에 대응하는 부분으로 결정된 2차원 바운딩 박스를 나타낼 수 있다.
예를 들어, 제1 투영 계산기(231)는 객체의 3차원 바운딩 박스를 2차원 이미지에 투영하였을 때 객체의 2차원 바운딩 박스(도 2에서 입력으로 주어진 바운딩 박스)에 타이트하게 피팅(fitting)되어야 한다는 사영 기하학(projective geometry)에 기초한 최적화 기법을 통해 3차원 바운딩 박스의 위치를 추정할 수 있다.
참고로, 사영 기하학(projective geometry)에 기초한 최적화 기법은 3차원 바운딩 박스의 8개 점들을 이용하여 2차원 바운딩 박스의 4개 선들을 결정하는 문제로 해석될 수 있다. 8개의 점들로 4개의 선들을 결정하는 조합은 최대 84개이다. 다만, 객체가 차량인 경우 도로면을 따라 차량이 배치되므로, 객체의 방향(orientation)에서 롤(roll), 피치(pitch), 요우잉(yaw) 중 롤 및 피치는 0으로 가정될 수 있고, 이 때 가능한 조합은 최대 64개이다. 따라서 입력 이미지로부터 검출된 2차원 바운딩 박스의 오차가 발생하면, 되면, 3차원 바운딩 박스에서의 오차가 증가할 수 있다.
제2 투영 계산기(232)는 객체의 3차원 바운딩 박스를 제2 투영도(282)에 투영함으로써 객체에 대응하는 제2 출력 바운딩 박스를 결정할 수 있다. 제2 투영도(282)는 제2 시점에서 객체를 관측(observe)한 경우의 투영도일 수 있다. 제2 시점은 예를 들어, 투시 뷰(perspective view)일 수 있고, 제2 투영도(282)는 투시 투영도(perspective projection image)일 수 있다. 투시 투영도는 하기 도 6에서 보다 상세히 설명한다. 제2 출력 바운딩 박스는 제2 투영도(282)에서 객체에 대응하는 부분으로 결정된 2차원 바운딩 박스를 나타낼 수 있다.
일 실시예에 따른 객체 검출 트레이닝 장치(200)는 제1 투영 계산기(231) 및 제2 투영 계산기(232)를 객체 검출 모델(270)에 통합하고, 제1 투영도(281) 및 제2 투영도(282) 등의 결과를 함께 고려하여 객체 검출 모델(270)을 트레이닝시킬 수 있다. 따라서 객체 검출 트레이닝 장치(200)는 객체의 3차원 정보와 투영된 객체의 물리적인 위치 관계를 객체 검출 모델(270)에 반영할 수 있게 되고, 결과적으로 3차원 바운딩 박스에서의 오차를 최소화할 수 있다.
손실 산출기(240)는 치수 및 자세(202), 제1 투영도(281), 및 제2 투영도(282)에 대응하는 손실을 산출할 수 있다. 예를 들어, 손실 산출기(240)는 치수에 대한 손실, 자세에 대한 손실, 제1 투영도(281)에 대한 손실, 및 제2 투영도(282)에 대한 손실을 개별적으로 산출하고, 손실들을 통합하여 객체 검출 모델(270)의 전체 손실을 계산할 수 있다.
트레이닝기(250)는 산출된 손실에 기초하여 객체 검출 모델(270)을 트레이닝시킬 수 있다. 예를 들어, 트레이닝기(250)는 전체 손실이 임의의 값에 수렴하도록 객체 검출 모델(270)의 파라미터를 업데이트할 수 있다. 트레이닝기(250)는 전체 손실을 나타내는 목적 함수의 설계에 따라, 전체 손실을 최소화하도록 파라미터를 업데이트할 수 있으나, 이로 한정하는 것은 아니다. 객체 검출 모델(270)의 구조 및 트레이닝은 하기 도 4에서 보다 상세히 설명한다.
도 3은 일 실시예에 따른 객체 검출 트레이닝 방법을 설명하는 블록도이다.
우선, 단계(310)에서 객체 검출 트레이닝 장치는 객체 검출 모델에 기초하여, 입력 이미지로부터 추출된 특징을 이용하여 객체의 치수 및 자세를 추정할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 객체 검출 모델에 기초하여, 입력 이미지에서 검출된 객체에 대응하는 2차원 바운딩 박스(bounding box) 및 2차원 바운딩 박스에 대응하는 크롭 이미지(crop image)로부터 특징을 추출할 수 있다.
그리고 단계(320)에서 객체 검출 트레이닝 장치는 치수 및 자세로부터 산출된 3차원 바운딩 박스를 제1 투영도에 투영함으로써 객체에 대응하는 제1 출력 바운딩 박스를 결정할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 산출된 3차원 바운딩 박스를 조감 투영도(bird's eye view projection image)에 투영함으로써, 객체에 대응하는 조감 바운딩 박스(bird's eye view bounding box)를 결정할 수 있다.
이어서 단계(330)에서 객체 검출 트레이닝 장치는 산출된 3차원 박스를 제2 투영도에 투영함으로써 객체에 대응하는 제2 출력 바운딩 박스를 결정할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 산출된 3차원 바운딩 박스를 투시 투영도(perspective view image)에 투영함으로써, 객체에 대응하는 투시 바운딩 박스(perspective bounding box)를 결정할 수 있다.
그리고 단계(340)에서 객체 검출 트레이닝 장치는 치수, 자세, 제1 출력 바운딩 박스, 및 제2 출력 바운딩 박스에 기초하여 객체 검출 모델을 트레이닝시킬 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 치수, 자세, 제1 출력 바운딩 박스, 및 제2 출력 바운딩 박스에 기초하여 손실을 산출할 수 있다. 객체 검출 트레이닝 장치는 산출된 손실에 기초하여 객체 검출 모델을 트레이닝시킬 수 있다.
도 4는 일 실시예에 따른 객체 검출 모델의 예시로서 뉴럴 네트워크를 설명하는 도면이다.
일 실시예에 따르면 객체 검출 모델은 뉴럴 네트워크(400)를 포함할 수 있다. 뉴럴 네트워크(400)에 기초하여, 객체를 검출하는 객체 검출 장치가 제안되고, 해당 뉴럴 네트워크(400)를 트레이닝시키는 방법 및 장치(이하, 객체 검출 트레이닝 장치)가 제안될 수 있다. 본 명세서에서, 인식(recognition)은 검증(verification) 및 식별(identification)을 포함할 수 있다. 검증은 입력 데이터가 참인지 거짓인지를 판단하는 동작을 나타낼 수 있고, 식별은 복수의 레이블들 중 입력 데이터가 지시하는 레이블(label)을 판단하는 동작을 나타낼 수 있다.
뉴럴 네트워크(400)의 개략적인 구조에 대해 하기와 같이 설명한다.
일 실시예에 따르면 뉴럴 네트워크(400)는 복수의 노드들로 구성되는 복수의 레이어들을 포함할 수 있다. 또한, 뉴럴 네트워크(400)는 복수의 레이어들의 각각에 포함된 복수의 노드들을 다른 레이어에 포함된 노드에 연결시키는 연결 가중치들을 포함할 수 있다. 표정 트레이닝 장치는 뉴럴 네트워크(400)를 메모리에 저장된 내부 데이터베이스로부터 획득하거나, 통신부를 통해 외부 서버로부터 수신하여 획득할 수 있다.
예를 들어, 뉴럴 네트워크(400)는 연결선(edge)으로 연결된 많은 수의 노드들을 이용하여 임의의 작업(task)를 수행하도록 설계된 모델을 나타낼 수 있다. 뉴럴 네트워크(400)는 하드웨어 또는 소프트웨어 및 하드웨어의 조합으로 구현될 수 있다. 뉴럴 네트워크(400)는 노드(node)를 포함할 수 있고, 노드들은 연결 가중치(connection weight)를 가지는 연결선을 통해 상호 연결될 수 있다. 연결 가중치는 연결선이 갖는 특정한 값으로, 시냅스 가중치(synapse weight) 또는 연결 강도라고 지칭될 수 있다.
뉴럴 네트워크(400)는 복수의 레이어들을 포함할 수 있다. 예를 들어, 뉴럴 네트워크(400)는 입력 레이어(input layer)(410), 히든 레이어(hidden layer)(420), 출력 레이어(output layer)(430)을 포함할 수 있다. 입력 레이어(410)는 트레이닝 또는 인식을 수행하기 위한 입력을 수신하여 히든 레이어(420)에 전달할 수 있고, 출력 레이어(430)는 히든 레이어(420)로부터 수신한 신호에 기초하여 뉴럴 네트워크(400)의 출력을 생성할 수 있다. 히든 레이어(420)는 입력 레이어(410)와 출력 레이어(430) 사이에 위치하고, 입력 레이어(410)를 통해 전달된 트레이닝 데이터의 트레이닝 입력을 예측하기 쉬운 값으로 변화시킬 수 있다.
입력 레이어(410), 히든 레이어(420) 및 출력 레이어(430)는 복수 개의 노드들을 포함할 수 있다. 입력 레이어(410)에 포함된 노드는 입력 노드(input node)라고 지칭되고, 히든 레이어(420)에 포함된 노드는 히든 노드(hidden node)라고 지칭되며, 출력 레이어(430)에 포함된 노드는 출력 노드(output node)라고 지칭될 수 있다.
입력 레이어(410)에 포함된 입력 노드들과 히든 레이어(420)에 포함된 히든 노드들은 연결 가중치를 가지는 연결선들을 통해 서로 연결될 수 있다. 히든 레이어(420)에 포함된 히든 노드들과 출력 레이어(430)에 포함된 출력 노드들은 연결 가중치를 가지는 연결선들을 통해 서로 연결될 수 있다.
도면에 도시하지 않았으나, 뉴럴 네트워크는 복수 개의 히든 레이어들을 포함할 수 있다. 복수 개의 히든 레이어들을 포함하는 뉴럴 네트워크는 깊은 뉴럴 네트워크(deep neural network)라고 지칭될 수 있다. 깊은 뉴럴 네트워크를 학습시키는 것은 깊은 학습(deep learning)이라고 지칭될 수 있다. 히든 레이어(420)에 제1 히든 레이어, 제2 히든 레이어, 및 제3 히든 레이어가 포함되는 경우를 가정하면, 제1 히든 레이어에 속한 히든 노드의 출력은 제2 히든 레이어에 속한 히든 노드들에 연결될 수 있다. 제2 히든 레이어에 속한 히든 노드의 출력은 제3 히든 레이어에 속한 히든 노드들에 연결될 수 있다.
예를 들어, 객체 검출 트레이닝 장치는, 각 히든 레이어에 이전 히든 레이어에 포함된 이전 히든 노드들의 출력들을 연결 가중치를 가지는 연결선들을 통해 입력할 수 있고, 이전 히든 노드들의 출력들에 연결 가중치가 적용된 값들 및 활성화 함수에 기초하여 히든 레이어에 포함된 히든 노드들의 출력을 생성할 수 있다. 일 예시에 따르면, 다음 히든 노드로 출력를 발화하기 위하여, 활성화 함수의 결과는 현재 히든 노드의 임계 값을 초과해야 한다. 이 경우, 노드는 입력 벡터들을 통하여 특정 임계 활성화 강도에 도달하기 전에는 다음 노드로 신호를 발화하지 않고, 비활성화 상태를 유지할 수 있다.
일 실시예에 따른 객체 검출 트레이닝 장치는 감독 학습(supervised learning)을 통해 뉴럴 네트워크(400)를 트레이닝시킬 수 있다. 객체 검출 트레이닝 장치는 하드웨어 모듈 또는 소프트웨어 모듈 및 하드웨어 모듈의 조합으로 구현될 수 있다. 감독 학습은 트레이닝 데이터의 트레이닝 입력 그에 대응하는 트레이닝 출력을 함께 뉴럴 네트워크(400)에 입력하고, 트레이닝 데이터의 트레이닝 출력에 대응하는 출력 데이터가 출력되도록 연결선들의 연결 가중치를 업데이트하는 기법이다. 트레이닝 데이터는 트레이닝 입력 및 트레이닝 출력의 쌍을 포함하는 데이터이다. 도 4는 뉴럴 네트워크의 구조를 노드 구조로 표현하였으나, 실시예들은 이러한 노드 구조에 국한되지 않는다. 메모리 스토리지에 뉴럴 네트워크를 저장하기 위하여 다양한 데이터 구조가 이용될 수 있다.
일 실시예에 따르면, 객체 검출 트레이닝 장치는 뉴럴 네트워크에 역전파되는 손실 및 뉴럴 네트워크에 포함된 노드들의 출력 값에 기초한 기울기 하강(gradient descent) 기법을 통하여, 노드들의 파라미터를 결정할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 손실 역 전파 학습(back-propagation learning)을 통해 노드들 사이의 연결 가중치를 업데이트할 수 있다. 손실 역 전파 학습은, 주어진 트레이닝 데이터에 대해 포워드 계산(forward computation)을 통하여 손실을 추정한 후, 출력 레이어(430)에서 시작하여 히든 레이어(420) 및 입력 레이어(410)를 향하는 역 방향으로 추정한 손실을 전파하면서, 손실을 줄이는 방향으로 연결 가중치를 업데이트하는 방법이다. 뉴럴 네트워크(400)의 처리는 입력 레이어(410), 히든 레이어(420), 및 출력 레이어(430)의 방향으로 진행되지만, 손실 역 전파 트레이닝에서 연결 가중치의 업데이트 방향은 출력 레이어(430), 히든 레이어(420), 및 입력 레이어(410)의 방향으로 진행될 수 있다. 하나 또는 그 이상의 프로세서는 뉴럴 네트워크를 원하는 방향으로 처리하기 위하여, 레이어 또는 일련의 계산 데이터를 저장하는 버퍼 메모리를 이용할 수 있다.
객체 검출 트레이닝 장치는 현재 설정된 연결 가중치들이 얼마나 최적에 가까운지를 측정하기 위한 목적 함수(objective function)를 정의하고, 목적 함수의 결과에 기초하여 연결 가중치들을 계속 변경하고, 트레이닝을 반복적으로 수행할 수 있다. 예를 들어, 목적 함수는 뉴럴 네트워크(400)가 트레이닝 데이터의 트레이닝 입력에 기초하여 실제 출력한 출력 값과 출력되기로 원하는 기대 값 사이의 손실을 계산하기 위한 손실 함수일 수 있다. 객체 검출 트레이닝 장치는 손실 함수의 값을 줄이는 방향으로 연결 가중치들을 업데이트할 수 있다. 손실 함수의 예시는 아래 도 5에서 설명한다.
도 5는 일 실시예에 따른 객체 검출 트레이닝 과정을 설명하는 도면이다.
객체 검출 모델(570)은 특징 추출기(510), 추정기들(521, 522, 523), 제1 투영 계산(531) 및 제2 투영 계산(532)을 포함할 수 있다.
특징 추출기(510)는 입력 이미지로부터 특징을 추출할 수 있다. 예를 들어, 특징 추출기(510)는 입력 이미지에 나타나는 객체에 대응하는 바운딩 박스 및 크롭 이미지로부터 특징을 추출할 수 있다. 크롭 이미지는 특징 추출기(510)의 입력 레이어에 대응하는 포맷으로 리사이징(resize)될 수도 있다. 특징 추출기(510)는 하나 이상의 컨볼루션 레이어를 포함할 수 있다.
또한, 특징 추출기(510)는 복수의 추정기들(521, 522, 523)로 추출된 특징을 제공할 수 있다. 복수의 추정기들(521, 522, 523)은 특징 추출기(510)를 공유할 수 있다. 복수의 추정기들(521, 522, 523)은 특징 추출기(510)에 연결된 분기 네트워크(branch network)로서, 서로 회귀 대상(regression target)이 다를 수 있다.
제1 추정기(521)는 특징 추출기(510)에 의해 추출된 특징으로부터 객체의 치수(501)를 추정할 수 있다. 제1 추정기(521)는 하나 이상의 완전 연결 레이어(FC layer, fully connected layer)를 포함할 수 있다.
제2 추정기(522)는 특징 추출기(510)에 의해 추출된 특징으로부터 객체의 자세(502)를 추정할 수 있다. 객체의 자세(502)는 객체의 방향에 대응하는 각도, 사인 값, 및 코사인 값 등으로 표현될 수 있다. 제2 추정기(522)는 하나 이상의 완전 연결 레이어 및 L2 norm 연산을 포함할 수 있다.
제3 추정기(523)는 추출된 특징으로부터 추정된 치수(501) 및 자세(502)에 대한 신뢰도(503)(confidence level)를 추정할 수 있다. 신뢰도(503)는 나머지 추정기들(521, 522)에 의해 추정된 치수(501) 및 자세(502)의 신뢰성(confidence)을 수치(numerical value)로 나타낸 점수(score)일 수 있다.
도 5에서는 특징 추출기(510)의 분기 네트워크로 제1 추정기(521) 내지 제3 추정기(523)를 도시하였으나, 이로 한정하는 것은 아니다. 또한, 제1 추정기(521) 내지 제3 추정기(523) 내부에 포함되는 레이어의 개수 및 종류도 한정되지 않는다.
객체 검출 트레이닝 장치는 제1 투영 계산(531)을 통해 객체의 치수(501) 및 자세(502)로부터 조감 투영도(581)를 획득할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는, 객체의 치수(501) 및 자세(502)로부터 객체를 포함하는 3차원 바운딩 박스를 획득할 수 있고, 획득된 3차원 바운딩 박스를 조감 투영도(581)에 투영할 수 있다. 객체 검출 트레이닝 장치는 조감 투영도(581)에 투영된 조감 바운딩 박스의 크기 및 위치 등을 결정할 수 있다. 제1 투영 계산(531)은 3차원 좌표를 제1 투영도 상의 2차원 좌표로 변환하는 행렬 연산을 나타낼 수 있으나, 이로 한정하는 것은 아니다.
객체 검출 트레이닝 장치는 제2 투영 계산(532)을 통해 객체의 치수(501) 및 자세(502)로부터 투시 투영도(582)를 획득할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 치수(501) 및 자세(502)로부터 3차원 바운딩 박스를 산출하고, 3차원 바운딩 박스를 투시 투영도(582)에 투영할 수 있다. 객체 검출 트레이닝 장치는 투시 투영도(582)에 투영된 투시 바운딩 박스의 크기 및 위치 등을 결정할 수 있다.
조감 바운딩 박스 및 투시 바운딩 박스는 2차원 이미지인 투영도에 나타나는 2차원 바운딩 박스를 나타낼 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 3차원 바운딩 박스의 각 지점의 3차원 좌표를 각 투영도의 2차원 좌표로 변환함으로써, 조감 바운딩 박스 및 투시 바운딩 박스를 결정할 수 있다.
객체 검출 트레이닝 장치는 객체 검출 모델(570)에 기초하여, 치수(501), 자세(502), 조감 투영도(581), 및 투시 투영도(582) 등의 출력을 입력 이미지로부터 산출할 수 있다. 객체 검출 모델(570)의 트레이닝이 완료되지 않은 경우, 상술한 출력은 임시 출력일 수 있다.
객체 검출 트레이닝 장치는 객체 검출 모델(570)에 기초하여 산출된 임시 출력에 기초하여, 객체 검출 모델(570)의 손실을 산출할 수 있다.
객체 검출 트레이닝 장치는 치수(501)에 대한 손실(543)로서, L2 손실을 산출할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 트레이닝 입력인 입력 이미지로부터 산출된 임시 치수(501)(temporary dimension) 및 트레이닝 출력인 기준 치수(501)(reference dimension) 간의 유클리드 거리(Euclidean distance)를 손실로 산출할 수 있다.
객체 검출 트레이닝 장치는 자세(502)에 대한 손실(544)로서, 코사인 손실(cosine loss)을 산출할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 트레이닝 입력인 입력 이미지로부터 추정된 객체의 자세(502)에 대응하는 임시 방향(temporary orientation) 및 트레이닝 출력인 기준 방향(reference orientation) 간의 각도 차이에 대응하는 코사인 손실을 산출할 수 있다.
객체 검출 트레이닝 장치는 신뢰도(503)에 대한 손실(545)로서 소프트맥스 손실을 산출할 수 있다.
객체 검출 트레이닝 장치는 조감 투영도(581)에 대한 손실(541)로서, IOU 손실(bev IoU loss)을 산출할 수 있다. 객체 검출 트레이닝 장치는 투시 투영도(582)에 대한 손실(542)에 대해서도 IOU 손실(persp IoU loss)을 산출할 수 있다. IOU(Intersection over union) 손실은 트레이닝 입력으로부터 산출된 임시 바운딩 박스 및 트레이닝 출력에 대응하는 기준 바운딩 박스 간의 유사도를 나타내는 손실로서, 아래 도 7 및 도 8에서 보다 상세히 설명한다.
객체 검출 트레이닝 장치는 상술한 임시 출력들의 각각에 대한 손실을 산출하고, 각 손실을 통합하여 객체 검출 모델(570)에 대한 전체 손실을 결정할 수 있다. 객체 검출 모델(570)은 전체 손실이 수렴할 때까지 특징 추출기(510) 및 추정기의 파라미터(예를 들어, 연결 가중치)를 업데이트할 수 있다.
전체 손실이 수렴된 객체 검출 모델(570)은 트레이닝이 완료된 모델(예를 들어, 뉴럴 네트워크)일 수 있고, 객체 검출 장치는 트레이닝이 완료된 객체 검출 모델(570)에 기초하여 객체 검출을 수행할 수 있다. 또한, 트레이닝이 완료된 후에도, 객체 검출 장치는 새로 수신되는 입력 이미지에 기초하여 객체 검출 모델(570)을 추가로 트레이닝시킬 수 있다. 예를 들어, 객체 검출 장치는 입력 이미지로부터 바운딩 박스에 대응하는 크롭 이미지를 트레이닝 입력으로 결정하고, 객체에 대응하는 바운딩 박스를 트레이닝 출력으로 결정하여, 객체 검출 모델(570)의 파라미터를 업데이트할 수 있다.
도 6은 일 실시예에 따른 투시 투영도 및 조감 투영도를 도시한 도면이다.
일 실시예에 따른 객체 검출 장치는 차량(690)에 탑재될 수 있다. 객체 검출 장치는 센서(691)를 포함할 수 있고, 센서(691)는 객체 검출 장치가 탑재된 기기의 전방에 대한 이미지(610)를 획득할 수 있다. 객체 검출 장치는 차량의 정확한 위치를 추정하기 위해 다양한 시점의 정보를 생성하거나 획득할 수 있다. 예를 들어, 객체 검출 장치는 정면에 대한 이미지로부터 조감 투영도(620) 및 투시 투영도(630)를 생성할 수 있다. 다른 예를 들어, 객체 검출 장치는 정면 뷰(front view)에 대한 컬러 이미지 및 조감 뷰에 대한 깊이 이미지에 기초하여, 조감 투영도(620) 및 투시 투영도(630)를 생성할 수 있다.
조감 투영도(620)는 센서(691)가 장착된 장치의 높이보다 높은 고도에서 아래를 관측하는 시점(예를 들어, 탑뷰)에 대응하는 투영도일 수 있다. 조감 투영도(620)는 센서(691)가 장착된 장치의 주변에 존재하는 객체에 대응하는 조감 바운딩 박스(621)를 포함할 수 있다. 도 6에서 조감 바운딩 박스(621)는 단일 박스로 도시되었으나, 이로 한정하는 것은 아니고, 복수의 객체가 존재하는 경우 복수의 박스가 검출될 수 있다.
투시 투영도(630)는 센서(691)가 장착된 장치의 높이에 대응하는 고도에서 장치의 진행 방향을 관측하는 시점에 대응하는 투영도일 수 있다. 투시 투영도(630)는 센서(691)가 장착된 장치의 진행 방향에 존재하는 객체에 대응하는 투시 바운딩 박스(631)를 포함할 수 있다. 투시 바운딩 박스(631)는 예를 들어, 2차원 바운딩 박스로서, 전면 박스 및 후면 박스를 포함할 수 있다.
일 실시예에 따른 객체 검출 트레이닝 장치는 도 6에서 설명된 조감 투영도(620)의 조감 바운딩 박스(621)에 대한 손실, 및 투시 투영도(630)의 투시 바운딩 박스(631)에 대한 손실에 기초하여 객체 검출 모델을 트레이닝시킴으로써, 객체의 크기 및 자세를 정확하게 추정하는 객체 검출 모델을 생성할 수 있다. 여러 시점에서의 객체 검출 결과가 객체 검출 모델에 반영되므로, 객체 검출 모델의 정확성이 개선될 수 있다.
본 명세서에서는 주로 조감 뷰 및 투시 뷰에서의 투영도 및 바운딩 박스를 설명하지만 이로 한정하는 것은 아니고, 다른 뷰에서의 투영도 및 바운딩 박스에 의한 손실에 기초하여 객체 검출 모델이 트레이닝될 수도 있다. 또한, 복수의 시점에서의 투영도 및 바운딩 박스에 의한 손실에 기초하여 객체 검출 모델이 트레이닝될 수도 있다.
도 7은 일 실시예에 따른 IOU를 설명하는 도면이다.
일 실시예에 따른 객체 검출 트레이닝 장치는 각 시점에 대응하는 투영도에서 검출된 객체에 대응하는 바운딩 박스에 대한 손실을 IOU에 기초하여 산출할 수 있다. IOU는 출력 바운딩 박스 및 기준 바운딩 박스 간의 중첩되는 정도를 나타내는 지표로서, 예를 들어, 두 영역의 교차 영역(730)(intersection region)의 넓이를 합 영역(union region)의 넓이로 나눈 값을 나타낼 수 있다.
예를 들어, 객체 검출 트레이닝 장치는 임의의 시점에 대응하는 투영도에 대하여, 입력 이미지로부터 객체에 대응하는 출력 바운딩 박스(710)를 결정할 수 있다. 객체 검출 트레이닝 장치는 출력 바운딩 박스(710)를 기준 바운딩 박스(720)와 비교할 수 있다. 기준 바운딩 박스(720)는, 트레이닝 입력인 입력 이미지와 쌍을 이루는 트레이닝 출력으로서, 기본 참 데이터(ground truth data)일 수 있다. 객체 검출 트레이닝 장치는 출력 바운딩 박스(710) 및 기준 바운딩 박스(720)의 교차 영역(730)의 넓이를 합 영역의 넓이로 나눈 값에 기초하여 IOU 손실을 결정할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 출력 바운딩 박스(710) 및 기준 바운딩 박스(720)의 교차 영역(730)의 넓이가 합 영역의 넓이에 수렴(converge)하도록, 객체 검출 모델의 파라미터를 업데이트할 수 있다. 예를 들어, IOU 값이 1에 가까울수록, 출력 바운딩 박스(710)가 기준 바운딩 박스(720)에 유사한 것을 나타낼 수 있다.
일 실시예에 따르면 객체 검출 트레이닝 장치는 제1 출력 바운딩 박스 및 제1 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 제1 출력 바운딩 박스에 대한 손실을 산출할 수 있다. 또한, 객체 검출 트레이닝 장치는 제2 출력 바운딩 박스 및 제2 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 제2 출력 바운딩 박스에 대한 손실을 산출할 수 있다. 다만, 제1 출력 바운딩 박스 및 제2 출력 바운딩 박스만을 임시 출력으로 한정하는 것은 아니고, 하나 이상의 출력 바운딩 박스(710)가 손실을 산출하는데 사용될 수도 있다.
도 8은 일 실시예에 따른 투시 바운딩 박스를 설명하는 도면이다.
일 실시예에 따른 투시 바운딩 박스는 2차원 바운딩 박스로서 전면 박스(810) 및 후면 박스(820)를 포함할 수 있다. 투시 바운딩 박스는 투시 뷰에 대응하는 투시 투영도에 3차원 바운딩 박스가 투영된 박스를 나타낼 수 있다. 예를 들어, 투시 바운딩 박스는 객체에 대응하는 3차원 바운딩 박스의 각 3차원 좌표가 투시 투영도의 2차원 좌표로 변환된 박스를 나타낼 수 있다. 예를 들어, 투시 바운딩 박스의 전면 박스(810)는 3차원 바운딩 박스에서 전면에 대응하는 4개 지점의 3차원 좌표가 투시 투영도 상의 2차원 좌표로 변환된 박스를 나타낼 수 있다. 투시 바운딩 박스의 후면 박스(820)는 3차원 바운딩 박스에서 후면에 대응하는 4개 지점의 3차원 좌표가 투시 투영도 상의 2차원 좌표로 변환된 박스를 나타낼 수 있다.
객체 검출 트레이닝 장치는 투시 바운딩 박스에 대한 손실을 산출하기 위하여, IOU 산출의 기준이 되는 새로운 박스를 정의할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 제2 투영 계산기에 의해 획득된, 객체에 대응하는 투시 바운딩 박스로부터 객체의 전면을 지시하는 전면 박스(front face box)(810) 및 객체의 후면을 지시하는 후면 박스(rear face box)(820)에 기초하여 대상 박스(830)를 결정할 수 있다. 객체 검출 트레이닝 장치는 전면 박스(810) 및 후면 박스(820)를 포함하면서, 최소의 영역을 가지는 박스를 대상 박스(830)로 결정할 수 있다. 대상 박스(830)는 도 7에서 상술한 출력 바운딩 박스로서 사용될 수 있다.
따라서 객체 검출 트레이닝 장치는 대상 박스(830) 및 기준 박스 간의 중첩되는 정도에 기초하여 투시 바운딩 박스에 대한 손실을 산출할 수 있다.
도 9는 다른 일 실시예에 따른 객체 검출 트레이닝 장치를 설명하는 도면이다.
객체 검출 트레이닝 장치(900)는 도 2에서 설명된 구조에 더하여, 위치 결정기(933)를 더 포함할 수 있다. 따라서 객체 검출 모델(970)은 위치를 결정하는 분기 네트워크를 추가적으로 더 포함할 수 있다.
특징 추출기(910)는 바운딩 박스 및 크롭 이미지(901)로부터, 추상화된 특징을 추출할 수 있다. 추정기(920)는 추출된 특징으로부터 객체의 치수 및 자세(902)를 추정할 수 있다. 제1 투영 계산기(931)는 치수 및 자세(902)로부터 제1 투영도(981)를 결정할 수 있다. 제2 투영 계산기(932)는 치수 및 자세(902)로부터 제2 투영도(982)를 결정할 수 있다.
위치 결정기(933)는 추출된 특징, 객체의 치수 및 자세(902)로부터 객체의 위치(location)를 결정할 수 있다. 예를 들어, 위치 결정기(933)는 센서로부터 객체까지의 상대적 거리를 결정할 수 있다. 위치 결정기(933)는 추출된 특징으로부터 위치 오프셋을 추정할 수 있다. 위치 오프셋은 초기 위치에 대해 예측된 오차를 나타내는 오프셋일 수 있다. 위치 결정기(933)는 치수 및 자세로부터 초기 위치를 추정할 수 있다. 위치 결정기(933)는 초기 위치에 위치 오프셋을 적용함으로써 출력 위치를 결정할 수 있다. 따라서, 위치 결정기(933)는 객체의 치수 및 자세로부터 추정된 초기 위치 결과를 보정함으로써, 보다 정확한 객체의 위치를 결정할 수 있다.
손실 산출기(940)는 치수 및 자세(902), 제1 투영도(981), 제2 투영도(982), 및 출력 위치에 대응하는 손실을 산출할 수 있다.
트레이닝기(950)는 산출된 손실에 기초하여 객체 검출 모델(970)을 트레이닝시킬 수 있다. 예를 들어, 트레이닝기(950)는 산출된 손실이 임의의 값으로 수렴하도록 객체 검출 모델(970)의 파라미터를 업데이트할 수 있다.
도 10은 다른 일 실시예에 따른 객체 검출 트레이닝 과정을 설명하는 도면이다.
객체 검출 모델(1070)은 도 5와 유사하게, 특징 추출기(1010), 추정기들(1021, 1022, 1023), 제1 투영 계산(1031), 제2 투영 계산(1032)을 포함하고, 더 나아가 위치 추정기(1024)를 더 포함할 수 있다.
특징 추출기(1010)는 입력 이미지에 나타나는 객체에 대응하는 바운딩 박스 및 크롭 이미지로부터 특징을 추출할 수 있다. 특징 추출기(1010)는 하나 이상의 컨볼루션 레이어를 포함할 수 있다. 특징 추출기(1010)는 복수의 추정기들 및 위치 추정기(1024)와 같은 분기 네트워크와 연결될 수 있고, 각 분기 네트워크는 회귀 대상이 서로 상이할 수 있다.
제1 추정기(1021)는 특징 추정기에 의해 추출된 특징으로부터 객체의 치수(1001)를 추정할 수 있고, 완전 연결 레이어를 포함할 수 있다. 제2 추정기(1022)는 추출된 특징으로부터 객체의 자세(1002)를 추정할 수 있고, 완전 연결 레이어 및 L2 norm 연산을 포함할 수 있다. 제3 추정기(1023)는 추출된 특징으로부터 치수(1001) 및 자세(1002)에 대한 신뢰도(1003)를 추정할 수 있고 완전 연결 레이어를 포함할 수 있다.
객체 검출 트레이닝 장치는 치수(1001) 및 자세(1002)로부터 제1 투영 계산(1031)을 통해 조감 투영도(1081)를 획득할 수 있고, 제2 투영 계산(1032)을 통해 투시 투영도(1082)를 획득할 수 있다.
위치 추정기(1024)는 추출된 특징으로부터 위치 오프셋(1004)을 추정할 수 있다. 객체 검출 트레이닝 장치는 객체의 치수(1001) 및 자세(1002)로부터 초기 위치를 추정하고, 초기 위치에 위치 오프셋(1004)을 적용하여 출력 위치(1084)를 결정할 수 있다.
객체 검출 트레이닝 장치는 객체 검출 모델(1070)에 기초하여 치수(1001), 자세(1002), 조감 투영도(1081), 투시 투영도(1082), 및 출력 위치(1084) 등의 임시 출력을 입력 이미지로부터 산출할 수 있다. 객체 검출 트레이닝 장치는 각 임시 출력에 대한 손실을 개별적으로 산출하고, 손실들을 통합하여 전체 손실을 결정할 수 있다.
객체 검출 트레이닝 장치는 조감 투영도(1081)에 대한 손실(1041)로서 IOU 손실, 투시 투영도(1082)에 대한 손실(1042)로서 IOU 손실, 치수(1001)에 대한 손실(1043)로서 L2 손실, 자세(1002)에 대한 손실(1044)로서 코사인 손실, 신뢰도(1003)에 대한 손실(1045)로서 소프트맥스 손실, 출력 위치(1084)에 대한 손실(1046)로서 L1 또는 L2 손실을 산출할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 출력 위치(1084)에 대한 손실(1046)로서, 초기 위치에 위치 오프셋(1004)을 부가한 값과 기본 참 값 사이의 유클리드 거리를 산출할 수 있다.
객체 검출 트레이닝 장치는 객체 검출 모델(1070)의 전체 손실이 수렴할 때까지 특징 추출기(1010) 및 추정기의 파라미터(예를 들어, 연결 가중치)를 업데이트할 수 있다. 더 나아가, 객체 검출 트레이닝 장치는 트레이닝이 완료된 후에도, 새로운 입력 이미지의 획득에 응답하여 객체 검출 모델(1070)의 임시 출력을 산출할 수 있고, 임시 출력에 대한 손실이 수렴하도록 객체 검출 모델(1070)의 파라미터를 재업데이트할 수 있다.
따라서, 객체 검출 트레이닝 장치는 3차원 객체를 투영 이미지에 투영했을 때 객체의 크기, 자세, 및 위치에 의한 투영물의 모습에 대한 복합적인 영향을 객체 검출 모델(1070)에 트레이닝시킬 수 있다. 또한, 객체 검출 트레이닝 장치는 이산적인 값(discrete value)으로 추정된 초기 위치 값에, 위치 오프셋을 적용함으로써, 연속적인 값(continuous value)을 나타내는 출력 위치를 결정할 수 있다.
도 11은 또 다른 일 실시예에 따른 객체 검출 트레이닝 방법을 설명하는 흐름도이다.
우선, 단계(1110)에서 객체 검출 트레이닝 장치는 객체 검출 모델에 기초하여, 입력 이미지 및 깊이 이미지로부터 추출된 특징을 이용하여 객체에 대응하는 3차원 바운딩 박스 및 객체의 자세를 추정할 수 있다. 객체 검출 트레이닝 장치는 입력 이미지 및 깊이 이미지에서 영역 제안 네트워크(RPN, region proposal network)에 의해 산출된 영역에 기초하여 특징을 추출할 수 있다. 영역 제안 네트워크는 센서의 시야각에 대응하는 공간 내에서 객체가 존재할 것으로 예상되는 영역을 제안하는 네트워크로서, 하기 도 13에서 보다 상세히 설명한다.
그리고 단계(1120)에서 객체 검출 트레이닝 장치는 산출된 3차원 바운딩 박스를 투영도에 투영함으로써, 객체에 대응하는 출력 바운딩 박스를 결정할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 산출된 3차원 바운딩 박스를 투시 투영도(perspective view image)에 투영함으로써, 객체에 대응하는 투시 바운딩 박스(perspective bounding box)를 결정할 수 있다.
이어서 단계(1130)에서 객체 검출 트레이닝 장치는 3차원 바운딩 박스, 자세, 출력 바운딩 박스에 기초하여 특징 추출기 및 추정기를 트레이닝시킬 수 있다. 객체 검출 트레이닝 장치는 3차원 바운딩 박스, 자세, 및 출력 바운딩 박스에 기초하여 손실을 산출할 수 있다. 객체 검출 트레이닝 장치는 산출된 손실에 기초하여 객체 검출 모델을 트레이닝시킬 수 있다.
도 12는 또 다른 일 실시예에 따른 객체 검출 트레이닝 장치를 설명하는 도면이다.
객체 검출 트레이닝 장치(1200)는 특징 추출기(1210), 추정기(1220), 투영 계산기(1230), 손실 산출기(1240), 및 트레이닝기(1250)를 포함할 수 있다. 객체 검출 모델(1270)은 특징 추출기(1210), 추정기(1220), 및 투영 계산기(1230)를 포함할 수 있다.
특징 추출기(1210)는 입력 이미지 및 깊이 이미지(1201)로부터 특징을 추출할 수 있다. 입력 이미지는 예를 들어, 카메라 센서에 기초하여 획득된 컬러 이미지를 나타낼 수 있다. 깊이 이미지는 예를 들어, 라이다 센서에 기초하여 획득된 각 픽셀에 대응하는 타겟 지점까지의 거리를 나타내는 이미지일 수 있다. 깊이 이미지는 조감 뷰(bird's eye view)에 대응하는 이미지일 수 있다. 특징 추출기(1210)는 아래 도 13에서 보다 상세히 설명한다.
추정기(1220)는 추출된 특징으로부터 객체에 대응하는 3차원 바운딩 박스 및 자세(1202)를 추정할 수 있다. 예를 들어, 추정기(1220)는 입력 이미지 및 깊이 이미지(1201)로부터 추출된 특징에 기초하여 3차원 바운딩 박스를 정의하는 점(point)의 위치(예를 들어, 각 점의 3차원 좌표)를 추정할 수 있다.
투영 계산기(1230)는 3차원 바운딩 박스를 임의의 시점으로 투영함으로써 투영도(1280)를 결정할 수 있다. 투영 계산기(1230)는 예를 들어, 3차원 바운딩 박스를 투시 뷰에 대응하는 투시 투영도(1280)에 투영함으로써 투시 바운딩 박스를 결정할 수 있다. 투영 계산기(1230)는 예를 들어, 3차원 바운딩 박스의 각 3차원 지점을 투시 투영도(1280) 상의 2차원 지점으로 변환하는 행렬 연산을 포함할 수 있다.
손실 산출기(1240)는 3차원 바운딩 박스 및 자세(1202) 및 투영도(1280)에 대응하는 손실을 산출할 수 있다.
트레이닝기(1250)는 산출된 손실에 기초하여 객체 검출 모델(1270)을 트레이닝시킬 수 있다. 예를 들어, 트레이닝기(1250)는 산출된 손실이 수렴하도록 객체 검출 모델(1270)의 파라미터를 업데이트할 수 있다.
도 13은 또 다른 일 실시예에 따른 특징 추출 과정을 설명하는 도면이다.
도 13은 객체 검출 모델(1300)의 일부만 도시한 것으로서, 특징 추출기(1350) 및 3차원 바운딩 박스를 추정하는 추정기(1360)에 대응하는 분기 네트워크를 포함할 수 있다.
일 실시예에 따른 특징 추출기(1350)는 입력 이미지(1311) 및 깊이 이미지(1312)로부터 특징을 추출할 수 있다. 예를 들어, 특징 추출기(1350)는 영역 제안 네트워크(1330)를 포함할 수 있고, 영역 제안 네트워크(1330)에 의해 제안된 영역에 대응하는 특징을 추출할 수 있다.
예를 들어, 특징 추출기(1350)는 컨볼루션 레이어를 통해 입력 이미지(1311)로부터 입력 특징 맵(1321)(input feature map)을 산출할 수 있다. 특징 추출기(1350)는 컨볼루션 레이어를 통해 깊이 이미지(1312)로부터 깊이 특징 맵(1322)(depth feature map)을 산출할 수 있다. 영역 제안 네트워크(1330)는 입력 특징 맵(1321), 깊이 특징 맵(1322), 및 3차원 앵커 그리드(1313)(anchor grid)에 기초하여 검출된 객체가 존재할 확률이 높은 영역을 제안할 수 있다.
입력 특징 맵(1321)은, 입력 이미지(1311)의 시각적 특징이 추상화된 데이터를 나타낼 수 있다. 깊이 특징 맵(1322)은 깊이 이미지(1312)의 시각적 특징이 추상화된 데이터를 나타낼 수 있다.
3차원 앵커 그리드(1313)는 센서(예를 들어, 이미지 센서 및 라이다 센서 등)의 시야각에 대응하는 공간을 나타내는 그리드일 수 있다. 3차원 앵커 그리드(1313)는 미리 정한 해상도(resolution)(예를 들어, 0.1m)의 그리드일 수 있다. 3차원 앵커 그리드(1313)는 센서의 시야각에 대응하는 공간 내에서 객체를 검출하기 위해 설정된 앵커 박스(anchor box)를 포함할 수 있다. 앵커 박스는 센서의 시야각에 대응하는 공간 내에서 객체가 존재할 확률을 표현하기 위한 바운딩 박스 템블릿(bounding box template)일 수 있다. 앵커 박스는 3차원 바운딩 박스일 수 있다. 예를 들어, 앵커 박스는, 3차원 앵커 그리드(1313)에서 사용자가 객체의 존재 확률을 관측하고자 하는, 영역들에 배치될 수 있다. 앵커 박스의 형태, 크기, 개수, 및 자세 등은 설계에 따라 달라질 수 있다.
영역 제안 네트워크(1330)는, 입력 이미지(1311) 및 깊이 이미지(1312) 등에서 검출되는 객체가, 3차원 앵커 그리드(1313)에 배치된 복수의 앵커 박스들 중 임의의 앵커 박스에 포함될 확률을 산출할 수 있다. 영역 제안 네트워크(1330)는 도 13에서 컨볼루션 레이어, 크롭 및 리사이징 연산, 완전 연결 레이어, NMS(non-maximum suppression) 동작을 포함하는 것으로 도시되었으나, 이로 한정하는 것은 아니다. 또한, 영역 제안 네트워크(1330)는 3차원 앵커 그리드(1313) 중 객체가 존재할 확률이 높은 앵커 박스를 제안할 수 있다. 영역 제안 네트워크(1330)는 객체가 존재할 확률의 순서대로 상위 K개의 앵커 박스(1331)를 제안할 수 있다. 여기서, K는 1이상의 정수일 수 있다.
특징 추출기(1350)는 이미지 특징 맵으로부터 영역 제안 네트워크(1330)에 의해 제안된 상위 K개의 앵커 박스에 대응하는 부분을 크롭 및 리사이징할 수 있다. 또한, 특징 추출기(1350)는 깊이 특징 맵(1322)에서도, 영역 제안 네트워크(1330)에 의해 제안된 앵커 박스에 대응하는 부분을 크롭 및 리사이징할 수 있다. 특징 추출기(1350)는 이미지 특징 맵에서 크롭된 특징 및 깊이 특징 맵(1322)에서 크롭된 특징을 융합(fusion)함으로써 특징을 추출할 수 있다.
추정기(1360)는 완전 연결 레이어 및 NMS 동작을 포함할 수 있고, 특징 추출기(1350)에 의해 추출된 특징으로부터 객체에 대응하는 3차원 바운딩 박스(1340)의 위치 등을 추정할 수 있다. 참고로, 객체 검출 트레이닝 장치는, 추정된 3차원 바운딩 박스(1340)의 위치가 기본 참 박스(ground truth box)의 위치에 수렴하도록, 객체 검출 모델(1300)을 트레이닝시킬 수 있다.
일 실시예에 따른 객체 검출 트레이닝 장치는 조감 투영도에서 기본 참 3차원 박스 및 제안된 앵커 박스 간에 중첩된 정도에 기초하여, 3차원 앵커 그리드(1313)의 개별 앵커 박스를 포지티브(positive) 및 네거티브(negative)로 구분할 수 있다. 객체 검출 트레이닝 장치는, 조감 뷰에서 영역 제안 네트워크(1330)에 의해 제안된 앵커 박스 및 기본 참 박스 간의 중첩도에 기초하여, 영역 제안 네트워크(1330)를 트레이닝시킬 수 있다. 예를 들어, 객체 검출 트레이닝 장치는, 영역 제안 네트워크(1330)에 의해 제안된 앵커 박스 및 기본 참 박스 간의 중첩도가 제1 임계값보다 큰 경우, 해당 앵커 박스가 포지티브(예를 들어, 1)를 출력하도록 영역 제안 네트워크(1330)를 트레이닝시킬 수 있다. 객체 검출 트레이닝 장치는 영역 제안 네트워크(1330)에 의해 제안된 앵커 박스 및 기본 참 박스 간의 중첩도가 제2 임계값보다 작은 경우, 해당 앵커 박스가 네거티브(예를 들어, 0)를 출력하도록 영역 제안 네트워크(1330)를 트레이닝시킬 수 있다.
따라서, 객체 검출 트레이닝 장치는 조감 뷰 상에서 추정 박스 및 기본 참 박스 간의 중첩도뿐 아니라 투시 뷰 상에서 추정 박스 및 기본 참 박스 간의 중첩도를 함께 고려하여, 트레이닝 입력(예를 들어, 입력 이미지(1311) 및 깊이 이미지(1312))에 대한 트레이닝 출력으로서 앵커 박스들의 각각을 포지티브 및 네거티브로 분류할 수 있다. 객체 검출 트레이닝 장치는 입력 이미지(1311) 및 깊이 이미지(1312)로부터, 주어진 트레이닝 출력(예를 들어, 각 앵커 박스에 대해 포지티브 또는 네거티브를 출력)이 출력되도록 영역 제안 네트워크(1330)를 트레이닝시킬 수 있다. 객체 검출 트레이닝 장치는 3차원 앵커 그리드의 앵커 박스들 중 포지티브 및 네거티브를 정확히 분류함으로써, 불필요한 영역 제안을 감소시킬 수 있고, 연산량을 감소시킬 수 있다.
특징 추출기(1350)에 의해 추출된 특징은 아래 도 14에서 객체의 자세 또는 투시 투영도를 산출하는데 사용될 수 있다.
도 14는 또 다른 일 실시예에 따른 객체 검출 트레이닝 과정을 설명하는 도면이다.
객체 검출 모델(1470)은 특징 추출기(1410), 추정기들(1421, 1422), 및 투영 계산(1430)을 포함할 수 있다.
특징 추출기(1410)는 도 13에서 상술한 바와 같이 입력 이미지 및 깊이 이미지로부터 특징을 추출할 수 있다. 예를 들어, 특징 추출기(1410)는 센서의 시야각에 대응하는 공간 내에서 객체가 존재할 것으로 예측된 앵커 박스(예를 들어, 포지티브로 결정된 앵커 박스)에 대응하는 특징을 입력 이미지 및 깊이 이미지로부터 추출할 수 있다. 특징 추출기(1410)는 제1 추정기(1421) 및 제2 추정기(1422)와 같은 분기 네트워크와 연결될 수 있다.
제1 추정기(1421)는 특징 추출기(1410)에 의해 추출된 특징으로부터 3차원 바운딩 박스(1401)를 추정할 수 있다. 예를 들어, 제1 추정기(1421)는 객체에 대응하는 3차원 바운딩 박스(1401)의 각 지점들(예를 들어, 꼭짓점들)의 3차원 좌표를 회귀적으로 추정할 수 있다. 제1 추정기(1421)는 하나 이상의 완전 연결 레이어를 포함할 수 있다.
제2 추정기(1422)는 특징 추출기(1410)에 의해 추출된 특징으로부터 각도(1402)를 추정할 수 있다. 예를 들어, 제2 추정기(1422)는 객체의 방향에 대응하는 각도(1402)를 추정할 수 있다. 제2 추정기(1422)는 하나 이상의 완전 연결 레이어를 포함할 수 있다.
객체 검출 트레이닝 장치는 투영 계산(1430)을 통해 객체의 3차원 바운딩 박스(1401)로부터 투시 투영도(1480)를 획득할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 투시 투영도(1480)에 투영된 투시 바운딩 박스의 크기 및 위치 등을 결정할 수 있다. 투영 계산(1430)은 3차원 좌표를 투시 투영도(1480) 상의 2차원 좌표로 변환하는 행렬 연산을 포함할 수 있으나, 이로 한정하는 것은 아니다.
객체 검출 트레이닝 장치는 객체 검출 모델(1470)에 기초하여 3차원 바운딩 박스(1401), 각도(1402), 및 투시 투영도(1480) 등의 출력을 입력 이미지 및 깊이 이미지로부터 산출할 수 있다.
객체 검출 트레이닝 장치는 객체 검출 모델(1470)에 기초하여 산출된 상술한 임시 출력에 기초하여 객체 검출 모델(1470)의 전체 손실을 산출할 수 있다. 예를 들어, 객체 검출 트레이닝 장치는 3차원 바운딩 박스(1401)에 대한 손실(1441)로서 L1 손실을 산출할 수 있다. 객체 검출 트레이닝 장치는 각도(1402)에 대한 손실(1442)로서 L1 손실을 산출할 수 있다. 객체 검출 트레이닝 장치는 투시 투영도(1480)에 대한 손실(1443)로서 IOU 손실을 산출할 수 있다. 객체 검출 트레이닝 장치는 출력 바운딩 박스 및 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 출력 바운딩 박스에 대한 손실을 산출할 수 있다. IOU 손실은 도 7에서 상술하였으므로 설명을 생략한다.
객체 검출 트레이닝 장치는 상술한 임시 출력들의 각각에 대한 손실을 산출하고, 각 손실을 통합하여 객체 검출 모델(1470)에 대한 전체 손실을 결정할 수 있다. 객체 검출 모델(1470)은 전체 손실이 수렴할 때까지 특징 추출기(1410) 및 추정기의 파라미터(예를 들어, 연결 가중치)를 업데이트할 수 있다.
도 15는 일 실시예에 따른 객체 검출 트레이닝 장치의 구성을 도시한 블록도이다.
객체 검출 트레이닝 장치(1500)는 프로세서(1510) 및 메모리(1520)를 포함할 수 있다.
프로세서(1510)는 객체 검출 모델(1521)에 기초하여, 입력 이미지로부터 추출된 특징을 이용하여 객체의 치수 및 자세를 추정할 수 있다. 프로세서(1510)는 치수 및 자세로부터 산출된 3차원 바운딩 박스를 제1 투영도에 투영함으로써 객체에 대응하는 제1 출력 바운딩 박스를 결정할 수 있다. 프로세서(1510)는 산출된 3차원 박스를 제2 투영도에 투영함으로써 객체에 대응하는 제2 출력 바운딩 박스를 결정할 수 있다. 프로세서(1510)는 치수, 자세, 제1 출력 바운딩 박스, 및 제2 출력 바운딩 박스에 기초하여 객체 검출 모델(1521)을 트레이닝시킬 수 있다. 프로세서(1510)의 동작을 이로 한정하는 것은 아니고, 프로세서(1510)는 도 1 내지 도 14에서 설명한 적어도 하나의 동작들을 수행할 수 있다.
메모리(1520)는 객체 검출 모델(1521)을 저장할 수 있다. 객체 검출 모델(1521)은 트레이닝이 완료된 모델로서, 예를 들어, 도 5, 도 10, 또는 도 14에 도시된 모델일 수 있다. 객체 검출 모델(1521)의 파라미터는 트레이닝이 완료된 이후에도 프로세서(1510)에 의해 업데이트될 수도 있다.
메모리(1520)는 트레이닝 데이터(1522)를 더 포함할 수 있다. 트레이닝 데이터(1522)는 트레이닝 입력 및 트레이닝 출력의 쌍을 포함할 수 있다. 트레이닝 입력이 입력 이미지인 경우, 트레이닝 출력은 해당 이미지에 대해 주어지는 객체의 기본 참 바운딩 박스, 객체의 치수, 객체의 위치, 및 객체의 자세 등을 포함할 수 있다. 트레이닝 입력이 입력 이미지 및 깊이 이미지를 포함하는 경우, 트레이닝 출력은 기본 참 3차원 바운딩 박스 및 객체의 기본 참 자세 등을 포함할 수 있다.
도 16은 일 실시예에 따른 객체 검출 장치의 구성을 도시한 블록도이다.
객체 검출 장치(1600)는 이미지 획득부(1610), 프로세서(1620), 및 메모리(1630)를 포함할 수 있다.
이미지 획득부(1610)는 센서를 포함할 수 있다. 예를 들어, 센서는 카메라 센서 및 깊이 센서일 수 있다. 깊이 센서는 예를 들어, 라이다 센서일 수 있다. 객체 검출 장치(1600)가 차량에 탑재되는 경우, 이미지 센서는 차량의 전면부에 장착될 수 있고, 라이다 센서는 차량의 상단부에 장착될 수 있다.
프로세서(1620)는 객체 검출 모델(1631)에 기초하여 입력 이미지 및 깊이 이미지 중 적어도 하나로부터 전방에 존재하는 객체를 검출할 수 있다. 예를 들어, 프로세서(1620)는 도 5, 도 10, 또는 도 14에서 트레이닝이 완료된 객체 검출 모델(1631)에 기초하여, 객체에 대응하는 바운딩 박스의 위치 및 크기를 추정할 수 있다. 또한, 프로세서(1620)는 새로운 입력 이미지 및 새로운 깊이 이미지 중 적어도 하나의 획득에 응답하여, 획득된 이미지에 기초하여 객체 검출 모델(1631)을 재트레이닝시킬 수도 있다.
메모리(1630)는 객체 검출 모델(1631)을 저장할 수 있다. 예를 들어, 메모리(1630)는 트레이닝이 완료된 객체 검출 모델(1631)을 저장할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.  
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
1500: 객체 검출 트레이닝 장치
1510: 프로세서
1520: 메모리
1521: 객체 검출 모델
1522: 트레이닝 데이터

Claims (20)

  1. 객체 검출 트레이닝 방법에 있어서,
    객체 검출 모델에 기초하여, 입력 이미지로부터 추출된 특징을 이용하여 객체의 치수 및 자세를 추정하는 단계;
    상기 치수 및 상기 자세로부터 산출된 3차원 바운딩 박스를 제1 투영도에 투영함으로써 상기 객체에 대응하는 제1 출력 바운딩 박스를 결정하는 단계;
    상기 산출된 3차원 박스를 제2 투영도에 투영함으로써 상기 객체에 대응하는 제2 출력 바운딩 박스를 결정하는 단계; 및
    상기 치수, 상기 자세, 상기 제1 출력 바운딩 박스, 및 상기 제2 출력 바운딩 박스에 기초하여 상기 객체 검출 모델을 트레이닝시키는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  2. 제1항에 있어서,
    상기 제1 출력 바운딩 박스를 결정하는 단계는,
    상기 산출된 3차원 바운딩 박스를 조감 투영도(bird's eye view projection image)에 투영함으로써, 상기 객체에 대응하는 조감 바운딩 박스(bird's eye view bounding box)를 결정하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  3. 제1항에 있어서,
    상기 제2 출력 바운딩 박스를 결정하는 단계는,
    상기 산출된 3차원 바운딩 박스를 투시 투영도(perspective view image)에 투영함으로써, 상기 객체에 대응하는 투시 바운딩 박스(perspective bounding box)를 결정하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  4. 제1항에 있어서,
    상기 객체의 치수 및 자세를 추정하는 단계는,
    상기 객체 검출 모델에 기초하여, 상기 입력 이미지에서 검출된 객체에 대응하는 2차원 바운딩 박스(bounding box) 및 상기 2차원 바운딩 박스에 대응하는 크롭 이미지(crop image)로부터 특징을 추출하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  5. 제1항에 있어서,
    상기 트레이닝시키는 단계는,
    상기 치수, 자세, 제1 출력 바운딩 박스, 및 제2 출력 바운딩 박스에 기초하여 손실을 산출하는 단계; 및
    상기 산출된 손실에 기초하여 상기 객체 검출 모델을 트레이닝시키는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  6. 제5항에 있어서,
    상기 손실을 산출하는 단계는,
    상기 제1 출력 바운딩 박스 및 제1 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 상기 제1 출력 바운딩 박스에 대한 손실을 산출하는 단계; 및
    상기 제2 출력 바운딩 박스 및 제2 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 상기 제2 출력 바운딩 박스에 대한 손실을 산출하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  7. 제5항에 있어서,
    상기 손실을 산출하는 단계는,
    상기 객체에 대응하는 투시 바운딩 박스로부터 상기 객체의 전면을 지시하는 전면 박스(front face box) 및 상기 객체의 후면을 지시하는 후면 박스(rear face box)에 기초하여 대상 박스를 결정하는 단계; 및
    상기 대상 박스 및 기준 박스 간의 중첩되는 정도에 기초하여 상기 투시 바운딩 박스에 대한 손실을 산출하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  8. 제5항에 있어서,
    상기 객체의 치수 및 자세를 추정하는 단계는,
    상기 추출된 특징으로부터 위치 오프셋(location offset)을 더 추정하는 단계; 및
    상기 치수 및 상기 자세로부터 초기 위치(initial location)를 추정하고, 상기 추정된 초기 위치에 상기 위치 오프셋을 적용함으로써 출력 위치(output location)를 결정하는 단계
    를 포함하고,
    상기 손실을 산출하는 단계는,
    상기 추정된 위치에 더 기초하여 손실을 산출하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  9. 제1항에 있어서,
    상기 객체의 치수 및 자세를 추정하는 단계는,
    상기 추출된 특징으로부터 상기 추정된 치수 및 상기 자세에 대한 신뢰도를 추정하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  10. 제1항에 있어서,
    상기 객체의 치수 및 자세를 추정하는 단계는,
    상기 치수로서 상기 객체의 폭, 너비, 및 높이를 추정하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  11. 객체 검출 트레이닝 방법에 있어서,
    객체 검출 모델에 기초하여, 입력 이미지 및 깊이 이미지로부터 추출된 특징을 이용하여 객체에 대응하는 3차원 바운딩 박스 및 상기 객체의 자세를 추정하는 단계;
    상기 3차원 바운딩 박스를 투영도에 투영함으로써, 상기 객체에 대응하는 출력 바운딩 박스를 결정하는 단계; 및
    상기 3차원 바운딩 박스, 상기 자세, 상기 출력 바운딩 박스에 기초하여 상기 객체 검출 모델을 트레이닝시키는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  12. 제11항에 있어서,
    상기 출력 바운딩 박스를 결정하는 단계는,
    상기 3차원 바운딩 박스를 투시 투영도(perspective view image)에 투영함으로써, 상기 객체에 대응하는 투시 바운딩 박스(perspective bounding box)를 결정하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  13. 제11항에 있어서,
    상기 3차원 바운딩 박스 및 상기 객체의 자세를 추정하는 단계는,
    상기 입력 이미지 및 상기 깊이 이미지에서 영역 제안 네트워크(RPN, region proposal network)에 의해 산출된 영역에 기초하여 특징을 추출하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  14. 제11항에 있어서,
    상기 트레이닝시키는 단계는,
    상기 3차원 바운딩 박스, 자세, 및 출력 바운딩 박스에 기초하여 손실을 산출하는 단계; 및
    상기 산출된 손실에 기초하여 상기 객체 검출 모델을 트레이닝시키는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  15. 제14항에 있어서,
    상기 손실을 산출하는 단계는,
    상기 출력 바운딩 박스 및 기준 바운딩 박스 간의 중첩되는 정도에 기초하여 상기 출력 바운딩 박스에 대한 손실을 산출하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  16. 제14항에 있어서,
    상기 손실을 산출하는 단계는,
    상기 객체에 대응하는 투시 바운딩 박스로부터 상기 객체의 전면을 지시하는 전면 박스 및 상기 객체의 후면을 지시하는 후면 박스에 기초하여 대상 박스를 결정하는 단계; 및
    상기 대상 박스 및 기준 박스 간의 중첩되는 정도에 기초하여 상기 투시 바운딩 박스에 대한 손실을 산출하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  17. 제11항에 있어서,
    상기 3차원 바운딩 박스 및 상기 객체의 자세를 추정하는 단계는,
    상기 3차원 바운딩 박스를 정의하는 점(point)의 위치를 추정하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  18. 제11항에 있어서,
    상기 3차원 바운딩 박스 및 상기 객체의 자세를 추정하는 단계는,
    조감 뷰(bird's eye view)에 대응하는 상기 깊이 이미지를 획득하는 단계
    를 포함하는 객체 검출 트레이닝 방법.
  19. 제1항 내지 제18항 중 어느 한 항의 방법을 수행하기 위한 명령어를 포함하는 하나 이상의 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체.
  20. 객체 검출 트레이닝 장치에 있어서,
    객체 검출 모델을 저장하는 메모리; 및
    상기 객체 검출 모델에 기초하여, 입력 이미지로부터 추출된 특징을 이용하여 객체의 치수 및 자세를 추정하고, 상기 치수 및 상기 자세로부터 산출된 3차원 바운딩 박스를 제1 투영도에 투영함으로써 상기 객체에 대응하는 제1 출력 바운딩 박스를 결정하며, 상기 산출된 3차원 박스를 제2 투영도에 투영함으로써 상기 객체에 대응하는 제2 출력 바운딩 박스를 결정하고, 상기 치수, 상기 자세, 상기 제1 출력 바운딩 박스, 및 상기 제2 출력 바운딩 박스에 기초하여 상기 객체 검출 모델을 트레이닝시키는 프로세서
    를 포함하는 객체 검출 트레이닝 장치.
KR1020180097170A 2018-08-21 2018-08-21 객체 검출 모델 트레이닝 장치 및 방법 KR102615196B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180097170A KR102615196B1 (ko) 2018-08-21 2018-08-21 객체 검출 모델 트레이닝 장치 및 방법
CN201910695644.XA CN110853036A (zh) 2018-08-21 2019-07-30 用于训练对象检测模型的方法及设备
US16/542,971 US11450063B2 (en) 2018-08-21 2019-08-16 Method and apparatus for training object detection model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180097170A KR102615196B1 (ko) 2018-08-21 2018-08-21 객체 검출 모델 트레이닝 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200021626A true KR20200021626A (ko) 2020-03-02
KR102615196B1 KR102615196B1 (ko) 2023-12-18

Family

ID=69587296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180097170A KR102615196B1 (ko) 2018-08-21 2018-08-21 객체 검출 모델 트레이닝 장치 및 방법

Country Status (3)

Country Link
US (1) US11450063B2 (ko)
KR (1) KR102615196B1 (ko)
CN (1) CN110853036A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021225279A1 (en) * 2020-05-08 2021-11-11 StradVision, Inc. Method for explainable active learning, to be used for object detector, by using bayesian dual autoencoder and active learning device using the same
KR20210155142A (ko) * 2020-06-15 2021-12-22 주식회사 베이리스 딥러닝에 기반한 객체 검출 장치 및 그 방법
WO2022107925A1 (ko) * 2020-11-19 2022-05-27 한국전자기술연구원 딥러닝 객체 검출 처리 장치
KR20220140947A (ko) * 2021-04-12 2022-10-19 엔에이치엔클라우드 주식회사 이미지 기반 트레이닝 데이터 셋 생성 방법 및 시스템
KR20230132911A (ko) * 2022-03-10 2023-09-19 한국해양과학기술원 선박 운항 데이터 처리 장치, 방법 및 시스템

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11573574B2 (en) * 2018-08-30 2023-02-07 Canon Kabushiki Kaisha Information processing apparatus, information processing method, information processing system, and storage medium
US11010592B2 (en) * 2018-11-15 2021-05-18 Toyota Research Institute, Inc. System and method for lifting 3D representations from monocular images
US10776673B2 (en) * 2019-01-31 2020-09-15 StradVision, Inc. Learning method and learning device for sensor fusion to integrate information acquired by radar capable of distance estimation and information acquired by camera to thereby improve neural network for supporting autonomous driving, and testing method and testing device using the same
KR20210045119A (ko) * 2019-10-16 2021-04-26 엘지전자 주식회사 로봇 및 상기 로봇의 위치 보정 방법
US11087163B2 (en) * 2019-11-01 2021-08-10 Vannevar Labs, Inc. Neural network-based optical character recognition
US10984290B1 (en) * 2019-11-15 2021-04-20 Zoox, Inc. Multi-task learning for real-time semantic and/or depth aware instance segmentation and/or three-dimensional object bounding
US11302025B2 (en) * 2019-11-26 2022-04-12 Zebra Technologies Corporation Error mitigation for mobile dimensioning in stereo vision
US11367183B2 (en) * 2020-02-28 2022-06-21 GE Precision Healthcare LLC Systems and methods of automatic field-of-view (FOV) prescription
JP7454987B2 (ja) 2020-03-31 2024-03-25 株式会社デンソーテン 情報処理方法、情報処理プログラム、および情報処理装置
US20210390714A1 (en) * 2020-06-11 2021-12-16 Toyota Research Institute, Inc. Producing a bird's eye view image from a two dimensional image
CN111797745A (zh) * 2020-06-28 2020-10-20 北京百度网讯科技有限公司 一种物体检测模型的训练及预测方法、装置、设备及介质
US11508118B2 (en) * 2020-07-13 2022-11-22 Fujitsu Limited Provisioning real-time three-dimensional maps for autonomous vehicles
CN111968087B (zh) * 2020-08-13 2023-11-07 中国农业科学院农业信息研究所 一种植物病害区域检测方法
CN112287947B (zh) * 2020-09-27 2023-10-13 深圳大学 一种区域建议框检测方法、终端及存储介质
CN112132829A (zh) * 2020-10-23 2020-12-25 北京百度网讯科技有限公司 车辆信息的检测方法、装置、电子设备和存储介质
CN112241718B (zh) * 2020-10-23 2024-05-24 北京百度网讯科技有限公司 车辆信息的检测方法、检测模型的训练方法和装置
CN112528858A (zh) * 2020-12-10 2021-03-19 北京百度网讯科技有限公司 人体姿态估计模型的训练方法、装置、设备、介质及产品
WO2022141262A1 (en) * 2020-12-30 2022-07-07 SZ DJI Technology Co., Ltd. Object detection
KR20220129769A (ko) * 2021-03-17 2022-09-26 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US11710254B2 (en) * 2021-04-07 2023-07-25 Ford Global Technologies, Llc Neural network object detection
US11854255B2 (en) * 2021-07-27 2023-12-26 Ubkang (Qingdao) Technology Co., Ltd. Human-object scene recognition method, device and computer-readable storage medium
US11893084B2 (en) * 2021-09-07 2024-02-06 Johnson Controls Tyco IP Holdings LLP Object detection systems and methods including an object detection model using a tailored training dataset
US11967137B2 (en) * 2021-12-02 2024-04-23 International Business Machines Corporation Object detection considering tendency of object location
KR20230094310A (ko) * 2021-12-21 2023-06-28 현대자동차주식회사 외부 카메라를 활용한 차량 검출 방법, 검출 장치 및 이를 이용한 전기 자동차 충전 로봇
CN115294456A (zh) * 2022-08-23 2022-11-04 山东巍然智能科技有限公司 一种建筑物亮化工程检测方法、设备及存储介质
US20240169700A1 (en) * 2022-11-21 2024-05-23 CareAR Holdings LLC Image Annotation Methods Based on Textured Mesh and Camera Pose

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180268601A1 (en) * 2017-03-16 2018-09-20 Qualcomm Incorporated Three-dimensional pose estimation of symmetrical objects
US20190147221A1 (en) * 2017-11-15 2019-05-16 Qualcomm Technologies Inc. Pose estimation and model retrieval for objects in images

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006520055A (ja) 2003-03-06 2006-08-31 アニメトリックス,インク. 2次元画像からの3次元オブジェクトの不変視点検出および識別
US8439683B2 (en) 2009-01-07 2013-05-14 Sri International Food recognition using visual analysis and speech recognition
US9438878B2 (en) 2013-05-01 2016-09-06 Legend3D, Inc. Method of converting 2D video to 3D video using 3D object models
GB2537681B (en) 2015-04-24 2018-04-25 Univ Oxford Innovation Ltd A method of detecting objects within a 3D environment
US10235606B2 (en) 2015-07-22 2019-03-19 Siemens Healthcare Gmbh Method and system for convolutional neural network regression based 2D/3D image registration
CN105741348B (zh) 2016-01-28 2018-06-12 北京航空航天大学 一种结构自适应的三维模型编辑方法
US9904867B2 (en) 2016-01-29 2018-02-27 Pointivo, Inc. Systems and methods for extracting information about objects from scene information
KR101822373B1 (ko) 2016-05-10 2018-03-08 서울대학교산학협력단 물체 탐지 장치 및 방법
KR101904192B1 (ko) 2016-05-30 2018-10-05 한국과학기술원 공간형 증강 현실에서 모델 독립형 얼굴 랜드 마크 인식 장치
US10372228B2 (en) 2016-07-20 2019-08-06 Usens, Inc. Method and system for 3D hand skeleton tracking
US10304191B1 (en) * 2016-10-11 2019-05-28 Zoox, Inc. Three dimensional bounding box estimation from two dimensional images
US10453200B2 (en) 2016-11-02 2019-10-22 General Electric Company Automated segmentation using deep learned priors
US9792501B1 (en) 2016-12-31 2017-10-17 Vasuyantra Corp. Method and device for visually impaired assistance
US10891488B2 (en) * 2017-03-30 2021-01-12 Hrl Laboratories, Llc System and method for neuromorphic visual activity classification based on foveated detection and contextual filtering
US11580745B2 (en) * 2017-08-17 2023-02-14 National University Of Singapore Video visual relation detection methods and systems
US20190079526A1 (en) * 2017-09-08 2019-03-14 Uber Technologies, Inc. Orientation Determination in Object Detection and Tracking for Autonomous Vehicles
US10699126B2 (en) * 2018-01-09 2020-06-30 Qualcomm Incorporated Adaptive object detection and recognition
US10816992B2 (en) * 2018-04-17 2020-10-27 Baidu Usa Llc Method for transforming 2D bounding boxes of objects into 3D positions for autonomous driving vehicles (ADVs)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180268601A1 (en) * 2017-03-16 2018-09-20 Qualcomm Incorporated Three-dimensional pose estimation of symmetrical objects
US20190147221A1 (en) * 2017-11-15 2019-05-16 Qualcomm Technologies Inc. Pose estimation and model retrieval for objects in images

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021225279A1 (en) * 2020-05-08 2021-11-11 StradVision, Inc. Method for explainable active learning, to be used for object detector, by using bayesian dual autoencoder and active learning device using the same
KR20220000946A (ko) * 2020-05-08 2022-01-04 주식회사 스트라드비젼 오브젝트 디텍터를 위한 베이시안 듀얼 오토엔코더를 이용한 익스플레이너블 액티브 러닝 방법 및 이를 이용한 액티브 러닝 디바이스
KR20210155142A (ko) * 2020-06-15 2021-12-22 주식회사 베이리스 딥러닝에 기반한 객체 검출 장치 및 그 방법
WO2022107925A1 (ko) * 2020-11-19 2022-05-27 한국전자기술연구원 딥러닝 객체 검출 처리 장치
KR20220140947A (ko) * 2021-04-12 2022-10-19 엔에이치엔클라우드 주식회사 이미지 기반 트레이닝 데이터 셋 생성 방법 및 시스템
KR20230132911A (ko) * 2022-03-10 2023-09-19 한국해양과학기술원 선박 운항 데이터 처리 장치, 방법 및 시스템

Also Published As

Publication number Publication date
US11450063B2 (en) 2022-09-20
CN110853036A (zh) 2020-02-28
KR102615196B1 (ko) 2023-12-18
US20200066036A1 (en) 2020-02-27

Similar Documents

Publication Publication Date Title
KR102615196B1 (ko) 객체 검출 모델 트레이닝 장치 및 방법
Simon et al. Complexer-yolo: Real-time 3d object detection and tracking on semantic point clouds
KR102319036B1 (ko) 자율 주행 차량을 위한 포인트 클라우드 고스트 효과 검출 시스템
EP2671384B1 (en) Mobile camera localization using depth maps
KR20180055070A (ko) 재질 인식 및 재질 트레이닝을 수행하는 방법 및 장치
KR20180087994A (ko) 스테레오 매칭 방법 및 영상 처리 장치
CN110163904A (zh) 对象标注方法、移动控制方法、装置、设备及存储介质
US11195064B2 (en) Cross-modal sensor data alignment
KR20200010640A (ko) 모션 인식 모델을 이용한 자체 운동 추정 장치 및 방법, 모션 인식 모델 트레이닝 장치 및 방법
KR102627453B1 (ko) 위치 추정 장치 및 방법
CN111079619A (zh) 用于检测图像中的目标对象的方法和装置
KR20180057096A (ko) 표정 인식과 트레이닝을 수행하는 방법 및 장치
US11049275B2 (en) Method of predicting depth values of lines, method of outputting three-dimensional (3D) lines, and apparatus thereof
CN111488812A (zh) 障碍物位置识别方法、装置、计算机设备和存储介质
KR20190128930A (ko) 영상 정규화 장치 및 방법
US20200394838A1 (en) Generating Map Features Based on Aerial Data and Telemetry Data
KR102223484B1 (ko) 식생을 제거한 절토사면의 3차원 모델 생성 시스템 및 3차원 모델 생성 방법
CN116601667A (zh) 用单目监视相机进行3d对象检测和跟踪的***和方法
Viejo et al. Combining visual features and growing neural gas networks for robotic 3D SLAM
Wietrzykowski et al. PlaneLoc: Probabilistic global localization in 3-D using local planar features
le Fevre Sejersen et al. Safe vessel navigation visually aided by autonomous unmanned aerial vehicles in congested harbors and waterways
CN113255779B (zh) 多源感知数据融合识别方法、***及计算机可读存储介质
JP2015219868A (ja) 情報処理装置、情報処理方法、プログラム
KR20230049969A (ko) 글로벌 측위 장치 및 방법
CN115131407B (zh) 面向数字仿真环境的机器人目标跟踪方法、装置和设备

Legal Events

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