KR20210139061A - 이미징 장치 및 이미징 방법 - Google Patents

이미징 장치 및 이미징 방법 Download PDF

Info

Publication number
KR20210139061A
KR20210139061A KR1020200057333A KR20200057333A KR20210139061A KR 20210139061 A KR20210139061 A KR 20210139061A KR 1020200057333 A KR1020200057333 A KR 1020200057333A KR 20200057333 A KR20200057333 A KR 20200057333A KR 20210139061 A KR20210139061 A KR 20210139061A
Authority
KR
South Korea
Prior art keywords
bayer data
resolution
noise level
data
neural network
Prior art date
Application number
KR1020200057333A
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 KR1020200057333A priority Critical patent/KR20210139061A/ko
Priority to PCT/KR2021/006017 priority patent/WO2021230683A1/ko
Priority to US17/925,104 priority patent/US20230232121A1/en
Publication of KR20210139061A publication Critical patent/KR20210139061A/ko

Links

Images

Classifications

    • 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
    • H04N23/815Camera processing pipelines; Components thereof for controlling the resolution by using a single image
    • 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/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • 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/617Upgrading or updating of programs or applications for camera control
    • 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
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • 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)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Signal Processing (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

본 발명의 일 실시예에 따른 이미징 장치는 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받는 입력부, 및 제1 베이어 데이터 및 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 콘볼루션 신경망을 포함한다.

Description

이미징 장치 및 이미징 방법{Imaging Apparatus and Imaging Method}
본 발명은 이미징 장치에 관한 것으로, 보다 구체적으로 노이즈 레벨에 적응적으로 딥 러닝(Deep Learning)을 수행하여 저해상도 데이터로부터 고해상도 데이터를 생성하는 이미징 장치, 이미지 센서 모듈, 및 이미징 방법에 관한 발명이다.
기술이 발전함에 따라 카메라 모듈의 소형화가 가능해지자, 소형 카메라 모듈은 스마트폰을 비롯한 휴대폰이나 PDA 등 다양한 IT 기기에 적용되어 사용되고 있다. 이러한 카메라 모듈은 CCD나 CMOS 등의 이미지 센서를 주요 부품으로 제작되고 있으며, 화상의 크기를 조절하기 위하여 초점 조정이 가능하도록 제조되고 있다.
한편, 기술이 발전에 의해 해상도가 높은 이미지의 구현이 가능해짐에 따라, 멀리 있는 대상체를 촬영한 이미지를 고해상도로 구현할 수 있는 기술에 대한 요구 또한 늘어나고 있다.
일반적으로 카메라는 멀리 있는 대상체를 촬영하기 위해 줌(Zoom) 기능이 탑재되어 있는데, 줌 기능은 크게 카메라 내부의 실제 렌즈가 이동하여 대상체를 확대하는 광학줌과, 대상체를 촬영한 화상 데이터의 일부 화면을 디지털 처리 방식으로 확대 표시하여 줌 효과를 얻는 디지털 줌 방식으로 나뉘어진다.
렌즈의 이동을 이용하여 대상체에 대한 이미지를 얻는 광학 줌의 경우 비교적 높은 해상도를 가지는 이미지를 획득할 수 있으나, 이는 카메라 내부의 구조가 복잡해지고 부품 추가로 인해 비용이 증가하는 문제가 존재한다. 또한, 광학 줌을 이용하여 대상체를 확대할 수 있는 영역은 한계가 있어서, 이러한 부분에 대해서는 소프트웨어로 보정을 하는 기술 등이 개발되고 있다.
이러한 방법 이 외에도, 보이스 코일 모터(VCM, Voice Coil Motor) 또는 MEMS(Micro-Electro Mechanical Systems) 기술로 센서를 흔드는 센서 시프트(Shift) 기술, 렌즈를 VCM 등으로 흔들어서 픽셀 정보를 얻는 OIS(Optical Image Stabilizer) 기술, 센서와 렌즈 사이의 필터(Filter)를 흔드는 기술 등 카메라 내부의 부품을 움직이는 방식으로 픽셀 정보를 더 많이 생성하여 고해상도 이미지를 구현하는 기술들이 존재한다.
그러나 이러한 기술들의 단점은 여러 시차의 데이터를 합성하기 때문에 움직이는 물체를 촬영한 경우, 모션 블러(Motion Blur)나, 아티팩트(Artifact)와 같은 현상들이 발생할 수 있어 이로 인해 이미지의 화질을 저하시키는 문제가 발생할 수 있다.
또한, 이를 구현하기 위한 복잡한 장치가 카메라 내부가 삽입됨에 따라 카메라 모듈의 크기가 커지게 되고, 부품을 흔드는 방법으로 구현을 하기 때문에 카메라가 설치된 차량에서는 사용하기 힘들고, 고정적인 환경에서만 사용이 가능한 문제가 존재한다.
반면, TV에서 일반적으로 사용되고 있는 소프트웨어 알고리즘을 이용한 고해상도 구현 기술은 싱글 프레임 SR (Single-Frame Super Resolution) 또는 멀티 프레임 SR(Multi-frame Super Resolution) 기술 등이 존재한다.
이러한 기술의 경우 아티팩트(Artifact) 문제는 발생하지는 않지만, 모바일, 차량, IoT 등 소형 카메라 모듈이 적용될 수 있는 장치에는 적용하기 어려운 알고리즘이며, 또한 이러한 기술을 구현하기 위해서는 별도의 이미지 프로세서가 장착되지 없으면 구현하기 어려운 문제점이 존재한다.
또한, SR을 수행함에 있어, 동일한 방식을 이용하는 경우, 노이즈 레벨 등 환경정보를 반영하지 않게되어, 노이즈 레벨에 따라 성능이 저하되는 문제가 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 이미징 장치는 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받는 입력부; 및 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 콘볼루션 신경망을 포함한다.
또한, 상기 제1 베이어 데이터 및 상기 노이즈 레벨은 상기 콘볼루션 신경망에 각각 입력될 수 있다.
또한, 상기 제1 베이어 데이터는 이미지 센서로부터 출력되는 데이터일 수 있다.
또한, 상기 이미지 센서로부터 출력되는 데이터는 상기 노이즈 레벨을 기반으로 증폭된 데이터일 수 있다.
또한, 상기 노이즈 레벨은 이미지 센서 또는 AP(Application Processor)로부터 입력될 수 있다.
또한, 상기 콘볼루션 신경망은, 제1 베이어 데이터 및 노이즈 레벨을 기반으로 제2 해상도를 가지는 제2 베이어 데이터를 출력하도록 학습될 수 있다.
또한, 상기 콘볼루션 신경망의 트레이닝 세트는, 소정의 노이즈 레벨, 해당 노이즈 레벨 및 제1 해상도를 가지는 제1 베이어 데이터, 및 제2 해상도를 가지는 제2 베이어 데이터를 포함할 수 있다.
또한, 상기 제2 해상도는 상기 제1 해상도보다 높을 수 있다.
또한, 상기 제2 베이어 데이터의 노이즈는 상기 제1 베이어 데이터의 노이즈보다 작을 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 이미징 장치는 적어도 하나의 프로세서; 및 상기 프로세서에서 처리되는 명령어를 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 메모리에 저장된 명령어에 따라, 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받고, 학습된 콘볼루션 신경망을 이용하여 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 카메라 모듈은 노이즈 레벨에 따라 제1 해상도를 가지는 제1 베이어 데이터를 생성하는 이미지 센서; 및 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 콘볼루션 신경망을 포함한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 이미징 방법은 적어도 하나의 프로세서 및 상기 프로세서에서 처리되는 명령어를 저장하는 메모리를 포함하는 이미징 장치의 이미징 방법에 있어서, 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받는 단계; 및 학습된 콘볼루션 신경망을 이용하여 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 단계를 포함한다.
본 발명의 실시예들에 따르면, 노이즈 레벨에 적응적으로 저해상도 데이터로부터 고해상도 데이터를 생성할 수 있다. 고해상도의 데이터를 생성함에 있어서, RGB 이미지가 아닌 로우(Raw) 데이터인 베이어 데이터의 해상도를 높여 디지털 줌을 수행하는바, RGB 이미지에 대해 해상도를 높이는 경우보다, 정보량이 많아 화질이 높은 고해상도 이미지를 획득할 수 있다.
또한, 저조도 환경에서 화질이 우수한 RGB 이미지를 얻을 수 있고, RGB 이미지의 해상도를 높임과 동시에 화질이 개선된 RGB 이미지를 생성할 수 있다.
또한, 몇 개의 라인 버퍼(Line Buffer)만을 사용하는 방식으로 고해상도를 구현하고 네트워크 구성은 최적화시키는 방식으로 고해상도 이미지를 생성하므로 비교적 크기가 작은 소형 칩(Chip)으로 구현할 수 있고, 이를 통해, 탑재되는 장치의 사용 목적에 따라 다양한 위치에 다양한 방식으로 탑재될 수 있어, 설계의 자유도가 증가할 수 있다. 또한, 기존의 딥 러닝 방식의 알고리즘을 수행하기 위해 고가의 프로세서가 필요하지 않아 보다 경제적으로 고해상도 이미지를 생성할 수 있다.
또한, 이미지 센서 모듈, 카메라 모듈, AP 모듈 어느 위치에나 탑재 가능한 방식으로 본 기술의 실시가 가능하므로, 줌 기능이 없는 카메라 모듈 또는 특정 배율에 대한 고정 줌만 지원하는 카메라 모듈과 같이, 다양한 기존 모듈에 본 기술을 적용시켜 연속 줌 기능을 사용할 수 있다.
또한, 특정 배율에 대해 광학적으로 연속 줌만 지원하는 카메라 모듈에서도 본 기술을 적용시켜 더 넓은 배율 구간에서 연속 줌 기능을 활용할 수 있는 효과가 존재한다.
도 1은 본 발명의 일 실시예에 따른 이미징 과정을 도시한 것이다.
도 2 내지 도 7은 본 발명의 실시예에 따른 이미징 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 이미징 장치의 블록도이다.
도 9는 본 발명의 실시예에 따른 기록매체에 저장되는 요소들의 블록도이다.
도 10은 본 발명의 일 실시예에 따른 카메라 모듈의 블록도이다.
도 11 및 도 12는 본 발명의 실시예에 따른 프로세서가 적용되는 다양한 장치들을 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시예에 따른 이미징 방법의 흐름도이다.
도 14는 본 발명의 다른 실시예에 따른 이미징 방법의 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합 또는 치환하여 사용할 수 있다.
또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.
또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.
또한, 본 발명의 실시 예의 구성 요소를 설명하는데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.
그리고, 어떤 구성 요소가 다른 구성 요소에 '연결', '결합', 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 '연결', '결합', 또는 '접속'되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합', 또는 '접속'되는 경우도 포함할 수 있다.
또한, 각 구성 요소의 "상(위)" 또는 "하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, "상(위)" 또는 "하(아래)"는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라, 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위)" 또는 "하(아래)"로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함될 수 있다.
도 1은 본 발명의 일 실시예에 따른 이미징 과정을 도시한 것이다.
본 발명의 일 실시예에 따른 이미징 과정은 학습된 콘볼루션 신경망을 이용하는 이미징 장치, 카메라 모듈, 이미징 방법, 이미징 시스템에 이용될 수 있다.
본 발명의 일 실시예에 따른 이미징 장치는 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받는 입력부 및 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 콘볼루션 신경망을 포함한다. 이미징 장치는 파이프라인 프로세서(pipelined processor)를 포함할 수 있고, 노이즈 레벨 및 제1 베이어 데이터로부터 제2 베이어 데이터를 생성하도록 학습된 콘볼루션 신경망을 포함할 수 있다. 이하, 도 1을 참조하여 콘볼루션 신경망을 이용한 이미지 과정에 대해 상세히 설명하도록 한다.
본 발명의 일 실시예에 따른 콘볼루션 신경망은 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받아 제2 해상도를 가지는 제2 베이어 데이터를 생성하도록 학습된다.
학습된 콘볼루션 신경망은 제1 베이어 데어티 및 노이즈 레벨을 입력받아, 제2 베이어 데이터를 생성할 수 있다. 여기서, 제1 베이어 데이터는 제1 해상도를 가지는 베이어 데이터이고, 제2 베이어 데이터는 제2 해상도를 가지는 베이어 데이터일 수 있다. 또는, 제2 베이어 데이터는 제1 베이어 데이터보다 노이즈가 작은 베이어 데이터일 수 있다. 또한, 학습된 콘볼루션 신경망을 통해 소정의 노이즈 레벨 및 제1 해상도를 가지는 제1 베이어 데이터로부터 제2 해상도를 가지는 제2 베이어 데이터를 생성할 수 있다. 여기서, 제1 해상도는 제2 해상도와 상이한 해상도를 가지고, 제2 해상도는 제1 해상도보다 높은 해상도일 수 있다. 예를 들어, 저조도에서 생성된 저해상도 베이어 데이터로부터 고해상도의 베이어 데이터를 생성할 수 있다.
학습된 콘볼루션 신경망을 이용하여 제2 베이어 데이터를 생성함으로써, 줌 배율, 조리개, 셔터 스피드와 같은 이미지 센서의 설정을 변경하거나, 해상도가 높은 이미지 센서를 이용할 필요가 없이, 제2 해상도를 가지는 제2 베이어 데이터를 출력할 수 있다. 이미지 센서의 설정의 변경시 발생할 수 있는 빛번짐, 블러 등과 같은 노이즈의 증가 또는 고 스펙의 이미지 센서의 이용없이, 고해상도 베이어 데이터를 출력할 수 있다.
본 발명의 일 실시예에 따른 이미징 과정은 제1 해상도를 가지는 제1 베이어 데이터(101) 및 노이즈 레벨(102)을 입력받는 입력부(110) 및 제1 베이어 데이터(101) 및 노이즈 레벨(102)을 이용하여 제2 해상도를 가지는 제2 베이어 데이터(103)를 출력하는 콘볼루션 신경망(120)을 통해 수행될 수 있다.
입력부(110)는 제1 베이어 데이터(101) 및 노이즈 레벨(102)을 입력받는다. 여기서, 제1 베이어 데이터(101)는 이미지 센서가 생성하여 출력하는 로우(Raw) 데이터로, 이미지 처리를 수행하여 생성되는 RGB 이미지 데이터에 비해 많은 정보를 포함하고 있다. 제1 베이어 데이터(101)는 도 2와 같이, 이미지 센서(140)로부터 생성되어 입력받을 수 있다.
이미지 센서(140)는 카메라 모듈의 렌즈를 통해 들어오는 빛을 전기 신호로 변화하는 CMOS(Complementary Metal Oxide Semiconductor) 또는 CCD(Charge Coupled Device)와 같은 이미지 센서를 포함할 수 있다. 이미지 센서(140)는 획득한 이미지를 컬러 필터를 통해 베이어 패턴(Bayer Pattern)의 정보를 포함하는 제1 베이어 데이터를 생성할 수 있다. 이때, 제1 베이어 데이터(101)는 이미지 센서(140)의 스펙 또는 해당 이미지를 생성시 설정된 줌 배율에 따라 제1 해상도를 가질 수 있다.
이미지 센서(140)는 제1 베이어 데이터(101)를 생성함에 있어서, 해당 제1 베이어 데이터를 생성하는 환경에서 저조도를 개선하기 위하여, 제1 베이어 데이터(101)에 대해 증폭기(Amplifier)를 통해 이득값(Gain)을 적용하여 증폭한다. 증폭기를 통한 증폭시 데이터에 포함된 노이즈도 함께 커지게 된다. 이미지 센서(140)는 AP(application Processor, 130)로부터 노이즈 레벨을 수신하고, 수신한 노이즈 레벨에 따라 증폭기를 이용하여 제1 베이어 데이터를 증폭시켜 증폭된 제1 베이어 데이터를 출력할 수 있다.
노이즈 레벨(102)은 증폭기의 이득값을 포함할 수 있고, 이미지 센서(140)에 포함되는 증폭기의 스펙에 따라 값이 달라질 수 있다. 예를 들어, 증폭기가 1 내지 128의 이득값을 가지는 경우, 노이즈 레벨(102)은 1 내지 128 중 하나의 값일 수 있다. 여기서, 이득값은 노출이 최대 노출 대비 1/이득값 배 짧음을 의미한다. 예를 들어, 노이즈 레벨 2, 즉 이득값이 2인 경우, 노출이 최대 노출의 1/2 배 인 것을 의미하며, 이때, 제1 베이어 데이터를 이득값 2를 적용하여 2 배 증폭하여 출력할 수 있다.
입력부(110)는 제1 베이어 데이터(101) 및 노이즈 레벨(102)을 각각 입력받을 수 있다. 도 2와 같이, 제1 베이어 데이터 입력부(110)가 이미지 센서(140)로부터 제1 베이어 데이터(101)를 입력받을 수 있고, 노이즈 레벨 입력부(110)가 AP(130)로부터 노이즈 레벨(102)을 입력받을 수 있다. 이때, 제1 베이어 데이터 입력부(110)는 이미지 센서(140)로부터 MIPI(Mobile Industry Processor Interface)를 통해 제1 베이어 데이터(101)를 입력받을 수 있다. 노이즈 레벨 입력부(110)가 AP(130)로부터 12C(channel)를 통해 노이즈 레벨(102)을 입력받을 수 있다. 노이즈 레벨 입력부(110)가 AP(130)로부터 1 내지 16의 인티저(interger) 값으로 노이즈 레벨(102)을 입력받을 수 있다. 예를 들어, 노이즈 레벨의 범위가 1 내지 128인 경우, 7자리 인티저 값으로 노이즈 레벨을 구분하여 입력받을 수 있다. 이미지 센서(140) 또한, AP(130)로부터 노이즈 레벨(102)을 수신하는바, 노이즈 레벨 입력부(110)는 이미지 센서(140)로부터 노이즈 레벨(102)을 입력받을 수도 있다.
입력부(110)가 입력받은 제1 베이어 데이터(101) 및 노이즈 레벨(102)은 콘볼루션 신경망(120)으로 입력되고, 콘볼루션 신경망(120)은 노이즈 레벨(102) 및 제1 해상도를 가지는 제1 베이어 데이터(101)로부터 제2 해상도를 가지는 제2 베이어 데이터(103)를 출력한다.
노이즈 레벨(102) 및 제1 해상도를 가지는 제1 베이어 데이터(101)로부터 제2 해상도를 가지는 제2 베이어 데이터(103)를 출력하는 트레이닝으로 학습된 콘볼루션 신경망(120)은 노이즈 레벨(102) 및 제1 해상도를 가지는 제1 베이어 데이터(101)를 입력받아 제2 해상도를 가지는 제2 베이어 데이터(103)를 출력한다.
콘볼루션 신경망(120)은 FCN(Fully Convolutional Network), U-Net, MobileNet, RDN(Residual Dense Network), 및 RCAN(Residual Channel Attention Network) 중 적어도 하나의 모델일 수 있다. 이외에도 다양한 모델을 이용할 수 있음은 당연하다.
콘볼루션 신경망(120)에 입력되는 제1 베이어 데이터(101)는 특정 줌 배율에서 생성되어 제1 해상도를 가지는 베이어 데이터이고, 콘볼루션 신경망(120)에서 출력되는 제2 베이어 데이터(103)는 제1 베이어 데이터와 해상도가 다른 베이어 데이터이다. 제2 베이어 데이터(103)의 제2 해상도는 제1 베이어 데이터(101)의 제1 해상도보다 높을 수 있다. 또는 제2 해상도가 제1 해상도가 낮을 수도 있다.
제2 해상도가 제1 해상도가 높은 경우, 즉, 저해상도 베이어 데이터로부터 고해상도 베이어 데이터를 생성할 때, 저해상도 베이어 데이터가 생성될 때 적용되는 노이즈 레벨(102)에 따라 저해상도 베이어 데이터에 포함된 노이즈가 다른바, 노이즈 레벨(102)를 이용하지 않은 콘볼루션 신경망(120)을 이용하여 고해상도 베이어 데이터를 생성시, 노이즈 레벨(102)에 따라 품질이 달라질 수 있다. 특히, 조도가 낮은 저조도의 저해상도의 베이어 데이터로부터 고해상도 베이어 데이터를 생성시, 노이즈가 많이 포함될 수 있다. 따라서, 저해상도 베이어 데이터로부터 고해상도 베이어 데이터를 생성함과 동시에 이미지 밝기 증폭으로 인한 노이즈를 개선하여 품질좋은 고해상도 베이어 데이터를 생성하기 위하여, 저해상도 베이어 데이터와 노이즈 레벨을 함께 입력받아, 노이즈 레벨에 적응적으로 파라미터를 가변하여 저해상도의 베이어 데이터로부터 고해상도 베이어 데이터를 생성할 수 있다. 즉, 콘볼루션 신경망(120)은 저해상도의 제1 베이어 데이터로부터 고해상도의 제2 베이어 데이터를 생성하여 출력할 수 있다.
콘볼루션 신경망(120)은 고해상도의 제2 베이어 데이터를 생성하기 위하여, 제1 베이어 데이터 및 노이즈 레벨을 기반으로 제2 해상도를 가지는 제2 베이어 데이터를 출력하도록 학습(트레이닝)될 수 있다. 콘볼루션 신경망을 학습시키는 트레이닝 세트는 소정의 노이즈 레벨, 해당 노이즈 레벨 및 제1 해상도를 가지는 제1 베이어 데이터, 및 제2 해상도를 가지는 제2 베이어 데이터로 구성될 수 있다.
콘볼루션 신경망(120)은 트레이닝 세트를 구성하는 소정의 노이즈 레벨, 해당 노이즈 레벨 에서 1 해상도를 가지는 제1 베이어 데이터로부터 저조도를 개선하고 해상도를 높여 출력되는 베이어 데이터가 트레이닝 세트를 구성하는 제2 베이어 데이터와 같아지도록 트레이닝된다. 콘볼루션 신경망(120)을 트레이닝하는 과정은 이후 자세히 설명하도록 한다
도 3은 학습된 콘볼루션 신경망(120)을 이용하여 이미징을 수행하는 파이프라인 프로세서를 도시한 것으로, 파이프라인 프로세서는 입력부(110), 블록 추출기(310), 콘볼루션 신경망(120), 블록버퍼(320), 및 출력부(330)로 구성될 수 있다. 도 3의 파이프라인 프로세서는 학습된 콘볼루션 신경망을 이용하여 도 1 내지 도 2의 이미징 과정을 수행할 수 있다.
입력부(110)가 제1 베이어 데이터를 입력받을 때, 제1 베이어 데이터는 다양한 포맷으로 입력될 수 있다. 예를 들어, 제1 베이어 데이터는 1xN, NxN, NxM의 블록크기를 가지는 포맷으로 입력될 수 있다.
블록 추출기(310)는 효율적이고 빠른 처리를 위하여, 제1 베이어 데이터의 포맷을 1xN 형태의 블록으로 추출할 수 있다. 노이즈 레벨 및 제1 베이어 데이터로부터 제2 베이어 데이터를 출력하도록 학습된 콘볼루션 신경망(120)은 블록 추출기(310)에서 추출된 블록을 입력받아, 제1 베이어 데이터로부터 제2 베이어 데이터를 출력할 수 있다. 콘볼루션 신경망(120)에서 입력된 1xN 블록 이미지가 고해상도, 즉 사이즈가 커진 sxsN 블록으로 출력되며, 블록 버퍼(320)에서 sxsN 블록을 저장하여, 하나의 제2 베이어 데이터를 생성하고, 출력부(330)에서 제2 베이어 데이터를 출력할 수 있다.
콘볼루션 신경망(120)은 도 4와 같이, 구성될 수 있다. 콘볼루션 신경망(120)은 복수의 콘볼루션 레이어(410 내지 420)를 통해 제1 베이어 데이터로부터 제2 베이어 데이터를 생성할 수 있다. 예를 들어, 콘볼루션 레이어는 콘볼루션 연산 또는 디콘볼루션 연산을 수행하는 레이어를 포함할 수 있다. 복수의 콘볼루션 레이어의 각 콘볼루션 레이어는 고정 파라미터 또는 노이즈 레벨에 따라 달라지는 가변 파리미터를 이용하여 콘볼루션을 수행할 수 있다.
콘볼루션 신경망(120)은 콘볼루션(convolution)과 서브 샘플링(sub-sampling)을 반복하여, 데이터의 양을 줄이고, 왜곡시켜 신경망을 분류한다. 즉, 특징 추출과 분류 행위를 통해 분류 결과를 출력하는 것으로, 이를 통해 구현하고자 하는 이미지를 출력할 수 있다.
보다 구체적으로, 도 5와 같이, 제1 해상도를 가지는 제1 베이어 데이터를 기초로 배율을 높이고자 하는 영역에 대해 콘볼루션과 서브 샘플링(Sub-Sampling)을 수행할 수 있다. 서브 샘플링은 이미지의 크기를 줄이는 과정을 의미한다. 이때, 서브 샘플링은 맥스-풀(Max Pool) 방법 등을 사용할 수 있다. 맥스-풀은 해당 영역에서 최대치를 선택하는 기법인데 뉴런이 가장 큰 신호에 반응하는 것과 유사하다. 서브 샘플링은 노이즈를 감소시키고, 학습의 속도를 증가시킬 수 있는 장점이 존재한다. 컨볼루션과 서브 샘플링이 수행되면, 복수 개의 데이터가 출력될 수 있다. 여기서, 복수 개의 데이터은 특징 맵일 수 있다. 그 후 복수 개의 이미지 데이터들을 기초로 업 스케일(Up Scale) 방식으로 이용하여 서로 다른 특징을 가지는 복수 개의 이미지 데이터를 출력시킬 수 있다. 업 스케일 방식은 서로 다른 r^2개의 필터를 이용하여 이미지를 r*r 배로 스케일을 높이는 것을 의미한다. 업 스케일에 따라 복수 개의 데이터가 출력되면, 이러한 이미지 데이터들을 기초로 재조합을 하여 최종적으로 제2 해상도를 가지는 제2 베이어 데이터를 출력할 수 있다.
또는, 콘볼루션 신경망(120)은 적어도 하나의 축소 패스(Contracting path)와 확대 패스(Expanding path)를 포함할 수 있다. 여기서, 축소 패스는 컨볼루션(conv), ReLU, Pooling 중 어느 하나 이상을 포함하고, 확대 패스는 공간정보와 특징을 이용하거나, 고해상도 특징과의 접합(concatenation) 등을 통해 수행될 수 있다.
콘볼루션 신경망(120)은 노이즈 레벨에 따라 학습된 필터(filter)를 이용할 수 있다. 각 필터는 노이즈 레벨에 따라 학습된 파라미터로 구성될 수 있다. 입력되는 노이즈 레벨에 맞는 파라미터를 이용하여 콘볼루션을 수행할 수 있다.
또는, 콘볼루션 신경망(120)은 각 콘볼루션 레이어에서 콘볼루션을 수행시, 노이즈 레벨에 따라 파라미터가 가변될 수도 있다. 예를 들어, 각 콘볼루션 레이어마다 학습된 필터를 이용하되, 고정된 파리미터를 이용하는 고정 필터(411)와 가변 파라미터를 이용하는 가변 필터(421)를 포함할 수 있다. 가변 필터(421)의 가변 파리미터는 노이즈 레벨에 따라 달라질 수 있다. 콘볼루션 레이어 중 노이즈 레벨에 영향을 받지 않는 콘볼루션 레이어는 고정 파라미터를 이용하여 콘볼루션을 수행하고, 노이즈 레벨에 영향을 받는 콘볼루션 레이어는 가변 파라미터를 이용하여 콘볼루션을 수행할 수 있다. 이를 통해, 노이즈 레벨에 적응적으로 파라미터를 적용하여 보다 품질 좋은 제2 베이어 데이터를 생성하여 출력할 수 있다. 여기서, 좋은 품질이란 원본 대비 노이즈, 왜곡 등과 같은 수치가 낮은 것을 의미한다.
콘볼루션 신경망(120)에 포함되는 콘볼루션 레이어(410, 420)는 고정 필터(411) 또는 가변 필터(421)를 이용할 수 있다. 복수의 콘볼루션 레이어(410, 420) 중 적어도 하나의 콘볼루션 레이어에서 가변 필터(421)를 이용할 수 있다. 가변 필터(421)의 파라미터는 노이즈 레벨에 따라 달라질 수 있다. 노이즈 레벨에 따라 가변되는 가변 파라미터를 이용하기 위하여, 파라미터 변환기(430)를 포함할 수 있다. 노이즈 레벨은 파라미터 변환기(430)로 입력되고, 파라미터 변환기(430)는 입력받은 노이즈 레벨에 따라 가변 필터(421)에 적용할 하나 이상의 가변 파라미터를 생성할 수 있다. 파라미터 변환기(430)는 특정 수식을 포함하는 함수, 특정 값에 따라 메모리 저장된 리스트 테이블에서 특정 값을 읽어들이는 방법, 파라미터를 출력하는 서브 뉴럴 네트워크(Sub-NN)등으로 구현될 수 있다.
파라미터 변환기(430)는 노이즈 레벨에 대해 콘볼루션을 수행하여 콘볼루션 레이어에 적용되는 가변 필터(421)의 파라미터를 생성할 수 있다. 예를 들어, 가변 필터가 3 x 1 파라미터로 구성되는 경우, 도 6과 같이, 콘볼루션을 수행하여 3 개의 파라미터를 생성할 수 있다. 노이즈 레벨이 고정된 필터 파라미터를 가지는 레이어들(620, 630)을 통과하여 3 x 1 벡터가 출력되고, 이를 이용하여 가변 필터(421)의 파라미터를 업데이트한다. 이때, 파라미터 변환기(430)는 완전하게 연결된 레이어(Fully connected layer) 또는 콘볼루션 레이어 중 적어도 하나의 레이어를 포함할 수 있다.
가변 파라미터를 이용하는 콘볼루션 레이어가 복수인 경우, 가변 파라미터를 이용하는 각 콘볼루션 레이어마다 서로 다른 가변 파라미터를 이용할 수 있도록 파라미터 변환기(430)는 복수의 가변 파라미터를 생성할 수 있다.
파라미터 변환기(430)는 노이즈 레벨로부터 복수의 파라미터 세트를 생성할 수 있다. 복수의 콘볼루션 레이어에 대해 노이즈 레벨로부터 생성되는 동일한 파라미터가 아닌 각 콘볼루션 레이어마다 서로 다른 가변 파라미터를 이용함으로써 생성되는 제2 베이어 데이터의 품질을 높일 수 있다.
파라미터 변환기(430)는 가변 파라미터를 이용하는 콘볼루션 레이어가 복수인 경우에는 노이즈 레벨을 각 콘볼루션의 정보를 포함하는 벡터형태로 변환하여, 파라미터를 생성한다. 예를 들어, 2 개 이상의 콘볼루션 레이어에 서로 다른 가변 파라미터를 적용할 경우, 입력은 (노이즈 레벨, 레이어 인덱스(Index)) 형태의 1 X 2 or 2 X 1 벡터 형태로 입력하고, 이로 부터 생성되는 서로 다른 파라미터를 각 콘볼루션 레이어의 가변 필터에 적용할 수 있다.
콘볼루션 신경망(120)에 대한 트레이닝은 소정의 노이즈 레벨, 해당 노이즈 레벨 및 제1 해상도를 가지는 제1 베이어 데이터, 및 제2 해상도를 가지는 제2 베이어 데이터를 포함하는 트레이닝 세트를 기반으로 수행된다. 콘볼루션 신경망(120)은 제1 베이어 데이터 및 노이즈 레벨을 기반으로 제2 해상도를 가지는 제2 베이어 데이터를 출력하도록 학습된다.
콘볼루션 신경망(120)에 대한 트레이닝은 도 7과 같이 반복적인 트레이닝을 통해 수행될 수 있다. 서로 상이한 해상도를 갖는 제1 베이어 데이터 및 제2 베이어 데이터를 이용하여 트레이닝을 수행한다. 여기서, 제1 베이어 데이터는 입력 데이터(X1)로 콘볼루션 신경망에 입력되고, 제2 베이어 데이터는 GT(Ground Truth,Z)로 콘볼루션 신경망에서 출력되는 출력 데이터(Y)를 비교하는 역할을 한다. GT(Ground Truth)는 트레이닝시 콘볼루션 신경망에서 생성할 수 있는 가장 이상적인 데이터를 의미한다. 콘볼루션 신경망은 출력 데이터(Y)가 GT(Z)에 가까워지도록 반복 트레이닝 된다.
이때, 노이즈 레벨(X2)을 입력 데이터(X1)와 함께 입력받아, 해당 노이즈 레벨(X2)에서의 트레이닝을 수행할 수 있다. 즉, 콘볼루션 신경망(120)은 복수의 노이즈 레벨 중 하나의 노이즈 레벨, 해당 노이즈 레벨 및 제1 해상도를 가지는 제1 베이어 데이터 및 제2 해상도를 가지는 제2 베이어 데이터를 포함하는 트레이닝 세트를 이용하여 트레이닝 될 수 있다.
여기서, 트레이닝에 이용되는 제1 베이어 데이터 및 제2 베이어 데이터는 서로 다른 해상도를 가지는 베이어 데이터일 수 있다. 해상도는 단위 면적당 픽셀 수를 의미하며, 제2 베이어 데이터는 제1 베이어 데이터의 제1 해상도보다 높은 해상도를 가질 수 있다. 예를 들어, 제1 베이어 데이터는 640x480, 1280x720, 1920x1080의 해상도를 가질 수 있고, 제2 베이어 데이터는 2560x1440, 3840x2160, 7680x4320의 해상도를 가질 수 있다. 제2 베이어 데이터는 특정 해상도를 가지는 것이 아닌 제1 베이어 데이터와 해상도가 상이한 다양한 해상도를 가질 수 있다.
또한, 트레이닝에 이용되는 제1 베이어 데이터 및 제2 베이어 데이터는 서로 다른 노이즈 레벨을 가질 수 있다. 제2 베이어 데이터의 노이즈 레벨은 제1 베이어 데이터의 노이즈 레벨보다 작을 수 있다. 여기서, 노이즈 레벨의 크기는 특정 노출값에서 적용되는 증폭기의 이득값을 의미할 수 있고, 해당 노출값을 의미할 수 있다. 예를 들어, 이득값이 1 내지 128인 경우, 노이즈 레벨로 1 내지 128의 값이 입력될 수 있다. 여기서, 이득값이 1인 경우, 노이즈가 없는 것을 의미하며, 이득값이 n인 경우, 이득값이 1인 경우보다 1/n배 노출이 짧고 이득값이 n배인 것을 의미한다. 제2 베이어 데이터는 노이즈 레벨 1을 가지는 베이어 데이터일 수 있고, 제1 베이어 데이터는 2 내지 128 중 하나의 노이즈 레벨을 가지는 베이어 데이터일 수 있다. 제1 베이어 데이터의 노이즈 레벨은 1이 아닌 제2 베이어 데이터의 노이즈 레벨보다 낮은 소정의 노이즈 레벨을 가질 수도 있다.
트레이닝은 손실함수(Loss function) 및 최적화(optimizer)를 이용하여 수행될 수 있다.
입력 데이터(X1) 및 노이즈 레벨(X2)을 입력 데이터로 입력받아, 콘볼루션 신경망이 출력한 출력 데이터(Y)와 GT(Z)를 비교분석하여 손실함수 및 최적화를 이용하여 파리미터를 조정해가며 출력 데이터(Y)가 GT(Z)와 가까워지도록 반복 트레이닝한다.
GT(Z)는 노이즈가 없는 이상적인 베이어 데이터를 의미하며, 필요에 따라서는 다중 프레임(Frame)을 누적 평균하여 노이즈를 더욱 줄일 수도 있다. 노이즈가 없는 데이터, 즉 노이즈 레벨이 1인 베이어 데이터 수 있고, 노출이 긴 데이터 또는 노출이 최대값인 데이터일 수 있다.
여기서, 입력 데이터(X1)는 GT(Z)를 다운 샘플링하여 해상도를 낮춘 데이터일 수 있다. 이때, 다운 샘플링 정도는, 제1 해상도 및 제2 해상도의 차이, 즉 디지털 줌을 수행할 줌 비율에 따라 달라질 수 있다. 예를 들어, 제1 해상도와 제2 해상도의 차이가 3 배이고, GT(Z)의 해상도가 9MP(Mega Pixel)인 경우, 입력 데이터(X1)의 해상도가 1MP이어야, 콘볼루션 신경망(120)을 통해 해상도가 3 배 커진 출력 데이터(Y)의 해상도 9MP이 되는 바, 9M의 GT(Z)를 1/9로 다운 샘플링하여 1MP의 입력 데이터(Y)를 생성할 수 있다. 다운 샘플링시 입력 데이터(Y)에 노이즈 레벨(X2)을 적용하여 해당 노이즈 레벨 및 해당 해상도를 가지는 입력 데이터(X1)를 생성할 수 있다. 입력 데이터(X1)에 GT(Z)를 생성시 적용된 노출에 대해, 노이즈 레벨 n에 따라 1/n 배로 노출을 줄이고, 노이즈 레벨에 해당하는 이득값 n 배를 적용하여, 노이즈 레벨(X2)에 따른 노이즈를 가지는 입력 데이터(X1)를 생성할 수 있다. 또는, 해당 노이즈 레벨을 가지는 베이어 데이터에 포함되는 노이즈를 입력 데이터(X1)에 적용할 수 있다. 예를 들어, 노이즈 레벨에 해당하는 빛번짐 또는 블러 등의 노이즈 효과를 적용하여 입력 데이터(X1)를 생성할 수도 있다.
이때, GT(Z)는 구현할 수 있는 해상도 중 최대 해상도를 가지는 베이어 데이터일 수 있고, 구현하고자 하는 제2 해상도에 따라 최대 해상도의 베이어 데이터를 샘플링하여 제2 해상도를 가지는 제2 베이어 데이터를 생성하고, 이를 GT(Z)로 이용할 수 있다. 또는 다양한 해상도를 가지는 복수의 제2 베이어 데이터를 GT(Z)로 이용하여 각각 트레이닝을 수행할 수도 있다.
노이즈 레벨에 대해서도, GT(Z)는 최대 노출로 생성되는 베이어 데이터일 수 있다. 또는, 콘볼루션 신경망으로 출력하고자 하는 제2 베이어 데이터가 최대 노출이 아닌 소정의 노이즈 레벨을 가지는 베이어 데이터인 경우, 구현하고자 하는 노이즈 레벨에 따라 최대 노출의 베이어 데이터에 노이즈를 적용하여 해당 노이즈 레벨을 가지는 제2 베이어 데이터를 생성하고, 이를 GT(Z)로 이용할 수도 있다. 또는 다양한 노이즈 레벨을 가지는 복수의 제2 베이어 데이터를 GT(Z)로 이용하여 각각 트레이닝을 수행할 수도 있다.
또는, 동일한 피사체 및 동일한 장면에 대해 서로 다른 해상도를 가지는 제1 베이어 데이터 및 제2 베이어 데이터를 각각 생성하여, 입력 데이터(X1) 및 GT(Z)로 이용할 수 있다. 이때, 동일한 장면에 대한 베이어 데이터를 생성하기 위하여, 이미지 센서를 포함하는 카메라 장치에 삼각대(tripod)와 같이 고정할 수 있는 장치를 이용할 수 있다. 동일한 장면에 대해 최대 노출 및 최대 해상도 또는 제2 해상도로 설정하여 촬영함으로써 제2 해상도를 가지는 제2 베이어 데이터를 생성하고, 트레이닝시 입력할 데이터에 해당하는 노이즈 레벨 및 제1 해상도로 설정하여 촬영함으로써 제1 해상도를 가지는 제1 베이어 데이터를 생성할 수 있다.
입력 데이터(X1) 및 노이즈 레벨(X2)의 입력에 따라 출력되는 출력 데이터(Y)와 GT(Z)를 비교하고 분석하여 두 데이터 간 차이를 산출하고, 두 데이터 간 차이를 줄이는 방향으로 콘볼루션 필터의 파라미터에 피드백을 줄 수 있다. 이때, 두 데이터 간 차이는 손실 함수 중 하나인 평균 제곱 오차인 MSE(Mean Squared Error) 방식을 통해 산출될 수 있다. 이외에 CEE(Cross Entropy Error) 등 다양한 손실함수를 이용할 수 있다. 출력 데이터에 영향을 주는 파라미터를 분석한 후, 파리미터를 변경하거나 삭제 또는 새로운 파라미터를 생성하는 방식으로 피드백을 주어 GT(Z)와 실제 출력 데이터인 출력 데이터(Y)의 차이가 없도록 할 수 있다.
도 8에 도시된 바와 같이, 예를 들어, 콘볼루션 레이어가 총 3개이고(L1, L2, L3) 각각의 콘볼루션 레이어에 총 8개의 파라미터(P11, P12, P13, P21, P22, P31, P32)가 존재한다고 가정할 수 있다. 이러한 경우, P22 파라미터의 값을 증가시키는 방향으로 파라미터를 변경하였더니 출력 데이터(Y)와 GT(Z)의 차이가 증가한다면, 피드백은 P22 파라미터를 감소시키는 방향으로 학습된다. 이와 반대로, P33 파라미터의 값을 증가시키는 방향으로 파라미터를 변경하였더니 출력 데이터(Y)와 GT(Z)의 차이가 감소하였다면, 피드백은 P33 파라미터를 증가시키는 방향으로 학습된다.
딥 러닝 트레이닝은 도 8과 같이, 출력 결과와 비교 대상이 존재하고, 비교 대상과의 비교를 통해 학습을 수행하는 경우뿐만 아니라, 보상치를 이용하여 트레이닝을 수행할 수도 있다. 이 경우, 먼저 주변 환경을 인지하고 현재 환경 상태를 딥 러닝 트레이닝을 수행하는 프로세서에 전달할 수 있다. 프로세서는 이에 맞는 행동(Action)을 수행하고 환경은 다시 그 행동에 따른 보상치를 프로세서에게 알려준다. 그리고 프로세서는 보상치를 최대로 하는 행동을 택하게 된다. 이러한 과정에 통해 학습을 반복적으로 진행함으로써 트레이닝을 수행할 수 있다. 이외에도 다양한 딥 러닝 트레이닝 방법을 이용하여 딥 러닝 트레이닝을 수행할 수 있다.
또한, 본 발명의 다른 실시예에 따른 이미징 장치는 제1 베이어 데이터 및 노이즈 레벨을 입력받는 입력부 및 상기 제1 베이어 데이터 및 노이즈 레벨을 기반으로 제2 베이어 데이터를 출력하는 콘볼루션 신경망를 포함하고, 상기 제2 베이어 데이터의 노이즈는 제1베이어 데이터의 노이즈보다 작은 것을 특징으로 할 수 있다.
또한, 본 발명의 또 다른 실시예에 따른 이미징 장치는 제1 베이어 데이터 및 노이즈 레벨을 입력받는 입력부 및 상기 제1 베이어 데이터 및 노이즈 레벨을 기반으로 제2 베이어 데이터를 출력하는 콘볼루션 신경망를 포함하고, 상기 제2 베이어 데이터의 해상도는 제1베이어 데이터의 해상도보다 큰 것을 특징으로 한다.
본 발명의 실시예에 따른 학습된 콘볼루션 신경망을 이용한 이미징 과정은 도 8의 이미징 장치, 도 9의 기록 매체, 도 10의 카메라 모듈, 도 12의 컴퓨팅 장치, 도 13의 이미징 방법에 적용될 수 있다. 각 실시예에서의 이미징 과정에 대한 상세한 설명은 도 1 내지 도 7의 이미징 과정에 대한 상세한 설명에 대응되는바, 이하, 중복되는 설명은 생략하도록 한다.
도 8은 본 발명의 실시예에 따른 이미징 장치(100)의 블록도이다. 본 발명의 실시예에 따른 이미징 장치는 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받고, 학습된 콘볼루션 신경망을 이용하여 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력함에 있어서, 적어도 하나의 프로세서(130) 및 프로세서(130)에서 처리되는 명령어를 저장하는 메모리(140)로 구성될 수 있다.
프로세서(130)는 메모리(140)에 저장된 명령어에 따라, 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받고, 학습된 콘볼루션 신경망을 이용하여 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력한다.
제1 베이어 데이터(101) 및 노이즈 레벨(102)은 콘볼루션 신경망(120)에 각각 입력될 수 있다. 여기서, 제1 베이어 데이터(101)는 이미지 센서로부터 출력되는 데이터일 수 있고, 상기 이미지 센서로부터 출력되는 데이터는 노이즈 레벨(102)을 기반으로 증폭된 데이터일 수 있다. 노이즈 레벨(102)은 이미지 센서 또는 AP(Application Processor)로부터 입력될 수 있다.
콘볼루션 신경망(120)은 메모리(140)에 저장될 수 있다. 프로세서(130)는 메모리(140)에 저장된 콘볼루션 신경망(120)을 이용하여 메모리(140)에 저장된 명령어에 따라 제1 베이어 데이터로부터 제2 베이어 데이터를 생성할 수 있다. 콘볼루션 신경망(120)은 상기 노이즈 레벨에 따라 파라미터가 가변될 수 있다.
콘볼루션 신경망(120)은 FCN(Fully Convolutional Network), U-Net, MobileNet, RDN(Residual Dense Network), 및 RCAN(Residual Channel Attention Network) 중 적어도 하나의 모델일 수 있고, 제1 베이어 데이터 및 노이즈 레벨을 기반으로 제2 해상도를 가지는 제2 베이어 데이터를 출력하도록 학습될 수 있다.
콘볼루션 신경망(120)의 트레이닝 세트는 소정의 노이즈 레벨, 해당 노이즈 레벨 및 제1 해상도를 가지는 제1 베이어 데이터, 및 제2 해상도를 가지는 제2 베이어 데이터를 포함할 수 있다.
콘볼루션 신경망(120)은 복수의 콘볼루션 레이어를 통해 상기 제1 베이어 데이터로부터 상기 제2 베이어 데이터를 생성하되, 상기 복수의 콘볼루션 레이어의 각 콘볼루션 레이어는, 노이즈 레벨에 따라 학습된 필터(filter)를 이용할 수 있다. 각 필터는 노이즈 레벨에 따라 학습된 파라미터로 구성될 수 있다. 입력되는 노이즈 레벨에 맞는 파라미터를 이용하여 콘볼루션을 수행할 수 있다.
또는, 콘볼루션 신경망(120)은 각 콘볼루션 레이어에서 콘볼루션을 수행시, 노이즈 레벨에 따라 파라미터가 가변될 수도 있다. 예를 들어, 각 콘볼루션 레이어마다 학습된 필터를 이용하되, 고정 파라미터 또는 상기 노이즈 레벨에 따라 달라지는 가변 파리미터를 이용하여 콘볼루션을 수행할 수 있다.
상기 가변 파라미터를 생성하기 위하여, 상기 노이즈 레벨로부터 하나 이상의 가변 파라미터를 생성하는 파라미터 변환기를 포함하고, 상기 노이즈 레벨로부터 생성되는 가변 파라미터는 상기 가변 파라미터를 이용하는 콘볼루션 레이어가 복수인 경우, 상기 가변 파라미터를 이용하는 각 콘볼루션 레이어마다 달라질 수 있다.
상기 제2 해상도는 상기 제1 해상도보다 높을 수 있고, 상기 제2 베이어 데이터의 노이즈는 상기 제1 베이어 데이터의 노이즈보다 작을 수 있다.
도 9는 본 발명의 일 실시예에 따른 콘볼루션 신경망을 이용하여 제1 베이어 데이터로부터 제2 베이어 데이터를 출력하는 기록 매체(900)의 블록도이다. 본 발명의 일 실시예에 따른 기록 매체(900)는 이미징 장치의 프로세서(130)에 의해 수행될 수 있는 소프트웨어를 복수의 모듈을 저장할 수 있다. 기록 매체(900)는 컴퓨터에서 읽을 수 있는 기록 매체이거나 이미징 장치의 메모리일 수 있다. 기록 매체(900)는 프로세서(130)와 버스(960)를 통해 연결될 수 있고, 기록 매체(900)에 저장된 각 모듈은 프로세서(130)에 의해 수행될 수 있다. 기록 매체(900)는 입력모듈(910), 콘볼루션 신경망 모듈(930), 출력 모듈(950)로 구성될 수 있고, 블록 추출 모듈(920) 및 블록 버퍼 모듈(940)을 포함할 수 있다. 이외에도, 이미징 또는 동작을 위한 다른 요소들을 더 포함할 수 있음은 당연하다.
입력 모듈(910)은 노이즈 레벨 및 제1 베이어 데이터를 입력받고, 블록 추출 모듈(920)은 제1 베이어 데이터를 단위 블록으로 추출하고, 콘볼루션 신경망 모듈(930)은 노이즈 레벨 및 제1 베이어 데이터(블록)로부터 제2 베이어 데이터(블록)를 출력할 수 있다. 블록 버퍼 모듈(940)은 제2 베이어 데이터의 블록을 이용하여 제2 베이어 데이터를 생성하고, 출력 모듈(950)은 제2 베이어 데이터를 출력할 수 있다.
도 10은 본 발명의 일 실시예에 따른 콘볼루션 신경망을 이용하여 제1 베이어 데이터로부터 제2 베이어 데이터를 출력하는 카메라 모듈(1000)의 블록도이다. 본 발명의 일 실시예에 따른 카메라 모듈(1000)은 노이즈 레벨에 따라 제1 해상도를 가지는 제1 베이어 데이터를 생성하는 이미지 센서(1010) 및 제1 베이어 데이터(1001) 및 노이즈 레벨(1002)을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 콘볼루션 신경망(1020)을 포함한다. 여기서, 콘볼루션 신경망(1020)은 노이즈 레벨(1002)에 따라 파라미터가 가변될 수도 있다.
카메라 모듈은 도 11과 같이 구현될 수 있다. 카메라 모듈(1100)은 광을 수신하여, 베이어 데이터를 생성하기 위하여, 렌즈(1110), 이미지 센서(1120), 필터(1130), 액추에이터(1150), 액추에이터를 구동하기 위한 드라이버 IC(1160), 구동을 위한 정보를 센싱하는 홀 센서(1140) 및 자이로 센서(1170)를 포함할 수 있다. 이미지 센서(1120)는 AP(1190)로부터 노출 값 및 이득 값을 12C를 통해 수신하여 동작하고, 이득 값에 따라 데이터의 게인 값을 증폭하는 앰프(1121)를 포함할 수 있다. 이미지 센서(1120)에서 앰프(1121)를 통해 이득값에 따라 증폭되는 로우 센서 데이터인 제1 베이어 데이터는 학습된 콘볼루션 신경망을 포함하는 딥 러닝 엔진 칩(1180)에 입력된다. 이득값은 노이즈 레벨로 딥 러닝 엔진 칩(1180)에 입력될 수 있다. 딥 러닝 엔진 칩(1180)에서 학습된 콘볼루션 신경망을 통해 저조도가 개선되고, 해상도가 높아진 이미지 데이터(SR image data)인 제2 베이어 데이터가 출력된다. 딥 러닝 엔진 칩(1180)은 노이즈 레벨을 AP(1190)로부터 12C를 통해 수신할 수 있다.
도 12는 본 발명의 일 실시예에 따른 콘볼루션 신경망을 이용하여 제1 베이어 데이터로부터 제2 베이어 데이터를 출력하는 컴퓨팅 장치(1200)의 블록도이다. 본 발명의 실시예에 따른 컴퓨팅 장치(1200)는 사용자 단말, PC 단말, 웨어러블 장치, 보안 카메라 시스템, 필름 카메라, 서버 등 다양한 형태로 구현될 수 있다.
본 발명의 실시예에 따른 컴퓨팅 장치(1200)는 CPU(1201), 카메라(1202), 이미징을 수행하는 SR 생성부(112)를 포함할 수 있다. 여기서, 본 발명의 실시예에 따른 SR 생성부(112)는 로우 센서 데이터 입력부(1204), 블록 추출부(1205), 학습된 CNN(1206), 블록 버퍼(1207), 및 SR 이미지 데이터 출력부(1208)로 구성될 수 있다. 학습된 CNN(1206)은 CNN 트레이닝부(1213)에서 트레이닝될 수 있다.
컴퓨팅 장치(1200)은 이외에도 메모리 디바이스(1209), 드라이버(1210), 저장부(1211), GPU(1212), 이미지 처리를 수행하는 포스트 프로세서(1214), 다른 I/O 디바이스(1216)와 데이터를 송수신하는 I/O 디바이스 인터페이스(1215) 및 디스플레이 인터페이스(1217), 네크워크(1220)와 통신을 위한 NIC(1219) 등이 형성될 수 있다.
도 13은 본 발명의 일 실시예에 따른 이미지 처리 방법의 흐름도이고, 도 14는 본 발명의 다른 실시예에 따른 이미지 처리 방법의 흐름도이다.
학습된 콘볼루션 신경망에서의 이미징 방법에 있어서, S11 단계에서 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받고, S12 단계에서 학습된 콘볼루션 신경망을 이용하여 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력한다.
콘볼루션 신경망은 노이즈 레벨에 따라 학습된 필터(filter)를 이용할 수 있다. 각 필터는 노이즈 레벨에 따라 학습된 파라미터로 구성될 수 있다. 입력되는 노이즈 레벨에 맞는 파라미터를 이용하여 콘볼루션을 수행할 수 있다.
또는, 콘볼루션 신경망은 각 콘볼루션 레이어에서 콘볼루션을 수행시, 노이즈 레벨에 따라 파라미터가 가변될 수도 있다. 예를 들어, 각 콘볼루션 레이어마다 학습된 필터를 이용하되, 고정된 파리미터를 이용하는 고정 필터와 가변 파라미터를 이용하는 가변 필터를 포함할 수 있고, 가변 필터의 가변 파리미터는 노이즈 레벨에 따라 달라질 수 있다. 가변 파라미터를 이용함에 있어서, S11 단계에서 입력받은 이후, S21 단계에서 상기 노이즈 레벨에 따라 상기 콘볼루션 신경망의 파라미터를 가변하여, S12 단계에서 콘볼루션 신경망에서 콘볼루션을 수행시, 이용할 수 있다.
제2 베이어 데이터를 출력하는 S12 단계는 복수의 콘볼루션 레이어를 통해 상기 제1 베이어 데이터 및 상기 노이즈 레벨로부터 상기 제2 베이어 데이터를 생성하되, 상기 복수의 콘볼루션 레이어의 각 콘볼루션 레이어는, 고정 파라미터 또는 상기 노이즈 레벨에 따라 달라지는 가변 파리미터를 이용하여 콘볼루션을 수행할 수 있다.
한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
101: 제1 베이어 데이터
102: 노이즈 레벨
103: 제2 베이어 데이터
110: 이미징 장치
110: 입력부
111: 노이즈 레벨 입력부
112: 제1 베이어 데이터 입력부
120: 콘볼루션 신경망
130: AP
140: 이미지 센서
310: 블록추출기
330: 블록버퍼
330: 출력부

Claims (12)

  1. 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받는 입력부; 및
    상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 콘볼루션 신경망을 포함하는 이미징 장치.
  2. 제1항에 있어서,
    상기 제1 베이어 데이터 및 상기 노이즈 레벨은 상기 콘볼루션 신경망에 각각 입력되는 이미징 장치.
  3. 제1항에 있어서,
    상기 제1 베이어 데이터는 이미지 센서로부터 출력되는 데이터인 이미징 장치.
  4. 제3항에 있어서,
    상기 이미지 센서로부터 출력되는 데이터는 상기 노이즈 레벨을 기반으로 증폭된 데이터인 이미징 장치.
  5. 제1항에 있어서,
    상기 노이즈 레벨은 이미지 센서 또는 AP(Application Processor)로부터 입력되는 이미징 장치.
  6. 제1항에 있어서,
    상기 콘볼루션 신경망은,
    제1 베이어 데이터 및 노이즈 레벨을 기반으로 제2 해상도를 가지는 제2 베이어 데이터를 출력하도록 학습된 이미징 장치.
  7. 제1항에 있어서,
    상기 콘볼루션 신경망의 트레이닝 세트는,
    소정의 노이즈 레벨, 해당 노이즈 레벨 및 제1 해상도를 가지는 제1 베이어 데이터, 및 제2 해상도를 가지는 제2 베이어 데이터를 포함하는 이미징 장치.
  8. 제1항에 있어서,
    상기 제2 해상도는 상기 제1 해상도보다 높은 이미징 장치.
  9. 제1항에 있어서,
    상기 제2 베이어 데이터의 노이즈는 상기 제1 베이어 데이터의 노이즈보다 작은 이미징 장치.
  10. 적어도 하나의 프로세서; 및
    상기 프로세서에서 처리되는 명령어를 저장하는 메모리를 포함하고,
    상기 프로세서는,
    상기 메모리에 저장된 명령어에 따라, 제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받고, 학습된 콘볼루션 신경망을 이용하여 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 이미징 장치.
  11. 노이즈 레벨에 따라 제1 해상도를 가지는 제1 베이어 데이터를 생성하는 이미지 센서; 및
    상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 콘볼루션 신경망을 포함하는 카메라 모듈.
  12. 적어도 하나의 프로세서 및 상기 프로세서에서 처리되는 명령어를 저장하는 메모리를 포함하는 이미징 장치의 이미징 방법에 있어서,
    제1 해상도를 가지는 제1 베이어 데이터 및 노이즈 레벨을 입력받는 단계; 및
    학습된 콘볼루션 신경망을 이용하여 상기 제1 베이어 데이터 및 상기 노이즈 레벨을 이용하여 제2 해상도를 가지는 제2 베이어 데이터를 출력하는 단계를 포함하는 방법.
KR1020200057333A 2020-05-13 2020-05-13 이미징 장치 및 이미징 방법 KR20210139061A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200057333A KR20210139061A (ko) 2020-05-13 2020-05-13 이미징 장치 및 이미징 방법
PCT/KR2021/006017 WO2021230683A1 (ko) 2020-05-13 2021-05-13 이미징 장치 및 이미징 방법
US17/925,104 US20230232121A1 (en) 2020-05-13 2021-05-13 Imaging device and imaging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200057333A KR20210139061A (ko) 2020-05-13 2020-05-13 이미징 장치 및 이미징 방법

Publications (1)

Publication Number Publication Date
KR20210139061A true KR20210139061A (ko) 2021-11-22

Family

ID=78524660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200057333A KR20210139061A (ko) 2020-05-13 2020-05-13 이미징 장치 및 이미징 방법

Country Status (3)

Country Link
US (1) US20230232121A1 (ko)
KR (1) KR20210139061A (ko)
WO (1) WO2021230683A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101791573B1 (ko) * 2016-10-21 2017-10-31 서강대학교산학협력단 컨볼루션 신경망을 이용한 비디오 스트림에 대한 수퍼 해상도 장치 및 방법
RU2652722C1 (ru) * 2017-05-03 2018-04-28 Самсунг Электроникс Ко., Лтд. Обработка данных для сверхразрешения
KR102083835B1 (ko) * 2018-07-27 2020-03-03 가천대학교 산학협력단 딥 러닝 기반 이미지 처리장치, 이미지 처리방법 및 컴퓨터-판독가능 매체 및 딥 러닝 기반 이미지 센싱장치
WO2020213750A1 (ko) * 2019-04-16 2020-10-22 엘지전자 주식회사 객체를 인식하는 인공 지능 장치 및 그 방법
KR20190110965A (ko) * 2019-09-11 2019-10-01 엘지전자 주식회사 이미지 해상도를 향상시키기 위한 방법 및 장치

Also Published As

Publication number Publication date
US20230232121A1 (en) 2023-07-20
WO2021230683A1 (ko) 2021-11-18

Similar Documents

Publication Publication Date Title
US8189960B2 (en) Image processing apparatus, image processing method, program and recording medium
US20100265353A1 (en) Image Processing Device, Image Sensing Device And Image Reproduction Device
US9906732B2 (en) Image processing device, image capture device, image processing method, and program
CN102576454A (zh) 利用空间图像先验的图像去模糊法
JP2009194896A (ja) 画像処理装置及び方法並びに撮像装置
CN102656877A (zh) 用以产生光学效应的数字图像组合
CN101472074B (zh) 摄像设备及其控制方法
US20210390658A1 (en) Image processing apparatus and method
JP2009111596A (ja) 撮像装置
US20130182151A1 (en) Image processing apparatus, image pickup apparatus including image processing apparatus, image processing method, and storage medium in which program is stored
CN102473294A (zh) 摄像装置、图像处理装置和图像处理方法
US8125541B2 (en) Image-sensing apparatus
KR102242939B1 (ko) 카메라 장치 및 카메라 장치의 이미지 생성 방법
US10235742B2 (en) Image processing apparatus, image capturing apparatus, image processing method, and non-transitory computer-readable storage medium for adjustment of intensity of edge signal
KR20210139061A (ko) 이미징 장치 및 이미징 방법
KR102494123B1 (ko) 이미지 센서, 카메라 모듈 및 카메라 모듈을 포함하는 광학 기기
CN114208147B (zh) 图像传感器、相机模块和包括相机模块的光学装置
US20220417428A1 (en) Camera device and image generation method of camera device
US20220156532A1 (en) Fusing fbis & dvs data streams using a neural network
CN114270799B (zh) 相机装置以及相机装置的图像生成方法
KR102371944B1 (ko) 카메라 장치 및 카메라 장치의 이미지 생성 방법
JP2014119725A (ja) 露出、焦点制御装置、方法、およびプログラム
JP2013126101A (ja) 撮像装置および撮像方法
US20240119561A1 (en) Image processing device and image processing method
KR20210044648A (ko) 영상 처리 장치 및 이를 포함하는 광학 기기

Legal Events

Date Code Title Description
A201 Request for examination