KR20210001324A - 인공 신경망 모델 및 이를 포함하는 전자 장치 - Google Patents

인공 신경망 모델 및 이를 포함하는 전자 장치 Download PDF

Info

Publication number
KR20210001324A
KR20210001324A KR1020190077255A KR20190077255A KR20210001324A KR 20210001324 A KR20210001324 A KR 20210001324A KR 1020190077255 A KR1020190077255 A KR 1020190077255A KR 20190077255 A KR20190077255 A KR 20190077255A KR 20210001324 A KR20210001324 A KR 20210001324A
Authority
KR
South Korea
Prior art keywords
feature map
layer
level
layer unit
output
Prior art date
Application number
KR1020190077255A
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 삼성전자주식회사
Priority to KR1020190077255A priority Critical patent/KR20210001324A/ko
Priority to US16/822,188 priority patent/US11544813B2/en
Priority to DE102020107490.5A priority patent/DE102020107490A1/de
Priority to CN202010428019.1A priority patent/CN112149793A/zh
Publication of KR20210001324A publication Critical patent/KR20210001324A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/06Topological mapping of higher dimensional structures onto lower dimensional surfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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/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
    • G06N3/048Activation functions
    • 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/4015Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

본 개시의 기술적 사상의 일측면에 따르면, 입력 이미지 데이터를 수신하고, 인공 신경망 모델을 이용하여 상기 입력 이미지 데이터와 포맷이 상이한 출력 이미지 데이터를 생성하는 처리 로직을 포함하고, 상기 인공 신경망 모델은, 복수의 레이어들을 포함하며 복수의 레벨들에 각각 위치한 복수의 인코딩 레이어 유닛들 및 복수의 레이어들을 포함하며 동일한 레벨의 상기 복수의 인코딩 레이어 유닛들과 스킵 커넥션을 형성하는 복수의 디코딩 레이어 유닛들을 포함하고, 제1 레벨에 위치한 제1 인코딩 레이어 유닛은, 제1 입력 피처맵을 수신하고, 상기 제1 레벨의 다음 레벨의 인코딩 레이어 유닛 및 상기 스킵 커넥션으로 연결된 디코딩 레이어 유닛으로 상기 제1 입력 피처맵에 기반한 제1 출력 피처맵을 출력하도록 구성될 수 있다.

Description

인공 신경망 모델 및 이를 포함하는 전자 장치 {Artificial neural network model and electronic device comprising thereof}
본 개시의 기술적 사상은 인공 신경망 모델에 관한 것으로, 상세하게는 이미지 프로세싱을 수행하는 인공 신경망 모델 및 이를 포함하는 전자 장치에 관한 것이다.
인공 신경망(artificial neural network; ANN)은 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 인공 신경망에 기초하여 딥러닝(deep learning) 또는 기계 학습(machine learning) 등이 구현될 수 있다. 최근 인공 신경망을 이용하여 처리해야 할 연산이 비약적으로 증가함에 따라, 인공 신경망을 이용한 연산 처리를 효율적으로 수행하기 위한 필요성이 요구되고 있다.
본 개시의 기술적 사상은 이미지의 포맷을 변경하기 위한 새로운 구조의 인공 신경망 모델 및 이를 포함하는 전자 장치를 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 전자 장치에 있어서, 입력 이미지 데이터를 수신하고, 인공 신경망 모델을 이용하여 상기 입력 이미지 데이터와 포맷이 상이한 출력 이미지 데이터를 생성하는 처리 로직을 포함하고, 상기 인공 신경망 모델은, 복수의 레이어들을 포함하며 복수의 레벨들에 각각 위치한 복수의 인코딩 레이어 유닛들 및 복수의 레이어들을 포함하며 동일한 레벨의 상기 복수의 인코딩 레이어 유닛들과 스킵 커넥션을 형성하는 복수의 디코딩 레이어 유닛들을 포함하고, 제1 레벨에 위치한 제1 인코딩 레이어 유닛은, 제1 입력 피처맵을 수신하고, 상기 제1 레벨의 다음 레벨의 인코딩 레이어 유닛 및 상기 스킵 커넥션으로 연결된 디코딩 레이어 유닛으로 상기 제1 입력 피처맵에 기반한 제1 출력 피처맵을 출력하도록 구성될 수 있다.
본 개시의 기술적 사상의 일측면에 따른 전자 장치에 있어서, 인공 신경망 모델을 이용하여 연산을 처리하는 처리 로직을 포함하고, 상기 인공 신경망 모델은, 복수의 레이어들을 포함하며 복수의 레벨들에 각각 위치한 복수의 인코딩 레이어 유닛들 및 복수의 레이어들을 포함하며 상기 복수의 레벨들에 각각 위치한 복수의 디코딩 레이어 유닛들을 포함하고, 상기 복수의 레벨들 중 제1 레벨에 위치한 제1 인코딩 레이어 유닛은, 제1 입력 피처맵을 수신하고, 상기 제1 레벨의 다음 레벨의 인코딩 레이어 유닛 및 상기 제1 레벨의 디코딩 레이어 유닛으로 제1 출력 피처맵을 출력하고, 상기 제1 레벨의 값에 기초하여 상기 제1 출력 피처맵의 깊이를 조절하도록 구성될 수 있다.
본 개시의 기술적 사상의 일측면에 따른 이미지 프로세싱을 수행하는 전자 장치에 있어서, 네 개의 동일한 컬러 필터가 두 개의 행과 두 개의 열로 배열되어 하나의 픽셀 단위를 갖는 컬러 필터 어레이로부터 테트라 이미지 데이터를 수신하고, 인공 신경망 모델을 이용하여 상기 테트라 이미지 데이터와 포맷이 상이한 출력 이미지 데이터를 생성하는 처리 로직을 포함하고, 상기 인공 신경망 모델은, 복수의 레이어들을 포함하며 복수의 레벨들에 각각 위치한 복수의 인코딩 레이어 유닛들; 및 복수의 레이어들을 포함하며 동일한 레벨의 상기 복수의 인코딩 레이어 유닛들과 스킵 커넥션을 형성하는 복수의 디코딩 레이어 유닛들을 포함하고, 제1 인코딩 레이어 유닛은, 제1 입력 피처맵을 수신하고, 상기 제1 레벨의 다음 레벨의 인코딩 레이어 유닛 및 상기 스킵 커넥션으로 연결된 디코딩 레이어 유닛으로 상기 제1 입력 피처맵에 기반한 제1 출력 피처맵을 출력하도록 구성될 수 있다.
본 개시의 예시적 실시예에 따르면 입력 이미지의 포맷을 변경하는데 소요되는 불필요한 연산 과정을 배제하고 연산 과정에서 생성되는 피처맵(feature map)의 깊이(depth)를 조절함으로써 인공 신경망 모델에 의한 연산의 속도 및 출력 이미지의 퀄리티를 개선할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 전자 장치에 관한 블록도이다.
도 2는 뉴럴 네트워크 구조의 일 예에 관한 도면이다.
도 3은 본 개시의 예시적 실시예에 따른 이미지 데이터를 설명하기 위함이다.
도 4는 비교예에 따른 이미지 처리 장치를 설명하기 위한 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 NPU를 설명하기 위한 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 인공 신경망 모델을 설명하기 위함이다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따른 인코딩 레이어 유닛 및 디코딩 레이어 유닛을 설명하기 위한 블록도이다.
도 8은 본 개시의 예시적 실시예에 따른 피처맵 블록을 설명하기 위한 블록도이다.
도 9는 본 개시의 예시적 실시예에 따른 인공 신경망 모델을 설명하기 위함이다.
도 10은 본 개시의 예시적 실시예에 따른 피처맵의 깊이 값을 나타내는 표이다.
도 11은 본 개시의 예시적 실시예에 따른 다운 샘플링 동작을 설명하기 위함이다.
도 12은 본 개시의 예시적 실시예에 따른 어플리케이션 프로세서를 설명하기 위한 블록도이다.
도 13은 본 개시의 예시적 실시예에 따른 이미징 장치를 설명하기 위한 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 전자 장치에 관한 블록도이다.
본 개시의 실시예에 따른 전자 장치(10)은 인공 신경망 모델(100)을 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 출력 데이터를 생성할 수 있다. 예를 들어, 전자 장치(10)은 스마트폰, 모바일 장치, 영상 표시 장치, 영상 촬영 장치, 영상 처리 장치, 계측 장치, 스마트 TV, 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 의료 장치, IoT(Internet of Things) 장치 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 장치 중 하나에 탑재될 수 있다. 예를 들어, 전자 장치(10)은 애플리케이션 프로세서일 수 있다. 어플리케이션 프로세서은 다양한 종류의 연산 처리를 수행할 수 있으며, 어플리케이션 프로세서에 포함된 NPU(13)는 인공 신경망 모델(100)에 의해 처리할 연산을 분담할 수 있다.
도 1을 참고하면, 전자 장치(10)은 CPU(Central Processing Unit)(11), RAM(Random Access memory)(12), NPU(Neural Processing Unit)(13), 메모리(14), 및 센서 모듈(15)을 포함할 수 있다. 전자 장치(10)은 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있으며, 또한 다양한 종류의 연산 장치를 더 포함할 수 있다. 예를 들어, 전자 장치(10)의 구성들(CPU(11), RAM(12), NPU(13), 메모리(14), 센서 모듈(15)) 중 일부 또는 전부는 하나의 반도체 칩에 탑재될 수 있다. 예컨대 전자 장치(10)은 시스템 온 칩(SoC)으로서 구현될 수 있다. 전자 장치(10)의 구성들은 버스(16)를 통해 서로 통신할 수 있다.
CPU(11)는 전자 장치(10)의 전반적인 동작을 제어한다. CPU(11)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(11)는 메모리(14)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예를 들어, CPU(11)는 메모리(14)에 저장된 프로그램들을 실행함으로써, NPU(13)의 기능을 제어할 수 있다.
RAM(12)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예를 들어, 메모리(14)에 저장된 프로그램들 및/또는 데이터는 CPU(11)의 제어 또는 부팅 코드에 따라 RAM(12)에 일시적으로 저장될 수 있다. RAM(12)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다.
NPU(13)는 입력 데이터를 수신하고 인공 신경망 모델(100)을 기초로 연산을 수행하며, 연산 결과를 기초로 출력 데이터를 제공할 수 있다. NPU(13)는 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restricted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network 등 다양한 종류의 네트워크에 기초한 연산 처리가 가능하다. 다만, 이에 한정되지는 않으며 인간의 신경망을 모사한 다양한 종류의 연산 처리가 가능하다.
도 2는 뉴럴 네트워크 구조의 일 예에 관한 도면이다.
도 2를 참고하면, 인공 신경망 모델(100)는 복수의 레이어들(L1 내지 Ln)을 포함할 수 있다. 복수의 레이어들(L1 내지 Ln) 각각은 선형 레이어 또는 비선형 레이어일 수 있으며, 실시예에 따라, 적어도 하나의 선형 레이어 및 적어도 하나의 비선형 레이어가 결합되어 하나의 레이어로 지칭될 수도 있다. 예를 들어, 선형 레이어는 컨볼루션 레이어(convolution), 풀리 커넥티드(fully connected) 레이어를 포함할 수 있으며, 비선형 레이어는 샘플링(sampling) 레이어, 풀링(pooling) 레이어, 활성(activation) 레이어를 포함할 수 있다.
예시적으로, 제1 레이어(L1)는 컨볼루션 레이어이고, 제2 레이어(L2)는 샘플링 레이어일 수 있다. 인공 신경망 모델(100)는 활성(activation) 레이어를 더 포함할 수 있으며, 다른 종류의 연산을 수행하는 레이어를 더 포함할 수 있다.
복수의 레이어들 각각은 입력되는 이미지 데이터 또는 이전 레이어에서 생성된 피처맵(feature map)을 입력 피처맵으로서 수신하고, 입력 피처맵을 연산하여 출력 피처맵을 생성할 수 있다. 이때, 피처맵은 입력 데이터의 다양한 특징이 표현된 데이터를 의미한다. 피처맵들(FM1, FM2, FM3)은 예컨대 2차원 매트릭스 또는 3차원 매트릭스 형태를 가질 수 있다. 피처맵들(FM1 내지 FM3)은 너비(W)(또는 칼럼이라고 함), 높이(H)(또는 로우라고 함) 및 깊이(D)를 가지며, 이는 좌표상의 x축, y축 및 z축에 각각 대응할 수 있다. 이때, 깊이(D)는 채널 수로 지칭될 수 있다.
제1 레이어(L1)는 제1 피처맵(FM1)을 웨이트 맵(WM)과 컨볼루션하여 제2 피처맵(FM2)을 생성할 수 있다. 웨이트 맵(WM)은 제1 피처맵(FM1)을 필터링할 수 있으며, 필터 또는 커널로 지칭될 수 있다. 예컨대, 웨이트 맵(WM)의 깊이, 즉 채널 개수는 제1 피처맵(FM1)의 깊이, 즉 채널 개수와 동일하며, 웨이트 맵(WM)과 제1 피처맵(FM1)의 동일한 채널끼리 컨볼루션될 수 있다. 웨이트 맵(WM)은 제1 피처맵(FM1)을 슬라이딩 윈도우로하여 횡단하는 방식으로 시프트된다. 시프트되는 양은 "스트라이드(stride) 길이" 또는 "스트라이드"로 지칭될 수 있다. 각 시프트동안, 웨이트 맵(WM)에 포함되는 웨이트들 각각이 제1 피처맵(FM1)과 중첩된 영역에서의 모든 피처값과 곱해지고 더해질 수 있다. 제1 피처맵(FM1)과 웨이트 맵(WM)이 컨볼루션 됨에 따라, 제2 피처맵(FM2)의 하나의 채널이 생성될 수 있다. 도 2에는 하나의 웨이트 맵(WM)이 표시되었으나, 실질적으로는 복수개의 웨이트 맵이 제1 피처맵(FM1)과 컨볼루션 되어, 제2 피처맵(FM2)의 복수개의 채널이 생성될 수 있다. 다시 말해, 제2 피처맵(FM2)의 채널의 수는 웨이트 맵의 개수에 대응할 수 있다.
제2 레이어(L2)는 제2 피처맵(FM2)의 공간적 크기(spatial size)를 변경함으로써, 제3 피처맵(FM3)을 생성할 수 있다. 일 예로, 제2 레이어(L2)는 샘플링 레이어일 수 있다. 제2 레이어(L2)는 업-샘플링 또는 다운-샘플링을 수행할 수 있으며, 제2 레이어(L2)는 제2 피처맵(FM2)에 포함된 데이터들 중 일부를 선별할 수 있다. 예컨대, 2 차원의 윈도우(WD)가 윈도우(WD)의 사이즈(예컨대, 4 * 4 행렬) 단위로 제2 피처맵(FM2) 상에서 쉬프트되고, 윈도우(WD)와 중첩되는 영역에서 특정 위치(예컨대, 1행 1열)의 값을 선택할 수 있다. 제2 레이어(L2)는 선택된 데이터를 제3 피처맵(FM3)의 데이터로서 출력할 수 있다. 다른 예로, 제2 레이어(L2)는 풀링 레이어일 수 있다. 이 경우, 제2 레이어(L2)는 제2 피처맵(FM2)에서 윈도우(WD)와 중첩되는 영역의 피처 값들의 최대값(또는 피처값들의 평균값)이 선택될 수 있다. 제2 레이어(L2)는 선택된 데이터를 제3 피처맵(FM3)의 데이터로서 출력할 수 있다.
이에 따라, 제2 피처맵(FM2)으로부터 공간적 사이즈가 변경된 제3 피처맵(FM3)이 생성될 수 있다. 제3 피처맵(FM3)의 채널과 제2 피처맵(FM2)의 채널 개수는 동일할 수 있다. 한편, 본 개시의 예시적인 실시예에 따르면, 풀링 레이어보다 샘플링 레이어의 연산 속도가 빠를 수 있고, 샘플링 레이어는 출력 이미지의 퀄리티(예컨대, PSNR(Peak Signal to Noise Ratio) 측면에서)를 개선할 수 있다. 예컨대, 풀링 레이어에 의한 연산은, 최대 값 또는 평균 값을 산출하여야 하므로 샘플링 레이어에 의한 연산보다 연산 시간이 더 클 수 있다.
실시예에 따라, 제2 레이어(L2)는 샘플링 레이어 또는 풀링 레이어에 한정되지 않는다. 즉, 제2 레이어(L2)는 제1 레이어(L1)와 유사한 컨볼루션 레이어가 될 수 있다. 제2 레이어(L2)는 제2 피처맵(FM2)을 웨이트 맵과 컨볼루션하여 제3 피처맵(FM3)을 생성할 수 있다. 이 경우, 제2 레이어(L2)에서 컨볼루션 연산을 수행한 웨이트 맵은 제1 레이어(L1)에서 컨볼루션 연산을 수행한 웨이트 맵(WM)과 다를 수 있다.
제1 레이어(L1) 및 제2 레이어(L2)를 포함한 복수의 레이어들을 거쳐 제N 레이어에서 제N 피처맵을 생성할 수 있다. 제N 피처맵은 출력 데이터가 출력되는 인공 신경망 모델(100)의 백 엔드(back end)에 위치한 복원 레이어(reconstruction layer)에 입력될 수 있다. 복원 레이어는 제N 피처맵을 기반으로 출력 이미지를 생성할 수 있다. 또한, 복원 레이어는 제N 피처맵 뿐만 아니라, 제1 피처맵(FM1) 및 제2 피처맵(FM2) 등 복수의 피처맵들을 수신하고, 복수의 피처맵들에 기초하여 출력 이미지를 생성할 수 있다.
예컨대, 복원 레이어는, 컨볼루션 레이어 또는 디-컨볼루션 레이어일 수 있다. 실시예에 따라서는, 피처맵으로부터 이미지를 복원할 수 있는 다른 종류의 레이어로 구현될 수도 있다.
메모리(14)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리(14)는 DRAM일 수 있으나, 이에 한정되는 것은 아니다. 메모리(14)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. 휘발성 메모리는 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등을 포함한다. 실시예에 있어서, 메모리(14)는 HDD(Hard Disk Drive), SSD(Solid State Drive), CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 중 적어도 하나를 포함할 수 있다.
센서 모듈(15)은 전자 장치(10)가 센싱한 객체에 관한 수집할 수 있다. 예컨대, 센서 모듈(15)은 이미지 센서 모듈일 수 있다. 센서 모듈(15)은 전자 장치의 외부로부터 이미지 신호를 센싱 또는 수신하고, 상기 이미지 신호를 이미지 데이터, 즉 이미지 프레임으로 변환할 수 있다. 이를 위해, 센서 모듈(15)은 센싱 장치, 예컨대 촬상 장치, 이미지 센서, 라이더(LIDAR; light detection and ranging) 센서, 초음파 센서, 적외선 센서 등 다양한 종류의 센싱 장치 중 적어도 하나를 포함할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 이미지 데이터를 설명하기 위함이다. 이하에서는, 도 1 및 도 2의 참조부호와 함께 설명된다.
도 3을 참조하면, 입력 데이터(IDTA)는 전자 장치(10)가 수신하는 이미지 데이터 일 수 있다. 예컨대, NPU(13)가 출력 이미지를 생성하기 위해 수신하는 입력 데이터(IDTA)일 수 있다.
입력 데이터(IDTA)는 테트라 셀 이미지일 수 있다. 테트라 셀 이미지란, 도 3에 도시된 입력 데이터(IDTA)와 유사한 컬러 필터 어레이를 갖는 이미지 센서로부터 획득한 이미지일 수 있다. 예컨대, 상기 컬러 필터 어레이는, 네 개의 동일한 컬러 필터가 두 개의 행과 두 개의 열로 배열되어 하나의 픽셀 단위를 갖는 컬러 필터 어레이일 수 있다.
입력 데이터(IDTA)는 복수의 픽셀(PX)들로 구성될 수 있다. 픽셀(PX)은 하나의 색상을 표현하는 이미지의 단위로써, 예컨대, 레드 픽셀(PX_R), 그린 픽셀(PX_G) 및 블루 픽셀(PX_B)을 포함할 수 있다. 픽셀(PX)은 적어도 하나의 서브 픽셀(SPX)을 포함할 수 있다. 서브 픽셀(SPX)은 이미지 센서로부터 획득한 데이터 중 하나의 단위일 수 있다. 예컨대, 서브 픽셀(SPX)은 이미지 센서에 포함된, 하나의 컬러 필터를 포함하는 하나의 픽셀 회로로부터 획득된 데이터일 수 있다. 서브 픽셀(SPX)은 하나의 색상을 표현할 수 있으며, 예컨대, 레드, 그린 및 블루 중 하나일 수 있다.
입력 데이터(IDTA)는 복수의 픽셀 그룹(PG)들로 구성될 수 있다. 픽셀 그룹(PX_G)은 복수의 픽셀(PX)들로 구성될 수 있다. 예컨대, 픽셀 그룹(PG)은 입력 데이터(IDTA)를 구성하는 모든 색상(예컨대, 레드, 그린 및 블루)을 포함할 수 있다. 즉, 픽셀 그룹(PG)은 레드 픽셀(PX_R), 그린 픽셀(PX_G) 및 블루 픽셀(PX_B)로 구성될 수 있다. 한편, 색상은 전술한 바와 같이 레드, 그린 및 블루에 제한되지는 않으며, 마젠타, 시안, 옐로우 및 화이트 등 다양한 색상으로 구현될 수 있다.
입력 데이터(IDTA)는 다양한 포맷을 갖는 이미지 데이터들 중 하나일 수 있다. 예컨대, 입력 데이터(IDTA)는 전술한 바와 같이 테트라 이미지일 수 있다. 다른 예로, 입력 데이터(IDTA)는 베이어 패턴 이미지, RGBE(Red Green Blue Emerald) 패턴 이미지, CYYM(Cyan Yellow Yellow Magenta) 패턴 이미지, CYCM(Cyan Yellow Cyan Magenta) 패턴 이미지 및 RGBW(Red Green Blue White) 패턴 이미지 등 다양한 포맷의 이미지일 수 있다. 즉, 입력 데이터(IDTA)의 포맷에 본 개시의 기술적 사상이 제한되지는 않는다.
출력 데이터(ODTA)는 입력 데이터(IDTA)와는 상이한 포맷을 갖는 이미지 데이터일 수 있다. 예컨대, RGB 이미지일 수 있다. RGB 이미지는, 레드, 그린 및 블루 색상이 표현되는 정도를 나타내는 데이터일 수 있다. RGB 이미지는 레드, 그린 및 불루를 기반으로 한 색공간일 수 있다. 즉, RGB 이미지는 이미지의 패턴이 입력 데이터(IDTA)와 같이 구분되어 있지 않을 수 있다. 다르게 말하면, 레드 값, 그린 값 및 블루 값을 지시하는 데이터가 RGB 이미지에 포함된 각 화소에 할당되어 있을 수 있다. 출력 이미지는 이미지 데이터(IDTA)와 다른 포맷을 가질 수 있다. 한편, 출력 이미지(ODTA)는 이에 한정되지 않으며, 예컨대 YUV 데이터일 수 있으며, Y는 밝기(luma) 값, U, V는 색(chroma) 값일 수 있다. 한편, 출력 이미지의 포맷은 RGB 데이터, YUV 데이터에 한정되지 않으며 다양한 종류의 포맷으로 구현될 수 있다. 종래에는, 이미지 데이터(IDTA)와 출력 이미지가 서로 상이한 포맷을 갖는 경우 후술하는 바와 같이 많은 처리 과정이 요구되었다.
도 4는 비교예에 따른 이미지 처리 장치를 설명하기 위한 블록도이다.
비교예에 따르면, 이미지 데이터(IDTA)를 출력 이미지를 생성하기 위해 다수의 처리 및 변환 동작을 요구할 수 있다. 도 4를 참조하면, 전처리부(21)는 입력 데이터(IDTA)를 수신하고, 크로스 토크 보정, 결함 보정등의 전처리 동작을 수행할 수 있다. 전처리부(21)는 입력 데이터(IDTA)를 기반으로 전처리 동작을 수행하고, 보정된 입력 데이터(IDTA_C)를 출력할 수 있다. 베이어 컨버터(22)는 보정된 입력 데이터(IDTA_C)를 수신하고, 이미지의 패턴을 베이어 패턴으로 변환할 수 있다. 예컨대, 베이어 컨버터(22)는 리-모자이크(re-mosaic) 동작, 디노이징 동작, 샤프닝 동작 등을 수행할 수 있다. RGB 컨버터(23)는 베이어 이미지(IDTA_B)를 수신하고, RGB 이미지로 변환하며, 출력 데이터(ODTA)를 출력할 수 있다.
비교예에 따르면, 입력 데이터(IDTA)의 포맷을 변환한 출력 데이터(ODTA)를 생성하는 과정에서 많은 연산 과정이 요구되어, 시간적인 손실이 발생할 수 있다. 또한, 종래의 방법으로 이미지 퀄리티를 개선하는데 어려움이 있다.
도 5는 본 개시의 예시적 실시예에 따른 NPU를 설명하기 위한 블록도이다.
도 5를 참조하면, NPU(13)는 인공 신경망 모델(100)에 기초하여 연산을 수행하는 처리 로직(200)을 포함할 수 있다. 처리 로직(200)은 입력 데이터(IDTA)를 수신하고, 입력 데이터(IDTA)를 기반으로 연산(예컨대, 이미지 프로세싱)을 수행하며, 출력 데이터(ODTA)를 출력할 수 있다. 예컨대, 입력 데이터(IDTA)는 테트라 이미지일 수 있으며, 출력 데이터(ODTA)는 RGB 이미지일 수 있으나, 이에 제한되지는 않는다. 처리 로직(200)은 인공 신경망 모델(100)을 전반적으로 제어할 수 있다. 예컨대, 처리 로직(200)은 인공 신경망 모델(100)에 포함된 각종 파라미터, 구성, 기능, 동작 및 연결 등을 제어할 수 있다. 예컨대, 처리 로직(200)은 인공 신경망 모델(100)을 상황에 따라 다양하게 수정할 수 있다. 예컨대, 처리 로직(200)은 인공 신경망 모델(100)에 포함된 스킵 커넥션을 활성화하거나 비활성화 할 수 있다.
본 개시의 예시적 실시예에 따르면, 처리 로직(200)은 인공 신경망 모델(100)을 기반으로 이미지 프로세싱을 수행할 수 있다. 인공 신경망 모델(100)은 복수의 레이어 유닛들을 포함할 수 있다. 레이어 유닛들은, 복수의 레이어들을 포함할 수 있으며, 각각의 레이어들은 레이어(예컨대, 컨볼루션 레이어)에 할당된 연산(예컨대, 컨볼루션 연산)을 수행하기 위해 구비될 수 있다. 이하에서, 인코딩 레이어 유닛(LUa)에 포함된 복수의 레이어들은, 복수의 인코딩 레이어들이라고 칭할 수 있으며, 디코딩 레이어 유닛(LUb)에 포함된 복수의 레이어들은, 복수의 디코딩 레이어들이라고 칭할 수 있다.
본 개시의 예시적 실시예에 따르면, 레이어 유닛들은 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)을 포함할 수 있다. 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)은 서로 대칭형으로 구현될 수 있다. 예컨대, 복수의 인코딩 레이어 유닛(LUa)들은 각각 대응되는 레벨을 가질 수 있으며, 복수의 디코딩 레이어 유닛(LUb)들 또한 각각 대응되는 레벨을 가질 수 있다. 다시 말해, 복수의 인코딩 레이어 유닛(LUa)들은 복수의 레벨들을 가질 수 있으며, 복수의 디코딩 레이어 유닛(LUb)들 또한 복수의 레벨들을 가질 수 있다. 예컨대, 복수의 인코딩 레이어 유닛(LUa)들 및 복수의 디코딩 레이어 유닛(LUb)들이 갖는 복수의 레벨들의 수는 서로 같을 수 있다. 예컨대, 서로 동일한 레벨의 인코딩 레이어 유닛(LUa)과 디코딩 레이어 유닛(LUb)은 동일한 타입의 레이어를 포함할 수 있다. 또한, 서로 동일한 레벨의 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)은 스킵 커넥션이 설립될 수 있다. 인코딩 레이어 유닛(LUa)은 이미지 데이터를 순차적으로 인코딩할 수 있으며, 디코딩 레이어 유닛(LUb)은 순차적인 디코딩에 의해 출력 데이터를 출력할 수 있다.
도 5를 참조하면, 디코딩 레이어 유닛(LUb)은 인코딩 레이어 유닛(LUa)이 인코딩한 데이터를 수신할 수 있다. 예컨대, 인코딩한 데이터는 피처맵일 수 있다. 디코딩 레이어 유닛(LUb)은 인코딩 레이어 유닛(LUa)과 설립된 스킵 커넥션(skip connection)에 의해 인코딩한 데이터를 수신할 수 있다. 스킵 커넥션은, 예컨대, 인코딩 레이어 유닛(LUa)과 디코딩 레이어 유닛(LUb)의 사이에 있는, 중간 레이어 유닛에 데이터를 전파하는 과정을 생략하고, 인코딩 레이어 유닛(LUb)이 디코딩 레이어 유닛(LUb)으로 직접 전파하는 것을 의미한다. 다시 말해, 인코딩 레이어 유닛(LUa)은 동일한 레벨의 디코딩 레이어 유닛(LUb)으로 데이터를 직접 전파할 수 있다. 또는, 동일한 레벨의 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)은, 스킵 레벨에 따라 활성화 또는 비활성화되는 스킵 커넥션에 의해 선택적으로 연결될 수 있다. 즉, 스킵 커넥션은 스킵 레벨에 기초한 선택적인 연결관계일 수 있다.
처리 로직(200)은 인공 신경망 모델(100)을 로딩(load)하고, 입력 데이터(IDTA)를 기반으로 한 연산 처리를 수행할 수 있으며, 연산 처리 결과에 따른 출력 데이터(DOTA)를 출력할 수 있다. 처리 로직(200)은 인공 신경망 모델(100)의 다양한 파라미터를 제어할 수 있다. 예컨대, 인코딩 레이어 유닛(LUa) 또는 디코딩 레이어 유닛(LUb)이 출력하는 피처맵의 너피(W), 높이(H) 및 깊이(D) 중 적어도 하나의 값을 제어할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 인공 신경망 모델을 설명하기 위함이다.
도 6을 참고하면, 인공 신경망 모델(100)은 입력 레이어(IL), 출력 레이어(OL), 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)을 포함할 수 있다. 인공 신경망 모델(100)은 입력 데이터(IDTA)를 수신하고, 입력 레이어(IL), 인코딩 레이어 유닛(LUa), 디코딩 레이어 유닛(LUb) 및 출력 레이어(OL)에 의해 입력 데이터(IDTA)의 피처 값을 연산할 수 있다. 예컨대, 인공 신경망 모델(100)은 테트라 이미지를 수신하고, RGB 이미지로 변환하기 위한 연산을 처리할 수 있다.
본 개시의 예시적 실시예에 따르면, 입력 레이어(IL)는 제1 인코딩 레이어 유닛(LUa1)으로 피처맵(FMa0)을 출력할 수 있다. 예컨대, 입력 레이어(IL)는 컨볼루션 레이어 일 수 있다. 도 2에서 전술한 바와 유사하게, 입력 레이어(IL)는 입력 데이터(IDTA) 및 웨이트 맵에 대한 컨볼루션 연산을 수행할 수 있다. 이 경우, 웨이트 맵은 입력 데이터(IDTA)를 횡단하면서 일정한 스트라이드 값으로 컨볼루션 연산을 수행할 수 있다.
인코딩 레이어 유닛(LUa)은 이전의 인코딩 레이어 유닛에서 출력된 피처맵을 수신하고, 각각의 인코딩 레이어 유닛(예컨대, LUa1)에 할당된 연산을 수행할 수 있다. 예를 들어, 제1 인코딩 레이어 유닛(LUa1)은 피처맵(FMa0)을 수신하고, 제1 인코딩 레이어 유닛(LUa1)에 포함된 다양한 레이어들에 의한 연산을 수행할 수 있다. 예를 들어, 인코딩 레이어 유닛(LUa)은 컨볼루션 레이어, 샘플링 레이어 및 활성 레이어를 포함할 수 있다. 컨볼루션 레이어는 컨볼루션 연산을 수행할 수 있다. 샘플링 레이어는 다운-샘플링, 업-샘플링, 평균 풀링 또는 최대 풀링 연산을 수행할 수 있다. 활성 레이어는 ReLU(Rectified Linear Unit) 함수 또는 시그모이드(sigmoid) 함수에 의한 연산을 수행할 수 있다. 제1 인코딩 레이어 유닛(LUa1)은 연산 결과에 기초하여 피처맵(FMa1)을 출력할 수 있다.
제1 인코딩 레이어 유닛(LUa1)에서 출력된 피처맵(FMa1)은, 입력된 피처맵(FMa0) 보다 너비 및 높이가 작을 수 있으며, 깊이가 클 수 있다. 즉, 제1 인코딩 레이어 유닛(LUa1)은 피처맵(FMa1)의 너비, 높이 및 깊이를 제어할 수 있으며, 예컨대, 깊이가 과도하게 커지지 않도록 제어할 수 있다. 제1 인코딩 레이어 유닛(LUa1)은 피처맵(FMa1)의 깊이를 설정하는 파라미터를 가질 수 있다. 한편, 제1 인코딩 레이어 유닛(LUa1)은 다운 샘플링 레이어(DS)를 포함할 수 있다. 다운 샘플링 레이어(DS)는 입력된 피처맵(FMa0)에 포함된 피처 값들 중 소정의 피처 값들을 선택하고, 피처맵(FMa1)의 피처 값으로 출력할 수 있다. 다시 말해, 다운 샘플링 레이어(DS)는 피처맵(FMa1)의 너비 및 높이를 제어할 수 있다. 제2 인코딩 레이어 유닛(LUa2) 및 제3 인코딩 레이어 유닛(LUa3)도 제1 인코딩 레이어 유닛(LUa1)과 유사하게 연산을 처리할 수 있다. 즉, 이전의 인코딩 레이어 유닛으로부터 피처맵을 수신하고, 현재의 레이어 유닛에 포함된 복수의 레이어들에 의해 연산을 처리하며, 다음의 인코딩 레이어 유닛으로 연산 결과를 포함하는 피처맵을 출력할 수 있다.
인코딩 레이어 유닛(LUa)은 다음의 인코딩 레이어 유닛(LUa) 또는 동일한 레벨의 디코딩 레이어 유닛(LUb)에 출력할 수 있다. 각각의 인코딩 레이어 유닛(LUa1)은 다음의 인코딩 레이어 유닛(LUa)과 고정적으로 연결되어 있을 수 있으며, 동일한 레벨의 디코딩 레이어 유닛(LUb)과 스킵 커넥션들(SK0~SK3)에 의해 연결되어 있을 수 있다. 동일한 레벨은, 예컨대 입력 레이어(IL)로부터의 순서와 출력 레이어(OL)로부터의 순서가 각각 동일한 경우를 의미할 수 있으며, 동일한 레벨의 레이어 유닛들은, 예컨대 제1 인코딩 레이어 유닛(LUa1) 및 제1 디코딩 레이어 유닛(LUb1)일 수 있다.
본 개시의 예시적 실시예에 따르면, 처리 로직(200), NPU(13) 또는 전자 장치(10)에 의해 복수의 스킵 커넥션들(SK0~SK3) 중 적어도 일부가 선택될 수 있다. 예컨대, 처리 로직(200)은 스킵 레벨에 관한 정보를 수신할 수 있다. 인공 신경망 모델(100)에 스킵 레벨이 설정된 경우, 기설정된 스킵 레벨에 해당하는 스킵 커넥션들(SK0~SK3)은 활성화 될 수 있다. 예컨대, 인공 신경망 모델(100)의 스킵 레벨이 2 인 경우, 제1 스킵 커넥션(SK0) 및 제2 스킵 커넥션(SK1)이 활성화될 수 있다. 활성화된 스킵 커넥션에 의해 인코딩 레이어 유닛(LUa)은 디코딩 레이어 유닛(LUb)으로 피처맵을 출력할 수 있다. 비활성화된 스킵 커넥션(예컨대, SK2, SK3)은 피처맵을 전파할 수 없다.
본 개시의 예시적 실시예에 따르면, 동일한 레벨의 레이어 유닛(예컨대, LUa1, LUb1)은 실질적으로 동일한 사이즈의 피처맵을 처리할 수 있다. 예컨대, 제1 인코딩 레이어 유닛(LUa1)이 수신하는 피처맵(FMa0)과 제1 디코딩 레이어 유닛(LUb1)이 출력하는 피처맵(FMb0)의 사이즈는 실질적으로 동일할 수 있다. 예컨대, 피처맵의 사이즈는, 너비, 높이 및 깊이 중 적어도 하나를 포함할 수 있다. 또한, 제1 인코딩 레이어 유닛(LUa1)이 출력하는 피처맵(FMa1)과 제1 디코딩 레이어 유닛(LUb1)이 수신하는 피처맵(FMb1)의 사이즈는 실질적으로 동일할 수 있다.
본 개시의 예시적 실시예에 따르면, 동일한 레벨의 인코딩 레이어 유닛(LUa)과 디코딩 레이어 유닛(LUb)은, 실질적으로 동일한 샘플링 사이즈를 가질 수 있다. 예컨대, 제1 인코딩 레이어 유닛(LUa)이 다운 샘플링 사이즈는 제1 디코딩 레이어 유닛(LUb)이 업 샘플링 사이즈와 실질적으로 동일할 수 있다.
디코딩 레이어 유닛(LUb)은 이전의 디코딩 레이어 유닛(LUb)으로부터 피처맵을 수신하거나, 동일한 레벨의 인코딩 레이어 유닛(LUa)으로부터 피처맵을 수신할 수 있다. 디코딩 레이어 유닛(LUb)은 수신한 피처맵을 이용하여 연산을 처리할 수 있다. 예를 들어, 디코딩 레이어 유닛(LUb)은 컨볼루션 레이어, 샘플링 레이어 및 활성 레이어를 포함할 수 있다.
제1 인코딩 레이어 유닛(LUa1)에서 출력된 피처맵(FMa1)은, 입력된 피처맵(FMa0) 보다 너비 및 높이가 작을 수 있으며, 깊이가 클 수 있다. 즉, 제1 인코딩 레이어 유닛(LUa1)은 피처맵(FMa1)의 너비, 높이 및 깊이를 제어할 수 있으며, 예컨대, 깊이가 과도하게 커지지 않도록 제어할 수 있다. 제1 인코딩 레이어 유닛(LUa1)은 피처맵(FMa1)의 깊이를 설정하는 파라미터를 가질 수 있다.
업 샘플링 레이어(US)는 입력된 피처맵의 사이즈를 조절할 수 있다. 예컨대, 업 샘플링 레이어(US)는 피처맵의 너비와 높이를 조절할 수 있다. 업 샘플링 레이어(US)는 입력된 피처맵의 각 피처값들과, 상기 각 피처값들에 인접한 피처값들을 이용하여 업 샘플링 동작을 수행할 수 있다. 일 예로, 업 샘플링 레이어(US)는 니어리스트 네이버(Nearest Neighbor) 방식을 이용하여 동일한 피처 값들을 출력 피처맵에 기입하는 레이어 일 수 있다. 다른 예로, 업 샘플링 레이어(US)는 트랜스포즈(transpose) 컨볼루션 레이어일 수 있으며, 소정의 웨이트맵을 이용하여 이미지를 업샘플링할 수 있다.
출력 레이어(OL)는 제1 디코딩 레이어 유닛(LUb1)으로부터 출력된 피처맵(FMb0)을 출력 데이터(ODTA)로 복원할 수 있다. 출력 레이어(OL)는 피처맵을 이미지 데이터로 변환하는 복원 레이어일 수 있다. 예컨대, 출력 레이어(OL)는 컨볼루션 레이어, 디컨볼루션 레이어 및 트랜스포즈 컨볼루션 레이어 중 하나일 수 있다. 예컨대, 변환된 이미지 데이터는 RGB 데이터일 수 있다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따른 인코딩 레이어 유닛 및 디코딩 레이어 유닛을 설명하기 위한 블록도이다.
도 7a를 참고하면, 인코딩 레이어 유닛(LUa)은 피처맵 블록(FMB) 및 다운 샘플링 레이어(DS)를 포함할 수 있으며, 컨볼루션 레이어(CONV)가 더 포함될 수도 있다. 피처맵 블록(FMB)는 복수의 컨볼루션 레이어, 복수의 활성 레이어 및 합산기를 포함할 수 있으며, 도 8에서 자세히 후술하기로 한다.
입력 레이어(IL)는 출력 레이어(OL)와 스킵 커넥션을 형성할 수 있다. 예컨대, 입력 레이어(IL)에서 출력된 피처맵(FMa0)은 제1 인코딩 레이어 유닛(LUa1) 및 출력 레이어(OL)로 출력될 수 있다. 다른 예로, 스킵 레벨이 0 인 경우, 입력 레이어(IL)는 출력 레이어(OL)로 피처맵을 직접 출력하지 않을 수 있다. 또 다른 예로, 스킵 레벨이 1 이상인 경우, 입력 레이어(IL)는 출력 레이어(OL)로 피처맵을 직접 출력할 수 있다.
인코딩 레이어 유닛(LUa)에 포함된 복수의 레이어들은, 각각에 대응되는 디코딩 레이어 유닛(LUb)으로, 스킵 커넥션을 형성할 수 있다. 예컨대, 인코딩 레이어 유닛(LUa)에 포함된 복수의 레이어들 중 적어도 일부는, 동일한 레벨의 디코딩 레이어 유닛(LUb)에 포함된 복수의 레이어들 중 적어도 일부와 스킵 커넥션을 형성할 수 있다.
인코딩 레이어 유닛(LUa)에 포함된 복수의 레이어들은, 그와 대칭적인 동작을 수행하는 디코딩 레이어 유닛(LUb)에 포함된 복수의 레이어들과 스킵 커넥션을 형성할 수 있다. 예컨대, 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)에 포함된 서로 동일한 레벨의 컨볼루션 레이어(CONV) 및 피처맵 블록(FMB)는 스킵 커넥션을 형성할 수 있다. 또한, 다운 샘플링 레이어(DS)는 그와 동일한 레벨의 업 샘플링 레이어(US)와 스킵 커넥션을 형성할 수 있다. 도 7a 및 도 7b를 참고하면, 다운 샘플링 레이어(La13)은 그와 동일한 레벨의 업 샘플링 레이어(Lb11)와 스킵 커넥션을 형성할 수 있으며, 피처맵 블록(La22)는 그와 동일한 레벨의 피처맵 블록(Lb22)와 스킵 커넥션을 형성할 수 있다. 다만, 이는 설명의 편의를 위함이며, 피처맵 블록(La12) 또한 그와 동일한 레벨의 피처맵 블록(Lb21)과 스킵 커넥션을 형성할 수 있다.피처맵 블록
스킵 레벨이 설정된 경우, 인공 신경망 모델(100)은 기설정된 스킵 레벨에 기초하여 복수의 스킵 커넥션들 중 일부가 활성화 될 수 있다. 즉, 인공 신경망 모델(100)은 기설정된 스킵 레벨에 기초한 레벨을 갖는 인코딩 레이어 유닛(LUa)으로부터 디코딩 레이어 유닛(LUb)으로 데이터를 직접 전파할 수 있다. 일 예로, 스킵 레벨이 0인 경우, 모든 스킵 커넥션들은 비활성화 될 수 있으며, 인코딩 레이어 유닛(LUa)으로부터 스킵 커넥션들을 경유하여 피처맵을 전파할 수 없다. 다른 예로, 스킵 레벨이 1인 경우, 제1 스킵 커넥션(SK0)이 활성화되고, 입력 레이어(IL)는 피처맵(FMa0)을 출력 레이어(OL)로 전파할 수 있다. 또 다른 예로, 스킵 레벨이 2인 경우, 입력 레이어(IL) 및 제1 인코딩 레이어 유닛(LUa1)에 포함된 레이어들 중 적어도 일부는, 출력 레이어(OL) 및 제1 디코딩 레이어 유닛(LUb1)에 포함된 레이어들 중 적어도 일부에게, 피처맵을 전파할 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 피처맵 블록을 설명하기 위한 블록도이다.
도 8을 참고하면, 피처맵 블록(FMB)는 복수의 레이어들 및 합산기(SM)를 포함할 수 있다. 복수의 레이어들은, 복수의 컨볼루션 레이어들(CL0, CL1, CLx) 및 복수의 활성 레이어들(AL0, AL1, ALn)을 포함할 수 있다.
본 개시의 예시적 실시에에 따르면, 피처맵 블록(FMB)은 피처맵(FMc)을 수신할 수 있다. 피처맵(FMc)에 기초하여, 입력 활성 레이어(AL0)는 중간 레이어 그룹(LG) 및 합산기(SM)로 피처맵(FMd)을 출력할 수 있고, 중간 레이어 그룹(MID)은 피처맵(FMf)을 출력할 수 있다. 합산기(SM)는 중간 레이어 그룹(MID) 및 입력 활성 레이어(AL0)로부터 수신한 피처맵들(FMd, FMf)을 합산하고, 피처맵(FMg)을 출력할 수 있다.
선두 레이어 그룹(FR)은 복수의 레이어들(CL0, AL0)을 포함할 수 있다. 선두 레이어 그룹(RF)은 피처맵 블록(FMB)의 앞단에 위치할 수 있으며, 피처맵 블록(FMB)이 수신하는 피처맵(FMc)을 수신할 수 있다. 일 예로, 선두 레이어 그룹(RF)은 하나의 컨볼루션 레이어(CL0) 및 하나의 활성 레이어(AL0)를 포함할 수 있다. 다른 예로, 선두 레이어 그룹(RF)은 적어도 하나 이상의 컨볼루션 레이어 및 적어도 하나 이상의 활성 레이어를 포함할 수 있다. 선두 레이어 그룹(FR)은 중간 레이어 그룹(MID) 및 합산기(SM)로 피처맵(FMd)을 출력할 수 있다.
중간 레이어 그룹(MID)은 복수의 레이어들(CL1, AL1 ?? CLx)을 포함할 수 있다. 일 예로, 중간 레이어 그룹(MID)은 복수의 컨볼루션 레이어들 및 복수의 활성 레이어들을 포함할 수 있다. 중간 레이어 그룹(MID)에 포함된 복수의 컨볼루션 레이어들 및 복수의 활성화 레이어들은 교번적으로 배치될 수 있다. 이 경우, 컨볼루션 레이어(CL1)가 출력한 피처맵(FMe)을 활성 레이어(AL1)가 수신할 수 있다. 중간 레이어 그룹(MID)의 가장 앞단에 컨볼루션 레이어(CL1)가 배치될 수 있으며, 중간 레이어 그룹(MID)의 가장 뒷단에 컨볼루션 레이어(CLx)가 배치될 수 있다. 다르게 발하면, 컨볼루션 레이어(CL1)가 수신하는 피처맵(FMd)은 중간 레이어 그룹(MID)이 수신하는 피처맵(FMd)과 동일하며, 컨볼루션 레이어(CLx)가 출력하는 피처맵(FMf)은 중간 레이어 그룹(MID)이 출력하는 피처맵(FMf)과 동일할 수 있다.
출력 활성 레이어(ALn)는 합산기(SM)로부터 출력된 피처맵(FMg)을 수신하고, 피처맵의 특성을 활성화시키며, 피처맵(FMh)을 출력할 수 있다. 출력 활성 레이어(ALn)는 피처맵 블록(FMB)에서 가장 뒷단에 배치될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 인공 신경망 모델을 설명하기 위함이다.
도 9를 참조하면, 인공 신경망 모델(100)은 각 레벨(LV)마다 서로 다른 너비(W), 높이(H) 및 깊이(D)를 갖는 피처맵을 포함할 수 있다. 예컨대, 입력 레이어(IL)가 출력한 피처맵(FMa0)은 가장 낮은 깊이(D) 값를 가질 수 있으며, 인코딩 레이어 유닛(LUa)에 의한 연산이 반복될수록, 깊이(D) 값은 증가할 수 있다. 한편, 깊이(D) 값이 지수적으로 올라가게 되면 단위 시간당 처리해야 하는 연산량(예컨대, 연산량의 단위는 TOPS(trillion operations per second))이 급격하게 증가하여 연산 시간이 증가할 수 있다.
본 개시의 예시적 실시예에 따르면, 인공 신경망 모델(100)은 각 레이어에 할당된 연산을 수행하고, 피처맵의 깊이(D) 값을 제어할 수 있다. 예컨대, 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)은 각 레벨에 대응되는 깊이(D) 값을 갖는 피처맵을 출력할 수 있다. 즉, 출력된 피처맵의 깊이(D) 값은, 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)의 레벨에 따른 함수일 수 있다. 일 예로, 처리 로직(200)은 인공 신경망 모델(100)에서 출력되는 피처맵의 깊이(D)를 제어할 수 있고, 다른 예로, 각각의 레이어에 깊이(D)에 관한 함수가 저장되어 있을 수 있다. 또 다른 예로, 인공 신경망 모델(100) 외부의 메모리에 깊이(D)에 관한 함수가 저장되고, 상기 함수를 각각의 레이어에 적용할 수도 있다.
본 개시의 예시적 실시예에 따르면, 깊이(D)에 관한 함수는 각 레이어의 레벨(LV)에 대한 함수로 표현될 수 있다. 일 예로, 깊이(D)에 관한 함수는 레벨(LV)에 대해 선형적일 수 있다. 즉, 깊이(D)에 관한 함수는 레벨(LV)을 변수로 하는 선형 함수일 수 있다. 예컨대, 깊이(D)에 관한 함수(FD)는 FD=a*LV+b와 같이 표현될 수 있다. 다른 예로, 깊이(D)에 관한 함수는 레벨(LV)을 지수 함수의 밑(base)이 될 수 있다. 예컨대, 깊이(D)에 관한 함수(FD)는 FD=a*(LV^2)+b와 같이 표현될 수 있다. 또는, 깊이(D)에 관한 함수(FD)는 FD=a*(LV^c)+b와 같이 표현될 수 있다. 또 다른 예로, 깊이(D)에 관한 함수(FD)는 레벨(LV)에 대한 로그 함수일 수 있으며, 밑(base)은 임의적으로 선택될 수 있다. 예컨대, 깊이(D)에 관한 함수(FD)는 FD=b*log(x-2)와 같이 표현될 수 있다. a, b 및 c는 상수이며, LV는 각 레이어의 레벨을 나타낸다. 한편, 상수 a는 a >= b/2 의 관계를 만족할 수 있다.
본 개시의 예시적 실시예에 따르면, 깊이(D)에 관한 함수는 각 레이어의 레벨(LV)이 지수(exponent)가 아닌 함수일 수 있다. 예컨대, 깊이(D)에 관한 함수(FD)는 b*(2^LV)가 아닐 수 있다. 또는, 깊이(D)에 관한 함수(FD)는 레이어의 레벨(LV)이 지수인 함수보다 작은 깊이(D)를 가질 수 있다. 인공 신경망 모델(100)에 의한 연산 시간이 과도하게 증가하기 때문이다.
도 10은 본 개시의 예시적 실시예에 따른 피처맵의 깊이 값을 나타내는 표이다. 도 10은 도 9에서 전술한 함수(FD)들을 예시한 것이다.
본 개시의 예시적 실시예에 따르면, 함수들(FD1, FD2)은 인공 신경망 모델(100)이 가질 수 있고, 함수(FD3)는 인공 신경망 모델(100)이 가지지 않는 함수이다. 인공 신경망 모델(100)이 갖는 함수들(FD1, FD2)은 레벨(LV)이 증가하여도 비교적 단조롭게 피처맵의 깊이 값이 증가하지만, 함수(FD3)의 경우, 레벨(LV)을 지수로 갖기 때문에 피처맵의 깊이 값이 급격하게 증가할 수 있다. 따라서, 인공 신경망 모델(100)은 연산 시간의 단축시키기 위해 레벨(LV)을 지수로 갖지 않는 함수를 가질 수 있다. 예컨대, 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)은 레벨(LV)을 지수로 갖지 않는 함수에 의해, 출력 피처맵의 깊이를 조절할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 다운 샘플링 동작을 설명하기 위함이다.
도 11을 참고하면, 다운 샘플링 레이어(DS)는 피처맵(31)을 수신하고, 피처맵(31)의 너비(W) 및 높이(H)를 제어할 수 있다. 예컨대, 다운 샘플링 레이어(DS)는 샘플링 정보(SIF)에 기초하여, 너비(W) 및 높이(H)가 조절된 피처맵(32)을 출력할 수 있다.
다운 샘플링 레이어(DS)는 샘플링 정보(SIF)에 기초하여 다운 샘플링 동작을 수행할 수 있다. 다시 말해, 다운 샘플링 레이어(DS)는 피처맵(31)에 포함된 일부의 피처 값들을 선택하고, 선택된 피처 값들은 출력된 피처맵(32)을 구성할 수 있다. 예컨대, 피처맵(32)은 피처맵(31) 보다 사이즈(예컨대, 너비(W) 및 높이(H))가 작을 수 있으며, 더 적은 수의 피처 값들을 포함할 수 있다. 한편, 샘플링 정보(SIF)는 처리 로직(200)이 수신할 수도 있으며, 샘플링 정보(SIF)는 다운 샘플링 레이어(DS)에 기록된 정보일 수도 있다.
샘플링 정보(SIF)는 샘플링 사이즈 정보, 샘플링 위치 정보 및 샘플링 윈도우 크기 정보 등을 포함할 수 있다. 다운 샘플링 레이어(DS)는 샘플링 사이즈 정보 에 기초하여 출력 피처맵(32)의 크기를 정할 수 있다. 예컨대, 샘플링 사이즈가 2 인 경우, 출력된 피처맵(32)의 너비(W) 및 높이(H) 중 적어도 하나가 2 를 가질 수 있다. 예컨대, 피처맵(32)의 너비(W)가 2 인 경우, 2 개의 열들(columns)을 가질 수 있고, 피처맵(32)의 높이(H)가 3 인 경우, 3 개의 행들(rows)을 가질 수 있다.
다운 샘플링 레이어(DS)는 샘플링 위치 정보 에 기초하여 각각의 피처맵 영역들(FA1~FA4)에서 동일한 위치의 피처 값들을 선택할 수 있다. 예컨대, 샘플링 위치 정보가 1 행, 1 열의 값을 지시하는 경우, 다운 샘플링 레이어(DS)는 각각의 피처맵 영역들(FA1~FA4)에서 1 행, 1 열의 값을 갖는 12, 30, 34, 37을 산출하고, 피처맵(32)을 생성할 수 있다.
다운 샘플링 레이어(DS)는 샘플링 윈도우 크기 정보에 기초하여 각각의 피처맵 영역들(FA1~FA4)의 사이즈를 정할 수 있다. 예컨대, 샘플링 윈도우 크기가 2인 경우, 하나의 피처맵 영역의 너비 및 높이 중 적어도 하나는 2를 가질 수 있다.
본 개시의 예시적 실시예에 따르면, 다운 샘플링 레이어(DS)는 맥스 풀링 레이어 및 에버리지 풀링 레이어와 같은 풀링 레이어보다 연산 속도가 빠르고 이미지 퀄리티가 개선된 피처맵(32)을 출력할 수 있다. 예컨대, 풀링 레이어에서 소요되는 풀링 연산 시간에 비해, 다운 샘플링 레이어(DS)가 수행하는 다운 샘플링 동작의 연산 시간이 더 짧을 수 있다.
도 12은 본 개시의 예시적 실시예에 따른 어플리케이션 프로세서를 설명하기 위한 블록도이다.
도 12에 도시된 시스템은 어플리케이션 프로세서(400)일 수 있으며, 어플리케이션 프로세서(400)는 반도체 칩으로서 시스템 온 칩(SoC)으로 구현될 수 있다.
어플리케이션 프로세서(400)는 프로세서(410) 및 동작 메모리(420)를 포함할 수 있다. 또한, 도 12에는 도시되지 않았으나, 어플리케이션 프로세서(400)는 시스템 버스에 연결되는 하나 이상의 IP(Intellectual Property) 모듈들을 더 포함할 수도 있다. 동작 메모리(420)는 어플리케이션 프로세서(400)가 채용되는 시스템의 동작과 관련된 각종 프로그램 및 명령어 등의 소프트웨어를 저장할 수 있으며, 일 예로서 운영 체제(421) 및 인공 신경망 모듈(422)을 포함할 수 있다. 프로세서(410)는 동작 메모리(420)에 로딩된 인공 신경망 모듈(422)을 실행할 수 있으며, 전술한 실시예들에 따라 인코딩 레이어 유닛(LUa) 및 디코딩 레이어 유닛(LUb)이 포함된 인공 신경망 모델(100)에 기초하여 연산 처리를 수행할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 이미징 장치를 설명하기 위한 블록도이다.
도 13을 참조하면, 이미징 장치(5000)는 촬영부(5100), 이미지 센서(500) 및 프로세서(5200)를 포함할 수 있다. 예컨대, 이미징 장치(5000)는 이미지 프로세싱을 수행할 수 있는 전자 장치일 수 있다. 이미징 장치(5000)는 객체(S)를 촬영하여 입력 영상을 획득할 수 있다. 프로세서(5200)는 렌즈 구동부(5120), 타이밍 컨트롤러(520) 등에 각 구성 요소의 동작을 위한 제어 신호 및/또는 정보를 제공할 수 있다.
촬영부(5100)는 광을 수신하는 구성 요소로서, 렌즈(5110) 및 렌즈 구동부(5120)를 포함할 수 있으며, 렌즈(5110)는 적어도 하나의 렌즈들을 구비할 수 있다. 이 외에도, 촬영부(5100)는 조리개 및 조리개 구동부를 더 포함할 수 있다.
렌즈 구동부(5120)는 프로세서(5200)와 초점 검출에 관한 정보를 통신할 수 있고, 프로세서(5200)에서 제공된 제어 신호에 따라 렌즈(5110)의 위치를 조절할 수 있다.
이미지 센서(500)는 입사되는 광을 이미지 데이터로 변환할 수 있다. 이미지 센서(500)는 픽셀 어레이(510), 타이밍 컨트롤러(520) 및 이미지 신호 처리부(530)를 포함할 수 있다. 렌즈(5110)를 투과한 광학 신호는 픽셀 어레이(510)의 수광면에 이르러 피사체의 상을 결상할 수 있다.
픽셀 어레이(510)는 광학 신호를 전기 신호로 변환하는 CIS(Complementary Metal Oxide Semiconductor Image Sensor)일 수 있다. 이와 같은 픽셀 어레이(510)는 타이밍 컨트롤러(520)에 의해 노광 시간 및 감도 등이 조절될 수 있다. 일 예로, 픽셀 어레이(510)는 도 3에서 전술한 테트라 이미지를 획득하기 위해 이용되는 컬러 필터 어레이를 포함할 수 있다.
프로세서(5200)는 이미지 신호 처리부(130)로부터 이미지 데이터를 수신할 수 있고, 이미지 데이터에 관한 다양한 이미지 후처리 동작을 수행할 수 있다. 예컨대, 프로세서(5200)는 전술한 실시예들에 따른 인공 신경망 모델(100)에 기초하여 입력 이미지(예컨대, 테트라 이미지)를 출력 이미지(예컨대, RGB 이미지)로 변환할 수 있다. 한편, 이에 제한되지는 않으며, 이미지 신호 처리부(530) 또한 인공 신경망 모델(100)에 의한 연산 처리를 수행할 수 도 있다. 또는, 이미징 장치(5000)의 내부 또는 외부에 포함된 다양한 연산 처리 장치들은, 인공 신경망 모델(100)에 기초하여 입력 이미지의 포맷을 변환하고, 출력 이미지를 생성할 수 있다.
본 개시의 실시예에 따르면, 이미징 장치(5000)는 다양한 전자 기기에 포함될 수 있다. 예를 들어, 이미징 장치(5000)는 카메라, 스마트폰, 웨어러블 기기, 사물 인터넷(Internet of Things, IoT) 기기, 태블릿 PC(Personal Computer), 노트북 PC, PDA(Personal Digital Assistant), PMP(portable Multimedia Player), 네비게이션(navigation) 장치, 디스플레이 장치 등과 같은 전자 기기에 탑재될 수 있다. 또한 이미징 장치(5000)는 차량, 가구, 제조 설비, 도어, 각종 계측 기기 등에 부품으로서 구비되는 전자 기기에 탑재될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 전자 장치
11: CPU
12: RAM
13: NPU
14: 메모리
15: 센서 모듈
16: 버스

Claims (20)

  1. 전자 장치에 있어서,
    입력 이미지 데이터를 수신하고, 인공 신경망 모델을 이용하여 상기 입력 이미지 데이터와 포맷이 상이한 출력 이미지 데이터를 생성하는 처리 로직을 포함하고,
    상기 인공 신경망 모델은, 복수의 레이어들을 포함하며 복수의 레벨들에 각각 위치한 복수의 인코딩 레이어 유닛들; 및 복수의 레이어들을 포함하며 동일한 레벨의 상기 복수의 인코딩 레이어 유닛들과 스킵 커넥션을 형성하는 복수의 디코딩 레이어 유닛들을 포함하고,
    제1 레벨에 위치한 제1 인코딩 레이어 유닛은,
    제1 입력 피처맵을 수신하고, 상기 제1 레벨의 다음 레벨의 인코딩 레이어 유닛 및 상기 스킵 커넥션으로 연결된 디코딩 레이어 유닛으로 상기 제1 입력 피처맵에 기반한 제1 출력 피처맵을 출력하도록 구성되는 것을 특징으로 하는 전자 장치.
  2. 제1항에 있어서,
    상기 처리 로직은, 스킵 레벨 정보를 수신하고, 상기 스킵 레벨 정보가 지시하는 스킵 레벨에 기초하여 상기 스킵 커넥션을 활성화 또는 비활성화 하도록 구성되는 것을 특징으로 하는 전자 장치.
  3. 제1항에 있어서,
    상기 스킵 커넥션에 의해 연결된 인코딩 레이어 유닛의 레이어 및 디코딩 레이어 유닛의 레이어는, 서로 대칭적인 동작을 수행하는 것을 특징으로 하는 전자 장치.
  4. 제1항에 있어서,
    상기 제1 인코딩 레이어 유닛은, 상기 제1 레벨에 기초하여 상기 제1 출력 피처맵의 깊이를 조절하도록 구성되는 것을 특징으로 하는 전자 장치.
  5. 제4항에 있어서,
    상기 제1 인코딩 레이어 유닛은,
    상기 제1 레벨을 변수로 갖는 함수에 기초하여 출력 피처맵의 깊이를 조절하며, 상기 함수는 상기 제1 레벨을 변수로 한 선형 함수인 것을 특징으로 하는 전자 장치.
  6. 제1항에 있어서,
    상기 인코딩 레이어 유닛 및 상기 디코딩 레이어 유닛은, 서로 동일한 레벨의 컨볼루션 레이어들이 상기 스킵 커넥션으로 연결되거나, 서로 동일한 레벨의 피처맵 블록이 상기 스킵 커넥션으로 연결되거나, 서로 동일한 레벨의 다운 샘플링 레이어 및 업 샘플링 레이어들이 상기 스킵 커넥션으로 연결되도록 구성되는 것을 특징으로 하는 전자 장치.
  7. 제1항에 있어서,
    각 레벨의 상기 인코딩 레이어 유닛 및 상기 디코딩 레이어 유닛은 피처맵 블록을 포함하며,
    상기 피처맵 블록은, 제1 피처맵을 출력하는 선두 레이어 그룹, 상기 제1 피처맵을 수신하고 제2 피처맵을 출력하는 중간 레이어 그룹, 상기 제1 피처맵 및 상기 제2 피처맵을 합산하고 제3 피처맵을 출력하는 합산기 및 상기 제3 피처맵에 기반하여 제4 피처맵을 출력하는 출력 활성 레이어를 포함하는 것을 특징으로 하는 전자 장치.
  8. 제1항에 있어서,
    상기 인코딩 레이어 유닛은,
    제5 피처맵을 수신하고, 상기 제5 피처맵에 포함된 피처 값들 중 일부를 선택하며, 상기 제5 피처맵의 사이즈보다 작은 상기 제1 출력 피처맵을 출력하는 다운 샘플링 유닛을 포함하는 것을 특징으로 하는 전자 장치.
  9. 제1항에 있어서,
    상기 입력 이미지 데이터는, 테트라 이미지를 포함하며, 상기 출력 이미지 데이터는, RGB 이미지를 포함하는 것을 특징으로 하는 전자 장치.
  10. 전자 장치에 있어서,
    인공 신경망 모델을 이용하여 연산을 처리하는 처리 로직을 포함하고,
    상기 인공 신경망 모델은, 복수의 레이어들을 포함하며 복수의 레벨들에 각각 위치한 복수의 인코딩 레이어 유닛들; 및 복수의 레이어들을 포함하며 상기 복수의 레벨들에 각각 위치한 복수의 디코딩 레이어 유닛들을 포함하고,
    상기 복수의 레벨들 중 제1 레벨에 위치한 제1 인코딩 레이어 유닛은,
    제1 입력 피처맵을 수신하고, 상기 제1 레벨의 다음 레벨의 인코딩 레이어 유닛 및 상기 제1 레벨의 디코딩 레이어 유닛으로 제1 출력 피처맵을 출력하고, 상기 제1 레벨에 기초하여 상기 제1 출력 피처맵의 깊이를 조절하도록 구성되는 것을 특징으로 하는 전자 장치.
  11. 제10항에 있어서,
    상기 제1 인코딩 레이어 유닛은,
    상기 제1 레벨을 변수로 갖는 함수에 기초하여 출력 피처맵의 깊이를 조절하며, 상기 함수는 상기 제1 레벨이 지수(exponent)인 함수보다 깊이가 작게 조절되도록 구성되는 것을 특징으로 하는 전자 장치.
  12. 제10항에 있어서,
    서로 동일한 레벨에 위치한 상기 인코딩 레이어 유닛의 레이어 및 상기 디코딩 레이어 유닛의 레이어는 선택적으로 연결되도록 구성되는 것을 특징으로 하는 전자 장치.
  13. 제12항에 있어서,
    상기 처리 로직은, 스킵 레벨 정보를 수신하고, 상기 스킵 레벨 정보가 지시하는 스킵 레벨에 기초하여, 서로 동일한 레벨에 위치한 상기 복수의 인코딩 레이어 유닛들 및 상기 복수의 디코딩 레이어 유닛들의 연결을 활성화 또는 비활성화하도록 구성되는 것을 특징으로 하는 전자 장치.
  14. 제12항에 있어서,
    서로 동일한 레벨에 위치한 상기 인코딩 레이어 유닛의 레이어 및 상기 디코딩 레이어 유닛의 레이어는 서로 대칭적인 동작을 수행하는 것을 특징으로 하는 전자 장치.
  15. 제12항에 있어서,
    상기 인코딩 레이어 유닛 및 상기 디코딩 레이어 유닛은, 서로 동일한 레벨의 컨볼루션 레이어들을 선택적으로 연결하거나, 서로 동일한 레벨의 피처맵 블록이 선택적으로 연결하거나, 서로 동일한 레벨의 다운 샘플링 레이어 및 업 샘플링 레이어를 서로 연결하도록 구성되는 것을 특징으로 하는 전자 장치.
  16. 제10항에 있어서,
    각 레벨의 상기 인코딩 레이어 유닛 및 상기 디코딩 레이어 유닛은 피처맵 블록을 포함하며,
    상기 피처맵 블록은, 제1 피처맵을 출력하는 선두 레이어 그룹, 상기 제1 피처맵을 수신하고 제2 피처맵을 출력하는 중간 레이어 그룹, 상기 제1 피처맵 및 상기 제2 피처맵을 합산하고 제3 피처맵을 출력하는 합산기 및 상기 제3 피처맵에 기반하여 제4 피처맵을 출력하는 출력 활성 레이어를 포함하는 것을 특징으로 하는 전자 장치.
  17. 제16항에 있어서,
    상기 선두 레이어 그룹은, 하나의 컨볼루션 레이어 및 하나의 활성 레이어를 포함하며,
    상기 중간 레이어 그룹은, 복수의 컨볼루션 레이어들 및 복수의 활성 레이어들이 순차적으로 연결되도록 구성되는 것을 특징으로 하는 전자 장치.
  18. 제10항에 있어서,
    상기 인코딩 레이어 유닛은,
    제5 피처맵을 수신하고, 상기 제5 피처맵에 포함된 피처 값들 중 일부를 선택하며, 상기 제5 피처맵의 사이즈보다 작은 상기 제1 출력 피처맵을 출력하는 다운 샘플링 유닛을 포함하는 것을 특징으로 하는 전자 장치.
  19. 제18항에 있어서,
    상기 처리 로직은, 샘플링 위치 정보를 수신하고,
    상기 다운 샘플링 유닛은, 상기 제5 피처맵에 포함된 피처 값들 중 샘플링 위치 정보에 기초한 위치의 피처 값들을 선택하도록 구성되는 것을 특징으로 하는 전자 장치.
  20. 이미지 프로세싱을 수행하는 전자 장치에 있어서,
    네 개의 동일한 컬러 필터가 두 개의 행과 두 개의 열로 배열되어 하나의 픽셀 단위를 갖는 컬러 필터 어레이로부터 테트라 이미지 데이터를 수신하고, 인공 신경망 모델을 이용하여 상기 테트라 이미지 데이터와 포맷이 상이한 출력 이미지 데이터를 생성하는 처리 로직;을 포함하고,
    상기 인공 신경망 모델은, 복수의 레이어들을 포함하며 복수의 레벨들에 각각 위치한 복수의 인코딩 레이어 유닛들; 및 복수의 레이어들을 포함하며 동일한 레벨의 상기 복수의 인코딩 레이어 유닛들과 스킵 커넥션을 형성하는 복수의 디코딩 레이어 유닛들을 포함하고,
    제1 인코딩 레이어 유닛은,
    제1 입력 피처맵을 수신하고, 다음 레벨의 인코딩 레이어 유닛 및 상기 스킵 커넥션으로 연결된 디코딩 레이어 유닛으로 상기 제1 입력 피처맵에 기반한 제1 출력 피처맵을 출력하도록 구성되는 것을 특징으로 하는 전자 장치.
KR1020190077255A 2019-06-27 2019-06-27 인공 신경망 모델 및 이를 포함하는 전자 장치 KR20210001324A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190077255A KR20210001324A (ko) 2019-06-27 2019-06-27 인공 신경망 모델 및 이를 포함하는 전자 장치
US16/822,188 US11544813B2 (en) 2019-06-27 2020-03-18 Artificial neural network model and electronic device including the same
DE102020107490.5A DE102020107490A1 (de) 2019-06-27 2020-03-18 Künstliches neuronales netzwerkmodell und dieses enthaltende elektronische vorrichtung
CN202010428019.1A CN112149793A (zh) 2019-06-27 2020-05-19 人工神经网络模型和包括人工神经网络模型的电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190077255A KR20210001324A (ko) 2019-06-27 2019-06-27 인공 신경망 모델 및 이를 포함하는 전자 장치

Publications (1)

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

Family

ID=73747770

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190077255A KR20210001324A (ko) 2019-06-27 2019-06-27 인공 신경망 모델 및 이를 포함하는 전자 장치

Country Status (4)

Country Link
US (1) US11544813B2 (ko)
KR (1) KR20210001324A (ko)
CN (1) CN112149793A (ko)
DE (1) DE102020107490A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001324A (ko) * 2019-06-27 2021-01-06 삼성전자주식회사 인공 신경망 모델 및 이를 포함하는 전자 장치
KR20210109327A (ko) * 2020-02-27 2021-09-06 삼성전자주식회사 인공신경망의 학습 방법 및 장치
KR20220036014A (ko) * 2020-09-15 2022-03-22 삼성전자주식회사 이미지 센싱 시스템
CN116452416A (zh) * 2022-01-10 2023-07-18 北京三星通信技术研究有限公司 图像处理方法、装置、电子设备及计算机可读存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020154833A1 (en) 2001-03-08 2002-10-24 Christof Koch Computation of intrinsic perceptual saliency in visual environments, and applications
WO2003096669A2 (en) 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US7082572B2 (en) 2002-12-30 2006-07-25 The Board Of Trustees Of The Leland Stanford Junior University Methods and apparatus for interactive map-based analysis of digital video content
JP4840740B2 (ja) * 2004-12-01 2011-12-21 株式会社メガチップス 画素補間方法および画像判定方法
JP4911628B2 (ja) * 2008-01-28 2012-04-04 株式会社リコー 画像処理方法、画像処理装置及び画像撮像装置
US8929877B2 (en) 2008-09-12 2015-01-06 Digimarc Corporation Methods and systems for content processing
JP5341010B2 (ja) * 2010-04-15 2013-11-13 オリンパス株式会社 画像処理装置、撮像装置、プログラム及び画像処理方法
US9195903B2 (en) 2014-04-29 2015-11-24 International Business Machines Corporation Extracting salient features from video using a neurosynaptic system
US20160239706A1 (en) 2015-02-13 2016-08-18 Qualcomm Incorporated Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks
US10373050B2 (en) 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US11244191B2 (en) * 2016-02-17 2022-02-08 Intel Corporation Region proposal for image regions that include objects of interest using feature maps from multiple layers of a convolutional neural network model
US11144889B2 (en) * 2016-04-06 2021-10-12 American International Group, Inc. Automatic assessment of damage and repair costs in vehicles
US10751548B2 (en) * 2017-07-28 2020-08-25 Elekta, Inc. Automated image segmentation using DCNN such as for radiation therapy
EP3673298A1 (en) 2017-08-25 2020-07-01 ExxonMobil Upstream Research Company Automated seismic interpretation using fully convolutional neural networks
US11593552B2 (en) * 2018-03-21 2023-02-28 Adobe Inc. Performing semantic segmentation of form images using deep learning
US10803565B2 (en) 2018-07-10 2020-10-13 Intel Corporation Low-light imaging using trained convolutional neural networks
US11756160B2 (en) * 2018-07-27 2023-09-12 Washington University ML-based methods for pseudo-CT and HR MR image estimation
US11164067B2 (en) * 2018-08-29 2021-11-02 Arizona Board Of Regents On Behalf Of Arizona State University Systems, methods, and apparatuses for implementing a multi-resolution neural network for use with imaging intensive applications including medical imaging
JP2020043435A (ja) * 2018-09-07 2020-03-19 ソニーセミコンダクタソリューションズ株式会社 画像処理装置、画像処理方法および画像処理プログラム
US10547823B2 (en) * 2018-09-25 2020-01-28 Intel Corporation View interpolation of multi-camera array images with flow estimation and image super resolution using deep learning
CN112997479B (zh) * 2018-11-15 2022-11-11 Oppo广东移动通信有限公司 跨阶段跳跃连接处理图像的方法、系统和计算机可读介质
CN113454680A (zh) * 2019-03-21 2021-09-28 华为技术有限公司 图像处理器
KR20210001324A (ko) * 2019-06-27 2021-01-06 삼성전자주식회사 인공 신경망 모델 및 이를 포함하는 전자 장치
JP2023503355A (ja) * 2019-11-27 2023-01-27 シンハ,パーヴェル 画像センサデータの画像解析への直接変換を実行するためのシステム及び方法

Also Published As

Publication number Publication date
DE102020107490A1 (de) 2020-12-31
US20200410636A1 (en) 2020-12-31
US11544813B2 (en) 2023-01-03
CN112149793A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
KR20210001324A (ko) 인공 신경망 모델 및 이를 포함하는 전자 장치
US20230124618A1 (en) Image processing device including neural network processor and operating method thereof
US20180253635A1 (en) Neural network devices and methods of operating the same
US9736451B1 (en) Efficient dense stereo computation
CN111194458A (zh) 用于处理图像的图像信号处理器
US20210133920A1 (en) Method and apparatus for restoring image
US20200118249A1 (en) Device configured to perform neural network operation and method of operating same
US11838651B2 (en) Image processing apparatus including neural network processor and method of operating the same
US20230021444A1 (en) Image processing device, processing method thereof, and image processing system including the image processing device
KR20200129957A (ko) 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템
US20220188612A1 (en) Npu device performing convolution operation based on the number of channels and operating method thereof
KR20200012416A (ko) 딥 러닝 기반 이미지 처리장치, 이미지 처리방법 및 컴퓨터-판독가능 매체 및 딥 러닝 기반 이미지 센싱장치
US11627250B2 (en) Image compression method, encoder, and camera module including the encoder
KR20220146197A (ko) 이미지 센서 모듈 및 이의 동작 방법
US11748862B2 (en) Image processing apparatus including neural network processor and method of operation
US8693770B2 (en) Apparatus and method for processing images
CN109961083A (zh) 用于将卷积神经网络应用于图像的方法和图像处理实体
US20230071368A1 (en) Image processing apparatus including pre-processor and neural network processor and operating method thereof
US20240163578A1 (en) Image signal processor, image sensor, and operating method of the image sensor
KR20200132660A (ko) 가우시안 가치 분포에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법
KR20220147412A (ko) 이미지 센서 모듈, 이미지 처리 시스템 및 이미지 센서 모듈의 동작 방법
CN115249256A (zh) 用于生成深度信息的电子装置和生成深度信息的方法
CN114037606A (zh) 图像处理方法、处理器、处理装置、程序产品及存储介质
CN117956278A (zh) 自动对焦的方法和装置

Legal Events

Date Code Title Description
A201 Request for examination