KR20220078283A - 뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법 - Google Patents

뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20220078283A
KR20220078283A KR1020200167661A KR20200167661A KR20220078283A KR 20220078283 A KR20220078283 A KR 20220078283A KR 1020200167661 A KR1020200167661 A KR 1020200167661A KR 20200167661 A KR20200167661 A KR 20200167661A KR 20220078283 A KR20220078283 A KR 20220078283A
Authority
KR
South Korea
Prior art keywords
image processing
image data
image
data
neural network
Prior art date
Application number
KR1020200167661A
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 KR1020200167661A priority Critical patent/KR20220078283A/ko
Priority to US17/392,918 priority patent/US11838651B2/en
Priority to CN202111185892.3A priority patent/CN114598827A/zh
Publication of KR20220078283A publication Critical patent/KR20220078283A/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/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • H04N25/62Detection or reduction of noise due to excess charges produced by the exposure, e.g. smear, blooming, ghost image, crosstalk or leakage between pixels
    • 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/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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • G06T5/006
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • 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
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • H04N25/61Noise processing, e.g. detecting, correcting, reducing or removing noise the noise originating only from the lens unit, e.g. flare, shading, vignetting or "cos4"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

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

Abstract

본 개시의 기술적 사상에 따른 이미지 처리 장치는, 제1 이미지 데이터를 생성하는 카메라 모듈, 상기 제1 이미지 데이터에 대한 프리-프로세싱을 수행하여 제2 이미지 데이터를 생성하는 프리-프로세서, 기설정된 이미지 처리 동작들을 수행하도록 훈련된 뉴럴 네트워크 모델을 이용하여 상기 제2 이미지 데이터에 대한 이미지 처리를 수행하여 제3 이미지 데이터를 생성하는 뉴럴 네트워크 프로세서 및 상기 제3 이미지 데이터에 대한 포스트-프로세싱을 수행하여 보정 이미지 데이터를 생성하는 메인 프로세서를 포함할 수 있다.

Description

뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법{An image processing apparatus including a neural network processor and operating method thereof}
본 개시의 기술적 사상은 뉴럴 네트워크 프로세서를 이용한 이미지 처리 동작을 수행하는 이미지 처리 장치 및 이의 동작 방법에 관한 발명이다.
최근에는 이미지 센서를 포함하는 카메라 모듈의 수요가 증가하고 있으며, 특히 고품질 및 고화질의 사진, 영상 등에 대한 요구가 커지고 있다. 이에 따라, 카메라 모듈로부터 생성된 이미지 데이터에 포함된 블러(blur), 고스트(ghost), 플레어(flare), 헤이즈(haze) 등의 결함들을 제거하는 이미지 처리 동작의 중요도도 함께 증가하고 있다.
본 발명의 기술적 사상은 복수의 이미지 처리 동작들을 수행하도록 훈련된 뉴럴 네트워크 모델을 이용하는 뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법을 제공한다.
상기 기술적 과제를 달성하기 위한 본 발명의 기술적 사상에 따른 이미지 처리 장치는, 제1 이미지 데이터를 생성하는 카메라 모듈, 상기 제1 이미지 데이터에 대한 프리-프로세싱을 수행하여 제2 이미지 데이터를 생성하는 프리-프로세서, 기설정된 이미지 처리 동작들을 수행하도록 훈련된 뉴럴 네트워크 모델을 이용하여 상기 제2 이미지 데이터에 대한 이미지 처리를 수행하여 제3 이미지 데이터를 생성하는 뉴럴 네트워크 프로세서 및 상기 제3 이미지 데이터에 대한 포스트-프로세싱을 수행하여 보정 이미지 데이터를 생성하는 메인 프로세서를 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 기술적 사상에 따른 이미지 처리 장치는, 디스플레이, 상기 디스플레이 하단에 배치되어 상기 이미지 처리 장치의 외부를 촬영한 제1 이미지 데이터를 생성하는 카메라 모듈 및 언더 디스플레이 카메라 모듈에 의해 생성된 이미지 데이터에 대한 이미지 처리 동작을 수행하도록 훈련된 뉴럴 네트워크 모델을 이용하여 상기 제1 이미지 데이터에 대한 이미지 처리 동작을 수행하는 뉴럴 네트워크 프로세서를 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 기술적 사상에 따른 이미지 처리 장치의 동작 방법은, 제1 이미지 데이터를 획득하는 단계, 상기 제1 이미지 데이터에 대한 프리-프로세싱을 수행하여 제2 이미지 데이터를 생성하는 단계, 기설정된 이미지 처리 동작들을 수행하도록 훈련된 뉴럴 네트워크 모델을 이용하여 상기 제2 이미지 데이터에 대해 이미지 처리를 수행하여 제3 이미지 데이터를 생성하는 단계 및 상기 제3 이미지 데이터에 대한 포스트-프로세싱을 수행하여 보정 이미지 데이터를 생성하는 단계를 포함하는 할 수 있다.
본 개시의 기술적 사상에 따른 이미지 처리 장치는, 복수의 이미지 처리 동작들을 수행하도록 훈련된 하나의 뉴럴 네트워크 모델을 이용하여 이미지 처리 동작들을 수행함으로써, 이미지 처리의 수행 단계들이 축소될 수 있다.
또한, 이미지 처리 장치는 로우 이미지 데이터를 입력 데이터로 하여 훈련된 뉴럴 네트워크 모델을 이용하므로, 풀 해상도(full resolution)의 로우 이미지 데이터를 쿼터 해상도(quarter resolution)로 변환하지 않고도 이미지 처리 동작들이 수행할 수 있어, 고해상도 및 고품질의 이미지를 생성할 수 있다.
도 1은 본 개시의 예시적 실시 예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다.
도 2는 뉴럴 네트워크 구조의 일 예를 나타낸다.
도 3은 본 개시의 예시적 실시예에 따른 이미지 처리 장치를 나타내는 블록도이다.
도 4a 내지 도 4c는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 프로세서의 동작을 구체적으로 설명하기 위한 블록도이다.
도 5는 본 개시의 예시적 실시 예에 따른 이미지 처리 장치의 동작 방법을 나타내는 흐름도이다.
도 6은 본 개시의 예시적 실시 예에 따른 뉴럴 네트워크 프로세서의 동작을 구체적으로 설명하기 위한 블록도이다.
도 7은 본 개시의 예시적 실시 예에 따른 이미지 처리 네트워크 모듈을 나타내는 도면이다.
도 8a 내지 도 8c는 본 개시의 예시적 실시 예에 따른 이미지 처리 장치를 나타내는 블록도이다.
도 9는 본 개시의 예시적 실시예에 따른 전자 장치를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시 예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다.
뉴럴 네트워크 시스템(1)은 뉴럴 네트워크를 훈련(train)(또는 학습(learn))하거나, 뉴럴 네트워크를 이용하여 입력 데이터를 분석함으로써 입력 데이터에 포함된 정보를 추론(inference)할 수 있다. 뉴럴 네트워크 시스템(1)은 추론된 정보를 기초로 상황 판단을 하거나 또는 뉴럴 네트워크 시스템(1)이 탑재되는 전자 장치의 구성들을 제어할 수 있다. 예컨대, 뉴럴 네트워크 시스템(1)은 뉴럴 네트워크를 이용한 음성 인식, 영상 인식, 영상 분류, 영상 처리 등을 수행하는 스마트 폰, 태블릿 디바이스, 스마트 TV, AR(Augmented Reality) 디바이스, IoT(Internet of Things) 디바이스, 자율주행 자동차, 로보틱스, 의료기기, 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS), 영상 표시 장치, 계측 장치 등에 적용될 수 있으며, 이 외에도 뉴럴 네트워크 시스템(1)은 다양한 종류의 전자 장치 중 하나에 탑재될 수 있다. 실시예에 있어서, 도 1의 뉴럴 네트워크 시스템(1)은 애플리케이션 프로세서일 수 있다. 이하에서는, 뉴럴 네트워크 시스템(1)은 이미지 처리 장치에 적용될 수 있으며, 카메라 모듈(10)의 이미지 데이터에 대한 이미지 처리 동작들을 수행할 수 있도록 구현된 것을 중심으로 서술한다.
도 1을 참조하면, 뉴럴 네트워크 시스템(1)은 카메라 모듈(10), 뉴럴 네트워크 프로세서(또는, 뉴럴 네트워크 장치)(20), CPU(Cenral Proccessing Unit)(30), 램(random access memory)(40), 메모리(50) 및 디스플레이(60)를 포함할 수 있다. 뉴럴 네트워크 시스템(1)은 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있으며, 또한 다양한 종류의 프로세서들을 더 포함할 수 있다.
실시예들에 있어서, 뉴럴 네트워크 시스템(1)의 구성들 중 일부 또는 전부는 하나의 반도체 칩에 형성될 수 있다. 예컨대, 뉴럴 네트워크 시스템(1)은 시스템-온 칩(System On Chip; SoC)으로서 구현될 수 있으며, 일부 실시예에 있어서, 이미지 칩 등으로 지칭될 수 있다. 뉴럴 네트워크 시스템(1)의 구성들은 버스(70)를 통해 서로 통신할 수 있다.
CPU(30)는 뉴럴 네트워크 시스템(1)의 전반적인 동작을 제어한다. CPU(30)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(30)는 메모리(50)와 같은 저장 영역에 저장된 프로그램들 및/또는 데이터를 램(40)을 이용하여 처리 또는 실행할 수 있다.
예를 들어서, CPU(30)는 응용 프로그램(application)을 실행하고, 응용 프로그램의 실행에 따라 요구되는 뉴럴 네트워크 기반의 태스크들을 수행하도록 뉴럴 네트워크 프로세서(20)를 제어할 수 있다. 뉴럴 네트워크는 ANN(Artificial Neural Network), 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, Plain Residual Network, Dense Network, Hierarchical Pyramid Network, Fully Convolutional Network 중 적어도 하나에 기초한 뉴럴 네트워크 모델일 수 있다. 한편, 뉴럴 네트워크 모델의 종류는 전술한 예에 한하지 않는다.
뉴럴 네트워크 프로세서(20)는 수신되는 입력 데이터를 기초로 뉴럴 네트워크 연산을 수행할 수 있다. 나아가, 뉴럴 네트워크 프로세서(20)는 뉴럴 네트워크 연산의 수행 결과를 기초로 정보 신호를 생성할 수 있다. 뉴럴 네트워크 프로세서(20)는 뉴럴 네트워크 연산 가속기, 코프로세서(coprocessor), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field-programmable gate array), GPU(Graphics processing unit), NPU(Neural processing unit), TPU(Tensor Processing Unit) 및 MPSoC(Multi-Processor System-on-Chip) 등으로 구현될 수 있다.
카메라 모듈(10)은 각각 뉴럴 네트워크 시스템(1) 외부의 피사체(또는 객체)를 촬영하고, 이미지 데이터를 생성할 수 있다. 예를 들어, 카메라 모듈(10)은 이미지 센서(11)를 포함할 수 있다. 이미지 센서(11)는 광학 렌즈(미도시)에 의해 피사체의 광학적 신호를 전기적 신호로 변환할 수 있다. 이를 위해, 이미지 센서(11)는 복수의 픽셀들이 2차원적으로 배열된 픽셀 어레이를 포함할 수 있다. 예를 들어, 복수의 픽셀들 각각에는 복수의 기준색들 중 하나의 색이 할당될 수 있다. 예를 들어, 복수의 기준색들은 RGB(red, green, blue), 또는 RGBW(red, green, blue, white)를 포함할 수 있다.
카메라 모듈(10)은 이미지 센서(11)를 이용하여 이미지 데이터를 생성할 수 있다. 이미지 데이터는 이미지 프레임 및 프레임 데이터와 같이 다양하게 지칭될 수 있다. 이미지 데이터는 뉴럴 네트워크 프로세서(20)에 입력 데이터로서 제공되거나, 메모리(50)에 저장될 수 있다. 메모리(50)에 저장된 이미지 데이터는 뉴럴 네트워크 프로세서(20)로 제공될 수 있다.
본 개시의 예시적 실시예에 따른 뉴럴 네트워크 프로세서(20)는 카메라 모듈(10) 또는 메모리(50)로부터 이미지 데이터를 수신하고, 이에 기반하여 뉴럴 네트워크 연산을 수행할 수 있다. 뉴럴 네트워크 프로세서(20)는 소정의 뉴럴 네트워크 모델 기반 뉴럴 네트워크 연산을 통하여 정의된 이미지 처리 네트워크 모듈(22)을 포함할 수 있다. 이하에서 서술되는 모든 모듈의 구성은 소정의 프로세서에 의해서 실행되는 소프트웨어 블록이거나, 전용의 하드웨어 블록 또는 이들의 조합으로 구현될 수 있다.
예시적 실시예에 따른 이미지 처리 네트워크 모듈(22)은 카메라 모듈(10)의 이미지 센서(11)에 대하여 일반적으로 수행되는 이미지 처리 동작들 중 적어도 하나를 수행하도록 훈련된 뉴럴 네트워크 모델이다. 여기서 이미지 처리 동작들은, 배드 픽셀 보정(Bad Pixel Correction, BPC) 동작, 렌즈 쉐이딩 보정(Lens Shading Correction, LSC) 동작, 크로스 토크 보정(X-talk correction) 동작, 화이트 밸런스(White Balance, WB) 보정 동작, 리모자이크(Remosaic) 동작, 디모자이크(Demosaic) 동작, 디노이즈(Denoise) 동작, 디블러(Deblur) 동작, 감마 보정(Gamma correction) 동작, 하이 다이나믹 레인지(High Dynamic Range, HDR) 동작, 톤 매핑(Tone mapping) 동작 등 다양한 동작들을 포함할 수 있다. 한편, 이미지 처리 동작의 종류는 전술한 예에 한하지 않는다. 이미지 처리 네트워크 모듈(22)이 수행하는 이미지 처리 동작에 대한 구체적인 설명은 도 3 에서 후술한다.
이미지 처리 네트워크 모듈(22)은 카메라 모듈(10)의 이미지 센서(11)로부터 생성된 제1 이미지 데이터를 수신하고, 제1 이미지 데이터에 대한 이미지 처리 동작들을 수행하여 제2 이미지 데이터를 생성할 수 있다.
메모리(50)는 휘발성 메모리(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) 등을 포함한다. 실시예에 있어서, 메모리(50)는 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 중 적어도 하나를 포함할 수 있다.
디스플레이(60)는 뉴럴 네트워크 프로세서(20)로부터 수신한 이미지 데이터를 기초로 사용자에게 각종 컨텐츠(예를 들어, 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)를 표시할 수 있다. 예를 들어, 디스플레이(60)는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템(MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(60)는 이미지를 표시하기 위해 복수의 픽셀들이 매트릭스 형태로 배치된 픽셀 어레이를 포함할 수 있다.
예시적 실시예에 따르면, 뉴럴 네트워크 시스템(1)이 스마트 폰과 같은 전자 장치로 구현된 경우, 카메라 모듈(10)은 디스플레이(60)의 하단에 배치될 수 있다. 따라서, 카메라 모듈(10)은 피사체로부터 반사되어 디스플레이(60)를 통과한 후, 이미지 센서(11)의 광학 렌즈에 도달한 빛을 기초로 이미지 데이터를 생성할 수 있다. 피사체로부터 반사된 빛의 경로는 디스플레이(60)를 통과하는 과정에서 디스플레이(60)에 포함된 픽셀들에 의해 변경될 수 있고, 이에 따라 피사체를 촬영한 이미지 데이터에 왜곡(distortion)이 발생할 수 있다. 이하에서는, 디스플레이(60) 하단에 배치된 카메라 모듈(10)을 언더 디스플레이 카메라(under display camera, UDC) 모듈이라 지칭한다.
본 개시의 예시적 실시예에 따른 이미지 처리 네트워크 모듈(22)은 UDC 모듈로부터 생성된 이미지 데이터에 포함된 왜곡을 제거하면서 전술한 이미지 처리 동작들 중 적어도 하나를 수행하도록 훈련될 수 있다.
도 2는 뉴럴 네트워크 구조의 일 예를 나타낸다. 도 2의 뉴럴 네트워크(NN)의 구조는, 도 1의 이미지 처리 네트워크 모듈(22)에 적용될 수 있다.
도 2를 참조하면, 뉴럴 네트워크(NN)는 복수의 레이어들(L1 내지 Ln)을 포함할 수 있다. 이와 같은 멀티-레이어드 구조의 뉴럴 네트워크는 딥 뉴럴 네트워크(deep neural network; DNN) 또는 딥 러닝 구조(deep learning architecture)로 지칭될 수 있다. 복수의 레이어들(L1 내지 Ln) 각각은 선형 레이어 또는 비선형 레이어일 수 있으며, 실시예에 있어서, 적어도 하나의 레이어 및 적어도 하나의 비선형 레이어가 겹합되어 하나의 레이어로 지칭될 수도 있다. 예시적으로, 선형 레이어는 컨볼루션 레이어(convolution), 풀리 커넥티드(fully connected) 레이어를 포함할 수 있으며, 비선형 레이어는 풀링(pooling) 레이어, 액티베이션 레이어를 포함할 수 있다.
예시적으로, 제1 레이어(L1)는 컨볼루션 레이어이고, 제2 레이어(L2)는 풀링(pooling) 레이어이고, 제n 레이어(Ln)는 출력 레이어로서 풀리 커넥티드(fully connected) 레이어일 수 있다. 뉴럴 네트워크(NN)는 활성(activation) 레이어를 더 포함할 수 있으며, 다른 종류의 연산을 수행하는 레이어를 더 포함할 수 있다.
복수의 레이어들(L1 내지 Ln) 각각은 입력되는 이미지 프레임 또는 이전 레이어에서 생성된 피처 맵을 입력 피처 맵으로서 수신하고, 입력 피처 맵을 연산하여 출력 피처 맵 또는 인식 신호(REC)를 생성할 수 있다. 이때, 피처 맵은 입력 데이터의 다양한 특징이 표현된 데이터를 의미한다. 피처 맵들(FM1, FM2, FM3, FMn)은 예컨대 복수의 피처 값들을 포함하는 2차원 매트릭스 또는 3차원 매트릭스(또는 텐서(tensor)라고 함) 형태를 가질 수 있다. 피처 맵들(FM1, FM2, FM3, FMn)은 너비(W)(또는 칼럼이라고 함), 높이(H)(또는 로우라고 함) 및 깊이(D)를 가지며, 이는 좌표상의 x축, y축 및 z축에 각각 대응할 수 있다. 이때, 깊이(D)는 채널 수로 지칭될 수 있다.
제1 레이어(L1)는 제1 피처 맵(FM1)을 웨이트 맵(WM)과 컨볼루션하여 제2 피처 맵(FM2)을 생성할 수 있다. 웨이트 맵(WM)은 복수의 웨이트 값들을 포함하는 2차원 매트릭스 또는 3차원 매트릭스 형태를 가질 수 있다. 웨이트 맵(WM)은 커널로 지칭될 수 있다. 웨이트 맵(WM)은 제1 피처 맵(FM1)을 필터링할 수 있으며, 필터 또는 커널로 지칭될 수 있다. 웨이트 맵(WM)의 깊이, 즉 채널 개수는 제1 피처 맵(FM1)의 깊이, 즉 채널 개수와 동일하며, 웨이트 맵(WM)과 제1 피처 맵(FM1)의 동일한 채널끼리 컨볼루션될 수 있다. 웨이트 맵(WM)이 제1 입력 피처 맵(FM1)을 슬라이딩 윈도로하여 횡단하는 방식으로 시프트된다. 각 시프트동안, 웨이트 맵(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차원의 풀링 윈도우(PW)가 풀링 윈도우(PW)의 사이즈 단위로 제2 피처 맵(FM2) 상에서 쉬프트되고, 풀링 윈도우(PW)와 중첩되는 영역의 피처값들 중 최대값(또는 피처값들의 평균값)이 선택될 수 있다. 이에 따라, 제2 피처 맵(FM2)으로부터 공간적 사이즈가 변경된 제3 피처 맵(FM3)이 생성될 수 있다. 제3 피처 맵(FM3)의 채널과 제2 피처 맵(FM2)의 채널 개수는 동일하다.
제n 레이어(Ln)는 제n 피처 맵(FMn)의 피처들을 조합하여 입력 데이터의 클래스(class)(CL)를 분류할 수 있다. 또한, 클래스에 상응하는 인식 신호(REC)를 생성할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 이미지 처리 장치를 나타내는 블록도이다. 상세하게는, 도 3은 도 1의 뉴럴 네트워크 시스템(1)이 이미지 처리 장치(1000)로 구현된 실시예를 나타내는 도면이다.
이미지 처리 장치(1000)는 이미지를 촬영하고, 촬영된 이미지를 디스플레이하거나 또는 촬영된 이미지 기반의 동작을 수행하는 전자 장치로 구현될 수 있다. 이미지 처리 장치(1000)는 예를 들어, PC(personal computer), IoT (Internet of Things) 장치, 또는 휴대용 전자 장치로 구현될 수 있다. 휴대용 전자 장치는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등을 포함할 수 있다. 또한, 이미지 프로세싱 장치(1000)는 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 전자 기기 또는 차량, 가구, 제조 설비, 도어, 각종 계측 기기 등에 부품으로서 구비되는 전자 기기에 탑재될 수 있다.
도 3을 참조하면, 이미지 처리 장치(1000)는 카메라 모듈(1100) 및 이미지 처리 시스템(1200)을 포함할 수 있다. 이미지 처리 장치(1000)는 디스플레이, 유저 인터페이스 등의 다른 구성들을 더 포함할 수 있다. 이미지 처리 시스템(1200)은 프리-프로세서(100), 뉴럴 네트워크 프로세서(200) 및 메인 프로세서(300)를 포함할 수 있다. 카메라 모듈(1100) 및 뉴럴 네트워크 프로세서(200)는 도 1의 카메라 모듈(10) 및 뉴럴 네트워크 프로세서(20)에 대응할 수 있다.
프리-프로세서(100), 뉴럴 네트워크 프로세서(200) 및 메인 프로세서(300)은 단일 또는 복수의 반도체 칩으로 구현될 수 있다. 더 나아가, 이미지 처리 시스템(1200) 또는 이미지 처리 장치(1000)는 SoC(System On Chip)로 구현될 수 있다. 또한, 도 3에서는 프리-프로세서(100)과 메인 프로세서(300)가 별도의 구성으로 개시되어 있으나, 이는 예시적 실시 예에 불과한 바, 하나의 구성으로 구현될 수 있다.
카메라 모듈(1100)의 이미지 센서(1110)는 소정의 패턴을 갖는 컬러 필터 어레이(CFA)를 포함하고, 광학 렌즈(LS)를 통하여 입사된 피사체(Object)의 광학적 신호를 컬러 필터 어레이(CFA)를 이용하여 전기적 신호로 변환하고, 전기적 신호들을 기초로 제1 이미지 데이터(IDTa)를 생성하여 출력할 수 있다. 예시적 실시예로, 컬러 필터 어레이(CFA)는 레드 픽셀, 블루 픽셀, 및 2개의 그린 픽셀들을 포함하는 2 Υ 2 크기의 셀(Cell)들이 반복적으로 배치되는 베이어(Bayer) 패턴으로 구현될 수 있다. 또는, 컬러 필터 어레이(CFA)는 4개의 레드 픽셀, 4개의 블루 픽셀, 및 8개의 그린 픽셀들을 포함하는 4 Υ 4 크기의 셀들이 반복적으로 배치되는 테트라(Tetra) 패턴으로 구현될 수 있다. 또는, 컬러 필터 어레이(CFA)는 9개의 레드 픽셀, 9개의 블루 픽셀, 및 18개의 그린 픽셀들을 포함하는 6 Υ 6 크기의 셀들이 반복적으로 배치되는 노나(Nona) 패턴으로 구현될 수 있다. 한편, 컬러 필터 어레이(CFA)의 패턴 종류는 전술한 예에 한하지 않으며, 컬러 필터 어레이(CFA)는 더 큰 크기의 셀들이 반복적으로 배치되는 패턴을 가질 수 있다. 이하에서는, 서술의 편의를 위해 컬러 필터 어레이(CFA)는 테트라 패턴에 대응하는 것을 가정하여 서술하나, 본 개시의 사상은 여기에 제한 해석되지 않음은 충분히 이해될 것이다.
이미지 센서(1110)는 예를 들어, 2차원적으로 배열된 복수의 픽셀들을 포함하는 픽셀 어레이 및 리드아웃 회로를 포함할 수 있으며, 픽셀 어레이는 수신되는 광 신호들을 전기적 신호들로 변환할 수 있다. 픽셀 어레이는 예를 들면, CCD(Charge Coupled Devices) 또는 CMOS(Complementary Metal Oxide Semiconductor) 등의 광전 변환 소자로 구현될 수 있으며 이외에도 다양한 종류의 광전 변환 소자로 구현될 수 있다. 리드아웃 회로는 픽셀 어레이로부터 제공되는 전기적 신호를 기초로 로우 데이터(Raw data)를 생성하고, 노이즈 제거 등이 수행된 로우 데이터를 제1 이미지 데이터(IDTa)로서 출력할 수 있다. 이미지 센서(1110)는 픽셀 어레이 및 리드아웃 회로를 포함하는 반도체 칩 또는 패키지로서 구현될 수 있다.
프리-프로세서(100)는 제1 이미지 데이터(IDTa)에 대해 프리-프로세싱 동작을 수행할 수 있다. 예를 들어, 프리-프로세싱 동작은 배드 픽셀 보정 동작, 렌즈 쉐이딩 보정 동작, 크로스 토크 보정 동작, 화이트 밸런스 보정 동작 중 적어도 하나를 포함할 수 있다. 한편, 본 개시는 이에 한하지 않으며, 실시예에 따라 프리-프로세싱 동작은 디모자이크 동작, 디노이즈 동작, 디블러 동작 등을 포함할 수 있다. 프리-프로세서(100)는 프리-프로세싱을 수행하여 생성한 제2 이미지 데이터(IDTb)를 뉴럴 네트워크 프로세서(200)에 전송할 수 있다.
예시적 실시예에 따른 뉴럴 네트워크 프로세서(200)는 이미지 처리 네트워크 모듈(220)을 포함할 수 있다. 이미지 처리 네트워크 모듈(220)은 제2 이미지 데이터(IDTb)에 대한 적어도 하나의 이미지 처리 동작을 수행하여 제3 이미지 데이터(IDTc)를 생성할 수 있다. 비제한적인 예시로서, 이미지 처리 네트워크 모듈(220)은 리모자이크 동작, 디모자이크 동작, 디노이즈 동작, 디블러 동작, 하이 다이나믹 레인지 동작, 톤 매핑 동작 중 적어도 하나를 수행하도록 훈련될 수 있다. 뉴럴 네트워크 프로세서(200)는 제3 이미지 데이터(IDTc)를 메인 프로세서(300)에 전송할 수 있다.
메인 프로세서(300)는 제3 이미지 데이터(IDTc)에 대하여 포스트-프로세싱 동작을 수행하여 보정 이미지 데이터(CDT)를 생성할 수 있다. 메인 프로세서(300)는 생성한 보정 이미지 데이터(CDT)를 디스플레이로 전송할 수 있다.
포스트-프로세싱 동작은 프리-프로세싱 동작과 상보적인 이미지 처리 동작을 포함할 수 있다. 비제한적인 예시로서, 포스트-프로세싱 동작은 역(inverse) 화이트 밸런스 보정 동작을 포함할 수 있다. 또한, 포스트-프로세싱 동작은 도 1에서 전술한 이미지 처리 동작들 중 프리-프로세서(100) 및 이미지 처리 네트워크 모듈(220)이 수행한 이미지 처리 동작들을 제외한 나머지 이미지 처리 동작을 포함할 수 있다. 이 경우, 메인 프로세서(300)가 수행하는 나머지 이미지 처리 동작은 메인 프로세서(300) 및 이미지 처리 네트워크 모듈(220)에서 수행되는 이미지 처리 동작의 종류에 따라 달라질 수 있다.
일부 실시예에서, 이미지 처리 네트워크 모듈(220)은 프리-프로세서(100)을 대신하여 프리-프로세서(100)에서 수행되는 프리-프로세싱 동작을 전부 또는 일부도 수행하도록 구현될 수 있다. 예를 들어, 이미지 처리 네트워크 모듈(220)은 배드 픽셀 보정 동작, 렌즈 쉐이딩 보정 동작, 크로스 토크 보정 동작, 화이트 밸런스 보정 동작 중 적어도 하나를 수행하도록 훈련될 수 있다. 즉, 이미지 처리 네트워크 모듈(220)은 전술한 프리-프로세싱 동작뿐만 아니라, 디노이즈 동작 등의 이미지 처리 동작도 함께 수행하도록 훈련될 수 있다. 만약 이미지 처리 네트워크 모듈(220)이 프리-프로세서(100)의 프리-프로세싱 동작의 전부를 수행하도록 구현된 경우, 프리-프로세서(100)는 생략될 수 있다.
일부 실시예에서, 이미지 처리 네트워크 모듈(220)은 메인 프로세서(300)를 대신하여 메인 프로세서(300)에서 수행되는 포스트-프로세싱 동작을 전부 또는 일부를 수행하도록 구현될 수 있다. 예를 들어, 이미지 처리 네트워크 모듈(220)은 역 화이트 밸런스 보정 동작을 수행하도록 구현될 수 있다. 즉, 이미지 처리 네트워크 모듈(220)은 전술한 포스트-프로세싱 동작뿐만 아니라, 디노이즈 동작 등의 이미지 처리 동작도 함께 수행하도록 훈련될 수 있다. 만약 이미지 처리 네트워크 모듈(220)이 메인 프로세서(300)의 포스트-프로세싱 동작의 전부를 수행하도록 구현된 경우, 메인 프로세서(300)는 생략될 수 있다.
한편, 도 3을 도시하고 설명함에 있어서, 프리-프로세서(100), 뉴럴 네트워크 프로세서(200) 및 메인 프로세서(300) 순으로 이미지 처리 동작들을 수행하는 것으로 도시하고 설명하였지만, 본 개시는 이에 한하지 않는다. 예를 들어, 뉴럴 네트워크 프로세서(200), 프리-프로세서(100) 및 메인 프로세서(300) 순으로 이미지 처리 동작들을 수행하도록 구현될 수 있다.
또 다른 예로, 프리-프로세서(100)가 이미지 처리한 이미지 데이터(예컨대, 제2 이미지 데이터(IDTb))를 뉴럴 네트워크 프로세서(200) 및 메인 프로세서(300)에 전송하고, 뉴럴 네트워크 프로세서(200) 및 메인 프로세서(300)가 병렬적으로 이미지 처리 동작들을 수행하도록 구현될 수 있다. 뉴럴 네트워크 프로세서(200)는 이미지 처리한 이미지 데이터(예컨대, 제3 이미지 데이터(IDTc))를 메인 프로세서(300)에 전송하고, 메인 프로세서(300)는 뉴럴 네트워크 프로세서(200)가 처리한 이미지 데이터(예컨대, 제2 이미지 데이터(IDTb))와 메인 프로세서(300)가 처리한 이미지 데이터(예컨대, 제3 이미지 데이터(IDTc))를 병합할 수 있다.
예시적 실시예들에 따른 이미지 처리 네트워크 모듈(220)의 구체적인 동작은 도 4a 내지 도 4c에서 구체적으로 서술한다.
본 개시의 예시적 실시예에 따른 이미지 처리 장치(1000)는 복수의 이미지 처리 동작들을 수행하도록 훈련된 하나의 뉴럴 네트워크 모델을 이용하여 이미지 처리 동작들을 수행할 수 있다. 또한, 상기의 뉴럴 네트워크 모델은 로우 이미지 데이터를 입력 데이터로 하여 훈련된 모델이므로, 풀 해상도(full resolution)의 로우 이미지 데이터를 쿼터 해상도(quarter resolution)로 변환하지 않고도 이미지 처리 동작들이 수행될 수 있다. 이를 통해, 이미지 처리 장치(1000)는 고해상도, 고품질의 이미지를 생성할 수 있다.
도 4a 내지 도 4c는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 프로세서의 동작을 구체적으로 설명하기 위한 블록도이다. 이하, 도 4a 내지 도 4c에 도시된 모듈들의 구성은 예시적인 실시예에 불과한 바, 이에 국한되지 않고, 더 많은 프리-프로세싱 동작들 또는 포스트-프로세싱 동작들을 위한 모듈들의 구성이 이미지 처리 시스템(1200a, 1200b, 1200c)에 더 추가될 수 있다.
도 4a를 참조하면, 이미지 처리 시스템(1200a)은 프리-프로세서(100a), 뉴럴 네트워크 프로세서(200a) 및 메인 프로세서(300a)를 포함할 수 있다. 프리-프로세서(100a)는 배드 픽셀 보정 모듈(110a)을 포함할 수 있다. 뉴럴 네트워크 프로세서(200a)는 이미지 처리 네트워크 모듈(210a)을 포함할 수 있다. 이미지 처리 네트워크 모듈(210a)은 디노이즈 동작 및 디블러 동작을 수행하도록 훈련된 뉴럴 네트워크 모델일 수 있다. 메인 프로세서(300a)는 리모자이크 모듈(310a) 및 디모자이크 모듈(320a)을 포함할 수 있다.
프리-프로세서(100a)는 테트라 형식의 제1 이미지 데이터(IDTa)(이하, 제1 테트라 데이터로 기술)를 수신하고, 제1 테트라 데이터(IDTa)에 대한 배드 픽셀 보정 동작을 포함하는 프리-프로세싱을 수행하여 제2 테트라 데이터(IDTb)를 생성할 수 있다. 구체적으로, 배드 픽셀 보정 모듈(110a)은 제1 테트라 데이터(IDTa)에 대하여 배드 픽셀에 대응하는 픽셀 데이터를 보정하는 배드 픽셀 보정 동작을 수행할 수 있다.
뉴럴 네트워크 프로세서(200a)는 프리-프로세서(100a)로부터 제2 테트라 데이터(IDTb)를 수신하고, 이미지 처리 네트워크 모듈(210a)을 이용하여 제2 테트라 데이터(IDTb)에 대한 이미지 처리 동작을 수행할 수 있다. 구체적으로, 이미지 처리 네트워크 모듈(210a)은 제2 테트라 데이터(IDTb)에 대한 디노이즈 동작 및 디블러 동작을 수행하여 제3 테트라 데이터(IDTc)를 생성할 수 있다. 예를 들어, 이미지 처리 네트워크 모듈(210a)은 제2 테트라 데이터(IDTb)에 대한 노이즈 및 블러를 제거할 수 있다. 본 실시예에서, 이미지 처리 네트워크 모듈(210a)은 리모자이크 동작 및 디모자이크 동작을 수행하지 않으므로, 이미지 처리 네트워크 모듈(210a)의 입출력 데이터는 모두 테트라 패턴의 이미지 데이터이다.
일부 실시예에서, 이미지 처리 네트워크 모듈(210a)은 전술한 디노이즈 동작 및 디블러 동작을 수행하되, 특히 UDC 모듈로부터 생성된 이미지 데이터의 왜곡을 제거하도록 훈련된 뉴럴 네트워크 모델일 수 있다. 이에 따라, 제1 테트라 데이터(IDTa)가 디스플레이의 하단에 배치된 카메라 모듈(1100), 즉 UDC 모듈에 의해 생성되었더라도, 이미지 처리 네트워크 모듈(210a)은 제2 테트라 데이터(IDTb) 내 UDC 모듈에서 기인한 왜곡을 제거하여 제3 테트라 데이터(IDTc)를 생성할 수 있다.
메인 프로세서(300a)는 뉴럴 네트워크 프로세서(200a)로부터 제3 테트라 데이터(IDTc)를 수신하고, 제3 테트라 데이터(IDTc)에 대한 리모자이크 동작 및 디모자이크 동작을 수행하여 RGB 데이터(IDTd)를 생성할 수 있다. 구체적으로, 리모자이크 모듈(310a)은 제3 테트라 데이터(IDTc)를 베이어 데이터로 변환하고, 디모자이크 모듈(320a)은 베이어 데이터를 레드(red), 블루(blue) 및 그린(green) 채널들로 구성된 RGB 데이터(CDT)로 변환할 수 있다. 한편, 본 개시는 이에 한하지 않으며, 실시예에 따라 제3 테트라 데이터(IDTc)는 YUV 데이터로 변환될 수도 있다.
도 4b를 참조하면, 이미지 처리 시스템(1200b)은 프리-프로세서(100b), 뉴럴 네트워크 프로세서(200b) 및 메인 프로세서(300b)를 포함할 수 있다. 프리-프로세서(100b)는 배드 픽셀 보정 모듈(110b)을 포함할 수 있다. 뉴럴 네트워크 프로세서(200b)는 이미지 처리 네트워크 모듈(210b)을 포함할 수 있다. 이미지 처리 네트워크 모듈(210b)은 디노이즈 동작, 디블러 동작, 리모자이크 동작을 수행하도록 훈련된 뉴럴 네트워크 모델일 수 있다. 메인 프로세서(300b)는 디모자이크 모듈(310b)을 포함할 수 있다.
프리-프로세서(100b)는 테트라 형식의 제1 테트라 데이터(IDTa)를 수신하고, 제1 테트라 데이터(IDTa)에 대한 배드 픽셀 보정 동작을 포함하는 프리-프로세싱을 수행하여 제2 테트라 데이터(IDTb)를 생성할 수 있다. 구체적으로, 배드 픽셀 보정 모듈(110b)은 제1 테트라 데이터(IDTa)에 대하여 배드 픽셀에 대응하는 픽셀 데이터를 보정하는 배드 픽셀 보정 동작을 수행할 수 있다.
뉴럴 네트워크 프로세서(200b)는 프리-프로세서(100b)로부터 제2 테트라 데이터(IDTb)를 수신하고, 이미지 처리 네트워크 모듈(210b)을 이용하여 제2 테트라 데이터(IDTb)에 대한 이미지 처리 동작을 수행할 수 있다. 구체적으로, 이미지 처리 네트워크 모듈(210b)은 제2 테트라 데이터(IDTb)에 대한 디노이즈 동작, 디블러 동작 및 리모자이크 동작을 수행하여 베이어 데이터(IDTc)를 생성할 수 있다. 예를 들어, 이미지 처리 네트워크 모듈(210b)은 제2 테트라 데이터(IDTb)에 대한 노이즈 및 블러를 제거하고, 제2 테트라 데이터(IDTb)를 베이어 패턴의 이미지 데이터로 변환할 수 있다. 본 실시예에서, 이미지 처리 네트워크 모듈(210b)은 리모자이크 동작을 수행하되, 디모자이크 동작은 수행하지 않으므로, 이미지 처리 네트워크 모듈(210b)의 입력 데이터는 테트라 패턴의 이미지 데이터이고, 출력 데이터는 베이어 패턴의 이미지 데이터이다.
일부 실시예에서, 이미지 처리 네트워크 모듈(210b)은 전술한 디노이즈 동작, 디블러 동작 및 리모자이크 동작을 수행하되, 특히 UDC 모듈로부터 생성된 이미지 데이터의 왜곡을 제거하도록 훈련된 뉴럴 네트워크 모델일 수 있다. 이에 따라, 제1 테트라 데이터(IDTa)가 디스플레이의 하단에 배치된 카메라 모듈(1100), 즉 UDC 모듈에 의해 생성되었더라도, 이미지 처리 네트워크 모듈(210b)은 제2 테트라 데이터(IDTb) 내 UDC 모듈에서 기인한 왜곡을 제거하여 베이어 데이터(IDTc)를 생성할 수 있다.
메인 프로세서(300b)는 뉴럴 네트워크 프로세서(200b)로부터 베이어 데이터(IDTc)를 수신하고, 베이어 데이터(IDTc)에 대한 디모자이크 동작을 수행하여 RGB 데이터(CDT)를 생성할 수 있다. 구체적으로, 디모자이크 모듈(310b)은 베이어 데이터(IDTc)를 RGB 데이터(CDT)로 변환할 수 있다. 한편, 본 개시는 이에 한하지 않으며, 실시예에 따라 베이어 데이터(IDTc)는 YUV 데이터로 변환될 수도 있다.
도 4c를 참조하면, 이미지 처리 시스템(1200c)은 프리-프로세서(100c), 뉴럴 네트워크 프로세서(200c) 및 메인 프로세서(300c)를 포함할 수 있다. 프리-프로세서(100c)는 배드 픽셀 보정 모듈(110c)을 포함할 수 있다. 뉴럴 네트워크 프로세서(200c)는 이미지 처리 네트워크 모듈(210c)을 포함할 수 있다. 이미지 처리 네트워크 모듈(210c)은 디노이즈 동작, 디블러 동작, 리모자이크 동작 및 디모자이크 동작을 수행하도록 훈련된 뉴럴 네트워크 모델일 수 있다. 메인 프로세서(300c)는 포스트-프로세싱 모듈(310c)을 포함할 수 있다.
프리-프로세서(100c)는 테트라 형식의 제1 테트라 데이터(IDTa)를 수신하고, 제1 테트라 데이터(IDTa)에 대한 배드 픽셀 보정 동작을 포함하는 프리-프로세싱을 수행하여 제2 테트라 데이터(IDTb)를 생성할 수 있다. 구체적으로, 배드 픽셀 보정 모듈(110c)은 제1 테트라 데이터(IDTa)에 대하여 배드 픽셀에 대응하는 픽셀 데이터를 보정하는 배드 픽셀 보정 동작을 수행할 수 있다.
뉴럴 네트워크 프로세서(200c)는 프리-프로세서(100c)로부터 제2 테트라 데이터(IDTb)를 수신하고, 이미지 처리 네트워크 모듈(210c)을 이용하여 제2 테트라 데이터(IDTb)에 대한 이미지 처리 동작을 수행할 수 있다. 구체적으로, 이미지 처리 네트워크 모듈(210c)은 제2 테트라 데이터(IDTb)에 대한 디노이즈 동작, 디블러 동작, 리모자이크 동작 및 디모자이크 동작을 수행하여 제1 RGB 데이터(IDTc)를 생성할 수 있다. 예를 들어, 이미지 처리 네트워크 모듈(210c)은 제2 테트라 데이터(IDTb)에 대한 노이즈 및 블러를 제거하고, 제2 테트라 데이터(IDTb)를 베이어 패턴의 이미지 데이터로 변환하고, 베이어 패턴의 이미지를 RGB 데이터로 변환할 수 있다. 한편, 본 개시는 이에 한하지 않으며, 실시예에 따라 제2 테트라 데이터(IDTb)는 YUV 데이터로 변환될 수도 있다. 본 실시예에서, 이미지 처리 네트워크 모듈(210c)은 리모자이크 동작 및 디모자이크 동작을 수행하므로, 이미지 처리 네트워크 모듈(210c)의 입력 데이터는 테트라 패턴의 이미지 데이터이고, 출력 데이터는 RGB 채널들(또는 YUV 채널들)을 갖는 이미지 데이터이다.
일부 실시예에서, 이미지 처리 네트워크 모듈(210c)은 전술한 디노이즈 동작, 디블러 동작, 리모자이크 동작 및 디모자이크 동작을 수행하되, 특히 UDC 모듈로부터 생성된 이미지 데이터의 왜곡을 제거하도록 훈련된 뉴럴 네트워크 모델일 수 있다. 이에 따라, 제1 테트라 데이터(IDTa)가 디스플레이의 하단에 배치된 카메라 모듈(1100), 즉 UDC 모듈에 의해 생성되었더라도, 이미지 처리 네트워크 모듈(210c)은 제2 테트라 데이터(IDTb) 내 UDC 모듈에서 기인한 왜곡을 제거하여 제1 RGB 데이터(IDTc)를 생성할 수 있다.
메인 프로세서(300c)는 뉴럴 네트워크 프로세서(200c)로부터 제1 RGB 데이터(IDTc)를 수신하고, 제1 RGB 데이터(IDTc)에 대한 포스트-프로세싱 동작을 수행하여 제2 RGB 데이터(CDT)를 생성할 수 있다. 구체적으로, 포스트-프로세싱 모듈(310c)은 제1 RGB 데이터(IDTc)에 대해 역 화이트 밸런스 보정 동작, 넓은 조도 범위를 갖도록 복수의 이미지들을 병합하는 하이 다이나믹 레인지 동작, HDR 이미지를 디스플레이에 적합하도록 변환하는 톤 매핑 동작 등을 수행하여 제2 RGB 데이터(CDT)를 생성할 수 있다. 한편, 포스트-프로세싱 모듈(310c)이 수행하는 포스트-프로세싱 동작의 종류는 전술한 예에 한하지 않는다.
한편, 도 4a 내지 4c를 도시하고 설명함에 있어서, 프리-프로세서(100a, 100b, 100c)가 배드 픽셀 보정 모듈만을 포함하는 것으로 도시하고 설명하였지만, 본 개시는 이에 한하지 않는다. 예를 들어, 프리-프로세서(100a, 100b, 100c)는 이미지의 밝기를 보정하는 렌즈 쉐이딩 보정 동작, 그린 픽셀들 간의 감도 차이를 보정하는 크로스토크 보정 동작, 색 균형을 조절하는 화이트 밸런스 보정 동작 등을 수행하는 별도의 모듈을 더 포함할 수 있다.
또한, 도 4a 및 도 4b를 도시하고 설명함에 있어서, 메인 프로세서(300a, 300b)가 리모자이크 모듈 및/또는 디모자이크 모듈만을 포함하는 것으로 도시하고 설명하였지만, 본 개시는 이에 한하지 않는다. 예를 들어, 메인 프로세서(300a, 300b)는 역 화이트 밸런스 보정 동작, 넓은 조도 범위를 갖도록 복수의 이미지들을 병합하는 하이 다이나믹 레인지 동작, HDR 이미지를 디스플레이에 적합하도록 변환하는 톤 매핑 동작 등을 수행하는 별도의 모듈을 더 포함할 수 있다.
도 5는 본 개시의 예시적 실시 예에 따른 이미지 처리 장치의 동작 방법을 나타내는 흐름도이다. 상세하게는, 도 5는 도 3 내지 도 4c에서 전술한 이미지 처리 시스템(1200, 1200a, 1200b, 1200c)의 동작 방법을 나타내는 흐름도이다. 이하에서는 설명의 편의를 위해, 이미지 처리 시스템(1200)의 동작으로 설명하지만, 이미지 처리 시스템(1200a, 1200b, 1200c)에도 실질적으로 동일하게 적용될 수 있음은 물론이다.
도 5를 참조하면, 이미지 처리 시스템(1200)은 제1 이미지 데이터를 획득할 수 있다(S110). 예를 들어, 이미지 처리 시스템(1200)은 카메라 모듈(1100)이 생성한 제1 이미지 데이터를 획득할 수 있다. 제1 이미지 데이터는 카메라 모듈(1100)로부터 수신되거나, 메모리로부터 획득될 수 있다. 제1 이미지 데이터는 베이어 패턴, 테트라 패턴, 노나 패턴 등 다양한 패턴으로 구현될 수 있다.
이미지 처리 시스템(1200)은 제1 이미지 데이터에 대하여 프리-프로세싱을 수행할 수 있다(S120). 구체적으로, 이미지 처리 시스템(1200)은 제1 이미지 데이터에 대하여, 배드 픽셀 보정 동작, 렌즈 쉐이딩 보정 동작, 크로스 토크 보정 동작, 화이트 밸런스 보정 동작 등을 포함하는 프리-프로세싱을 수행함으로써 제2 이미지 데이터를 생성할 수 있다. 한편, 프리-프로세싱 동작의 종류는 전술한 예에 한하지 않으며, 디모자이크 동작, 디노이즈 동작, 디블러 동작 등 다양한 이미지 처리 동작을 포함할 수 있다.
이미지 처리 시스템(1200)은 기설정된 이미지 처리 동작들을 수행하도록 학습된 뉴럴 네트워크 모델을 이용하여 제2 이미지 데이터에 대하여 이미지 처리를 수행할 수 있다(S130). 구체적으로, 이미지 처리 시스템(1200)은 리모자이크 동작, 디모자이크 동작, 디노이즈 동작, 디블러 동작, 하이 다이나믹 레인지 동작, 톤 매핑 동작 중 적어도 하나를 수행하도록 훈련된 이미지 처리 네트워크 모듈(220)을 이용하여 제2 이미지 데이터에 대하여 이미지 처리를 수행함으로써 제3 이미지 데이터를 생성할 수 있다. 일부 실시예에서, 이미지 처리 네트워크 모듈(220)은 전술한 이미지 처리 동작들을 수행하되, UDC 모듈로부터 생성된 이미지 데이터의 왜곡을 제거하도록 추가적으로 훈련된 네트워크 모델일 수 있다.
이미지 처리 네트워크 모듈(220)의 입력 데이터는(즉, 제2 이미지 데이터)의 종류는 카메라 모듈(1100)에서 생성하는 이미지 데이터의 종류에 따라 상이할 수 있다. 예를 들어, 카메라 모듈(1100)이 베이어 패턴의 이미지 데이터를 생성하는 경우, 이미지 처리 네트워크 모듈(220)에는 베이어 패턴의 이미지 데이터가 입력 데이터로서 입력될 수 있다. 또한, 카메라 모듈(1100)이 테트라 패턴 또는 노나 패턴의 이미지 데이터를 생성하는 경우, 이미지 처리 네트워크 모듈(220)에는 테트라 패턴 또는 노나 패턴의 이미지 데이터가 입력 데이터로서 입력될 수 있다.
이미지 처리 네트워크 모듈(220)의 출력 데이터(즉, 제3 이미지 데이터)의 종류는 이미지 처리 네트워크 모듈(220)의 구현 예에 따라 상이할 수 있다. 예를 들어, 이미지 처리 네트워크 모듈(220)이 리모자이크 동작 및 디모자이크 동작을 수행하도록 훈련된 경우, RGB 데이터가 출력 데이터로서 출력될 수 있다. 또는, 이미지 처리 네트워크 모듈(220)이 리모자이크 동작을 수행하도록 훈련된 경우, 베이어 패턴의 이미지 데이터가 출력 데이터로서 출력될 수 있다. 또는, 이미지 처리 네트워크 모듈(220)이 리모자이크 동작 및 디모자이크 동작을 제외한 이미지 처리 동작을 수행하도록 훈련된 경우, 카메라 모듈(1100)이 생성하는 이미지 데이터의 종류와 같은 출력 데이터가 출력될 수 있다.
이미지 처리 시스템(1200)은 제3 이미지 데이터에 대하여 포스트-프로세싱을 수행할 수 있다(S140). 구체적으로, 이미지 처리 시스템(1200)은 제3 이미지 데이터에 대하여, 프리-프로세싱 동작과 상보적인 이미지 처리 동작(예컨대, 역 화이트 밸런스 보정 동작 등), 또는 S110 및 S120에서 수행되지 않은 이미지 처리 동작을 포함하는 포스트-프로세싱을 수행함으로써 제4 이미지 데이터를 생성할 수 있다.
도 6은 본 개시의 예시적 실시 예에 따른 뉴럴 네트워크 프로세서의 동작을 구체적으로 설명하기 위한 블록도이다.
도 6을 참조하면, 이미지 처리 시스템(1200d)은 뉴럴 네트워크 프로세서(200d)를 포함할 수 있다. 뉴럴 네트워크 프로세서(200d)는 이미지 처리 네트워크 모듈(210d)을 포함할 수 있다. 도 4a 내지 도 4c과 비교하면, 뉴럴 네트워크 프로세서(200d)는 테트라 데이터(IDATAa)에 대한 프리-프로세싱 동작 및 포스트-프로세싱 동작을 포함하는 모든 이미지 처리 동작들을 수행하여 RGB 데이터(IDATAc)를 생성할 수 있다. 즉, 이미지 처리 네트워크 모듈(210d)은 모든 이미지 처리 동작들을 수행하도록 훈련된 뉴럴 네트워크 모델일 수 있다. 이에 따라, 뉴럴 네트워크 프로세서(200d)는 도 4a 내지 도 4c의 프리 프로세서(100a, 100b, 100c) 및 메인 프로세서(300a, 300b, 300c)의 동작을 모두 대체할 수 있다.
도 7은 본 개시의 예시적 실시 예에 따른 이미지 처리 네트워크 모듈을 나타내는 도면이다. 상세하게는 도 7은 도 1의 이미지 처리 네트워크 모듈(22)을 나타내는 도면이다. 한편, 도 7의 설명은 도 3 내지 도 4c, 도 6의 이미지 처리 네트워크 모듈(210a, 210b, 210c, 210d)에도 동일하게 적용될 수 있음은 물론이다.
도 7을 참조하면, 이미지 처리 네트워크 모듈(22)은 로우 이미지(raw image)를 입력 데이터로 사용하여, 기설정된 이미지 처리 동작을 수행하고, 기설정된 이미지 처리 동작이 수행에 대한 결과로서 보정 이미지(corrected image)를 생성할 수 있다.
일부 실시예에서, 이미지 처리 네트워크 모듈(22)은 UDC 모듈로부터 생성된 이미지를 입력 데이터로 하고, 입력 데이터에 포함된 왜곡이 제거된 보정 이미지를 출력 데이터로 하여 학습될 수 있다. UDC 모듈로부터 생성된 로우 이미지는, 블러(blur), 고스트(ghost), 헤이즈(haze), 플레어(flare) 등의 왜곡을 포함할 수 있다. 따라서, 이미지 처리 네트워크 모듈(22)은 로우 이미지 내에 포함된 상기 왜곡들을 처리하면서, 리모자이크 동작, 디모자이크 동작, 디노이즈 동작, 디블러 동작 등을 수행하도록 훈련될 수 있다.
일부 실시예에서, 이미지 처리 네트워크 모듈(22)은 로우 이미지뿐만 아니라 추가 정보를 입력 데이터로 하여 학습될 수 있다. 예를 들어, 이미지 처리 네트워크 모듈(22)은 로우 이미지, 배드 픽셀 정보, 노이즈 레벨 측정 정보 등을 입력 데이터로 하여 보정 이미지를 생성하도록 학습될 수 있다.
일부 실시예에서, 이미지 처리 네트워크 모듈(22)은 복수의 뉴럴 네트워크 모듈(CNN1, CNN2, ??, CNNn)을 포함할 수 있다. 예를 들어, 이미지 처리 네트워크 모듈(22)은 복수의 이미지 처리 동작들 각각 또는 이들의 조합에 대응하는 복수의 뉴럴 네트워크 모듈(CNN1, CNN2, ??, CNNn)을 포함할 수 있다. 한편, 도 7에서는 복수의 뉴럴 네트워크 모듈(CNN1, CNN2, ??, CNNn)이 CNN 모델인 것으로 도시하였지만, 이는 하나의 실시예일 뿐, 본 개시는 이에 한하지 않는다. 예를 들어, 이미지 처리 네트워크 모듈(22)은 복수의 CNN 모델 및 ANN 모델을 포함하도록 구현될 수 있음은 물론이다.
일부 실시예에서, 이미지 처리 네트워크 모듈(22)은 제조사에 의해 미리 학습되어, 이미지 처리 시스템(1200)의 제조시에 구비될 수 있다. 구체적으로, 제조사에 의해 다수의 이미지 처리 시스템(1200)으로부터 수집된 로우 이미지와 보정 이미지를 기초로 학습한 이미지 처리 네트워크 모듈(22)이 이미지 처리 시스템(1200)의 제조시에 구비될 수 있다.
도 8a 내지 도 8c는 본 개시의 예시적 실시 예에 따른 이미지 처리 장치를 나타내는 블록도이다. 상세하게는, 도 8a 내지 도 8c는 도 3의 이미지 처리 장치(1000)의 변형 가능한 실시예를 나타내는 도면이다.
도 8a를 참조하면, 이미지 처리 장치(2000)는 카메라 모듈(2100) 및 이미지 처리 시스템(2200)을 포함할 수 있다. 카메라 모듈(2100)은 이미지 센서(2110) 및 프리-프로세서(2120)를 포함할 수 있다. 이미지 처리 시스템(2200)은 뉴럴 네트워크 프로세서(2300) 및 메인 프로세서(2400)를 포함할 수 있다. 뉴럴 네트워크 프로세서(2300)는 이미지 처리 네트워크 모듈(2310)을 포함할 수 있다.
도 3의 이미지 처리 장치(2000)와 비교하면, 도 8a의 이미지 처리 장치(2000)는 카메라 모듈(2100) 내에 프리-프로세서(2120)가 구비될 수 있다. 프리-프로세서(2120)는 이미지 센서(2110)가 생성한 제1 이미지 데이터(IDTa)에 대해 프리-프로세싱 동작을 수행하여 제2 이미지 데이터(IDTb)를 생성할 수 있다. 그리고 프리-프로세서(2120)는 제2 이미지 데이터(IDTb)를 뉴럴 네트워크 프로세서(2300)에 전송할 수 있다. 프리-프로세싱 동작에 대한 설명은 도 3에서 전술한 설명과 실질적으로 동일할 수 있으므로, 중복 설명은 생략한다.
예시적 실시예에 따른 뉴럴 네트워크 프로세서(2300)는 이미지 처리 네트워크 모듈(2310)을 이용하여 수신한 제2 이미지 데이터(IDTb)에 대해 적어도 하나의 이미지 처리 동작을 수행하여 제3 이미지 데이터(IDTc)를 생성할 수 있다. 그리고 뉴럴 네트워크 프로세서(2300)는 제3 이미지 데이터(IDTc)를 메인 프로세서(2400)에 전송할 수 있다. 이미지 처리 네트워크 모듈(2310)에 대한 설명은 도 3에서 전술한 설명과 실질적으로 동일할 수 있으므로, 중복 설명은 생략한다.
예시적 실시예에 따른 메인 프로세서(2400)는 수신한 제3 이미지 데이터(IDTc)에 대해 포스트-프로세싱 동작을 수행하여 보정 이미지 데이터(CDT)를 생성할 수 있다. 그리고 메인 프로세서(2400)는 보정 이미지 데이터(CDT)를 디스플레이에 전송할 수 있다. 포스트-프로세싱 동작에 대한 설명은 도 3에서 전술한 설명과 실질적으로 동일할 수 있으므로, 중복 설명은 생략한다.
도 8b를 참조하면, 이미지 처리 장치(3000)는 카메라 모듈(3100) 및 이미지 처리 시스템(3200)을 포함할 수 있다. 카메라 모듈(3100)은 이미지 센서(3110) 및 제1 이미지 처리 네트워크 모듈(3120)을 포함할 수 있다. 이미지 처리 시스템(3200)은 뉴럴 네트워크 프로세서(3300) 및 메인 프로세서(3400)를 포함할 수 있다. 뉴럴 네트워크 프로세서(3300)는 제2 이미지 처리 네트워크 모듈(3310)을 포함할 수 있다.
도 8a의 이미지 처리 장치(2000)와 비교하면, 도 8b의 이미지 처리 장치(3000)는 카메라 모듈(3100) 내에 제1 이미지 처리 네트워크 모듈(3120)이 구비될 수 있고, 뉴럴 네트워크 프로세서(3300) 내에 제2 이미지 처리 네트워크 모듈(3310)이 구비될 수 있다. 제1 이미지 처리 네트워크 모듈(3120)은 도 8a의 프리-프로세서(2120)의 기능 및 도 8a의 이미지 처리 네트워크 모듈(2310)의 기능들 중 일부를 수행하도록 구현된 뉴럴 네트워크 모델이다.
예를 들어, 제1 이미지 처리 네트워크 모듈(3120)은 배드 픽셀 보정 동작, 렌즈 쉐이딩 보정 동작, 크로스 토크 보정 동작, 화이트 밸런스 보정 동작 등의 프리-프로세싱 동작과 함께, 디모자이크 동작, 디노이즈 동작, 디블러 동작 중 일부를 수행하도록 구현될 수 있다. 한편, 도 8b에는 도시되지 않았으나, 카메라 모듈(3100)은 제1 이미지 처리 네트워크 모듈(3120)을 실행할 프로세싱 유닛(예컨대, 뉴럴 네트워크 프로세서)을 포함할 수 있다.
제1 이미지 처리 네트워크 모듈(3120)은 이미지 센서(3110)가 생성한 제1 이미지 데이터(IDTa)에 대해 이미지 처리 동작을 수행하여 제2 이미지 데이터(IDTb)를 생성할 수 있다. 그리고 제1 이미지 처리 네트워크 모듈(3120)은 제2 이미지 데이터(IDTb)를 뉴럴 네트워크 프로세서(3300)에 전송할 수 있다.
예시적 실시예에 따른 뉴럴 네트워크 프로세서(3300)는 제2 이미지 처리 네트워크 모듈(3310)을 이용하여 수신한 제2 이미지 데이터(IDTb)에 대해 적어도 하나의 이미지 처리 동작을 수행하여 제3 이미지 데이터(IDTc)를 생성할 수 있다. 제2 이미지 처리 네트워크 모듈(3310)은 도 8a의 이미지 처리 네트워크 모듈(2310)의 기능들 중 일부를 수행하도록 구현된 뉴럴 네트워크 모델로, 제1 이미지 처리 네트워크 모듈(3120)에서 구현되지 않은 이미지 처리 동작을 수행하도록 구현될 수 있다. 그리고 뉴럴 네트워크 프로세서(3300)는 제3 이미지 데이터(IDTc)를 메인 프로세서(3400)에 전송할 수 있다.
예시적 실시예에 따른 메인 프로세서(3400)는 수신한 제3 이미지 데이터(IDTc)에 대해 포스트-프로세싱 동작을 수행하여 보정 이미지 데이터(CDT)를 생성할 수 있다. 그리고 메인 프로세서(3400)는 보정 이미지 데이터(CDT)를 디스플레이에 전송할 수 있다. 포스트-프로세싱 동작에 대한 설명은 도 3에서 전술한 설명과 실질적으로 동일할 수 있으므로, 중복 설명은 생략한다.
한편, 본 개시는 이에 한하지 않으며, 제1 이미지 처리 네트워크 모듈(3120)은 프리-프로세서(2120)의 기능은 수행하지 않고, 도 8a의 이미지 처리 네트워크 모듈(2310)의 기능들 중 일부를 수행하도록 구현된 뉴럴 네트워크 모델일 수 있다. 이 경우, 도 8a의 프리-프로세서(2120)가 카메라 모듈(3100)에 포함될 수 있으며, 제1 이미지 처리 네트워크 모듈(3120)은 프리-프로세서(2120)로부터 수신한 이미지 데이터를 처리할 수 있다.
도 8c를 참조하면, 이미지 처리 장치(4000)는 카메라 모듈(4100) 및 이미지 처리 시스템(4200)을 포함할 수 있다. 카메라 모듈(4100)은 이미지 센서(4110) 및 이미지 처리 네트워크 모듈(4120)을 포함할 수 있다. 이미지 처리 시스템(4200)은 메인 프로세서(4300)를 포함할 수 있다. 카메라 모듈(4100)은 이미지 처리 네트워크 모듈(4120)을 포함할 수 있다.
도 8a의 이미지 처리 장치(2000)와 비교하면, 도 8c의 이미지 처리 장치(4000)는 카메라 모듈(4100) 내에 이미지 처리 네트워크 모듈(4120)이 구비될 수 있다. 이미지 처리 네트워크 모듈(4120)은 도 8a의 프리-프로세서(2120)의 기능 및 도 8a의 이미지 처리 네트워크 모듈(2310)의 기능들을 모두 수행하도록 구현된 뉴럴 네트워크 모델이다. 예를 들어, 이미지 처리 네트워크 모듈(4120)은 배드 픽셀 보정 동작, 렌즈 쉐이딩 보정 동작, 크로스 토크 보정 동작, 화이트 밸런스 보정 동작 등의 프리-프로세싱 동작과 함께, 디모자이크 동작, 디노이즈 동작, 디블러 동작을 모두 수행하도록 구현될 수 있다. 한편, 도 8c에는 도시되지 않았으나, 카메라 모듈(4100)은 이미지 처리 네트워크 모듈(4120)을 실행할 프로세싱 유닛(예컨대, 뉴럴 네트워크 프로세서)을 포함할 수 있다.
이미지 처리 네트워크 모듈(4120)은 이미지 센서(4110)가 생성한 제1 이미지 데이터(IDTa)에 대해 이미지 처리 동작을 수행하여 제2 이미지 데이터(IDTb)를 생성할 수 있다. 그리고 이미지 처리 네트워크 모듈(4120)은 제2 이미지 데이터(IDTb)를 메인 프로세서(4300)에 전송할 수 있다.
예시적 실시예에 따른 메인 프로세서(4300)는 수신한 제2 이미지 데이터(IDTb)에 대해 포스트-프로세싱 동작을 수행하여 보정 이미지 데이터(CDT)를 생성할 수 있다. 그리고 메인 프로세서(4300)는 보정 이미지 데이터(CDT)를 디스플레이에 전송할 수 있다. 포스트-프로세싱 동작에 대한 설명은 도 3에서 전술한 설명과 실질적으로 동일할 수 있으므로, 중복 설명은 생략한다.
한편, 본 개시는 이에 한하지 않으며, 이미지 처리 네트워크 모듈(4120)은 프리-프로세서(2120)의 기능은 수행하지 않고, 도 8a의 이미지 처리 네트워크 모듈(2310)의 기능들을 모두 수행하도록 구현된 뉴럴 네트워크 모델일 수 있다. 이 경우, 도 8a의 프리-프로세서(2120)가 카메라 모듈(4100)에 포함될 수 있으며, 이미지 처리 네트워크 모듈(4120)은 프리-프로세서(2120)로부터 수신한 이미지 데이터를 처리할 수 있다.
이와 같이, 본 개시의 기술적 사상에 따른 이미지 처리 장치(2000, 3000, 4000)는 도 3의 프리-프로세서(100) 및/또는 이미지 처리 네트워크 모듈(220)의 기능들 중 적어도 일부가 카메라 모듈(2100, 3100, 4100) 측에서 수행되도록 구현될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 전자 장치를 나타내는 블록도이다. 예를 들어, 전자 장치(5000)는 휴대용 단말기일 수 있다.
도 9를 참조하면, 본 개시의 예시적 실시예에 따른 전자 장치(5000)는 어플리케이션 프로세서(5100), 카메라 모듈(5200), 워킹 메모리(5500), 스토리지(5600), 유저 인터페이스(5700), 무선 송수신부(5800) 및 디스플레이 장치(5900)를 포함할 수 있으며, 어플리케이션 프로세서(5100)는 이미지 신호 프로세서(5300) 및 뉴럴 네트워크 프로세서(5400)를 포함할 수 있다. 도 1 등에서 서술된 본 개시의 예시적 실시예들에 따른 이미지 처리 동작이 이미지 신호 프로세서(5300) 및 뉴럴 네트워크 프로세서(5400)에 적용될 수 있다. 실시예에 있어서, 이미지 신호 프로세서(5300) 및 뉴럴 네트워크 프로세서(5400)는 어플리케이션 프로세서(5100)와는 별개의 집적 회로로 구현될 수 있다.
어플리케이션 프로세서(5100)는 전자 장치(5000)의 전반적인 동작을 제어하며 응용 프로그램, 운영 체제 등을 구동하는 시스템 온 칩(SoC)으로 제공될 수 있다. 어플리케이션 프로세서(5100)는 이미지 신호 프로세서(5300)의 동작을 제어할 수 있으며, 이미지 신호 프로세서(5300)에서 생성되는 변환된 이미지 데이터를 디스플레이 장치(5900)에 제공하거나 또는 스토리지(5600)에 저장할 수 있다.
카메라 모듈(5200)은 수신되는 광 신호를 기초로 이미지 데이터, 예컨대 로우 이미지 데이터를 생성하고 이미지 데이터를 이미지 신호 프로세서(5300)에 제공할 수 있다.
워킹 메모리(5500)는 DRAM, SRMA 등의 휘발성 메모리 또는 FeRAM, RRAM PRAM 등의 비휘발성의 저항성 메모리로 구현될 수 있다. 워킹 메모리(5500)는 어플리케이션 프로세서(5100)가 처리 또는 실행하는 프로그램들 및/또는 데이터를 저장할 수 있다.
스토리지(5600)는 NADN 플래시, 저항성 메모리 등의 비휘발성 메모리 장치로 구현될 수 있으며, 예컨대 스토리지(5600)는 메모리 카드(MMC, eMMC, SD, micro SD) 등으로 제공될 수 있다. 스토리지(5600)는 이미지 신호 프로세서(5300)의 이미지 처리 동작을 제어하는 실행 알고리즘에 대한 데이터 및/또는 프로그램을 저장할 수 있으며, 이미지 처리 동작이 수행될 때 데이터 및/또는 프로그램이 워킹 메모리(5500)로 로딩될 수 있다. 실시예에 있어서, 스토리지(5600)는 이미지 신호 프로세서(5300)에서 생성되는 이미지 데이터, 예컨대 변환된 이미지 데이터 또는 후처리된 이미지 데이터를 저장할 수 있다.
유저 인터페이스(5700)는 키보드, 커튼 키 패널, 터치 패널, 지문 센서, 마이크 등 사용자 입력을 수신할 수 있는 다양한 장치들로 구현될 수 있다. 유저 인터페이스(5700)는 사용자 입력을 수신하고, 수신된 사용자 입력에 대응하는 신호를 어플리케이션 프로세서(5100)에 제공할 수 있다. 무선 송수신부(5800)는 트랜시버(5810), 모뎀(5820) 및 안테나(5830)를 포함할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 이미지 처리 장치에 있어서,
    제1 이미지 데이터를 생성하는 카메라 모듈;
    상기 제1 이미지 데이터에 대한 프리-프로세싱을 수행하여 제2 이미지 데이터를 생성하는 프리-프로세서;
    기설정된 이미지 처리 동작들을 수행하도록 훈련된 뉴럴 네트워크 모델을 이용하여 상기 제2 이미지 데이터에 대한 이미지 처리를 수행하여 제3 이미지 데이터를 생성하는 뉴럴 네트워크 프로세서; 및
    상기 제3 이미지 데이터에 대한 포스트-프로세싱을 수행하여 보정 이미지 데이터를 생성하는 메인 프로세서;를 포함하는 이미지 처리 장치.
  2. 제1항에 있어서,
    상기 프리-프로세서는,
    배드 픽셀 보정 동작, 렌즈 쉐이딩 보정 동작, 크로스토크 보정 동작, 화이트 밸런스 보정 동작 중 적어도 하나를 수행하는 것을 특징으로 하는 이미지 처리 장치.
  3. 제2항에 있어서,
    상기 뉴럴 네트워크 모델은,
    리모자이크 동작, 디모자이크 동작, 디노이즈 동작, 디블러 동작, 감마 보정 동작, 하이 다이나믹 레인지 동작, 톤 매핑 동작 중 적어도 하나를 수행하도록 훈련된 모델인 것을 특징으로 하는 이미지 처리 장치.
  4. 제3항에 있어서,
    상기 메인 프로세서는,
    역 화이트 밸런스 보정 동작, 리모자이크 동작, 디모자이크 동작, 디노이즈 동작, 디블러 동작, 감마 보정 동작, 하이 다이나믹 레인지 동작, 톤 매핑 동작 중 적어도 하나를 수행하는 것을 특징으로 하는 이미지 처리 장치.
  5. 상기 제1항에 있어서,
    상기 뉴럴 네트워크 모델은,
    테트라(tetra) 패턴 또는 노나(nona) 패턴을 갖는 이미지 데이터를 입력 데이터로 이용하고,
    베이어(bayer) 패턴을 갖는 이미지 데이터 또는 RGB 이미지 데이터를 출력 데이터로 이용하는 것을 특징으로 하는 이미지 처리 장치.
  6. 제1항에 있어서,
    이미지를 표시하는 디스플레이;를 더 포함하고,
    상기 카메라 모듈은,
    상기 디스플레이 하단에 배치되어 상기 제1 이미지 데이터를 생성하는 것을 특징으로 하는 이미지 처리 장치.
  7. 제6항에 있어서,
    상기 뉴럴 네트워크 모델은,
    언더 디스플레이 카메라(under display camera)로부터 생성된 제1 훈련 데이터를 입력 데이터로 이용하고, 상기 훈련 데이터에 대하여 상기 기설정된 이미지 처리 동작들이 수행된 제2 훈련 데이터를 출력 데이터로 이용하여 훈련된 것을 특징으로 하는 이미지 처리 장치.
  8. 이미지 처리 장치에 있어서,
    디스플레이;
    상기 디스플레이 하단에 배치되어 상기 이미지 처리 장치의 외부를 촬영한 제1 이미지 데이터를 생성하는 카메라 모듈; 및
    언더 디스플레이 카메라 모듈에 의해 생성된 이미지 데이터에 대한 이미지 처리 동작을 수행하도록 훈련된 뉴럴 네트워크 모델을 이용하여 상기 제1 이미지 데이터에 대한 이미지 처리 동작을 수행하는 뉴럴 네트워크 프로세서;를 포함하는 이미지 처리 장치.
  9. 이미지 처리 장치의 동작 방법에 있어서,
    제1 이미지 데이터를 획득하는 단계;
    상기 제1 이미지 데이터에 대한 프리-프로세싱을 수행하여 제2 이미지 데이터를 생성하는 단계;
    기설정된 이미지 처리 동작들을 수행하도록 훈련된 뉴럴 네트워크 모델을 이용하여 상기 제2 이미지 데이터에 대해 이미지 처리를 수행하여 제3 이미지 데이터를 생성하는 단계; 및
    상기 제3 이미지 데이터에 대한 포스트-프로세싱을 수행하여 보정 이미지 데이터를 생성하는 단계;를 포함하는 동작 방법.
  10. 제9항에 있어서,
    상기 제1 이미지 데이터는,
    디스플레이 하단에 배치된 카메라 모듈로부터 생성된 이미지 데이터이고,
    상기 뉴럴 네트워크 모델은,
    언더 디스플레이 카메라 모듈에 의해 생성된 이미지 데이터에 대한 이미지 처리 동작을 수행하도록 훈련된 모델인 것을 특징으로 하는 동작 방법.
KR1020200167661A 2020-12-03 2020-12-03 뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법 KR20220078283A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200167661A KR20220078283A (ko) 2020-12-03 2020-12-03 뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법
US17/392,918 US11838651B2 (en) 2020-12-03 2021-08-03 Image processing apparatus including neural network processor and method of operating the same
CN202111185892.3A CN114598827A (zh) 2020-12-03 2021-10-12 包括神经网络处理器的图像处理装置及操作其的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200167661A KR20220078283A (ko) 2020-12-03 2020-12-03 뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220078283A true KR20220078283A (ko) 2022-06-10

Family

ID=81814336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200167661A KR20220078283A (ko) 2020-12-03 2020-12-03 뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US11838651B2 (ko)
KR (1) KR20220078283A (ko)
CN (1) CN114598827A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102632568B1 (ko) * 2023-08-24 2024-02-01 주식회사 디퍼아이 Npu를 이용한 이미지 처리장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022154264A (ja) * 2021-03-30 2022-10-13 キヤノン株式会社 撮像装置、画像処理装置、移動装置、制御方法およびコンピュータプログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627193B2 (en) 2003-01-16 2009-12-01 Tessera International, Inc. Camera with image enhancement functions
US8417055B2 (en) 2007-03-05 2013-04-09 DigitalOptics Corporation Europe Limited Image processing method and apparatus
US8654201B2 (en) 2005-02-23 2014-02-18 Hewlett-Packard Development Company, L.P. Method for deblurring an image
US7548659B2 (en) 2005-05-13 2009-06-16 Microsoft Corporation Video enhancement
US7756407B2 (en) 2006-05-08 2010-07-13 Mitsubishi Electric Research Laboratories, Inc. Method and apparatus for deblurring images
KR101574733B1 (ko) 2008-11-19 2015-12-04 삼성전자 주식회사 고화질 컬러 영상을 획득하기 위한 영상 처리 장치 및 방법
US9344690B2 (en) 2014-01-24 2016-05-17 Microsoft Technology Licensing, Llc Image demosaicing
US10311560B2 (en) 2016-09-07 2019-06-04 Huazhong University Of Science And Technology Method and system for estimating blur kernel size
US11263782B2 (en) * 2017-10-11 2022-03-01 Qualcomm Incorporated Image signal processor for processing images
US20190129530A1 (en) 2017-10-30 2019-05-02 Synaptics Incorporated Under display biometric sensor
US20190304102A1 (en) 2018-03-30 2019-10-03 Qualcomm Incorporated Memory efficient blob based object classification in video analytics
US11330163B2 (en) 2018-06-29 2022-05-10 Qualcomm Incorporated Exchanging an HDR-combined stream and associated exposures between a camera sensor module and a vision processing system
KR102083835B1 (ko) 2018-07-27 2020-03-03 가천대학교 산학협력단 딥 러닝 기반 이미지 처리장치, 이미지 처리방법 및 컴퓨터-판독가능 매체 및 딥 러닝 기반 이미지 센싱장치
JP2020043435A (ja) * 2018-09-07 2020-03-19 ソニーセミコンダクタソリューションズ株式会社 画像処理装置、画像処理方法および画像処理プログラム
US11132771B2 (en) 2018-11-07 2021-09-28 Spectrum Optix Inc. Bright spot removal using a neural network
KR102097905B1 (ko) * 2019-06-04 2020-04-06 주식회사 딥엑스 이미지 객체 인식 장치 및 방법
US11153513B2 (en) * 2019-08-19 2021-10-19 Synaptics Incorporated Light source for camera
CN113452898B (zh) * 2020-03-26 2023-07-18 华为技术有限公司 一种拍照方法及装置
TW202223834A (zh) * 2020-08-28 2022-06-16 加拿大商光譜優化股份有限公司 神經嵌入之攝影機影像視訊處理管道及神經網路訓練系統

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102632568B1 (ko) * 2023-08-24 2024-02-01 주식회사 디퍼아이 Npu를 이용한 이미지 처리장치

Also Published As

Publication number Publication date
CN114598827A (zh) 2022-06-07
US20220182537A1 (en) 2022-06-09
US11838651B2 (en) 2023-12-05

Similar Documents

Publication Publication Date Title
US11849226B2 (en) Image processing device including neural network processor and operating method thereof
US9824417B2 (en) Image signal processor for generating depth map from phase detection pixels and device having the same
US11663691B2 (en) Method and apparatus for restoring image
WO2020152521A1 (en) Systems and methods for transforming raw sensor data captured in low-light conditions to well-exposed images using neural network architectures
US10397498B2 (en) Compressive sensing capturing device and method
US11838651B2 (en) Image processing apparatus including neural network processor and method of operating the same
US20220366588A1 (en) Electronic device for generating depth information of region of interest and operation method thereof
KR20190064882A (ko) 딥러닝 기반 차량용 영상 처리 방법
US20220345624A1 (en) Image sensor module and method of operating the same
CN102625046A (zh) 照相防抖装置及方法
KR20200129957A (ko) 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템
CN113379746B (zh) 图像检测方法、装置、***、计算设备及可读存储介质
US11748862B2 (en) Image processing apparatus including neural network processor and method of operation
US20230071368A1 (en) Image processing apparatus including pre-processor and neural network processor and operating method thereof
KR20230034875A (ko) 프리-프로세서 및 뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법
US20230262343A1 (en) Image signal processor, method of operating the image signal processor, and application processor including the image signal processor
US11978223B2 (en) Electronic device including processing circuit for generating depth information using luminance data and method of generating depth information
US11943557B2 (en) Image sensor module, image processing system, and operating method of image sensor module
KR20240068414A (ko) 이미지 신호 프로세서, 이미지 센서 및 이미지 센서의 동작 방법
KR20230123400A (ko) 이미지 신호 프로세서, 상기 이미지 신호 프로세서의 동작 방법 및 상기 이미지 신호 프로세서를 포함하는 애플리케이션 프로세서
JP2024066494A (ja) イメージセンサ及びイメージセンサの動作方法
KR20210114846A (ko) 고정된 기하학적 특성을 이용한 카메라 모듈, 촬상 장치 및 이미지 처리 방법
JP2019200675A (ja) 演算デバイス及びデータの処理方法