KR20210059612A - 심층 신경망 특징 매칭을 위한 비대칭 정규화 상관 계층 - Google Patents

심층 신경망 특징 매칭을 위한 비대칭 정규화 상관 계층 Download PDF

Info

Publication number
KR20210059612A
KR20210059612A KR1020200141451A KR20200141451A KR20210059612A KR 20210059612 A KR20210059612 A KR 20210059612A KR 1020200141451 A KR1020200141451 A KR 1020200141451A KR 20200141451 A KR20200141451 A KR 20200141451A KR 20210059612 A KR20210059612 A KR 20210059612A
Authority
KR
South Korea
Prior art keywords
feature map
image
map
feature
neural network
Prior art date
Application number
KR1020200141451A
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
Priority claimed from US16/712,882 external-priority patent/US11132772B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to EP20888000.5A priority Critical patent/EP3977410A4/en
Priority to PCT/KR2020/015335 priority patent/WO2021096152A1/en
Priority to CN202080079531.8A priority patent/CN114830176A/zh
Publication of KR20210059612A publication Critical patent/KR20210059612A/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • 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]

Landscapes

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

Abstract

방법은 전자 장치의 제1 이미지 센서를 이용하여 장면의 제1 이미지를 획득하고 상기 전자 장치의 제2 이미지 센서를 이용하여 상기 장면의 제1 이미지를 획득하는 단계를 포함한다. 상기 방법은 또한 상기 제1 이미지로부터 제1 특징 맵을 생성하고 상기 제2 이미지로부터 제2 특징 맵을 생성하는 단계를 포함한다. 상기 방법은 상기 제1 특징 맵, 상기 제2 특징 맵, 및 비대칭 검색 윈도우에 기초하여 제3 특징 맵을 생성하는 단계를 더 포함한다. 상기 방법은 상기 제3 특징 맵에 대해 공간 해상도를 복원하여 깊이 맵을 생성하는 단계를 추가적으로 포함한다.

Description

심층 신경망 특징 매칭을 위한 비대칭 정규화 상관 계층 {ASYMMETRIC NORMALIZED CORRELATION LAYER FOR DEEP NEURAL NETWORK FEATURE MATCHING}
본 개시는 일반적으로 이미지 캡처 시스템에 관한 것이다. 보다 구체적으로, 본 개시는 심층 신경망 특징 매칭(deep neural network feature matching)을 위한 비대칭 정규화 상관 계층(asymmetric normalized correlation layer)에 관한 것이다.
스마트폰 및 태블릿 컴퓨터와 같은 많은 모바일 전자 장치들은 정지 이미지 및 비디오 이미지를 캡처하는 데 이용될 수 있는 카메라들을 포함한다. 편리하지만, 모바일 전자 장치들 상의 카메라들에는 전형적으로 그들의 화질을 낮추는 여러 가지 단점들이 있다. 다양한 기계 학습 알고리즘들이, 여러 가지 이미지 처리 관련 애플리케이션들에서, 모바일 전자 장치들 또는 기타 장치들을 이용하여 캡처된 이미지들의 품질을 향상시키는 데 이용될 수 있다. 예를 들면, 상이한 신경망들은 훈련된 후, 캡처된 이미지들의 품질을 향상시키기 위해 상이한 이미지 처리 태스크들(image processing tasks)을 수행하는 데 이용될 수 있다. 특정 예로서, 신경망은 캡처된 이미지들의 특정 부분들을 블러링하도록(blur) 훈련되어 이용될 수 있다.
본 개시는 심층 신경망 특징 매칭을 위한 비대칭 정규화 상관 계층을 제공한다.
제1 실시예에서, 방법은 전자 장치의 제1 이미지 센서를 이용하여 장면의 제1 이미지를 획득하고 상기 전자 장치의 제2 이미지 센서를 이용하여 상기 장면의 제2 이미지를 획득하는 단계를 포함한다. 상기 방법은 또한 상기 제1 이미지로부터 제1 특징 맵을 생성하고 상기 제2 이미지로부터 제2 특징 맵을 생성하는 단계를 포함한다. 상기 방법은 상기 제1 특징 맵, 상기 제2 특징 맵, 및 비대칭 검색 윈도우(asymmetric search window)에 기초하여 제3 특징 맵을 생성하는 단계를 더 포함한다. 또한, 상기 방법은 상기 제3 특징 맵에 대해 공간 해상도(spatial resolution)를 복원하여 깊이 맵(depth map)을 생성하는 단계를 포함한다.
제2 실시예에서, 전자 장치는 제1 이미지 센서, 제2 이미지 센서, 및 상기 제1 및 제2 이미지 센서들과 작동 가능하게(operatively) 결합된 적어도 하나의 프로세서를 포함한다. 상기 적어도 하나의 프로세서는 상기 제1 이미지 센서를 이용하여 장면의 제1 이미지를 획득하고 상기 제2 이미지 센서를 이용하여 상기 장면의 제2 이미지를 획득하도록 구성된다. 상기 적어도 하나의 프로세서는 또한 상기 제1 이미지로부터 제1 특징 맵을 생성하고 상기 제2 이미지로부터 제2 특징 맵을 생성하도록 구성된다. 상기 적어도 하나의 프로세서는 상기 제1 특징 맵, 상기 제2 특징 맵, 및 비대칭 검색윈도우에 기초하여 제3 특징 맵을 생성하도록 더 구성된다. 또한, 상기 적어도 하나의 프로세서는 상기 제3 특징 맵에 대해 공간 해상도를 복원하여 깊이 맵을 생성하도록 구성된다.
제3 실시예에서, 비일시적 기계-판독가능 매체(non-transitory machine-readable medium)는, 실행되는 경우, 전자 장치의 적어도 하나의 프로세서로 하여금 상기 전자 장치의 제1 이미지 센서를 이용하여 장면의 제1 이미지를 획득하고 상기 전자 장치의 제2 이미지 센서를 이용하여 상기 장면의 제2 이미지를 획득하도록 하는, 명령어들(instructions)을 포함한다. 상기 매체는 또한, 실행되는 경우, 상기 적어도 하나의 프로세서로 하여금 상기 제1 이미지로부터 제1 특징 맵을 생성하고 상기 제2 이미지로부터 제2 특징 맵을 생성하도록 하는, 명령어들을 포함한다. 상기 매체는, 실행되는 경우, 상기 적어도 하나의 프로세서로 하여금, 상기 제1 특징 맵, 상기 제2 특징 맵, 및 비대칭 검색 윈도우에 기초하여, 제3 특징 맵을 생성하도록 하는, 명령어들을 포함한다. 또한, 상기 매체는, 실행되는 경우, 상기 적어도 하나의 프로세서로 하여금 상기 제3 특징 맵에 대해 공간 해상도를 복원하여 깊이 맵을 생성하도록 하는, 명령어들을 포함한다.
기타 기술적 특징들은 이하의 도면들, 설명들, 및 청구항들로부터 본 개시가 속하는 기술분야의 숙련된 자에게 용이하게 명확해질 수 있다.
하기 상세한 설명에 착수하기 전에, 본 특허 문서 전체에 걸쳐 사용되는 특정 단어들 및 문구들의 정의를 설명하는 것이 유리할 수 있다. "전송하다(transmit)", "수신하다(receive)", 및 "통신하다(communicate)"라는 용어들 및 그 파생어들은 직접 및 간접 통신 둘 모두를 포괄한다. "포함하다(include)" 및 "포함하다(comprise)"라는 용어들 및 그 파생어들은 제한 없는 포함을 의미한다. "또는(or)"이라는 용어는 포괄적이며(inclusive), 및/또는(and/or)을 의미한다. "~와 연관된(associated with)"이라는 문구 및 그 파생문구들은 포함하다(include), ~내에 포함되다(be included within), ~와 상호연결되다(interconnect with), 함유하다(contain), ~내에 함유되다(be contained within), ~에 또는 ~와 연결하다(connect to or with), ~에 또는 ~와 결합하다(couple to or with), ~와 통신가능하다(be communicable with), ~와 협력하다(cooperate with), 인터리빙하다(interleave), 병치하다(juxtapose), ~에 근접하다(be proximate to), ~에 또는 ~와 결속되다(be bound to or with), 가지다(have), ~의 특성을 가지다(have a property of), ~에 또는 ~와 관계성을 가지다(have a relationship to or with) 등을 의미한다.
또한, 하기 설명되는 다양한 기능들(functions)은 하나 이상의 컴퓨터 프로그램들에 의해 구현되거나 또는 지원될 수 있으며, 상기 하나 이상의 컴퓨터 프로그램들 각각은 컴퓨터 판독가능 프로그램 코드로부터 형성되고 컴퓨터 판독가능 매체에 구현된다. "애플리케이션(application)" 및 "프로그램(program)"이라는 용어들은 하나 이상의 컴퓨터 프로그램들, 소프트웨어 구성요소들, 명령어들(instructions)의 세트들, 프로시저들(procedures), 기능들(functions), 객체들(objects), 클래스들(classes), 인스턴스들(instances), 관련 데이터, 또는 적절한 컴퓨터 판독가능 프로그램 코드로 구현되도록 적합화된(adapted) 이들의 일부를 의미한다. "컴퓨터 판독가능 프로그램 코드"라는 문구는, 소스 코드(source code), 객체 코드(object code), 및 실행가능 코드(executable code)를 비롯하여, 어떠한 유형의 컴퓨터 코드라도 포함한다. "컴퓨터 판독가능 매체"라는 문구는, 읽기 전용 메모리(read only memory: ROM), 랜덤 액세스 메모리(random access memory: RAM), 하드 디스크 드라이브, 컴팩트 디스크(compact disc: CD), 디지털 비디오 디스크(digital video disc: DVD), 또는 다른 어떤 유형의 메모리와 같이, 컴퓨터에 의해 액세스될 수 있는 어떠한 유형의 매체라도 포함한다. "비일시적(non-transitory)" 컴퓨터 판독가능 매체는 일시적인 전기적 또는 기타 신호들을 전송하는 유선, 무선, 광학적, 또는 기타 통신 링크들을 제외한다. 비일시적 컴퓨터 판독가능 매체는 데이터가 영구적으로 저장될 수 있는 매체들 및, 다시쓰기가능(rewritable) 광디스크 또는 소거가능(erasable) 메모리 장치와 같이, 데이터가 저장되고 추후에 덮어쓰일(overwritten) 수 있는 매체들을 포함한다.
본 명세서에서, 특징(feature)(번호(number), 기능(function), 동작(operation), 또는 부품(part)과 같은 구성요소(component)와 같은 것)을 "가진다(have)", "가질 수 있다(may have)", "포함한다(include)", 또는 "포함할 수 있다(may include)"와 같은 용어들 및 문구들은 상기 특징의 존재를 나타내며 다른 특징들의 존재를 배제하지 않는다. 또한, 본 명세서에서, "A 또는 B(A or B)", "A 및/또는 B 중 적어도 하나(at least one of A and/or B)", 또는 "A 및/또는 B 중 하나 이상(one or more of A and/or B)"이라는 문구들은 A와 B의 모든 가능한 조합들을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 및 "A 또는 B 중 적어도 하나"는 (1) 적어도 하나의 A(at least one A)를 포함하는 것, (2) 적어도 하나의 B(at least one B)를 포함하는 것, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B를 포함하는 것을 모두 나타낼 수 있다. 또한, 본 명세서에서, "제1(first)" 및 "제2(second)"라는 용어들은 중요도와 상관 없이 다양한 구성요소들을 수식할 수 있으며 상기 구성요소들을 제한하지 않는다. 이러한 용어들은 단지 하나의 구성요소를 다른 것과 구별하기 위해 사용된다. 예를 들면, 제1 사용자 장치 및 제2 사용자 장치는, 상기 장치들의 순서 또는 중요도와 상관 없이, 서로 다른 사용자 장치들을 나타낼 수 있다. 본 개시의 범위를 벗어나지 않고, 제1 구성요소는 제2 구성요소로 나타낼 수 있고 그 반대도 마찬가지이다.
요소(예를 들면, 제1 요소)가 다른 요소(예를 들면, 제2 요소)와 (작동 가능하게(operatively) 또는 통신가능하게(communicatively)) "결합(coupled with/to)" 또는 "연결(connected with/to)"된다고 언급될 때, 상기 요소는 상기 다른 요소와 직접 또는 제3 요소를 통해 결합 또는 연결될 수 있음을 이해할 수 있을 것이다. 반면에, 요소(예를 들면, 제1 요소)가 다른 요소(예를 들면, 제2 요소)와 "직접 결합(directly coupled with/to)" 또는 "직접 연결(directly connected with/to)"된다고 언급될 때, 상기 요소와 상기 다른 요소 사이에 다른 요소(예를 들면, 제3 요소)가 개재되지 않음을 이해할 수 있을 것이다.
본 명세서에서, "~하도록 구성된(또는 설정된)(configured (or set) to)"이라는 문구는, 상황에 따라, "~에 적합한(suitable for)", "~할 능력이 있는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 적합화된(adapted to)", "~하도록 만들어진(made to)", 또는 "~할 수 있는(capable of)"이라는 문구들과 상호교환적으로 사용될 수 있다. "~하도록 구성된(또는 설정된)"이라는 문구가 본질적으로 "~하도록 하드웨어적으로 특별히 설계된(specifically designed in hardware to)"이라는 의미를 나타내는 것은 아니다. 오히려, "~하도록 구성된"이라는 문구는 장치가 다른 장치 또는 부품들과 함께 동작을 수행할 수 있음을 의미할 수 있다. 예를 들면, "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"라는 문구는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써 상기 동작들을 수행할 수 있는 범용(generic-purpose) 프로세서(예를 들면, CPU 또는 애플리케이션 프로세서), 또는 상기 동작들을 수행하기 위한 전용(dedicated) 프로세서(예를 들면, 내장형(embedded) 프로세서)를 의미할 수 있다.
본 명세서에서 사용된 용어들 및 문구들은 단지 본 개시의 일부 실시예들을 설명하기 위해 제공되는 것이지 본 개시의 다른 실시예들의 범위를 제한하고자 제공되는 것이 아니다. 문맥상 명확히 달리 언급되지 않는 한 "a", "an", 및 "the"라는 단수 형태들은 복수 형태의 언급을 포함한다는 것을 이해해야 할 것이다. 본 명세서에서 사용되는, 기술적 및 과학적 용어들 및 문구들을 포함하는, 모든 용어들 및 문구들은 본 개시의 실시예들이 속하는 기술분야의 통상의 지식을 가진 자에 의해 통상적으로 이해되는 바와 동일한 의미들을 가진다. 통상적으로 사용되는 사전들에서 정의된 바와 같은, 용어들 및 문구들은 관련 기술분야의 맥락에서 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명시적으로 정의되지 않는 한 이상적이거나 지나치게 형식적인 의미로 해석되어서는 안 된다는 것을 또한 이해할 것이다. 경우에 따라서, 본 명세서에 정의된 용어들 및 문구들은 본 개시의 실시예들을 배제하는 것으로 해석될 수 있다.
본 개시의 실시예들에 따른 "전자 장치"의 예들은 스마트폰, 태블릿 개인용 컴퓨터(personal computer: PC), 휴대 전화(mobile phone), 비디오폰, 전자책 단말기(e-book reader), 데스크탑(desktop) PC, 랩탑(laptop) 컴퓨터, 노트북 컴퓨터, 워크스테이션, 개인 휴대 정보 단말기(personal digital assistant: PDA), 휴대용 멀티미디어 플레이어(portable multimedia player: PMP), MP3 플레이어, 모바일 의료 장치, 카메라, 또는 웨어러블 장치(예를 들면, 스마트 안경, 머리 착용형 장치(head-mounted device: HMD), 전자 의류(electronic clothes), 전자 팔찌, 전자 목걸이, 전자 액세서리, 전자 문신, 스마트 거울, 또는 스마트 워치(smart watch)) 중 적어도 하나를 포함할 수 있다. 전자 장치의 다른 예들은 스마트 가전제품을 포함한다. 상기 스마트 가전제품의 예들은 텔레비전, 디지털 비디오 디스크(digital video disc: DVD) 플레이어, 오디오 플레이어, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 드라이기, 공기 청정기, 셋탑 박스(set-top box), 가정 자동화 제어 패널(home automation control panel), 보안 제어 패널, TV 박스(예를 들면, 삼성 홈싱크(SAMSUNG HOMESYNC), 애플TV(APPLETV), 또는 구글 TV(GOOGLE TV)), 스마트 스피커 또는 통합 디지털 어시스턴트(integrated digital assistant)(예를 들면, 삼성 갤럭시 홈(SAMSUNG GALAXY HOME), 애플 홈팟(APPLE HOMEPOD), 또는 아마존 에코(AMAZON ECHO))를 갖춘 스피커, 게임 콘솔(예를 들면, 엑스박스(XBOX), 플레이스테이션(PLAYSTATION), 또는 닌텐도(NINTENDO)), 전자 사전, 전자 키(key), 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다. 전자 장치의 또 다른 예들은 다양한 의료 장치들(예를 들면, 다양한 휴대용 의료 측정 장치들(혈당 측정 장치, 심박 측정 장치, 또는 체온 측정 장치와 같은 것), 자기공명 혈관조영(magnetic resonance angiography: MRA) 장치, 자기공명 영상(magnetic resonance imaging: MRI) 장치, 컴퓨터 단층촬영(computed tomography: CT) 장치, 영상화 장치, 또는 초음파 장치), 네비게이션 장치, 범지구 위치확인 시스템(global positioning system: GPS) 수신기, 사고 데이터 기록장치(event data recorder: EDR), 비행 데이터 기록장치(flight data recorder: FDR), 자동차 인포테인먼트(infotainment) 장치, 항해(sailing) 전자 장치(예를 들면, 항해 네비게이션 장치 또는 자이로컴퍼스(gyro compass)), 항공전자기기(avionics), 보안 장치들, 차량용 헤드 유닛들(vehicular head units), 산업용 또는 가정용 로봇들, 자동 현금 입출금기들(automatic teller machines: ATMs), 판매시점 관리(point of sales: POS) 장치들, 또는 사물인터넷(Internet of Things: IoT) 장치들(예를 들면, 전구, 다양한 센서들, 전기 또는 가스 계량기, 스프링클러(sprinkler), 화재 경보기(fire alarm), 온도 조절장치(thermostat), 가로등, 토스터(toaster), 피트니스 장비, 온수 탱크, 히터(heater), 또는 보일러) 중 적어도 하나를 포함한다. 전자 장치의 다른 예들은 가구 또는 건물/구조물(building/structure), 전자 보드(electronic board), 전자 서명(electronic signature) 수신 장치, 프로젝터(projector), 또는 다양한 측정 장치들(예를 들면, 물, 전기, 가스, 또는 전자파 측정 장치들) 중 적어도 하나를 포함한다. 본 개시의 다양한 실시예들에 따르면, 전자 장치는 상기 나열된 장치들 중 하나 또는 이들의 조합일 수 있다는 것에 유의해야 한다. 본 개시의 일부 실시예들에 따르면, 상기 전자 장치는 플렉서블(flexible) 전자 장치일 수 있다. 본 명세서에 개시된 상기 전자 장치는 상기 나열된 장치들에 제한되지 않으며 기술 발전에 따라 새로운 전자 장치들을 포함할 수 있다.
하기 설명에서, 전자 장치들은, 본 개시의 다양한 실시예들에 따라, 첨부된 도면을 참조하여 설명된다. 본 명세서에서, "사용자(user)"라는 용어는 상기 전자 장치를 사용하는 인간 또는 다른 장치(예를 들면, 인공지능(artificial intelligent) 전자 장치)를 나타낼 수 있다.
기타 특정 단어들 및 문구들에 대한 정의들은 본 특허 문서 전체에 걸쳐 제공될 수 있다. 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는, 대부분은 아닐지라도 많은 경우, 그러한 정의들이 그와 같이 정의된 단어들 및 문구들의 선행(prior) 사용뿐만 아니라 향후(future) 사용에도 적용됨을 이해해야 할 것이다.
본 출원에서의 어떤 설명도 어떤 특정 요소, 단계, 또는 기능이 청구 범위(claim scope)에 포함되어야 하는 필수 요소임을 암시하는 것으로 해석되어서는 안 된다. 특허 대상(patented subject matter)의 범위는 오직 청구항들에 의해서만 정의된다.
본 개시 및 그 이점들의 보다 완전한 이해를 위해, 이제, 첨부된 도면과 함께 이하의 설명이 이루어지며, 도면에서 동일 참조 번호는 동일 부품을 나타낸다.
도 1은, 본 개시에 따른, 전자 장치를 포함하는 예시적 네트워크 구성을 도시한다.
도 2a, 도 2b, 및 도 2c는, 본 개시에 따른, 예시적 입력 이미지 및, 신경망에서 비대칭 정규화 상관 계층(asymmetric normalized correlation layer)을 이용하여 획득될 수 있는, 예시적 처리 결과를 도시한다.
도 3은 본 개시에 따른 예시적 신경망 아키텍처(neural network architecture)를 도시한다.
도 4는, 본 개시에 따른, 비대칭 정규화 상관 계층을 포함하는 신경망의 상세한 예를 도시한다.
도 5는, 본 개시에 따른, 신경망의 가역 웨이블릿 계층(invertible wavelet layer)의 예시적 응용을 도시한다.
도 6a 및 도 6b는, 본 개시에 따른, 비대칭 정규화 상관 계층에서 이용되는 예시적 비대칭 검색 윈도우(asymmetric search window), 및 비대칭 정규화 상관 계층의 예시적 응용을 도시한다.
도 7은, 본 개시에 따른, 심층 신경망 특징 매칭(deep neural network feature matching)을 위해 비대칭 정규화 상관 계층을 이용하는 예시적 방법을 도시한다.
하기에서 논의되는 도 1 내지 도 7, 및 본 개시의 다양한 실시예들은 첨부 도면을 참조하여 설명된다. 그러나, 본 개시는 이들 실시예들에 제한되지 않으며, 이들에 대한 모든 변경 및/또는 균등물 또는 대체물도 또한 본 개시의 범위에 속함을 이해해야 할 것이다. 명세서 및 도면 전체에 걸쳐, 동일 또는 유사한 참조 표기들은 동일 또는 유사한 요소들을 나타내는 데 사용될 수 있다.
상술한 바와 같이, 스마트폰 및 태블릿 컴퓨터와 같은 많은 모바일 전자 장치들은 정지(still) 및 비디오 이미지들을 캡처하는 데 이용될 수 있는 카메라들을 포함한다. 그러나, 디지털 단일 렌즈 반사(digital single lens reflect: DSLR) 카메라들에 비해, 모바일 전자 장치들 상의 카메라들에는 전형적으로 여러 가지 단점들이 있다. 예를 들면, DSLR 카메라들은, 캡처된 이미지의 피사계 심도(depth of field: DoF)의 변화로 인한, 연초점(soft focus) 효과(보케 효과(Bokeh effect)로도 알려져 있음)를 생성할 수 있다. 상기 보케 효과는, 이미지 내 대상이 포커싱되는 특정 피사계 심도 밖에서 소프트니스(softness) 또는 블러링(blurring)을 초래하는, DSLR 카메라에서 광구경(wide aperture)을 갖는 렌즈를 이용하여 생성될 수 있다. 모바일 전자 장치들 상의 카메라들은 종종 특정 피사계 심도 밖의 이미지의 부분을 선택적으로 블러링할 수 없는데, 왜냐하면 모바일 전자 장치들 상의 대부분의 카메라들은 전체 이미지의 초점이 맞도록 이미지를 생성하기 때문이다.
모바일 전자 장치들 또는 기타 장치들을 이용하여 캡처된 이미지들에서 상기 보케 효과를 계산방식으로(광학적이 아니라) 생성하는 애플리케이션들을 포함하여, 여러 이미지 처리 관련 애플리케이션들에서, 다양한 기계 학습 알고리즘들이 이용될 수 있다. 예를 들면, 상이한 신경망들이, 캡처된 이미지들의 품질을 향상시키기 위해, 상이한 이미지 처리 태스크들(image processing tasks)을 수행하도록 훈련되고 이용될 수 있다. 각각의 신경망은 전형적으로 특정 태스크를 수행하도록 훈련된다. 예를 들면, 이미지 처리 분야에서, 상이한 신경망들이 장면들의 유형 또는 상기 장면들 내 객체들의 유형을 인식하거나, 장면들 내 객체들의 깊이를 식별하거나, 장면들 내 객체들에 기초하여 이미지들을 세그먼트화하거나, 또는 높은 동적 범위(high dynamic range: HDR) 이미지들, 보케(Bokeh) 이미지들, 또는 초해상도(super-resolution) 이미지들을 생성하도록 훈련될 수 있다.
본 개시의 실시예들은, 모바일 전자 장치들 또는 기타 장치들을 이용하여 캡처된 이미지들에 보케 효과 및 기타 이미지 처리 효과들을 생성하기 위한, 다양한 기법들을 설명한다. 하기에서 보다 상세히 설명하는 바와 같이, 합성 그래픽 엔진(synthetic graphics engine)이 특정한 특성을 갖는 훈련 데이터(training data)를 생성하는 데 이용될 수 있다. 상기 합성 그래픽 엔진은, 특정 모바일 전자 장치들 또는 기타 장치들에 맞춰진, 훈련 데이터를 생성하는 데 이용된다. 상기 훈련 데이터를 이용하여 훈련된 신경망에 의해 생성될 수 있는, 깊이 맵(또는 디스패리티 맵(disparity map))의 품질을 테스트하기 위해, 평가 방법(evaluation methodology)이 이용될 수 있다. 깊이 또는 디스패리티 맵들은, (일부 경우에) 장면의 이미지 중 보다 멀리 있는 부분들이 계산방식으로 블러링되어 보케 효과를 제공할 수 있도록 하는, 상기 장면 내 깊이를 식별하는 데 이용될 수 있다. 일부 실시예들에서, 웨이블릿 합성 신경망(wavelet synthesis neural network: WSN) 아키텍처가 고선명(high-definition) 깊이 맵들을 생성하는 데 이용될 수 있다. 고선명 깊이 맵들을 생성하기 위해, 상기 WSN 아키텍처는 가역 웨이블릿 계층(invertible wavelet layer) 및 정규화 상관 계층(normalized correlation layer)을 포함한다. 상기 가역 웨이블릿 계층은 특징 맵들을 반복적으로 분해하고 합성하는 데 적용되며, 상기 정규화 상관 계층은, 카메라의 사양(복수의 카메라들 간의 베이스라인 거리(baseline distance) 및 복수의 카메라들로부터의 이미지들이 교정되는 경우의 교정 정확도를 포함)과 결합되는, 강건하고 조밀한 특징 매칭(robust dense feature matching)에 이용된다.
비대칭 정규화 계층(asymmetric normalized layer)을 포함하는 신경망 아키텍처에 관한 추가적인 세부 사항들은 하기에 제공된다. 상기 가역 웨이블릿 계층 및 상기 비대칭 정규화 계층에 기초하여 생성되는 특징 맵은 종종 특정한 이미지 처리 태스크들을 수행하는 데 이용되는 것으로 설명되지만, 본 개시에서 제공되는 상기 신경망 아키텍처는 이러한 특정 이미지 처리 태스크들과 함께 이용하는 것 또는 일반적인 이미지 처리와 함께 이용하는 것에 제한되지 않는다는 것에 유의해야 한다. 오히려, 신경망의 비대칭 정규화 계층은 특징 매칭을 수행하기 위해 어떤 적절한 시스템에서 이용될 수 있다.
도 1은, 본 개시에 따른, 전자 장치를 포함하는 예시적 네트워크 구성(100)을 도시한다. 도 1에 도시한 상기 네트워크 구성(100)의 실시예는 단지 예시를 위한 것이다. 상기 네트워크 구성(100)의 다른 실시예들이 본 개시의 범위를 벗어나지 않고 이용될 수 있다.
본 개시의 실시예들에 따르면, 전자 장치(101)는 상기 네트워크 구성(100)에 포함된다. 상기 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입/출력(input/output: I/O) 인터페이스(150), 디스플레이(160), 통신 인터페이스(170), 또는 하나 이상의 센서들(180) 중 적어도 하나를 포함할 수 있다. 일부 실시예들에서, 상기 전자 장치(101)는 이들 구성요소들 중 적어도 하나를 제외할 수 있거나 또는 적어도 하나의 다른 구성요소를 추가할 수 있다. 상기 버스(110)는 상기 구성요소들(120 내지 180)을 서로 연결하고 상기 구성요소들 간의 통신들(예를 들면, 제어 메시지들 및/또는 데이터)을 전달하기 위한 회로를 포함한다.
상기 프로세서(120)는 중앙 처리 장치(central processing unit: CPU), 그래픽 처리 장치(graphics processing unit: GPU), 애플리케이션 프로세서(application processor: AP), 또는 통신 프로세서(communication processor: CP) 중 하나 이상을 포함한다. 상기 프로세서(120)는 상기 전자 장치(101)의 다른 구성요소들 중 적어도 하나를 제어할 수 있으며 및/또는 통신과 관련된 동작 또는 데이터 처리를 수행할 수 있다. 일부 실시예들에서, 상기 프로세서(120)는, 가역 웨이블릿 계층 및 비대칭 정규화 상관 계층을 이용한 특징 매칭을 수행하여 장면들의 복수의 이미지들로부터 단일 특징 맵을 생성하기 위해, 신경망 아키텍처를 이용하여 이미지 데이터를 처리한다. 이는, 다양한 이미지 처리 기능들을 지원하기 위해, 예를 들면, 이미지에 보케 효과를 생성하기 위해, 수행될 수 있다.
상기 메모리(130)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 예를 들면, 상기 메모리(130)는 상기 전자 장치(101)의 적어도 하나의 다른 구성요소에 관련된 명령들(commands) 또는 데이터를 저장할 수 있다. 본 개시의 실시예들에 따르면, 상기 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 상기 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(middleware)(143), 애플리케이션 프로그래밍 인터페이스(application programming interface: API)(145), 및/또는 애플리케이션 프로그램(또는 "애플리케이션")(147)을 포함한다. 상기 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는 운영 체제(operating system: OS)로 표현될 수 있다.
상기 커널(141)은, 다른 프로그램들(예를 들면, 미들웨어(143), API(145), 또는 애플리케이션(147))에서 구현되는 동작들 또는 기능들을 수행하는 데 이용되는, 시스템 자원들(예를 들면, 상기 버스(110), 프로세서(120), 또는 메모리(130))을 제어 또는 관리할 수 있다. 상기 커널(141)은, 상기 미들웨어(143), 상기 API(145), 또는 상기 애플리케이션(147)이 상기 시스템 자원들을 제어 또는 관리하기 위해 상기 전자 장치(101)의 상기 개별 구성요소들에 액세스할 수 있도록 하는, 인터페이스를 제공한다 상기 애플리케이션(147)은 후술하는 바와 같이 신경망 아키텍처를 이용한 이미지 캡처 및 이미지 처리를 위한 하나 이상의 애플리케이션들을 포함한다. 이러한 기능들은 단일 애플리케이션에 의해 또는, 각각이 이러한 기능들 중 하나 이상을 수행하는, 복수의 애플리케이션들에 의해 수행될 수 있다. 상기 미들웨어(143)는, 상기 API(145) 또는 상기 애플리케이션(147)이, 예를 들면, 상기 커널(141)과 데이터를 통신할 수 있도록 하는 릴레이(relay)로써 기능할 수 있다. 복수의 애플리케이션들(147)이 제공될 수 있다. 상기 미들웨어(143)는, 예를 들면, 상기 복수의 애플리케이션들(147) 중 적어도 하나에 상기 전자 장치(101)의 상기 시스템 자원들(예를 들면, 상기 버스(110), 상기 프로세서(120), 또는 상기 메모리(130))을 이용하는 우선순위를 할당함으로써, 상기 애플리케이션들(147)로부터 수신되는 작업 요청들(work requests)을 제어할 수 있다. 상기 API(145)는 상기 애플리케이션(147)이 상기 커널(141) 또는 상기 미들웨어(143)로부터 제공되는 기능들을 제어할 수 있도록 하는 인터페이스이다. 예를 들면, 상기 API(145)는 파일링(filing) 제어, 윈도우 제어, 이미지 처리, 또는 텍스트 제어를 위한 적어도 하나의 인터페이스 또는 기능(예를 들면, 명령(command))을 포함한다.
상기 I/O 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 장치들로부터 입력되는 명령들 또는 데이터를 상기 전자 장치(101)의 다른 구성요소(들)에 전달할 수 있는, 인터페이스로서의 역할을 한다. 상기 I/O 인터페이스(150)는 또한 상기 전자 장치(101)의 다른 구성요소(들)로부터 수신되는 명령들 또는 데이터를 상기 사용자 또는 상기 다른 외부 장치에 출력할 수 있다.
상기 디스플레이(160)는, 예를 들면, 액정 디스플레이(liquid crystal display: LCD), 발광 다이오드(light emitting diode: LED) 디스플레이, 유기 발광 다이오드(organic light emitting diode: OLED) 디스플레이, 양자점 발광 다이오드(quantum-dot light emitting diode: QLED) 디스플레이, 미세전자기계 시스템(microelectromechanical systems: MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함한다. 상기 디스플레이(160)는 또한, 다중 초점 디스플레이와 같은, 깊이 인식(depth-aware) 디스플레이일 수 있다. 상기 디스플레이(160)는 또한 상기 사용자에게, 예를 들면, 다양한 콘텐츠(예를 들면, 텍스트, 이미지들, 비디오들, 아이콘들(icons), 또는 기호들(symbols))를 표시할 수 있다. 상기 디스플레이(160)는 터치스크린을 포함할 수 있으며, 예를 들면, 전자펜(electronic pen) 또는 상기 사용자의 신체 일부를 이용한 터치, 제스처, 근접, 또는 호버링(hovering) 입력을 수신할 수 있다.
상기 통신 인터페이스(170)는, 예를 들면, 상기 전자 장치(101)와 외부 전자 장치(예를 들면, 제1 전자 장치(102), 제2 전자 장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들면, 상기 통신 인터페이스(170)는, 상기 외부 전자 장치와 통신하기 위해, 무선 또는 유선 통신을 통해 네트워크(162 또는 164)와 연결될 수 있다. 상기 통신 인터페이스(170)는 유선 또는 무선 송수신기(transceiver) 또는, 이미지와 같은 신호를 전송 및 수신하는, 다른 어떤 구성요소일 수 있다.
상기 무선 통신은, 셀룰러 통신 프로토콜(cellular communication protocol)로서, 예를 들면, 롱텀 에벌루션(long term evolution: LTE), 롱텀 에벌루션 어드밴스드(long term evolution-advanced: LTE-A), 5세대 무선 시스템(5th generation wireless system: 5G), 밀리미터파(millimeter-wave) 또는 60 GHz 무선 통신, 무선 USB, 코드 분할 다중 접속(code division multiple access: CDMA), 광대역 코드 분할 다중 접속(wideband code division multiple access: WCDMA), 범용 이동 통신 시스템(universal mobile telecommunication system: UMTS), 무선 광대역(wireless broadband: WiBro), 또는 세계 이동 통신 시스템(global system for mobile communication: GSM) 중 적어도 하나를 이용할 수 있다. 상기 유선 통신은, 예를 들면, 범용 직렬 버스(universal serial bus: USB), 고선명 멀티미디어 인터페이스(high definition multimedia interface: HDMI), 권장 표준 232(recommended standard 232: RS-232), 또는 재래식 전화 서비스(plain old telephone service: POTS) 중 적어도 하나를 포함할 수 있다. 상기 네트워크(162 또는 164)는, 컴퓨터 네트워크(예를 들면, 로컬 영역 네트워크(local area network: LAN) 또는 광역 네트워크(wide area network: WAN)), 인터넷, 또는 전화 네트워크와 같은, 적어도 하나의 통신 네트워크를 포함한다.
상기 전자 장치(101)는, 물리량을 계량하거나 상기 전자 장치(101)의 활성화 상태를 검출하고 계량된 또는 검출된 정보를 전기 신호로 변환할 수 있는, 하나 이상의 센서들(180)을 더 포함한다. 예를 들면, 하나 이상의 센서들(180)은, 장면들의 이미지들을 캡처하기 위해, 하나 이상의 카메라들 또는 기타 영상화 센서들을 포함할 수 있다. 상기 센서(들)(180)은 또한 하나 이상의 터치 입력용 버튼들, 제스처 센서, 자이로스코프 또는 자이로 센서, 기압(air pressure) 센서, 자기 센서 또는 자력계, 가속도 센서 또는 가속도계, 그립(grip) 센서, 근접 센서, 컬러(color) 센서(예를 들면, 적녹청(red green blue: RGB) 센서), 생체물리(bio-physical) 센서, 온도 센서, 습도 센서, 조도(illumination) 센서, 자외선(Ultraviolet: UV) 센서, 근전도(Electromyography: EMG) 센서, 뇌파(Electroencephalogram: EEG) 센서, 심전도(Electrocardiogram: ECG) 센서, 적외선(infrared: IR) 센서, 초음파 센서, 홍채(iris) 센서, 또는 지문 센서를 포함할 수 있다. 상기 센서(들)(180)은, 하나 이상의 가속도계들, 자이로스코프들, 및 다른 구성요소들을 포함할 수 있는, 관성 측정 유닛을 더 포함할 수 있다. 또한, 상기 센서(들)(180)은 본 명세서에 포함된 상기 센서들 중 적어도 하나를 제어하기 위한 제어 회로를 포함할 수 있다. 이러한 센서(들)(180) 중 어떤 것이든 상기 전자 장치(101) 내에 위치할 수 있다.
상기 제1 외부 전자 장치(102) 또는 상기 제2 외부 전자 장치(104)는 웨어러블 장치 또는 전자 장치-장착가능 웨어러블 장치(예를 들면, HMD)일 수 있다. 상기 전자 장치(101)가 상기 전자 장치(102)(예를 들면, HMD)에 장착되는 경우, 상기 전자 장치(101)는 상기 통신 인터페이스(170)를 통해 상기 전자 장치(102)와 통신할 수 있다. 상기 전자 장치(101)는, 별도의 네트워크의 관여 없이 상기 전자 장치(102)와 통신하도록, 상기 전자 장치(102)와 직접 연결될 수 있다. 상기 전자 장치(101)는 또한, 하나 이상의 카메라들을 포함하는, 안경과 같은 증강 현실(augmented reality) 웨어러블 장치일 수 있다.
상기 제1 및 제2 외부 전자 장치들(102 및 104) 및 상기 서버(106)는 각각 상기 전자 장치(101)와 동일 유형 또는 상이한 유형의 장치일 수 있다. 본 개시의 특정 실시예들에 따르면, 상기 서버(106)는 하나 이상의 서버들의 그룹을 포함한다. 또한, 본 개시의 특정 실시예들에 따르면, 상기 전자 장치(101)에서 실행되는 동작들 전부 또는 일부는 다른 전자 장치 또는 복수의 다른 전자 장치들(예를 들면, 상기 전자 장치들(102 및 104) 또는 서버(106))에서 실행될 수 있다. 또한, 본 개시의 특정 실시예들에 따르면, 상기 전자 장치(101)가 자동적으로 또는 요청에 따라 어떤 기능 또는 서비스를 수행해야 하는 경우, 상기 전자 장치(101)는, 자체적으로 또는 추가적으로 상기 기능 또는 서비스를 실행하는 대신에, 다른 장치(예를 들면, 전자 장치들(102 및 104) 또는 서버(106))에게 이와 연관된 적어도 일부 기능들을 수행하도록 요청할 수 있다. 상기 다른 전자 장치(예를 들면, 전자 장치들(102 및 104) 또는 서버(106))는 상기 요청된 기능들 또는 추가 기능들을 실행하고 실행 결과를 상기 전자 장치(101)에게 전달할 수 있다. 상기 전자 장치(101)는 상기 수신된 결과를 그대로 또는 추가적으로 처리함으로써 요청된 기능 또는 서비스를 제공할 수 있다. 이를 위해, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅(distributed computing), 또는 클라이언트-서버 컴퓨팅 기법이 이용될 수 있다. 도 1은 상기 전자 장치(101)가 상기 네트워크(162 또는 164)를 통해 상기 외부 전자 장치(104) 또는 서버(106)와 통신하기 위해 상기 통신 인터페이스(170)를 포함하는 것을 도시하고 있지만, 본 개시의 일부 실시예들에 따르면, 상기 전자 장치(101)는 별도의 통신 기능 없이 독립적으로 동작될 수 있다.
상기 서버(106)는 상기 전자 장치(101)(또는 이것의 적절한 서브세트(subset))와 동일 또는 유사한 구성요소들(110 내지 180)을 포함할 수 있다. 상기 서버(106)는 상기 전자 장치(101) 상에서 구현되는 동작들(또는 기능들) 중 적어도 하나를 수행함으로써 상기 전자 장치(101)를 구동하도록 지원할 수 있다. 예를 들면, 상기 서버(106)는, 상기 전자 장치(101) 내에 구현되는 상기 프로세서(120)를 지원할 수 있는, 처리 모듈 또는 프로세서를 포함할 수 있다. 일부 실시예들에서, 상기 서버(106)는, 장면들의 복수의 이미지들로부터 단일 특징 맵을 생성하도록 가역 웨이블릿 계층 및 비대칭 정규화 상관 계층을 이용한 특징 매칭을 수행하기 위해, 신경망 아키텍처를 이용하여 이미지 데이터를 처리한다. 이는, 다양한 이미지 처리 기능들을 지원하기 위해, 예를 들면, 이미지에 보케 효과를 생성하기 위해, 수행될 수 있다.
도 1은 전자 장치(101)를 포함하는 네트워크 구성(100)의 일 예를 도시하고 있지만, 도 1에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 상기 네트워크 구성(100)은 각 구성요소를 어떤 개수로 어떤 적절한 배치로도 포함할 수 있다. 일반적으로, 컴퓨팅 및 통신 시스템들은 매우 다양한 구성으로 구현되며, 도 1은 본 개시의 범위를 어떤 특정한 구성에도 제한하지 않는다. 또한, 도 1은 본 특허 문서에 개시된 다양한 특징들이 이용될 수 있는 하나의 동작 환경을 도시하고 있지만, 이러한 특징들은 다른 어떤 적절한 시스템에서도 이용될 수 있다.
도 2a, 도 2b, 및 도 2c는, 본 개시에 따른, 예시적 입력 이미지 및, 신경망에서 비대칭 정규화 상관 계층을 이용하여 획득될 수 있는, 예시적 처리 결과를 도시한다. 본 특정 예에서, 신경망(예를 들면, 웨이블릿 합성 신경망)은 깊이 맵을 생성하는 데 이용된 후에, 원본 이미지로부터 보케 효과를 생성하는 데 이용된다. 그러나, 상기 웨이블릿 합성 신경망과 같은 신경망은, 이미지 처리와 관련이 있든 없든, 다른 어떤 적절한 태스크들을 수행하는 데 이용될 수 있다. 설명의 용이성을 위해, 도 2a, 도 2b, 및 도 2c에 도시한 입력 이미지 및 처리 결과는 도 1의 상기 네트워크 구성(100)에서 상기 전자 장치(101) 또는 상기 서버(106)와 관련하여 설명된다. 그러나, 비대칭 정규화 상관 계층을 수반하는 신경망은 다른 어떤 적절한 장치(들)에 의해서도 및 다른 어떤 적절한 시스템(들)에서도 이용될 수 있다.
도 2a에 도시한 바와 같이, 예를 들면, 이미지(202)가 상기 전자 장치(101)의 적어도 하나의 카메라(센서(180))로부터 수신되는 경우와 같이, 신경망에 의해 처리될 상기 이미지(202)가 수신된다. 본 예에서, 상기 이미지(202)는 전경(foreground)에 있는 체인-연결식 펜스(chain-link fence) 옆에 사람이 있는 이미지를 나타내며, 배경(background)은 필드(field) 및 건물을 포함한다. 상기 사람의 얼굴은 프라이버시를 위해 가려져 있지만, 상기 전경 및 상기 배경은 모두 초점이 맞춰져 있는데, 이는 스마트폰 및 태블릿 컴퓨터와 같은 장치들에서 흔한 일이다. 일부 실시예들에서, 상기 이미지(202)는 상기 전자 장치(101)의 두 개의 상이한 카메라들에 의해 캡처된 두 개의 이미지들을 이용하여 생성될 수 있다. 이러한 실시예들에서, 상기 두 개의 이미지들은, 상이한 렌즈들, 상이한 시야(field of view), 및 상이한 초점들 등과 같이, 상기 두 개의 카메라들 간의 어떠한 차이들을 해결하기 위해, 교정된다.
도 2b에 도시한 바와 같이, 상기 신경망에 의해 깊이 맵(204)이 생성된다. 상기 깊이 맵(204)은 일반적으로 상기 이미지(202)(또는 상기 이미지(202)를 생성하는 데 이용되는 이미지들의 쌍)에 캡처된 상기 장면의 상이한 부분들에서 상이한 깊이들을 식별한다. 본 예에서, 보다 밝은 색들은 보다 얕은 또는 보다 작은 깊이들을 나타내고, 보다 어두운 색들은 보다 깊은 또는 보다 큰 깊이들을 나타낸다. 일부 실시예들에서, 두 개의 입력 이미지들이 상기 깊이 맵(204)을 생성하는 데 이용된다. 예를 들면, 알려진 거리만큼 이격되어 있는 두 개의 카메라들을 이용하는 경우, 각각의 카메라는 동일한 장면의 이미지를 캡처할 수 있다. 다음에, 상기 신경망은, 상기 상이한 이미지들 내에서 상기 장면의 동일한 포인트들의 위치들을 비교하여 상기 이미지들 내에서 그러한 포인트들의 디스패리티(disparity, 시차(視差))를 결정할 수 있다. 상기 이미지들 내에서 각 포인트의 디스패리티와 상기 장면에서 해당 포인트의 깊이 간에는 역관계(inverse relationship)가 있다. 예를 들면, 보다 큰 디스패리티들은 포인트들이 상기 전자 장치(101)에 보다 가까이 있는 것을 나타내고, 보다 작은 디스패리티들은 포인트들이 상기 전자 장치(101)로부터 보다 멀리 있는 것을 나타낸다. 따라서, 상기 장면에서의 다양한 포인트들의 디스패리티들은 상기 깊이 맵(204)을 생성하기 위해 계산되고 이용될 수 있다(또는 상기 디스패리티들은 디스패리티 맵을 생성하는 데 이용될 수 있다).
도 2b의 상기 깊이 맵(204)은, 픽셀 별로, 상기 전자 장치(101)와 영상화되는 상기 장면 내의 상이한 영역들 또는 부분들 간의 거리들을 식별한다. 본 명세서에서 예시되는 바와 같이, 상기 배경은 일반적으로 어두운데, 이는 상기 배경이 상기 카메라로부터 충분히 멀리 있음을 나타낸다(일부 경우에 이는 무한 거리(infinite distance)로 칭해질 수 있다), 즉, 복수의 이미지들에 캡처된 상기 배경에서의 공통 포인트들 간의 디스패리티는 무시할 수 있다. 보다 밝은, 상기 깊이 맵(204)의 부분들은 상기 사람 및 상기 체인-연결식 펜스를 포함하는데, 이는 복수의 이미지들에 캡처된 상기 전경에서의 공통 포인트들 간에 보다 큰 또는 보다 측정가능한(more measurable) 디스패리티가 있음을 나타낸다.
도 2c에 도시한 바와 같이, 이미지(206)는 상기 이미지(202) 및 상기 깊이 맵(204)에 기초하여 생성된다. 상기 이미지(206)에 나타낸 바와 같이, 상기 장면의 상기 배경은 상기 이미지(206)에 보케 효과를 생성하도록 계산방식으로 블러링된 반면, 상기 장면의 상기 전경에 있는 객체들(예를 들면, 상기 사람 및 상기 체인-연결식 펜스)은 초점이 맞춰져 있다. 상기 전자 장치(101) 또는 상기 서버(106)는, 상기 이미지(202)에 가변적 블러량(amount of blur)을 적용함으로써, 상기 이미지(206)를 생성할 수 있으며, 여기서 상기 이미지(202)의 각 부분(또는 각 픽셀)에 적용되는 상기 블러량은 상기 깊이 맵(204)에 기반한다. 따라서, 예를 들면, 상기 깊이 맵(204)에서 가장 어두운 색들과 연관된 상기 이미지(202)의 픽셀들에는 최대 블러링이 적용될 수 있고, 상기 깊이 맵(204)에서 가장 밝은 색들과 연관된 상기 이미지(202)의 픽셀들에는 최소 블러링이 적용되거나 아무런 블러링도 적용되지 않을 수 있다.
하기에서 보다 상세히 설명하는 바와 같이, 신경망(예를 들면, 웨이블릿 합성 신경망)은 상기 깊이 맵(204)을 생성하는 데 이용되고, 상기 결과적인 깊이 맵(204)은 다음에 어떤 이미지 처리 기능(예를 들면, 보케 생성)을 수행하는 데 이용된다. 상기 신경망은, 하기에서 보다 상세히 설명되는, 가역 웨이블릿 계층 및 정규화 상관 계층을 포함한다.
도 2a, 도 2b, 및 도 2c는 입력 이미지의 일 예 및, 신경망에서의 비대칭 정규화 상관 계층을 이용하여 획득될 수 있는, 처리 결과의 일 예를 도시하고 있지만, 이러한 도면들에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 이 도면들은 단지 본 개시에서 설명되는 접근법들을 이용하여 획득될 수 있는 결과들의 유형의 일 예를 도시하고자 한 것이다. 장면들의 이미지들은 광범위하게 달라질 수 있으며, 본 특허 문서에서 설명되는 접근법들을 이용하여 획득되는 결과들도 상황에 따라 광범위하게 달라질 수 있다.
도 3은 본 개시에 따른 예시적 신경망 아키텍처(300)를 도시한다. 설명의 용이성을 위해, 상기 신경망 아키텍처(300)는 도 1의 상기 네트워크 구성(100)에서 상기 전자 장치(101) 또는 상기 서버(106)를 이용하여 구현되는 것으로 설명된다. 그러나, 상기 신경망 아키텍처(300)는 다른 어떤 적절한 장치(들)에 의해서도 및 다른 어떤 적절한 시스템(들)에서도 이용될 수 있다. 또한, 상기 신경망 아키텍처(300)는, 이미지에 보케 효과를 생성하는 것과 같이, 특정 이미지 처리 관련 태스크들을 수행하는 데 이용되는 것으로 설명된다. 그러나, 상기 신경망 아키텍처(300)는, 비-이미지 처리 태스크들을 포함하여, 다른 어떤 적절한 태스크들이든 수행하는 데 이용될 수 있다.
도 3에 도시한 바와 같이, 상기 신경망 아키텍처(300)는, 본 예에서 입력 이미지(302) 및 입력 이미지(304)를 포함하는, 입력 데이터를 수신하고 처리하도록 구성된다. 상기 입력 이미지들(302 및 304)은, 상기 전자 장치(101)의 두 개의 카메라들(하나 이상의 센서들(180))과 같이, 어떤 적절한 소스(들)로부터도 수신될 수 있다. 상기 신경망 아키텍처(300)는 본 명세서에서 일반적으로 상기 입력 이미지들(302 및 304)을 처리하고 다양한 출력들을 생성하도록 동작한다. 본 예에서, 상기 출력들은 깊이 맵(312) 및 보케 이미지(316)를 포함한다.
상기 깊이 맵(312)은, 상기 깊이 맵(312)이 영상화되는 장면에서의 깊이를 식별(아마도 픽셀 별로)할 수 있다는 점에서, 도 2b의 상기 깊이 맵(204)과 유사할 수 있다. 따라서, 상기 깊이 맵(312)은 상기 입력 이미지들(302 및 304)간의 겉보기 픽셀 차이들(apparent pixel differences)(디스패리티를 위한 것) 또는 하나 이상의 이미지들(302 및 304)에서 픽셀들의 겉보기 깊이(apparent depth)(깊이를 위한 것)를 나타낸다. 모션이 없는 경우, 상기 입력 이미지들(302 및 304)에서 동일 포인트 간의 디스패리티는 깊이에 반비례하며, 따라서 디스패리티 맵은 깊이 맵을 계산할 때 이용될 수 있다(또는 그 반대도 마찬가지이다). 상기 보케 이미지(316)는, 상기 보케 이미지(316)가 계산방식으로 블러링된 배경을 포함할 수 있다는 점에서, 도 2c의 상기 이미지(206)와 유사할 수 있다. 따라서, 상기 보케 이미지(316)는 일반적으로 이미지의 배경이 디지털적으로 블러링된 이미지를 나타내며, 여기서 상기 이미지는 상기 입력 이미지(302) 및/또는 상기 입력 이미지(304)에 기반한다.
본 예에서, 상기 신경망 아키텍처(300)는 상기 입력 이미지들(302 및 304) 간의 차이들(예를 들면, 상기 입력 이미지들(302 및 304)을 캡처한 카메라들에 기반한 차이들)을 해결하는, 교정 엔진(308)을 포함한다. 예를 들면, 상기 입력 이미지(302)를 캡처한 카메라는 광각 렌즈(wide angle lens)를 사용했고 상기 입력 이미지(304)를 캡처한 카메라는 망원 렌즈(telephoto lens)를 사용한 경우, 상기 입력 이미지들(302 및 304)은 동일 장면의 상이한 부분들을 캡처한 것이다. 예를 들면, 상기 입력 이미지(304)는 상기 입력 이미지(302)에 비해 상기 장면의 보다 큰 배율(magnification)을 나타낼 수 있다. 상기 교정 엔진(308)은 상기 입력 이미지들(302 및 304) 중 하나 또는 둘 모두를 수정하여 상기 이미지들이 상기 장면의 유사한 뷰들(views)을 묘사하도록 한다. 상기 교정 엔진(308)은 또한, 상이한 초점 대상 및 상이한 시야 등과 같이, 상기 카메라들과 연관된 다른 차이들에 기초하여 상기 입력 이미지들(302 및 304)을 교정할 수 있다.
신경망(310)은 상기 입력 이미지들(302 및 304)(상기 교정 엔진(308)에 의해 수정된 상태임)을 수신하고, 상기 깊이 맵(312)을 생성하도록 상기 교정된 이미지들을 처리한다. 본 예에서, 상기 신경망(310)에 대한 상기 두 개의 입력들은 상기 교정 엔진(308)에 의해 교정된 상태의 상기 두 개의 입력 이미지들(302 및 304)에 대응된다. 하기에서 보다 상세히 설명하는 바와 같이, 상기 신경망(310)은 일반적으로, 두 개 이상의 이미지들로부터 상기 깊이 맵(312)을 생성하는 데 이용되는, 특징 추출기들(feature extractors)(인코더(encoder)), 정규화 상관 계층, 및 정제 계층들(refinement layers)(디코더(decoder))을 포함한다. 일부 실시예들에서, 상기 신경망(310)은 또한 가역 웨이블릿 계층을 포함한다. 상기 신경망(310)은 본 명세서에서 두 개의 입력 이미지들을 수신하지만, 장면의 두 개 이상의 입력 이미지들이 또한 수신되고 처리될 수 있다는 것에 유의해야 한다. 상기 신경망(310)이 수신하는 입력 이미지의 수가 증가함에 따라, 상기 깊이 맵(312)의 충실도(fidelity)도 또한 증가한다는 것에 유의해야 한다.
상기 신경망(310)의 상기 특징 추출기들은 일반적으로 두 개 이상의 특징 맵들을 생성하기 위해 상기 교정된 입력 이미지들(302 및 304)로부터 고수준 특징들(high-level features)을 추출하도록 동작한다. 상기 신경망(310)은, 상기 특징 맵들의 깊이를 증가시키면서 상기 입력 이미지들의 공간 해상도를 감소시키기 위해, 컨볼루션(convolution) 및 풀링(pooling) 계층들을 포함하는 특징 추출기들을 이용할 수 있다. 일부 실시예들에서, 상기 신경망(310)은, 각각의 특징 추출기 분기(branch)가 하나의 입력 이미지에 대응되도록, 입력 이미지의 수와 동일한 수의 특징 추출기를 이용한다. 예를 들면, 두 개의 이미지들(예를 들면, 상기 입력 이미지들(302 및 304))이 상기 신경망(310)에 입력되는 경우, 제1 특징 추출기는 상기 입력 이미지(302)에 대응되는 제1 특징 맵을 생성할 수 있고, 제2 특징 추출기는 상기 입력 이미지(304)에 대응되는 제2 특징 맵을 생성할 수 있다. 그러한 실시예들에서, 각각의 특징 추출기에 대한 입력은 RGB 이미지(예를 들면, 상기 입력 이미지(302 또는 304)) 또는 다른 이미지 데이터이다. 일부 실시예들에서, 상기 특징 추출기들은 상기 정제 계층들에게 중간 특징 맵들을 피드-포워드할(feed-forward) 수 있다. 일부 경우에, 상기 신경망(310)의 상기 특징 추출기들에 의해 생성되는 상기 특징 맵들은 3차원(three dimensional: 3D) 특징 맵들을 포함할 수 있으며, 여기서 차원들(dimensions)은 높이(H), 폭(W), 및 채널(C)을 포함한다.
상기 특징 맵들을 생성한 후, 상기 신경망(310)의 정규화 상관 계층은 새로운 특징 맵을 생성하도록 특징 맵 공간에서의 매칭을 수행한다. 예를 들면, 상기 정규화 상관 계층은 두 개 이상의 특징 맵들 간의 상호 상관(cross-correlation)을 계산할 수 있다. 일부 실시예들에서, 비대칭 정규화 상관 계층은 상기 특징 맵들 간의 정규화 비교(normalized comparison)를 수행한다. 각각의 검색 방향(search direction) w에서, 상기 비대칭 정규화 상관 계층은 상기 두 개의 특징 맵들 간의 유사성(similarity) d를 식별한다. 특정 실시예들에서, 하기 식 (1)은 상기 비대칭 정규화 상관 계층이 복수의 특징 맵들 간의 유사성을 어떻게 식별하는지를 설명한다.
Figure pat00001
(1)
상기 정규화 상관 계층에 의해 생성되는 상기 새로운 특징 맵은 차원들 (H, W, C')을 가질 수 있으며, 여기서 C'은 상기 정규화 상관 계층에 의해 이용되는 비대칭 검색 윈도우의 크기에 기초하여 결정된다. 상기 비대칭 검색 윈도우(및 이에 대응한 크기 C')는, 처리되는 상기 입력 이미지들(302 및 304)을 캡처하는, 상기 카메라들 간의 물리적 파라미터들에 기반한다. 일부 경우에, 상기 파라미터는 상기 카메라들 간의 거리에 기반한다. 상기 비대칭 검색 윈도우(및 이에 대응한 크기 C')는 또한 상기 교정 엔진(308)의 정확도에 기반하며, 따라서 C'의 값은 상기 교정 엔진(308)의 정확도가 증가함에 따라 또는 상기 두 개의 카메라들 간의 거리가 감소함에 따라 감소한다.
풀링 계층들은, 상기 신경망(310)이 상기 입력 이미지들(302 및 304)에 대해 전반적 맥락을 파악하거나 전반적으로 이해할 수 있도록, 상기 특징 추출기들의 수용 영역들(receptive fields)을 증가시키기 위해 상기 신경망(310)에서 이용될 수 있다. 컨볼루션 계층들은 상기 수용 영역들을 가산적으로(additively) 증가시키는데 이용되는 반면, 상기 풀링 계층들은 상기 수용 영역들을 배수적으로(multiplicatively) 증가시킬 수 있다. 상기 풀링 계층들은 정보 손실(information loss)을 야기할 수 있음에 유의해야 한다. 예를 들면,
Figure pat00002
최대 풀링 계층에서, 정보의 75%가 페기될 수 있다. 일반적으로, 분류형(classification-type) 애플리케이션들에서, 5번의
Figure pat00003
풀링 연산들(pooling operations)이 32의 출력 스트라이드(output stride)를 성취하기 위해 이용될 수 있는데, 이는 정보의 상당량이 폐기되는 것에 대응된다. 그러나, 시맨틱 세그먼트화(semantic segmentation), 디스패리티, 또는 옵티컬 플로우 추정(optical flow estimations)과 같은 픽셀-대-픽셀 애플리케이션들에서, 출력 해상도는 전형적으로 입력 해상도와 동일하다. 이와 같이, 상기 신경망(310)을 통과하기 위해 보다 많은 정보가 필요하다. 결과적으로, 웨이블릿 및 역 웨이블릿 변환들(transforms)이 공간 해상도 감소 및 정보 보존을 위해 이용될 수 있다. 웨이블릿 변환들은 가역적이고 정보 손실 없이 상기 풀링 계층과 동일한 공간 해상도 감소 효과를 성취할 수 있으며, 따라서 웨이블릿 및 역 웨이블릿 변환들은 상기 신경망(310)에서 이용될 수 있다. 상기 웨이블릿 및 역 웨이블릿 변환들에 대한 추가적인 세부 사항들은 하기에서 제공된다.
상기 신경망(310)의 상기 정제 계층들은, 상기 정규화 상관 계층에 의해 생성되는, 상기 특징 맵들에 대해 상기 공간 해상도를 복원한다. 이는, 상기 신명망(310)에 의해 출력될 수 있는, 상기 깊이 맵(312)을 생성하는 결과를 가져온다. 상기 신경망에 대한 추가적인 세부 사항들은 하기에서 제공된다.
일부 실시예들에서, 상기 신경망(310)은 또한 상기 깊이 맵(312)과 연관된 신뢰도 맵(confidence map)을 생성한다. 상기 신뢰도 맵은 상기 특징 맵들의 채널 차원(channel dimension)에 대해 소프트맥스 연산들(softmax operations)을 적용함으로써 획득될 수 있다. 상기 신뢰도 맵은 상기 입력 이미지들(302 및 304)의 균일하고(homogeneous) 폐색된(occluded) 영역들에서의 픽셀 매칭의 신뢰도 감소를 나타낼 수 있다. 상기 신뢰도 맵은 필터링(filtering), 블렌딩(blending), 또는 기타 목적들을 위한 렌더링(rendering)에 이용될 수 있다.
렌더러(renderer)(314)는, 상기 깊이 맵(312) 및 상기 이미지들(302 및 304) 중 적어도 하나에 기초하여, 상기 보케 이미지(316)를 생성하는 데 이용된다. 예를 들면, 상기 렌더러(314)는, 초점(focus point)(306), 상기 입력 이미지(302), 및 상기 깊이 맵(312)에 기초하여, 상기 보케 이미지(316)를 생성할 수 있다. 일부 실시예들에서, 상기 입력 이미지들(302 및 304)을 캡처한 상기 카메라들은 메인 카메라 및 보조(secondary) 카메라로 지정될 수 있다. 예를 들면, 사용자가 망원 렌즈를 이용하여 장면의 이미지를 캡처하고자 하는 경우, 상기 전자 장치(101)의 망원 렌즈를 포함하는 카메라는 상기 메인 카메라로 지정될 수 있고, 상기 전자 장치(101)의 다른 카메라는 상기 보조 카메라로 지정될 수 있다. 유사하게, 상기 사용자가 광각 렌즈를 이용하여 장면의 이미지를 캡처하고자 하는 경우, 상기 전자 장치(101)의 광각 렌즈를 포함하는 카메라는 상기 메인 카메라로 지정될 수 있고, 상기 전자 장치(101)의 다른 카메라(예를 들면, 초광각 렌즈를 포함하는 카메라)는 상기 보조 카메라로 지정될 수 있다. 지정이 어떻게 되는 간에, 상기 초점(306)은 상기 메인 카메라에 의해 캡처되는 이미지 내의 초점(focus)의 위치에 대응될 수 있다. 결과적으로, 상기 초점(306)은 상기 깊이 맵(312)과 조합되는 경우 초점면(focal plane)을 식별할 수 있다. 상기 초점면은 장면에서 상기 메인 카메라가 원하는 초점의 거리(또는 깊이)를 나타낸다.
상기 렌더러(314)는 또한 상기 이미지(302)에 적절한 블러링을 적용함으로써 상기 보케 이미지(316)에 보케 효과를 생성한다. 예를 들면, 상기 렌더러(314)는, 상기 메인 카메라의 상기 초점(306) 및 상기 깊이 맵(312)에 기초하여, 착란원(circle of confusion: CoC) 맵을 생성할 수 있다. 상기 CoC 맵에서, 흐림(blurriness) 레벨은 상기 초점면으로부터의 거리가 증가함에 따라 증가한다. 즉, 상기 이미지(302) 내 콘텐츠가 상기 깊이 맵(312)에 의해 나타낸 바와 같은 상기 초점면으로부터 더 멀어짐에 따라, 상기 콘텐츠는 점점 더 큰 흐림 레벨을 할당 받을 것이다. 상기 신경망(310)이 또한 신뢰도 맵을 생성 및 출력하는 경우, 상기 렌더러(314)는 상기 보케 이미지(316)에 대해 보케 효과를 생성할 때 상기 신뢰도 맵을 이용할 수 있다. 예를 들면, 상기 렌더러(314)는, 상기 신뢰도 맵을 이용하여 초점이 맞는(in-focus) 이미지(302)와 상기 CoC 맵을 혼합하는, 알파 블렌딩(alpha blending)을 수행할 수 있다. 상기 신뢰도 맵은 상기 깊이 맵(312)의 생성에 이용되는 픽셀 매칭의 정확도를 나타내기 때문에, 상기 렌더러(314)는 그에 따라 상기 알파 블렌딩을 증가 또는 감소시킬 수 있다.
상기 보케 이미지(316)를 생성하는 것 외에도, 상기 렌더러(314)는 상기 초점(306) 및 상기 깊이 맵(312)을 이용하여, 가변 초점(variable focus), 가변 구경(variable aperture), 및 아트 보케(art Bokeh) 등과 같은, 기타 다양한 효과들을 제공할 수 있다. 상기 가변 초점 효과는, 상기 메인 카메라에 대응되는 이미지 내에서 초점 위치가 변경된, 새로운 이미지를 생성한다. 상기 가변 구경 효과는 조정가능한(adjustable) CoC 맵에 대응된다. 상기 아트 보케 효과는, 예를 들면, 이미지 내 배경 조명(background lights)의 형태를 변경함으로써, 상기 메인 카메라에 대응되는 상기 이미지 내에서 빛의 반점들(spots)의 조정가능한 커널 형태를 가능하게 한다.
다양한 장면들에 대해 상기 깊이 맵(312)을 생성하기 위해, 상기 신경망(310)은 사용되기 전에 훈련된다. 상기 훈련에 의해, 특징 맵들을 생성하고 처리하는 것과 같이, 다양한 기능들을 수행하는 데 이용되는 상기 신경망(310)의 파라미터들이 설정된다. 일부 실시예들에서, 상기 신경망(310)은 사용되기 전에 세 가지 훈련 단계들을 거친다. 제1 훈련 단계 시, 상기 신경망(310)은 합성 데이터(synthetic data)를 이용하여 훈련될 수 있으며, 스테레오 이미지들(stereo images)로부터 추출된 특징들을 처리하는 동안 상기 특징 추출기들 간의 가중치들이 공유될 수 있다. 제2 훈련 단계 시, 상기 신경망(310)은 교정된 이미지들을 캡처하는 카메라들 간의 측광 매핑들(photometric mappings)을 학습한다. 상기 전자 장치(101)의 상기 카메라들은 보통 상이한 렌즈들(예를 들면, 망원 렌즈, 광각 렌즈, 및 초광각 렌즈 등), 상이한 이미지 신호 프로세서들, 상이한 설정들, 및 상이한 튜닝들(tunings) 등을 가질 것이므로, 측광학적 차이들(photometric discrepancies)이 존재할 수 있다. 제3 훈련 단계 시, 상기 신경망(310)은 상기 특징 추출기들 간의 상기 가중치들을 공유하지 않고, 이에 따라 상기 특징 추출기들이 독립적인 가중치들로 훈련될 수 있도록 한다.
상기 신경망 아키텍처(300)에서 수행되는 다양한 동작들은 어떤 적절한 방식으로든 구현될 수 있다. 예를 들면, 상기 신경망 아키텍처(300)에서 수행되는 동작들 각각은, 상기 전자 장치(101) 또는 서버(106)의 적어도 하나의 프로세서(120)에 의해 실행되는, 하나 이상의 소프트웨어 애플리케이션들 또는 다른 소프트웨어 명령어들을 이용하여 구현 또는 지원될 수 있다. 다른 실시예들에서, 상기 신경망 아키텍처(300)에서 수행되는 동작들 중 적어도 일부는 전용 하드웨어 구성요소들을 이용하여 구현 또는 지원될 수 있다. 일반적으로, 상기 신경망 아키텍처(300)의 동작들은 어떤 적절한 하드웨어 또는 하드웨어 및/또는 소프트웨어/펌웨어 명령어들의 어떤 적절한 조합이든 이용하여 수행될 수 있다.
도 3은 신경망 아키텍처(300)의 일 예를 도시하고 있지만, 도 3에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 상기 신경망 아키텍처(300)는 두 개 이상의 입력 이미지들을 수신 및 처리할 수 있다. 또한, 상기 신경망 아키텍처(300)를 이용하여 수행되는 태스크들은 이미지 처리를 포함할 수 있거나 또는 포함하지 않을 수 있다.
도 4는, 본 개시에 따른, 비대칭 정규화 상관 계층(420)을 포함하는 신경망(410)의 상세한 예를 도시한다. 도 4에 도시한 상기 신경망(410)은, 예를 들면, 도 3에 도시한 상기 신경망(310)의 보다 상세한 도면을 나타낼 수 있다. 설명의 용이성을 위해, 상기 신경망(410)은 도 1의 상기 네트워크 구성(100)에서 상기 전자 장치(101) 또는 상기 서버(106)를 이용하여 구현되는 것으로 설명된다. 그러나, 상기 신경망(410)은 다른 어떤 적절한 장치(들)에 의해서도 및 다른 어떤 적절한 시스템(들)에서도 이용될 수 있다. 또한, 상기 신경망(410)은, 이미지에 보케 효과를 생성하는 것과 같이, 특정 이미지 처리 관련 태스크들을 수행하는 데 이용되는 것으로 설명된다. 그러나, 상기 신경망(410)은, 비-이미지 처리 태스크들을 포함하여, 다른 어떤 적절한 태스크들이든 수행하는 데 이용될 수 있다.
도 4에 도시한 바와 같이, 상기 신경망(410)은 일반적으로 복수의 교정된 입력 이미지들(402 및 404)를 수신하고 깊이 맵(428)을 생성하도록 동작한다. 상기 교정된 입력 이미지들(402 및 404)은, 예를 들면, 상기 교정 엔진(308)에 의한 처리 후의 상기 입력 이미지들(302 및 304)을 나타낼 수 있다. 본 명세서에 도시된 상기 신경망(410)은 어떤 적절한 입력 데이터도 처리하는 데 이용될 수 있으며 이미지 데이터를 처리하는 것에 제한되지 않는다는 것에 유의해야 한다. 또한, 상기 신경망(410)은 두 개 초과의 교정된 이미지들을 수신 및 처리할 수 있다는 것에 유의해야 한다. 다른 실시예들에서, 추가적인 교정된 이미지들이 상기 신경망(410)에 입력될 수 있다. 각각의 추가적인 교정된 이미지에 대해, 상기 신경망(410)에서 추가적인 특징 추출기가 제공될 수 있다.
본 예에서, 상기 교정된 이미지(402)는 특징 추출기(412)에 입력되고, 상기 교정된 이미지(404)는 특징 추출기(416)에 입력된다. 상기 특징 추출기(412)는, 차원들 (H, W, C)을 갖는 특징 맵과 같은, 특징 맵(414)을 생성한다. 유사하게, 상기 특징 추출기(416)는, 차원들 (H, W, C)을 갖는 특징 맵과 같은, 특징 맵(418)을 생성한다. 일부 실시예들에서, 상기 특징 추출기들(412 및 416)은, 상기 특징 맵들(414 및 418)의 깊이를 증가시키면서 상기 교정된 이미지들(402 및 404)의 공간 해상도를 감소시키기 위해, 컨볼루션 및 풀링 계층들을 이용한다. 특정 실시예들에서, 가역 웨이블릿 계층은 상기 공간 해상도 감소를 수행한다.
상기 특징 맵들(414 및 418)은 비대칭 정규화 상관 계층(420)에 입력된다. 일부 실시예들에서, 상기 비대칭 정규화 상관 계층(420)은 상기 특징 맵들(414 및 418)에 독립적인 랜덤 이진 마스크(independent random binary mask)를 적용한다. 상기 이진 마스크는 상기 특징 맵들(414 및 418) 각각의 채널 차원을 따라 랜덤 픽셀들을 차단한다. 예를 들면, 각각의 특징 맵(414 및 418)에서의 특정 (H, W) 위치에서, 상기 채널 차원은 차단될 수 있다. 상기 특징 맵(414)에서의 랜덤 픽셀들 및 상기 특징 맵(418)에서의 랜덤 픽셀들이 차단되도록, 상기 이진 마스크는 임의적이다. 일부 실시예들에서, 0.25의 확률을 갖는 제로값(value of zero)이 상기 특징 맵들(414 및 418)에서 차단되는 픽셀들 각각에 할당된다. 뷰(view)의 작은 부분이 차단되는 경우에도, 상기 비대칭 정규화 상관 계층(420)이 어떻게 특징들을 매칭할지를 학습하도록 만들기 위해, 상기 이진 마스크가 상기 특징 맵들(414 및 418)에 적용될 수 있다. 무엇보다도, 상기 이진 마스크는 상기 교정 엔진(308)의 정확도를 결정하는 데 이용될 수 있다.
상기 특징 맵들(414 및 418) 간의 매칭을 수행하기 위해 비대칭 검색 윈도우가 상기 비대칭 정규화 상관 계층(420)에 의해 이용될 수 있으며, 이는 검색 효율을 최대화하기 위해 상기 검색이 비대칭이 되도록 보장하는 데 도움이 된다. 예를 들면, 상기 비대칭 검색 윈도우의 크기는, 상기 교정된 이미지들(402 및 404)을 형성하도록 교정된 상기 입력 이미지들을 캡처하는, 상기 카메라들 간의 거리 및 상기 교정 엔진(308)의 정확도에 기반할 수 있다. 상기 비대칭 검색 윈도우의 크기는 또한 dx+, dx-, dy-, 및 dy+로 표시되는 다양한 차원들에 기반할 수 있다. 보다 큰 베이스라인을 갖는 카메라들에 대해, 보다 큰 dx+값이 상기 검색 윈도우에 할당될 수 있다. 보다 작은 베이스라인을 갖는 카메라들에 대해, 보다 작은 dx+값이 상기 검색 윈도우에 할당될 수 있다. 교정의 정확도에 따라 상기 차원들이 변경될 수도 있다. 예를 들면, 상기 교정 엔진(308)의 정확도가 높은 경우, 상기 차원들 dx-, dy-, 및 dy+는 보다 작은 값들로 설정될 수 있다. 상기 비대칭 검색 윈도우에 관한 추가적인 세부 사항들은 하기에 제공된다.
상기 dx+ 차원은 종종 나머지 차원들보다 큰데, 왜냐하면 dx+는 카메라들 간의 물리적 거리에 기반하는 반면, dx-, dy-, 및 dy+는 교정 정확도에 기반하기 때문이다. 예를 들면,
Figure pat00004
의 특징 맵 공간 해상도에 대해, dx+는 16일 수 있고, dx-는 2일 수 있고, dy-는 2일 수 있으며, dy+는 2일 수 있다. dx+가 16이고, dx-가 2이고, dy-가 2이며, dy+가 2인 경우,
Figure pat00005
는 72이므로, 상기 비대칭 검색 윈도우의 크기는 72이다. 대칭 검색 윈도우는 가장 큰 차원에 기반하고, 이는 상기 대칭 검색 윈도우의 크기가 훨씬 더 커지도록 만들기 때문에, 상기 비대칭 검색 윈도우는 대칭 검색 윈도우에 대한 개선이라는 것에 유의해야 한다. 일부 실시예들에서, 상기 비대칭 정규화 상관 계층(420)은, 식별된 교정 정확도 및 이미지들을 캡처하는 상기 카메라들 간의 물리적 거리에 기초하여, 상기 비대칭 검색 윈도우의 크기를 설정한다. 일부 경우에, 각각의 카메라는 이미지를 캡처하는 동안 이동을 보상하도록 카메라 센서를 약간 이동시키는 광학적 이미지 안정화기(optical image stabilizer: OIS)를 포함할 수 있으므로, 상기 카메라들 간의 상기 물리적 거리는 이미지마다 달라질 수 있다.
상기 비대칭 검색 윈도우의 크기는, 상기 비대칭 정규화 상관 계층(420)이 채널-정규화 상호 상관도(channel-normalized cross correlation)를 계산하는, 검색 방향들(u, v)의 수를 나타낸다. 따라서, 상기 비대칭 정규화 상관 계층(420)은, 새로운 특징 맵(422)의 하나의 채널을 생성하기 위해, 상기 특징 맵(414)와 상기 특징 맵(418)의 이동된 버전(shifted version) 간의 채널-정규화 상관도를 계산할 수 있다. 상기 비대칭 정규화 상관 계층(420)은, 상기 비대칭 검색 윈도우의 크기에 기초하여, 모든 방향들에 대해 이 프로세스를 반복할 수 있다. 예를 들면, 상기 비대칭 검색 윈도우의 크기가 72인 경우(이전 예에 기반함), 상기 비대칭 정규화 상관 계층(420)은 상기 특징 맵(414)과 상기 이동된 특징 맵(418) 간의 채널-정규화 상관도를 계산할 수 있으며, 여기서 상기 특징 맵(418)은 상기 새로운 특징 맵(422)을 생성하도록 72회 이동된다. 본 예에서, 상기 새로운 특징 맵(422)은
Figure pat00006
의 차원들을 가질 것이다.
상기 비대칭 정규화 상관 계층(420)은 또한, 예를 들면, 상기 새로운 특징 맵의 값들이 범위 [0, 1] 이내가 되도록 정규화함으로써, 상기 새로운 특징 맵의 값들을 정규화할 수 있다. 일부 실시예들에서, 상기 특징 맵 값들은 평균(mean, average)값들을 빼고 상기 입력 특징 맵들의 잔여 분산들(remaining variances)로 나눔으로써 정규화될 수 있다. 하기 식 (2) 및 식 (3)은 출력 특징 맵이 범위 [0, 1]로 제한되도록 하는 정규화의 한 가지 가능한 구현을 설명한다.
Figure pat00007
(2)
Figure pat00008
(3)
여기서,
Figure pat00009
는 2차원(2D)에서 상기 출력 특징 맵을 나타내고,
Figure pat00010
Figure pat00011
은 3D에서 좌측 및 우측 입력 특징 맵들을 나타내며,
Figure pat00012
Figure pat00013
은 상기 특징 맵들(414 및 418)을 나타낸다. 또한,
Figure pat00014
는 상기 채널 차원에 대한 상기 특징 맵의 분산을 나타내고,
Figure pat00015
는 0으로 나누는 가능성을 방지하기 위한 특정 값(예를 들면,
Figure pat00016
)을 나타낸다. 식 (2) 및 식 (3)은 상기 검색 윈도우에서 모든 방향들(u, v)에 대해 이용되고 상기 채널 차원을 따라 상기 2D 특징 맵들
Figure pat00017
에 적층되어 상기 3D 특징 맵(422)을 생성할 수 있다.
두 개의 교정된 입력 이미지들(402 및 404)을 처리하는 것으로 도시 및 설명되고 있지만, 상기 비대칭 정규화 상관 계층(420)은 스테레오 매칭 응용들에 제한되지 않는다. 오히려, 상기 비대칭 정규화 상관 계층(420)은, 특징 맵들이 두 개의 입력들 또는 두 개 이상의 입력들과 연관되는지 여부에 상관 없이, 상기 특징 맵들의 매칭을 수행하는 어떤 신경망에 의해서든 이용될 수 있다. 또한, 상기 비대칭 정규화 상관 계층(420)은 다른 이미지 처리 기능들 또는 다른 기능들을 지원하기 위한 어떤 신경망에 의해서든 이용될 수 있다. 특정 예로서, 상기 비대칭 정규화 상관 계층(420)은, 복수의 얼굴들의 고수준 특징들을 매칭하는, 얼굴 검증(face verification)에 적용될 수 있다.
정제 계층(426)은 상기 생성된 특징 맵(422)에 대해 공간 해상도를 복원함으로써 상기 깊이 맵(428)을 생성한다. 본 예에서, 상기 특징 추출기(412)는, 상기 생성된 특징 맵(422)에 공간 해상도를 복원하는 데 이용하기 위한 상기 정제 계층(426)에, 하나 이상의 중간 특징 맵들(424)을 피드-포워드한다. 일부 실시예들에서, 가역 웨이블릿 계층은 상기 특징 추출기(412)에서 공간 해상도 감소를 수행하며, 상기 가역 웨이블릿 계층은 상기 정제 계층(426)에게 상기 생성된 특징 맵(422)에 대해 공간 해상도를 복원하기 위해 필요한 정보를 제공할 수 있다.
상기 신경망(410)에서 수행되는 상기 다양한 동작들은 어떤 적절한 방식으로든 구현될 수 있다. 예를 들면, 상기 신경망(410)에서 수행되는 상기 동작들 각각은, 상기 전자 장치(101) 또는 서버(106)의 적어도 하나의 프로세서(120)에 의해 실행되는, 하나 이상의 소프트웨어 애플리케이션들 또는 다른 소프트웨어 명령어들을 이용하여 구현 또는 지원될 수 있다. 다른 실시예들에서, 상기 신경망(410)에서 수행되는 상기 동작들 중 적어도 일부는 전용 하드웨어 구성요소들을 이용하여 구현 또는 지원될 수 있다. 일반적으로, 상기 신경망(410)의 상기 동작들은 어떤 적절한 하드웨어 또는 하드웨어 및 소프트웨어/펌웨어 명령어들의 어떤 적절한 조합이든 이용하여 수행될 수 있다.
도 4는 비대칭 정규화 상관 계층(420)을 포함하는 신경망(410)의 하나의 상세한 예를 도시하고 있지만, 도 4에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 상기 신경망(410)은, 필요 또는 희망에 따라, 어떤 적절한 수의 컨볼루션 계층, 풀링 계층, 또는 다른 계층이라도 포함할 수 있다. 또한, 상기 신경망(410)은 두 개 이상의 입력 이미지들을 수신 및 처리할 수 있다. 또한, 상기 신경망(410)을 이용하여 수행되는 태스크들은 이미지 처리를 포함할 수 있거나 또는 포함하지 않을 수 있다.
도 5는, 본 개시에 따른, 신경망의 가역 웨이블릿 계층(500)의 예시적 응용을 도시한다. 상기 가역 웨이블릿 계층(500)은, 예를 들면, 도 3의 상기 신경망(310) 또는 도 4의 상기 신경망(410)에서 이용될 수 있다. 설명의 용이성을 위해, 상기 가역 웨이블릿 계층(500)은 도 1의 상기 네트워크 구성(100)에서 상기 전자 장치(101) 또는 상기 서버(106)를 이용하여 구현되는 것으로 설명된다. 그러나, 상기 가역 웨이블릿 계층(500)은 다른 어떤 적절한 장치(들)에 의해서도 및 다른 어떤 적절한 시스템(들)에서도 이용될 수 있다. 또한, 상기 가역 웨이블릿 계층(500)은, 이미지에 보케 효과를 생성하는 것과 같이, 특정 이미지 처리 관련 태스크들을 수행하는 데 이용되는 것으로 설명된다. 그러나, 상기 가역 웨이블릿 계층(500)은, 비-이미지 처리 태스크들을 포함하여, 다른 어떤 적절한 태스크들이든 수행하는 데 이용될 수 있다.
상술한 바와 같이, 상기 가역 웨이블릿 계층(500)은 특징 맵들을 반복적으로 분해 및 합성하는 데 적용될 수 있다. 도 4에서, 예를 들면, 상기 가역 웨이블릿 계층(500)은, 상기 특징 추출기들(412 및 416) 중 하나 이상에서, 상기 특징 맵들(414 및 418)의 깊이를 증가시키면서 상기 교정된 이미지들(402 및 404)의 공간 해상도를 감소시키기 위해 이용될 수 있다. 도 5에서, 상기 가역 웨이블릿 계층(500)은 특징 맵(510)을 수신하여 4개의 요소들, 즉, 저주파 성분(low-frequency component)(520)(예를 들면, 평균 정보(averaged information)) 및 3개의 고주파 성분들(high-frequency components)(530)(예를 들면, 세부 정보(detailed information))로 분해한다. 상기 고주파 성분들(530)은 새로운 특징 맵을 형성하도록 상기 채널 차원에 적층될 수 있다.
상기 저주파 성분(520)은, 상기 가역 웨이블릿 계층(500)에 의해 생성되는, 제1 특징 맵을 나타낼 수 있다. 일부 경우에, 상기 저주파 성분(520)은 (H/2, W/2, C)의 차원들을 가진다. 상기 고주파 성분들(530)은 총괄적으로, 상기 가역 웨이블릿 계층(500)에 의해 생성되는, 제2 특징 맵을 나타낼 수 있다. 일부 경우에, 상기 고주파 성분들(530)은 총괄적으로 (H/2, W/2, 3C)의 차원들을 가진다. 상기 저주파 성분(520) 및 상기 고주파 성분들(530)은 도 3의 상기 신경망(310) 또는 도 4의 상기 신경망(410)에 의해 상이하게 처리될 수 있다. 예를 들면, 상기 신경망(310 또는 410)은, 국부적 디테일들(local details)로부터의 간섭 없이, 이미지 데이터에 대한 전반적 맥락(global context)을 이해하기 위해, 상기 저주파 성분(520)을 반복적으로 처리할 수 있다. 상기 고주파 성분들(530)은, 상기 새로운 특징 맵(422)과 같이, 상기 신경망(310 또는 410)의 출력의 공간 해상도를 복원하는 데 이용될 수 있다.
일부 실시예들에서, 상기 특징 맵들(414 및 418)이 도 4의 상기 비대칭 정규화 상관 계층(420)에 의해 처리되기 전에, 상기 가역 웨이블릿 계층(500)은 상기 저주파 성분(520)을 8배로 감소시킨다(그러나 다른 감소 인자들(reduction factors)이 이용될 수 있다). 또한, 일부 실시예들에서, 상기 신경망(310 또는 410)에서의 하나 이상의 컨볼루션 모듈들은 1의 스트라이드(stride)를 가질 수 있다. 나아가, 일부 실시예들에서, 상기 신경망(310 또는 410)에서의 하나의 컨볼루션 모듈은 하나 이상의 컨볼루션 블록을 포함할 수 있으며, 여기서 각각의 컨볼루션 블록은
Figure pat00018
컨볼루션 확장(expansion) 단계,
Figure pat00019
깊이별(depth-wise) 컨볼루션 단계, 및
Figure pat00020
컨볼루션 투영(projection) 단계를 수행한다. (투영 이후의) 결과적인 특징 맵들이 상기 입력 특징 맵과 동일한 수의 채널을 가지는 경우, 추가적인 식별 분기(additional identify branch)는 상기 입력 및 출력 특징 맵들을 연결한다.
도 5는 신경망의 가역 웨이블릿 계층(500)의 응용의 일 예를 도시하고 있지만, 도 5에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 상기 신경망 아키텍처(300)에서 또는 상기 신경망(410)에서 다른 어떤 적절한 계층들이라도 이용될 수 있다.
도 6a 및 도 6b는, 본 개시에 따른, 비대칭 정규화 상관 계층(420)에서 이용되는 예시적인 비대칭 검색 윈도우(600) 및 상기 비대칭 정규화 상관 계층(420)의 예시적인 응용을 도시한다. 설명의 용이성을 위해, 상기 비대칭 검색 윈도우(600) 및 상기 비대칭 정규화 상관 계층(420)은 도 1의 상기 네트워크 구성(100)에서 상기 전자 장치(101) 또는 상기 서버(106)를 이용하여 구현되는 것으로 설명된다. 그러나, 상기 비대칭 검색 윈도우(600)는 다른 어떤 적절한 장치(들)에 의해서도 및 다른 어떤 적절한 시스템(들)에서도 이용될 수 있다. 또한, 상기 비대칭 검색 윈도우(600) 및 상기 비대칭 정규화 상관 계층(420)은, 이미지에 보케 효과를 생성하는 것과 같이, 특정 이미지 처리 관련 태스크들을 수행하는 데 이용되는 것으로 설명된다. 그러나, 상기 비대칭 검색 윈도우(600)는, 비-이미지 처리 태스크들을 포함하여, 다른 어떤 적절한 태스크들이든 수행하는 데 이용될 수 있다.
도 6a에 도시하고 상술한 바와 같이, 상기 비대칭 검색 윈도우(600)는 4개의 차원들, 즉, 차원(602)(dy+), 차원(604)(dy-), 차원(606)(dx-), 및 차원(608)(dx+)에 기반한다. 상기 차원들(602, 604, 606, 및 608)은 픽셀(610)부터 상기 비대칭 검색 윈도우(600)의 파라미터까지 측정된다. 상기 차원들(602, 604, 606, 및 608)의 크기들은 카메라 베이스라인 거리 및 상기 교정 엔진(308)의 정확도에 기반할 수 있다. 예를 들면, dy+는 2이고, dy-는 2이고, dx-는 2이며, dx+는 16인 경우, 상기 비대칭 검색 윈도우(600)의 크기는 72이다. 이를 고려하면, 상기 비대칭 정규화 상관 계층(420)은, 상기 특징 맵(422)을 생성하도록, 상기 특징 맵(418)을 총 72회 이동시키고 채널-정규화 상호 상관 연산을 수행할 수 있다. 일부 실시예들에서, 상기 차원들(602, 604, 및 606)은 크기가 동일하고, 상기 차원(608)은 상기 차원들(602, 604, 및 606)보다 크다.
도 6b에 도시한 바와 같이, 상기 비대칭 정규화 상관 계층(420)은 특징 맵(612) 및 특징 맵(614)을 수신한다. 상기 특징 맵(612)은 도 4의 상기 특징 맵(414)을 나타낼 수 있고, 상기 특징 맵(614)은 도 4의 상기 특징 맵(418)을 나타낼 수 있다. 상기 비대칭 정규화 상관 계층(420)은 마스킹된 특징 맵(616)을 생성하도록 상기 특징 맵(612)에 이진 마스크를 랜덤하게 적용하고, 상기 비대칭 정규화 상관 계층(420)은 마스킹된 특징 맵(618)을 생성하도록 상기 특징 맵(614)에 이진 마스크를 랜덤하게 적용한다. 상술한 바와 같이, 상기 이진 마스크는 상기 마스킹된 특징 맵들(616 및 618)을 생성하도록 상기 특징 맵들(612 및 614)에서 랜덤 채널값들을 차단한다. 랜덤 채널값들을 차단함으로써, 이미지에서 뷰의 작은 부분이 차단되는 경우에도, 상기 신경망(310 또는 410)으로 하여금 매칭을 학습하도록 할 수 있다.
상기 마스킹된 특징 맵(618)에 대해, 상기 마스킹된 특징 맵(618)을 하나 이상의 방향들(622)로 여러번 이동시키는, 이동 연산(shifting operation)(620)이 수행된다. 여기서 이동(shifting)은 도 6a에 도시한 상기 비대칭 검색 윈도우(600)에 기반한다. 특정(u, v) 방향(622)으로 상기 마스킹된 특징 맵(618)의 각각의 이동에 대해, 복수의 특징 맵들(624, 626, 및 628)이 생성된다. 상기 마스킹된 특징 맵(618)이 이동되는 횟수는 상기 비대칭 검색 윈도우(600)의 크기에 기반할 수 있다. 예를 들면, 상기 비대칭 검색 윈도우(600)의 차원들이 dy+ = 2, dy- = 2, dx- = 2, 및 dx+ = 16인 경우, 상기 마스킹된 특징 맵(618)은 72회 이동되고, 그 결과 특징 맵들(624, 626, 및 628)의 72세트들이 생성된다. 상기 마스킹된 특징 맵(618)의 이동은 (u, v) 방향으로 발생할 수 있으며, 여기서 u는 -2 내지 16이고 v는 -2 내지 2이다.
특징 맵들(624, 626, 및 628)의 각 세트를 생성하기 위해, 상기 비대칭 정규화 상관 계층(420)은, 상기 마스킹된 특징 맵(616) 및 이동된 상태의 상기 마스킹된 특징 맵(618)의 내적(inner product) 및 평균(mean)을 계산함으로써, 특징 매칭을 수행할 수 있다. 예를 들면, 상기 비대칭 정규화 상관 계층(420)은, 상기 특징 맵(626)을 생성하기 위해, 상기 마스킹된 특징 맵(616)과, 상기 채널 차원을 따라 이동된 상태인, 상기 이동된 마스킹된 특징 맵(618) 간의 내적을 계산할 수 있다. 상기 비대칭 정규화 상관 계층(420)은 또한 상기 특징 맵(628)을 생성하기 위해 상기 채널 차원을 따라 상기 마스킹된 특징 맵(616)의 평균을 계산할 수 있고, 상기 비대칭 정규화 상관 계층(420)은 상기 특징 맵(624)을 생성하기 위해 상기 채널 차원을 따라 이동된 상태의 상기 마스킹된 특징 맵(618)의 평균을 계산할 수 있다. 상기 특징 맵들(624, 626, 및 628)의 집합(collection)은 단일 채널 특징 맵을 나타낸다.
다음에, 상기 비대칭 정규화 상관 계층(420)은, 정규화 특징 맵(630)을 생성하기 위해, 상기 특징 맵들(624 및 628)을 이용하여 상기 특징 맵(626)을 정규화한다. 일부 실시예들에서, 상기 비대칭 정규화 상관 계층(420)은 하기 식 (4)를 이용하여 상기 특징 맵(626)을 정규화한다.
Figure pat00021
(4)
상기 정규화 특징 맵(630)은, 이것이 단일 채널에 대응되므로, 2D 특징 맵이다. 그러나, 상기 마스킹된 특징 맵(618)의 각각의 이동에 대해 정규화 특징 맵(630)을 생성함으로써, 상기 비대칭 정규화 상관 계층(420)은 새로운 특징 맵들(624, 626, 및 628)을 생성하며, 새로운 정규화 특징 맵(630)은 상기 마스킹된 특징 맵(618)의 해당 이동에 대해 생성된다. 각각의 새로운 정규화 특징 맵(630)은 상이한 채널에 대응되고, 상기 복수의 정규화 특징 맵들(630)은 적층될 수 있다. 상기 정규화 특징 맵들(630)의 적층은 깊이를 추가하여 (H, W, C')의 차원들을 갖는 3D 특징 맵을 형성하며, 여기서 C'은 상기 마스킹된 특징 맵(618)의 이동의 수(이는 상기 비대칭 검색 윈도우(600)의 크기에 기반함)에 대응된다.
정규화 특징 맵들(630)의 집합(collection)은, 도 4의 상기 정제 계층(426)에 출력되는, 상기 새로운 특징 맵(422)을 나타낼 수 있다. 상기 가역 웨이블릿 계층(500)이 상기 저주파 성분(520)을 상술한 바와 같은 인자(factor)만큼 감소시키기 위해 이용되는 경우, 상기 정제 계층(426)(상기 고주파 성분들(530)을 이용함)은 상기 깊이 맵(428)을 생성하기 위해 상기 정규화 특징 맵들(630)에 대해 공간 해상도를 복원하도록 동작한다.
도 6a 및 도 6b는 비대칭 정규화 상관 계층(420)에서 이용되는 비대칭 검색 윈도우(600)의 일 예 및 상기 비대칭 정규화 상관 계층(420)의 하나의 예시적 응용을 도시하고 있지만, 도 6a 및 도 6b에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 상기 비대칭 검색 윈도우(600)의 크기는, 카메라들 간의 물리적 거리 및 교정의 정확도와 같은, 상기 전자 장치(101)의 특성들에 따라 달라질 수 있다. 또한, 상기 비대칭 정규화 상관 계층(420)은, 처리되는 입력 이미지의 수에 기반할 수 있는, 다른 어떤 수의 입력 특징 맵들도 처리할 수 있다.
도 7은, 본 개시에 따른, 심층 신경망 특징 매칭(deep neural network feature matching)을 위한 비대칭 정규화 상관 계층을 이용하는 예시적 방법(700)을 도시한다. 보다 구체적으로, 도 7은 신경망(310 또는 410)에서 상기 비대칭 정규화 상관 계층(420)을 이용하여 깊이 맵을 생성하는 예시적 방법(700)을 도시하며, 여기서 상기 생성되는 깊이 맵은 이미지 처리 태스크를 수행하는 데 이용된다. 설명의 용이성을 위해, 도 7의 상기 방법(700)은 도 1의 상기 네트워크 구성(100)에서 도 3의 상기 신경망 아키텍처(300)를 이용하는 것을 포함하는 것으로 설명된다. 그러나, 상기 방법(700)은 본 개시에 따라 설계된 어떤 적절한 신경망 아키텍처를 이용하는 것을 포함할 수 있으며, 상기 비대칭 정규화 상관 계층(420)은 다른 어떤 적절한 장치 또는 시스템에서 이용될 수 있다.
단계(702)에서, 상기 신경망 아키텍처(300)는, 복수의 입력 이미지들과 같은, 입력 데이터를 획득한다. 상기 입력 이미지들은, 전자 장치의 상이한 카메라들 또는 다른 이미지 센서들에 의해 캡처되는 이미지들과 같이, 한 장면의 둘 이상의 이미지들을 나타낸다. 예를 들면, 상기 장면의 제1 이미지는 상기 전자 장치의 제1 이미지 센서를 이용하여 획득될 수 있고, 상기 장면의 제2 이미지는 상기 전자 장치의 제2 이미지 센서를 이용하여 획득될 수 있다. 상기 신경망 아키텍처(300)는 최종 사용자(end-user) 장치(예를 들면, 전자 장치(101, 102, 또는 104))에서 구현되고 해당 최종 사용자 장치에 의해 수집 또는 생성된 데이터를 처리할 수 있거나, 또는 상기 신경망 아키텍처(300)는 하나의 장치(예를 들면, 서버(106))에서 구현되고 다른 장치(예를 들면, 전자 장치(101, 102, 또는 104))에 의해 수집 또는 생성된 데이터를 처리할 수 있다는 것에 유의해야 한다.
단계(704)에서, 상기 신경망 아키텍처(300)는 상기 제1 이미지로부터 제1 특징 맵을 생성하고 상기 제2 이미지로부터 제2 특징 맵을 생성한다. 예를 들면, 이미지들(302 및 304)은, 상기 이미지들(302 및 304) 중 적어도 하나를 수정하고 교정된 이미지들(402 및 404)을 생성하도록, 상기 교정 엔진(308)에 의해 처리될 수 있다. 다음에, 상기 교정된 이미지들(402 및 404)은, 상기 특징 맵들(414 및 418)을 생성하도록, 상기 특징 추출기들(412 및 416)에 의해 처리될 수 있다. 일부 실시예들에서, 상기 신경망 아키텍처(300)는 별개의 특징 추출기들을 이용하여 상이한 특징 맵들을 생성한다. 예를 들면, 상기 특징 맵(414)은 상기 특징 추출기(412)에 의해 생성될 수 있고, 상기 특징 맵(418)은 상기 특징 추출기(416)에 의해 생성될 수 있다. 단계(702)에서 추가적인 입력 이미지들이 획득되는 경우, 추가적인 특징 추출기들이 그러한 이미지들에 대한 추가적인 특징 맵들을 생성하는 데 이용될 수 있다. 일부 실시예들에서, 상기 특징 추출기들은 병렬적으로, 즉, 동일 또는 유사한 시간 동안 동시에, 상기 특징 맵들을 생성하도록 동작한다.
단계(706)에서, 상기 신경망 아키텍처(300)는, 비대칭 검색 윈도우를 이용하여, 상기 제1 특징 맵 및 상기 제2 특징 맵에 기초하여 제3 특징 맵을 생성한다. 상기 제3 특징 맵의 크기는 상기 입력 이미지들을 교정한 교정 알고리즘의 정확도 및 상기 이미지들을 캡처한 카메라들 간의 거리(들)에 기반한다. 일부 경우에, 상기 비대칭 검색 윈도우는 수직 방향보다 수평 방향으로 더 길 수 있다. 상기 비대칭 검색 윈도우의 크기는, 상기 제3 특징 맵을 생성하기 위해 특징 매칭을 수행할 때, 상기 제2 특징 맵이 이동되는 횟수에 대응된다. 일부 실시예들에서, 상기 제3 특징 맵을 생성하기 위해, 상기 신경망 아키텍처(300)는 상기 제1 및 제2 특징 맵들의 랜덤 채널들에 걸쳐 이진 마스크를 적용한다. 상기 이진 마스크는, 상기 교정된 이미지들이 생성될 때, 상기 교정 프로세스의 오류 또는 상기 교정 프로세스의 정확도를 식별하는 데 이용될 수 있다. 상기 마스크가 상기 제2 특징 맵에 적용된 후, 상기 제2 특징 맵은 상기 비대칭 검색 윈도우의 크기에 기반한 횟수만큼 이동된다. 상기 제2 특징 맵의 각각의 이동에 대해, 상기 신경망 아키텍처(300)는, 상기 제3 특징 맵에 대한 채널값들을 식별하기 위해, 상기 제1 특징 맵과 상기 제2 특징 맵의 이동된 버전 간의 채널-정규화 상호 상관도를 계산한다. 이는 상술한 바와 같이 발생할 수 있다. 이는, 복수의 단일-채널 특징 맵들이 생성되도록, 상기 제2 특징 맵의 각각의 이동에 대해 반복될 수 있다. 다음에, 상기 복수의 단일-채널 특징 맵들은 상기 제3 특징 맵을 형성하도록 적층된다.
단계(708)에서, 상기 신경망 아키텍처(300)는 상기 제3 특징 맵에 대해 공간 해상도를 복원함으로써 깊이 맵을 생성한다. 예를 들면, 상기 신경망 아키텍처(300)는 상기 정제 계층(426)을 이용하여 상기 제3 특징 맵에 대해 공간 해상도를 복원할 수 있다. 일부 경우에, 상기 신경망 아키텍처(300)는 상기 제1 특징 맵을, 복수의 고주파 성분들(530) 및 저주파 성분(520)과 같이, 복수의 성분들로 분해할 수 있다. 이러한 실시예들에서, 상기 신경망 아키텍처(300)는 상기 제1 특징 맵을 분해하기 위해 가역 웨이블릿 계층을 이용할 수 있다. 상기 제1 특징 맵의 상기 저주파 성분(520)은 국부적 디테일들로부터의 간섭 없이 이미지의 전반적 맥락을 제공하는 반면, 상기 제1 특징 맵의 상기 고주파 성분들(530)은, 깊이 맵 생성 시, 상기 제3 특징 맵에 대해 공간 해상도를 복원하는 데 이용된다.
단계(710)에서, 상기 깊이 맵을 이용하여 이미지 처리 태스크가 수행된다. 예를 들면, 상기 신경망 아키텍처(300)는 상기 캡처된 이미지들 중 하나 이내에서 초점을 식별할 수 있다. 상기 초점의 위치에 기초하여, 상기 신경망 아키텍처(300)는 상기 이미지 내의 상기 초점 위치에 대응되는 상기 깊이 맵 내의 깊이 평면(depth plane)을 식별할 수 있다. 다음에, 상기 신경망 아키텍처(300)는, 예를 들면, 큰 깊이들에서 흐림(blurriness) 레벨을 증가시킴으로써, 상기 캡처된 이미지의 부분들의 상기 깊이 평면으로부터의 식별된 거리들에 기초하여 상기 캡처된 이미지의 부분들을 블러링한다. 이로써 상기 신경망 아키텍처(300)는 상기 장면의 상기 최종 이미지에 보케 효과를 생성할 수 있다.
도 7은 심층 신경망 특징 매칭을 위해 비대칭 정규화 상관 계층(420)을 이용하는 방법(700)의 일 예를 도시하고 있지만, 도 7에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 일련의 단계들로 도시하고 있지만, 도 7의 다양한 단계들은 중첩되거나, 병렬적으로 발생하거나, 또는 어떤 횟수로도 발생할 수 있다. 또한, 상기 방법(700)은 어떤 적절한 입력 데이터라도 처리할 수 있으며 이미지 처리 태스크들과 함께 이용하는 것에 제한되지 않는다.
다양한 예시적 실시예들을 참조하여 본 개시가 설명되었지만, 본 개시가 속하는 기술분야의 숙련된 자에게 다양한 변경들 및 변형들이 시사될 수 있다. 본 개시는 그러한 변경들 및 변형들을 첨부된 청구항들의 범위 내에 속하는 것으로서 포함하고자 한 것이다.

Claims (15)

  1. 전자 장치의 제1 이미지 센서를 이용하여 장면의 제1 이미지를 획득하고 상기 전자 장치의 제2 이미지 센서를 이용하여 상기 장면의 제2 이미지를 획득하는 단계;
    상기 제1 이미지로부터 제1 특징 맵을 생성하고 상기 제2 이미지로부터 제2 특징 맵을 생성하는 단계;
    비대칭 검색 윈도우(asymmetric search window)를 이용하여, 상기 제1 특징 맵 및 상기 제2 특징 맵에 기초하여 제3 특징 맵을 생성하는 단계; 및
    상기 제3 특징 맵에 대해 공간 해상도(spatial resolution)를 복원하여 깊이 맵(depth map)을 생성하는 단계를 포함하는, 방법.
  2. 제1 항에 있어서, 상기 제1 특징 맵 및 상기 제2 특징 맵을 생성하는 단계는:
    교정된 이미지 쌍을 생성하기 위해 상기 제1 이미지 및 상기 제2 이미지 중 적어도 하나를 수정하는(modifying) 단계; 및
    상기 교정된 이미지 쌍을 이용하여, 상기 제1 특징 맵 및 상기 제2 특징 맵을 생성하는 단계를 포함하는, 방법.
  3. 제1 항에 있어서, 상기 제1 특징 맵의 고주파 성분들 및 저주파 성분을 식별하는 단계를 더 포함하고, 상기 고주파 성분들은 상기 제3 특징 맵에 대해 상기 공간 해상도를 복원하는 데 이용되는, 방법.
  4. 제1 항에 있어서, 상기 비대칭 검색 윈도우는 상기 비대칭 검색 윈도우에 내 적어도 두개의 상이한 방향들에 대해 적어도 두 개의 상이한 거리들을 포함하는, 방법.
  5. 제1 항에 있어서, 상기 제1 특징 맵 및 상기 제2 특징 맵은 신경망(neural network)에서의 상이한 특징 추출기들(feature extractors)을 이용하여 병렬적으로 생성되는, 방법.
  6. 제1 항에 있어서, 상기 제3 특징 맵을 생성하는 단계는:
    마스킹된(masked) 제1 특징 맵 및 마스킹된 제2 특징 맵을 생성하기 위해 상기 제1 특징 맵 및 상기 제2 특징 맵에 걸쳐 랜덤 이진 마스크(random binary mask)를 적용하는 단계; 및
    상기 마스킹된 제1 특징 맵과 상기 마스킹된 제2 특징 맵의 이동된 버전들(shifted versions) 간의 채널-정규화 상호 상관도들(channel-normalized cross-correlations)을 계산함으로써 상기 제3 특징 맵을 식별하는 단계를 포함하고, 상기 마스킹된 제2 특징 맵은 상기 비대칭 검색 윈도우의 크기에 기초하여 복수회 이동되는, 방법.
  7. 제1 항에 있어서,
    상기 제1 이미지 내에서 초점(focus point)을 획득하는 단계; 및
    상기 깊이 맵을 이용하여, 상기 초점과 연관된 깊이와 상이한 깊이들에 대응되는 상기 제1 이미지의 부분들을 블러링(blurring)함으로써 보케 효과(Bokeh effect)를 생성하는 단계를 더 포함하는, 방법.
  8. 제1 이미지 센서;
    제2 이미지 센서; 및
    상기 제1 및 제2 이미지 센서들과 작동 가능하게(operatively) 결합된 적어도 하나의 프로세서에 있어서, 상기 적어도 하나의 프로세서는:
    상기 제1 이미지 센서를 이용하여 장면의 제1 이미지를 획득하고 상기 제2 이미지 센서를 이용하여 상기 장면의 제2 이미지를 획득하고;
    상기 제1 이미지로부터 제1 특징 맵을 생성하고 상기 제2 이미지로부터 제2 특징 맵을 생성하고;
    비대칭 검색 윈도우를 이용하여, 상기 제1 특징 맵 및 상기 제2 특징 맵에 기초하여 제3 특징 맵을 생성하고;
    상기 제3 특징 맵에 대해 공간 해상도를 복원하여 깊이 맵을 생성하도록 구성된, 적어도 하나의 프로세서를 포함하는, 전자 장치.
  9. 제8 항에 있어서, 상기 제1 특징 맵 및 상기 제2 특징 맵을 생성하기 위해, 상기 적어도 하나의 프로세서는:
    교정된 이미지 쌍을 생성하기 위해 상기 제1 이미지 및 상기 제2 이미지 중 적어도 하나를 수정하고;
    상기 교정된 이미지 쌍을 이용하여, 상기 제1 특징 맵 및 상기 제2 특징 맵을 생성하도록 구성되는, 전자 장치.
  10. 제8 항에 있어서, 상기 적어도 하나의 프로세서는 상기 제1 특징 맵의 고주파 성분들 및 저주파 성분을 식별하도록 더 구성되고,
    상기 적어도 하나의 프로세서는 상기 고주파 성분들을 이용하여 상기 제3 특징 맵에 대해 상기 공간 해상도를 복원하도록 구성되는, 전자 장치.
  11. 제8 항에 있어서, 상기 비대칭 검색 윈도우는 상기 비대칭 검색 윈도우 내 적어도 두개의 상이한 방향들에 대해 적어도 두 개의 상이한 거리들을 포함하는, 전자 장치.
  12. 제8 항에 있어서, 상기 적어도 하나의 프로세서는, 신경망에서의 상이한 특징 추출기들을 이용하여, 상기 제1 특징 맵 및 상기 제2 특징 맵을 병렬적으로 생성하도록 구성되는, 전자 장치.
  13. 제8 항에 있어서, 상기 깊이 맵을 생성하기 위해, 상기 적어도 하나의 프로세서는:
    마스킹된 제1 특징 맵 및 마스킹된 제2 특징 맵을 생성하기 위해 상기 제1 특징 맵 및 상기 제2 특징 맵에 걸쳐 랜덤 이진 마스크를 적용하고;
    상기 마스킹된 제1 특징 맵과 상기 마스킹된 제2 특징 맵의 이동된 버전들 간의 채널-정규화 상호 상관들을 계산하여 상기 제3 특징 맵을 식별하도록 구성되고,
    상기 적어도 하나의 프로세서는 상기 비대칭 검색 윈도우의 크기에 기초하여 상기 제2 특징 맵을 복수회 이동시키도록 구성되는, 전자 장치.
  14. 제8 항에 있어서, 상기 적어도 하나의 프로세서는:
    상기 제1 이미지 내에서 초점을 획득하고;
    상기 깊이 맵을 이용하여, 상기 초점과 연관된 깊이와 상이한 깊이들에 대응되는 상기 제1 이미지의 부분들을 블러링함으로써 보케 효과를 생성하도록 더 구성되는, 전자 장치.
  15. 제1 항 내지 제7 항 중에서 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.

KR1020200141451A 2019-11-15 2020-10-28 심층 신경망 특징 매칭을 위한 비대칭 정규화 상관 계층 KR20210059612A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20888000.5A EP3977410A4 (en) 2019-11-15 2020-11-04 ASYMMETRICAL NORMALIZED CORRELATION LAYER FOR ADAPTATION OF DEEP NERION NETWORK CHARACTERISTICS
PCT/KR2020/015335 WO2021096152A1 (en) 2019-11-15 2020-11-04 Asymmetric normalized correlation layer for deep neural network feature matching
CN202080079531.8A CN114830176A (zh) 2019-11-15 2020-11-04 用于深度神经网络特征匹配的非对称归一化相关层

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962936115P 2019-11-15 2019-11-15
US62/936,115 2019-11-15
US16/712,882 US11132772B2 (en) 2019-06-11 2019-12-12 Asymmetric normalized correlation layer for deep neural network feature matching
US16/712,882 2019-12-12

Publications (1)

Publication Number Publication Date
KR20210059612A true KR20210059612A (ko) 2021-05-25

Family

ID=76145698

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200141451A KR20210059612A (ko) 2019-11-15 2020-10-28 심층 신경망 특징 매칭을 위한 비대칭 정규화 상관 계층

Country Status (1)

Country Link
KR (1) KR20210059612A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102461646B1 (ko) * 2022-03-15 2022-11-01 가천대학교 산학협력단 뇌파 검사 데이터에 대한 전이 학습 기반의 증강데이터 생성방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102461646B1 (ko) * 2022-03-15 2022-11-01 가천대학교 산학협력단 뇌파 검사 데이터에 대한 전이 학습 기반의 증강데이터 생성방법

Similar Documents

Publication Publication Date Title
US11132772B2 (en) Asymmetric normalized correlation layer for deep neural network feature matching
US9990536B2 (en) Combining images aligned to reference frame
US20230022753A1 (en) System and method for motion warping using multi-exposure frames
US11503266B2 (en) Super-resolution depth map generation for multi-camera or other environments
US11449968B2 (en) System and method for synthetic depth-of-field effect rendering for videos
US11195259B2 (en) Apparatus and method for dynamic multi-camera rectification using depth camera
US11532091B2 (en) Guided backpropagation-gradient updating for image processing task using redundant information from image
US11094041B2 (en) Generation of bokeh images using adaptive focus range and layered scattering
KR20210063223A (ko) 멀티태스크 융합 신경망 아키텍처
US11823353B2 (en) System and method for generating bokeh image for DSLR quality depth-of-field rendering and refinement and training method for the same
KR20210059612A (ko) 심층 신경망 특징 매칭을 위한 비대칭 정규화 상관 계층
US11816855B2 (en) Array-based depth estimation
US11354781B2 (en) Single-image detail and contrast enhancement
WO2021096152A1 (en) Asymmetric normalized correlation layer for deep neural network feature matching
US20230252770A1 (en) Machine learning model training framework for multi-frame image processing
US20230252608A1 (en) Hand motion pattern modeling and motion blur synthesizing techniques
US11847771B2 (en) Systems and methods for quantitative evaluation of optical map quality and for data augmentation automation
US20240185431A1 (en) System and method for ai segmentation-based registration for multi-frame processing
US20240121370A1 (en) System and method for parallax correction for video see-through augmented reality
US20230021726A1 (en) System and method for multi-exposure, multi-frame blending of red-green-blue-white (rgbw) images
US11869118B2 (en) Generating a synthetic ground-truth image using a dead leaves model
US20240087190A1 (en) System and method for synthetic data generation using dead leaves images
US20220198722A1 (en) Multi-frame depth-based multi-camera relighting of images
US20230245330A1 (en) System and method for facial un-distortion in digital images using multiple imaging sensors
WO2021107384A1 (en) Generation of bokeh images using adaptive focus range and layered scattering