KR20210063223A - 멀티태스크 융합 신경망 아키텍처 - Google Patents

멀티태스크 융합 신경망 아키텍처 Download PDF

Info

Publication number
KR20210063223A
KR20210063223A KR1020200139745A KR20200139745A KR20210063223A KR 20210063223 A KR20210063223 A KR 20210063223A KR 1020200139745 A KR1020200139745 A KR 1020200139745A KR 20200139745 A KR20200139745 A KR 20200139745A KR 20210063223 A KR20210063223 A KR 20210063223A
Authority
KR
South Korea
Prior art keywords
outputs
initial
branches
post
neural network
Prior art date
Application number
KR1020200139745A
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 KR20210063223A publication Critical patent/KR20210063223A/ko

Links

Images

Classifications

    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/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

Landscapes

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

Abstract

방법은 적어도 하나의 프로세서가 공통 특징 추출기를 이용하여 입력 데이터의 복수의 특징들을 식별하는 단계를 포함한다. 상기 방법은 또한 상기 적어도 하나의 프로세서가 복수의 전처리 분기들 각각을 이용하여 적어도 일부의 식별된 특징들을 처리하는 단계를 포함한다. 각각의 전처리 분기는 신경망 계층들의 제1 세트를 포함하고 복수의 데이터 처리 태스크들 중 상이한 하나와 연관된 초기 출력들을 생성한다. 상기 방법은 상기 적어도 하나의 프로세서가, 조합된 초기 출력들을 생성하기 위해, 적어도 두 개의 전처리 분기들로부터의 적어도 두 개의 초기 출력들을 조합하는 단계를 더 포함한다. 또한, 상기 방법은 상기 적어도 하나의 프로세서가 복수의 후처리 분기들 각각을 이용하여 적어도 일부의 초기 출력들 또는 적어도 일부의 조합된 초기 출력들을 처리하는 단계를 포함한다. 각각의 후처리 분기는 신경망 계층들의 제2 세트를 포함하고 상기 복수의 데이터 처리 태스크들 중 상이한 하나와 연관된 최종 출력들을 생성한다.

Description

멀티태스크 융합 신경망 아키텍처 {MULTI-TASK FUSION NEURAL NETWORK ARCHITECTURE}
본 개시는 일반적으로 기계 학습 시스템들에 관한 것이다. 보다 구체적으로, 본 개시는, 이미지 처리 애플리케이션들 또는 기타 애플리케이션들에서 이용될 수 있는, 멀티태스크 융합 신경망 아키텍처(multi-task fusion neural network architecture)에 관한 것이다.
스마트폰 및 태블릿 컴퓨터와 같은 많은 모바일 전자 장치들은 정지 이미지 및 비디오 이미지를 캡처하는 데 이용될 수 있는 카메라들을 포함한다. 편리하지만, 모바일 전자 장치들 상의 카메라들에는 전형적으로 그들의 화질을 낮추는 여러 가지 단점들이 있다. 다양한 기계 학습 알고리즘들이, 여러 가지 이미지 처리 관련 애플리케이션들에서, 모바일 전자 장치들 또는 기타 장치들을 이용하여 캡처된 이미지들의 품질을 향상시키는 데 이용될 수 있다. 예를 들면, 상이한 컨볼루션 신경망들(convolutional neural networks)은 훈련된 후, 캡처된 이미지들의 품질을 향상시키기 위해 상이한 이미지 처리 태스크들(image processing tasks)을 수행하는 데 이용될 수 있다.
본 개시는 멀티태스크 융합 신경망 아키텍처를 제공한다.
제1 실시예에서, 방법은 적어도 하나의 프로세서가 공통 특징 추출기(common feature extractor)를 이용하여 입력 데이터의 복수의 특징들을 식별하는 단계를 포함한다. 상기 방법은 또한 상기 적어도 하나의 프로세서가 복수의 전처리 분기들(pre-processing branches) 각각을 이용하여 상기 입력 데이터의 상기 식별된 특징들 중 적어도 일부를 처리하는 단계를 포함한다. 각각의 전처리 분기는 신경망 계층들의 제1 세트를 포함하며 복수의 데이터 처리 태스크들 중 상이한 하나와 연관된 초기 출력들을 생성한다. 상기 방법은 상기 적어도 하나의 프로세서가, 조합된 초기 출력들을 생성하기 위해, 상기 전처리 분기들 중 적어도 두 개로부터의 상기 초기 출력들 중 적어도 두 개를 조합하는 단계를 더 포함한다. 또한, 상기 방법은 상기 적어도 하나의 프로세서가 복수의 후처리 분기들(post-processing branches) 각각을 이용하여 상기 초기 출력들 중 적어도 일부 또는 상기 조합된 초기 출력들 중 적어도 일부를 처리하는 단계를 포함한다. 각각의 후처리 분기는 신경망 계층들의 제2 세트를 포함하며 상기 복수의 데이터 처리 태스크들 중 상이한 하나와 연관된 최종 출력들을 생성한다.
제2 실시예에서, 전자 장치는 적어도 하나의 메모리 및 상기 적어도 하나의 메모리와 작동 가능하게(operatively) 결합된 적어도 하나의 프로세서를 포함한다. 상기 적어도 하나의 프로세서는 공통 특징 추출기를 이용하여 입력 데이터의 복수의 특징들을 식별하도록 구성된다. 상기 적어도 하나의 프로세서는 또한 복수의 전처리 분기들 각각을 이용하여 상기 입력 데이터의 상기 식별된 특징들 중 적어도 일부를 처리하도록 구성된다. 각각의 전처리 분기는 신경망 계층들의 제1 세트를 포함하며 복수의 데이터 처리 태스크들 중 상이한 하나와 연관된 초기 출력들을 생성하도록 구성된다. 상기 적어도 하나의 프로세서는, 조합된 초기 출력들을 생성하기 위해, 상기 전처리 분기들 중 적어도 두 개로부터의 상기 초기 출력들 중 적어도 두 개를 조합하도록 더 구성된다. 또한, 상기 적어도 하나의 프로세서는 복수의 후처리 분기들 각각을 이용하여 상기 초기 출력들 중 적어도 일부 또는 상기 조합된 초기 출력들 중 적어도 일부를 처리하도록 구성된다. 각각의 후처리 분기는 신경망 계층들의 제2 세트를 포함하며 상기 복수의 데이터 처리 태스크들 중 상이한 하나와 연관된 최종 출력들을 생성하도록 구성된다.
제3 실시예에서, 비일시적 기계-판독가능 매체(non-transitory machine-readable medium)는, 실행되는 경우, 전자 장치의 적어도 하나의 프로세서로 하여금 공통 특징 추출기를 이용하여 입력 데이터의 복수의 특징들을 식별하도록 하는, 명령어들(instructions)을 포함한다. 상기 매체는 또한, 실행되는 경우, 상기 적어도 하나의 프로세서로 하여금 복수의 전처리 분기들 각각을 이용하여 상기 입력 데이터의 상기 식별된 특징들 중 적어도 일부를 처리하도록 하는, 명령어들을 포함한다. 각각의 전처리 분기는 신경망 계층들의 제1 세트를 포함하며 복수의 데이터 처리 태스크들 중 상이한 하나와 연관된 초기 출력들을 생성하도록 구성된다. 상기 매체는, 실행되는 경우, 상기 적어도 하나의 프로세서로 하여금 조합된 초기 출력들을 생성하기 위해 상기 전처리 분기들 중 적어도 두 개로부터의 상기 초기 출력들 중 적어도 두 개를 조합하도록 하는, 명령어들을 더 포함한다. 또한, 상기 매체는, 실행되는 경우, 상기 적어도 하나의 프로세서로 하여금 복수의 후처리 분기들 각각을 이용하여 상기 초기 출력들 중 적어도 일부 또는 상기 조합된 초기 출력들 중 적어도 일부를 처리하도록 하는, 명령어들을 포함한다. 각각의 후처리 분기는 신경망 계층들의 제2 세트를 포함하며 상기 복수의 데이터 처리 태스크들 중 상이한 하나와 연관된 최종 출력들을 생성하도록 구성된다.
기타 기술적 특징들은 이하의 도면들, 설명들, 및 청구항들로부터 본 개시가 속하는 기술분야의 숙련된 자에게 용이하게 명확해질 수 있다.
하기 상세한 설명에 착수하기 전에, 본 특허 문서 전체에 걸쳐 사용되는 특정 단어들 및 문구들의 정의를 설명하는 것이 유리할 수 있다. "전송하다(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은, 본 개시에 따른, 전자 장치를 포함하는 예시적 네트워크 구성을 도시한다.
도 2는, 본 개시에 따른, 예시적인 멀티태크스 융합 신경망 아키텍처(multi-task fusion neural network architecture)를 도시한다.
도 3은, 본 개시에 따른, 멀티태크스 융합 신경망 아키텍처에서의 예시적 전단 특징 추출기(front-end feature extractor)를 도시한다.
도 4는, 본 개시에 따른, 멀티태크스 융합 신경망 아키텍처에서의 예시적 후단 융합 계층(back-end fusion layer)을 도시한다.
도 5a, 도 5b, 도 5c 및 도 5d는, 본 개시에 따른, 예시적 입력 이미지 및, 멀티태스크 융합 신경망 아키텍처를 이용하여 획득될 수 있는, 예시적 처리 결과들을 도시한다.
도 6은, 본 개시에 따른, 멀티태스크 융합 신경망 아키텍처를 이용하는 예시적 방법을 도시한다.
하기에서 논의되는 도 1 내지 도 6, 및 본 개시의 다양한 실시예들은 첨부 도면을 참조하여 설명된다. 그러나, 본 개시는 이들 실시예들에 제한되지 않으며, 이들에 대한 모든 변경 및/또는 균등물 또는 대체물도 또한 본 개시의 범위에 속함을 이해해야 할 것이다.
상술한 바와 같이, 스마트폰 및 태블릿 컴퓨터와 같은 많은 모바일 전자 장치들은 정지(still) 및 비디오 이미지들을 캡처하는 데 이용될 수 있는 카메라들을 포함한다. 그러나, 모바일 전자 장치들 상의 카메라들에는 전형적으로 여러 가지 단점들이 있다. 모바일 전자 장치들 또는 기타 장치들을 이용하여 캡처된 이미지들의 품질을 향상시키기 위해, 여러 이미지 처리 관련 애플리케이션들에서 다양한 기계 학습 알고리즘들이 이용될 수 있다. 예를 들면, 상이한 컨볼루션 신경망들(convolutional neural networks)이, 캡처된 이미지들의 품질을 향상시키기 위해, 상이한 이미지 처리 태스크들(image processing tasks)을 수행하도록 훈련되고 이용될 수 있다. 각각의 컨볼루션 신경망은 전형적으로 특정 태스크를 수행하도록 훈련된다. 예를 들면, 이미지 처리 분야에서, 상이한 컨볼루션 신경망들이 장면들의 유형 또는 상기 장면들 내 객체들의 유형을 인식하거나, 장면들 내 객체들의 깊이를 식별하거나, 장면들 내 객체들에 기반하여 이미지들을 세그먼트화하거나, 또는 높은 동적 범위(high dynamic range: HDR) 이미지들, 보케(Bokeh) 이미지들, 또는 초해상도(super-resolution) 이미지들을 생성하도록 훈련될 수 있다.
알려진 바와 같이, 이러한 유형 또는 다른 유형의 태스크들을 수행하는, 컨볼루션 신경망들의 아키텍처들은 종종 큰 유사도(degree of similarity)를 가질 수 있다. 예를 들면, 이러한 유형의 컨볼루션 신경망들은 관례적으로, 이미지들 내의 상이한 특징들을 식별하는 데 이용되는, 특징 추출기들을 포함하며, 여기서 상기 추출된 특징들은 원하는 태스크들을 수행하기 위해 이후 더 처리된다. 상이한 컨볼루션 신경망들에서의 상기 특징 추출기들은 전형적으로, 인셉션넷(InceptionNet), 레지듀얼넷(ResidualNet), 또는 유넷(UNet) 설계들과 같은, 통상적인 설계들로부터 파생된다. 상이한 태스크들을 위해 컨볼루션 신경망들에서 이용되는 상기 특징 추출기들은, 이들이 상이한 훈련 데이터를 이용하여 훈련되기 때문에, 전형적으로 상이한 가중치들을 가진다. 이러한 차이들 이외에, 이러한 컨볼루션 신경망들의 오직 작은 부분들만이 태스크-특정적인(task-specific) 경향이 있는데, 이는 상기 컨볼루션 신경망들의 그러한 작은 부분들이 수행되는 태스크들에 따라 달라진다는 것을 의미한다.
본 개시는, 상이한 태스크들을 수행하도록 훈련된 컨볼루션 신경망 계층들이 동일한 전단 특징 추출기(front-end feature extractor)를 공유하는, 멀티태스크 융합 신경망 아키텍처(multi-task fusion neural network architecture)를 제공한다. 상기 특징 추출기는 수행될 상이한 태스크들 모두에 대해 가중치들의 단일 세트를 이용한다. 상기 특징 추출기는, 예를 들면, 통합 합성 데이터 엔진(unified synthetic data engine)을 이용하여 생성되는 컴퓨터-생성(computer-generated: CG) 훈련 이미지들을 이용함으로써, 이러한 가중치들을 생성하도록 원하는 바 대로 훈련될 수 있다. 복수의 태스크들에 대해 단일 특징 추출기를 이용하는 능력은, 상이한 태스크들에 대해 그들 자신의 특징 추출기들을 갖는 복수의 개별 컨볼루션 신경망들을 이용하는 것과 비교하여, 전체적인 아키텍처가 매우 감소된 복잡도를 갖는 결과를 가져올 수 있다.
또한, 본 개시에서 설명되는 상기 멀티태스크 융합 신경망 아키텍처는 복수의 태스크들이 동시에(concurrently) 또는 병렬적으로 수행될 수 있도록 한다. 이는, 이미지 처리 분야에서, 예를 들면, 하나 이상의 이미지들을 처리 및 출력하는 경우, 디스패리티(disparity, 시차(視差)) 또는 깊이 맵(depth map) 생성, 세그먼트화 마스크 생성, 보케 이미지 생성, 및 HDR 이미지 생성 태스크들이 순차적이 아니라 동시에 발생하도록 할 수 있다. 물론, 본 명세서에서 이미지 처리 태스크들 또는 다른 데이터 처리 태스크들의 다른 또는 추가적인 어떤 조합들이든지 수행될 수 있다. 태스크들을 동시에 수행하는 능력은 상기 멀티태스크 융합 신경망 아키텍처에 의해 수행되는 상기 태스크들의 속도를 크게 높일 수 있다.
또한, 상기 멀티태스크 융합 신경망 아키텍처는, 상이한 태스크들을 수행하는 복수의 컨볼루션 신경망 계층들에 의해 생성되는 초기 결과들을 조합할 수 있는, 후단 융합 계층(back-end fusion layer)을 지원한다. 이는 상기 멀티태스크 융합 신경망 아키텍처가, 개별 태스크들을 더 보완하기 위해, 상기 신경망 아키텍처의 상이한 태스크별 분기들(task-specific branches)로부터의 출력들을 융합할 수 있도록 한다. 본 개시에서 알 수 있는 바와 같이, 상이한 태스크들은 종종 서로 고도로 결합되거나 또는 달리 관련되어 있다. 예를 들면, 깊이 맵(이는 장면의 이미지 내 각 픽셀의 깊이를 식별함)을 생성하는 것은, 시맨틱 세그먼트화 마스크(semantic segmentation mask)(이는 장면에서의 특정 객체와 관련된 이미지에서 상이한 픽셀들 또는 경계들을 식별함)를 생성하는 경우 이용될 수 있는, 강력한 단서들(clues)을 제공할 수 있으며, 그 반대도 마찬가지다. 깊이 맵들 및 세그먼트화 마스크들을 개별적으로(separately) 생성하는 컨볼루션 신경망들은 이러한 종류의 태스크 상호-관계적 지식(task inter-relationship knowledge)을 이용할 수 없다. 본 개시의 상기 멀티태스크 융합 신경망 아키텍처는 이러한 종류의 지식을 이용할 수 있고 정보 융합을 지원할 수 있다. 이는, 예를 들면, 깊이 맵들 및 세그먼트화 마스크들의 정확도를 증가시킴으로써, 상기 멀티태스크 융합 신경망 아키텍처에서 수행되는 상기 개별 태스크들에 의해 획득되는 결과들의 품질을 높이는 데 도움이 된다.
상기 멀티태스크 융합 신경망 아키텍처에 관한 추가적인 세부 사항들은 하기에서 제공된다. 본 명세서에서 상기 멀티태스크 융합 신경망 아키텍처는 종종 특정 이미지 처리 태스크들을 수행하는 데 이용되는 것으로 설명되지만, 본 개시에서 제공되는 상기 멀티태스크 융합 신경망 아키텍처는 이러한 특정 이미지 처리 태스크들과 함께 이용하는 것 또는 일반적으로 이미지 처리와 함께 이용하는 것에 제한되지 않는다는 것에 유의해야 한다. 오히려, 상기 멀티태스크 융합 신경망 아키텍처는, 공통 전단 특징 추출기(common front-end feature extractor) 및 공통 후단 융합 계층(common back-end fusion 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)는, 후술하는 바와 같이, 데이터를 이용하여 복수의 태스크들을 수행하기 위해 멀티태스크 융합 신경망 아키텍처를 이용하여 상기 데이터를 처리한다. 특정 실시예들에서, 프로세서(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)는, 후술하는 바와 같이 데이터를 이용하여 복수의 태스크들을 수행하기 위해, 멀티태스크 융합 신경망 아키텍처를 이용하여 상기 데이터를 처리한다. 특정 실시예들에서, 서버(106)는, 이미지 데이터를 이용하여 복수의 태스크들을 수행하고 장면들의 이미지들을 생성하기 위해, 멀티태스크 융합 신경망 아키텍처를 이용하여 상기 이미지 데이터를 처리한다.
도 1은 전자 장치(101)를 포함하는 네트워크 구성(100)의 일 예를 도시하고 있지만, 도 1에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 네트워크 구성(100)은 각 구성요소를 어떤 개수로 어떤 적절한 배치로도 포함할 수 있다. 일반적으로, 컴퓨팅 및 통신 시스템들은 매우 다양한 구성으로 구현되며, 도 1은 본 개시의 범위를 어떤 특정한 구성에도 제한하지 않는다. 또한, 도 1은 본 특허 문서에 개시된 다양한 특징들이 이용될 수 있는 하나의 동작 환경을 도시하고 있지만, 이러한 특징들은 다른 어떤 적절한 시스템에서도 이용될 수 있다.
도 2는, 본 개시에 따른, 예시적인 멀티태크스 융합 신경망 아키텍처(200)를 도시한다. 설명의 용이성을 위해, 도 2의 멀티태크스 융합 신경망 아키텍처(200)는 도 1의 네트워크 구성(100)에서 전자 장치(101) 또는 서버(106)를 이용하여 구현되는 것으로 설명된다. 그러나, 도 2의 멀티태크스 융합 신경망 아키텍처(200)는 다른 어떤 적절한 장치(들) 및 다른 어떤 적절한 시스템(들)에서도 이용될 수 있다. 또한, 도 2의 멀티태크스 융합 신경망 아키텍처(200)는 특정 이미지 처리 관련 태스크들을 수행하는 데 이용되는 것으로 설명된다. 그러나, 도 2의 멀티태크스 융합 신경망 아키텍처(200)는, 비-이미지 처리 태스크들을 포함하여, 다른 어떤 적절한 태스크들을 수행하는 데 이용될 수 있다.
도 2에 도시한 바와 같이, 멀티태크스 융합 신경망 아키텍처(200)는, 본 예에서 하나 이상의 이미지들(202)을 포함하는, 입력 데이터를 수신 및 처리하도록 구성된다. 하나 이상의 이미지들(202)은, 전자 장치(101)의 하나 이상의 카메라들(하나 이상의 센서들(180))로부터 수신되는 경우와 같이, 어떤 적절한 소스(들)로부터 수신될 수 있다. 멀티태크스 융합 신경망 아키텍처(200)는 본 명세서에서 일반적으로 이미지(들)(202)를 처리하고 다양한 출력들을 생성하도록 동작한다. 본 예에서, 상기 출력들은 적어도 하나의 디스패리티/깊이 맵(204a), 적어도 하나의 세그먼트화 마스크(204b), 적어도 하나의 보케(Bokeh) 이미지(204c), 및 적어도 하나의 HDR 이미지(204d)를 포함한다. 각각의 디스패리티/깊이 맵(204a)은 일반적으로 한 쌍의 이미지들(202) 간의 겉보기 픽셀 차이(디스패리티를 위한 것) 또는 모션(apparent pixel differences or motion) 또는 하나 이상의 이미지들(202)에서 픽셀들의 겉보기 깊이(apparent depth)(깊이를 위한 것)를 나타낸다. 모션이 없는 경우, 두 개의 상이한 이미지들(202)에서 동일 포인트 간의 디스패리티는 깊이에 반비례하며, 따라서 디스패리티 맵은 깊이 맵을 계산할 때 이용될 수 있다(또는 그 반대도 마찬가지이다). 각각의 세그먼트화 마스크(204b)는 일반적으로 장면에서 특정 객체와 관련된 이미지(202)에서의 픽셀들 또는 경계들(boundaries)을 나타낸다. 각각의 보케 이미지(204c)는 일반적으로 이미지의 배경이 디지털적으로 블러링된(blurred) 이미지를 나타낸다. 각각의 HDR 이미지(204d)는 일반적으로 복수의 입력 이미지들(202)을 조합하여 생성되는 이미지를 나타내며, 여기서 상기 조합된 이미지의 동적 범위(dynamic range)는 개별 입력 이미지들(202)의 개별 동적 범위들보다 크다.
멀티태크스 융합 신경망 아키텍처(200)는, 일반적으로 이미지(들)(202)을 처리하고 각각의 이미지(202)로부터 다양한 특징들을 추출하도록 동작하는, 융합 전단 특징 추출기(fused front-end feature extract)(206)를 포함한다. 이미지(202)에서 식별된 특징들은 이미지(202)의 하나 이상의 특성들(characteristics)을 나타낼 수 있다. 상기 추출된 특징들은, 특정한 형태들, 에지들(edges), 코너들(corners), 블롭들(blobs), 정션들(junctions), 리지들(ridges), 커브들(curves), 및 텍스처들(textures)과 같은, 특성들을 포함할 수 있다. 융합 전단 특징 추출기(206)는 여러 가지 방식으로 구현될 수 있다. 예를 들면, 본 개시가 속하는 기술분야에서 다양한 특징 추출기들이 알려져 있으며, 추가적인 특징 추출기들이 향후 개발될 것이 틀림없다. 본 명세서에서 융합 전단 특징 추출기(206)로 이용될 수 있는 일부 구현예들에는 알렉스넷(AlexNet), VGG, 인셉션넷(InceptionNet), 레지듀얼넷(ResidualNet), 유넷(UNet), 모바일넷(MobileNet), 덴스넷(DenseNet), 셔플넷(ShuffleNet), 및 스퀴즈넷(SqueezeNet)이 포함된다. 그러나, 멀티태크스 융합 신경망 아키텍처(200)는 어떤 특정 유형의 전단 특징 추출기들과 함께 사용하는 것에 제한되지 않는다.
일부 실시예들에서, 융합 전단 특징 추출기(206)는 특징 추출 기능을 구현하는 다양한 신경망 동작 계층들(neural network operational layers)(예를 들면, 컨볼루션(convolutional) 및 풀링(pooling) 계층들)을 포함한다. 컨볼루션 계층은 일반적으로, 시각 자극에 대한 개별 뉴런들(neurons)의 반응을 에뮬레이션하는(emulates) 컨볼루션 연산(convolution operation)을 적용하는, 컨볼루션 뉴런들의 계층을 나타낸다. 각각의 뉴런은 전형적으로, 출력값들을 생성하기 위해, 입력값들에 어떤 함수(function)를 적용한다(종종 상이한 입력값들에 대해 상이하게 가중치를 부여함으로써). 컨볼루션 계층은, 상기 컨볼루션 계층의 최종 출력들을 생성하기 위해 상기 뉴런들로부터의 출력값들에 특정 함수(function) 또는 연산(operation)을 적용할 수 있는, 활성화 함수(activation function)와 연관될 수 있다. 풀링 계층은 일반적으로 하나의 컨볼루션 계층으로부터의 출력들을 다음 계층(next layer)에 대한 입력들로 조합하는 계층을 나타낸다. 예를 들면, 최대 풀링(maximum pooling)을 이용하는 풀링 계층은 다음 계층으로의 입력을 위해 이전 계층(prior layer)에서의 클러스터들(clusters)로부터의 최대 출력들을 식별하며, 평균 풀링(average pooling)을 이용하는 풀링 계층은 다음 계층으로의 입력을 위해 이전 계층에서의 클러스터들로부터의 출력들의 평균들을 식별한다. 융합 전단 특징 추출기(206)의 하나의 구현예가 하기에서 설명되는 도 3에 도시되어 있다.
상술한 바와 같이, 동일한 융합 전단 특징 추출기(206)가 멀티태스크 융합 신경망 아키텍처(200)에서 복수의 이미지 처리 태스크들 또는 다른 데이터 처리 태스크들과 함께 이용된다. 이 때문에, 융합 전단 특징 추출기(206)에서의 동일한 가중치들이 멀티태스크 융합 신경망 아키텍처(200)에서 수행될 처리 태스크들 모두와 함께 이용된다. 이러한 가중치들을 이용하도록 융합 전단 특징 추출기(206)를 훈련시키기 위해, 적절한 훈련 이미지들 또는 다른 훈련 데이터가 훈련 시 융합 전단 특징 추출기(206)에 제공될 수 있다. 일부 실시예들에서, 통합 합성 데이터 엔진(unified synthetic data engine) 또는 다른 소스(들)가, 알려진 특징들을 갖는, 컴퓨터-생성 훈련 이미지들 또는 다른 훈련 데이터를 융합 전단 특징 추출기(206)에 제공하는 데 이용될 수 있다. 이는 이미지들 또는 다른 입력 데이터에서 여러 다양한 특징들을 식별하도록 융합 전단 특징 추출기(206)를 훈련시키는 데 도움이 될 수 있다. 그러나, 융합 전단 특징 추출기(206)는 다른 어떤 적절한 방식으로도 훈련될 수 있다는 것에 유의해야 한다.
융합 전단 특징 추출기(206)에 의해 식별된 상기 추출된 특징들은, 멀티태스크 융합 신경망 아키텍처(200)에서 수행되는 다양한 태스크들을 지원하기 위해 상기 추출된 특징들을 다양한 방식으로 처리할 수 있는, 복수의 전처리 분기들(pre-processing branches)(208a-208d)에게 제공된다. 본 예에서는, 4개의 상이한 이미지 처리 태스크들을 지원하기 위해 상이한 동작들을 수행하는, 4개의 전처리 분기들(208a-208d)이 있다. 보다 구체적으로, 전처리 분기(208a)는 디스패리티/깊이 맵들의 생성을 지원하기 위한 동작들을 수행하는 데 이용되고, 전처리 분기(208b)는 세그먼트화 마스크들의 생성을 지원하기 위한 동작들을 수행하는 데 이용되고, 전처리 분기(208c)는 보케 이미지들의 생성을 지원하기 위한 동작들을 수행하는 데 이용되고, 전처리 분기(208d)는 HDR 이미지들의 생성을 지원하기 위한 동작들을 수행하는 데 이용된다. 본 예에서 4개의 전처리 분기들(208a-208d)이 도시되어 있지만, 멀티태크스 융합 신경망 아키텍처(200)는 다른 실시예들에서 2개 이상의 전처리 분기들을 포함할 수 있다는 것에 유의해야 한다. 또한, 이미지 처리 태스크들과 관련되어 있지만, 전처리 분기들(208a-208d)은 다른 태스크들을 수행하는 데 이용될 수 있다는 것에 유의해야 한다.
전처리 분기들(208a-208d)은, 융합 전단 특징 추출기(206)로부터 추출된 특징들을 처리하고 전처리 분기들(208a-208d) 각각의 태스크별 기능들(task-specific functions)과 관련된 개략적(coarse) 출력들 또는 다른 초기 태스크 출력들을 생성하는, 컨볼루션 신경망 계층들 또는 다른 기계 학습 계층들의 상이한 집합들(collections) 또는 세트들(sets)을 나타낸다. 예를 들면, 전처리 분기(208a)는 하나 이상의 이미지들(202)에 대한 디스패리티 또는 깊이 맵의 초기 추정치들(initial estimates)을 생성 및 출력할 수 있고, 전처리 분기(208b)는 이미지(202)의 세그먼트화 마스크의 초기 추정치들을 생성 및 출력할 수 있다. 또한, 전처리 분기(208c)는 블러링된 배경을 갖는 초기 이미지를 생성 및 출력할 수 있고, 전처리 분기(208d)는 보다 높은 동적 범위를 갖는 초기 이미지를 생성 및 출력할 수 있다. 전처리 분기들(208a-208d)을 형성하는 컨볼루션 신경망 계층들은, 전형적으로, 추출된 특징들을 상이하게 처리하고 상기 컨볼루션 신경망 계층들 각각의 태스크들에 적절한 훈련 데이터를 이용하여 그들 각각의 태스크들에 대해 상이한 출력들을 생성하도록 훈련된다.
전처리 분기들(208a-208d)로부터의 초기 출력들은, 추가적인 공동 처리(joint processing)를 위해 전처리 분기들(208a-208d) 중 적어도 일부로부터의 상기 초기 출력들을 서로 융합 또는 조합하는, 후단 융합 계층(back-end fusion layer)(210)에 제공된다. 예를 들면, 후단 융합 계층(210)은 전처리 분기들(208a-208d) 중 상이한 것들로부터의 초기 출력들을 서로 결합하고(concatenate) 추가적 처리를 위해 상기 결합된 출력들을 출력할 수 있다. 구현예에 따라, 후단 융합 계층(210)은 전처리 분기들(208a-208d)의 어떤 적절한 조합(들)으로부터의 초기 출력들을 서로 결합하거나(concatenate) 또는 달리 조합할 수 있다.
일 예로, 깊이 맵을 생성하는 것은 시맨틱 세그먼트화 마스크(semantic segmentation mask)를 생성하는 경우 이용될 수 있는 강력한 단서들을 제공할 수 있다(또한 그 반대도 마찬가지이다). 따라서, 후단 융합 계층(210)은 공동 처리를 위해 전처리 분기들(208a-208b)로부터의 초기 출력들을 결합하거나(concatenate) 또는 달리 조합할 수 있다. 다른 예로서, 효과적인 보케 이미지들(204c)을 생성하는 것은 이미지들(202)의 배경 부분들을 효과적으로 식별하는 것에 의존할 수 있으며(이는 검출된 깊이들에 의존할 수 있음), 따라서 후단 융합 계층(210)은 공동 처리를 위해 전처리 분기들(208b 및 208c)로부터의 초기 출력들을 결합하거나(concatenate) 또는 달리 조합할 수 있다. 또 다른 예로서, HDR 이미지들(204d)을 생성하는 것은 모션이 발생하는 이미지들(202)의 부분들을 효과적으로 식별하는 것에 의존할 수 있다(이에 따라 하나의 이미지의 모션 부분은 블렌딩 없이 이용될 수 있는 반면 이미지들(202)의 다른 부분들은 블렌딩될 수 있다). 여기서, 후단 융합 계층(210)은 공동 처리를 위해 전처리 분기들(208a 및 208d)로부터의 초기 출력들을 결합하거나(concatenate) 또는 달리 조합할 수 있다.
전처리 분기들(208a-208d)로부터의 초기 출력들의 이러한 특정 조합들은 단지 예일뿐이라는 것에 유의해야 한다. 일반적으로, 적어도 하나의 전처리 분기로부터의 정보가 적어도 하나의 다른 전처리 분기로부터의 정보와 함께 후속 처리에서 이용될 수 있도록 하기 위해, 전처리 분기들(208a-208d)로부터의 초기 출력들은 어떤 적절한 조합 또는 조합들로도 조합될 수 있다(각각의 조합은 전처리 분기들(208a-208d) 중 둘 이상으로부터의 출력들을 포함함). 후단 융합 계층(210)의 하나의 구현예가 하기에서 설명되는 도 4에 도시되어 있다.
후단 융합 계층(210)으로부터의 다양한 초기 출력들 및 조합된 초기 출력들이 복수의 후처리 분기들(212a-212d)에게 제공된다. 후처리 분기들(212a-212d)은 멀티태스크 융합 신경망 아키텍처(200)에서 수행되는 다양한 태스크들을 완료하기 위해 상기 초기 출력들 및 조합된 초기 출력들을 처리하고 다양한 출력들(204a-204d)을 생성한다. 본 예에서는, 4개의 상이한 출력들(204a-204d)을 생성하기 위해 상이한 동작들을 수행하는, 4개의 후처리 분기들(212a-212d)이 있다. 보다 구체적으로, 후처리 분기(212a)는 디스패리티/깊이 맵들(204a)을 생성하기 위한 동작들을 수행하고, 후처리 분기(212b)는 세그먼트화 맵들(204b)을 생성하기 위한 동작들을 수행하고, 후처리 분기(212c)는 보케 이미지들(204c)을 생성하기 위한 동작들을 수행하고, 후처리 분기(212d)는 HDR 이미지들(204d)을 생성하기 위한 동작들을 수행한다. 다시, 본 예에서 4개의 후처리 분기들(212a-212d)이 도시되어 있지만, 멀티태스크 융합 신경망 아키텍처(200)는 다른 실시예들에서 2개 이상의 후처리 분기들을 포함할 수 있다는 것에 유의해야 한다. 또한, 이미지 처리 태스크들과 관련되어 있지만, 후처리 분기들(212a-212d)은 다른 태스크들을 수행하는 데 이용될 수 있다는 것에 유의해야 한다.
후처리 분기들(212a-212d)은, 이들 각각의 태스크별 기능들과 관련된 최종 출력들(204a-204d)을 생성하기 위해 초기 출력들 및/또는 조합된 초기 출력들을 처리하는, 컨볼루션 신경망 계층들 또는 다른 기계 학습 계층들을 나타낸다. 후처리 분기들(212a-212d)을 형성하는 컨볼루션 신경망 계층들은, 전형적으로, 초기 출력들 및/또는 조합된 초기 출력들을 처리하고 상기 컨볼루션 신경망 계층들 각각의 태스크들에 적절한 훈련 데이터를 이용하여 그들 각각의 태스크들에 대해 상이한 출력들을 생성하도록 훈련된다.
본 명세서에서 후단 융합 계층(210)의 이용을 통해, 후처리 분기(212a-212d)는 그 자신의 대응되는 전처리 분기(208a-208d)로부터의 초기 출력들 및 적어도 하나의 다른 전처리 분기(208a-208d)로부터의 초기 출력들을 수신할 수 있다. 따라서, 예를 들면, 후처리 분기(212a) 및 후처리 분기(212b) 각각은, 전처리 분기들(208a 및 208b)로부터, 결합된(concatenated) 또는 달리 조합된 초기 출력들을 수신할 수 있다. 다른 예로서, 후처리 분기(212c)는, 전처리 분기들(208a 및 208c)로부터, 결합된(concatenated) 또는 달리 조합된 초기 출력들을 수신할 수 있다. 또 다른 예로서, 후처리 분기(212d)는, 전처리 분기들(208b 및 208d)로부터, 결합된(concatenated) 또는 달리 조합된 초기 출력들을 수신할 수 있다. 다시, 하나 이상의 후처리 분기들(212a-212d)에 의한 이용을 위해 상이한 전처리 분기들(208a-208b)로부터의 초기 출력들을 융합하는 능력은 여러 가지 방식으로 달라질 수 있으며, 상기 예들은 단지 이것이 본 특정 예에서 어떻게 수행될 수 있는지 예시하기 위한 것일 뿐이다.
본 명세서에서 각각의 개별 후처리 분기(212a-212d)는 오직 하나의 전처리 분기(208a-208d)로부터의 초기 출력들 또는 복수의 전처리 분기들(208a-208d)로부터의 조합된 초기 출력들을 수신할 수 있다는 것에 유의해야 한다. 모든 단일 후처리 분기(212a-212d)가 복수의 전처리 분기들(208a-208d)로부터 융합된 초기 출력들을 수신할 필요는 없지만, 일부 구현예들에서는 그럴 수도 있다. 후처리 분기(212a-212d)가 오직 하나의 전처리 분기(208a-208d)로부터 초기 출력들을 수신하는 경우, 상기 초기 출력들은 후처리 분기(212a-212d)에 의해 전처리 분기(208a-208d)로부터 직접 수신되거나 또는 간접적으로, 예를 들면, 후단 융합 계층(210)을 통해, 수신될 수 있다. 따라서, 본 명세서에서 볼 수 있는 바와 같이, 멀티태스크 융합 신경망 아키텍처(200)는 고도의 맞춤화가 가능하며(customizable) 다양한 방식으로 구성될 수 있다.
전형적인 컨볼루션 신경망에서, 연관된 특징 추출기는 전형적으로 상기 컨볼루션 신경망의 복잡도의 대부분을 차지한다. 예를 들면, 일부 경우에, 특징 추출기는 컨볼루션 신경망에 대한 전체 복잡도의 대략 80%를 차지할 수 있으며, 상기 컨볼루션 신경망의 나머지 동작들은 상기 컨볼루션 신경망의 전체 복잡도의 대략 20%를 차지할 수 있다. 상이한 태스크들을 수행하기 위해 별개의 컨볼루션 신경망들을 이용하는 것은, 전형적으로, 수행되는 태스크의 수(그리고 이에 따라 이용되는 컨볼루션 신경망의 수)에 대해 복잡도가 초선형적으로(super-linear) 증가하는 결과를 초래한다. 또한, 상기 컨볼루션 신경망들은 분리되며, 하나의 컨볼루션 신경망이 다른 어떤 컨볼루션 신경망들로부터의 초기 출력들도 이용할 수는 없다. 또한, 상기 컨볼루션 신경망들은 종종 완전히 상이한 소스들로부터 수집된 훈련 데이터를 이용하여 훈련되며, 상기 훈련 데이터의 사양(specification) 및 품질에는 큰 차이(variations)가 있다. 따라서 상기 컨볼루션 신경망들의 상기 특징 추출기들에서 이용되는 가중치들을 통합하는 것이 불가능하다.
멀티태스크 융합 신경망 아키텍처(200)는 이러한 유형의 문제들을 극복한다. 복수의 태스크들에 대해 공통 융합 전단 특징 추출기(206)를 이용함으로써, 멀티태스크 융합 신경망 아키텍처(200)는 복잡도를 크게 감소시킬 수 있다. 일부 예들에서, 예를 들면, 복잡도는 3개-태스크의 멀티태스크 융합 신경망 아키텍처(200)에 대해 약 1.42배, 4개-태스크의 멀티태스크 융합 신경망 아키텍처(200)에 대해 약 1.60배, 및 5개-태스크의 멀티태스크 융합 신경망 아키텍처(200)에 대해 약 1.72배로 감소될 수 있다(그러나 이 값들은 단지 예시를 위한 것일 뿐이며 특정 태스크들을 수반하는 특정 구현예들에 관한 것이다). 또한, 후단 융합 계층(210)의 이용은 상이한 태스크들에 대한 상기 컨볼루션 신경망 계층들의 동작들을 결합 또는 연결하는 데 도움이 되며, 특정 태스크들의 컨볼루션 신경망 계층들이 다른 태스크들의 컨볼루션 신경망 계층들로부터의 초기 출력들을 이용할 수 있도록 한다. 이는 결과적으로 상기 개별 태스크들의 품질 또는 동작을 향상시킬 수 있다. 또한, 공통 융합 전단 특징 추출기(206)는, 잘 정의될 수 있고 모든 태스크들에 대해 상기 특징 추출기 가중치들을 통합하는 데 도움이 되는, 모든 태스크들에 대한 훈련 데이터의 공통 세트를 이용하여 훈련될 수 있다.
도 2는 멀티태스크 융합 신경망 아키텍처(200)의 일 예를 도시하고 있지만, 도 2에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 멀티태스크 융합 신경망 아키텍처(200)는 둘 이상의 전처리 분기들 및 둘 이상의 후처리 분기들을 포함할 수 있다. 또한, 상기 전처리 분기들 및 상기 후처리 분기들을 이용하여 수행되는 태스크들은 이미지 처리를 포함할 수 있거나 또는 포함하지 않을 수 있다.
도 3은, 본 개시에 따른, 멀티태크스 융합 신경망 아키텍처(200)에서의 예시적인 융합 전단 특징 추출기(206)를 도시한다. 상술한 바와 같이, 융합 전단 특징 추출기(206)는, 멀티태크스 융합 신경망 아키텍처(200)의 다양한 태스크들에 의한 추가적 처리를 위해, 입력 이미지들(202) 또는 다른 입력 데이터로부터 특징들을 식별/추출하는 데 이용된다. 여기에 도시된 융합 전단 특징 추출기(206)는 어떤 적절한 입력 데이터라도 처리하는 데 이용될 수 있으며 이미지 데이터를 처리하는 것에 제한되지 않는다는 것에 유의해야 한다.
도 3에 도시한 바와 같이, 융합 전단 특징 추출기(206)는 특징 추출 기능을 구현하는 다양한 신경망 동작 계층들(302-316)을 포함한다. 여기서, 상기 특징 추출 기능은, 입력 데이터 내의 특징들을 식별하는, 특징 맵들을 생성하도록 상기 입력 데이터를 처리함으로써 제공된다. 이는 상기 입력 데이터를 이용하여 생성되는 결과적인 특징 맵의 깊이를 점차 증가시키면서 처리되는 상기 입력 데이터의 공간 해상도(spatial resolution)를 점차 감소시킴으로써 달성된다. 본 특정 예에서, 여러 개의 컨볼루션 계층들 및 풀링 계층들이 이 기능을 수행하는 데 이용된다.
도 3에 도시한 예에서, 컨볼루션 계층(302)은 상기 초기 입력 데이터를 수신하고 상기 입력 데이터에 컨볼루션 연산(convolution operation)을 적용한다. 일부 실시예들에서, 컨볼루션 계층(302)은 3
Figure pat00001
3 커널 크기를 이용하여 동작하는 224
Figure pat00002
224
Figure pat00003
64 컨볼루션 계층을 나타낸다. 풀링 계층(304)은, 예를 들면, 최대 풀링을 이용하여, 컨볼루션 계층(302)의 출력들을 수신 및 조합한다. 컨볼루션 계층(306)은 풀링 계층(304)의 출력들을 수신하고 해당 데이터에 컨볼루션 연산을 적용한다. 일부 실시예들에서, 컨볼루션 계층(306)은 3
Figure pat00004
3 커널 크기를 이용하여 동작하는 112
Figure pat00005
112
Figure pat00006
128 컨볼루션 계층을 나타낸다. 풀링 계층(308)은, 예를 들면, 최대 풀링을 이용하여, 컨볼루션 계층(306)의 출력들을 수신 및 조합한다. 컨볼루션 계층(310)은 풀링 계층(308)의 출력들을 수신하고 해당 데이터에 컨볼루션 연산을 적용한다. 일부 실시예들에서, 컨볼루션 계층(310)은 3
Figure pat00007
3 커널 크기를 이용하여 동작하는 56
Figure pat00008
56
Figure pat00009
256 컨볼루션 계층을 나타낸다. 풀링 계층(312)은, 예를 들면, 최대 풀링을 이용하여, 컨볼루션 계층(310)의 출력들을 수신 및 조합한다. 컨볼루션 계층(314)은 풀링 계층(312)의 출력들을 수신하고 해당 데이터에 컨볼루션 연산을 적용한다. 일부 실시예들에서, 컨볼루션 계층(314)은 3
Figure pat00010
3 커널 크기를 이용하여 동작하는 28
Figure pat00011
28
Figure pat00012
512 컨볼루션 계층을 나타낸다. 풀링 계층(316)은, 예를 들면, 최대 풀링을 이용하여, 컨볼루션 계층(314)의 출력들을 수신 및 조합한다.
풀링 계층(316)의 출력들은, 예를 들면, 28
Figure pat00013
28
Figure pat00014
512 특징 공간에서, 상기 원본 입력 데이터의 상기 식별된 특징들을 나타낸다. 여기서, 융합 전단 특징 추출기(206)는 처리되는 상기 데이터의 공간 해상도를 순차적으로 감소시키고 생성되는 상기 특징 맵의 깊이를 증가시킨다는 것을 알 수 있다. 여기서 컨볼루션 계층들(302, 306, 310, 314) 각각은 일반적으로 가중치들(커널들로 표시됨)의 세트를 그들 각각의 입력들과 곱함으로써 동작한다. 멀티태스크 융합 신경망 아키텍처(200)의 맥락에서, 융합 전단 특징 추출기(206)가, 전처리 분기들(208a-208d) 및 후처리 분기들(212a-212d)을 이용하여 구현되는, 복수의 이미지 처리 태스크들 또는 다른 데이터 처리 태스크들과 함께 이용된다고 하더라도, 컨볼루션 계층들(302, 306, 310, 314)은 이미지들(202) 또는 다른 입력 데이터를 처리하기 위해 동일한 가중치들을 이용할 수 있다. 컨볼루션 계층들(302, 306, 310, 314)에서 이용되는 상기 가중치들은 훈련 시 설정되며, 상기 훈련은 상술한 바와 같이 알려진 특징들을 갖는 훈련 이미지들 또는 다른 훈련 데이터를 융합 전단 특징 추출기(206)에 제공하는 단계 및 그러한 알려진 특징들을 제대로 식별하도록 융합 전단 특징 추출기(206)를 훈련시키는 단계를 포함할 수 있다.
도 3은 멀티태스크 융합 신경망 아키텍처(200)에서의 융합 전단 특징 추출기(206)의 일 예를 도시하고 있지만, 도 3에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 융합 전단 특징 추출기(206)는, 필요에 따라 또는 원하는 바에 따라, 어떤 적절한 수의 컨볼루션 계층들, 풀링 계층들, 또는 다른 계층들이라도 포함할 수 있다. 또한, 멀티태스크 융합 신경망 아키텍처(200)에서 다른 어떤 적절한 특징 추출기라도 이용될 수 있다.
도 4는, 본 개시에 따른, 멀티태크스 융합 신경망 아키텍처(200)에서의 예시적 후단 융합 계층(210)을 도시한다. 상술한 바와 같이, 후단 융합 계층(210)은, 후처리 분기들(212a-212d) 중 적어도 하나에 대한 입력을 위해, 전처리 분기들(208a-208d) 중 적어도 일부로부터의 개략적(coarse) 출력들 또는 다른 초기 출력들을 조합하는 데 이용된다. 여기에 도시된 후단 융합 계층(210)은 어떤 적절한 입력 데이터와 함께라도 이용될 수 있으며 이미지 데이터와 함께 사용하는 것에 제한되지 않는다는 것을 유의해야 한다.
도 4에 도시한 바와 같이, 후단 융합 계층(210)은 전처리 분기들(208a-208d) 중 두 개로부터 초기 출력들(402 및 404)을 수신한다. 상술한 바와 같이, 초기 출력들(402 및 404)은 디스패리티/깊이 맵, 세그먼트화 마스크, 보케 이미지, 또는 HDR 이미지와 연관된 개략적 추정치들(coarse estimates) 또는 다른 초기 정보를 나타낼 수 있다. 따라서, 초기 출력들(402 및 404)은 멀티태스크 융합 신경망 아키텍처(200)에서 수행되는 두 개의 상이한 태스크들과 연관된다.
본 예에서의 후단 융합 계층(210)은, 초기 출력들(402 및 404)을 서로 결합하는, 결합 계층(concatenation layer)(406)을 이용하여 구현된다. 예를 들면, 초기 출력들(402 및 404)은 벡터들을 나타내며, 결합 계층(406)은 초기 출력들(402 및 404) 중 하나에 대한 벡터를 초기 출력들(402 및 404) 중 나머지 하나에 대한 벡터와 결합함으로써 초기 출력들(402 및 404)을 조합할 수 있다. 이는, 본 예에서 2-채널 출력들을 나타낸다고 할 수 있는(두 개의 태스크들로부터의 상기 초기 출력들이 조합되기 때문에), 조합된 초기 출력들(408)을 생성한다.
조합된 초기 출력들(408)은, 상이한 태스크들을 수행하기 위해 조합된 출력들(408)을 처리하는, 복수의 후처리 분기들(212a-212b)에게 제공된다. 본 예에서, 후처리 분기들(212a-212b) 각각은, 해당 후처리 분기(212a-212b)의 기능을 구현하는, 다양한 신경망 동작 계층들(410)을 포함하는 것으로 도시된다. 여기서는 도시되지 않았지만, 일부 경우에 다른 후처리 분기들(212c-212d) 및 전처리 분기들(208a-208d)은 동일 또는 유사한 방식으로 구현될 수 있다. 각각의 후처리 분기(212a-212b)에서의 동작 계층들(410)은 조합된 출력들(408)의 인코딩(encoding)을 지원하여 그들의 공간 해상도를 감소시킨 다음, 그 결과들을 디코딩(decoding)하여 그들의 공간 해상도를 증가시킨다. 이는 적절히 훈련된 컨볼루션, 디컨볼루션(deconvolutional), 풀링, 및 다른 신경망 동작 계층들(410)을 이용하여 달성될 수 있다. 특정 실시예들에서, 후처리 분기들(212a-212b) 각각은 경량의(lightweight) 유넷(UNet) 구조를 이용하여 구현될 수 있지만, 다른 기계 학습 구조들도 또한 이용될 수 있다.
본 예에서, 후처리 분기들(212a-212b) 각각은, 멀티태스크 융합 신경망 아키텍처(200)에서 상이한 태스크들을 수행하기 위해, 조합된 출력들(408)을 인코딩 및 디코딩한다(예를 들면, 컨볼루션, 디컨볼루션, 및 풀링 계층들을 이용하여). 따라서, 예를 들면, 후처리 분기들(212a-212b)의 다양한 동작 계층들(410)에서 이용되는 가중치들은 상기 상이한 태스크들을 지원하기 위해 서로 다를 수 있다. 또한, 후처리 분기들(212a-212b)에서 상이한 계층들(410) 간에 정보를 전파하기 위해, 피드포워드 링크들(feedforward links)(412)이 후처리 분기들(212a-212b)에서 이용될 수 있다. 일부 실시예들에서, 하나 이상의 피드포워드 링크들(412)이 후처리 분기들(212a-212b) 중 하나 이상에서 비인접(non-adjacent) 계층들(410) 간에 정보를 전파하는 데 이용될 수 있다.
동작 계층들(410)의 각각의 집합(collection)에 의해 생성된 출력들(414)은 "잔차들(residuals)"로 지칭될 수 있으며, 동작 계층들(410)의 해당 집합을 이용하여 처리되는 초기 출력들(402 또는 404)에 대한 정제 결과들(refinements)을 나타낸다. 조합 함수들(combination functions)(416)은, 두 개의 후처리 분기들(212a-212b)에 대한 최종 출력들(418 및 420)을 생성하기 위해, 잔차 출력들(414) 및 원본 초기 출력들(402 및 404)을 조합한다.
후처리 분기들(212a-212b) 각각은, 상이한 태스크들에 대한 조합된 초기 출력들(402 및 404)을 나타내는, 조합된 출력들(408)을 수신하기 때문에, 후처리 분기들(212a-212b)(이들 각각은 상이한 태스크와 연관됨)은 처리되는 복수의 태스크들과 연관된 상기 초기 결과들을 고려하여 각각 동작할 수 있다. 이는 후처리 분기들(212a-212b) 각각에 의해 생성된 상기 정제 결과들(refinements)이 멀티태스크 융합 신경망 아키텍처(200)에서 수행되는 복수의 태스크들과 연관된 정보에 기반하도록 할 수 있다. 상술한 바와 같이, 이는 태스크들의 다양한 조합들에 유용할 수 있으며 그러한 태스크들에 의해 생성되는 결과들의 품질을 향상시키는 데 도움이 될 수 있다. 예를 들면, 깊이 맵들은 보다 정확한 세그먼트화 마스크들을 생성하는 데 이용될 수 있다(또는 그 반대도 마찬가지이다).
도 4는 멀티태스크 융합 신경망 아키텍처(200)에서의 후단 융합 계층(210)의 일 예를 도시하고 있지만, 도 4에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 후단 융합 계층(210)은 두 개 초과의 전처리 분기들(208a-208d)로부터의 초기 출력들을 융합하거나 또는 달리 조합할 수 있다. 또한, 후단 융합 계층(210)은 조합된 출력들(408)을 두 개 초과의 후처리 분기들(212a-212d)에게 제공할 수 있다. 나아가, 조합되는 상기 초기 출력들 및 상기 조합된 출력들을 수신하는 상기 후처리 분기들은 멀티태스크 융합 신경망 아키텍처(200)에서 수행되는 특정 태스크들에 따라 달라질 수 있다. 또한, 후처리 분기들(212a-212d)은 도 4에 도시한 바와 같이 구현되거나 또는 구현되지 않을 수 있으며, 상이한 후처리 분기들(212a-212d)은 상이한 구조들을 이용하여 구현될 수 있다(전처리 분기들(208a-208d)과 마찬가지로).
도 5a, 도 5b, 도 5c, 도 5d는, 본 개시에 따른, 예시적 입력 이미지 및, 멀티태스크 융합 신경망 아키텍처(200)를 이용하여 획득될 수 있는, 예시적 처리 결과들을 도시한다. 본 특정 예에서, 멀티태스크 융합 신경망 아키텍처(200)는 이미지 데이터를 처리하고, 깊이 맵들 및 세그먼트화 마스크들의 생성 시, 깊이 및 세그먼트화 둘 모두를 공동으로 고려하는 데 이용된다. 그러나, 멀티태스크 융합 신경망 아키텍처(200)는, 이미지 처리와 관련이 있든 없든, 다른 어떤 적절한 태스크들이라도 수행하는 데 이용될 수 있다.
도 5a에서, 입력 이미지(502)는 멀티태스크 융합 신경망 아키텍처(200)에 의해 수신되고 처리된다. 본 예에서, 이미지(502)는 전경(foreground)에 사람이 있는 이미지를 나타내고 있지만, 상기 사람의 얼굴은 프라이버시를 위해 가려져 있다. 여기서 상기 사람의 셔츠는 자동화된 깊이 결정을 어렵게 만들 수 있는 특정 텍스처(texture) 또는 기타 패턴을 포함한다. 도 5b에서, 초기 출력(504)은 전처리 분기(208a)의 출력을 나타내며 입력 이미지(502)와 연관된 초기 깊이 맵을 포함한다. 도 5c에서, 초기 출력(506)은 전처리 분기(208b)의 출력을 나타내며 입력 이미지(502)와 연관된 초기 세그먼트화 마스크를 포함한다. 도 5b 및 도 5c에서 볼 수 있는 바와 같이, 세그먼트화 마스크(출력(506))는 이미지(502)로부터 상기 사람의 경계들을 정확히 식별하는 것으로 보인다. 그러나, 초기 깊이 맵(출력(504))은 상기 사람의 셔츠의 텍스처 또는 기타 패턴으로 인해 상기 사람과 연관된 픽셀들의 깊이들을 정확히 식별하지 못한다. 도 5b의 상기 깊이 맵이 추가적인 기능들을 수행하는 데 이용되는 경우, 아티팩트들(artifacts) 또는 기타 영상화 오류들(imaging errors)이 초래될 수 있다.
도 5d에서, 후처리 분기(212a)의 최종 출력(508)이 도시되어 있는데, 여기서 최종 출력(508)은 입력 이미지(502)와 연관된 최종 깊이 맵을 포함한다. 도 5d에서 볼 수 있는 바와 같이, 최종 깊이 맵(출력(508))은, 상기 사람의 셔츠의 텍스처 또는 기타 패턴이 존재하는 상황에서도, 상기 사람과 연관된 픽셀들의 깊이들을 식별함에 있어 훨씬 더 정확하다. 이는 여기서의 후처리 분기(212a)가 상기 초기 깊이 맵 및 상기 초기 세그먼트화 마스크 둘 모두를 수신하고 상기 최종 깊이 맵 생성 시 이 둘 모두를 고려하기 때문이다. 결과적으로, 후처리 분기(212a)는, 상기 초기 세그먼트화 마스크에 기반하여, 상기 초기 깊이 맵이 상기 장면 내 동일 객체에 대해 상이한 깊이들을 부정확하게(incorrectly) 식별하고 있다고 결정할 수 있다. 이러한 지식을 이용하여, 후처리 분기(212a)는 보다 정확한 최종 깊이 맵을 생성할 수 있다.
도 5a, 도 5b, 도 5c 및 도 5d는 입력 이미지 및, 멀티태스크 융합 신경망 아키텍처(200)를 이용하여 획득될 수 있는, 처리 결과들의 예들을 도시하고 있지만, 이들 도면들에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 이들 도면들은 단지 본 개시에서 설명되는 접근법들을 이용하여 획득될 수 있는 결과들의 유형의 일 예를 예시하고자 한 것일 뿐이다. 명백히, 장면들의 이미지들은 매우 다양할 수 있으며, 본 특허 문서에서 설명되는 접근법들을 이용하여 획득되는 결과들도 상황에 따라 매우 다양할 수 있다. 또한, 본 특정 예는 초기 세그먼트화 마스크 결과들이 어떻게 최종 깊이 맵 결과들을 생성하는 데 이용될 수 있는지를 보여주고 있지만, 태스크들의 다른 적절한 조합들에 대한 초기 및 최종 결과들이 멀티태스크 융합 신경망 아키텍처(200)에서 이용될 수 있다.
도 6은, 본 개시에 따른, 멀티태스크 융합 신경망 아키텍처를 이용하는 예시적 방법(600)을 도시한다. 설명의 용이성을 위해, 도 6의 방법(600)은 도 1의 네트워크 구성(100)에서 도 2의 멀티태스크 융합 신경망 아키텍처(200)를 이용하는 것을 포함하는 것으로 설명된다. 그러나, 방법(600)은 본 개시에 따라 설계된 어떤 적절한 멀티태스크 융합 신경망 아키텍처를 이용하는 것을 포함할 수 있으며, 상기 멀티태스크 융합 신경망 아키텍처는 어떤 적절한 장치(들)과 함께 및 어떤 적절한 시스템(들)에서도 이용될 수 있다.
도 6에 도시한 바와 같이, 단계(602)에서, 처리될 입력 데이터가 수신된다. 이 단계는, 예를 들면, 멀티태스크 융합 신경망 아키텍처(200)가, 예를 들면, 하나 이상의 카메라들 또는 다른 영상화 센서들(180)로부터, 하나 이상의 입력 이미지들(202)을 수신하는 단계를 포함할 수 있다. 멀티태스크 융합 신경망 아키텍처(200)는 최종 사용자(end-user) 장치(예를 들면, 전자 장치(101, 102, 104))에 구현되어 해당 최종 사용자 장치에 의해 수집 또는 생성된 데이터를 처리할 수 있거나, 또는 멀티태스크 융합 신경망 아키텍처(200)는 하나의 장치(예를 들면, 서버(106))에 구현되어 다른 장치(예를 들면, 전자 장치(101, 102, 104))에 의해 수집 또는 생성된 데이터를 처리할 수 있다는 것에 유의해야 한다.
단계(604)에서, 상기 입력 데이터는 상기 입력 데이터의 특징들을 식별하기 위해 전단 특징 추출기를 이용하여 처리된다. 이 단계는, 예를 들면, 멀티태스크 융합 신경망 아키텍처(200)의 융합 전단 특징 추출기(206)가, 이미지(들)(202) 또는 다른 입력 데이터의 다양한 특징들을 식별하기 위해, 이미지(들)(202) 또는 다른 입력 데이터를 처리하는 단계를 포함할 수 있다. 특정 예로서, 이 단계는 다양한 컨볼루션, 풀링, 및 다른 동작 계층들(302-316)이, 정의된 특징 공간에서 상기 입력 데이터의 특징들을 식별하기 위해, 이미지(들)(202) 또는 다른 입력 데이터를 처리하는 단계를 포함할 수 있다. 본 명세서에서 공통 융합 전단 특징 추출기(206)가 이용되기 때문에, 융합 전단 특징 추출기(206)의 가중치들은 상기 입력 데이터를 이용하여 수행될 태스크들과 상관없이 동일하다.
단계(606)에서, 상기 추출된 특징들은 태스크별 전처리 동작들을 이용하여 개별적으로(separately) 처리된다. 이 단계는, 예를 들면, 상이한 태스크들과 연관된 상이한 전처리 분기들(208a-208d)이 융합 전단 특징 추출기(206)로부터 상기 추출된 특징들을 수신하는 단계를 포함할 수 있다. 이 단계는 또한 전처리 분기들(208a-208d)의 컨볼루션 신경망 계층들 및 다른 동작 계층들이 그들 각각의 기능들에 기반하여 상이한 개략적(coarse) 출력들 또는 다른 초기 태스크 출력들을 생성하는 단계를 포함할 수 있다. 예를 들면, 전처리 분기(208a)는 초기 디스패리티 또는 깊이 맵을 생성할 수 있고, 전처리 분기(208b)는 초기 세그먼트화 마스크를 생성할 수 있고, 전처리 분기(208c)는 초기 보케 이미지를 생성할 수 있고, 전처리 분기(208d)는 초기 HDR 이미지를 생성할 수 있다. 일부 실시예들에서, 상이한 전처리 분기들(208a-208d)은 동시에(concurrently) 동작할 수 있다.
단계(608)에서, 상기 태스크별 전처리 동작들 중 적어도 일부의 결과들은 후단 융합 계층을 이용하여 조합된다. 이 단계는, 예를 들면, 후단 융합 계층(210)이 전처리 분기들(208a-208d) 중 둘 이상으로부터의 초기 출력들을 조합하는 단계를 포함할 수 있다. 후단 융합 계층(210)은 전처리 분기들(208a-208d) 중 둘 이상으로부터의 상기 초기 출력들을 한 가지 방식으로 또는 복수의 방식들로 조합할 수 있다. 조합되는, 전처리 분기들(208a-208d)로부터의 상기 초기 출력들의 정확한(exact) 조합 또는 조합들은 상기 출력들이 공동으로 처리될 수 있는 상이한 방식들에 따라 달라질 수 있다. 일부 실시예들에서, 이 단계는 후단 융합 계층(210)이, 전처리 분기들(208a-208d)로부터의 초기 출력들의 적어도 하나의 조합을 결합하기(concatenate) 위해, 하나 이상의 결합 계층들(concatenation layers)(406)을 이용하는 단계를 포함할 수 있다.
단계(610)에서, 상기 조합된 결과들(및 아마도 조합되지 않은 결과들 중 일부)은 태스크별 후처리 동작들을 이용하여 개별적으로 처리되고, 단계(612)에서, 상기 태스크별 후처리 동작들의 최종 출력들이 생성된다. 이 단계는, 예를 들면, 상이한 태스크들과 연관된 상이한 후처리 분기들(212a-212d)이 후단 융합 계층(210)으로부터 상기 초기 출력들 및/또는 상기 조합된 초기 출력들을 수신하는 단계를 포함할 수 있다. 이 단계는 또한 후처리 분기들(212a-212d)의 컨볼루션 신경망 계층들 및 다른 동작 계층들이 그들 각각의 기능들에 기반하여 상이한 최종 출력들(204a-204d)을 생성하는 단계를 포함할 수 있다. 예를 들면, 후처리 분기(212a)는 최종 디스패리티 또는 깊이 맵을 생성할 수 있고, 후처리 분기(212b)는 최종 세그먼트화 마스크를 생성할 수 있고, 후처리 분기(212c)는 최종 보케 이미지를 생성할 수 있고, 후처리 분기(212d)는 최종 HDR 이미지를 생성할 수 있다. 다시, 각각의 개별 후처리 분기(212a-212d)는, 후단 융합 계층(210)으로부터, 조합된 초기 출력들을 수신할 수 있거나 또는 수신하지 않을 수 있다는 것에 유의해야 한다. 예를 들면, 후처리 분기(212a-212d)는 전처리 분기들(208a-208d) 중 오직 하나로부터만 상기 초기 출력들을 수신하고 처리할 수 있다. 이는, 예를 들면, 해당 후처리 분기(212a-212d)가 복수의 전처리 분기들(208a-208d)로부터의 융합된 출력들을 고려하는 것에 이점이 거의 없거나 전혀 없는 경우에 발생할 수 있다. 오직 하나의 전처리 분기(208a-208d)로부터의 초기 출력들을 처리하는 경우, 상기 초기 출력들은 후단 융합 계층(210)을 통해 수신될 수 있거나 또는 수신되지 않을 수 있다. 일부 실시예들에서, 상이한 후처리 분기들(212a-212d)은 동시에 동작할 수 있다.
단계(614)에서, 상기 최종 출력들은 어떤 방식으로 저장, 출력, 또는 이용된다. 이 단계는, 예를 들면, 전자 장치(101, 102, 104) 또는 서버(106)가, 하나 이상의 이미지들의 원하는 이미지 처리를 수행하기 위해, 디스패리티/깊이 맵(204a) 및/또는 세그먼트화 마스크(204b)를 이용하는 단계를 포함할 수 있다. 이 단계는 또한 전자 장치(101, 102, 104) 또는 서버(106)가 보케 이미지(204c) 및/또는 HDR 이미지(204d)를 사용자에게 출력하거나 또는 보케 이미지(204c) 및/또는 HDR 이미지(204d)를 전자 장치(101, 102, 104) 또는 서버(106)의 메모리(130)에 저장된 카메라 롤(camera roll)에 저장하는 단계를 포함할 수 있다. 이 단계는 전자 장치(101, 102, 104) 또는 서버(106)가 보케 이미지(204c) 및/또는 HDR 이미지(204d)를 전송될 텍스트 메시지, 이메일, 또는 다른 통신에 첨부하는(attaching) 단계를 더 포함할 수 있다. 물론, 멀티태스크 융합 신경망 아키텍처(200)의 상기 최종 출력들은 다른 또는 추가적인 어떤 방식으로도 이용될 수 있다.
도 6은 멀티태스크 융합 신경망 아키텍처(200)를 이용하는 방법(600)의 일 예를 도시하고 있지만, 도 6에 대해 다양한 변경이 이루어질 수 있다. 예를 들면, 일련의 단계들로 도시되어 있지만, 도 6의 다양한 단계들은 중첩되거나. 병렬적으로 발생하거나, 또는 어떤 횟수로든 발생할 수 있다. 또한, 방법(600)은 어떤 적절한 입력 데이터라도 처리할 수 있으며 이미지 처리 태스크들과 함께 이용하는 것에 제한되지 않는다.
예시적 실시예들을 참조하여 본 개시가 설명되었지만, 본 개시가 속하는 기술분야의 숙련된 자에게 다양한 변경들 및 변형들이 시사될 수 있다. 본 개시는 그러한 변경들 및 변형들을 첨부된 청구항들의 범위 내에 속하는 것으로서 포함하고자 한 것이다.

Claims (15)

  1. 적어도 하나의 프로세서가, 공통 특징 추출기를 이용하여, 입력 데이터의 복수의 특징들을 식별하는 단계;
    상기 적어도 하나의 프로세서가, 복수의 전처리 분기들(pre-processing branches)을 이용하여 상기 입력 데이터의 상기 식별된 복수의 특징들 중 적어도 일부를 처리하고, 상기 복수의 전처리 분기들 각각은 제1 신경망 계층들의 세트(a first set of neural network layers)를 포함하고 복수의 데이터 처리 태스크들 각각과 연관된 초기 출력들을 생성하는 단계;
    상기 적어도 하나의 프로세서가, 조합된 초기 출력들을 생성하기 위해, 상기 복수의 전처리 분기들 중 적어도 두 개에 의해 생성된 상기 초기 출력들 중 적어도 두 개를 조합하는 단계; 및
    상기 적어도 하나의 프로세서가, 복수의 후처리 분기들(post-processing branches)을 이용하여 상기 초기 출력들 중 적어도 일부 또는 상기 조합된 초기 출력들 중 적어도 일부를 처리하고, 상기 복수의 후처리 분기들 각각은 제2 신경망 계층들의 세트(a second set of neural network layers)를 포함하고 상기 복수의 데이터 처리 태스크들 각각과 연관된 최종 출력들을 생성하는 단계를 포함하는, 방법.
  2. 제1 항에 있어서,
    상기 복수의 후처리 분기들 중 적어도 하나는, 상기 조합된 초기 출력들 중 적어도 일부를 이용하여, 상기 복수의 데이터 처리 태스크들 중 적어도 하나와 연관된 상기 최종 출력들을 생성하고,
    상기 복수의 후처리 분기들 중 적어도 다른 하나는, 상기 초기 출력들 중 적어도 일부를 이용하여, 상기 복수의 데이터 처리 태스크들 중 적어도 다른 하나와 연관된 상기 최종 출력들을 생성하는, 방법.
  3. 제1 항에 있어서,
    상기 공통 특징 추출기는, 복수의 가중치들에 기반하여 상기 입력 데이터의 상기 복수의 특징들을 식별하는, 제3 신경망 계층들의 세트(a third set of neural network layers)를 포함하고,
    상기 복수의 가중치들 중 동일한 가중치들이 상기 복수의 데이터 처리 태스크들 모두에 대해 상기 입력 데이터의 상기 복수의 특징들을 식별하는 데 이용되는, 방법.
  4. 제1 항에 있어서, 상기 조합된 초기 출력들을 생성하기 위해 상기 초기 출력들 중 적어도 두 개를 조합하는 단계는:
    상기 조합된 초기 출력들을 생성하기 위해 상기 복수의 전처리 분기들 중 적어도 두 개에 의해 생성된 상기 초기 출력들 중 적어도 두 개를 결합하고(concatenate);
    상기 조합된 초기 출력들을 상기 복수의 후처리 분기들 중 적어도 하나에게 제공하는, 융합 계층(fusion layer)을 이용하는 단계를 포함하는, 방법.
  5. 제1 항에 있어서,
    상기 복수의 전처리 분기들 중 적어도 세 개의 전처리 분기들은 상기 복수의 데이터 처리 태스크들 중 적어도 세 개의 대응되는 데이터 처리 태스크들과 연관된 상기 초기 출력들을 생성하고,
    상기 복수의 후처리 분기들 중 적어도 세 개의 후처리 분기들은 상기 적어도 세 개의 대응되는 데이터 처리 태스크들과 연관된 상기 최종 출력들을 생성하는, 방법.
  6. 제1 항에 있어서,
    상기 입력 데이터는 하나 이상의 입력 이미지들을 포함하고,
    상기 복수의 데이터 처리 태스크들은 디스패리티(disparity) 또는 깊이 맵의 생성, 세그먼트화 마스크(segmentation mask)의 생성, 보케(Bokeh) 이미지의 생성, 및 높은 동적 범위(high dynamic range: HDR) 이미지의 생성 중 적어도 두 개를 포함하는, 방법.
  7. 제6 항에 있어서,
    상기 조합된 초기 출력들은 초기 깊이 맵 및 초기 세그먼트화 마스크의 조합을 포함하고,
    상기 복수의 후처리 분기들 중 하나는 상기 초기 깊이 맵 및 초기 세그먼트화 마스크의 조합을 이용하여 최종 깊이 맵을 생성하는, 방법.
  8. 적어도 하나의 메모리; 및
    상기 적어도 하나의 메모리와 작동 가능하게 결합된 적어도 하나의 프로세서에 있어서,
    공통 특징 추출기를 이용하여 입력 데이터의 복수의 특징들을 식별하고;
    각각이 제1 신경망 계층들의 세트를 포함하고 복수의 데이터 처리 태스크들 각각과 연관된 초기 출력들을 생성하도록 구성된, 복수의 전처리 분기들을 이용하여 상기 입력 데이터의 상기 식별된 복수의 특징들 중 적어도 일부를 처리하고;
    조합된 초기 출력들을 생성하기 위해 상기 복수의 전처리 분기들 중 적어도 두 개에 의해 생성된 상기 초기 출력들 중 적어도 두 개를 조합하고;
    각각이 제2 신경망 계층들의 세트를 포함하고 상기 복수의 데이터 처리 태스크들 각각과 연관된 최종 출력들을 생성하도록 구성된, 복수의 후처리 분기들을 이용하여 상기 초기 출력들 중 적어도 일부 또는 상기 조합된 초기 출력들 중 적어도 일부를 처리하도록 구성된, 상기 적어도 하나의 프로세서를 포함하는, 전자 장치.
  9. 제8 항에 있어서,
    상기 복수의 후처리 분기들 중 적어도 하나는, 상기 조합된 초기 출력들 중 적어도 일부를 이용하여 상기 복수의 데이터 처리 태스크들 중 적어도 하나와 연관된 상기 최종 출력들을 생성하도록 구성되고,
    상기 복수의 후처리 분기들 중 적어도 다른 하나는, 상기 초기 출력들 중 적어도 일부를 이용하여 상기 복수의 데이터 처리 태스크들 중 적어도 다른 하나와 연관된 상기 최종 출력들을 생성하도록 구성되는, 전자 장치.
  10. 제8 항에 있어서,
    상기 공통 특징 추출기는, 복수의 가중치들에 기반하여 상기 입력 데이터의 상기 복수의 특징들을 식별하도록 구성되는, 제3 신경망 계층들의 세트를 포함하고,
    상기 제3 신경망 계층들의 세트는 상기 복수의 데이터 처리 태스크들 모두에 대해 상기 입력 데이터의 상기 복수의 특징들을 식별하기 위해 상기 복수의 가중치들 중 동일한 가중치들을 이용하도록 구성되는, 전자 장치.
  11. 제8 항에 있어서,
    상기 적어도 하나의 프로세서는, 융합 계층을 이용하여, 상기 초기 출력들 중 적어도 두 개를 조합하고 상기 조합된 초기 출력들을 생성하도록 구성되고,
    상기 융합 계층은:
    상기 조합된 초기 출력들을 생성하기 위해, 상기 복수의 후처리 분기들 중 적어도 두 개에 의해 생성된 상기 초기 출력들 중 적어도 두 개를 결합하고(concatenate);
    상기 조합된 초기 출력들을 상기 복수의 후처리 분기들 중 적어도 하나에게 제공하도록 구성되는, 전자 장치.
  12. 제8 항에 있어서,
    상기 복수의 전처리 분기들 중 적어도 세 개의 전처리 분기들은, 상기 복수의 데이터 처리 태스크들 중 적어도 세 개의 대응되는 데이터 처리 태스크들과 연관된 상기 초기 출력들을 생성하도록 구성되고,
    상기 복수의 후처리 분기들 중 적어도 세 개의 후처리 분기들은, 상기 적어도 세 개의 대응되는 데이터 처리 태스크들과 연관된 상기 최종 출력들을 생성하도록 구성되는, 전자 장치.
  13. 제8 항에 있어서,
    상기 입력 데이터는 하나 이상의 입력 이미지들을 포함하고,
    상기 복수의 데이터 처리 태스크들은 디스패리티 또는 깊이 맵의 생성, 세그먼트화 마스크의 생성, 보케 이미지의 생성, 및 높은 동적 범위(HDR) 이미지의 생성 중 적어도 두 개를 포함하는, 전자 장치.
  14. 제13 항에 있어서,
    상기 조합된 초기 출력들은 초기 깊이 맵 및 초기 세그먼트화 마스크의 조합을 포함하고,
    상기 복수의 후처리 분기들 중 하나는 상기 초기 깊이 맵 및 초기 세그먼트화 마스크의 조합을 이용하여 최종 깊이 맵을 생성하도록 구성되는, 전자 장치.
  15. 제1 항 내지 제7 항 중에서 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020200139745A 2019-11-22 2020-10-26 멀티태스크 융합 신경망 아키텍처 KR20210063223A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/693,112 2019-11-22
US16/693,112 US11556784B2 (en) 2019-11-22 2019-11-22 Multi-task fusion neural network architecture

Publications (1)

Publication Number Publication Date
KR20210063223A true KR20210063223A (ko) 2021-06-01

Family

ID=75974290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200139745A KR20210063223A (ko) 2019-11-22 2020-10-26 멀티태스크 융합 신경망 아키텍처

Country Status (4)

Country Link
US (1) US11556784B2 (ko)
EP (1) EP3983951A4 (ko)
KR (1) KR20210063223A (ko)
WO (1) WO2021101097A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11568210B2 (en) * 2020-04-20 2023-01-31 Toyota Research Institute, Inc. Neural architecture search for fusing multiple networks into one
WO2022252635A1 (zh) * 2021-06-01 2022-12-08 平安科技(深圳)有限公司 多任务融合的人脸定位方法、装置、设备及存储介质
CN113780134B (zh) * 2021-08-31 2023-05-02 昆明理工大学 一种基于ShuffleNetV2网络的运动想象脑电解码方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201036453A (en) 2009-03-25 2010-10-01 Micro Star Int Co Ltd Method and electronic device to produce high dynamic range image
EP3259914A1 (en) 2015-02-19 2017-12-27 Magic Pony Technology Limited Interpolating visual data
GB201603144D0 (en) 2016-02-23 2016-04-06 Magic Pony Technology Ltd Training end-to-end video processes
US10318008B2 (en) 2015-12-15 2019-06-11 Purdue Research Foundation Method and system for hand pose detection
WO2018218643A1 (en) 2017-06-02 2018-12-06 Shanghaitech University Method and apparatus for estimating depth of field information
US11222255B2 (en) 2017-08-17 2022-01-11 Samsung Electronics Co., Ltd. Neuromorphic processing apparatus
WO2019070299A1 (en) 2017-10-04 2019-04-11 Google Llc DEPTH ESTIMATION USING A SINGLE CAMERA
KR102457891B1 (ko) 2017-10-30 2022-10-25 삼성전자주식회사 이미치 처리 방법 및 장치
US10742959B1 (en) 2017-12-29 2020-08-11 Perceive Corporation Use of machine-trained network for misalignment-insensitive depth perception
US10140544B1 (en) * 2018-04-02 2018-11-27 12 Sigma Technologies Enhanced convolutional neural network for image segmentation
CN108681753B (zh) 2018-05-29 2021-03-30 武汉环宇智行科技有限公司 一种基于语义分割及神经网络的图像立体匹配方法及系统
US10380753B1 (en) 2018-05-30 2019-08-13 Aimotive Kft. Method and apparatus for generating a displacement map of an input dataset pair
RU2698402C1 (ru) 2018-08-30 2019-08-26 Самсунг Электроникс Ко., Лтд. Способ обучения сверточной нейронной сети для восстановления изображения и система для формирования карты глубины изображения (варианты)
CN110084124B (zh) 2019-03-28 2021-07-09 北京大学 基于特征金字塔网络的特征增强目标检测方法
KR102046134B1 (ko) * 2019-04-02 2019-11-18 주식회사 루닛 복수의 이미지 간 차이점을 활용한 신경망 학습 방법
CN110135501A (zh) 2019-05-17 2019-08-16 电子科技大学 基于神经网络框架的高动态范围图像取证方法

Also Published As

Publication number Publication date
EP3983951A1 (en) 2022-04-20
EP3983951A4 (en) 2022-08-17
WO2021101097A1 (en) 2021-05-27
US11556784B2 (en) 2023-01-17
US20210158142A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
US10944914B1 (en) System and method for generating multi-exposure frames from single input
US20230022753A1 (en) System and method for motion warping using multi-exposure frames
US10911691B1 (en) System and method for dynamic selection of reference image frame
KR20210063223A (ko) 멀티태스크 융합 신경망 아키텍처
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
KR20210067864A (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
US11720782B2 (en) Multi-sensor, multi-view, multi-frame, multi-task synthetic image fusion engine for mobile imaging system
US20240046583A1 (en) Real-time photorealistic view rendering on augmented reality (ar) device
US11200653B2 (en) Local histogram matching with global regularization and motion exclusion for multi-exposure image fusion
US11816855B2 (en) Array-based depth estimation
US11526967B2 (en) System and method for precise image inpainting to remove unwanted content from digital images
US20230252770A1 (en) Machine learning model training framework for multi-frame image processing
US11847771B2 (en) Systems and methods for quantitative evaluation of optical map quality and for data augmentation automation
US20240087190A1 (en) System and method for synthetic data generation using dead leaves images
US11631163B2 (en) Mobile data augmentation engine for personalized on-device deep learning system
US11869118B2 (en) Generating a synthetic ground-truth image using a dead leaves model
US20230252608A1 (en) Hand motion pattern modeling and motion blur synthesizing techniques
US20240121370A1 (en) System and method for parallax correction for video see-through augmented reality
US20240119570A1 (en) Machine learning model training using synthetic data for under-display camera (udc) image restoration
US20240135673A1 (en) Machine learning model training using synthetic data for under-display camera (udc) image restoration
US20220303495A1 (en) Pixel blending for synthesizing video frames with occlusion and watermark handling

Legal Events

Date Code Title Description
A201 Request for examination