KR102557561B1 - 이미지의 깊이 정보를 결정하는 방법 및 시스템 - Google Patents

이미지의 깊이 정보를 결정하는 방법 및 시스템 Download PDF

Info

Publication number
KR102557561B1
KR102557561B1 KR1020200025956A KR20200025956A KR102557561B1 KR 102557561 B1 KR102557561 B1 KR 102557561B1 KR 1020200025956 A KR1020200025956 A KR 1020200025956A KR 20200025956 A KR20200025956 A KR 20200025956A KR 102557561 B1 KR102557561 B1 KR 102557561B1
Authority
KR
South Korea
Prior art keywords
depth
image
network
input image
input
Prior art date
Application number
KR1020200025956A
Other languages
English (en)
Other versions
KR20200119714A (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 삼성전자주식회사
Publication of KR20200119714A publication Critical patent/KR20200119714A/ko
Application granted granted Critical
Publication of KR102557561B1 publication Critical patent/KR102557561B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • 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
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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/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]

Abstract

이미지 깊이 정보를 결정하는 방법 및 시스템이 제공된다. 상기 방법은 이미지 입력을 수신하고, 복수의 깊이 범위의 깊이 범위 내부에 입력된 이미지를 분류하고, 입력된 이미지가 분류된 깊이 범위를 기반으로 깊이 추정을 수행함으로써, 입력된 이미지의 깊이 맵을 결정하는 것을 포함한다.

Description

이미지의 깊이 정보를 결정하는 방법 및 시스템{METHOD AND SYSTEM FOR DETERMINING DEPTH OF INFORMATION OF AN IMAGE}
본 발명은 컴퓨터 비전에 관한 것으로, 특히 딥 뉴럴 네트워크(Deep Neural Network)를 기반으로 단일 이미지 깊이 추정을 제공하는 것에 관한 것이다.
SIDE(Single Image Depth Estimation)은 이미지에서 장면의 기하학적 구조를 이해하는 것이 특징이다. 특히, 깊이 맵은 이미지 재구성, 이미지 렌더링 및 피사계(field)의 얕은 심도와 같은 3D 비전에서 많은 주제의 기본 요소인 3차원(3D) 구조를 추론하는 데 사용될 수 있다. 그러나, SIDE는 하나의 2차원(2D) 이미지가 무한한 수의 3D 장면에서 생성될 수 있기 때문에 문제가 된다. 딥 컨볼루션 뉴럴 네트워크(Convolutional Neural Networks, CNNs)을 사용하여, 딥 러닝 기반 방법은 연속 깊이 맵에 CNN 맵핑을 학습하는 것과 같은 SIDE 문제를 처리할 때 성능 향상을 달성한다.
포착된 장면에서 구성요소의 실제 깊이의 추정은 전경(가까운) 물체를 배경(먼) 물체와 분리하는 기능과 같은 응용예를 가질 수 있다. 정확한 깊이 추정을 통해 장면의 배경에서 전경 대상 물체를 분리할 수 있다. 정확한 전경-배경 분리를 통해 포착된 이미지를 처리하여 Bokeh 효과와 같은 효과를 모방할 수 있다. Bokeh는 빠른 렌즈와 넓은 조리개가 있는 카메라의 설정을 올바르게 사용하거나, 카메라와 피사체를 가까이하고 피사체를 배경에서 더 멀리하여 피사계의 얕은 심도를 모방함으로써 마스터되는 배경의 부드러운 아웃 포커스 블러이다. 따라서 정확한 깊이 추정을 통해 비전문 사진작가 나 작은 렌즈(예: 휴대 전화 카메라)가 있는 카메라의 이미지를 처리하여, 피사체에 초점을 맞춘 Bokeh 효과를 통해 보다 심미적으로 쾌적한 이미지를 얻을 수 있다. 정확한 깊이 추정의 다른 응용예는 배경이나 피사체를 변경하고 원하는 가상 현실에 따라 렌더링하는 것이 바람직한 3D 물체 재구성 및 가상 현실 응용을 포함한다. 포착된 장면에서 정확한 깊이 추정의 다른 응용예로는 자동차 자동화, 감시 카메라, 자율 주행 애플리케이션, 카메라로부터의 거리 추정과 물체 탐지 정확성을 개선하여 향상된 안전성 등이 있다.
SIDE에 대한 딥 CNNs를 디자인할 때 두 가지 문제가 있다. SIDE 방법은 개별 데이터 세트에 대해 서로 다른 네트워크를 학습할 수 있으며, 이로 인해 모델이 특정 도메인에 특화될 수 있다. 결과적으로 실내 및 실외 패턴과 같은 서로 다른 데이터 세트 간의 큰 차이는 SIDE 네트워크의 일반화 능력을 제한한다. 한 데이터 세트에서 상당한 성능을 달성하는 모델은 다른 데이터 세트에서 성능이 저하된다.
또한 기존 SIDE 네트워크는 매우 심층적인 아키텍처를 백본으로 활용할 수 있다. 이러한 네트워크의 크기는 매우 크다. 또한 일부 SIDE 네트워크에는 완전히 연결된 레이어가 포함되어 있다. 따라서 테스트 이미지 크기를 트레이닝과 동일하게 만들기 위해 예측 중에 슬라이딩 윈도우(Sliding-Window) 전략이 필요하다. 따라서 이러한 네트워크의 효율성과 유연성은 바람직하지 않다.
본 발명이 해결하고자 하는 기술적 과제는, 각각의 다양한 배경을 포함하는 복수의 이미지에 대해, 적합한 이미지 깊이 정보를 결정하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 각각의 다양한 배경을 포함하는 복수의 이미지에 대해, 적합한 이미지 깊이 정보를 결정하는 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명의 몇몇 실시예들에 따른 방법은 이미지 입력을 수신하고, 복수의 깊이 범위의 깊이 범위 내부에 입력된 이미지를 분류하고, 입력된 이미지가 분류된 깊이 범위를 기반으로 깊이 추정을 수행함으로써, 입력된 이미지의 깊이 맵을 결정하는 것을 포함한다.
본 발명의 몇몇 실시예들에 따른 시스템은 메모리 및 이미지 입력을 수신하고, 복수의 깊이 범위의 깊이 범위에 입력된 이미지를 분류하고, 입력된 이미지가 분류된 깊이 범위를 기반으로 깊이 추정을 수행함으로써, 입력된 이미지의 깊이 맵을 결정하는 프로세서를 포함한다.
본 발명의 실시예의 특징, 기타 양상 및 장점은 하기 도면에서 설명되는 실시예에 대한 참고로 설명될 것이다.
도 1은 본 발명의 몇몇 실시예들에 따른 Bokeh 효과를 설명하는 이미지의 다이어그램을 도시한다.
도 2는 본 발명의 몇몇 실시예들에 따른 실내 네트워크와 실외 네트워크를 사용하는 깊이 추정의 다이어그램을 도시한다.
도 3은 본 발명의 몇몇 실시예들에 따른 깊이 추정을 제공하는 다이어그램을 도시한다.
도 4는 본 발명의 몇몇 실시예들에 따른 이미지의 깊이 추정을 수행하는 방법의 순서도를 도시한다.
도 5는 본 발명의 몇몇 실시예들에 따른 SIDE 네트워크의 다이어그램을 도시한다.
도 6은 본 발명의 몇몇 실시예들에 따른 upproj 레이어의 다이어그램을 도시한다.
도 7은 본 발명의 몇몇 실시예들에 따른 스킵 연결을 가진 upproj 레이어의 다이어그램을 도시한다.
도 8은 본 발명의 몇몇 실시예들에 따른 깊이 미세화 SIDE 네트워크를 사용하는 깊이 추정의 다이어그램을 도시한다.
도 9는 본 발명의 몇몇 실시예들에 따른 RGBD(RGB-Depth) 향상 SIDE 네트워크를 사용하는 깊이 추정의 다이어그램을 도시한다.
도 10은 본 발명의 몇몇 실시예들에 따른 네트워크 환경에서 전자 장치의 블록도를 도시한다.
본 발명의 실시예들은 첨부된 도면을 참조하여 상세히 기재된다. 동일한 구성요소는 다른 도면에 표시되어 있지만 동일한 참조 숫자로 지정된다. 이하의 설명에서, 상세한 구성 및 구성 요소와 같은 구체적인 세부사항은 단지 본 발명의 실시예들의 전반적인 이해를 돕기 위해 제공된다. 따라서, 본원에 기재된 실시예들의 다양한 변경 및 변형이 본 발명의 범위에서 벗어나지 않고 이루어질 수 있다는 것이 당업자에게 명백할 것이다. 또한 명확성과 간결을 위해 잘 알려진 기능 및 구조에 대한 설명이 생략될 수 있다. 아래에 설명된 용어는 본 발명의 기능을 고려하여 정의된 용어이며, 사용자, 이용자의 의도 또는 관습에 따라 다를 수 있다. 따라서 용어의 정의는 본 명세서 전반에 걸쳐 내용에 따라 결정되어야 한다.
본 발명은 다양한 변형 및 다양한 실시예를 가질 수 있으며, 그 중 실시예는 수반되는 도면을 참조하여 아래에 상세히 기술된다. 그러나, 본 발명은 본 실시예에 한정되지 않으나, 본 발명의 범위 내에서 모든 수정, 등가물 및 대안을 포함한다는 것을 이해되어야 한다.
제1, 제2 등의 서수 번호를 포함하는 용어는 다양한 요소를 설명하기 위해 사용될 수 있지만, 구조적 요소는 서수 번호를 포함하는 상기 용어에 의해 제한되지 않는다. 상기 용어는 한 요소를 다른 요소와 구별하는 데만 사용될 수 있다. 예를 들어, 본 발명의 범위에서 벗어나지 않고, 제1 구조 구성요소는 제2 구조 구성요소로 지칭될 수 있다. 유사하게, 제2 구조 구성요소는 제1 구조 구성요소라고도 할 수 있다. 본원에서 사용되는 바와 같이, 용어 "및/또는"은 하나 이상의 연관된 항목의 임의의 및 모든 조합을 포함한다.
본원에서 사용되는 모든 용어는 단지 본 발명의 다양한 실시예를 설명하기 위해 사용되지만, 본 발명을 제한하기 위한 것은 아니다. 단수 형태는 문맥이 달리 명확하게 나타내지 않는 한 복수형을 포함하도록 의도된다. 본 발명에 있어서, 용어 "포함" 또는 "가지고 있다"는 것은 특징, 숫자, 단계, 동작, 구조 구성요소, 부분, 또는 이들의 조합의 존재를 나타내고, 이들의 존재 또는 하나 이상의 다른 특징, 숫자, 단계, 작업, 구조 구성요소, 부품 또는 이들의 조합의 존재 나 추가 확률을 배제하지 않는다는 것을 이해하여야 한다.
본원에서 사용되는 모든 용어는 달리 정의되지 않는 한, 본 발명이 속한 기술 분야의 당업자가 이해하는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 용어와 같은 용어는 관련 기술 분야의 문맥적 의미와 동일한 의미를 가지는 것으로 해석되어야 하며, 본 발명에 명확하게 정의되지 않는 한 이상적이거나 지나치게 형식적인 의미를 가지는 것으로 해석되어서는 안된다.
몇몇 실시예들에 따른 전자 장치는 다양한 유형의 전자 장치 중 하나일 수 있다. 상기 전자 장치는 예를 들어, 휴대용 통신 장치(예를 들어, 스마트폰), 컴퓨터, 휴대용 멀티미디어 디바이스, 휴대용 의료 기기, 카메라, 웨어러블 디바이스, 또는 가전제품을 포함할 수 있다. 본 발명의 일 실시예에 따르면, 전자 장치는 상술한 것들에 한정되지 않는다.
본원에서 사용된 용어는 본 발명을 제한하기 위한 것이 아니라, 해당 실시예에 대한 다양한 변경, 등가물 또는 교체를 포함하기 위한 것이다. 첨부된 도면의 설명과 관련하여, 유사한 참조 숫자는 유사하거나 관련된 요소를 참조하는데 사용될 수 있다. 항목에 해당하는 명사의 단수 형식에는 관련 문맥이 달리 명확하게 나타내지 않는 한, 복수형이 포함될 수 있다. 본원에서 사용되는 바와 같이, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", "A, B 또는 C 중 적어도 하나"와 같은 각각의 구는 해당 구들 중 하나에 함께 열거된 항목의 가능한 모든 조합을 포함할 수 있다. 본원에서 사용되는 바와 같이, "1차", "2차", "제1" 및 "제2"와 같은 용어는 대응하는 구성요소와 다른 구성요소를 구별하기 위해 사용될 수 있지만, 다른 측면(예를 들어, 중요도 또는 차수)에서 구성요소를 제한하기 위한 것은 아니다. 구성요소(예: 제1 구성요소)가 "동작으로" 또는 "통신하여"이라는 용어의 유무에 관계없이, 다른 요소(예: 제2 구성요소)"에 연결된", "와 결합된", "에 결합된", "와 연결된" 또는 "에 연결"됐다고 지칭되는 경우, 상기 구성요소는 다른 구성요소에 직접(예를 들어, 유선), 무선 또는 제3 구성요소를 통해 직접 결합될 수 있다.
본원에서 사용되는 바와 같이, 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어에 구현된 유닛을 포함할 수 있으며, 다른 용어들, 예를 들어, "로직", "로직 블록", "부분" 및 "회로"와 같은 다른 용어와 상호 교환적으로 사용될 수 있다. 모듈은 하나 이상의 기능을 수행하도록 조정된 하나의 복합적 구성 요소, 또는 최소 단위 또는 이의 일부일 수 있다. 예를 들어, 일 실시예에 따르면, 모듈은 애플리케이션 특이적 집적 회로(ASIC)의 형태로 구현될 수 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 Bokeh 효과를 설명하는 이미지의 다이어그램을 도시한다. 정확한 깊이 추정에는 많은 응용예가 있다. 이미지(100)는 Bokeh 효과를 나타낸다. Bokeh는 가까운 피사체를 더 선명하게 하거나 초점을 맞추고, 먼 피사체를 초점에서 벗어나게 함으로써, 이미지의 배경 피사체를 흐리게 하는 과정이다. Bokeh 이미지의 주요 특징은 깊이 맵에서 추출되는 정확한 전경 배경 분할이다. Bokeh 효과의 성능은 추정된 깊이의 정확도에 의해 결정될 수 있다.
도 2는 본 발명의 몇몇 실시예들에 따른 실내 네트워크와 실외 네트워크를 사용하는 깊이 추정의 다이어그램을 도시한다. SIDE(Single Image Depth Estimation)는 하나의 2D 이미지가 무한한 3D 장면로부터 생성될 수 있기 때문에 문제가 있다. 정확한 깊이 맵을 얻기가 매우 어렵기 때문에, 기존의 대부분의 Bokeh 시스템은 단일 카메라 대신 여러 대의 카메라를 사용한다. 위와 같은 경우, 응용예에 대한 예시가 제한된다. 일부 기존의 SIDE 시스템은 특정 데이터 세트에서 상당한 결과를 생성할 수 있지만 다른 데이터 세트의 이미지가 제공될 때 이러한 시스템은 제대로 작동하지 않는다. 예를 들어, 실외 장면의 입력 이미지(200)를 제공하는 경우, 실내 이미지에서 훈련된 뉴럴 네트워크는 이미지(202)에서 추정된 깊이를 도시한 바와 같이, 실외 이미지에서 훈련된 뉴럴 네트워크에 의해 수행된 이미지(204)에서 추정된 깊이에 비해 잘 수행하지 못한다. 따라서 다양한 환경에서 동시에 이미지에 적합하고, 견고한 SIDE 시스템을 설계해야 한다.
도 3은 본 발명의 몇몇 실시예들에 따른 깊이 추정을 제공하는 다이어그램을 도시한다. 깊이 추정 시스템(300)은 2단계의 견고한 SIDE 프레임워크를 포함할 수 있다. 제1 단계(304)에서, 깊이 추정 시스템(300)은 입력된 이미지(302)를 상이한 깊이 범위(306)로 분류할 수 있다(예를 들어, 실내 이미지는 "낮은 깊이 범위"로 분류될 수 있다). 가장 낮은 깊이 범위, 중간 깊이 범위 및 가장 높은 깊이 범위가 묘사되지만, 범위의 수와 유형이 사용될 수 있다. 제2 단계(308)에서, 본 시스템은 깊이 범위 각각에 대해, 정확한 깊이 맵을 얻기 위해 이미지가 분류되는 깊이 범위에 최적화된 SIDE 네트워크를 적용하고, 깊이는 출력(310)일 수 있다.
도 4는 본 발명의 몇몇 실시예들에 따른 이미지의 깊이 추정을 수행하는 방법의 순서도를 도시한다. 단계 402에서, 시스템은 이미지 입력을 수신할 수 있다. 아래에 설명된 실시예들은 입력으로서 이미지를 수신하는 것과 관련이 있지만, 시스템은 이미지의 일부를 입력으로서 수신할 수 있으며, 본 발명에 기재된 상기 단계는 서로의 이미지의 일부에 대해 개별적으로 또는 독립적으로 수행될 수 있음을 이해하게 될 것이다.
단계 404에서, 시스템은 입력된 이미지를 복수의 깊이 범위 중 하나의 깊이 범위에 분류한다. 시스템은 상기 이미지를 미리 정의된 장면(예: 하늘, 빙산, 방)으로 분류함으로써, 상기 이미지를 깊이 범위로 분류할 수 있다. 장면은 특정 또는 미리 정의된 깊이 범위와 연관될 수 있기 때문에(예: 하늘은 가장 높은 깊이 범위를 가질 수 있으며, 방 장면은 상대적으로 낮은 깊이 범위를 가질 수 있다.), 입력된 이미지의 정확한 깊이 범위가 장면 카테고리로부터 유추될 수 있다.
시스템은 과반수 투표(majority voting) 알고리즘을 기반으로 미리 정의된 장면으로 이미지를 분류할 수 있다. 한 실시예에서 WideResNet-18은 Places-365 데이터 세트에서 학습될 수 있다. 데이터 세트에는 많은 수의 미리 정의되거나 레이블이 지정된 장면 또는 장면 카테고리를 포함할 수 있다. 장면 또는 장면 카테고리는 연관된 깊이 범위의 기반으로 추가적으로 식별될 수 있다. 입력 이미지가 고려하여, 시스템은 최상위 수의 예측된 장면을 사용하여 입력 이미지의 깊이 범위 분류에 투표할 수 있다. 예를 들어, 시스템이 상위 15개의 예측 장면을 사용하는 경우, 상위 15개 예측 장면에서 7개 이상의 낮은 깊이 범위가 있는 경우 이미지를 낮은 깊이 범위로 분류할 수 있다.
시스템은 가중 투표(weighted voting) 알고리즘에 따라 이미지를 미리 정의된 장면으로 분류할 수 있다. 는 장면 범주 에 대한 통계 중앙값 및 최대(또는 X-백분위수) 깊이를 나타낸다. 는 장면 분류 네트워크에 의해 현재 장면이 번째 장면으로 분류될 확률이다. 그런 다음 현재 장면의 중앙값 깊이를 수학식 1에서와 같이 추정할 수 있다.
수학식 1
그런 다음 현재 장면의 최대(또는 X-백분위수) 깊이를 수학식 2에서와 같이 추정할 수 있다.
수학식 2
상기 합계는 모든 후보 장면에 대한 것이다.추정된 중앙값 및 최대(또는 X-백분위수) 깊이를 사용하여, 시스템은 다양한 미리 정의된 깊이 범위 임계값에 추정된 이미지의 중앙값 또는 최대 깊이를 비교함으로써, 깊이 범위에 대한 양자화 된 빈(bin)을 선택할 수 있다.
대안적으로, 시스템은 코스(Coarse) 깊이 추정을 사용하여 이미지를 깊이 범위로 분류할 수 있다. 원샷 방식으로 정확한 추정 깊이를 얻기가 어렵기 때문에, 시스템은 먼저 코스 추정 깊이 맵을 얻은 다음 이를 사용하여 깊이 범위를 결정할 수 있다. 모든 SIDE 네트워크는 거친 깊이 추정 네트워크로 활용할 수 있다. 코스 추정된 깊이 맵을 사용하여 깊이 범위를 결정하는 경우, 실외 이미지와 같은 높은 깊이 범위의 이미지는 상대적으로 높은 최대 깊이를 가지므로 시스템은 최대 깊이 또는 최소 깊이와 같은 일부 통계를 참조할 수 있다.
시스템은 실내 및 실외 이미지의 유효성 검사 데이터(예: Robust Vision Challenge)를 사용하여 최대 추정 깊이의 통계를 계산한 다음 낮은 깊이 범위/높은 깊이 범위를 결정하는 임계값을 선택할 수 있다(예: 임계값이 깊이 값 X이고, 예상 깊이 맵의 최대 깊이가 X보다 낮으면, 시스템이 이미지를 낮은 깊이 범위로 분류할 수 있다).
보다 일반적인 방법으로 코스 깊이 추정을 사용하여 깊이 범위를 얻으려면, 시스템은 코스 깊이 맵에서 이산 깊이 범위로 맵을 생성할 수 있다. 이것은 코스 깊이 맵에서 깊이 범위로, 분류기를 학습함으로써 달성될 수 있으며, 이는 D=F(d)로 표현될 수 있고, D는 추정된 깊이 범위, d는 코스 깊이 맵이며, F는 분류기로 지원 벡터 머신(SVM), 다중 클래스 부스팅 및 임의의 포리스트(forest)이다.
단계 406에서, 시스템은 입력된 이미지가 분류된 깊이 범위를 기반으로 이미지의 깊이 맵을 결정한다.
도 5는 본 발명의 몇몇 실시예들에 따른 SIDE 네트워크의 다이어그램을 도시한다. 이 시스템은 인코더-디코더 아키텍처를 기반으로 하는 효율적인 SIDE 네트워크(깊이-와이즈(Depth-Wise, DW)-SIDENet)를 사용할 수 있다. SIDE 네트워크(500)는 인코딩 브랜치(branch)(502) 및 깊이 분류 디코딩 브랜치(504) 및 깊이 회귀 디코딩 브랜치(506)를 포함한다.
인코딩 브랜치(502)는 입력된 이미지(501)로부터 차별적 특징(518)을 추출하기 위해 인코딩 블록(508) 및 여러 깊이-와이즈(Depth-Wise) 구별 가능한 컨볼루션 레이어(예를 들어, 인코딩 블록 510, 512, 514 및 516)을 포함한다. 낮은 깊이 범위의 이미지는 높은 깊이 범위의 이미지와 다른 특성을 가지고 있기 때문에 (예를 들어, 실내 이미지는 실외 이미지와 다른 컨텍스트를 가진다), 낮은 깊이 범위 네트워크의 인코딩 브랜치(502)는 높은 깊이 범위 네트워크와 약간 다르다. 시스템은 높은 깊이 범위 인코딩 모듈의 출력 피쳐 맵 크기를 x4 다운샘플링, 낮은 깊이 범위 인코딩 모듈을 x32 다운샘플링으로 설정할 수 있다.
네트워크는 깊이 분류 브랜치(504) 및 깊이 회귀 브랜치(506)를 사용하여 디코딩할 수 있다. 이 두 브랜치는 대부분 동일한 네트워크 아키텍처를 가지고 있지만 다른 출력 피쳐 맵과 손실 함수를 가질 수 있다. 깊이 분류 디코딩 브랜치(504)는 스킵 연결을 사용하여 upproj-con 레이어로 디코딩하는 업샘플링 디코딩 블록(520, 522, 524 및 526)과 깊이 맵(529)을 출력하기 위해 upproj 레이어로 디코딩하는 디코딩 블록(528)을 포함한다. 깊이 회귀 디코딩 브랜치(506)는 스킵 연결을 사용하여 upproj-con 레이어로 디코딩하는 업샘플링 디코딩 블록(530, 532, 534 및 536)과 깊이 맵(539)을 출력하기 위해 upproj 레이어로 디코딩하는 디코딩 블록(538)을 포함한다. 분류 브랜치(504)에서, SIDE 네트워크(500)는 연속 깊이를 복수의 빈(bin)으로 양자화한 후 깊이 분류를 수행한다. 분류 브랜치(504)의 손실 함수를 계산할 때, 네트워크는 각 픽셀 위치에 대한 예측된 양자화 깊이로서 양자화된 깊이 확률 및 양자화된 깊이 값의 가중 합계를 사용한다. 회귀 브랜치(506)에서, 네트워크는 출력 피쳐 맵을 연속적인 차이(disparity) 맵으로 직접 회귀한다.
DW-SIDENet 500의 손실 함수는 깊이 값 분류 손실(Huber)과 깊이 회귀 손실의 선형 조합이며 수학식 3으로 제공될 수 있다.
수학식 3
는 이미지 의 그라운드-트루쓰(ground-truth) 깊이이고, 는 양자화된 그라운드-트루쓰이고, 는 두 브랜치로부터의 출력이다. 상기 깊이 맵(529)은 분류 브랜치(504)에 의해 결정되고, 깊이 맵(539)은 회귀 브랜치(506)에 의해 결정된다.도 6은 본 발명의 몇몇 실시예들에 따른 upproj 레이어의 다이어그램을 도시한다. upproj 레이어(600)는 이전 디코딩 블록으로부터 X 입력(602)을 수신한다. 단계 604에서, 입력은 출력 크기로 업샘플링된 다음 3x3 컨볼루션 레이어(606)를 통해 처리될 수 있다. 3x3 컨볼루션 레이어(606)의 출력은 제1 5x5 컨볼루션 레이어(608)와 제2 5x5 컨볼루션 레이어(610)에 의해 처리된다. 제1 5x5 컨볼루션 레이어(608)의 출력은 3x3 컨볼루션 레이어(612)에 의해 처리되며, 그 출력은 제2 5x5 컨볼루션 레이어(610)의 출력과 결합된다. 이어서, 출력층(614)이 생성되고, 최종 추정 깊이(616)를 생성될 수 있다.
도 7은 본 발명의 몇몇 실시예들에 따른 스킵 연결을 가진 upproj 레이어의 다이어그램을 도시한다. upproj 레이어(700)는 이전 디코딩 블록으로부터 X 입력(702)을 수신한다. X 입력(702)은 출력 크기(703)으로 업샘플링된 다음 3x3 컨볼루션 레이어(704)에 의해 처리될 수 있다. 레이어(700)는 1x1 컨볼루션 레이어(708)에 의해 처리되고, 3x3 컨볼루션 레이어(704)에 통합되는 인코딩 모델로부터 Y 입력(706)을 수신할 수 있다. 레이어(700)는 Z RGB 입력(709)을 수신한다. 단계 710에서, 입력(709)은 출력 크기로 다운샘플링되고, 1x1 컨볼루션 레이어(712)에 의해 처리되고, 3x3 컨볼루션 레이어(704)에 통합될 수 있다. 3x3 컨볼루션 레이어(704)의 출력은 제1 5x5 컨볼루션 레이어(714)와 제2 5x5 컨볼루션 레이어(716)에 의해 처리될 수 있다. 제1 5x5 컨볼루션 레이어(714)의 출력은 3x3 컨볼루션 레이어(718)에 의해 처리되고, 그 출력은 레이어(716)의 출력과 결합되어 디코딩 블록의 출력(720)을 생성할 수 있다.
네트워크(500)에서, 디코딩 블록(528)과 디코딩 블록(538)은 upproj 레이어(600)를 이용할 수 있다. 디코딩 블록(520, 522, 524 및 526) 뿐만 아니라 디코딩 블록(530, 532, 534 및 536)은 스킵 연결을 사용하여 upproj 레이어(700)를 활용한다.
시스템이 이미지를 깊이 범위로 분류하기 위해 코스 깊이 추정을 사용하는 실시예에서는, 코스 깊이 추정 중에 생성된 코스 깊이 맵은 SIDE 네트워크에 대한 입력으로 활용될 수 있다. 상이한 SIDE 네트워크는 결과로 사용될 수 있다.
도 8은 본 발명의 몇몇 실시예들에 따른 깊이 미세화 SIDE 네트워크를 사용하는 깊이 추정의 다이어그램을 도시한다. 깊이 추정 시스템(800)은 입력 영상(802)을 수신하고 코스 깊이 추정(804)을 사용하여 이미지를 깊이 범위로 분류한다. 그런 다음 시스템은 SIDE 네트워크(808)를 사용하여 깊이 미세화 깊이 추정을 위해 이 단계에서 생성된 코스 깊이 맵(806)을 사용한다.
도 9는 본 발명의 몇몇 실시예들에 따른 RGBD(RGB-Depth) 향상 SIDE 네트워크를 사용하는 깊이 추정의 다이어그램을 도시한다. 깊이 추정 시스템(900)은 입력 이미지(902)를 수신하고 코스 깊이 추정(904)을 사용하여 이미지를 깊이 범위로 분류할 수 있다. 그런 다음 시스템은 이 단계에서 생성된 거친 깊이 맵(906)과 SIDE 네트워크(908)를 통한 RGBD 향상 깊이 추정을 위한 입력 이미지(902)를 사용한다. RGBD 향상 깊이 추정의 D 채널은 조밀한 RGB 이미지를 사용할 수 있지만, 코스 깊이 맵의 희박한 샘플링 픽셀이나 조밀한 RGB 이미지 및 코스 깊이 맵의 모든 픽셀를 사용할 수 있다.
도 10은 본 발명의 몇몇 실시예들에 따른 네트워크 환경에서 전자 장치의 블록도를 도시한다. 도 10을 참조하면, 네트워크 환경(1000)에서 전자 장치(1000)는 제1 네트워크(1098)를 통해 전자 장치(1002)와 통신할 수 있다(예를 들어, 단거리 무선 통신 네트워크), 제2 네트워크 1099(예: 장거리 무선 통신 네트워크)를 통해 전자 장치(1004) 또는 서버(1008)와 통신할 수 있다. 상기 전자 장치(1001)는 서버(1008)를 통해 전자 장치(1004)와 통신할 수 있다. 상기 전자 장치(1001)는 프로세서(1020), 메모리(1030), 입력 장치(1050), 사운드 출력 장치(1055), 디스플레이 장치(1060), 오디오 모듈(1070), 센서 모듈(1076), 인터페이스(1077), 햅틱 모듈(1079), 카메라 모듈(1080) 전력 관리 모듈(1088), 배터리(1089), 통신 모듈(1090), 가입자 식별 모듈(SIM, 1096) 또는 안테나 모듈(1097)을 포함할 수 있다. 일 구현예에서, 적어도 구성요소들 중 하나(예를 들어, 디스플레이 장치(1060) 또는 카메라 모듈 1080)는 전자 장치(1001)로부터 생략될 수 있거나, 하나 이상의 다른 구성요소가 전자 장치(1001)에 첨가될 수 있다. 일 구현예에서, 일부 구성요소는 단일 집적 회로(IC)로서 구현될 수 있다. 예를 들어, 센서 모듈(1076, 지문 센서, 홍채 센서, 또는 조도 센서)은 디스플레이 장치(1060)에 내장될 수 있다.
상기 프로세서(1020)는, 예를 들어, 프로세서(1020)와 결합된 전자 장치(1001)의 적어도 하나의 다른 구성요소(예를 들어, 하드웨어 또는 소프트웨어 구성요소)를 제어하는 소프트웨어(예를 들어, 프로그램 1040)를 실행하고, 다양한 데이터 프로세싱을 수행할 수 있거나, 계산할 수 있다. 데이터 처리 또는 계산의 적어도 일부로서, 프로세서(1020)는 휘발성 메모리(1032)에서 다른 구성 요소(예를 들어, 센서 모듈(1076 또는 통신 모듈(1090))으로부터 수신된 명령 또는 데이터를 로드할 수 있으며, 명령 또는 저장된 데이터를 처리하고, 휘발성 메모리(1032)를 저장할 수 있고, 결과 데이터를 비휘발성 메모리(1034)에 저장할 수 있다. 상기 프로세서(1020)는 메인 프로세서(예를 들어, 중앙 처리 장치(CPU) 또는 애플리케이션 프로세서(AP)) 및 주 프로세서(1021)와 독립적으로 또는 함께 작동할 수 있는 보조 프로세서(예를 들어, 그래픽 처리 유닛(GPU), 이미지 신호 프로세서(ISP), 센서 허브 프로세서, 또는 통신 프로세서)를 포함할 수 있다. 부가적으로 또는 대안적으로, 보조 프로세서(1023)는 메인 프로세서(1021)보다 적은 전력을 소비하도록 적응되거나, 특정 기능을 실행하도록 조정될 수 있다. 상기 보조 프로세서(1023)는 메인 프로세서(1021)와 분리되거나 일부로 구현될 수 있다.
상기 보조 프로세서(1023)는 메인 프로세서(1021)가 비활성 상태(예를 들어, 수면) 상태 동안 메인 프로세서(1021) 대신에, 전자 장치(1001)의 구성요소들 중 적어도 하나(예를 들어, 디스플레이 장치(1060, 센서 모듈, 또는 통신 모듈)와 관련된 일부 기능 또는 상태를 제어할 수 있다. 메인 프로세서(1021) 활성 상태(예를 들어, 애플리케이션을 실행)하는 동안에 함께 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(1023, 예를 들어 디지털 신호 처리기, 통신 프로세서)는 다른 구성요소(예를 들어, 카메라 모듈(1080) 또는 통신 모듈(1090))의 일부로서 기능적으로 관련된 것으로 구현될 수 있다.
메모리(1030)는 전자 장치(1001)의 적어도 하나의 구성요소(예를 들어, 프로세서(1020) 또는 센서 모듈(1076))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 다양한 데이터는 예를 들어, 소프트웨어(예를 들어, 프로그램(1040)) 및 이에 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 상기 메모리(1030)는 휘발성 메모리(1032) 또는 비휘발성 메모리(1034)를 포함할 수 있다.
프로그램(1040)은 소프트웨어로서 메모리(1030)에 저장될 수 있고, 예를 들어, 운영체제(OS, 1042), 미들웨어(1044) 또는 애플리케이션(1046)을 포함할 수 있다.
입력 장치(1050)는 전자 장치(1001)의 외부(예를 들어, 사용자)로부터 전자 장치(1001)의 다른 구성요소(예를 들어, 프로세서(1020))에 의해 사용되는 명령 또는 데이터를 수신할 수 있다. 입력 장치(1050)는 예를 들어, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
상기 사운드 출력 장치(1055)는 전자 장치(1001)의 외부로 사운드 신호를 출력할 수 있다. 상기 사운드 출력 디바이스(1055)는 예를 들어, 스피커 또는 수신기를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 레코딩과 같은 일반적인 목적으로 사용될 수 있으며, 수신기는 수신 전화를 수신하는 데 사용될 수 있다. 일 실시예에 따르면, 수신기는 스피커의 일부 또는 분리되는 것으로 구현될 수 있다.
상기 디스플레이 장치(1060)는 전자 장치(1001)의 외부(예를 들어, 사용자)에게 정보를 시각적으로 제공할 수 있다. 디스플레이 장치(1060)는 예를 들어, 디스플레이, 홀로그램 디바이스, 또는 프로젝터 및 제어 회로 중 하나 인 디스플레이, 홀로그램 디바이스, 및 프로젝터 중 하나를 제어하는 것을 포함할 수 있다. 일 실시예에 따르면, 디스플레이 장치(1060)는 터치에 의해 발생되는 힘의 강도를 측정하기 위해 적응된 터치 회로, 또는 센서 회로(예를 들어, 압력 센서)를 검출하도록 조정된 터치 회로를 포함할 수 있다.
오디오 모듈(1070)은 사운드를 전기 신호로 변환할 수 있고 그 반대의 경우도 마찬가지이다. 일 실시예에 따르면, 오디오 모듈(1070)은 입력 장치(1050)를 통해 사운드를 얻을 수 있거나, 외부 전자 장치(1002)의 사운드 출력 장치(1055) 또는 헤드폰을 통해 직접(예를 들어, 유선) 또는 무선으로 전자 장치(1001)와 결합된 사운드를 출력할 수 있다.
센서 모듈(1076)은 전자 장치(1001)의 작동 상태(예를 들어, 전력 또는 온도)를 검출하거나 전자 장치(1001)에 외부의 환경 상태(예를 들어, 사용자의 상태)를 검출한 다음, 감지된 상태에 해당하는 전기 신호 또는 데이터 값을 생성할 수 있다. 상기 센서 모듈(1076)은 예를 들어, 제스처 센서, 자이로 센서, 대기압 센서, 자기 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, 적외선(IR) 센서, 생체 인식 센서, 온도 센서, 습도 센서 또는 조도 센서를 포함할 수 있다.
인터페이스(1077)는 외부 전자 장치(1002)와 직접(예를 들어, 유선) 또는 무선으로 결합되는 전자 장치(1001)에 사용되는 하나 이상의 지정된 프로토콜을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(1077)는 예를 들어, 고화질 멀티미디어 인터페이스(HDMI), 범용 직렬 버스(USB) 인터페이스, 보안 디지털(SD) 카드 인터페이스 또는 오디오 인터페이스를 포함할 수 있다.
연결 단말(1078)은 전자 장치(1001)가 외부 전자 장치(1002)와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단말(1078)은 예를 들어, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예를 들어, 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(1079)은 전기 신호를 촉각 감각 또는 운동 감각을 통해 사용자에 의해 인식될 수 있는 기계적 자극(예를 들어, 진동 또는 움직임) 또는 전기 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(1079)은 예를 들어, 모터, 압전 원소, 또는 전기 자극기를 포함할 수 있다.
카메라 모듈(1080)은 정지 이미지 또는 움직이는 이미지를 포착할 수 있다. 일 실시예에 따르면, 카메라 모듈(1080)은 하나 이상의 렌즈, 이미지 센서, 이미지 신호 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(1088)은 전자 장치(1001)에 공급되는 전력을 관리할 수 있다. 상기 전력 관리 모듈(1088)은 적어도 부분적으로, 예를 들어, 전력 관리 집적 회로(PMIC)로서 구현될 수 있다.
배터리(1089)는 전자 장치(1001)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(1089)는 예를 들어, 충전되지 않은 1차 전지, 충전식 이차 전지, 또는 연료 전지를 포함할 수 있다.
통신 모듈(1090)은 전자 장치(1001)와 외부 전자 장치(예를 들어, 전자 장치(1002), 전자 장치(1004) 또는 서버(1008))사이에서의, 직접(예를 들어, 유선) 통신 채널 또는 무선 통신 채널의 확립을 지원하고, 확립된 통신 채널을 통해 통신을 수행한다. 통신 모듈(1090)은 프로세서(1020, 예를 들어, AP)로부터 독립적으로 작동가능한 하나 이상의 통신 프로세서를 포함할 수 있으며, 직접(예를 들어, 유선) 통신 또는 무선 통신을 지원한다. 일 실시예에 따르면, 통신 모듈(1090)은 무선 통신 모듈(예를 들어, 셀룰러 통신 모듈, 단거리 무선 통신 모듈, 또는 글로벌 네비게이션 위성 시스템(GNSS) 통신 모듈) 또는 유선 통신 모듈(1094)(예를 들어, 근거리 통신망(LAN) 통신 모듈 또는 전력선 통신(PLC) 모듈)을 포함할 수 있다. 이들 통신 모듈 중 하나는 제1 네트워크(1098)를 통해 외부 전자 장치와 통신할 수 있다(예를 들어, Bluetooth™, Wi-Fi, 또는 적외선 단거리 통신 네트워크 데이터 협회(IrDA)의 표준과 같은 단거리 통신). 다른 하나는 제2 네트워크(1099, 예를 들어, 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예를 들어, LAN 또는 광역 네트워크(WAN))와 같은 장거리 통신 네트워크)와 동일할 수 있다. 이러한 다양한 유형의 통신 모듈은 단일 구성 요소(예를 들어, 단일 IC)로서 구현될 수 있거나, 서로 분리되는 다중 구성요소(예를 들어, 다중 IC)로서 구현될 수 있다. 상기 무선 통신 모듈(1092)은 가입자 식별 모듈(1096)에 저장된 가입자 정보(예를 들어, 국제 모바일 가입자 ID, IMSI)를 이용하여 제1 네트워크(1098) 또는 제2 네트워크(1099)와 같은 통신 네트워크에서 전자 장치(1001)를 식별하고 인증할 수 있다.
안테나 모듈(1097)은 전자 장치(1001)의 외부(예를 들어, 외부 전자 장치)에 또는 외부로부터 신호 또는 전력을 송수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(1097)은 하나 이상의 안테나를 포함할 수 있고, 이로부터, 제1 네트워크(1098) 또는 제2 네트워크(1099)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가 통신 모듈(1090, 예를 들어 무선 통신 모듈(1092))에 의해 선택될 수 있다. 신호 또는 전력은 적어도 하나의 선택된 안테나를 통해 통신 모듈(1090)과 외부 전자 장치 사이에서 송수신될 수 있다.
상술한 구성요소 중 적어도 일부는 상호 결합되고 신호(예를 들어, 명령 또는 데이터)를 주변(inter-peripheral) 통신 방식(예를 들어, 버스, 범용 입력 및 출력(GPIO), 직렬 주변 인터페이스(SPI) 또는 모바일 산업 프로세서 인터페이스(MIPI))을 통해 전달할 수 있다.
일 실시예에 따르면, 명령 또는 데이터는 제2 네트워크(1099)와 결합된 서버(1008)를 통해 전자 장치(1001)와 외부 전자 장치(1004) 사이에 전송 또는 수신될 수 있다. 각각의 전자 장치(1002, 1004)는 전자 장치(1001)와 동일한 유형 또는 상이한 타입의 장치일 수 있다. 전자 장치(1001)에서 실행되는 모든 또는 일부 작업은 외부 전자 디바이스(1002, 1004, 또는 1008) 중 하나 이상에서 실행될 수 있다. 예를 들어, 전자 장치(1001)가 자동으로 기능 또는 서비스를 수행해야 하거나, 사용자 또는 다른 장치로부터의 요청에 응답하는 경우, 상기 전자 장치(1001)는 기능 또는 서비스를 실행하는 대신, 또는 이에 더하여, 하나 이상의 외부 전자 장치에 요청하여 기능 또는 서비스의 적어도 일부를 수행할 수 있다. 요청을 수신하는 하나 이상의 외부 전자 장치는 요청된 기능 또는 서비스의 적어도 일부 또는 요청과 관련된 추가 기능 또는 추가 서비스를 수행할 수 있으며, 수행된 결과를 전자 장치(1001)에 전달할 수 있다. 상기 전자 장치(1001)는 요청에 대한 응답의 적어도 일부로서 결과의 추가 처리 유무에 관계없이, 결과를 제공할 수 있다. 이를 위해 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 컴퓨팅 기술이 사용될 수 있다.
일 실시예는 기계(예를 들어, 전자 장치(1001))에 의해 판독가능한 저장 매체에 저장되는 하나 이상의 명령어(예를 들어, 내부 메모리(1036) 또는 외장 메모리(1038))를 포함하는 소프트웨어(예를 들어, 프로그램 1040)로서 구현될 수 있다. 예를 들어, 전자 장치(1001)의 프로세서는 저장 매체에 저장된 하나 이상의 명령들 중 적어도 하나를 호출하고, 프로세서의 제어 하에 하나 이상의 다른 구성요소를 사용하거나 사용하지 않고 명령을 실행할 수 있다. 따라서, 기계는 호출된 적어도 하나의 명령에 따라 적어도 하나의 기능을 수행하도록 작동될 수 있다. 하나 이상의 명령은 해석기(interpreter)에 의해 실행 가능한 코드 또는 컴파일러에 의해 생성된 코드를 포함할 수 있다. 기계 판독 가능한 저장 매체는 비일시적인 저장 매체의 형태로 제공될 수 있다. "비 일시적"이라는 용어는 저장 매체가 유형(tangible) 장치이며, 신호(예를 들어, 전자파)를 포함하지 않음을 나타내지만, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 것과 데이터는 저장 매체에 일시적으로 저장하는 것을 식별하지 않는다.
일 실시예에 따르면, 본원의 방법은 컴퓨터 프로그램 제품에 포함 및 제공될 수 있다. 상기 컴퓨터 프로그램 제품은 판매자와 구매자 간의 제품으로 거래될 수 있다. 상기 컴퓨터 프로그램 제품은 기계 판독 가능한 저장 매체(예를 들어, CD-ROM)의 형태로 배포되거나, 애플리케이션 스토어(예를 들어, Play StoreTM)를 통해 온라인으로 배포(다운로드 또는 업로드)되거나 또는 두 사용자 장치(예를 들어, 스마트폰) 사이에서 직접 배포될 수 있다. 온라인으로 배포하는 경우, 컴퓨터 프로그램 제품의 적어도 일부가 제조업체 서버의 메모리, 애플리케이션 저장소의 서버 또는 릴레이 서버와 같이 기계 판독가능한 저장 매체에 일시적으로 생성되거나 적어도 일시적으로 저장될 수 있다.
일 실시예에 따르면, 상술한 구성요소의 각 구성요소(예를 들어, 모듈 또는 프로그램)는 단일 엔티티 또는 다중 엔티티를 포함할 수 있다. 상술한 구성요소 들 중 하나 이상이 생략될 수 있거나, 하나 이상의 다른 구성요소가 첨가될 수 있다. 대안적으로 또는 부가적으로, 복수의 구성요소(예를 들어, 모듈 또는 프로그램)는 단일 구성요소로 통합될 수 있다. 이 경우, 통합된 구성요소는 여전히 통합 전에 복수 구성 요소 중 대응하는 하나에 의해 수행되는 것과 동일하거나 유사한 방식으로 복수 구성 요소 중 각각의 하나 이상의 기능을 수행할 수 있다. 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 작업은 순차적으로, 병렬적으로, 반복적으로 또는 경험적 접근적으로(heuristically) 수행될 수 있거나, 또는 하나 이상의 작업이 다른 순서로 실행되거나 생략될 수 있거나, 하나 이상의 다른 작업이 추가될 수 있다.
통상의 기술자에 의해 인식될 바와 같이, 본원에 기재된 혁신적인 개념은 광범위한 애플리케이션에 걸쳐 변형 및 다양화될 수 있다. 따라서 청구된 범위는 위에서 언급한 특정 예시적인 교시에 한정되어서는 안 되며, 대신 다음의 청구항과 그의 등가물에 의해 결정될 수 있다.
300: 깊이 추정 시스템 302: 입력 이미지
304: 깊이 범위 분류 306: 깊이 범위
308: 깊이 범위 추정 310: 출력

Claims (20)

  1. 이미지 깊이 정보를 결정하는 방법에 있어서,
    이미지 입력을 수신하고,
    제1 네트워크를 이용하여, 제1 깊이 범위 및 상기 제1 깊이 범위와 상이한 제2 깊이 범위를 포함하는 복수의 후보 깊이 범위 중 상기 제1 깊이 범위에 입력된 이미지를 분류하고,
    상기 제1 깊이 범위에 대한 깊이 맵을 얻도록 최적화된 제2 네트워크, 및 상기 제2 깊이 범위에 대한 깊이 맵을 얻도록 최적화된 제3 네트워크를 포함하는 복수의 후보 네트워크로부터, 상기 제1 깊이 범위에 상기 입력된 이미지를 분류하는 것에 응답하여, 상기 제2 네트워크를 선택하고,
    상기 제2 네트워크를 적용하여, 상기 입력된 이미지의 깊이 맵을 결정하는 것을 포함하는 방법.
  2. 제1항에 있어서,
    상기 입력된 이미지를 분류하는 것은 코스(coarse) 깊이 추정을 기반으로 수행되는 방법.
  3. 제2항에 있어서,
    상기 제2 네트워크를 적용함으로써 상기 이미지의 상기 깊이 맵을 결정하는 것은 상기 코스 깊이 추정에 의해 발생된 코스 깊이 맵을 깊이 미세화 SIDE(Single Image Depth Estimation) 네트워크에 대한 입력으로 활용하는 방법.
  4. 제3항에 있어서,
    상기 제2 네트워크를 적용함으로써 상기 이미지의 상기 깊이 맵을 결정하는 것은 상기 코스 깊이 맵 및 상기 입력된 이미지를 RGBD(RGB-Depth) 향상 SIDE 네트워크에 대한 RGBD 입력으로 활용하는 방법.
  5. 제2항에 있어서,
    상기 코스 깊이 추정은 상기 입력된 이미지의 최대 깊이를 계산하고, 상기 최대 깊이와 깊이 범위 임계값을 비교함으로써 수행되는 방법.
  6. 제1항에 있어서,
    상기 입력된 이미지를 분류하는 것은 상기 입력된 이미지를 미리 정해진 장면으로 분류하는 것을 포함하는 방법.
  7. 제6항에 있어서,
    상기 입력된 이미지를 미리 정해진 장면으로 분류하는 것은 과반수 투표(majority voting)를 기반으로 수행되는 방법.
  8. 제6항에 있어서,
    상기 입력된 이미지를 미리 정해진 장면으로 분류하는 것은 가중 투표(weighted voting)를 기반으로 수행되는 방법.
  9. 제1항에 있어서,
    상기 제2 네트워크를 적용함으로써 상기 이미지의 상기 깊이 맵을 결정하는 것은,
    SIDE 네트워크를 이용하여 상기 입력된 이미지를 인코딩하고,
    상기 SIDE 네트워크를 이용하여 회귀 깊이 디코딩 브랜치(branch)를 가지고, 상기 입력된 이미지를 디코딩하는 것을 포함하는 방법.
  10. 제1항에 있어서,
    상기 제2 네트워크를 적용함으로써 상기 이미지의 상기 깊이 맵을 결정하는 것은,
    SIDE 네트워크를 이용하여 상기 입력된 이미지를 인코딩하고,
    상기 SIDE 네트워크를 이용하여 깊이 분류 디코딩 브랜치(branch)를 가지고, 상기 입력된 이미지를 디코딩하는 것을 포함하는 방법.
  11. 이미지 깊이 정보를 결정하는 시스템에 있어서,
    메모리 및
    이미지 입력을 수신하고,
    제1 네트워크를 이용하여, 제1 깊이 범위 및 상기 제1 깊이 범위와 상이한 제2 깊이 범위를 포함하는 복수의 후보 깊이 범위 중 상기 제1 깊이 범위에 입력된 이미지를 분류하고,
    상기 제1 깊이 범위에 대한 깊이 맵을 얻도록 최적화된 제2 네트워크, 및 상기 제2 깊이 범위에 대한 깊이 맵을 얻도록 최적화된 제3 네트워크를 포함하는 복수의 후보 네트워크로부터, 상기 제1 깊이 범위에 상기 입력된 이미지를 분류하는 것에 응답하여, 상기 제2 네트워크를 선택하고,
    상기 제2 네트워크를 적용하여, 상기 입력된 이미지의 깊이 맵을 결정하는 프로세서를 포함하는 시스템.
  12. 제11항에 있어서,
    상기 프로세서는 코스(coarse) 깊이 추정을 기반으로 상기 입력된 이미지를 분류하는 것을 수행하는 시스템.
  13. 제12항에 있어서,
    상기 프로세서는 상기 코스 깊이 추정에 의해 발생된 코스 깊이 맵을 깊이 미세화 SIDE(Single Image Depth Estimation) 네트워크에 대한 입력으로 활용하여, 상기 제2 네트워크를 적용함으로써, 상기 이미지의 상기 깊이 맵을 결정하는 시스템.
  14. 제13항에 있어서,
    상기 프로세서는 상기 코스 깊이 맵 및 상기 입력된 이미지를 RGBD(RGB-Depth) 향상 SIDE 네트워크에 대한 RGBD 입력으로 활용하여, 상기 제2 네트워크를 적용함으로써 상기 이미지의 상기 깊이 맵을 결정하는 시스템.
  15. 제12항에 있어서,
    상기 코스 깊이 추정은 상기 입력된 이미지의 최대 깊이를 계산하고, 상기 최대 깊이와 깊이 범위 임계값을 비교함으로써 수행되는 시스템.
  16. 제11항에 있어서,
    상기 프로세서는 상기 입력된 이미지를 미리 정해진 장면으로 분류함으로써 상기 입력된 이미지를 분류하는 시스템.
  17. 제16항에 있어서,
    상기 입력된 이미지를 미리 정해진 장면으로 분류하는 것은 과반수 투표(majority voting)를 기반으로 수행되는 시스템.
  18. 제16항에 있어서,
    상기 입력된 이미지를 미리 정해진 장면으로 분류하는 것은 가중 투표(weighted voting)를 기반으로 수행되는 시스템.
  19. 제11항에 있어서,
    상기 프로세서는,
    SIDE 네트워크를 이용하여 상기 입력된 이미지를 인코딩하고,
    상기 SIDE 네트워크를 이용하여 회귀 깊이 디코딩 브랜치(branch)를 가지고, 상기 입력된 이미지를 디코딩함으로써,
    상기 제2 네트워크를 적용하여, 상기 이미지의 상기 깊이 맵을 결정하는 시스템.
  20. 제11항에 있어서,
    상기 프로세서는, 상기 이미지의 상기 깊이 맵을 결정하는 것은,
    SIDE 네트워크를 이용하여 상기 입력된 이미지를 인코딩하고,
    상기 SIDE 네트워크를 이용하여 깊이 분류 디코딩 브랜치(branch)를 가지고, 상기 입력된 이미지를 디코딩함으로써,
    상기 제2 네트워크를 적용하여, 상기 이미지의 상기 깊이 맵을 결정하는 시스템.
KR1020200025956A 2019-04-09 2020-03-02 이미지의 깊이 정보를 결정하는 방법 및 시스템 KR102557561B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962831598P 2019-04-09 2019-04-09
US62/831,598 2019-04-09
US16/574,770 2019-09-18
US16/574,770 US11094072B2 (en) 2019-04-09 2019-09-18 System and method for providing single image depth estimation based on deep neural network

Publications (2)

Publication Number Publication Date
KR20200119714A KR20200119714A (ko) 2020-10-20
KR102557561B1 true KR102557561B1 (ko) 2023-07-19

Family

ID=72748431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200025956A KR102557561B1 (ko) 2019-04-09 2020-03-02 이미지의 깊이 정보를 결정하는 방법 및 시스템

Country Status (4)

Country Link
US (1) US11094072B2 (ko)
KR (1) KR102557561B1 (ko)
CN (1) CN111798502A (ko)
TW (1) TWI822987B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11589031B2 (en) * 2018-09-26 2023-02-21 Google Llc Active stereo depth prediction based on coarse matching
US11416998B2 (en) * 2019-07-30 2022-08-16 Microsoft Technology Licensing, Llc Pixel classification to reduce depth-estimation error
US11341719B2 (en) * 2020-05-07 2022-05-24 Toyota Research Institute, Inc. System and method for estimating depth uncertainty for self-supervised 3D reconstruction
US11532091B2 (en) * 2020-07-13 2022-12-20 Samsung Electronics Co., Ltd. Guided backpropagation-gradient updating for image processing task using redundant information from image
US11893668B2 (en) 2021-03-31 2024-02-06 Leica Camera Ag Imaging system and method for generating a final digital image via applying a profile to image information

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130336580A1 (en) 2012-06-19 2013-12-19 Palo Alto Research Center Incorporated Weighted feature voting for classification using a graph lattice
US20160078312A1 (en) 2014-09-12 2016-03-17 Canon Kabushiki Kaisha Image processing method and apparatus using training dictionary
US20160350930A1 (en) 2015-05-28 2016-12-01 Adobe Systems Incorporated Joint Depth Estimation and Semantic Segmentation from a Single Image
US20180315166A1 (en) 2017-04-28 2018-11-01 Qualcomm Incorporated Depth assisted auto white balance
US20200242788A1 (en) 2017-10-04 2020-07-30 Google Llc Estimating Depth Using a Single Camera

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9177381B2 (en) 2010-12-22 2015-11-03 Nani Holdings IP, LLC Depth estimate determination, systems and methods
EP2747028B1 (en) 2012-12-18 2015-08-19 Universitat Pompeu Fabra Method for recovering a relative depth map from a single image or a sequence of still images
US9275078B2 (en) 2013-09-05 2016-03-01 Ebay Inc. Estimating depth from a single image
US10346996B2 (en) 2015-08-21 2019-07-09 Adobe Inc. Image depth inference from semantic labels
CN109087349B (zh) * 2018-07-18 2021-01-26 亮风台(上海)信息科技有限公司 一种单目深度估计方法、装置、终端和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130336580A1 (en) 2012-06-19 2013-12-19 Palo Alto Research Center Incorporated Weighted feature voting for classification using a graph lattice
US20160078312A1 (en) 2014-09-12 2016-03-17 Canon Kabushiki Kaisha Image processing method and apparatus using training dictionary
US20160350930A1 (en) 2015-05-28 2016-12-01 Adobe Systems Incorporated Joint Depth Estimation and Semantic Segmentation from a Single Image
US20180315166A1 (en) 2017-04-28 2018-11-01 Qualcomm Incorporated Depth assisted auto white balance
US20200242788A1 (en) 2017-10-04 2020-07-30 Google Llc Estimating Depth Using a Single Camera

Also Published As

Publication number Publication date
TWI822987B (zh) 2023-11-21
US11094072B2 (en) 2021-08-17
CN111798502A (zh) 2020-10-20
KR20200119714A (ko) 2020-10-20
US20200327685A1 (en) 2020-10-15
TW202038184A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
KR102557561B1 (ko) 이미지의 깊이 정보를 결정하는 방법 및 시스템
US11055866B2 (en) System and method for disparity estimation using cameras with different fields of view
KR102341456B1 (ko) 2-단계 모션 보상을 가진 콘볼루션 뉴럴 네트워크를 사용하는 비디오 슈퍼 해상도를 위한 방법 및 장치
CN109299315B (zh) 多媒体资源分类方法、装置、计算机设备及存储介质
US20240112035A1 (en) 3d object recognition using 3d convolutional neural network with depth based multi-scale filters
US11270420B2 (en) Method of correcting image on basis of category and recognition rate of object included in image and electronic device implementing same
US11561516B2 (en) Method for processing data using neural network and electronic device for supporting the same
US11048923B2 (en) Electronic device and gesture recognition method thereof
US10769475B2 (en) Method of identifying objects based on region of interest and electronic device supporting the same
US20190251670A1 (en) Electronic device and method for correcting images using external electronic device
US20220189175A1 (en) Electronic device and method for providing service corresponding to selection of object in image
KR20210092138A (ko) 심층 신경망을 이용한 다중 프레임 이미지 및 비디오 처리를 위한 다중 프레임 상황별 어텐션을 위한 시스템 및 방법
US11144197B2 (en) Electronic device performing function according to gesture input and operation method thereof
EP3850826B1 (en) Electronic device for controlling frame rate of image sensor and method thereof
TW202240535A (zh) 用於影像處理的方法及系統
KR20230025337A (ko) 분할화 태스크들의 비지도식 학습을 위한 시스템 및 방법
US11211029B2 (en) Electronic device with improved visibility of user interface
CN113362260A (zh) 图像优化方法及装置、存储介质及电子设备
US20190349519A1 (en) Electronic device and image processing method therefor
KR20220016695A (ko) 딥러닝에 기반한 이미지 분할 장치 및 방법
US20230412920A1 (en) Method for executing application, and electronic device supporting same
US20220358776A1 (en) Electronic device and operating method thereof
US11636675B2 (en) Electronic device and method for providing multiple services respectively corresponding to multiple external objects included in image
KR102661596B1 (ko) 이미지에 대한 인식 정보, 인식 정보와 관련된 유사 인식 정보, 및 계층 정보를 이용하여 외부 객체에 대한 인식 결과를 제공하는 전자 장치 및 그의 동작 방법
US20230156317A1 (en) Electronic device for obtaining image at user-intended moment and method for controlling the same

Legal Events

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