KR102661954B1 - 이미지 처리 방법 및 이를 수행하는 장치들 - Google Patents

이미지 처리 방법 및 이를 수행하는 장치들 Download PDF

Info

Publication number
KR102661954B1
KR102661954B1 KR1020180090827A KR20180090827A KR102661954B1 KR 102661954 B1 KR102661954 B1 KR 102661954B1 KR 1020180090827 A KR1020180090827 A KR 1020180090827A KR 20180090827 A KR20180090827 A KR 20180090827A KR 102661954 B1 KR102661954 B1 KR 102661954B1
Authority
KR
South Korea
Prior art keywords
target
depth
image
network
size
Prior art date
Application number
KR1020180090827A
Other languages
English (en)
Other versions
KR20190085464A (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 US16/237,952 priority Critical patent/US11107229B2/en
Publication of KR20190085464A publication Critical patent/KR20190085464A/ko
Application granted granted Critical
Publication of KR102661954B1 publication Critical patent/KR102661954B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4038Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators
    • 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
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/32Indexing scheme for image data processing or generation, in general involving image mosaicing
    • 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/10004Still image; Photographic image
    • 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/20021Dividing image into blocks, subimages or windows
    • 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/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Abstract

이미지 처리 방법 및 이를 수행하는 장치가 개시된다. 일 실시예에 따른 이미지 처리 방법은 입력 이미지를 수신하는 단계와, 상기 입력 이미지에서 타겟의 위치, 사이즈, 및 유형(class)에 기초하여 상기 타겟의 깊이를 추정하는 단계를 포함한다.

Description

이미지 처리 방법 및 이를 수행하는 장치들{A METHOD OF PROCESSING AN IMAGE, AND APPARATUSES PERFORMING THE SAME}
아래 실시예들은 이미지 처리 방법 및 이를 수행하는 장치에 관한 것이다.
각종 상황에서, 이미지의 타겟 대상에 대한 깊이 추정 기술을 적용할 수 있다. 예를 들어, 자동 주행 또는 보조 주행(driver assistance)에 적용할 수 있다.
기존 깊이 추정 방법은 입체 시각(stereoscopic vision)에 기반한 방법, 레이저 거리 측정법(laser ranging)에 기반한 방법, 및 타겟 사이즈에 기반한 방법 등이 있다.
기존 깊이 추정 방법은 크게 두 유형이 있다. 두 유형은 Velodyne 광선 레이더 장치와 같은 하드웨어 장치로부터 깊이를 획득하는 방법과 낮은 원가의 시각 센서(vision sensor)로부터 깊이를 획득하는 방법이다.
첫 번째 유형에서, 해당 장치는 높은 정확도로 깊이를 추정할 수 있다. 그러나, 해당 장치의 부피가 비교적 크고 원가가 상당히 높다. 또한, 획득되는 깊이 이미지가 적고 해상도가 낮다.
두번째 유형에서는, 두 개의 시각 센서로부터 깊이를 획득할 수 있다. 해당 방법에서, 타켓이 센서에 비교적 멀게 위치할 때, 시선이 거의 평행을 이루기 때문에, 획득되는 깊이는 매우 정확하지 않다.
싱글 비전 센서(single vision sensor, 예를 들어 카메라)를 이용하여 단안 이미지(monocular image)를 촬영하고, 딥 러닝을 통해 단안 이미지의 깊이를 추정하는 방법이 점차 늘고 있다. 그러나, 해당 방법은 트레이닝 데이터를 상당히 의지하고 있으며, 정확도가 낮다.
일 실시예에 따른 이미지 처리 방법은 입력 이미지를 수신하는 단계와, 상기 입력 이미지에서 타겟의 위치, 사이즈, 및 유형(class)에 기초하여 상기 타겟의 깊이를 추정하는 단계를 포함한다.
상기 추정하는 단계는 상기 타겟의 위치, 사이즈, 및 유형을 알고 있는 경우, 싱글 태스킹 네트워크 러닝(single tasking network learning)를 통해 상기 타겟의 깊이를 추정하는 단계와, 상기 타겟의 위치, 사이즈, 및 유형을 알고 있지 않은 경우, 멀티 태스킹 네트워크 러닝(multi-tasking network learning)을 통해 상기 타겟의 깊이를 추정하는 단계를 포함할 수 있다.
상기 방법은 상기 타겟의 깊이를 추정하기 전, 상기 입력 이미지를 전처리하는(pre-processing) 단계를 더 포함할 수 있다.
상기 전처리하는 단계는 상기 입력 이미지의 초점 거리 정보(focal length information) 및 표준 초점 거리 정보(standard focal length information에 기초하여 상기 입력 이미지를 정규화(normalizaing)하는 단계를 포함할 수 있다.
상기 싱글 태스킹 네트워크 러닝를 통해 상기 타겟의 깊이를 추정하는 단계는 상기 이미지에서 이미지 블록(image block)을 상기 타겟의 주위에서 잘라내고, 동일한 사이즈의 마스크 이미지(mask image)를 획득하기 위해 상기 이미지 블록을 마스킹하는 단계와, 상기 이미지 블록 및 상기 마스크 이미지를 채널별로 스플라이싱(splicing)하는 단계와, 스플라이싱된 이미지를 상기 싱글 태스킹 네트워크에 입력하는 단계와, 상기 싱글 태스킹 네트워크로부터 상기 타겟의 깊이를 출력하는 단계를 포함할 수 있다.
상기 싱글 태스킹 네트워크로부터 상기 타겟의 깊이를 출력하는 단계는 상기 타겟의 깊이가 각각의 미리 결정된 깊이 구간에 속하는 확률을 결정하는 단계와, 상기 확률에 가중치를 부여하여 상기 타겟의 최종 깊이를 획득하는 단계와, 상기 최종 깊이를 출력하는 단계를 포함할 수 있다.
상기 멀티 태스킹 네트워크 러닝을 통해 상기 타겟의 깊이를 추정하는 단계는 타겟 검출 분기 처리(target detection branch processing)를 통해 상기 타겟의 위치와 사이즈를 결정하는 단계와, 상기 타겟의 위치와 사이즈에 기초하여 타겟 분류 분기 처리(target classification branch processing)를 통해 상기 타겟의 유형을 결정하는 단계와, 상기 타겟의 위치, 사이즈, 및 유형에 기초하여 타겟 깊이 추정 분기 처리(target depth estimation branch processing)를 통해 상기 타겟의 깊이를 결정하는 단계를 포함할 수 있다.
상기 멀티 태스킹 네트워크는 Faster R-CNN(Faster Regions with Convolutional Neural Network Features)에 기반하는 네트워크이고, 상기 멀티 태스킹 네트워크의 손실 함수(loss function)는 상기 Faster R-CNN의 손실 함수에 깊이 손실 정보(depth loss information)를 더한 손실 함수일 수 있다.
상기 멀티 태스킹 네트워크는 YOLO2에 기반하는 네트워크이고, 상기 멀티 태스킹 네트워크의 손실 함수는 상기 YOLO2의 손실 함수에 깊이 손실 정보(depth loss information)를 더한 손실 함수일 수 있다.
상기 타겟 깊이 추정 분기 처리를 통해 상기 타겟의 깊이를 결정하는 단계는 상기 타겟의 깊이가 각각의 미리 결정된 깊이 구간에 속하는 확률을 결정하는 단계와, 상기 확률에 가중치를 부여하여 상기 타겟의 최종 깊이를 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 이미지 처리 장치는 명령을 저장하는 메모리와, 프로세서를 포함하고, 상기 명령이 상기 프로세서에 의해 실행될 때, 상기 프로세서는 입력 이미지를 수신하고, 상기 입력 이미지에서 타겟의 위치, 사이즈, 및 유형(class)에 기초하여 상기 타겟의 깊이를 추정한다.
상기 프로세서는 상기 타겟의 위치, 사이즈, 및 유형을 알고 있는 경우, 싱글 태스킹 네트워크 러닝(single tasking network learning)를 통해 상기 타겟의 깊이를 추정하고, 상기 타겟의 위치, 사이즈, 및 유형을 알고 있지 않은 경우, 멀티 태스킹 네트워크 러닝(multi-tasking network learning)을 통해 상기 타겟의 깊이를 추정할 수 있다.
상기 프로세서는 상기 타겟의 깊이를 추정하기 전, 상기 입력 이미지를 전처리할 수 있다.
상기 프로세서는 상기 입력 이미지의 초점 거리 정보(focal length information) 및 표준 초점 거리 정보(standard focal length information에 기초하여 상기 입력 이미지를 정규화(normalizaing)할 수 있다.
상기 프로세서는 상기 이미지에서 이미지 블록(image block)을 상기 타겟의 주위에서 잘라내고, 동일한 사이즈의 마스크 이미지(mask image)를 획득하기 위해 상기 이미지 블록을 마스킹하고, 상기 이미지 블록 및 상기 마스크 이미지를 채널별로 스플라이싱(splicing)하고, 스플라이싱된 이미지를 상기 싱글 태스킹 네트워크에 입력하고, 상기 싱글 태스킹 네트워크로부터 상기 타겟의 깊이를 출력할 수 있다.
상기 프로세서는 상기 타겟의 깊이가 각각의 미리 결정된 깊이 구간에 속하는 확률을 결정하고, 상기 확률에 가중치를 부여하여 상기 타겟의 최종 깊이를 획득하고, 상기 최종 깊이를 출력할 수 있다.
상기 프로세서는 타겟 검출 분기 처리(target detection branch processing)를 통해 상기 타겟의 위치와 사이즈를 결정하고, 상기 타겟의 위치와 사이즈에 기초하여 타겟 분류 분기 처리(target classification branch processing)를 통해 상기 타겟의 유형을 결정하고, 상기 타겟의 위치, 사이즈, 및 유형에 기초하여 타겟 깊이 추정 분기 처리(target depth estimation branch processing)를 통해 상기 타겟의 깊이를 결정할 수 있다.
상기 멀티 태스킹 네트워크는 Faster R-CNN(Faster Regions with Convolutional Neural Network Features)에 기반하는 네트워크이고, 상기 멀티 태스킹 네트워크의 손실 함수(loss function)는 상기 Faster R-CNN의 손실 함수에 깊이 손실 정보(depth loss information)를 더한 손실 함수일 수 있다.
상기 멀티 태스킹 네트워크는 YOLO2에 기반하는 네트워크이고, 상기 멀티 태스킹 네트워크의 손실 함수는 상기 YOLO2의 손실 함수에 깊이 손실 정보(depth loss information)를 더한 손실 함수일 수 있다.
상기 프로세서는 상기 타겟의 깊이가 각각의 미리 결정된 깊이 구간에 속하는 확률을 결정하고, 상기 확률에 가중치를 부여하여 상기 타겟의 최종 깊이를 획득할 수 있다.
도 1은 일 실시예에 따른 이미지를 처리하는 시스템의 개략적인 블록도이다.
도 2는 일 실시예에 따른 이미지를 처리하는 방법을 나타낸다.
도 3a은 타겟 깊이 추정 방법의 일 예를 나타낸다.
도 3b는 도 3a의 타겟의 깊이 추정 방법을 상세히 설명하기 위한 도면이다.
도 4a은 타겟 깊이 추정 방법의 다른 예를 나타내다.
도 4b는 도 4a의 타겟의 깊이 추정 방법을 상세히 설명하기 위한 도면이다.
도 5 및 도 6는 복수의 스케일들을 처리하는 경우 네트워크 구조의 예들을 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 이미지를 처리하는 시스템의 개략적인 블록도이고, 도 2는 일 실시예에 따른 이미지를 처리하는 방법을 나타낸다.
도 1 및 도 2를 참조하면, 이미지 처리 시스템(10)은 카메라(50) 및 이미지 처리 장치(100)를 포함한다. 이미지 처리 시스템(10)은 자동 주행 및/또는 보조 주행 기술에 활용될 수 있다. 또한, 이미지 처리 시스템(10)은 AR HUD(Augmented Reality Head Up Display)에 활용될 수 있다.
이미지 처리 시스템(10)은 초점거리(focal length)가 같은 이미지에서, 객체가 가깝게 위치하였을 때 크고 멀게 위치하였을 때 작은 특성에 따라 단안 이미지(monocular image)를 이용하여 타겟에 대한 깊이를 추정할 수 있다. 예를 들어, 깊이는 거리를 의미할 수 있다.
카메라(50)는 입력 이미지를 획득할 수 있다. 예를 들어, 카메라(50)는 싱글 비전 센서이고, 입력 이미지는 단안 이미지(monocular image)일 수 있다. 도 1에서는 카메라(50)가 이미지 처리 장치(100)의 외부에 구현된 것으로 도시하고 있지만, 반드시 이에 한정되는 것은 아니며, 실시예에 따라 이미지 처리 장치(100)의 내부에 구현될 수 있다.
이미지 처리 장치(100)는 입력 이미지에 기초하여 입력 이미지에 포함된 하나 이상의 타겟에 대한 깊이를 추정할 수 있다. 예를 들어, 타겟은 입력 이미지에서 미리 결정된 객체를 의미할 수 있다.
이미지 처리 장치(100)는 수신기(110), 프로세서(130), 및 인스트럭션을 저장하기 위한 메모리(150)를 포함한다.
수신기(110)는 입력 이미지를 수신할 수 있다(210). 인스트럭션이 프로세서(130)에 의해 실행될 때, 프로세서(130)는 타겟의 깊이를 추정하는 동작을 수행할 수 있다. 프로세서(130)는 입력 이미지에서 타겟의 위치, 사이즈 및 유형에 기초하여 타겟의 깊이를 추정할 수 있다(220).
타겟의 유형(class 또는 label)은 이미지에 포함된 객체, 예를 들어 사람, 교통 수단, 교통 신호 및 교통 표지 등 중에서 적어도 하나일 수 있다. 타겟의 위치는 이미지에서 타겟의 좌표일 수 있다. 타겟의 사이즈는 타겟을 둘러싼 검출 프레임(예를 들어, 직사각형 프레임으로 표시)의 사이즈일 수 있다. 검출 프레임은 직사각형으로 표시되는 프레임일 수 있다.
타겟의 위치, 사이즈 및 유형을 알고 있는 경우, 프로세서(130)는 싱글 태스킹 네트워크 러닝을 통해 해당 타겟의 깊이를 추정할 수 있다. 싱글 태스킹 네트워크 러닝은 하나의 태스크를 포함하는 네트워크를 통해 학습할 수 있다. 예를 들어, 하나의 태스크는 깊이 추정 수행을 포함할 수 있다. 도 3을 참고하여 싱글 태스킹 네트워크 러닝을 통해 타겟의 깊이를 추정하는 동작을 상세히 설명하도록 한다.
타겟의 위치, 사이즈 및 유형을 알고 있지 않은 경우, 프로세서(130)는 멀티 태스킹 네트워크 러닝을 통해 해당 타겟의 깊이를 추정할 수 있다. 멀티 태스킹 네트워크 러닝은 복수의 태스크(예: 타겟 검출, 타겟 식별, 깊이 추측 세 가지 태스크를 포함)를 포함하는 네트워크를 통해 학습할 수 있다. 예를 들어, 복수의 태스크는 타겟 검출 수행, 타겟 식별 수행 및 깊이 추측 수행을 포함할 수 있다. 도 4를 참고하여 멀티 태스킹 네트워크 러닝을 통해 타겟의 깊이를 추정하는 동작을 상세히 설명한다.
타겟의 깊이를 추정하기 전에, 프로세서(130)는 입력 이미지를 전처리(pre-processing)할 수 있다. 전처리는 표준 초점 거리 정보(standard focal length information) 및 입력 이미지의 초점 거리 정보(focal length information)에 기초하여 입력 이미지를 정규화하는 동작을 포함할 수 있다.
예를 들어, 입력 이미지가 다른 카메라에 의해 다른 초점 거리에서 획득된 것 일 수 있는데, 입력 이미지에 나타나는 다른 초점 거리에서의 같은 타겟의 사이즈는 다르기 때문에, 추정된 타겟 깊이가 달라질 수 있다. 표준 초점 거리 가 주어진 경우, 어느 한 장의 너비가 , 높이가 , 초점 거리가 인 이미지에 대해, 해당 이미지의 너비와 높이를 , 로 정규화 할 수 있다. 는 이미지 정규화 후의 너비이고, 는 이미지 정규화 후의 높이이다. 각각의 화소는 (또는 )의 비례에 기초하여 보간법(interpolation)을 통해 획득할 수 있다. 즉, 이미지는 전처리를 통해 동일한 초점 거리(same focal length)로 정규화될 수 있다.
상술한 바와 같이, 이미지 처리 장치(100)는 싱글 카메라(50)를 이용해 높은 정확도로 이미지의 타겟 깊이를 추정할 수 있다. 기존의 단안 깊이 추정 방법과 비교하였을 때, 실시예에 따른 타겟 깊이 추정 방법은 대략적으로 1.4배의 오차를 줄일 수 있다. 실험 결과에 따르면, RMSE(최소 평균 제곱 편차)가 최소 4.1m에서 약 2.9m로 줄어들었다.
즉, 실시예에 따른 타겟 깊이 추정 방법은 원가를 감소할 수 있을 뿐 아니라 추정 정확도를 높일 수 있다.
도 3a은 타겟 깊이 추정 방법의 일 예를 나타낸다.
도 3a를 참조하면, 타겟의 위치, 사이즈 및 유형을 알고 있는 경우, 프로세서(130)는 싱글 태스킹 네트워크 러닝을 통해 해당 타겟의 깊이를 추정할 수 있다(300).
입력 이미지에서 타겟의 위치, 사이즈 및 유형을 이미 알고 있는 경우, 프로세서(130)는 입력 이미지 내 타겟의 주위를 따라 이미지 블록을 잘라내고, 이미지 블록을 마스킹하여 마스크 이미지(mask image)를 획득하고, 이미지 블록과 마스크 이미지를 채널별로 스플라이싱(splicing, 또는 연결)할 수 있다(310). 예를 들어, 이미지 블록은 미리 결정된 사이즈일 수 있다. 또한, 마스크 이미지는 이미지 블록과 동일한 사이즈일 수 있다. 프로세서(130)는 입력 이미지에 포함된 각 타겟마다 상술한 동작을 수행할 수 있다.
프로세서(130)는 스플라이싱된 이미지를 싱글 태스킹 네트워크로 입력할 수 있다(320). 예를 들어, 스플라이싱된 이미지는 이미지 블록과 마스크 이미지가 채널에 따라 하나로 연결된 이미지일 수 있다.
프로세서(130)는 싱글 태스킹 네트워크로부터 타겟의 깊이를 출력할 수 있다(330).
도 3b는 도 3a의 타겟의 깊이 추정 방법을 상세히 설명하기 위한 도면이다.
도 3b에서는 타겟의 상태를 이미 알고 있는 경우 타겟의 깊이를 추정하는 방법에 대해 보다 상세히 설명한다.
자동 주행과 보조 주행 분야에서는, KITTI 데이터 세트(dateset)를 사용해 교통 상황에서 차량 검출, 차량 추적, 의미론적 분할(Semantic Segmentation) 등의 계산법이 사용될 수 있다.
KITTI 데이터 세트(dateset)에 대해, 모든 깊이 데이터는 모두 광선 레이더(laser radar)를 스캐닝을 통해 획득될 수 있다. 분석을 통해, 레이더의 깊이 검출 범위는 대략 5~85m가 된다. 해당 범위는 8개 유형(class)에 대응하는 8개 구간(interval)으로 나눠질 수 있다. 예를 들어, (5,15]는 제0 유형, (15,25]은 제1 유형과 같은 방식으로 구분될 수 있다.
이러한 방식을 통해, 타겟 깊이 추정 문제는 분류 문제로 전환될 수 있다. 해당 구간의 분류는 비균등 분류 형식을 사용할 수 있다. 예를 들어, [5,7]、[8,11]、[11,15]、[16,23]와 같이, 근거리 구간은 약간 조밀하게 분류하고, 원거리 구간은 조밀도가 약간 떨어지게 분류할 수 있다. 구체적인 구간의 범위는 트레이닝 샘플의 분포에 따라 구분될 수 있다.
KITTI 데이터 세트에 의해서 정규화된 이미지의 사이즈는 1242x375 픽셀(pixel)이다(340). 이하에서는 설명의 편의를 위해 “픽셀”을 생략하기로 한다
프로세서(130)는 타겟 영역을 중심으로 이미지 블록을 잘라내고, 이미지 블록과 같은 사이지의 마스크 이미지(binary mask image)를 획득할 수 있다(350). 예를 들어, 이미지 블록은 321 x181의 RGB 이미지일 수 있다. 마스크 이미지는 이진 마스크 이미지(binary mask image)이고, 사이즈는 321 x181일 수 있다.
여기서, 이미지 블록의 사이즈가 321x181인 것은 타겟 영역의 사이즈에 근거한 것이다. 타겟의 사이즈가 보통 100x60인데, 타겟 영역과 배경 영역의 비례가 1:3일 때, 배경 정보를 더 잘 이용해 타겟, 즉 객체를 식별할 수 있다.
321x181의 마스크 이미지에서, 직사각형 프레임 안의 타겟의 원소(element)를 1로 하고, 그렇지 않은 경우에는 0으로 한다. 배경 정보를 포함하기 위해, 사용된 직사각형 프레임은 타겟에 대응하는 실제 직사각형 프레임보다 약간 클 수 있다. 큰 정도는 경우에 따라 설정할 수 있다. 1:3의 비율에 따라 실제 블록 사이즈와 사용된 직사각형 프레임의 사이즈를 설정한다. 타겟이 비교적 큰 경우, 직사각형 프레임의 사이즈는 321x181 범위를 초과할 수 있고, 초과된 부분을 다이렉트하게(directly) 잘라낼 수 있다. 직사각형 프레임은 이미지 블록을 잘라내기 위한 검출 프레임일 수 있다.
프로세서(130)는 321x181 사이즈의 이미지 블록과 이에 대응하는 마스크 이미지를 스플라이싱하고, 스플라이싱된 이미지를 싱글 태스킹 네트워크로 입력할 수 있다. 마스크는 RGB 이미지에서의 타겟의 영역을 가리키고(또는 지정하며), 이에 RGB 이미지와 마스크 이미지를 하나로 연결해(또는 스티칭해) 입력할 필요가 있다.
프로세서(130)는 싱글 태스킹 네트워크를 통해 입력 이미지에 대해 특징을 추출하고 각 유형의 확률(타겟이 각 유형에 속할 확률)을 예측(또는 추정)할 수 있다(350).
프로세서(130)는 싱글 태스킹 네트워크를 통해 출력된 타겟 깊이의 확률에 가중치를 부여해서 타겟의 최종 깊이를 획득할 수 있다(360).
예를 들어, 싱글 태스킹 네트워크는 컨볼루션 뉴럴 네트워크(CNN)를 기반으로 한 네트워크일 수 있다. 싱글 태스킹 네트워크는 개선된 VGG16의 네트워크 구조일 수 있고, 해당 네트워크의 구체적인 구조는 표 1에 나타난 바와 같을 수 있다.
네트워크 레이어 Conv1 Conv2 Conv3 Conv4 Fc1 Fc2 Fc3
기존 VGG 16 네트워크 3×3×64 3×3×128 3×3×256 3×3×512 4096 4096 1000
개선된 VGG 16 네트워크 3×3×32 3×3×32 3×3×64 3×3×64 128 64 8
표1에서, Conv는 컨볼루션 레이어를 나타내고, Fc는 FC 레이어(Fully connected layer)를 나타낸다. 예를 들어, “3×3×64”파라미터에서, 3x3은 커널 사이즈를 나타내고, 64는 채널 수를 나타낼 수 있다.
싱글 태스킹 네트워크(즉, 개선된 VGG16 네트워크)로부터 출력된 타겟이 유형 k에 속할 확률은 로 정의될 수 있다. 싱글 태스킹 네트워크는 SGD(Stochastic Gradient Descent) 알고리즘에 의해서 학습될 수 있다.
타겟의 깊이(즉, 최종 깊이) d는 확률에 가중치를 부여하여 획득될 수 있다. 예를 들어, 타겟의 깊이 d는 수학식 1을 이용하여 획득될 수 있다.
여기서, 는 가중치로, 와 같이 정의되며, 유형 k에 대응하는 깊이 구간(depth interval), 즉 k번째 깊이 구간의 평균 깊이를 나타낼 수 있다. 예를 들어, 평균 깊이는 중간 깊이(median depth)를 의미할 수 있다.
도 4a은 타겟 깊이 추정 방법의 다른 예를 나타내다.
도 4a를 참조하면, 타겟의 위치, 사이즈 및 유형을 알고 있지 않은 경우, 프로세서(130)는 멀티 태스킹 네트워크 러닝을 통해 해당 타겟의 깊이를 추정할 수 있다.
입력 이미지에서 타겟의 위치, 사이즈 및 유형을 알고 있지 않은 경우, 프로세서(130)는 입력 이미지를 멀티 태스킹 네트워크로 입력할 수 있다(410).
프로세서(130)는 멀티 태스킹 네트워크를 이용해 타겟의 위치, 사이즈, 유형, 및 타겟의 깊이를 추정하고, 멀티 태스킹 네트워크로부터 타겟의 위치, 사이즈, 유형 및 타겟의 깊이를 출력할 수 있다.
타겟의 위치는 입력 이미지에서 해당 타겟의 좌표이고, 타겟의 사이즈는 해당 타겟을 둘러싼 검출 프레임(예를 들어, 직사각형 프레임)의 사이즈일 수 있다.
예를 들어, 멀티 태스킹 네트워크는 Faster R-CNN(Faster Regions with Convolutional Neural Network Features)을 기반으로 한 네트워크 구조일 수 있다.
도 4b는 도 4a의 타겟의 깊이 추정 방법을 상세히 설명하기 위한 도면이다.
도 4b에서는 타겟의 상태를 알고 있지 않은 경우 타겟의 깊이를 추정하는 방법에 대해 보다 상세히 설명한다.
이미지의 타겟의 위치, 사이즈 및 유형을 알고 있지 않은 경우, 프로세서(130)는 해당 이미지를 멀티 태스킹 네트워크에 입력해 타겟의 위치, 사이즈, 타겟의 유형 및 타겟의 깊이 추정 결과를 출력할 수 있다.
도 4b에 도시된 바와 같이, 이미지가 입력될 때, 컨볼루션 동작 및 대응하는 풀링 동작은 공유되는 특징들을 획득하기 위해 복수의 레이어들을 통해 수행될 수 있다.
이후, 컨볼루션 동작 및 풀링 동작을 거친 이미지는 세 개의 분기(branch)로 입력될 수 있다. 타겟 검출 분기 처리(target detection branch processing), 타겟 분류 분기 처리(target classification branch processing) 및 타겟 깊이 추정 분기 처리(target depth estimation branch processing)가 수행될 수 있다.
타겟의 위치와 사이즈(예를 들어, 타겟을 둘러싼 검출 프레임의 사이즈)는 타겟 검출 분기 처리를 통해 결정될 수 있다. 타겟 위치 및 사이즈는 타겟 분류 분기로 입력될 수 있다. 타겟의 유형은 타겟 위치 및 사이즈에 기초하여 타겟 분류 분기 처리를 통해 결정될 수 있다. 이 후에, 타겟 위치, 사이즈, 및 타겟의 유형은 타겟 깊이 추정 분기에 입력될 수 있다. 타겟의 깊이는 타겟의 위치, 사이즈 및 유형에 기초하여 타겟 깊이 추정 분기 처리를 통해 결정될 수 있다.
상술한 방식을 통해, 타겟의 깊이를 추정할 때, 타겟 위치(또는 구역) 및 타겟 유형 정보는 타겟 검출 분기 처리 및 타겟 분류 분기 처리를 통해 제공될 수 있다. 타겟의 후보는 슬라이딩 윈도우(sliding window) 또는 영역 제안(region proposal) 방식을 통해 제공될 수 있다. faster-rcnn과 유사하게, 복수의 앵커(anchor)들이 슬라이딩 윈도우(sliding window) 또는 영역 제안(region proposal) 방식을 통해 정의될 수 있다. 즉, 각각의 위치에 한 개의 앵커가 정의되고, 가장 적합한 앵커에 대응되는 결과가 선택되어 출력될 수 있다.
멀티 태스킹 네트워크의 손실 함수는 Faster-rcnn의 손실 함수에 깊이 손실 정보(depth loss information)를 더하여 획득될 수 있다. 멀티 태스킹 네트워크의 손실 함수는 수학식 2와 같이 정의될 수 있다.
는 객체 분류 손실 함수(object classification loss function) 부분이고, 는 검출 프레임 회귀 손실 함수(detection frame regression loss function) 부분이고, 는 깊이 추정 손실 함수(depth estimation loss function) 부분을 의미할 수 있다.
여기서, 는 미니-배치(mini-batch) 내 앵커의 시리얼 넘버(serial number)일 수 있다. 는 제i 번째 앵커 예측 유형(i-th anchor prediction class(또는 label))이고, 는 4개의 파라미터화된 좌표의 검출 프레임(또는 바운딩 박스)이고, 는 추정 깊이(또는 예측 깊이)일 수 있다.
는 다중로지스틱 회귀(softmax log)의 손실 함수이고, 는 L1 평활(smoothing) 손실 함수일 수 있다.
는 GT(GT는 수동으로 라벨이 붙은 것으로 네트워크를 학습시키기 위해 넣어주는 실측 자료(또는 정답))를 따르는 것을 의미하고, 현재 앵커는 파지티브 앵커(positive anchor)일 수 있다. 는 GT의 검출 프레임(또는 바운딩 박스)이고, 는 GT의 깊이일 수 있다.
, , 및 는 정규화 항(normalization term)이고, 는 손실의 가중된 항(weighted term)일 수 있다.
해당 네트워크는 SGD 알고리즘을 통해 학습될 수 있다.
구체적인 손실 함수는 faster-rcnn 내에서 찾을 수 있다.
네트워크는 타겟의 위치, 사이즈, 유형 및 깊이 정보를 출력할 수 있다. faster-rcnn에 따라, 타겟의 많은 후보들이 획득되고, 신뢰도(degree of confidence), 검출 프레임 및 분류(classification)의 깊이가 네트워크의 전방향전파(Forward Propagation)를 통해 각각의 후보에 대해 동시에(simultaneously) 출력될 수 있다. 타겟에 속하는(또는 대응하는) 후보들은 NMS(non-maximum-suppression) 및 분류의 신뢰도 임계값(confidence threshold)에 기초하여 필터링될 수 있다. 남은 후보(예를 들어, 필터링되어 남은 후보)에 대해, 이에 대응하는 유형, 검출 프레임 및 깊이 정보가 직접 출력될 수 있다. 타겟의 깊이 정보는 타겟의 최적의 깊이 구간(예를 들어, 확률이 가장 큰 깊이 구간)일 수 있고, 수학식 1에 따라 유형에 속할 확률에 가중치를 부여하여 획득된 것일 수 있다.
다른 예를 들어, 멀티 태스킹 네트워크는 YOLO2(You Only Look Once)에 기반한 네트워크 구조일 수 있다. 해당 네트워크 구조의 아래의 표 2에 나타난 바와 같을 수 있다.
타입(type) 네트워크 내 레이어 수 컨볼루션 커늘 사이즈/스텝 사이즈 출력
컨볼루션(convolution)풀링(Maxpooling)
컨볼루션(convolution)
풀링(Maxpooling)
컨볼루션(convolution)
풀링(Maxpooling)
컨볼루션(convolution)
풀링(Maxpooling)
컨볼루션(convolution)
컨볼루션(convolution)
컨볼루션(convolution)
16

16

32

32

64
64
128
3×3
2×2/2
3×3
2×2/2
3×3
2×2/2
3×3
2×2/2
3×3
3×3
3×3
500×151
250×76
250×76
125×38
125×38
63×19
63×19
32×10
32×10
32×10
32×10
컨볼루션(convolution) 80 1×1 32×10
앵커는 YOLO2에서도 사용된다. 이미지(예를 들어, 하나의 이미지)가 입력될 때, 컨볼루션 및 풀링 동작이 수행되고, 최종적으로 컨볼루션 레이어(예를 들어, 하나의 컨볼루션 레이어)가 획득될 수 있다. 마지막 컨볼루션 레이어의 차원은 w×h×s일 수 있다. 여기서, w와 h는 이미지의 축소된 너비와 높이(reduced width and height)를 의미하고, s는 벡터에 대응할 수 있다. 이는 이미지를 복수의 셀들(예를 들어, 사각형(square), 그리드, 픽셀 또는 격자)로 나누는 것일 수 있다. 마지막 컨볼루션 레이어에서 각각의 셀은 복수의 앵커들에 대한 정보를 포함할 수 있다. 는 i 번째 앵커의 검출 프레임(또는 바운딩 박스)을 나타내고, 는 i 번째 앵커의 각 유형의 확률을 나타내고, 는 i 번째 앵커의 깊이를 나타낼 때, 각각의 셀(또는 격자(lattice))의 벡터는 로 나타낼 수 있다.
멀티 태스킹 네트워크의 손실 함수는 YOLO2의 손실 함수에 깊이 손실 정보(depth loss information)를 더하여 획득될 수 있다. 멀티 태스킹 네트워크의 손실 함수는 수학식 3과 같이 정의될 수 있다.
는 검출 프레임 회귀 손실 함수(detection frame regression loss function) 부분이고, 는 객체 분류 손실 함수(object classification loss function) 부분이고, 는 깊이 추정 손실 함수(depth estimation loss function) 부분을 의미할 수 있다.
여기서, 는 객체의 좌표 및 GT의 좌표와의 차이를 손실로 사용할 때, 손실에 대한 가중치를 의미하고, 은 마지막 컨볼루션 레이어의 각각의 셀, 즉 너비x높이를 의미하고, 은 앵커의 수(number)를 의미할 수 있다.
은 i번째 셀(예를 들어, 픽셀, 격자 등)의 j번째 앵커에 오브젝트가 있는지 없는지 여부를 표시하기 위한 것으로, 객체가 있으면 “1”이고, 아니면 0일 수 있다.
는 GT의 x좌표를 나타내고, 는 GT의 y좌표를 나타내고, 는 GT의 너비 w를 나타내고, 는 GT의 높이 h를 나타낼 수 있다.
, , , 및 은 현재 앵커의 실제 검출 프레임(또는 바운딩 박스)일 수 있다.
는 현재 앵커가 제c 유형에 속할 확률이고, 는 현재 앵커에 대응하는 타겟의 깊이이고, 는 i번째 셀의 j번째 앵커에 제c유형 객체가 있을 확률(GT 값임)이고, 는 i번째 셀의 j번째 앵커의 객체의 깊이(GT 값임)일 수 있다.
“classes”는 각 유형의 집합이고, 는 각각의 유형의 계산된 값(calculated value)의 합을 의미할 수 있다.
구체적인 손실 함수(또는 손실 함수 파라미터)는 YOLO 내에서 찾을 수 있다.
어떠한 셀(또는 그리드, 배치)에 타겟이 존재할 때, 검출 프레임(또는 바운딩 박스)은 손실 함수를 통해 실제 프레임에 최대한 근접해지고, 검출 프레임과 GT 프레임 사이의 중첩률(overlapping ratio)이 최대한 근접해지고, 추정된 타겟 깊이는 실제 깊이에 최대한 근접해질 수 있다. 어떠한 셀에 타겟이 존재하지 않을 때, 이 셀의 타겟을 검출할 확률이 손실 함수를 통해 최대한 작아지게 할 수도 있다. 해당 네트워크는 SGD 알고리즘을 통해 학습될 수 있다. 수학식 2 및 3에서 열거한 각 항의 손실 함수는 상술한 방정식의 형식에 한정되는 것이 아니고, 제곱 오차(squared error), 크로스 엔트로피(cross entropy), 및 다중 로지스틱 회귀(multinomial logistic regression, 또는 대수 다중 로지스틱 회귀(logarithm multinomial logistic regression), 예를 들어 softmax log)중에서 적어도 하나일 수 있다.
한 장의 이미지를 입력하는 경우, 이미지 내 타겟(또는 객체)은 싱글 레이어 특징에 따라 검출되고, 분류되고, 깊이 추정이 될 수 있다. 마지막의 하나의 컨볼루션 레이어가 획득된 경우, 획득된 유형의 확률에 따라 셀에 타겟이 존재하는지 여부를 판단하는 것이 가능하고, 해당 타겟이 어떤 유형에 속하는지 판단할 수 있다. 한 셀에 타겟이 존재한다고 판단되는 경우, 해당 타겟의 검출 프레임은 대응하는 앵커에 따라 획득되고, 동시에 해당 검출 프레임에 대응하는 깊이는 획득될 수 있다. 타겟의 최종 깊이 정보는 타겟의 최적의 깊이 구간(예를 들어, 확률이 가장 큰 깊이 구간)이거나, 수학식 1에 따라 유형에 속할 확률에 가중치를 부여하여 획득된 것일 수 있다.
도 5 및 도 6는 복수의 스케일들을 처리하는 경우 네트워크 구조의 예들을 나타낸다.
복수의 스케일들(예를 들어, 복수의 서로 다른 사이즈의 이미지들을 획득하기 위해 하나의 이미지를 샘플링)을 처리하는 경우, 이미지 내 타겟에 대해 검출, 분류 및 깊이 추정은 복수 레이어의 특징에 따라 SSD(Single Shot MultiBox Detector)와 같이 처리될 수 있다. 이러한 서로 다른 스케일 특징 레이어는 서로 다른 예측 레이어에 연결될 수 있고, 같은 예측 레이어에 연결될 수 있다.
도 5와 도 6는 각각 YOLO2 네트워크 프레임을 기초로 하여 복수의 특징 레이어(예를 들어, 컨볼루션 레이어)를 서로 다른 예측 레이어와 동일한 예측 레이어에 연결한 경우를 나타낸다.
도 5에서는 서로 다른 예측 레이어에 각각 연결된 각각의 특징 레이어에서 분류, 검출 및 깊이 추정이 수행될 수 있다.
도 6에서는 두 개의 특징 레이어들을 동일한 예측 레이어에 연결할 수 있다. 즉, 예측 레이어의 파라미터들이 공유되는 것이다. 다만, 서로 다른 스케일의 타겟의 계산 결과를 획득하기 위해, 서로 다른 레이어들의 특징이 별도로 추정(또는 예측)될 수 있다. 각각의 서로 다른 특징 레이어에 의해서 획득된 검출 프레임에 대해, 최종 결과는 유형의 컨피던스 값(Confidence value) 및 비 최대치 억제(Non-maximum suppression)에 기초하여 획득될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (20)

  1. 입력 이미지를 수신하는 단계; 및
    상기 입력 이미지에서 타겟의 위치, 사이즈, 및 유형(class)에 기초하여 상기 타겟의 깊이를 추정하는 단계
    를 포함하고,
    상기 추정하는 단계는,
    상기 타겟의 위치, 사이즈, 및 유형을 알고 있는 경우, 싱글 태스킹 네트워크 러닝(single tasking network learning)를 통해 상기 타겟의 깊이를 추정하는 단계; 및
    상기 타겟의 위치, 사이즈, 및 유형을 알고 있지 않은 경우, 멀티 태스킹 네트워크 러닝(multi-tasking network learning)을 통해 상기 타겟의 깊이를 추정하는 단계
    를 포함하는 이미지 처리 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 타겟의 깊이를 추정하기 전, 상기 입력 이미지를 전처리하는(pre-processing) 단계
    를 더 포함하는 이미지 처리 방법.
  4. 제3항에 있어서,
    상기 전처리하는 단계는,
    상기 입력 이미지의 초점 거리 정보(focal length information) 및 표준 초점 거리 정보(standard focal length information에 기초하여 상기 입력 이미지를 정규화(normalizaing)하는 단계
    를 포함하는 이미지 처리 방법.
  5. 제1항에 있어서,
    상기 싱글 태스킹 네트워크 러닝를 통해 상기 타겟의 깊이를 추정하는 단계는,
    상기 입력 이미지에서 이미지 블록(image block)을 상기 타겟의 주위에서 잘라내고, 동일한 사이즈의 마스크 이미지(mask image)를 획득하기 위해 상기 이미지 블록을 마스킹하는 단계;
    상기 이미지 블록 및 상기 마스크 이미지를 채널별로 스플라이싱(splicing)하는 단계;
    스플라이싱된 이미지를 상기 싱글 태스킹 네트워크에 입력하는 단계; 및
    상기 싱글 태스킹 네트워크로부터 상기 타겟의 깊이를 출력하는 단계
    를 포함하는 이미지 처리 방법.
  6. 제5항에 있어서,
    상기 싱글 태스킹 네트워크로부터 상기 타겟의 깊이를 출력하는 단계는,
    상기 타겟의 깊이가 각각의 미리 결정된 깊이 구간에 속하는 확률을 결정하는 단계;
    상기 확률에 가중치를 부여하여 상기 타겟의 최종 깊이를 획득하는 단계; 및
    상기 최종 깊이를 출력하는 단계
    를 포함하는 이미지 처리 방법.
  7. 제1항에 있어서,
    상기 멀티 태스킹 네트워크 러닝을 통해 상기 타겟의 깊이를 추정하는 단계는,
    타겟 검출 분기 처리(target detection branch processing)를 통해 상기 타겟의 위치와 사이즈를 결정하는 단계;
    상기 타겟의 위치와 사이즈에 기초하여 타겟 분류 분기 처리(target classification branch processing)를 통해 상기 타겟의 유형을 결정하는 단계; 및
    상기 타겟의 위치, 사이즈, 및 유형에 기초하여 타겟 깊이 추정 분기 처리(target depth estimation branch processing)를 통해 상기 타겟의 깊이를 결정하는 단계
    를 포함하는 이미지 처리 방법.
  8. 제7항에 있어서,
    상기 멀티 태스킹 네트워크는 Faster R-CNN(Faster Regions with Convolutional Neural Network Features)에 기반하는 네트워크이고,
    상기 멀티 태스킹 네트워크의 손실 함수(loss function)는 상기 Faster R-CNN의 손실 함수에 깊이 손실 정보(depth loss information)를 더한 손실 함수인 이미지 처리 방법.
  9. 제7항에 있어서,
    상기 멀티 태스킹 네트워크는 YOLO2에 기반하는 네트워크이고,
    상기 멀티 태스킹 네트워크의 손실 함수는 상기 YOLO2의 손실 함수에 깊이 손실 정보(depth loss information)를 더한 손실 함수인
    이미지 처리 방법.
  10. 제7항에 있어서,
    상기 타겟 깊이 추정 분기 처리를 통해 상기 타겟의 깊이를 결정하는 단계는,
    상기 타겟의 깊이가 각각의 미리 결정된 깊이 구간에 속하는 확률을 결정하는 단계; 및
    상기 확률에 가중치를 부여하여 상기 타겟의 최종 깊이를 획득하는 단계
    를 포함하는 이미지 처리 방법.
  11. 명령을 저장하는 메모리; 및
    프로세서
    를 포함하고,
    상기 명령이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
    입력 이미지를 수신하고, 상기 입력 이미지에서 타겟의 위치, 사이즈, 및 유형(class)에 기초하여 상기 타겟의 깊이를 추정하고,
    상기 프로세서는,
    상기 타겟의 위치, 사이즈, 및 유형을 알고 있는 경우, 싱글 태스킹 네트워크 러닝(single tasking network learning)를 통해 상기 타겟의 깊이를 추정하고,
    상기 타겟의 위치, 사이즈, 및 유형을 알고 있지 않은 경우, 멀티 태스킹 네트워크 러닝(multi-tasking network learning)을 통해 상기 타겟의 깊이를 추정하는 이미지 처리 장치.
  12. 삭제
  13. 제11항에 있어서,
    상기 프로세서는
    상기 타겟의 깊이를 추정하기 전, 상기 입력 이미지를 전처리하는(pre-processing) 이미지 처리 장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 입력 이미지의 초점 거리 정보(focal length information) 및 표준 초점 거리 정보(standard focal length information에 기초하여 상기 입력 이미지를 정규화(normalizaing)하는 이미지 처리 장치.
  15. 제11항에 있어서,
    상기 프로세서는,
    상기 입력 이미지에서 이미지 블록(image block)을 상기 타겟의 주위에서 잘라내고, 동일한 사이즈의 마스크 이미지(mask image)를 획득하기 위해 상기 이미지 블록을 마스킹하고, 상기 이미지 블록 및 상기 마스크 이미지를 채널별로 스플라이싱(splicing)하고, 스플라이싱된 이미지를 상기 싱글 태스킹 네트워크에 입력하고, 상기 싱글 태스킹 네트워크로부터 상기 타겟의 깊이를 출력하는 이미지 처리 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    상기 타겟의 깊이가 각각의 미리 결정된 깊이 구간에 속하는 확률을 결정하고, 상기 확률에 가중치를 부여하여 상기 타겟의 최종 깊이를 획득하고, 상기 최종 깊이를 출력하는 이미지 처리 장치.
  17. 제11항에 있어서,
    상기 프로세서는,
    타겟 검출 분기 처리(target detection branch processing)를 통해 상기 타겟의 위치와 사이즈를 결정하고, 상기 타겟의 위치와 사이즈에 기초하여 타겟 분류 분기 처리(target classification branch processing)를 통해 상기 타겟의 유형을 결정하고, 상기 타겟의 위치, 사이즈, 및 유형에 기초하여 타겟 깊이 추정 분기 처리(target depth estimation branch processing)를 통해 상기 타겟의 깊이를 결정하는 이미지 처리 장치.
  18. 제17항에 있어서,
    상기 멀티 태스킹 네트워크는 Faster R-CNN(Faster Regions with Convolutional Neural Network Features)에 기반하는 네트워크이고,
    상기 멀티 태스킹 네트워크의 손실 함수(loss function)는 상기 Faster R-CNN의 손실 함수에 깊이 손실 정보(depth loss information)를 더한 손실 함수인 이미지 처리 장치.
  19. 제17항에 있어서,
    상기 멀티 태스킹 네트워크는 YOLO2에 기반하는 네트워크이고,
    상기 멀티 태스킹 네트워크의 손실 함수는 상기 YOLO2의 손실 함수에 깊이 손실 정보(depth loss information)를 더한 손실 함수인 이미지 처리 장치.
  20. 제17항에 있어서,
    상기 프로세서는,
    상기 타겟의 깊이가 각각의 미리 결정된 깊이 구간에 속하는 확률을 결정하고, 상기 확률에 가중치를 부여하여 상기 타겟의 최종 깊이를 획득하는 이미지 처리 장치.
KR1020180090827A 2018-01-10 2018-08-03 이미지 처리 방법 및 이를 수행하는 장치들 KR102661954B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/237,952 US11107229B2 (en) 2018-01-10 2019-01-02 Image processing method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810024743.0 2018-01-10
CN201810024743.0A CN110033481A (zh) 2018-01-10 2018-01-10 用于进行图像处理的方法和设备

Publications (2)

Publication Number Publication Date
KR20190085464A KR20190085464A (ko) 2019-07-18
KR102661954B1 true KR102661954B1 (ko) 2024-04-29

Family

ID=67234124

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180090827A KR102661954B1 (ko) 2018-01-10 2018-08-03 이미지 처리 방법 및 이를 수행하는 장치들

Country Status (2)

Country Link
KR (1) KR102661954B1 (ko)
CN (1) CN110033481A (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110796103A (zh) * 2019-11-01 2020-02-14 邵阳学院 基于Faster-RCNN的目标及其距离检测方法
CN112926370A (zh) * 2019-12-06 2021-06-08 纳恩博(北京)科技有限公司 感知参数的确定方法及装置、存储介质、电子装置
CN111179253B (zh) * 2019-12-30 2023-11-24 歌尔股份有限公司 一种产品缺陷检测方法、装置与系统
CN111191621A (zh) * 2020-01-03 2020-05-22 北京同方软件有限公司 一种大焦距监控场景下多尺度目标的快速精准识别方法
KR102538848B1 (ko) * 2020-05-12 2023-05-31 부산대학교병원 실시간 안저사진 품질 판독을 위한 딥러닝 아키텍처 시스템
WO2022025568A1 (ko) * 2020-07-27 2022-02-03 옴니어스 주식회사 멀티 태스크 러닝을 이용하여 상품의 속성을 인식하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
KR20220013875A (ko) * 2020-07-27 2022-02-04 옴니어스 주식회사 트렌드에 기반하여 상품에 관한 정보를 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
CN112686887A (zh) * 2021-01-27 2021-04-20 上海电气集团股份有限公司 混凝土表面裂纹的检测方法、系统、设备和介质
KR102378887B1 (ko) * 2021-02-15 2022-03-25 인하대학교 산학협력단 객체 탐지에서의 둘레기반 IoU 손실함수를 통한 효율적인 바운딩 박스 회귀 학습 방법 및 장치
CN112967187A (zh) * 2021-02-25 2021-06-15 深圳海翼智新科技有限公司 用于目标检测的方法和装置
KR102437760B1 (ko) 2021-05-27 2022-08-29 이충열 컴퓨팅 장치에 의한 음향의 처리 방법, 영상 및 음향의 처리 방법 및 이를 이용한 시스템들
KR20230137814A (ko) 2022-03-22 2023-10-05 이충열 컴퓨팅 장치와 연동하는 촬영 장치로부터 획득되는 영상을 처리하는 방법 및 이를 이용한 시스템
CN117333487B (zh) * 2023-12-01 2024-03-29 深圳市宗匠科技有限公司 一种痘痘分级方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180096610A1 (en) 2016-09-30 2018-04-05 The Boeing Company Stereo Camera System for Collision Avoidance During Aircraft Surface Operations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103337076B (zh) * 2013-06-26 2016-09-21 深圳市智美达科技股份有限公司 视频监控目标出现范围确定方法和装置
JP6351238B2 (ja) * 2013-11-15 2018-07-04 キヤノン株式会社 画像処理装置、撮像装置および距離補正方法
US9495606B2 (en) * 2014-02-28 2016-11-15 Ricoh Co., Ltd. Method for product recognition from multiple images
JP2016035623A (ja) * 2014-08-01 2016-03-17 キヤノン株式会社 情報処理装置及び情報処理方法
CN104279960B (zh) * 2014-10-14 2017-01-25 安徽大学 用移动设备进行物体尺寸测量的方法
AU2015203666A1 (en) * 2015-06-30 2017-01-19 Canon Kabushiki Kaisha Methods and systems for controlling a camera to perform a task
CN105260356B (zh) * 2015-10-10 2018-02-06 西安交通大学 基于多任务学习的中文交互文本情感与话题识别方法
US10049267B2 (en) * 2016-02-29 2018-08-14 Toyota Jidosha Kabushiki Kaisha Autonomous human-centric place recognition
CN106780303A (zh) * 2016-12-02 2017-05-31 上海大学 一种基于局部配准的图像拼接方法
CN106780536A (zh) * 2017-01-13 2017-05-31 深圳市唯特视科技有限公司 一种基于对象掩码网络的形状感知实例分割方法
CN107492115B (zh) * 2017-08-30 2021-01-01 北京小米移动软件有限公司 目标对象的检测方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180096610A1 (en) 2016-09-30 2018-04-05 The Boeing Company Stereo Camera System for Collision Avoidance During Aircraft Surface Operations

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Eigen, D., Puhrsch, C., & Fergus, R. (2014). "Depth map prediction from a single image using a multi-scale deep network." Advances in neural information processing systems, 27.*
Godard, C., Mac Aodha, O., & Brostow, G. J. (2017). Unsupervised monocular depth estimation with left-right consistency. In Proceedings of the IEEE conference on computer vision and pattern recognitio*
He, Kaiming, et al. (2017). "Mask r-cnn." Proceedings of the IEEE international conference on computer vision.*
Hsu, Gee-Sern, et al. (2017). "Robust license plate detection in the wild." 2017 14th IEEE International Conference on Advanced Video and Signal Based Surveillance (AVSS). IEEE.*
Misra, Ishan, et al. (2016). "Cross-stitch networks for multi-task learning." Proceedings of the IEEE conference on computer vision and pattern recognition.*

Also Published As

Publication number Publication date
KR20190085464A (ko) 2019-07-18
CN110033481A (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
KR102661954B1 (ko) 이미지 처리 방법 및 이를 수행하는 장치들
CN111666921B (zh) 车辆控制方法、装置、计算机设备和计算机可读存储介质
US20230014874A1 (en) Obstacle detection method and apparatus, computer device, and storage medium
CN111326023B (zh) 一种无人机航线预警方法、装置、设备及存储介质
US20190050994A1 (en) Control method, non-transitory computer-readable storage medium, and control apparatus
US11734918B2 (en) Object identification apparatus, moving body system, object identification method, object identification model learning method, and object identification model learning apparatus
CN111507166A (zh) 通过一起使用照相机和雷达来学习cnn的方法及装置
US10509987B1 (en) Learning method and learning device for object detector based on reconfigurable network for optimizing customers' requirements such as key performance index using target object estimating network and target object merging network, and testing method and testing device using the same
US5170440A (en) Perceptual grouping by multiple hypothesis probabilistic data association
Yang et al. Concrete defects inspection and 3D mapping using CityFlyer quadrotor robot
US10430691B1 (en) Learning method and learning device for object detector based on CNN, adaptable to customers' requirements such as key performance index, using target object merging network and target region estimating network, and testing method and testing device using the same to be used for multi-camera or surround view monitoring
CN110264444B (zh) 基于弱分割的损伤检测方法及装置
CN113420682B (zh) 车路协同中目标检测方法、装置和路侧设备
US10423860B1 (en) Learning method and learning device for object detector based on CNN to be used for multi-camera or surround view monitoring using image concatenation and target object merging network, and testing method and testing device using the same
CN111354022B (zh) 基于核相关滤波的目标跟踪方法及系统
CN112749594A (zh) 信息补全方法、车道线识别方法、智能行驶方法及相关产品
US10402686B1 (en) Learning method and learning device for object detector to be used for surveillance based on convolutional neural network capable of converting modes according to scales of objects, and testing method and testing device using the same
CN111967396A (zh) 障碍物检测的处理方法、装置、设备及存储介质
CN114218999A (zh) 一种基于融合图像特征的毫米波雷达目标检测方法及系统
Oskouie et al. A data quality-driven framework for asset condition assessment using LiDAR and image data
CN117475253A (zh) 一种模型训练方法、装置、电子设备及存储介质
Li et al. Driver drowsiness behavior detection and analysis using vision-based multimodal features for driving safety
CN111611836A (zh) 基于背景消除法的船只检测模型训练及船只跟踪方法
CN111553474A (zh) 船只检测模型训练方法及基于无人机视频的船只跟踪方法
CN115359091A (zh) 一种用于移动机器人的装甲板检测跟踪方法

Legal Events

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