KR20220052359A - 듀얼 카메라 및 듀얼 픽셀을 통한 조인트 깊이 예측 - Google Patents

듀얼 카메라 및 듀얼 픽셀을 통한 조인트 깊이 예측 Download PDF

Info

Publication number
KR20220052359A
KR20220052359A KR1020227009942A KR20227009942A KR20220052359A KR 20220052359 A KR20220052359 A KR 20220052359A KR 1020227009942 A KR1020227009942 A KR 1020227009942A KR 20227009942 A KR20227009942 A KR 20227009942A KR 20220052359 A KR20220052359 A KR 20220052359A
Authority
KR
South Korea
Prior art keywords
depth
scene
depth information
joint
image
Prior art date
Application number
KR1020227009942A
Other languages
English (en)
Inventor
라훌 가그
닐 와드화
숀 파넬로
크리스찬 하네
인다 장
세르지오 오르츠 에스콜라노
야엘 프리치 케이난
마크 레보이
샤람 이자디
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220052359A publication Critical patent/KR20220052359A/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
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • 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/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0445
    • 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
    • G06N3/0454
    • G06N3/0481
    • 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
    • G06T5/002
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • 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/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

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

Abstract

예시적인 구현은 듀얼 카메라 및 듀얼 픽셀로부터의 조인트 깊이 예측에 관한 것이다. 예시적인 방법은 제 1 소스로부터 장면을 나타내는 제 1 세트의 깊이 정보 및 제 2 소스로부터 장면을 나타내는 제 2 세트의 깊이 정보를 획득하는 것을 수반할 수 있다. 방법은 신경망을 사용하여 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하는 단계를 더 포함할 수 있다. 신경망은 제1 세트의 깊이 정보와 제2 세트의 깊이 정보의 조합에 기초하여 조인트 깊이 맵을 결정할 수 있다. 또한, 방법은 조인트 깊이 맵에 기초하여 장면을 나타내는 이미지를 수정하는 것을 포함할 수 있다. 예를 들어, 조인트 깊이 맵에 기초하여 이미지의 배경 부분이 부분적으로 흐려(블러)질 수 있다.

Description

듀얼 카메라 및 듀얼 픽셀을 통한 조인트 깊이 예측
본 명세서는 듀얼 카메라 및 듀얼 픽셀을 통한 조인트 깊이 예측에 관한 것이다.
휴대 전화, 개인용 컴퓨터 및 태블릿을 포함한 많은 최신 컴퓨팅 장치에는 스틸 및/또는 비디오 카메라와 같은 이미지 캡처 장치가 포함된다. 이미지 캡처 장치는 사람, 동물, 풍경 및/또는 객체를 포함하는 이미지와 같은 이미지를 캡처할 수 있다.
일부 이미지 캡처 장치 및/또는 컴퓨팅 장치는 캡처된 이미지를 수정하거나 수정할 수 있다. 예를 들어, 일부 이미지 캡처 장치는 플래시 조명과 같은 밝은 조명을 사용하여 캡처한 이미지에 존재할 수 있는 사람 및 동물의 눈이 붉게 나타나는 것과 같은 인공물을 제거하는 "적목" 보정을 제공할 수 있다. 캡처된 이미지가 수정된 후 수정된 이미지를 저장, 표시, 전송, 종이에 인쇄 및/또는 다른 방식으로 사용할 수 있다. 경우에 따라 객체의 이미지는 이미지 캡처 중 조명이 약할 수 있다.
본 명세서에는 장면의 요소들의 깊이를 추정하는데 사용될 수 있는 깊이 추정 기술에 관한 실시예가 개시된다. 특히, 컴퓨팅 시스템은 장면의 조인트 깊이 맵을 생성하기 위해 다중 소스(예: 카메라 및/또는 기타 컴퓨팅 시스템)에서 얻은 추정 데이터(예: 원본 이미지 및/또는 예비 깊이 맵)를 결합하도록 신경망을 훈련할 수 있다. 다중 추정 기술을 활용함으로써, 신경망은 기술의 덜 정확한 측면에 덜 의존하면서 각 기술의 더 정확한 측면에 의존하는 방식으로 깊이 추정 기술을 결합할 수 있다. 신경망에 의한 깊이 맵 출력은 후속적으로 하나 이상의 원본 이미지(또는 이미지 집합)의 기능을 수정하는 데 사용될 수 있다. 예를 들어, 이미지의 배경 부분은 전경에 있는 하나 이상의 객체를 돋보이게 하기 위해 부분적으로 흐려(blurred)질 수 있다.
따라서, 제1 예시적인 실시예에서, 방법은 컴퓨팅 시스템에서 제1 소스로부터 장면을 나타내는 제1 세트의 깊이 정보 및 제2 소스로부터 장면을 나타내는 제2 세트의 깊이 정보를 획득하는 단계를 포함한다. 이 방법은 또한 컴퓨팅 시스템에서 신경망을 사용하여 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하는 단계를 포함한다. 여기서 신경망은 제1 세트의 깊이 정보와 제2 세트의 깊이 정보의 조합에 기초하여 조인트 깊이 맵을 결정한다. 방법은 조인트 깊이 맵에 기초하여 장면을 나타내는 이미지를 수정하는 단계를 더 포함한다.
제2 예시적인 실시예에서, 제조 물품은 카메라 장치에 의한 실행 시에 카메라 장치가 제1 예시적인 실시예에 따른 동작을 수행하게 하는 프로그램 명령어가 저장된 비일시적 컴퓨터 판독 가능 매체를 포함할 수 있다.
제3 예시적인 실시예에서, 시스템은 복수의 소스, 컴퓨팅 시스템, 뿐만 아니라 데이터 저장 및 프로그램 명령어를 포함할 수 있다. 프로그램 명령어는 데이터 저장소에 저장될 수 있고, 적어도 하나의 프로세서에 의한 실행 시 컴퓨팅 시스템 이 제1 예시적인 실시예에 따른 동작을 수행하게 할 수 있다.
제4 예시적인 실시예에서, 시스템은 제1 예시적인 실시예의 각각의 동작을 수행하기 위한 다양한 수단을 포함할 수 있다.
전술한 요약은 단지 예시적인 것이며 어떤 식으로든 제한하려는 의도가 아니다. 위에서 설명된 예시적인 양태, 실시예 및 특징에 더하여, 추가 양태, 실시예 및 특징은 도면 및 다음의 상세한 설명을 참조하여 명백해질 것이다.
도 1은 예시적인 실시예에 따른 컴퓨팅 장치의 개략도를 도시한다.
도 2는 예시적인 실시예에 따른 서버 장치 클러스터의 개략도를 도시한다.
도 3a는 예시적인 실시예에 따른 ANN 아키텍처를 도시한다.
도 3b는 예시적인 실시예에 따른 ANN 훈련을 도시한다.
도 4a는 예시적인 실시예에 따른, 컨볼루션 신경망(CNN) 아키텍처를 도시한다.
도 4b는 예시적인 실시예에 따른 컨볼루션을 도시한다.
도 5는 예시적인 실시예에 따른, ANN 및 모바일 장치를 포함하는 시스템을 도시한다.
도 6은 예시적인 실시예에 따른, 장면의 깊이 추정치를 생성하기 위한 시스템을 도시한다.
도 7a는 예시적인 실시예에 따른, 조인트 깊이 추정 아키텍처를 위한 제1 배열을 도시한다.
도 7b는 예시적인 실시예에 따른, 도 7a에 도시된 조인트 깊이 추정 아키텍처의 구현을 도시한다.
도 8a는 예시적인 실시예에 따른 조인트 깊이 추정 아키텍처의 제2 배열을 도시한다.
도 9는 예시적인 실시예에 따른 조인트 깊이 추정에 기초한 이미지의 수정을 도시한다.
도 10은 예시적인 실시예에 따른 방법의 흐름도이다.
도 11은 여기에 제시된 적어도 일부 실시예에 따라 배열된, 컴퓨팅 시스템에서 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램의 개념적 부분도를 예시하는 개략도이다.
예시적인 방법, 장치 및 시스템이 여기에 설명되어 있다. "예시" 및 "예시적인"이라는 단어는 본 명세서에서 "예시, 예 또는 예시로서 제공되는"을 의미하는 것으로 이해되어야 한다. "예시" 또는 "예시적"인 것으로 본 명세서에 설명된 임의의 실시예 또는 특징은 반드시 다른 실시예 또는 특징보다 바람직하거나 유리한 것으로 해석되어서는 안 된다. 본 명세서에 제시된 주제의 범위를 벗어나지 않으면서, 다른 실시예가 이용될 수 있고, 다른 변경이 이루어질 수 있다.
깊이 추정치(Depth estimation)는 이미지 처리를 포함하여 여러 응용이 있는 기술이다. 깊이 추정 데이터는 종종 깊이 맵으로 구성되며, 이는 뷰포인트(예를 들어, 하나 이상의 카메라의 관점(perspective))으로부터 장면 객체의 표면의 거리에 관한 정보를 저장하는 맵 또는 다른 데이터 구조일 수 있다. 예를 들어, 카메라로 캡처한 이미지의 깊이 맵은 카메라에서 이미지에 묘사된 객체의 표면까지의 거리와 관련된 정보를 지정할 수 있으며, 여기서 깊이 맵은 픽셀 단위(또는 기타) 기준으로 이미지에 대한 정보를 지정할 수 있다. 예를 들어 깊이 맵은 이미지의 각 픽셀에 대한 깊이 값을 포함할 수 있으며, 여기서 이미지(IM)의 픽셀(PIX)에 대한 깊이 맵(DM)의 깊이 값(DV1)은 시점으로부터 이미지(IM)의 픽셀(PIX)에 의해 묘사된 하나 이상의 객체까지의 거리를 나타낸다. 다른 예로서, 이미지는 영역(예를 들어, N x M 픽셀의 블록, 여기서 N 및 M은 양의 정수임)으로 분할될 수 있고 깊이 맵은 이미지의 픽셀의 각 영역에 대한 깊이 값을 포함할 수 있다(예를 들어, 이미지 IM의 픽셀 영역 PIXR에 대한 깊이 맵 DM의 깊이 값 DV2는 시점으로부터 이미지 IM의 픽셀 영역 PIXR에 의해 묘사된 하나 이상의 객체까지의 거리를 나타냄). 다른 깊이 맵 및 이미지의 픽셀과 깊이 맵의 깊이 값 간의 대응도 가능하다.
추정(추정치)의 정확도를 감소시킬 수 있는 몇 가지 장애물(obstacle)이 있는 깊이 맵을 개발하는 다양한 방법이 있다. 일 양태에서, 장면에 대한 깊이 맵을 추정하는 것은 다중 카메라로부터 캡처된 이미지를 사용하여 스테레오 비전을 수행하는 것을 포함할 수 있다. 인간 시각의 3차원(3D) 감지와 유사하게, 스테레오 비전은 장면을 묘사하는 하나 이상의 이미지 쌍 내에서 장면의 동일한 지점을 나타내는 이미지 픽셀을 식별하고 비교하는 것을 포함할 수 있다. 특히, 카메라는 약간 다른 시점에서 장면을 캡처하기 때문에 각 카메라에서 해당 지점까지 뻗어 있는 광선을 사용하여 삼각 측량을 통해 지점 내의 한 지점의 3D 위치를 결정할 수 있다. 프로세서가 이미지에 걸쳐 더 많은 픽셀 쌍을 식별함에 따라, 프로세서는 장면에 대한 깊이 맵이 생성될 수 있을 때까지 장면 내의 더 많은 포인트에 깊이를 할당할 수 있다. 일부 경우에는 스테레오 이미지의 픽셀에 대한 대응(correspondences)을 얻기 위해 상관 스테레오 방법이 사용되며, 이로 인해 각 스테레오 이미지와 함께 생성된 수천 개의 3D 값이 생성될 수 있다.
듀얼 카메라로 캡처한 장면을 나타내는 이미지 쌍을 비교할 때 프로세서는 이미지 간에 하나 이상의 약간의 차이를 감지할 수 있다. 예를 들어, 카메라에 대해 장면의 전경(foreground)에 위치된 객체는 이미지를 비교할 때 배경(background)이 이동(shift)하는 것처럼 보이지만(예: 수직 이동) 상대적으로 정적인 것처럼 보일 수 있다. 서로 다른 이미지에서 배경이 이동하는 것을 시차(parallax)라고 하며 이는 장면 내 표면의 깊이(depths of surface)를 결정하는 데 사용할 수 있다. 위에서 지시된 바와 같이, 프로세서는 뷰들 사이의 대응하는 픽셀을 식별하고 카메라의 기준선(즉, 카메라들 사이의 거리)을 추가로 인수분해함으로써 시차의 크기 및 이에 따른 장면의 하나 이상의 포인트의 깊이를 추정할 수 있다.
장면의 깊이 맵을 추정하는 데 사용되는 또 다른 접근 방식은 단일 카메라를 사용하는 것이다. 특히, 장면의 다른 관점(perspective)을 얻기 위해 여러 대의 카메라를 사용하는 것보다 카메라는 듀얼 픽셀을 사용하여 장면의 약간 다른 관점을 생성할 수 있다. 듀얼 픽셀 기술은 듀얼 카메라를 미러링하지만 픽셀을 서로 다른 부분(예: 두 부분)으로 나누는 것을 포함한다. 각 픽셀의 다른 부분은 깊이가 추정될 수 있도록 하는 다른 관점에서 장면을 나타낼 수 있다. 예를 들어, 듀얼 픽셀 이미지는 왼쪽 픽셀과 오른쪽 픽셀과 같이 두 부분으로 분할된 픽셀을 포함할 수 있다. 일부 예에서, 픽셀의 상이한 부분은 서브픽셀로 지칭될 수 있다.
픽셀을 다른 부분으로 분할하여 이미지를 분할하고 왼쪽 픽셀 이미지와 오른쪽 픽셀 이미지와 같은 두 개의 이미지로 분석할 수 있다. 왼쪽 픽셀 이미지와 오른쪽 픽셀 이미지는 듀얼 카메라에 대해 위에서 설명한 깊이 추정 프로세스와 유사한 방식으로 처리될 수 있다. 특히, 왼쪽 및 오른쪽 픽셀 이미지로부터 대응하는 픽셀 쌍은 장면 내의 표면의 깊이를 추정하기 위해 서로 다른 픽셀 부분(예를 들어, 몇 밀리미터 이하) 사이의 기준선과 함께 쌍을 이루고 사용될 수 있다. 따라서, 듀얼 픽셀의 다른 부분 사이의 기준선이 듀얼 카메라 간의 기준선보다 훨씬 작을 수 있지만, 프로세서는 장면의 깊이 맵을 유도하기 위해 이미지 내의 듀얼 픽셀을 사용하여 위에서 설명한 것과 유사한 깊이 추정 프로세스를 수행할 수 있다.
위에 도시된 바와 같이, 디바이스(장치)는 다양한 방식으로 장면의 깊이를 추정하도록 구성될 수 있다. 어떤 상황에서는 장면의 깊이 맵을 추정하는 데 사용되는 기술이 깊이 맵의 정확도에 영향을 줄 수 있다. 특히, 카메라에 대한 객체의 근접성은 깊이 추정(추정치)의 정확도에 영향을 미칠 수 있다. 듀얼 카메라 사이의 기준선(baseline)이 클수록 객체가 카메라 근처(예: 1미터 이하)에 위치할 때 장면에 대한 깊이 맵의 정확도가 떨어질 수 있다. 반대로, 듀얼 픽셀과 관련된 더 작은 기준선은 카메라에서 멀리 떨어진 표면(예: 10미터 이상)의 깊이 추정 정확도를 감소시킬 수 있다. 따라서 두 기술을 모두 이미지의 깊이 맵을 결정하는 데 사용할 수 있지만 기술 중 하나가 더 나은 결과를 생성할 수 있는 일부 상황이 있다. 따라서, 컴퓨팅 시스템이 복잡도를 줄이고 장면에 대해 생성된 깊이 맵의 정확도를 증가시킬 수 있는 방식으로 위의 기술을 사용할 수 있는 것이 바람직할 수 있다.
여기에 제시된 예는 듀얼 카메라 및 듀얼 픽셀로부터 조인트 깊이 예측(joint depth prediction)을 위한 방법 및 시스템을 설명한다. 위에서 설명된 상이한 깊이 추정 기술과 연관된 잠재적인 장애물을 극복하기 위해, 예시적인 실시예는 장면에 대한 깊이 맵을 생성하기 위해 다중 깊이 추정 기술의 조합을 사용하는 것을 수반할 수 있다. 예를 들어, 컴퓨팅 시스템은 장면에 대한 깊이 맵을 생성하기 위해 듀얼 카메라 기술 및 듀얼 픽셀 기술을 사용할 수 있다. 깊이 맵을 생성할 때 듀얼 카메라와 관련된 더 큰 시차는 카메라에서 더 멀리 위치한 객체에 대한 더 정확한 깊이 추정치를 가능하게 하는 반면, 듀얼 픽셀과 연관된 더 작은 시차는 근처에 위치한 객체에 대한 더 정확한 깊이 추정치를 가능하게 할 수 있다.
일부 예들에서, 스테레오 이미지들을 사용하여 도출된 깊이 추정치는 듀얼 픽셀 기술을 사용하여 개선될 수 있다. 특히, 시차는 의미론적, 디포커스 및 기타 잠재적인 큐(cue)를 포함하여 이미지에 존재하는 많은 깊이 큐 중 하나라는 관측치에 기초하여 깊이 추정치의 정확도가 향상될 수 있다. 예시적인 의미론적 큐는 상대적으로 가까운 객체가 상대적으로 멀리 있는 객체보다 이미지에서 더 많은 픽셀을 차지한다는 추론일 수 있다. 디포커스 큐는 관찰자(observer)(예: 카메라)로부터 상대적으로 멀리 있는 포인트는 상대적으로 가까운 포인트(지점)보다 덜 선명하거나 흐릿(blurrier)하게 보인다. 일부 예에서, 신경망은 입력 듀얼 픽셀 이미지에 대한 깊이 맵을 예측하기 위해 듀얼 픽셀 이미지의 시차 큐, 의미론적 큐, 및 기타 에스팩트(aspects)을 사용하도록 훈련될 수 있다.
일부 실시예에서, 신경망은 조인트 깊이 예측을 생성하기 위해 깊이 데이터(예를 들어, 카메라로부터의 이미지 및/또는 깊이 추정치)의 가중 분석(weighted analysis)을 수행하도록 훈련될 수 있다. 이러한 방식으로, 조인트 깊이 맵은 각 깊이 추정 기술의 보다 정확한 에스팩트를 결합하면서 기술의 덜 정확한 에스팩트에 덜(또는 전혀 의존하지 않음) 의존할 수 있다. 훈련을 통해 신경망은 후속적으로 이미지를 수정하거나 다른 이미지 처리 기술을 수행하는 데 사용할 수 있는 최적의 조인트 깊이 추정치를 생성하는 방식으로 깊이 정보 입력에 가중치를 부여하는 방법을 학습할 수 있다.
예를 들어, 신경망이 이미지를 캡처하는 카메라로 구성된 장치의 뷰포인트에서 멀리 떨어진 장면에 대한 조인트 깊이 맵을 추정할 때, 신경망은 단일 카메라를 사용하여 이미지에서 파생된 깊이 정보에 적용된 가중치에 비해 다중 카메라 스테레오 배열을 사용하여 캡처된 이미지에서 파생된 깊이 정보에 더 큰 가중치를 적용할 수 있다. 이러한 방식으로 다중 카메라 스테레오 비전의 강도는 단일 카메라 기술에서 파생된 영향보다 최종 조인트 깊이 맵에 더 큰 영향을 미칠 수 있다. 다른 예로, 신경망이 카메라로 구성된 장치의 뷰포인트 부근에 위치한 장면에 대한 조인트 깊이 맵을 추정하는 경우, 신경망은 다중 카메라 스테레오 기술에 적용된 가중치에 비해 단일 카메라 기술을 사용하여 캡처된 이미지(예를 들어, 듀얼 픽셀, 녹색 서브픽셀)로부터 파생된 깊이 정보에 더 큰 가중치를 적용할 수 있다. 단일 카메라 기술은 근거리 장면에 대해 생성된 조인트 깊이 맵에 긍정적인 영향을 줄 수 있는 보다 정확한 결과를 제공할 수 있다.
조인트 깊이 맵은 다양한 응용분야에 사용될 수 있다. 일부 예에서, 조인트 깊이 예측은 하나 이상의 이미지를 수정하는 데 사용될 수 있다. 예를 들어, 이미지를 부분적으로 흐리게 하기 위해, 깊이 데이터에 의해 결정된 바와 같이 카메라(들)의 뷰포인트로부터 더 멀리 떨어진 깊이를 갖는 이미지의 배경 부분이 적어도 부분적으로 흐려(블러)질 수 있다. 적절한 블러 소프트웨어는 깊이 맵을 사용하여 전경 객체를 선명한 초점으로 유지하면서 이미지의 배경에 자연스럽고 만족스러운 깊이 종속 블러(depth-dependent blur)를 적용할 수 있다. 또한 이미지의 깊이 맵은 컴퓨터 사진, 증강 현실 및 이미지 처리에서 다른 애플리케이션을 가질 수 있다.
일부 실시예에서, 시스템은 듀얼 카메라 기술 및 듀얼 픽셀 기술을 사용하여 장면 내의 상이하게 배향된 라인 및 텍스처에 관한 상보적(complementary) 정보를 추가로 획득할 수 있다. 특히, 각 기술의 기준선이 직교할 때 시스템은 장면 내에서 라인과 텍스처의 서로 다른 방향을 식별하기 위해 기술의 조합을 사용할 수 있다. 예를 들어, 듀얼 카메라는 이미지 내에서 동일한 방향을 갖는 라인의 깊이를 추정하기 어렵게 할 수 있는 기준 방향(baseline orientation)(예: 수직 또는 수평 기준)을 가질 수 있다. 듀얼 픽셀의 기준선이 듀얼 카메라의 기준선 방향에 대한 수직 기준선인 경우 듀얼 픽셀 이미지를 사용하여 듀얼 카메라를 사용하여 감지하기 어려운 라인과 텍스처의 깊이를 추정할 수 있다. 이와 같이, 정보는 전경에 있는 하나 이상의 객체에 대한 이미지의 초점을 향상시키는 부분 블러와 같은 위에서 설명된 바와 같은 하나 이상의 이미지 처리 기술을 수행하는 데 사용될 수 있다. 또한 여러 기술을 사용하여 장치에서 근거리 및 원거리에서 캡처한 세로 모드(portrait-mode) 이미지와 같은 이미지를 개선할 수 있다.
I. 컴퓨팅 장치 및 클라우드 기반 컴퓨팅 환경의 예
다음 실시예는 개시된 ANN 구현을 사용할 수 있는 예시적인 컴퓨팅 장치 및 시스템의 구조적 및 작동적 측면뿐만 아니라 그 특징 및 이점을 설명한다.
도 1은 본 명세서의 실시예에 따라 동작하도록 배열된 컴퓨팅 장치에 포함될 수 있는 컴포넌트 중 일부를 도시하는 컴퓨팅 시스템(100)을 예시하는 단순화된 블록도이다. 컴퓨팅 시스템(100)은 클라이언트 장치(예를 들어, 사용자에 의해 능동적으로 작동되는 장치), 서버 장치(예를 들어, 클라이언트 장치에 계산 서비스를 제공하는 장치), 또는 일부 다른 유형의 계산 플랫폼일 수 있다. 일부 서버 장치는 특정 작업을 수행하기 위해 때때로 클라이언트 장치로 작동할 수 있으며 일부 클라이언트 장치는 서버 기능을 통합할 수 있다.
이 예에서, 컴퓨팅 시스템(100)은 프로세서(102), 메모리(104), 네트워크 인터페이스(106), 및 입력/출력 유닛(108)을 포함하고, 이들 모두는 시스템 버스(110) 또는 유사한 메커니즘에 의해 결합될 수 있다. 일부 실시예에서, 컴퓨팅 시스템(100)은 다른 컴포넌트 및/또는 주변 장치(예를 들어, 분리 가능한 저장 장치, 프린터 등)를 포함할 수 있다.
프로세서(102)는 중앙 처리 장치(CPU), 코프로세서(co-processor)(예: 수학, 그래픽 또는 암호화 코프로세서), 디지털 신호 프로세서(DSP), 네트워크 프로세서, 및/또는 프로세서 동작을 수행하는 집적 회로 또는 제어기의 형태와 같은 임의의 유형의 컴퓨터 처리(프로세싱) 요소 중 하나 이상일 수 있다. 일부 경우에, 프로세서(102)는 하나 이상의 단일 코어 프로세서일 수 있다. 다른 경우에, 프로세서(102)는 복수의 독립적인 처리 유닛(프로세싱 유닛)을 갖는 하나 이상의 다중 코어 프로세서일 수 있다. 프로세서(102)는 또한 최근에 사용된 명령어 및 데이터를 임시로 저장하기 위한 캐시 메모리 뿐만 아니라 실행되고 있는 명령어 및 관련 데이터를 임시로 저장하기 위한 레지스터 메모리를 포함할 수 있다.
메모리(104)는 RAM(random access memory), ROM(read-only memory), 및 비휘발성 메모리를 포함하지만 이에 제한되지 않는 임의의 형태의 컴퓨터 사용 가능 메모리일 수 있다. 여기에는 플래시 메모리, 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 다시 쓰기 가능한 컴팩트 디스크(CD), 다시 쓰기 가능한 디지털 비디오 디스크(DVD) 및/또는 테이프 스토리지가 포함될 수 있다.
컴퓨팅 시스템(100)은 고정 메모리뿐만 아니라 하나 이상의 착탈식 메모리 유닛을 포함할 수 있으며, 후자는 다양한 유형의 보안 디지털(SD) 카드를 포함하지만 이에 한정되지 않는다. 따라서, 메모리(104)는 메인 메모리 유닛뿐만 아니라 장기 저장 장치를 나타낸다. 다른 유형의 메모리에는 생물학적 메모리가 포함될 수 있다.
메모리(104)는 프로그램 명령어 및/또는 프로그램 명령어가 동작할 수 있는 데이터를 저장할 수 있다. 예를 들어, 메모리(104)는 이러한 프로그램 명령어를 비일시적 컴퓨터 판독 가능 매체에 저장할 수 있어, 명령어가 프로세서(102)에 의해 실행되어 본 명세서 또는 첨부 도면에 개시된 방법, 프로세스 또는 동작 중 임의의 것을 수행할 수 있다.
도 1에 도시된 바와 같이, 메모리(104)는 펌웨어(104A), 커널(104B), 및/또는 애플리케이션(104C)을 포함할 수 있다. 펌웨어(104A)는 컴퓨팅 시스템(100)의 일부 또는 전체를 부팅하거나 초기화하는 데 사용되는 프로그램 코드일 수 있다. 커널(104B)은 메모리 관리, 프로세스의 스케줄링 및 관리, 입력/출력, 및 통신을 위한 모듈을 포함하는 운영 체제일 수 있다. 커널(104B)은 또한 운영 체제가 컴퓨팅 시스템(100)의 하드웨어 모듈(예를 들어, 메모리 유닛, 네트워킹 인터페이스, 포트 및 버스)과 통신할 수 있게 하는 장치 드라이버를 포함할 수 있다. 애플리케이션(104C)은 웹 브라우저 또는 이메일 클라이언트와 같은 하나 이상의 사용자 공간 소프트웨어 프로그램과 이러한 프로그램에 의해 사용되는 임의의 소프트웨어 라이브러리일 수 있다. 일부 예에서, 애플리케이션(104C)은 하나 이상의 신경망 애플리케이션을 포함할 수 있다. 메모리(104)는 또한 이들 및 다른 프로그램 및 애플리케이션에 의해 사용되는 데이터를 저장할 수 있다.
네트워크 인터페이스(106)는 이더넷(예를 들어, 패스트 이더넷, 기가비트 이더넷 등)과 같은 하나 이상의 유선 인터페이스의 형태를 취할 수 있다. 네트워크 인터페이스(106)는 또한 동축 케이블 또는 전력선과 같은 하나 이상의 비이더넷 매체를 통한 통신, 또는 SONET(Synchronous Optical Networking) 또는 DSL(디지털 가입자 회선) 기술과 같은 광역 매체를 통한 통신을 지원할 수 있다. 네트워크 인터페이스(106)는 추가적으로 IEEE 802.11(Wifi), BLUETOOTH®, GPS(Global Positioning System), 또는 광역 무선 인터페이스와 같은 하나 이상의 무선 인터페이스의 형태를 취할 수 있다. 그러나, 다른 형태의 물리 계층 인터페이스 및 다른 유형의 표준 또는 독점 통신 프로토콜이 네트워크 인터페이스(106)를 통해 사용될 수 있다. 또한, 네트워크 인터페이스(106)는 복수의 물리적 인터페이스를 포함할 수 있다. 예를 들어, 컴퓨팅 시스템(100)의 일부 실시예는 이더넷, BLUETOOTH®, 및 Wifi 인터페이스를 포함할 수 있다.
입력/출력 유닛(108)은 컴퓨팅 시스템(100) 및/또는 다른 컴퓨팅 시스템과의 사용자 및 주변 장치 상호작용을 용이하게 할 수 있다. 입력/출력 유닛(108)은 키보드, 마우스, 하나 이상의 터치 스크린, 센서, 생체 인식 센서 등과 같은 하나 이상의 유형의 입력 장치를 포함할 수 있다. 유사하게, 입력/출력 유닛(108)은 스크린, 모니터, 프린터, 및/또는 하나 이상의 발광 다이오드(LED)와 같은 하나 이상의 유형의 출력 장치를 포함할 수 있다. 추가적으로 또는 대안적으로, 컴퓨팅 시스템(100)은 예를 들어 USB(Universal Serial Bus) 또는 HDMI(High-Definition Multimedia Interface) 포트 인터페이스를 사용하여 다른 장치와 통신할 수 있다.
일부 실시예에서, 컴퓨팅 시스템(100)의 하나 이상의 인스턴스는 클러스터링된 아키텍처를 지원하기 위해 배치될 수 있다. 이러한 컴퓨팅 장치의 정확한 물리적 위치, 연결 및 구성은 클라이언트 장치에 알려지지 않거나 중요하지 않을 수 있다. 따라서, 컴퓨팅 장치는 다양한 원격 데이터 센터 위치에 수용될 수 있는 "클라우드 기반" 디바이스로 지칭될 수 있다. 또한, 컴퓨팅 시스템(100)은 신경망을 사용하고 신경 광 전송(neural light transport)을 구현하는 것을 포함하여 본 명세서에 설명된 실시예의 성능을 가능하게 할 수 있다.
도 2는 예시적인 실시예에 따른 클라우드 기반 서버 클러스터(200)를 도시한다. 도 2에서, 컴퓨팅 장치(예를 들어, 컴퓨팅 시스템(100))의 하나 이상의 동작은 서버 장치(202), 데이터 저장소(204), 및 라우터(206) 사이에 분산될 수 있고, 이들 모두는 로컬 클러스터 네트워크(208)에 의해 연결될 수 있다. 서버 클러스터(200)의 서버 장치(202), 데이터 저장소(204), 및 라우터(206)의 수는 서버 클러스터(200)에 할당된 컴퓨팅 작업(들) 및/또는 애플리케이션에 의존할 수 있다. 일부 예에서, 서버 클러스터(200)는 신경망의 사용 및 신경 광 전송 기능의 구현을 포함하여 본 명세서에 설명된 하나 이상의 동작을 수행할 수 있다.
서버 장치(202)는 컴퓨팅 시스템(100)의 다양한 컴퓨팅 작업을 수행하도록 구성될 수 있다. 예를 들어, 하나 이상의 컴퓨팅 작업은 하나 이상의 서버 장치(202) 사이에 분산될 수 있다. 이러한 컴퓨팅 작업을 병렬로 수행할 수 있는 한 이러한 작업의 배포는 이러한 작업을 완료하고 결과를 반환하는 데 걸리는 총 시간을 줄일 수 있다. 단순화를 위해, 서버 클러스터(200) 및 개별 서버 장치(202) 둘 모두를 "서버 장치"로 지칭할 수 있다. 이 명명법은 하나 이상의 별개의 서버 장치, 데이터 저장 장치 및 클러스터 라우터가 서버 장치 작동에 포함될 수 있음을 의미하는 것으로 이해해야 한다.
데이터 저장소(204)는 하드 디스크 드라이브 및/또는 솔리드 스테이트 드라이브의 그룹에 대한 읽기 및 쓰기 액세스를 관리하도록 구성된 드라이브 어레이 제어기를 포함하는 데이터 저장소 어레이일 수 있다. 드라이브 어레이 제어기는 단독으로 또는 서버 장치(202)와 함께, 드라이브 에러 또는 하나 이상의 서버 장치(202)가 클러스터 데이터 저장소(204)의 유닛에 액세스하는 것을 방지하는 다른 유형의 에러로부터 보호하기 위해 데이터 저장소(204)에 저장된 데이터의 백업 또는 중복(redundant) 복사본을 관리하도록 구성될 수도 있다. 드라이브 이외의 다른 유형의 메모리를 사용할 수 있다.
라우터(206)는 서버 클러스터(200)를 위한 내부 및 외부 통신을 제공하도록 구성된 네트워킹 장비를 포함할 수 있다. 예를 들어, 라우터(206)는 (i) 클러스터 네트워크(208)를 통한 서버 장치(202)와 데이터 저장소(204) 사이의 네트워크 통신, 및/또는 (ii) 네트워크(212)에 대한 통신 링크(210)를 통한 서버 클러스터(200)와 다른 장치 간의 네트워크 통신을 제공하도록 구성된 하나 이상의 패킷 교환 및/또는 라우팅 장치(스위치 및/또는 게이트웨이 포함)를 포함할 수 있다.
추가로, 클러스터 라우터(206)의 구성은 서버 장치(202) 및 데이터 저장소(204)의 데이터 통신 요구 사항, 로컬 클러스터 네트워크(208)의 대기 시간 및 처리량, 통신 링크(210)의 대기 시간, 처리량 및 비용, 및/또는 비용, 속도, 내결함성, 탄력성, 효율성 및/또는 시스템 아키텍처의 기타 설계 목표에 기여할 수 있는 기타 요소에 적어도 부분적으로 기초할 수 있다.
가능한 예로서, 데이터 저장소(204)는 구조화된 쿼리 언어(SQL) 데이터베이스와 같은 임의의 형태의 데이터베이스를 포함할 수 있다. 다양한 유형의 데이터 구조는 테이블, 배열, 목록, 트리 및 튜플을 포함하지만 이에 국한되지 않는 데이터베이스에 정보를 저장할 수 있다. 또한, 데이터 저장소(204)의 임의의 데이터베이스는 모놀리식이거나 여러 물리적 장치에 걸쳐 분산될 수 있다.
서버 장치(202)는 클러스터 데이터 저장소(204)로 데이터를 전송하고 클러스터 데이터 저장소(204)로부터 데이터를 수신하도록 구성될 수 있다. 이 전송 및 검색은 각각 SQL 쿼리 또는 다른 유형의 데이터베이스 쿼리 및 이러한 쿼리의 출력 형태를 취할 수 있다. 추가 텍스트, 이미지, 비디오 및/또는 오디오도 포함될 수 있다. 또한, 서버 장치(202)는 수신된 데이터를 웹 페이지 표현으로 구성할 수 있다. 이러한 표현은 HTML(hypertext markup language), XML(extensible markup language), 또는 기타 표준화된 또는 독점 형식과 같은 마크업 언어의 형태를 취할 수 있다. 또한, 서버 장치(202)는 펄(Perl), 파이썬(Python), PHP Hypertext Preprocessor(PHP), Active Server Pages(ASP), JavaScript 등과 같은(이에 국한되지 않음) 다양한 유형의 컴퓨터화된 스크립팅 언어를 실행할 수 있는 능력을 가질 수 있다. 이러한 언어로 작성된 컴퓨터 프로그램 코드는 웹 페이지를 웹 페이지와 상호 작용할 뿐만 아니라 클라이언트 장치에 웹 페이지를 제공하는 것을 용이하게 할 수 있다.
Ⅱ. 인공 신경망
A. 예시적인 ANN
인공 신경망(ANN)은 중앙 제어 없이 병렬로 개별적으로 작동하는 여러 간단한 장치를 결합하여 복잡한 문제를 해결할 수 있는 계산 모델이다. ANN은 인접한 레이어(계층)의 노드 사이를 연결하여 여러 레이어로 배열된 여러 노드로 표시된다.
ANN(300)의 예는 도 3a에 도시된다. 특히, ANN(300)은 피드포워드(feed-forward) 다층 신경망을 나타내지만, 유사한 구조와 원리가 예를 들어 컨볼루션 신경망(CNN), 순환 신경망 및 재귀 신경망(recursive neural networks)에 사용된다. ANN(300)은 이미지 처리 기술(예: 분할, 의미론적 분할, 이미지 향상) 또는 여기에 설명된 신경 광 전송 기능 학습과 같은 특정 작업을 수행하도록 훈련된 ANN을 나타낼 수 있다. 추가 예에서 ANN(300)은 컴퓨터 비전, 위험 평가 등과 같은 다른 작업을 수행하는 방법을 학습할 수 있다.
도 3a에 도시된 바와 같이, ANN(300)은 입력 층(304), 은닉 층(306), 은닉 층(308) 및 출력 층(310)의 4개의 층으로 구성된다. 입력 층(304)의 3개의 노드는 각각
Figure pct00001
,
Figure pct00002
,
Figure pct00003
을 초기 입력 값(302)으로 수신한다. 출력 층(310)의 2개의 노드는 각각
Figure pct00004
,
Figure pct00005
를 최종 출력 값(312)으로 생성한다. 이와 같이 ANN(300)은 입력 층(304)을 제외한 각 계층의 노드가 이전 계층의 모든 노드로부터 입력을 수신한다는 점에서 완전 연결된 네트워크(fully-connected network)이다.
노드 쌍 사이의 실선 화살표는 중간 값이 흐르는(flow) 연결을 나타내며 각각은 각각의 중간 값에 적용되는 각 가중치와 연관된다. 각 노드는 입력 값과 관련 가중치(예: 0과 1 사이의 값)에 대한 연산을 수행하여 출력 값을 생성한다. 일부 경우에는 이 연산에 각 입력 값과 관련 가중치의 곱의 내적 합(dot-product sum)이 포함될 수 있다. 내적 합의 결과에 활성화 함수를 적용하여 출력 값을 생성할 수 있다. 다른 연산도 가능하다.
예를 들어, 노드가
Figure pct00006
의 각 가중치를 갖는 n 연결에 대한 입력 값
Figure pct00007
을 수신하는 경우 내적 합(d)은 수학식 1과 같이 결정될 수 있다.
Figure pct00008
b는 노드별 또는 계층별 바이어스이다.
특히, ANN(300)의 완전 연결된 특성(fully-connected nature)은 하나 이상의 가중치에 0 값을 부여하여 부분적으로 연결된 ANN을 효과적으로 나타내는 데 사용할 수 있다. 유사하게, 바이어스를 0으로 설정하여 b항을 제거할 수도 있다.
로지스틱 함수와 같은 활성화 함수는 수학식 2를 포함하여, 0과 1 사이의 출력 값(y)에 d를 매핑하는 데 사용할 수 있다.
Figure pct00009
시그모이드(sigmoid) 또는 하이퍼볼릭 탄젠트(tanh) 함수와 같은 로지스틱 함수 이외의 함수를 대신 사용할 수 있다.
그런 다음 y는 각 노드의 출력 연결에 사용될 수 있으며 해당 가중치에 따라 수정된다. 특히, ANN(300)에서는 최종 출력값(312)이 생성될 때까지 왼쪽에서 오른쪽으로 각 계층의 노드에 입력값과 가중치를 적용한다. ANN(300)이 완전히 훈련(Training)된 경우, 최종 출력 값(312)은 ANN(300)이 해결하도록 훈련된 문제에 대한 제안된 솔루션이다. 의미 있고 유용하며 합리적으로 정확한 솔루션을 얻으려면 ANN(300)에 최소한 어느 정도의 훈련이 필요하다.
B. 훈련(Training)
ANN 훈련에는 ANN에 일종의 감독(supervisory) 훈련 데이터, 즉 입력 값 세트와 원하는 또는 GT(ground truth) 출력 값을 제공하는 것이 포함될 수 있다. 예를 들어, ANN이 이미지 처리 작업을 수행할 수 있도록 하는 감독 훈련은 훈련 이미지 및 훈련 이미지의 원하는 출력(예: 원하는 분할)을 나타내는 해당 GT 마스크를 포함하는 이미지 쌍을 제공하는 것을 포함할 수 있다. ANN(300)의 경우, 이 훈련 데이터는 출력 값과 쌍을 이루는 m 세트의 입력 값을 포함할 수 있다. 더 공식적으로 훈련 데이터는 수학식 3과 같이 나타낼 수 있다.
Figure pct00010
여기서,
Figure pct00011
, 그리고
Figure pct00012
Figure pct00013
Figure pct00014
,
Figure pct00015
,
Figure pct00016
의 입력 값에 대한 원하는 출력 값이다.
훈련 프로세스에는 이러한 세트의 입력 값을 ANN(300)에 적용하고 관련 출력 값을 생성하는 작업이 포함된다. 손실 함수는 생성된 출력 값과 GT 출력 값 사이의 에러(error)를 평가하는 데 사용할 수 있다. 경우에 따라 이 손실 함수는 차이의 합, 평균 제곱 에러 또는 기타 메트릭일 수 있다. 일부 경우에는 에러 값이 모든 m세트에 대해 결정되고, 에러 함수는 이러한 값의 집계(예: 평균)를 계산하는 것을 포함한다.
에러가 결정되면 에러를 줄이기 위해 연결의 가중치가 업데이트된다. 간단히 말해서, 이 업데이트 프로세스는 "good" 가중치에 대해 보상하고 "bad" 가중치에 페널티를 부여해야 한다. 따라서 업데이트는 ANN(300)을 통해 에러에 대한 "blame"을 분산하여 훈련 데이터의 향후 반복에 대한 에러를 낮추는 방식으로 이루어져야 한다. 예를 들어, 업데이트 프로세스는 훈련 이미지에 대한 ANN(300)의 후속 적용이 훈련 이미지에 대응하는 GT 마스크와 더 밀접하게 일치하는 새로운 출력을 생성하도록 ANN(300)의 적어도 하나의 가중치를 수정하는 것을 포함할 수 있다.
훈련 프로세스는 가중치가 수렴될 때까지 훈련 데이터를 ANN(300)에 계속 적용한다. 수렴(Convergence)은 에러가 임계값보다 작거나 연속적인 훈련 반복 사이에 에러의 변화가 충분히 작을 때 발생한다. 이 시점에서 ANN(300)은 "훈련"되었다고 하며 알려지지 않은 출력 값을 예측하기 위해 새로운 입력 값 세트에 적용될 수 있다. 이미지 처리 기술을 수행하도록 훈련될 때, ANN(300)은 입력 이미지에 대해 생성된 정답(즉, 원하는 결과)과 매우 유사한 입력 이미지의 출력을 생성할 수 있다.
ANN에 대한 많은 훈련 기술은 일종의 역전파(backpropagation)를 사용한다. 역전파 동안 입력 신호는 네트워크 출력을 통해 순방향 전파되고, 그런 다음 목표 변수에 대해 네트워크 에러가 계산되고 입력을 향해 역방향으로 역전파된다. 특히 역전파는 ANN(300)을 통해 오른쪽에서 왼쪽으로 한 번에 한 레이어씩 에러를 분산시킨다. 따라서, 은닉층(308)과 출력층(310) 사이의 연결의 가중치가 먼저 업데이트되고, 은닉층(306)과 은닉층(308) 간의 연결의 가중치가 두 번째로 업데이트되는 식이다. 이 업데이트는 활성화 함수의 도함수를 기반으로 한다.
에러 결정과 역전파를 더 자세히 설명하려면 실제 프로세스의 예를 살펴보는 것이 좋다. 그러나 역전파는 가장 단순한 ANN을 제외하고 표현하기가 상당히 복잡해질 수 있다. 따라서 도 3b는 역전파의 예시적인 예를 제공하기 위해 매우 간단한 ANN(330)을 소개한다.
가중치 노드 가중치 노드
Figure pct00017
I1, H1
Figure pct00018
H1,O1
Figure pct00019
I2, H1
Figure pct00020
H2,O1
Figure pct00021
I1, H2
Figure pct00022
H1,O2
Figure pct00023
I2, H2
Figure pct00024
H2,O2
ANN(330)은 3개의 계층(레이어), 즉 입력 층(334), 은닉 층(336) 및 출력 층(338)으로 구성되며, 각각은 2개의 노드를 갖는다. 초기 입력 값(332)은 입력 층(334)에 제공되고, 출력 층(338)은 최종 출력 값(340)을 생성한다. 각 연결 및 바이어스(예: 도 3b에 도시된
Figure pct00025
,
Figure pct00026
)에 할당된 가중치는 또한 일부 예에서 은닉층(336)의 각 노드의 순 입력(net input)에 적용될 수 있다. 명확성을 위해 표 1은 이러한 가중치가 적용되는 연결이 있는 노드 쌍에 가중치를 매핑한다. 예를 들어,
Figure pct00027
는 노드 I2와 H1 간의 연결에 적용되고,
Figure pct00028
는 노드 H1과 O2 간의 연결에 적용된다.
ANN(330)을 훈련시키는 목적은 최종 출력 값(340)이 지정된 원하는 출력에 충분히 가까워질 때까지 피드 포워드 및 역전파 반복 횟수에 걸쳐 가중치를 업데이트하는 것이다. 단일 훈련 데이터 세트를 사용하면 해당 세트에 대해서만 ANN(330)을 효과적으로 훈련시킬 수 있다. 여러 세트의 훈련 데이터가 사용되는 경우 ANN(330)도 해당 세트에 따라 훈련된다.
1.피드포워드 패스의 예
피드포워드 패스를 개시하기 위해, 은닉층(336)의 각 노드에 대한 순 입력이 계산된다. 순 입력에서 이러한 노드의 출력은 활성화 함수를 적용하여 찾을 수 있다. 노드 H1의 경우, 순 입력(
Figure pct00029
)은 수학식 4와 같다.
Figure pct00030
이 입력에 활성화 함수(여기서는 로지스틱 함수)를 적용하면 노드 H1의 출력(
Figure pct00031
)이 수학식 5와 같이 결정된다.
Figure pct00032
노드 H2에 대한 동일한 절차에 따라 출력(
Figure pct00033
)도 결정할 수 있다. 피드 포워드 반복의 다음 단계(스텝)는 출력 층(338)의 노드에 대해 동일한 계산을 수행하는 것이다. 예를 들어 노드(
Figure pct00034
)에 대한 순 입력(
Figure pct00035
)은 수학식 6과 같다.
Figure pct00036
따라서, 노드(
Figure pct00037
)의 출력(
Figure pct00038
)은 수학식 7과 같다.
Figure pct00039
노드(
Figure pct00040
)에 대한 동일한 절차에 따라, 출력(
Figure pct00041
)을 결정할 수 있다. 이 때, 손실 함수를 기반으로 총 에러(
Figure pct00042
)를 결정할 수 있다. 예를 들어, 손실 함수는 출력 층(508)의 노드에 대한 에러 제곱의 합일 수 있다. 다시 말해서, 수학식 8과 같다.
Figure pct00043
Figure pct00044
승법 상수(multiplicative constant)(
Figure pct00045
)는 역전파 동안 미분을 단순화하는 데 사용된다. 전체 결과는 학습률에 따라 조정되므로 이 상수는 훈련에 부정적인 영향을 미치지 않는다. 그럼에도 불구하고 이 시점에서 피드 포워드 반복이 완료되고 역전파가 시작된다.
2. 역전파
위에서 언급했듯이 역전파의 목표는 가중치를 업데이트하는 데
Figure pct00046
(즉, 손실 함수를 기반으로 결정된 총 에러)를 사용하여 향후 피드포워드 반복에서 에러를 덜 기여하도록 하는 것이다. 예를 들어, 가중치(
Figure pct00047
)를 고려한다. 목표는
Figure pct00048
의 변화가
Figure pct00049
에 얼마나 영향을 미치는지 결정하는 것이다. 이는 편미분(
Figure pct00050
)으로 표현할 수 있다. 연쇄 법칙(chain rule)을 사용하여, 이 항이 수학식 9와 같이 확장될 수 있다.
Figure pct00051
따라서,
Figure pct00052
에 대한 변화의
Figure pct00053
에 대한 결과(effect)는 (i)
Figure pct00054
에 대한 변화 의
Figure pct00055
에 대한 결과, (ii)
Figure pct00056
에 대한 변화의
Figure pct00057
에 대한 결과, 및 (iii)
Figure pct00058
에 대한 변화의
Figure pct00059
에 대한 결과의 곱과 동일하다. 이러한 곱셈 항은 각각 독립적으로 결정될 수 있다. 직관적으로, 이 프로세스는
Figure pct00060
에 대한
Figure pct00061
의 영향,
Figure pct00062
에 대한
Figure pct00063
의 영향,
Figure pct00064
에 대한
Figure pct00065
의 영향을 분리하는 것으로 생각할 수 있다.
이 프로세스는 출력 층(338)에 공급되는 다른 가중치에 대해 반복될 수 있다. 역전파가 끝날 때 모든 가중치에 대한 업데이트가 결정될 때까지 가중치는 업데이트되지 않는다. 그런 다음 다음 피드 포워드 반복 전에 모든 가중치가 업데이트된다.
나머지 가중치(
Figure pct00066
,
Figure pct00067
,
Figure pct00068
,
Figure pct00069
)에 대한 업데이트가 계산된 후, 역전파 패스는 은닉층(336)으로 계속된다. 이 프로세스는 출력 층(338)로 공급되는 다른 가중치에 대해 반복될 수 있다. 이 지점에서 역전파 반복이 끝나고 모든 가중치가 업데이트되었다. ANN(330)은 후속 피드포워드 및 역전파 반복을 통해 계속 훈련될 수 있다. 일부 경우에는 여러 번의 피드포워드 및 역전파 반복(예: 수천 번의 반복) 후에 원래의 원하는 결과에 근접한 결과를 생성하도록 에러를 줄일 수 있다. 이 시점에서,
Figure pct00070
Figure pct00071
의 값은 목표 값에 가까워진다. 도시된 바와 같이, 미분 가능한 손실 함수를 사용함으로써, 원하는 결과와 비교하여 ANN(330)에 의해 출력된 예측의 총 에러가 결정될 수 있고 그에 따라 ANN(330)의 가중치를 수정하는 데 사용될 수 있다.
일부 경우에는 시스템의 하이퍼 파라미터(예: 바이어스(
Figure pct00072
Figure pct00073
) 및 학습률(
Figure pct00074
))가 조정되면 더 적은 반복으로 동일한 양의 훈련을 수행할 수 있다. 예를 들어, 학습률을 특정 값에 가깝게 설정하면 에러율이 더 빠르게 감소할 수 있다. 또한 가중치가 업데이트되는 방식과 유사한 방식으로 학습 프로세스의 일부로 바이어스를 업데이트할 수 있다.
그럼에도 불구하고 ANN(330)은 단순한 예일 뿐이다. 특정 문제나 목표를 해결하기 위해 조정된 각 입력 및 출력 층의 노드 수를 사용하여 임의로 복잡한 ANN을 개발할 수 있다. 또한 하나 이상의 은닉층이 사용될 수 있으며 각 은닉층에는 임의의 수의 노드가 있을 수 있다.
III. 컨볼루션 신경망
CNN(Convolutional Neural Network)은, CNN이 몇 개의 노드 레이어(계층)로 구성될 수 있으며, 노드 사이에 가중치 연결이 있고 레이어당 바이어스가 발생할 수 있다는 점에서 ANN과 유사하다. 가중치 및 바이어스는 위에서 설명된 피드포워드 및 역전파 절차를 통해 업데이트될 수 있다. 손실 함수는 피드 포워드 처리(프로세싱)의 출력 값을 원하는 출력 값과 비교하는 데 사용할 수 있다.
반면에 CNN은 일반적으로 초기 입력 값이 하나 이상의 이미지에서 파생된다는 명시적인 가정으로 설계된다. 일부 실시예에서, 이미지 패치의 각 픽셀의 각 컬러 채널은 별도의 초기 입력 값이다. 픽셀당 3개의 색상 채널(예: 빨강, 녹색 및 파랑)을 가정하면 픽셀의 작은 32 x 32 패치라도 첫 번째 은닉 층의 각 노드에 대해 3072개의 인커밍 가중치를 생성한다. 분명히 이미지 처리에 ANN(
Figure pct00075
)을 사용하면 훈련하는 데 오랜 시간이 걸리는 매우 크고 복잡한 모델이 될 수 있다.
대신 CNN은 거의 모든 이미지에서 발견되는 고유한 구조를 활용하도록 설계되었다. 특히 CNN의 노드는 이전 레이어(계층)의 소수의 노드에만 연결된다. 이 CNN 아키텍처는 너비, 높이 및 깊이가 있는 블록에 노드가 배열되어 있는 3차원으로 생각할 수 있다. 예를 들어, 앞서 언급한 3개의 색상 채널을 갖는 픽셀의 32 x 32 패치는 너비가 32노드, 높이가 32노드, 깊이가 3노드인 입력 층로 배열될 수 있다.
CNN(400)의 예가 도 4a에 도시되어 있다. 픽셀(
Figure pct00076
)로 표현되는 초기 입력 값(402)은 입력 층(404)에 제공된다. 위에서 설명된 바와 같이, 입력 층(404)는 픽셀(
Figure pct00077
)의 컬러 채널의 폭, 높이 및 수에 기초하여 3차원을 가질 수 있다. 입력 층(404)은 하나 이상의 특징(feature) 추출 계층 세트에 값을 제공하며, 각 세트는 풀링 계층(410), RELU 계층(408) 및 컨볼루션 계층(406)의 인스턴스를 포함한다. 풀링 계층(410)의 출력은 하나 이상의 분류 계층(412)에 제공된다. 최종 출력 값(414)은 초기 입력 값(402)의 간결한 특성화(concise characterization)를 나타내는 특징 벡터에 배열될 수 있다.
컨볼루션 계층(406)은 이러한 입력 값의 3차원 공간 배열 주위에 하나 이상의 필터를 슬라이딩함으로써 입력 값을 변환할 수 있다. 필터는 노드에 적용된 바이어스와 노드 사이의 연결 가중치로 표현되며 일반적으로 입력 값보다 너비와 높이가 작다. 각 필터에 대한 결과는 너비와 높이가 입력 값의 크기와 동일한 크기를 가질 수 있는 출력 값의 2차원 블록(특징 맵이라고 함)이거나 이러한 차원 중 하나 이상이 다른 크기일 수 있다. 각 필터의 출력을 조합하면 깊이 차원의 특징 맵 계층이 생성되며, 여기서 각 계층은 필터 중 하나의 출력을 나타낸다.
필터를 적용하는 것은 필터의 엔트리와 입력 값의 2차원 깊이 슬라이스 사이의 내적 합을 계산하는 것을 포함할 수 있다. 이의 예는 도 4b에 도시되어 있다. 행렬(420)은 컨볼루션 계층에 대한 입력을 나타내므로 예를 들어 이미지 데이터가 될 수 있다. 컨볼루션 연산은 출력(424)을 결정하기 위해 행렬(420) 상의 필터(422)를 오버레이한다. 예를 들어, 필터(422)가 행렬(420)의 왼쪽 상단 코너에 위치하고 각 엔트리에 대한 내적 합이 계산될 때 결과는 4이다. 이는 출력(424)의 왼쪽 상단 코너에 배치된다.
도 4b로 돌아가면 CNN은 훈련 중에 필터를 학습하여 이러한 필터가 결국 입력 값의 특정 위치에서 특정 유형의 특징(특징)을 식별할 수 있도록 한다. 예로서, 컨볼루션 계층(406)은 초기 입력 값(402)이 도출된 이미지 패치의 에지 및/또는 색상을 궁극적으로 검출할 수 있는 필터를 포함할 수 있다. 수용 필드라고 하는 하이퍼 파라미터는 컨볼루션 계층(406)과 입력 층(404)의 각 노드 사이의 연결 수를 결정한다. 이를 통해 각 노드는 입력 값의 서브세트에 포커스할 수 있다.
RELU 계층(408)은 컨볼루션 계층(406)에 의해 제공되는 출력에 활성화 함수를 적용한다. 실제로, RELU(Rectified Linear Unit) 함수 또는 그 변형(variation)이 CNN에서 강력한 결과를 제공하는 것으로 확인되었다. RELU 함수는
Figure pct00078
로 정의된 단순 임계값 함수이다. 따라서, 출력은
Figure pct00079
가 음수일 때 0이고
Figure pct00080
가 음수가 아닐 때
Figure pct00081
이다. RELU 함수에 대한 스무스한(smoothed) 미분 가능한 근사값은 소프트플러스(softplus) 함수이다. 이는
Figure pct00082
로 정의된다. 그럼에도 불구하고 이 계층에서 다른 함수가 사용될 수 있다.
풀링 계층(410)은 RELU 계층(408)으로부터의 출력의 각 2차원 깊이 슬라이스를 다운샘플링함으로써 데이터의 공간적 크기를 줄인다. 한 가지 가능한 접근 방식은 깊이 슬라이스의 각 2 x 2 블록에 스트라이드(stride)가 2인 2 x 2 필터를 적용하는 것이다. 이렇게 하면 각 깊이 슬라이스의 너비와 높이가 2배 감소하여 데이터의 전체 크기가 75% 감소한다.
분류 계층(Classification layer)(412)은 특징 벡터의 형태로 최종 출력 값(414)을 계산한다. 예를 들어, 이미지 분류기로 훈련된 CNN에서 특징 벡터의 각 엔트리는 이미지 패치가 아이템(예: 사람의 얼굴, 고양이, 해변, 나무, 등.)의 특정 클래스를 포함할 확률을 인코딩할 수 있다.
일부 실시예에서, 특징 추출 계층의 다중 세트가 있다. 따라서, 풀링 계층(410)의 인스턴스는 컨볼루션 계층(406)의 인스턴스에 출력을 제공할 수 있다. 또한, 풀링 계층(410)의 각 인스턴스에 대해 컨볼루션 계층(406) 및 RELU 계층(408)의 다중 인스턴스가 있을 수 있다.
CNN(400)은 영상 처리에 사용할 수 있는 일반적인 구조를 나타낸다. 컨볼루션 계층(406) 및 분류 계층(412)은 ANN(300)의 계층과 유사하게 가중치 및 바이어스를 적용하고, 이러한 가중치 및 바이어스는 역전파 동안 업데이트되어 CNN(400)이 학습할 수 있다. 반면에, RELU 계층(408) 및 풀링 계층(410)은 일반적으로 고정 연산을 적용하므로 학습하지 않을 수 있다.
ANN과 달리 CNN은 여기의 예에 표시된 것과 다른 수의 계층을 포함할 수 있으며 이러한 계층 각각은 다른 수의 노드를 포함할 수 있다. 따라서 CNN(400)은 단지 설명을 위한 것이며 CNN의 구조를 제한하는 것으로 간주되어서는 안된다.
도 5는 예시적인 실시예에 따른 컴퓨팅 시스템(502) 및 모바일 장치(510) 상에서 동작하는 ANN을 포함하는 시스템(500)을 도시한다.
컴퓨팅 시스템(502) 상에서 동작하는 ANN은 위에서 설명된 ANN(300) 또는 ANN(330)에 대응할 수 있다. 예를 들어, ANN은 조인트 깊이 맵을 결정하는 것을 포함하여 설명된 오퍼레이션을 수행하기 위해 명령어를 실행하도록 구성될 수 있다. 일부 예들에서, ANN은 특히 CNN(예를 들어, CNN(400)), 피드포워드 ANN, 경사하강법 기반 활성화 함수 ANN, 또는 규제(regulatory) 피드백 ANN을 나타낼 수 있다.
예를 들어, ANN은 훈련 이미지 세트에 기반하여 복수의 이미지 처리 파라미터 또는 기술을 결정할 수 있다. 예를 들어, ANN은 인간 전문가처럼 이미지를 조작하는 방법을 "학습(learn)"하기 위해 기계 학습 프로세스의 대상이 될 수 있다. 훈련 이미지 세트에는 수많은 이미지 쌍이 포함될 수 있다. 예를 들어, ANN은 1,000 - 10,000개의 이미지 쌍을 분석할 수 있다. 각각의 이미지 쌍은 "원본(original)" 이미지(본 명세서에서 입력 이미지로도 지칭됨) 및 원본 이미지가 가질 원하는 품질을 나타내는 대응하는 GT 마스크를 포함할 수 있다. 일부 경우에는 GT 마스크가 훈련 이미지의 원하는 분할(segmentation)을 나타낸다. 추가 예에서, GT 마스크는 ANN의 적용 후에 가질 해당 입력 이미지에 대한 다른 원하는 품질을 나타낼 수 있다.
마스크는 이미지 처리에 자주 사용되며 이미지 내의 픽셀 값을 0 또는 다른 배경 값으로 설정하는 것을 포함할 수 있다. 예를 들어, 마스크 이미지는 픽셀 강도 값의 일부가 0이고 다른 픽셀 값이 0이 아닌 이미지에 대응할 수 있다(예: "1" 및 "0"을 사용하는 이진 마스크). 마스크 이미지에서 픽셀 강도 값이 0인 경우 결과 마스크 이미지의 픽셀 강도는 배경 값(예: 0)으로 설정될 수 있다. 추가로 설명하기 위해, 예시적인 마스크는 이미지의 전경(foreground)에 있는 객체에 대응하는 모든 픽셀을 흰색으로 설정하고 배경 특징(background features) 또는 객체에 대응하는 모든 픽셀을 검은색으로 설정하는 것을 수반할 수 있다. 예측 마스크는 ANN에 의해 생성된 이미지(또는 기타 추정된 출력)의 추정된 분할에 해당할 수 있다. 예측 마스크는 입력 이미지의 원하는 분할을 나타낼 수 있는 GT 마스크와 비교할 수 있다.
예시적인 실시예에서, GT 마스크는 "Adobe Lightroom", "Adobe Photoshop", "Adobe Photoshop Elements", "Google Picasa", "Microsoft Photos", "DxO OpticsPro", "Corel PaintShop Pro" 또는 "Apple Photos"와 같은 이미지 처리/조작 프로그램을 사용하여 인간에 의해 개발 및 조정될 수 있다. 다른 예에서, GT 마스크는 하나 이상의 이전에 훈련된 ANN에 의해 개발될 수 있다. 예를 들어, GT 마스크는 ANN의 여러 반복을 사용하여 결정할 수 있다. 또 다른 예에서, GT 마스크는 ANN과 인간에 의한 추가 조정의 조합을 기반으로 생성될 수 있다. 다른 유형의 이미지 처리 소프트웨어가 여기에서 가능하고 고려된다는 것이 이해될 것이다. 대안적으로, 이미지 쌍은 사전 설정 또는 무작위 필터 또는 기타 이미지 조정 알고리즘을 사용하여 원본 이미지의 조정을 나타낼 수 있다.
기계 학습 프로세스 동안, ANN은 인간이 수행한 다양한 유형의 이미지 조작(또는 더 복잡한 계산 처리)을 나타내는 "가중치" 세트를 결정할 수 있다. 보다 구체적으로, 이러한 가중치는 노출, 선명도, 대비, 선명도, 콘트라스트, 채도, 색상, 색수차, 초점, 색조, 화이트 밸런스, 색상 매핑, HDR 톤 매핑 등과 같은 다양한 이미지 파라미터와 연관될 수 있다. 가중치는 분할, 의미론적 분할 또는 ANN에서 적용하는 기타 이미지 처리 기술에도 영향을 미칠 수 있다. 다른 이미지 파라미터와 관련된 가중치가 가능하다는 것이 이해될 것이다. 시간이 지남에 따라 충분한 수의 훈련 이미지를 사용하여 ANN은 이러한 가중치를 ANN 표현에 사용할 수 있는 이미지 처리 파라미터 세트로 개발할 수 있다. 다른 예에서 ANN의 가중치는 ANN이 수행하도록 훈련되는 다른 작업(태스크)에 따라 달라질 수 있다.
도 6은 실시예에 따른 강화된 깊이 추정치를 위한 시스템을 도시한다. 시스템(600)은 다중 깊이 추정 기술을 사용하여 향상된 깊이 추정치를 분석하고 생성하기 위해 신경망을 훈련하고 사용할 수 있는 예시적인 시스템을 나타낸다. 도 6에 도시된 바와 같이, 시스템(600)은 다중 카메라 깊이 정보(602)(예를 들어, 2개 이상의 카메라로부터의 스테레오 비전) 및 단일 카메라 깊이 정보(604)(예를 들어, 듀얼 픽셀(612), 녹색 서브픽셀(614))를 사용하는 것을 수반할 수 있다. 깊이 정보(602, 604)의 조합은, 예를 들어 이미지에 대한 "Bokeh" 효과를 시뮬레이션하거나 다른 방식으로 이미지의 일부를 부분적으로 흐리게(partially-blurring)하는 것과 같이, 다양한 방식으로 장면의 이미지를 향상시키기 위해 후속적으로 사용될 수 있는 장면의 조인트 깊이 예측을 개발 및 제공하기 위해 신경망(예를 들어, ANN, CNN)에 의해 사용될 수 있다.
하나 이상의 컴퓨팅 시스템(예를 들어, 도 1에 도시된 컴퓨팅 시스템(100))은 시스템(600)의 기능을 수행할 수 있다. 예를 들어, 다중 카메라가 있는 스마트폰은 다중 카메라 깊이 정보(602) 및 단일 카메라 깊이 정보(604)를 캡처할 수 있다. 이미지를 캡처하는 카메라는 다중 카메라 깊이 정보(602) 및 단일 카메라 깊이 정보(604) 중 하나 또는 둘 다를 제공하도록 구성될 수 있다. 예를 들어, 스마트폰은 단일 카메라 깊이 정보(604)에 대한 이미지를 캡처하도록 구성된 하나 또는 두 카메라 모두와 함께 스테레오로 작동할 수 있는 한 쌍의 카메라를 포함할 수 있다. 이와 같이, 스마트폰 및/또는 다른 컴퓨팅 시스템(예를 들어, 원격 서버)은 장면에 대한 조인트 깊이 맵을 생성하기 위해 이미지 및 깊이 추정치를 사용할 수 있는 훈련된 신경망을 실행할 수 있다. 조인트 깊이 맵은 이미지의 출력을 후속적으로 수정하기 위해 하나 이상의 컴퓨팅 시스템에 의해 사용될 수 있다. 예를 설명하기 위해 깊이 맵을 사용하여 이미지의 배경 부분을 부분적으로 흐리게(블러) 하여 전경에 위치한 객체(들)의 초점을 향상시킬 수 있다.
시스템(600) 내에 구현된 신경망은 하나 이상의 컴퓨팅 시스템에 의해 훈련될 수 있다. 또한 훈련된 신경망은 웨어러블 컴퓨팅 장치, 스마트폰, 랩톱 컴퓨터 및 서버와 같은 다양한 컴퓨팅 장치에서 실행할 수 있다. 일부 예에서, 제1 컴퓨팅 시스템은 신경망을 훈련시키고 훈련된 신경망을 제2 컴퓨팅 시스템에 제공할 수 있다.
다중 카메라 깊이 정보(602)는 스테레오 배열의 2개 이상의 카메라와 같은 다중 카메라로부터 획득된 이미지 및 기타 데이터를 나타낼 수 있다. 일부 예들에서, 다중 카메라 깊이 정보(602)는 조인트 깊이 맵 추정(추장치)을 개발하기 위해 훈련된 신경망에 의해 처리되는 이미지들을 포함할 수 있다. 다른 예들에서, 다중 카메라 깊이 정보(602)는 깊이 맵 형태의 깊이 데이터 또는 다중 카메라 깊이 추정 기술(예를 들어, 스테레오 비전)을 사용하여 도출된 다른 데이터를 포함할 수 있다. 이러한 예에서, 훈련된 신경망은 깊이 데이터(및 잠재적으로 카메라로부터 캡처된 이미지)를 획득하여 조인트 깊이 맵을 결정할 수 있다.
일부 실시예에서, 스테레오 비전은 스테레오 전처리(608) 및 스테레오 캘리브레이션(610)을 포함할 수 있다. 스테레오 전처리(608)는 후속 깊이 분석을 위해 이미지 세트를 준비하는 것을 포함할 수 있다. 여기에는 스테레오 캘리브레이션(610)을 위한 이미지 정리(cleaning up) 및 구성(organizing)이 포함될 수 있다. 일부 예에서, 스테레오 전처리는 카메라(예를 들어, 망원(telephoto) 카메라)용 링 버퍼를 사용하는 것을 포함할 수 있고 그리고 원시(raw) 망원 이미지는 메모리와 전력을 절약하기 위해 센서 2x2에서 비닝(binned)될 수 있다. 또한 노이즈를 줄이기 위해 이미지 프레임을 정렬하고 병합할 수 있다. 이는 광도의 더 큰 동적 범위를 재현하는 데 사용할 수 있는 HDRI(High Dynamic Range Imaging)와 유사할 수 있다. 일부 예들에서, 스테레오 전처리(608)는 또한 (지정된 경우) 1차 카메라의 것과 일치하도록 베이스 프레임의 선택을 수반할 수 있다. 또한 시간을 절약하기 위해 저해상도 피니쉬(low-resolution finish)가 사용될 수 있다.
스테레오 캘리브레이션(610)은 모션 및/또는 DSR(direct self-rectification)로부터의 구조 및 특징 매칭(Feature matching) 중 하나 또는 조합을 사용하는 것을 수반할 수 있다. 일부 예에서, 여러 카메라의 이미지를 사용하는 깊이 추정치는 다른 기술을 포함할 수 있다. 특징 매칭은 로컬 특징를 사용하여 이미지 영역을 매칭(일치)시키기 위해 여러 이미지에 걸쳐 특징(특징)을 감지하는 것을 포함할 수 있다. 로컬 특징(Local features)는 폐색 및 혼란에 강할 수 있으며 대규모 객체 데이터베이스를 구별하는 데 도움이 될 수 있다. 이는 이미지들 사이에서 시차가 결정되는 것을 가능하게 하고 이미지 정렬 및 3D 재구성(예를 들어, 스테레오)을 도울 수 있다. SIFT(scale-invariant feature transform) 또는 SURF(speeded-up robust features)와 같은 다양한 유형의 특징 검출기가 사용될 수 있다.
모션으로부터의 구조는 로컬 모션 신호와 결합될 수 있는 2D 이미지 시퀀스로부터 3D 구조를 추정하는 것을 포함할 수 있다. 이미지 간의 관계성(correspondence)을 찾기 위해, 코너 포인트(여러 방향으로 그라데이션이 있는 에지)와 같은 특징은 이미지 간에 추적할 수 있다. 시간 경과에 따른 특징 궤적을 사용하여 3D 위치와 카메라의 모션을 재구성할 수 있다. 일부 경우에, 기하학적 정보(3D 구조 및 카메라 모션)는 특징이나 코너에 대한 중간 추상화(intermediate abstraction) 없이 이미지에서 직접 추정될 수 있다.
DSR을 사용하여 스테레오 정류(stereo rectification)를 수행할 수 있으며 모든 카메라 쌍에 대해 개별 오프라인 캘리브레이션이 필요하지 않을 수 있다. DSR은 원본 이미지와 변환된 이미지 사이의 해당 지점의 수직 변위를 최소화하는 것을 포함할 수 있다. DSR은 전화기의 듀얼 카메라(예: 스테레오용으로 배열된 카메라)에만 해당될 수 있다. 경우에 따라 기준선의 Y 및 Z 컴포넌트가 작은 경우 이미지 중 하나만 워핑(warping)하여 이미지를 수정할 수 있다. 이렇게 하면 이미지 공간에서 특징 매칭을 정렬하여 워프(warp)를 직접 해결할 수 있다.
단일 카메라 깊이 정보(604)는 깊이 정보를 위해 개별적으로 사용될 수 있는 하나 이상의 카메라로부터 획득된 이미지 및 기타 데이터를 나타낼 수 있다. 스마트폰 또는 다른 컴퓨팅 시스템은 듀얼 픽셀(612) 및 녹색 서브픽셀(614)과 같은, 깊이 추정 기술을 위해 이미지를 캡처하도록 구성된 카메라를 포함할 수 있다. 훈련된 신경망이 장면의 조인트 깊이 추정치를 생성하는 데 사용할 수 있는 깊이 정보를 유도하기 위해 다른 단일 카메라 기술이 사용될 수 있다.
일부 예들에서, 단일 카메라 깊이 정보(604)는 조인트 깊이 맵 추정을 개발하기 위해 훈련된 신경망에 의해 처리되는 이미지들을 포함할 수 있다. 다른 예들에서, 단일 카메라 깊이 정보(602)는 깊이 맵 형태의 깊이 데이터 또는 하나 이상의 단일 카메라 깊이 추정 기술(예를 들어, 듀얼 픽셀(612) 및 녹색 서브픽셀(614))을 사용하여 도출된 다른 데이터를 포함할 수 있다. 이러한 예에서, 훈련된 신경망은 조인트 깊이 맵을 결정하기 위해 깊이 데이터(및 잠재적으로 하나 이상의 카메라로부터 캡처된 이미지)를 얻을 수 있다.
듀얼 픽셀(612) 및 녹색 서브픽셀(614)은 단일 카메라를 사용하여 캡처된 이미지를 기반으로 깊이 맵을 생성할 수 있는 유사한 기술이다. 예를 들어, 깊이는 각각의 듀얼 픽셀 이미지를 두 개의 다른 단일 픽셀 이미지로 사용하고 두 개의 다른 단일 픽셀 이미지를 일치(매칭)시키려고 시도함으로써 듀얼 픽셀 이미지로부터 계산될 수 있다. 각 점(포인트)의 깊이는 두 뷰 사이에서 픽셀이 이동하는 정도를 결정한다. 녹색 서브픽셀(614)은 깊이를 결정하기 위해 삼각측량을 사용하여 분석되는 이미지로부터 복수의 이미지를 생성하는 방식으로 이미지의 픽셀 내의 녹색 서브픽셀을 사용하는 것을 수반할 수 있는 유사한 기술을 나타낼 수 있다.
신경망을 사용한 깊이 예측(606)은 훈련된 신경망을 사용하여 다른 구조에서 향상된 깊이 맵 또는 깊이 데이터를 생성하는 것을 수반할 수 있다. 훈련된 신경망은 다중 카메라 깊이 정보(602) 및 단일 카메라 깊이 정보(604)를 입력으로 사용하여 출력으로서 조인트 깊이 맵을 생성할 수 있다. 조인트 깊이 맵은 이미지의 하나 이상의 부분을 부분적으로 흐리게(partially blurring) 하는 것과 같이 장면의 하나 이상의 이미지를 후속적으로 수정하는 데 사용될 수 있다.
도 7a는 예시적인 실시예에 따른, 조인트 깊이 추정 아키텍처를 위한 제1 배열을 도시한다. 조인트 깊이 추정 아키텍처(700)는 듀얼 픽셀 입력(702) 및 차이-볼륨(diff-volume) 입력(710)과 같은 다중 입력에 기초하여 조인트 깊이 맵을 생성하기 위해 사용될 수 있는 예시적인 아키텍처를 나타낸다. 다른 예시적인 배열이 가능하다.
듀얼 픽셀 입력(702) 및 차이 볼륨 입력(710)은 추정치에 대한 깊이 추정치 및 관련 신뢰도를 도출하기 위해 입력이 사용될 수 있는 단일 카메라 및 다중 카메라 깊이 정보를 나타낸다. 예를 들어, 신경망(704) 또는 다른 처리 기술은 듀얼 픽셀 입력(702)에 따른 장면의 깊이 맵을 나타내는 듀얼 픽셀 깊이(706)를 생성하기 위해 듀얼 픽셀 입력(702)을 사용할 수 있다. 또한, 듀얼 픽셀 깊이(706)는 깊이 맵과 연관된 신뢰도 레벨을 나타내는 듀얼 픽셀 신뢰도(confidence)(708)를 포함할 수 있다. 신뢰도 레벨은 듀얼 픽셀 깊이(706)의 다른 부분에 대해 다를 수 있다. 유사하게, 신경망(712) 또는 다른 처리 기술은 차이-볼륨 입력(710)에 따른 장면의 깊이 맵을 나타낼 수 있는 코스트-볼륨(cost-volume) 깊이(714)를 생성하기 위해 차이-볼륨 입력(710)을 사용할 수 있다. 코스트-볼륨 깊이(714)는 또한 깊이 맵의 부분과 연관된 신뢰도 레벨 또는 레벨들을 나타내는 코스트-볼륨 신뢰도(716)를 포함할 수 있다. 신경망은 최종 깊이 맵(최종 깊이)(720)을 생성하기 위해 듀얼 픽셀 깊이(706), 듀얼 픽셀 신뢰도(708), 코스트-볼륨 깊이(714), 및 코스트-볼륨 신뢰도(716)와 같은 정보(718)를 사용하고 결합할 수 있다.
도 7b는 예시적인 실시예에 따른, 도 7a에 도시된 조인트 깊이 추정 아키텍처의 구현을 도시한다. 구현(730)은 도 7a에 도시된 조인트 깊이 추정 아키텍처(700)의 예시적인 구현을 나타내고, 깊이 예측(732, 736), 신뢰도(734, 738), 및 조인트 깊이 맵(740)을 포함한다.
특히, 듀얼-픽셀 입력(702) 및 차이-볼륨(diff-volume) 입력(710)을 수신할 때, 깊이 예측(732, 736) 및 연관된 신뢰도(734, 738)를 결정하기 위해 하나 이상의 프로세스가 수행될 수 있다. 도 7B에 도시된 바와 같이, 신뢰도(734)는 깊이 예측(732)과 연관되고 구현(730)의 깊이 맵에 표현된 사람의 경계 부근에서 더 높은 신뢰도를 나타낸다. 유사하게, 신뢰도(738)는 깊이 예측(736)과 연관되고 배경에 대한 더 높은 신뢰도를 나타낸다. 이와 같이, 신경망은 조인트 깊이 맵 표현(740)을 결정하기 위해 신뢰도(734, 738)를 사용하여 깊이 예측(732, 736)을 사용하고 결합할 수 있다. 예를 들어, 조인트 맵 표현(740)은
도 8a는 예시적인 실시예에 따른 다른 조인트 깊이 추정 아키텍처를 도시한다. 조인트 깊이 추정 아키텍처(800)는 듀얼 픽셀 입력(802) 및 차이-볼륨 입력(808)과 같은 다중 입력에 기초하여 조인트 깊이 맵을 생성하는데 사용될 수 있는 또 다른 예시적인 아키텍처를 나타낸다. 다른 예시적인 배열이 가능하다.
듀얼 픽셀 입력(802) 및 차이-볼륨 입력(808)은 입력에 기초한 조인트 깊이 맵을 나타내는 최종 깊이(810)를 결정하기 위해 입력이 사용될 수 있는 단일 카메라 및 다중 카메라 깊이 정보를 나타낸다. 특히, 신경망(804)은 최종 깊이(810)에 대한 조인트 깊이 맵을 개발(develop)하도록 입력을 처리하기 위해 하나 이상의 인코더 및/또는 공유 디코더(806)를 사용할 수 있다. 예를 들어, 신경망(804)은 듀얼-픽셀 입력(802) 및 차이-볼륨 입력(808)을 인코딩하고, 결합하고, 최종 깊이(810)에 대한 조인트 깊이 맵을 생성하기 위해 공유 디코더(806)를 통해 실행하도록 훈련된 하나 이상의 신경망을 포함할 수 있다.
도 9는 예시적인 실시예에 따른 조인트 깊이 추정에 기초한 이미지의 수정을 도시한다. 입력 이미지(900)는 하나 이상의 카메라에 의해 캡처된 이미지 또는 이미지의 집합체를 나타낸다. 예를 들어, 스마트 폰 또는 웨어러블 디바이스의 카메라는 입력 이미지(900)를 캡처할 수 있다. 이와 같이, 입력 이미지(900)는 입력 이미지(900)의 전경에 위치한 장난감 개(902)를 포함하는 장면을 전달한다. 특히, 장면은 장난감 개(902)가 사람의 발(904)과 의자(906) 앞의 데크에 위치하는 것을 보여준다. 이와 같이, 입력 이미지(900)는 2D의 모든 요소가 흐릿한(블러) 입력 이미지(900)의 어떤 부분도 없이 선명한 프리젠테이션으로서 도 9에 도시된다. 예를 들어, 입력 이미지(900)는 적용된 수정 없이 카메라에 의해 캡처된 이미지가 어떻게 나타날 수 있는지를 나타낼 수 있다.
일부 예들에서, 입력 이미지(900)는 이미지들의 세트를 나타낼 수 있다. 이미지 세트는 도 9에 도시된 조인트 깊이 추정치(908)를 유도하기 위해 사용될 수 있다. 일 실시예에서, 조인트 깊이 맵(908)은 입력 이미지(900) 및 도 6-8과 관련하여 위에서 설명된 바와 같은 다른 이미지들로부터 도출된 깊이 추정치를 사용하는 신경망에 의해 개발될 수 있다.
조인트 깊이 맵(908)은 입력 이미지(900)에 의해 표현되는 장면 내의 요소들의 추정된 깊이를 묘사한다. 특히, 조인트 깊이 맵(908)은 배경에 위치된 어두운 부분(예를 들어, 발(904) 및 의자(906))과 비교하여 카메라에 더 가깝게 위치된 요소를 나타내는 밝은 부분(예를 들어, 장난감 개(902))을 갖는 입력 이미지(900) 부분의 추정된 깊이를 보여준다. 도시된 바와 같이, 조인트 깊이 맵(908)의 음영은 장난감 개(902)가 전경(예를 들어, 더 밝은 음영)에 위치하는 반면 발(904) 및 의자(906)는 배경(예를 들어, 더 어두운 음영)에 위치를 갖는 것으로 나타남을 나타내는 것처럼 보인다. 다시 말해서, 조인트 깊이 맵(908)은 발(904) 및 의자(906)에 비해 장난감 개(902)가 이미지 캡처 동안 카메라에 더 가깝게 위치되었음을 나타낸다.
또한, 도 9는 원래 캡처된 입력 이미지(900)의 수정된 버전을 나타내는 수정된 이미지(910)를 더 보여준다. 조인트 깊이 맵(908)을 사용함으로써, 보케(Bokeh) 효과와 유사한 방식으로 전경의 장난감 개(902)와 발(904) 및 의자(906)에 초점을 맞춘 수정된 이미지(910)가 생성되었다.
일부 예들에서, 수정된 이미지(910)를 생성하는 것은 이미지 콘트라스트를 증가시키기 위해 이미지의 부분들을 선명하게 하는 것을 수반할 수 있다. 특히, 선명하게 하면 수정된 이미지(910)에서 에지의 정의가 향상될 수 있다. 예를 들어, 장난감 개(902)의 에지가 선명하게 될 수 있다. 선명하게 하기는 한 단계(one step) 또는 일련의 반복으로 수행할 수 있다.
추가 예들에서, 수정된 이미지(910)를 생성하는 것은 이미지의 하나 이상의 부분들을 흐리게(블러링)(blurring) 하는 것을 수반할 수 있다. 흐리게 처리하면 입력 이미지(900) 및 기타 입력 이미지에서 이미지 그레인(grain) 및 노이즈가 제거될 수 있다. 일부 경우에, 블러링은 블러 효과를 생성하기 위해 수정된 이미지(910)의 부분에 노이즈를 추가하거나 제거하는 것을 포함할 수 있다. 가우시안 함수에 의해 이미지의 일부를 흐리게 하는 것을 포함하는 가우시안 블러가 사용될 수 있다. 보케 효과와 달리 가우시안 블러 효과는 반투명 화면을 통해 이미지의 일부를 보는 것과 유사한 부드러운 블러 효과를 생성할 수 있다. 이와 같이, 이미지 요소를 향상시키기 위해 가우시안 블러링(가우시안 블러)이 수행될 수 있다. 다른 예에서, 다른 유형의 블러(블러링) 효과가 사용될 수 있다. 예를 들어, 원형 상자 블러 효과는 수정된 이미지(910)의 배경 요소를 흐리게(블러링) 하는 데 사용될 수 있다.
일부 예에서, 장면의 부분에 초점을 두고 장면의 하나 이상의 다른 부분을 흐리게 하여 이미지의 새로운 버전을 생성하는 것은 에지 인식 스무딩(edge aware smoothing)을 수행하는 것을 포함할 수 있다. 특히, 에지 인식 스무딩은 새 버전에서 초점이 맞춰진 부분이 흐려지는 장면의 하나 이상의 다른 부분에 비해 부드러운 에지를 갖도록 할 수 있다.
일부 실시예에서, 수정된 이미지(910) 내에서 초점이 맞춰진 부분 및 흐리게 처리된 부분은 입력 이미지(900)를 캡처할 때 원래 수신된 사용자 입력을 팩터링(factor)할 수 있다. 예를 들어, 입력 이미지(900) 캡처를 준비할 때, 카메라 디바이스는 뷰파인더를 사용하여 카메라의 잠재적 이미지에 대한 뷰포인트를 표시할 수 있다. 뷰파인더는 사용자가 이미지 캡처 동안 카메라가 초점을 맞춰야 하는 장면의 일부를 선택할 수 있게 해주는 터치스크린일 수 있다. 그 결과, 수정된 이미지(910)를 생성할 때, 카메라 디바이스는 초점을 맞출 요소(예를 들어, 장난감 개(902))와 수정된 이미지(910) 내에서 흐리게 할 요소를 결정할 때 사용자에 의한 장면의 사전 선택을 고려할 수 있다.
도 10은 예시적인 실시예에 따른 신경 광 전달 기능을 구현하기 위한 방법(1000)의 흐름도이다. 방법(1000)은 블록(1002, 1004, 1006) 중 하나 이상에 의해 예시된 바와 같은 하나 이상의 오퍼레이션, 기능, 또는 동작을 포함할 수 있다. 블록이 순차적인 순서로 예시되어 있지만, 이러한 블록은 일부 경우에 병렬로 및/또는 여기에 설명된 것과 다른 순서로 수행될 수 있다. 또한, 다양한 블록은 원하는 구현에 기초하여 더 적은 수의 블록으로 결합되고, 추가 블록으로 분할되고, 및/또는 제거될 수 있다.
또한, 방법(1000) 및 여기에 개시된 다른 프로세스 및 방법에 대해, 흐름도는 본 실시예의 하나의 가능한 구현의 기능 및 동작을 도시한다. 이와 관련하여, 각 블록은 모듈, 세그먼트 또는 프로그램 코드의 일부를 나타낼 수 있으며, 이는 프로세스의 특정 논리 함수 또는 단계를 구현하기 위해 프로세서에 의해 실행 가능한 하나 이상의 명령어를 포함한다. 프로그램 코드는 예를 들어 디스크 또는 하드 드라이브를 포함하는 저장 장치와 같은 임의의 유형의 컴퓨터 판독 가능 매체 또는 메모리에 저장될 수 있다.
컴퓨터 판독가능 매체는 예를 들어 레지스터 메모리, 프로세서 캐시 및 랜덤 액세스 메모리(RAM)와 같은 짧은 기간 동안 데이터를 저장하는 컴퓨터 판독가능 매체와 같은 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 또한 예를 들어 읽기 전용 메모리(ROM), 광 디스크 또는 자기 디스크, 콤팩트 디스크 읽기 전용 메모리(CD-ROM)와 같은 2차 또는 영구 장기 저장 장치와 같은 비일시적 매체 또는 메모리를 포함할 수 있다.
컴퓨터 판독가능 매체는 또한 임의의 다른 휘발성 또는 비휘발성 저장 시스템일 수 있다. 컴퓨터 판독가능 매체는 예를 들어 컴퓨터 판독가능 저장 매체, 유형의 저장 디바이스, 또는 다른 제조 물품으로 간주될 수 있다. 또한, 방법(1000) 및 여기에 개시된 다른 프로세스 및 방법에 대해, 도 10의 각 블록은 프로세스에서 특정 논리 기능을 수행하도록 연결된 회로를 나타낼 수 있다.
블록(1002)에서, 방법(1000) 은 제1 소스로부터 장면을 나타내는 제1 세트의 깊이 정보 및 제2 소스로부터 장면을 나타내는 제2 세트의 깊이 정보를 획득하는 단계를 포함한다. 컴퓨팅 시스템은 카메라, 센서 및/또는 컴퓨팅 시스템을 포함하는 다양한 유형의 소스로부터 하나 이상의 깊이 정보 세트를 얻을 수 있다.
컴퓨팅 시스템은 단일 카메라로부터 장면을 나타내는 깊이 정보(예를 들어, 제1 세트의 깊이 정보)를 수신할 수 있으며, 여기서 제1 세트의 깊이 정보는 장면을 묘사하는 하나 이상의 듀얼 픽셀 이미지에 대응한다. 제1 세트의 깊이 정보는 단일 카메라로부터 획득된 듀얼 픽셀 이미지에 기초한 장면의 제1 깊이 추정치를 포함할 수 있다. 일부 예들에서, 컴퓨팅 시스템은 듀얼 픽셀 깊이 추정 및/또는 녹색 서브픽셀 깊이 추정을 위한 이미지를 캡처하도록 구성된 하나 이상의 카메라로부터 깊이 정보(예를 들어, 깊이 추정치 및/또는 이미지)를 수신할 수 있다.
또한, 컴퓨팅 시스템은 한 쌍의 스테레오 카메라로부터 깊이 정보(예를 들어, 제2 세트의 깊이 정보)를 수신할 수 있다. 특히, 제2 세트의 깊이 정보는 장면을 묘사하는 하나 이상의 스테레오 이미지 세트에 대응할 수 있다. 제2 세트의 깊이 정보는 장면을 묘사하는 하나 이상의 스테레오 이미지 세트에 기초하여 생성된 장면의 제2 깊이 추정치를 포함할 수 있다. 일부 예들에서, 장면의 제2 깊이 추정치는 차이 볼륨 기술을 사용하여 결정된다. 차이 볼륨 기술은 망원 이미지를 다른 깊이의 평면에 투영하고 메인 이미지에서 감산하여(subtracting)스택을 형성하는 것을 포함할 수 있다. 일부 경우에, 차이 볼륨 기술은 깊이 추정이 하나 이상의 이미지와 정렬되는 것을 가능하게 할 수 있다.
블록(1004)에서, 방법(1000)은 신경망을 사용하여 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하는 단계를 포함한다. 신경망은 제1 세트의 깊이 정보와 제2 세트의 깊이 정보의 조합에 기초하여 조인트 깊이 맵을 결정할 수 있다. 특히, 신경망은 최적의 조인트 깊이 맵을 생성하기 위해 다중 소스(예를 들어, 단일 카메라, 스테레오 카메라)로부터 도출된 다중 세트의 깊이 정보를 결합하는 방법을 결정하도록 훈련될 수 있다. 최적의 조인트 깊이 맵은 장면의 다른 요소를 명확하게 구분할 수 있을 뿐만 아니라 장면의 배경 요소와 전경 요소 간의 명확한 차이를 나타낼 수 있다. 조인트 깊이 맵에는 요소의 샤프 에지(sharp edges) 및 단 하나의 기술을 사용하여 설정된 깊이 맵에 대한 기타 잠재적 개선 사항이 포함될 수 있다.
일부 예들에서, 조인트 깊이 맵을 결정하는 것은 신경망에 의해, 제1 세트의 깊이 정보에 제1 가중치를 할당하고, 제2 세트의 깊이 정보에 제2 가중치를 할당하는 것을 수반할 수 있다. 이는 제1 세트의 깊이 정보에 할당된 제1 가중치 및 제2 세트의 깊이 정보에 할당된 제2 가중치에 기초하여 조인트 깊이 맵을 결정하는 것을 더 포함할 수 있다. 일부 경우에, 신경망에 의해 제1 세트의 깊이 정보에 제1 가중치를 할당하고 제2 세트의 깊이 정보에 제2 가중치를 할당하는 것은 장면의 이미지를 캡처한 카메라와 장면의 전경에 있는 요소 사이의 거리에 기초할 수 있다. 또한, 깊이 정보(예를 들어, 이미지 및/또는 깊이 추정치)에 할당된 가중치는 신경망을 훈련하는 데 사용되는 훈련 데이터(예: 이미지 세트)와 같은 다른 요인에 따라 달라질 수 있다.
일부 예들에서, 조인트 깊이 맵을 결정하는 것은 깊이 정보의 세트들과 연관된 신뢰도에 기초할 수도 있다. 예를 들어, 조인트 깊이는 제1 세트의 깊이 정보와 연관된 제1 신뢰도 및 제2 세트의 깊이 정보와 연관된 제2 신뢰도에 기초하여 결정될 수 있다. 신뢰도는 다양한 방식으로 결정될 수 있다. 예를 들어, 카메라로부터 수신된 이미지를 기반으로 깊이 추정치를 개발하는 컴퓨팅 시스템은 각 추정치에 대한 신뢰도를 할당할 수 있다. 설명하기 위해, 신경망 또는 다른 프로세스는 삼각 측량, 스테레오 비전, 차이 볼륨 계산, 듀얼 픽셀 및 녹색 서브픽셀 등과 같은 다양한 기술을 사용하여 하나 이상의 이미지에 기초하여 깊이를 추정하도록 구성될 수 있다. 이와 같이 네트워크 또는 프로세스는 각각의 깊이 추정치에 대한 신뢰도를 할당할 수도 있다. 신뢰도는 전체 깊이 추정치 또는 일부 깊이 추정치에 대한 신뢰도일 수 있다. 일부 예들에서, 컴퓨팅 시스템은 제1 세트의 깊이 정보 및 제2 세트의 깊이 정보를 신경망에 대한 입력으로서 제공하여, 신경망이 제1 세트의 깊이 정보와 연관된 제1 신뢰도 및 제2 세트의 깊이 정보와 연관된 제2 신뢰도를 사용하여 조인트 깊이 맵을 결정하도록 한다.
또한, 조인트 깊이 맵을 결정하는 것은 신경망이 조인트 깊이 맵을 결정하기 위해 디코더를 사용하도록, 신경망에 대한 입력으로서 깊이 정보 세트(예를 들어, 제1 및 제2 세트)를 사용하는 것에 기초할 수 있으며, 이느 신경망이 장면 내 요소의 깊이를 식별하고 요소를 구별할 수 있는 다른 이미징 처리 기술을 수행하도록 훈련될 때 신경망에 대한 입력으로 사용될 수 있다.
블록(1006)에서, 방법(1000)은 조인트 깊이 맵에 기초하여 장면을 나타내는 이미지를 수정하는 것을 포함한다. 예를 들어, 하나 이상의 이미지 수정 기술은 조인트 깊이 맵에 기초하여 장면을 묘사하는 하나 이상의 이미지에 대해 수행될 수 있다. 이러한 이미지는 깊이 정보 세트를 개발하기 위해 원래 캡처된 이미지에 해당하거나 동일한 장면의 새로운 이미지일 수 있다.
일부 예들에서, 이미지의 하나 이상의 부분들은 조인트 깊이 맵에 기초하여 부분적으로 흐려질 수 있다. 예를 들어, 이미지의 배경 부분은 전경에 있는 하나 이상의 객체를 돋보이게 하기 위해 흐려질 수 있다.
일부 예들에서, 신경망을 훈련시키는 것은 훈련 데이터를 생성하기 위해 배열되고 동기화된 다중 카메라 장비를 사용하는 것을 수반할 수 있다. 예를 들어, 듀얼 카메라는 GT 깊이를 계산하기 위해 10개의 뷰를 제공할 수 있다. 추가 예에서, 조인트 깊이 맵은 스테레오 캘리브레이션의 스파스 포인트 클라우드(sparse point cloud)를 사용하여 거의 미터법 깊이로 변환될 수 있다.
일부 예에서, 디바이스는 세로 모드와 같은 특정 모드에서 이미지를 캡처할 때 여기에 설명된 기술 중 하나 이상을 수행할 수 있다. 특정 모드(예를 들어, 세로 모드)는 장면의 픽셀에서 객체의 거리를 초기에 추정하는 컴퓨팅 시스템(즉, 깊이 결정)을 수반할 수 있다. 그 다음, 컴퓨팅 시스템은 원본 이미지(예를 들어, HDR+ 이미지)의 각 픽셀을 깊이에 기초한 크기의 반투명 디스크(translucent disk)로 교체함으로써 결과를 렌더링할 수 있다.
추가 예들에서, 시스템은 텍스처 및 라인 식별 및 깊이 추정치를 추가로 향상시키기 위해 각각의 깊이 추정 기술과 연관된 기준선(베이스라인) 방향 정보(orientation information)를 사용할 수도 있다. 예를 들어, 듀얼 픽셀은 제1 방위(예를 들어, 수직)를 갖는 베이스라인(기준선)을 가질 수 있고, 듀얼 카메라는 제1 방향에 직교하는 제2 방향(예를 들어, 수평)를 갖는 베이스라인을 가질 수 있다. 직교 방향을 가짐으로써, 신경망 또는 다른 이미지 처리 기술은 기준선의 직교성을 사용하여 텍스처, 라인(선)의 방향 및 요소의 깊이와 같은 장면에 관한 정보를 도출하는 것을 더욱 향상시킬 수 있다.
도 11은 여기에 제시된 적어도 일부 실시예에 따라 배열된, 컴퓨팅 시스템에서 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램의 개념적 부분도를 예시하는 개략도이다. 개시된 방법은 기계 판독 가능 형식의 비일시적 컴퓨터 판독 가능 저장 매체, 또는 다른 비일시적 매체 또는 제조 물품에 인코딩된 컴퓨터 프로그램 명령어로서 구현될 수 있다.
일 실시예에서, 예시적인 컴퓨터 프로그램 제품(1100)은 하나 이상의 프로세서에 의해 실행될 때 도 1 내지 10과 관련하여 위에서 설명된 기능 또는 기능의 부분을 제공할 수 있는 하나 이상의 프로그래밍 명령어(1104)를 포함할 수 있는 신호 베어링 매체(1102)를 사용하여 제공된다. 일부 예에서, 신호 베어링 매체(1102)는 비일시적 컴퓨터 판독 가능 매체(1106), 예를 들어 하드 디스크 드라이브, 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 디지털 테이프, 메모리 등을 포함할 수 있지만 이에 국한되지는 않는다. 일부 구현에서, 신호 베어링 매체(1102)는 메모리, 읽기/쓰기(R/W) CD, R/W DVD 등과 같은(이에 국한되지 않음) 컴퓨터 기록 가능 매체(1108)를 포함할 수 있다. 일부 구현에서, 신호 베어링 매체(1102)는 디지털 및/또는 아날로그 통신 매체(예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등)와 같은(이에 국한되지 않음) 통신 매체(1110)를 포함할 수 있다. 따라서, 예를 들어, 신호 베어링 매체(1102)는 무선 형태의 통신 매체(1110)에 의해 전달될 수 있다.
하나 이상의 프로그래밍 명령어(1104)는 예를 들어 컴퓨터 실행 가능 및/또는 논리 구현 명령어일 수 있다. 일부 예에서, 도 1의 컴퓨터 시스템(100)과 같은 컴퓨팅 장치는 컴퓨터 판독가능 매체(1106), 컴퓨터 기록가능 매체(1108), 및/또는 통신 매체(1110) 중 하나 이상에 의해 컴퓨터 시스템(100)에 전달된 프로그래밍 명령어(1104)에 응답하여 다양한 오퍼레이션, 기능 또는 동작을 제공하도록 구성될 수 있다.
비일시적 컴퓨터 판독 가능 매체는 또한 서로로부터 원격으로 위치될 수 있는 복수의 데이터 저장 요소 사이에 분산될 수 있다. 대안적으로, 저장된 명령어의 일부 또는 전부를 실행하는 컴퓨팅 장치는 서버와 같은 다른 컴퓨팅 장치일 수 있다.
위의 상세한 설명은 첨부된 도면을 참조하여 개시된 시스템, 장치 및 방법의 다양한 특징 및 기능을 설명한다. 다양한 양태 및 실시예가 본 명세서에 개시되었지만, 다른 양태 및 실시예가 명백할 것이다. 본 명세서에 개시된 다양한 양태 및 실시예는 예시를 위한 것이며 제한하려는 것이 아니며, 진정한 범위는 다음 청구범위에 의해 표시된다.
여기에 설명된 구성은 단지 예시를 위한 것임을 이해해야 한다. 이와 같이, 당업자는 다른 배열 및 다른 요소(예를 들어, 기계, 장치, 인터페이스, 기능, 순서 및 기능의 그룹화 등)가 대신 사용될 수 있고 원하는 결과에 따라 일부 요소가 완전히 생략될 수 있음을 이해할 것이다. 또한, 설명된 많은 요소는 임의의 적절한 조합 및 위치에서 이산 또는 분산된 컴포넌트로 또는 다른 컴포넌트와 함께 구현될 수 있는 기능적 엔티티이다.

Claims (20)

  1. 방법으로서,
    컴퓨팅 시스템에서, 제1 소스로부터 장면을 나타내는 제1 세트의 깊이 정보 및 제2 소스로부터 상기 장면을 나타내는 제2 세트의 깊이 정보를 획득하는 단계;
    컴퓨팅 시스템에서, 신경망을 사용하여, 상기 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하는 단계 -상기 신경망은 상기 제1 세트의 깊이 정보와 제2 세트의 깊이 정보의 조합에 기초하여 조인트 깊이 맵을 결정함-; 그리고
    상기 조인트 깊이 맵을 기반으로 상기 장면을 나타내는 이미지를 수정하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 제1 소스로부터 상기 장면을 나타내는 제1 세트의 깊이 정보 및 상기 제2 소스로부터 상기 장면을 나타내는 제2 세트의 깊이 정보를 획득하는 단계는,
    단일 카메라로부터 상기 장면을 나타내는 제1 세트의 깊이 정보를 수신하는 단계를 포함하며, 상기 제1 세트의 깊이 정보는 상기 장면을 묘사하는 하나 이상의 듀얼 픽셀 이미지에 대응하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 제1 소스로부터 장면을 나타내는 제1 세트의 깊이 정보 및 상기 제 2 소스로부터 상기 장면을 나타내는 제2 세트의 깊이 정보를 획득하는 단계는,
    하나 이상의 듀얼 픽셀 이미지에 기초하여 상기 장면의 제1 깊이 추정치(estimation)를 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 제1 소스로부터 상기 장면을 나타내는 제1 세트의 깊이 정보 및 상기 제2 소스로부터 상기 장면을 나타내는 제2 세트의 깊이 정보를 획득하는 단계는,
    한 쌍의 스테레오 카메라로부터 상기 장면을 나타내는 제2 세트의 깊이 정보를 수신하는 단계를 포함하며, 상기 제2 세트의 깊이 정보는 상기 장면을 묘사하는 하나 이상의 스테레오 이미지 세트에 대응하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 제1 소스로부터 장면을 나타내는 제1 세트의 깊이 정보 및 제2 소스로부터 장면을 나타내는 제2 세트의 깊이 정보를 획득하는 단계는,
    상기 장면을 묘사하는 하나 이상의 스테레오 이미지 세트에 기초하여 상기 장면의 제2 깊이 추정치를 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 상기 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하는 단계는,
    상기 신경망에 의해, 제1 세트의 깊이 정보에 제1 가중치를 할당하고, 제2 세트의 깊이 정보에 제2 가중치를 할당하는 단계; 그리고
    상기 제1 세트의 깊이 정보에 할당된 제1 가중치 및 제2 세트의 깊이 정보에 할당된 제2 가중치에 기초하여 상기 조인트 깊이 맵을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 상기 신경망에 의해, 제1 세트의 깊이 정보에 제1 가중치를 할당하고 제2 세트의 깊이 정보에 제2 가중치를 할당하는 단계는 상기 장면의 이미지를 캡처한 카메라와 상기 장면의 전경(foreground)의 요소 사이의 거리에 기초하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, 상기 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하는 단계는,
    제1 세트의 깊이 정보와 연관된 제1 신뢰도 및 제2 세트의 깊이 정보와 연관된 제2 신뢰도에 기초하여 상기 조인트 깊이 맵을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서, 상기 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하는 단계는,
    상기 신경망이 디코더를 사용하여 상기 조인트 깊이 맵을 결정하도록 제1 세트의 깊이 정보 및 제2 세트의 깊이 정보를 상기 신경망에 대한 입력으로서 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서, 상기 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하는 단계는,
    상기 신경망이 제1 세트의 깊이 정보와 연관된 제1 신뢰도 및 제2 세트의 깊이 정보와 연관된 제2 신뢰도를 사용하여 상기 조인트 깊이 맵을 결정하도록 상기 신경망에 대한 입력으로서 제1 세트의 깊이 정보 및 제2 세트의 깊이 정보를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서, 상기 조인트 깊이 맵에 기초하여 상기 장면을 나타내는 이미지를 수정하는 단계는,
    상기 조인트 깊이 맵에 기초하여 상기 이미지의 하나 이상의 배경 부분에 부분 블러(partial blur)를 적용하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 시스템으로서,
    복수의 소스;
    컴퓨팅 시스템을 포함하며, 상기 컴퓨팅 시스템은,
    제1 소스로부터 장면을 나타내는 제1 세트의 깊이 정보 및 제2 소스로부터 상기 장면을 나타내는 제2 세트의 깊이 정보를 획득하고;
    신경망을 사용하여, 상기 장면의 요소에 대한 각 깊이를 전달하는 조인트 깊이 맵을 결정하고 -상기 신경망은 제1 세트의 깊이 정보와 제2 세트의 깊이 정보의 조합에 기초하여 상기 조인트 깊이 맵을 결정함-; 그리고
    상기 조인트 깊이 맵을 기반으로 상기 장면을 나타내는 이미지를 수정하도록 구성되는 것을 특징으로 하는 시스템.
  13. 제12항에 있어서, 상기 컴퓨팅 시스템은 상기 제1 세트의 깊이 정보가 상기 장면을 묘사하는 하나 이상의 듀얼 픽셀 이미지에 대응하도록 단일 카메라로부터 상기 장면을 나타내는 제1 세트의 깊이 정보를 수신하도록 구성되는 것을 특징으로 하는 시스템.
  14. 제13항에 있어서, 상기 제1 세트의 깊이 정보는 하나 이상의 듀얼 픽셀 이미지에 기초한 상기 장면의 제1 깊이 추정치를 포함하는 것을 특징으로 하는 시스템.
  15. 제12항에 있어서, 상기 컴퓨팅 시스템은, 제2 세트의 깊이 정보가 상기 장면을 묘사하는 하나 이상의 스테레오 이미지 세트에 대응하도록 한 쌍의 스테레오 카메라로부터 상기 장면을 나타내는 제2 세트의 깊이 정보를 수신하도록 구성되는 것을 특징으로 하는 시스템.
  16. 제15항에 있어서, 상기 제2 세트의 깊이 정보는 하나 이상의 스테레오 이미지 세트에 기초한 상기 장면의 제2 깊이 추정치를 포함하고, 상기 장면의 제2 깊이 추정치는 차이 볼륨 기술을 사용하여 결정되는 것을 특징으로 하는 시스템.
  17. 제12항에 있어서, 상기 컴퓨팅 시스템은,
    상기 신경망을 사용하여, 제1 세트의 깊이 정보와 연관된 제1 신뢰도 및 제2 세트의 깊이 정보와 연관된 제2 신뢰도에 기초하여 상기 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하도록 구성되는 것을 특징으로 하는 시스템.
  18. 제12항에 있어서, 상기 컴퓨팅 시스템은,
    상기 신경망을 사용하여, 상기 신경망에 의한 제1 세트의 깊이 정보 및 제2 세트의 깊이 정보에 대한 디코더의 애플리케이션에 기초하여 상기 장면의 요소에 대한 각각의 깊이를 전달하는 조인트 깊이 맵을 결정하도록 구성되는 것을 특징으로 하는 시스템.
  19. 제12항에 있어서, 상기 컴퓨팅 시스템은,
    상기 조인트 깊이 맵을 기반으로 이미지의 하나 이상의 배경 부분에 부분 블러를 적용하여 상기 장면을 나타내는 이미지를 수정하도록 구성되는 것을 특징으로 하는 시스템.
  20. 하나 이상의 프로세서를 포함하는 컴퓨팅 시스템에 의해 실행될 때 상기 컴퓨팅 시스템으로 하여금 동작들을 수행하게 하는 명령어를 저장하도록 구성된 비일시적 컴퓨터 판독 가능 매체로서, 상기 동작들은,
    제1 소스로부터 장면을 나타내는 제1 세트의 깊이 정보 및 제2 소스로부터 상기 장면을 나타내는 제2 세트의 깊이 정보를 획득하는 동작;
    신경망을 사용하여, 상기 장면의 요소에 대한 각 깊이를 전달하는 조인트 깊이 맵을 결정하는 동작 -상기 신경망은 제1 세트의 깊이 정보와 제2 세트의 깊이 정보의 조합에 기초하여 상기 조인트 깊이 맵을 결정함-; 그리고
    상기 조인트 깊이 맵을 기반으로 상기 장면을 나타내는 이미지를 수정하는 동작을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독 가능 매체.
KR1020227009942A 2019-10-14 2020-04-27 듀얼 카메라 및 듀얼 픽셀을 통한 조인트 깊이 예측 KR20220052359A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962914988P 2019-10-14 2019-10-14
US62/914,988 2019-10-14
PCT/US2020/030108 WO2021076185A1 (en) 2019-10-14 2020-04-27 Joint depth prediction from dual-cameras and dual-pixels

Publications (1)

Publication Number Publication Date
KR20220052359A true KR20220052359A (ko) 2022-04-27

Family

ID=75538586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227009942A KR20220052359A (ko) 2019-10-14 2020-04-27 듀얼 카메라 및 듀얼 픽셀을 통한 조인트 깊이 예측

Country Status (6)

Country Link
US (1) US20220343525A1 (ko)
EP (1) EP4038575A4 (ko)
JP (1) JP7401663B2 (ko)
KR (1) KR20220052359A (ko)
CN (1) CN114556422A (ko)
WO (1) WO2021076185A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024034837A1 (ko) * 2022-08-09 2024-02-15 삼성전자주식회사 깊이 맵을 획득하기 위한 전자 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941080B2 (en) * 2021-05-20 2024-03-26 Retrocausal, Inc. System and method for learning human activities from video demonstrations using video augmentation
US20230188691A1 (en) * 2021-12-14 2023-06-15 Robert John Hergert Active dual pixel stereo system for depth extraction
CN115423724B (zh) * 2022-11-03 2023-03-21 中国石油大学(华东) 强化学习参数优化的水下图像增强方法、装置及介质
CN116721143B (zh) * 2023-08-04 2023-10-20 南京诺源医疗器械有限公司 3d医学图像的深度信息处理装置及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214536B1 (ko) * 2010-01-12 2013-01-10 삼성전자주식회사 뎁스 정보를 이용한 아웃 포커스 수행 방법 및 이를 적용한 카메라
KR101820456B1 (ko) * 2011-06-27 2018-01-22 에스케이플래닛 주식회사 깊이 맵 생성 방법 및 장치
TW201432622A (zh) * 2012-11-07 2014-08-16 Koninkl Philips Nv 產生一關於一影像之深度圖
US9619933B2 (en) * 2014-06-16 2017-04-11 Occipital, Inc Model and sizing information from smartphone acquired image sequences
US10019657B2 (en) * 2015-05-28 2018-07-10 Adobe Systems Incorporated Joint depth estimation and semantic segmentation from a single image
US11128854B2 (en) 2018-03-13 2021-09-21 Magic Leap, Inc. Image-enhanced depth sensing via depth sensor control

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024034837A1 (ko) * 2022-08-09 2024-02-15 삼성전자주식회사 깊이 맵을 획득하기 위한 전자 장치 및 방법

Also Published As

Publication number Publication date
JP7401663B2 (ja) 2023-12-19
US20220343525A1 (en) 2022-10-27
EP4038575A4 (en) 2023-11-15
WO2021076185A1 (en) 2021-04-22
EP4038575A1 (en) 2022-08-10
CN114556422A (zh) 2022-05-27
JP2022551958A (ja) 2022-12-14

Similar Documents

Publication Publication Date Title
US10535141B2 (en) Differentiable jaccard loss approximation for training an artificial neural network
JP7401663B2 (ja) デュアルカメラおよびデュアルピクセルからのジョイント深度予測
US11074714B2 (en) Eye tracking method and system
KR102662201B1 (ko) 콘볼루셔널 이미지 변환을 사용하여 동시 로컬화 및 맵핑을 수행하기 위한 방법 및 시스템
JP6431245B1 (ja) エッジ認識双方向画像処理
Xie et al. Deep3d: Fully automatic 2d-to-3d video conversion with deep convolutional neural networks
KR20210139450A (ko) 이미지 디스플레이 방법 및 디바이스
US11663691B2 (en) Method and apparatus for restoring image
JP6489551B2 (ja) 画像のシーケンスにおいて前景を背景から分離する方法およびシステム
Liu et al. Image de-hazing from the perspective of noise filtering
US20220327769A1 (en) Neural light transport
CN109509248B (zh) 一种基于神经网络的光子映射渲染方法和***
WO2021220688A1 (en) Reinforcement learning model for labeling spatial relationships between images
Luo et al. Bokeh rendering from defocus estimation
US10567635B2 (en) Three dimensional moving pictures with a single imager and microfluidic lens
CN116391206A (zh) 采用神经渲染的立体表演捕获
Won et al. Learning depth from focus in the wild
CN117808691A (zh) 一种基于差异显著性聚合和联合梯度约束的图像融合方法
CN109978928B (zh) 一种基于加权投票的双目视觉立体匹配方法及其***
JP2018133064A (ja) 画像処理装置、撮像装置、画像処理方法および画像処理プログラム
JP2018081378A (ja) 画像処理装置、撮像装置、画像処理方法および画像処理プログラム
EP2947626A1 (en) Method and apparatus for generating spanning tree, method and apparatus for stereo matching, method and apparatus for up-sampling, and method and apparatus for generating reference pixel
de Carvalho Deep depth from defocus: Neural networks for monocular depth estimation
EP4362484A1 (en) Method and apparatus with autofocus
US20240046434A1 (en) Image processing method and image processing apparatus performing the same

Legal Events

Date Code Title Description
E902 Notification of reason for refusal