KR20220003946A - 전자 장치 및 전자 장치의 제어 방법 - Google Patents
전자 장치 및 전자 장치의 제어 방법 Download PDFInfo
- Publication number
- KR20220003946A KR20220003946A KR1020200138644A KR20200138644A KR20220003946A KR 20220003946 A KR20220003946 A KR 20220003946A KR 1020200138644 A KR1020200138644 A KR 1020200138644A KR 20200138644 A KR20200138644 A KR 20200138644A KR 20220003946 A KR20220003946 A KR 20220003946A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- information
- neural network
- feature
- blur
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 105
- 238000012545 processing Methods 0.000 claims abstract description 88
- 238000001914 filtration Methods 0.000 claims abstract description 31
- 230000000306 recurrent effect Effects 0.000 claims abstract description 18
- 238000003062 neural network model Methods 0.000 claims description 82
- 125000004122 cyclic group Chemical group 0.000 claims description 57
- 238000013528 artificial neural network Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 24
- 230000003068 static effect Effects 0.000 claims description 8
- 230000007423 decrease Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 238000013527 convolutional neural network Methods 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 229910052739 hydrogen Inorganic materials 0.000 description 6
- 238000012549 training Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G06T5/002—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/73—Deblurring; Sharpening
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20182—Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
본 개시는 이미지 프로세싱의 분야에 관한 것이다. 이미지 프로세싱 유닛은, 블러리 이미지 데이터를 수신하고, 이미지의 전역적 특징 맵을 생성하도록 구성된 인코더, 전역적 특징 맵과 블러 정보를 병합하도록 구성된 병합 유닛, 특징 텐서 및 가중치 텐서들을 생성하도록 구성된 디코더, 순환 특징 필터링을 수행하도록 구성된 순환 리파인먼트 모듈 및 디블러링된 이미지를 재구성하도록 구성된 이미지 재구성 모듈을 포함하며, 여기서, 이미지 프로세싱 유닛은 이미지 전역적 시프트를 추정하고, 그 추정에 기반하여 순환 리파인먼트 모듈을 활성화 또는 비활성화하도록 구성된다. 기술적 결과는 이미지 프로세싱 복잡성의 감소, 이미지 프로세싱의 속도의 증가 및 결과 이미지의 품질의 개선으로 구성된다.
Description
본 개시는 전자 장치 및 전자 장치의 제어 방법에 관한 것으로서, 구체적으로는 이미지 디블러링(deblurring)을 수행할 수 있는 전자 장치 및 전자 장치의 제어 방법에 관한 것이다.
현재, 움직임/회전 중인 이미지 캡처 디바이스들(예컨대, 카메라들 또는 비디오 카메라들)에 의해 이미지를 캡처할 때, 결과 이미지들은 대개 흐릿하다. 이 문제는, 예컨대, 로봇들, 자율 주행 차량들을 포함하는 차량들 등에 장착된 이미지 캡처링 디바이스들(image capturing devices)에 대해 필연적이다. 이러한 애플리케이션들에서 캡처된 이미지들에서 객체(object)들을 인식하는 능력이 매우 중요하기 때문에, 획득된 이미지들을 블러링(blurring)하는 문제는 이러한 솔루션들의 성능을 심각하게 제한한다.
또한, 이러한 문제는 또한, 사진 또는 비디오 카메라를 사용하여 장면을 영상화(film)하는 조작자의 손의 흔들림으로 인해 나타날 수 있다. 이 경우, 결과 이미지의 품질이 조작자의 기대에 미치지 못할 수 있다.
종래 기술에서, 이미지 디블러링(deblurring)을 위한 다양한 방법들이 알려져 있다. 이들 중 다수는 이미지 디콘볼루션(deconvolution) 또는 필터링의 전통적인 방법들, 또는 뉴럴 네트워크들에 기반한다. 디블러링 문제는 다소 복잡하기 때문에, 모든 이러한 방법들은 몇몇 알려진 단점들을 갖는다.
첫번째로, 이들은 휴대용 저전력 디바이스들 상에 적용하기 어려운 연산적으로 복잡한 느린 알고리즘들이다. 이러한 알고리즘들에서의 디블러링 문제는 연산적으로 복잡한 이미지 프로세싱을 수차례 반복하는 것을 통해 해결된다. 따라서, 이러한 방법들은 이미지들 또는 비디오들을 실시간 프로세싱하기 위한 저전력 디바이스들에는 적용될 수 없다.
두번째로, 알려진 디블러링 방법들 중 다수는 이미지에서의 객체들의 마진(margin)들 근처의 깁스효과(Gibbs effect) 인해 아티팩트(artifact)들을 초래한다.
세번째로, 기존의 이미지 디블러링 방법들은 대개, 특히 움직임들이 상이한 방향들로 발생하는 경우, 움직이는 카메라에 의해 움직이는 객체가 영상화되는, 동적 블러를 갖는 장면들을 촬영할 때 캡처되는 이미지들의 프로세싱에 대처하지 못한다. 이 경우들에서, 프레임 및 배경의 평면에서 객체의 움직임 방향을 동시에 추정하는 것은 어렵다.
네번째로, 이미지 디블러링 문제를 해결하기 위한 기존의 뉴럴 네트워크들은 또한 복잡하고, 다수의 가중치들을 사용하고, 상당한 연산력을 요구하며, 대개 모바일 휴대용 디바이스들에 구현될 수 없다.
예컨대, US 20190236452 A1에 개시된 솔루션이 종래 기술에서 알려져 있으며, 여기서, 입력에 3개의 순차적인 이미지들을 제공함으로써 문제를 해결하는 콘볼루션 뉴럴 네트워크(convolutional neural network; CNN)이 사용된다. 이것이 카메라 움직임이 추정되는 방법이다. 이 방법의 주요 단점은 1 개의 이미지 대신에 3 개의 이미지들을 프로세싱할 필요가 있기 때문에 뉴럴 네트워크의 사이즈가 상당히 증가된다는 것이다. 부가하여, 이 방법은 동적 블러 장면들을 핸들링하는 데 그다지 좋지 않다.
또한 US 20190244331 A에서 개시된 솔루션이 본 기술 분야에 알려져 있으며, 여기서, 순차적인 이미지들 사이의 광학 흐름이 추정되고, 광학 흐름 데이터가 디블러링을 위해 사용된다. 그러나, 이 접근법은 광학 흐름 추정의 정확도에 따라 좌우된다. 불충분한 추정 정확도는 결과 이미지의 불량한 품질을 초래한다. 정성적 추정 알고리즘들은 다소 복잡하고 느리다.
US 9767538 B2에서 개시된 솔루션은 입력 이미지가 이미지에 존재하는 객체들을 검출하기 위해 사전 세그먼팅(pre-segment)된다는 사실에 기반한다. 각각의 객체의 움직임은 개별적으로 추정된다. 이 세그먼트의 움직임에 기반하여, 각각의 세그먼트에 대해 디블러링이 개별적으로 이루어진다. 그러나, 이 경우 디블러링 품질은 세그먼테이션(segmentation) 정확도에 따라 크게 좌우된다. 동시에, 이미지가 심하게 블러링된 경우 세그먼테이션이 방해되는데, 이는 요구되는 정확도로 추정하는 것이 불가능하기 때문이며, 여기서, 하나의 객체의 마진들이 끝나고, 다른 객체의 마진들이 시작된다.
US 10007972 B2에서 개시된 솔루션에서, 디블러링은 가우시안 스무딩(Gaussian smoothing)에 의한 단순한 블러 커널 모델링(blur kernel modeling)에 의해 이루어진다. 디블러링은 이미지의 각각의 구역에 대해 개별적으로 수행된다. 그러나, 이 방법은 움직임 블러를 핸들링하는 것을 허용하지 않는데, 이는, 특히 움직임이 복잡한 경우, 움직임 블러가 단순한 가우시안 커널에 의해 항상 설명되는 것이 아니기 때문이다. 또한, 이 방법을 사용할 때, 다양한 영역들의 경계들에 아티팩트들이 나타난다.
J. Zhang 등의 "공간 변형 순환 뉴럴 네트워크들을 사용한 동적 장면 디블러링(Dynamic Scene Deblurring Using Spatially Variant Recurrent Neural Networks)"(SenseTime Research, 2018)은, 이미지로부터의 특징(feature) 추출, 순환 뉴럴 네트워크(recurrent neural network; RNN) 가중치 생성 및 이미지 재구성을 위해 3 개의 CNN들을 사용하는 방법을 개시한다. RNN은 디콘볼루션을 위해 사용된다. 이 방법은 시스템 작동 방식을 완전히 무시하면서 디블러링을 내포하는 사실로 인해 높은 연산 복잡성을 갖는다.
따라서, 상술한 바와 같은 문제들을 해결하기 위해, 프로세싱의 연산 복잡성을 단순화하고, 프로세싱의 속도를 증가시키고, 결과 이미지의 높은 품질을 보장하는 것을 가능하게 하는, 이미지 디블러링 기법의 개발이 필요한 실정이다. 더욱이, 이러한 기술은 저전력 모바일 이미징 디바이스들을 포함하는 구현에 적합한 것이 바람직하다.
본 개시는 상술한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 본 개시의 목적은 효율적인 방법으로 고품질의 이미지 디블러링을 수행할 수 있는 전자 장치 및 전자 장치의 제어 방법을 제공함에 있다.
본 개시의 제1 양태에 따르면, 이미지 프로세싱 유닛이 제공되며, 이미지 프로세싱 유닛은:
- 블러리(blurry) 이미지 데이터를 수신하고, 이미지의 전역적 특징 맵(global feature map)을 생성하도록 구성된 인코더,
- 이미지 캡처 시의 이미지 캡처링 유닛의 움직임을 특성화하는 블러 정보와 전역적 특징 맵을 병합하도록 구성된 병합 유닛,
- 병합 유닛으로부터 병합 결과를 수신하고, 특징 텐서(tensor) 및 가중치 텐서들을 생성하도록 구성된 디코더,
- 디코더로부터 획득된 특징 텐서 및 가중치 텐서들에 기반하여, 순환 특징 필터링을 수행하도록 구성된 순환 리파인먼트 모듈(recurrent refinement module) 및
- 디코더 또는 순환 리파인먼트 모듈로부터 획득된 특징 텐서에 기반하여, 디블러링된 이미지를 재구성하도록 구성된 이미지 재구성 모듈을 포함하며,
여기서, 이미지 프로세싱 유닛은 이미지 전역적 시프트를 추정하고, 그 추정에 기반하여 순환 리파인먼트 모듈을 활성화 또는 비활성화하도록 구성된다.
일 실시 예에 따르면, 이미지 프로세싱 유닛은 인공 뉴럴 네트워크로서 구현된다.
본 개시의 제2 양태에 따르면, 그 이미지 프로세싱 유닛에 의해 수행되는 이미지 프로세싱을 위한 방법이 제공되며, 그 방법은:
- 블러리 이미지를 수신하고, 블러가 균일한지 또는 동적인지를 결정하기 위해 전역적 시프트를 추정하는 단계;
- 입력 블러리 이미지 데이터에 기반하여, 인코더에 의해 입력 이미지의 전역적 특징 맵을 생성하는 단계;
- 이미지 캡처 시의 이미지 캡처링 유닛의 움직임을 특성화하는 블러 정보와 상기 입력 이미지의 상기 전역적 특징 맵을 병합하는 단계;
- 병합의 결과들에 기반하여, 디코더에 의해 특징 텐서 및 가중치 텐서들을 생성하는 단계;
- 이미지 블러링이 균일한 경우, 상기 특징 텐서에 기반하여, 이미지 재구성 모듈에 의해 디블러링된 이미지를 재구성하는 단계; 및
- 이미지 블러링이 동적인 경우, 생성된 텐서 특징 및 가중치 텐서들에 기반하여, 순환 리파인먼트 모듈에 의해 순환 특징 필터링을 수행하고, 획득된 필터링된 특징 텐서에 기반하여, 이미지 재구성 유닛에 의해 디블러링된 이미지를 재구성하는 단계를 포함한다.
이미지 프로세싱을 위한 방법의 일 실시 예에 따르면, 순환 필터링은 4개의 순환 이미지 스위프(sweep)들로 각각 구성된 4개의 RNN 동작들을 포함한다. 이 경우, 디코더는 16개의 가중치 텐서들을 생성한다.
이미지 프로세싱을 위한 방법의 다른 실시 예에 따르면, 순환 필터링은 4개의 순환 이미지 스위프들로 각각 구성된 1개의 RNN 동작을 포함한다. 이 경우, 디코더는 4개의 가중치 텐서들을 생성한다.
이미지 프로세싱을 위한 방법의 다른 실시 예에 따르면, 순환 필터링은 2개의 순환 이미지 스위프들로 구성된 RNN 동작들을 포함한다. 이 경우, 디코더는 각각의 RNN 동작에 대해 2개의 가중치 텐서들을 생성하고, 스위프들은 순환 이미지 스위프들의 수를 4개에서 2개로 감소시키기 위해 힐버트 곡선(Hilbert curve)을 따른다.
다른 실시 예에 따르면, 이미지 프로세싱을 위한 방법은, 입력 블러리 이미지 상의 균일한 블러 이미지 영역들과 관련된 픽셀들을 필터링하고, 순환 리파인먼트 모듈에 의해 동적 블러 이미지 영역들과 관련된 픽셀들을 프로세싱한 후에, 출력 디블러링된 이미지를 생성하기 위해 이미지 재구성 모듈에서 균일한 블러 이미지 영역들과 프로세싱된 동적 블러 이미지 영역들을 연관시키는 단계를 포함한다.
다른 실시 예에 따르면, 이미지 프로세싱을 위한 방법은 이미지 캡처링 유닛으로부터 블러리 이미지 데이터를 수신하는 단계를 포함한다.
다른 실시 예에 따르면, 이미지 프로세싱을 위한 방법은 이미지 캡처링 유닛의 움직임 센서로부터 블러 정보를 획득하는 단계를 포함한다.
다른 실시 예에 따르면, 이미지 프로세싱을 위한 방법은, 그 이미지 캡처링 유닛보다 더 높은 프레임 캡처 레이트 및 더 낮은 해상도를 갖는 선택적인 카메라에 의해 캡처된 이미지들의 시퀀스를 획득하고, 획득된 이미지 시퀀스에 기반하여 이미지 캡처링 유닛의 움직임을 추정하고, 움직임 정보를 블러 정보로서 사용하는 단계를 더 포함한다.
다른 실시 예에 따르면, 이미지 프로세싱을 위한 방법은 하나의 평면에서만 상기 이미지 캡처링 유닛의 움직임에 대한 블러 정보를 획득하는 단계를 포함한다.
본 개시의 제3 양태에 따르면, 위에서 설명된 이미지 프로세싱 유닛 및 이미지 캡처링 유닛을 포함하는 이미징 장치가 제공된다.
본 개시의 제4 양태에 따르면, 프로세서에 의해 실행될 때, 그 프로세서가 위에서 설명된 이미지 프로세싱을 위한 방법을 수행하게 하는 컴퓨터 프로그램을 저장하는 컴퓨터-판독가능 매체가 제공된다.
한편, 상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 이미지의 디블러링(deblurring)을 위한 적어도 하나의 신경망 모델을 저장하는 메모리 및 블러링(blurring)된 영역을 포함하는 이미지 및 상기 이미지를 획득하는 동안의 카메라 움직임에 관련된 블러 정보(blur information)를 제1 신경망 모델에 입력하여, 상기 이미지에 대응되는 제1 특징 정보 및 상기 특징 정보에 대응되는 가중치 정보를 획득하고, 상기 이미지에 포함된 적어도 하나의 오브젝트의 움직임에 관련된 전역적 시프트 정보(global shift information)를 획득하여, 상기 전역적 시프트 정보를 바탕으로 상기 이미지에 포함된 장면이 동적인 장면인지 여부를 식별하며, 상기 이미지에 포함된 장면이 동적인 장면으로 식별되면, 제2 신경망 모델을 통해 상기 제1 특징 정보 및 상기 가중치 정보를 바탕으로 순환 필터링 과정을 수행하여 상기 제1 특징 정보가 필터링된 제2 특징 정보를 획득하고, 상기 제2 특징 정보를 제3 신경망 모델에 입력하여 상기 블러링된 영역이 디블러링된 이미지를 획득하는 프로세서를 포함할 수 있다.
여기서, 상기 프로세서는 상기 이미지에 포함된 장면이 정적인 장면으로 식별되면, 상기 제1 특징 정보를 상기 제3 신경망 모델에 입력하여 상기 블러링된 영역이 디블러링된 이미지를 획득할 수 있다.
한편, 상기 제1 신경망 모델은 상기 이미지에 대응되는 전역적 특징 맵을 획득하고, 상기 전역적 특징 맵 및 상기 블러 정보를 병합하여 상기 제1 특징 정보를 획득할 수 있다.
한편, 상기 제2 신경망 모델은 상기 제1 특징 정보를 순차적으로 처리하는 복수의 RNN(Recurrent Neural Network) 레이어를 포함하고, 상기 복수의 RNN 레이어 각각은 서로 다른 방향의 이미지 스위프들(sweeps) 바탕으로 상기 순환 필터링 과정을 수행할 수 있다.
한편, 상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 상기 전자 장치의 제어 방법은 블러링(blurring)된 영역을 포함하는 이미지 및 상기 이미지를 획득하는 동안의 카메라 움직임에 관련된 블러 정보(blur information)를 제1 신경망 모델에 입력하여, 상기 이미지에 대응되는 제1 특징 정보 및 상기 특징 정보에 대응되는 가중치 정보를 획득하는 단계, 상기 이미지에 포함된 적어도 하나의 오브젝트의 움직임에 관련된 전역적 시프트 정보(global shift information)를 획득하여, 상기 전역적 시프트 정보를 바탕으로 상기 이미지에 포함된 장면이 동적인 장면인지 여부를 식별하는 단계, 상기 이미지에 포함된 장면이 동적인 장면으로 식별되면, 제2 신경망 모델을 통해 상기 제1 특징 정보 및 상기 가중치 정보를 바탕으로 순환 필터링 과정을 수행하여 상기 제1 특징 정보가 필터링된 제2 특징 정보를 획득하는 단계 및 상기 제2 특징 정보를 제3 신경망 모델에 입력하여 상기 블러링된 영역이 디블러링된 이미지를 획득하는 단계를 포함할 수 있다.
본 개시는 이미지 프로세싱 복잡성을 감소시키고, 이의 속도를 증가시키고, 결과 이미지의 품질을 개선하는 것을 가능하게 한다.
아래에서, 본 개시는 첨부 도면들을 참조하여 본 개시의 바람직한 실시 예들의 설명에 의해 설명된다.
도 1은 균일한 블러 장면을 캡처하는 경우의 이미지 디블러링을 위한 본 개시의 이미지 프로세싱에 대해 설명하기 위한 도면,
도 2는 동적 블러 장면을 캡처하는 경우의 이미지 디블러링을 위한 본 개시의 이미지 프로세싱에 대해 설명하기 위한 도면,
도 3은 본 개시에 따른 특징 텐서 및 가중치 텐서들의 생성에 대해 보다 상세하게 설명하기 위한 도면, 그리고,
도 4는 본 개시에 따른 전자 장치의 제어 방법을 나타내는 흐름도이다. 도 5는 본 개시에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 1은 균일한 블러 장면을 캡처하는 경우의 이미지 디블러링을 위한 본 개시의 이미지 프로세싱에 대해 설명하기 위한 도면,
도 2는 동적 블러 장면을 캡처하는 경우의 이미지 디블러링을 위한 본 개시의 이미지 프로세싱에 대해 설명하기 위한 도면,
도 3은 본 개시에 따른 특징 텐서 및 가중치 텐서들의 생성에 대해 보다 상세하게 설명하기 위한 도면, 그리고,
도 4는 본 개시에 따른 전자 장치의 제어 방법을 나타내는 흐름도이다. 도 5는 본 개시에 따른 전자 장치의 구성을 나타내는 블록도이다.
실시 예들은 본원에서 설명되는 실시 예들로 제한되지 않으며, 본 개시의 다른 실시 예들은 본 설명에서 제시되는 정보 및 본 개시의 사상 및 범위로부터 벗어나지 않는 종래 기술의 지식에 기반하여 당업자에게 자명하게 될 것이다.
본 개시에 따르면, 원래의 블러링된 이미지뿐만 아니라 장면 움직임 정보(scene motion information)도 입력 데이터로서 사용된다. 입력에 이미지만이 제공되는 경우, 후속 단계들에서 사용되는 뉴럴 네트워크가 정확히 얼마나 이미지가 손상되었는지 알지 못하고 그에 따라 뉴럴 네트워크가 왜곡을 추정하기 위한 선택적인 모듈을 포함해야 하기 때문에, 이 데이터는 충분하지 않을 수 있다. 따라서, 본 개시에 따르면, 촬영 시의 카메라 움직임 정보에 기반하여 획득될 수 있는 블러 정보(blur information)가 또한 입력에 제공된다. 실제로, 카메라가 어떻게 움직였는지 뉴럴 네트워크에 알려주게 될 임의의 정보가 제공될 수 있다. 특히, 이는 움직임 센서로부터의 정보, 또는 움직임이 어떻게 이루어졌는지 추정하는 것에 대한 도움으로 순차적인 프레임들을 캡처하는 선택적인 저해상도 고속 카메라로부터의 정보 등일 수 있다.
따라서, 알고리즘은 매우 간단하다. 입력 블러 정보는 일부 특징들의 세트로 변환되고, 이어서, 이러한 특징들이 인공 뉴럴 네트워크의 입력에 제공된다. 뉴럴 네트워크는 이의 입력에서 원래의 블러리 이미지를 수신하고, 이를 학습된 특징 공간으로 전송하며, 여기서, 필터링은 콘볼루션들의 세트에 의해 수행된다. 블러 정보가 특징 표현에 부가되고, 콘볼루션 레이어들이 구성된 후에, 데이터는 수평으로 2회 수직으로 2회의 4개의 방향들로 특징들을 필터링하는 순환 리파인먼트 모듈(recurrent refinement module) 또는 RNN 리파인먼트 모듈(RNN(Recurrent Neural Network) refinement module)에 제공된다. 순환 리파인먼트 모듈은, 프로세싱 결과에 영향을 미치는, 텐서 내의 전역적 정보를 어그리게이팅(aggregate)함으로써 모델의 수용 필드를 증가시킨다. 즉, 뉴럴 네트워크 내에서, 순환 필터는 본질적으로 4개의 방향들로 작동한다. 따라서, 현저한 블러가 없는 이미지가 출력에서 획득될 수 있다.
일반적인 표현으로 말하자면, 본 개시의 예시적인 실시 예에 따른 디블러링을 위한 방법은 여러 단계들을 포함한다.
먼저, 이미지 프로세싱 유닛은 블러리 이미지 데이터(블러리 이미지)를 수신한다. 이 데이터는 이미지 프로세싱 유닛을 갖는 하나의 디바이스에 통합된 이미지 캡처링 유닛으로부터 또는 별개의 이미지 캡처링 유닛으로부터 실시간으로 수신될 수 있다. 대안적인 실시 예에서, 이미지 데이터는 미리 저장된 캡처 이미지 데이터일 수 있다.
따라서, 이미지 프로세싱 유닛은 이미지 캡처링 유닛과 통합된 디바이스에서 구현될 수 있을 뿐만 아니라, 원격 서버로서 또는 클라우드 기술들에 의해 구현될 수 있다.
본 개시의 예시적인 실시 예에서, 캡처된 블러리 이미지는 사람의 이미지를 포함한다. 그러나, 블러로 인해, 이미지에서 사람의 얼굴 또는 포즈를 검출하는 것이 가능하지 않다.
다음으로, 이미지 프로세싱 유닛은 장면이 동적인지, 즉, 캡처된 장면에서 객체(들)가 움직이고 있는지 여부를 결정한다. 이를 위해, 입력된 블러리 이미지 데이터는 전역적 시프트 추정 방법(global shift estimation method)에 의해 이미지 프로세싱 유닛에서 프로세싱된다. 이러한 추정의 결과는 이미지 시프트가 장면 전체에 걸쳐 전역적인지, 또는 이미지의 특정 영역들에서 국부적인지를 결정하기 위한 것이다. 추정된 전역적 시프트의 신뢰도가 높은 경우, 즉, 장면 움직임이 전역적 시프트에 의해 설명되는 경우, 장면이 본질적으로 정적이고, 그에 따라, 이미지 블러가 카메라 움직임에 의해 야기된 것으로 결론이 내려질 수 있다(균일 또는 균등한 블러). 그렇지 않으면, 장면이 동적인 것으로 결정되고, 카메라 움직임과 장면에서의 객체의 움직임 둘 모두에 의해 블러가 야기된다(동적 또는 불균일한 블러).
예컨대, 연속적인 블러리 프레임들 사이의 위상 상관(phase correlation)을 추정하는 것과 같은 본 기술 분야에 알려져 있는 임의의 적합한 기법이 전역적 시프트를 추정하기 위해 사용될 수 있다. 대안적인 실시 예에서, 카메라 내의 움직임 센서로부터 수신되는 것과 같은, 카메라 자체로부터의 움직임 정보가 전역적 시프트를 추정하기 위해 사용될 수 있다. 이러한 움직임 센서는 가속도계(accelerometer), 자이로스코프(gyroscope) 등일 수 있다.
다음으로, 이미지 프로세싱 유닛은 디블러링을 위한 이미지 프로세싱을 수행한다. 이 디블러링 프로세싱은 전역적 시프트 추정의 결과들에 의존한다.
도 1은 균일한 블러 장면을 캡처하는 경우의 이미지 디블러링을 위한 본 개시의 이미지 프로세싱에 대해 설명하기 위한 도면이다.
이미지 캡처링 유닛에 의해 캡처된 블러리 이미지는 이미지 프로세싱 유닛의 인코더(10)에 제공된다. 인코더(10) 동작의 결과는 사이즈(WB X HB X DB)의 입력 이미지의 전역적 특징 맵이며, 여기서, WB, HB 및 DB는 각각, 이미지의 전역적 특징 맵의 폭 높이 및 깊이이다.
블러 정보 텐서는 전역적 시프트 벡터의 2개의 성분들(x 및 y) 각각을 사이즈(WB X HB)의 2개의 평면들로 복제함으로써 생성된다. 전역적 장면 블러의 벡터(x, y)를 알고 있는 경우, 형상 텐서(W/8, H/8, 2)가 블러 정보로서 제공되며, 여기서, W 및 H는 입력 블러리 이미지의 원래 차원(dimension)들이다. 마지막 차원 2는 텐서가, 각각 상수들 x 및 y로 채워진 사이즈(W/8, H/8)의 2개의 2D 맵들인 것을 의미한다.
추가로, 전역적 특징 맵 및 블러 정보 텐서는 병합 유닛(미도시)에서 연접(concatenate)되고, 전역적 특징 맵 및 블러 정보 텐서는 동일한 레벨의 추상화를 갖는다. 사이즈들 (W, H, D1) 및 (W, H, D2)의 2개의 텐서들이 있는 경우, 연접은 형상 (W, H, D1+D2)의 결과를 제공한다. 즉, 제3 차원(즉, 깊이)에서의 2개의 텐서들의 간단한 본딩이 수행된다.
결과적인 연접된 텐서는 디코더(20)에 제공되며, 여기서, 결과적인 연접된 텐서는, 특징 텐서()를 획득하기 위해, 인코더(10)의 대응하는 레이어들과의 공간 관계를 고려함으로써 공간 해상도를 증가시키는 콘볼루션 레이어들에 의해 프로세싱되며, 여기서, i, j, k는 텐서에서의 엘리먼트의 위치를 나타내는 인덱스들이고, , , 는 각각, 특징 텐서의 폭, 높이 및 깊이이다.
따라서, 인코더(10)의 동작의 프로세스에서의 인코더(10)는, 장면의 점점 더 많은 전역적 정보를 캡처함으로써, 프로세싱된 텐서의 공간 차원들을 점진적으로 감소시키고, 코딩 특징 공간의 차원을 증가시킴으로써, 프로세싱된 텐서의 깊이를 증가시킨다.
디코더(20)는 그 반대로 행한다. 디코더(20)의 동작의 과정에서, 디코더(20)는 프로세싱된 텐서의 공간 차원들을 점진적으로 증가시키고, 프로세싱된 텐서의 깊이를 감소시킨다.
결과적인 특징 텐서는 이미지 재구성 모듈(40)(image reconstruction module)에 제공되며, 이는 디블러링된 이미지를 생성한다.
이 예시적인 실시 예에서, 이미지 프로세싱 유닛의 구성 개별 기능 모듈들을 갖는 이미지 프로세싱 유닛은 인공 뉴럴 네트워크, 특히 콘볼루션 뉴럴 네트워크(CNN)에 의해 구현된다는 것에 유의하여야 한다. 이 예에서의 전체 네트워크는 디블러링된 이미지 와 실측 자료 샤프 이미지(ground truth sharp image) 사이에 SSIM + L1 손실 함수를 사용하여 단 대 단(end-to-end)으로 트레이닝된 뉴럴 네트워크이다:
블러 정보의 사용으로 인해, 균일한 디블러링을 위한 이러한 방법은, 높은 품질의 출력 이미지를 제공하면서, 알려져 있는 솔루션들과 비교하여 프로세싱 속도를 10배 증가시키는 것을 가능하게 한다.
따라서, 본 개시의 일 실시 예에 따르면, 위의 방법을 수행하는 이미지 프로세싱 유닛은 인코더(10), 병합 유닛(미도시), 디코더(20) 및 이미지 재구성 유닛을 포함한다. 이 경우, 인코더(10)는 블러리 이미지 데이터를 수신하고, 이미지의 전역적 특징 맵을 생성하도록 구성된다. 병합 유닛은 이미지 캡처 시에 이미지 캡처링 유닛의 움직임을 특성화하는 블러 정보와 전역적 특징 맵을 병합하도록 구성된다. 디코더(20)는 병합 유닛으로부터 병합 결과를 수신하고, 특징 텐서를 생성하도록 구성된다. 이미지 재구성 모듈(40)은 디코더(20)로부터 특징 텐서를 수신하고, 디블러링된 이미지를 재구성하도록 구성된다.
도 2는 동적 블러 장면을 캡처하는 경우의 이미지 디블러링을 위한 본 개시의 이미지 프로세싱에 대해 설명하기 위한 도면이다.
전역적 시프트 추정 단계에서 장면이 동적인 것으로 결정되는 경우, 이미지 프로세싱 유닛은 도 2에 도시된 흐름도에 따라 디블러링을 위한 프로세싱을 수행한다. 도 2에 도시된 이미지 프로세싱 유닛은 디코더(20)와 이미지 재구성 모듈(40) 사이에 임베딩된 순환 리파인먼트 모듈(30)을 더 포함한다.
균일한 블러 장면을 디블러링하기 위한 프로세싱 단계들과 일치하는, 동적 블러 장면을 디블러링하기 위한 프로세싱 단계들에 대한 설명은 생략될 것이다.
도 1의 프로세싱과 대조적으로, 특징 텐서()에 부가하여, 디코더(20)는 또한 가중치 텐서들을 생성한다. 본 개시에 따른 예시적인 실시 예에서, 디코더(20)는, 특징 텐서와 동일한 높이, 폭 및 깊이를 각각 갖는 16개의 가중치 텐서들()을 생성하며, 여기서, i, j, k는 가중치 텐서에서의 특정 가중치 값의 위치를 정의하는 인덱스들이고, r은 각각의(총 16개) 가중치 텐서(가중된 우측-좌측 스위프 그리고 그 반대, 상측-하측 스위프 그리고 그 반대가 이루어지는 것으로 인한 4개의 RNN 동작들 각각에 대한 4개의 가중치 텐서들)의 인덱스이다. 따라서, 본 개시에 따르면, 가중치 텐서들과 특징 텐서 둘 모두는 동일한 네트워크에 의해 생성된다.
각각의 RNN 동작은 4개의 순환 이미지 스위프들(sweeps)(좌측-우측, 우측-좌측, 상측-하측 및 하측-상측)을 포함하여, 최대 32개의 채널들의 텐서 연접(tensor concatenation) 및 콘볼루션을 발생시킨다.
m번째 RNN 동작의 이미지의 각각의 n번째 순환 스위프는, 예컨대, 좌측-우측 스위프에 대해 순환 필터를 사용하여, 가중치 텐서()를 사용하고, 입력으로서 특징 텐서()를 취하고, 텐서()를 출력한다:
나타낸 공식은 좌측-우측 스위핑에서 열들을 업데이트하기 위한 공식이다. 유사하게, 열들의 재귀 프로세싱(recursive processing)이 우측-좌측 스위핑에서 발생하고, 상측-하측 및 하측-상측 스위핑에서의 행들의 프로세싱이 발생한다.
이 예에서의 전체 네트워크는 디블러링된 이미지와 실측 자료 샤프 이미지 사이에 L2 손실 함수를 사용하여 단 대 단 트레이닝된 뉴럴 네트워크이다.
따라서, 본 개시의 추가적인 실시 예에 따르면, 위에서 설명된 방법을 수행하는 이미지 프로세싱 유닛은 인코더(10), 병합 유닛(미도시), 디코더(20), 순환 리파인먼트 유닛 및 이미지 재구성 유닛을 포함한다. 이 경우, 인코더(10)는 블러리 이미지 데이터를 수신하고, 이미지의 전역적 특징 맵을 생성하도록 구성된다. 병합 유닛은 전역적 특징 맵과 블러 정보를 병합하도록 구성된다. 디코더(20)는 병합 유닛으로부터 병합 결과를 수신하고, 가중치 텐서들뿐만 아니라 특징 텐서를 생성하도록 구성된다. 순환 리파인먼트 모듈(30)은 디코더(20)로부터 획득된 특징 텐서 및 가중치 텐서들에 기반하여 특징들의 순환 필터링을 수행하도록 구성된다. 이미지 재구성 모듈(40)은 순환 리파인먼트 모듈(30)로부터 필터링된 특징 텐서를 수신하고, 디블러링된 이미지를 재구성하도록 구성된다.
본 개시의 바람직한 실시 예에 따르면, 이미지 프로세싱 유닛은 위에서 설명된 실시 예들의 특징들을 조합한다. 이 이미지 프로세싱 유닛은 인코더(10), 병합 유닛, 디코더(20), 순환 리파인먼트 유닛 및 이미지 재구성 유닛을 포함한다. 이미지 프로세싱 유닛은 전역적 시프트 추정의 결과들에 따라 순환 리파인먼트 모듈(30)을 활성화 또는 비활성화한다.
도 3은 본 개시에 따른 특징 텐서 및 가중치 텐서들의 생성에 대해 보다 상세하게 설명하기 위한 도면이다.
순환 리파인먼트 모듈(30)에 제공되는 특징 텐서를 생성하기 위해, 일부 다양한 하위 차원 상으로의 투영을 사용하여, 형상의 주요 특징 컴포넌트들()이 구별된다(고전적인 머신 학습에서의 PCA와의 유사성). 투영은 1x1 커널을 갖는 콘볼루션을 사용하여 이루어진다.
다음으로, 입력 특징들 및 그에 대응되는 가중치 텐서들이 각각의 RNN 동작(4개의 순환 이미지 스위프들: 좌측-우측, 우측-좌측, 상측-하측 및 하측-상측)을 위해 순환 리파인먼트 모듈(30)에 제공된다.
이 실시 예에서의 가중치들 및 특징들은 Adam 최적화 알고리즘을 사용하여 단 대 단으로 트레이닝된다. Adam 최적화 알고리즘은 표준 경사 하강법의 일반적으로 사용되는 변형이다.
따라서, 이미지 캡처링 유닛에 의해 동적 블러 장면을 캡처하는 경우, 본 개시는 결과 이미지의 품질 대 프로세싱 속도의 높은 비율을 제공한다.
위에서 제시된 정보에 기반하여, 순환 리파인먼트 모듈(30)이 선택적이고, 동적 블러를 갖는 캡처된 장면 이미지를 프로세싱하는 경우에만 활성화된다는 것을 알 수 있다. 동시에, 균일한 블러링을 갖는 캡처된 장면 이미지를 프로세싱하는 경우, 그 순환 리파인먼트 모듈(30)은 사용되지 않는다.
다음은 본 개시의 예시적인 실시 예에 따른, 이미지 프로세싱 유닛의 기능들을 구현하는 뉴럴 네트워크의 레이어들의 시퀀스를 예시하는 표이다.
[표 1]
표. 뉴럴 네트워크 레이어들
활성화 함수로서 쌍곡 탄젠트를 사용하는 RNN 가중치 생성의 conv14 콘볼루션 뿐만 아니라, 활성화 함수가 없는, RNN 특징 생성의 conv15 콘볼루션 및 결과적인 conv21 콘볼루션을 제외하고, 모든 콘볼루션들은 3x3 커널 및 leaky ReLU 활성화 함수를 사용한다.
다음 표에서 다음 지시들이 사용된다:
본 개시의 대안적인 실시 예에 따르면, 순환 리파인먼트 모듈(30)은 하나의 RNN 동작만을 수행한다. 이 경우, RNN 동작 동안 가중치들의 공유되는 사용으로 인해 16개 대신에 2개의 가중치 텐서들만이 생성되며: 우측-좌측 및 좌측-우측 스위프들이 동일한 가중치 텐서를 공유하고, 상측-하측 및 하측-상측 스위프들이 또한 동일한 가중치 텐서를 공유한다. 이 실시 예는 고속 및 감소된 연산 복잡성을 갖기 때문에 모바일 디바이스 상의 구현에 바람직할 수 있다.
또 다른 대안적인 실시 예에서, 각각의 RNN 동작은 4개의 순환 스위프들을 포함하는 것이 아니라 2개만 포함한다. 순환 스위프들은 우측-좌측 또는 상측-하측이 아니라 곡선, 예컨대 힐버트(Hilbert) 곡선을 따라 이루어지고, 이어서, 반대 방향으로 이루어진다. 이는 각각의 RNN 동작에 대한 스위프들의 수를 감소시키는 것을 가능하게 한다. 이 실시 예는 또한, 연산 복잡성을 감소시키고, 프로세싱 속도를 개선할 수 있다.
본 개시의 추가적인 대안적인 실시 예에 따르면, 2개의 평면 대신에 단지 하나의 평면 상의 블러 정보로서 블러 정보를 획득하는 것이 가능하다. 특히, 이러한 단순화된 아키텍처는, 예컨대, 로봇 회전으로부터의 수평 블러만이 발생할 때 사용될 수 있다.
또 다른 대안적인 실시 예에서, 선택적인 저-해상도 고속 카메라에 의해 캡처된 프레임들의 세트가 블러 정보에 부가된다. 이 프레임들은 디코더(20)가 입력 이미지에서 블러의 주 방향을 검출하는 것을 돕기 위해 블러 정보와 함께 사용된다. 언급된 프레임들의 세트는 블러 정보에 부가하여 사용될 수 있을 뿐만 아니라 블러 정보에 대한 대안으로서 사용될 수 있다.
다른 실시 예에 따르면, 이미지 프로세싱 유닛은 디코더(20)와 순환 리파인먼트 모듈(30) 사이에 위치된 공간 어텐션(spatial attention) 모듈을 더 포함한다. 공간 어텐션 모듈은 입력 블러리 이미지 상의 전역적 블러와 관련된 픽셀들을 필터링할 수 있다. 동시에, 공간 어텐션 모듈을, 움직이는 객체들에 의해 야기되는 국부적 블러와 관련된 픽셀들을 선택하고, 순환 리파인먼트 모듈(30)에 의해 이들을 프로세싱하는 것을 허용한다. 이는 본 개시의 위에서 설명된 실시 예들의 이점들을 결합할 수 있게 한다. 이 실시 예는 다음과 같다:
- 블러리 이미지가 공간 어텐션 모듈에 제공되고, 입력 블러리 이미지가 다차원 특징 표현(특징 공간)으로 맵핑되며: , 여기서, W 및 H는 입력 블러리 이미지의 공간 차원들이다;
- 역 코사인 메트릭이 계산된다: (-1 코사인 유사성), 여기서, CNN은 실제 이미지 블러와 센서들로부터의 획득된 블러 정보 사이의 비유사성의 측정을 학습한다. 즉, 블러 정보의 특징 표현과 블러리 이미지의 특징 표현 사이에 역 상관 맵이 계산된다. 특징 표현의 역 상관이 임계 값 미만인 영역들(픽셀들)은 유사한 블러링 패턴들을 갖고, 순환 리파인먼트 모듈(30)에 의한 추가적인 프로세싱을 필요로 하지 않는다. 역 코사인 메트릭이 임계 값을 초과하는 이미지의 영역들(픽셀들)은 국부적 블러 영역들, 즉, 장면에서 움직이는 객체들로 지칭된다. 이러한 영역들에서, 실제 블러는 센서들로부터의 블러 정보와 충돌한다. 이러한 이미지 영역들은 순환 리파인먼트 모듈(30)에 의해 추가로 프로세싱된다. 그 후, 프로세싱된 동적 블러 이미지 영역들은, 이미지 재구성 모듈(40)에서 출력 디블러링된 이미지를 생성하기 위해, 균일한 블러 이미지 영역들과 연관된다.
본 개시의 이러한 실시 예는, 동적 블러 장면들을 위한 프로세싱 방법에 의해 움직이는 객체들이 묘사되는 블러리 이미지 영역들을 프로세싱하면서, 나머지 이미지 영역들이 균일한 블러 장면들을 위한 프로세싱 방법에 의해 프로세싱될 수 있게 한다. 이는 고속 이미지 프로세싱 및 고 품질의 결과적인 디블러링된 이미지들을 제공한다.
본 개시의 다른 양태에 따르면, 위에서 설명된 이미지 프로세싱 유닛 및 이미지 캡처링 유닛을 포함하는 이미징 장치가 제공된다.
본 개시의 추가적인 양태에 따르면, 프로세서에 의해 실행될 때 그 프로세서가 위에서 설명된 이미지 프로세싱을 위한 방법을 수행하게 하는 컴퓨터 프로그램을 저장하는 컴퓨터-판독가능 매체가 제공된다.
당연히, 데이터, 프로그램들 등을 저장할 때, 컴퓨터-판독가능 저장 매체의 존재가 암기되며, 컴퓨터-판독가능 저장 매체들의 예들은 판독-전용 메모리, 랜덤 액세스 메모리, 레지스터, 캐시 메모리, 반도체 저장 디바이스들, 자기 매체들, 이를테면 내부 하드 디스크들 및 탈착식 디스크들, 자기-광학 매체들 및 광학 매체들, 이를테면 CD-ROM들 및 디지털 다용도 디스크(DVD)들 및 본 기술 분야에 알려져 있는 임의의 다른 저장 매체들을 포함한다.
본 개시는 SoC-기반 장비(스마트폰들, 태블릿들, 비디오 레코더들 등)에 내장된 것들을 포함하는, 사진 및 비디오 카메라들과 같은 이미지 캡처 및 프로세싱 디바이스들에 적용될 수 있다. 양호한 이미지 품질은, 비디오 감시 시스템들, 자율 주행 차량들, 로봇들 등 내의 이미지 캡처 디바이스들에 본 개시를 사용할 때 이점들을 제공한다. 동시에, 본 개시는 제한된 연산력을 갖는 저-전력 장비 상에서도 실시간으로 캡처된 이미지를 프로세싱하는 것을 가능하게 한다.
부가적으로, 위에서 설명된 전자 디바이스에 의해 수행되는 방법이 인공 지능 모델을 사용하여 수행될 수 있다는 것이 유의되어야 한다. 인공 지능 모델은 트레이닝을 통해 획득될 수 있다. 여기서, "트레이닝에 의해 학습됨"은, 원하는 기능(또는 목표)을 수행하도록 구성된 인공 지능 모델 또는 미리 정의된 동작 규칙이, 학습 알고리즘을 사용하여, 복수의 트레이닝 데이터 피스들을 사용하는 기본 인공 지능 모델을 트레이닝시킴으로써 획득되는 것을 의미한다. 인공 지능 모델은 뉴럴 네트워크의 다수의 레이어들을 포함할 수 있다.
본원에서 개시되는 방법들은 설명되는 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법의 단계들 및/또는 액션들은 청구항들의 범위를 벗어나지 않으면서 서로 대체될 수 있다. 즉, 단계들 또는 액션들의 특정 순서가 정의되어 있지 않은 경우, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 청구항들의 범위를 벗어나지 않으면서 변경될 수 있다.
애플리케이션은 도면들에서의 블록들의 구현을 위한 특정 소프트웨어 및 하드웨어를 나타내는 것이 아니고, 당업자는 본 개시의 본질이 특정 소프트웨어 또는 하드웨어 구현에 제한되지 않고, 그에 따라, 본 개시를 구현하기 위해 본 기술 분야에 알려져 있는 임의의 소프트웨어 및 하드웨어가 사용될 수 있다는 것을 이해해야 한다. 따라서, 하드웨어는 하나 이상의 특수 집적 회로들, 디지털 신호 프로세서들, 디지털 신호 프로세싱 디바이스들, 프로그램 가능 논리 디바이스들, 사용자-프로그램 가능 게이트 어레이들, 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본 문서에서 설명되는 기능들을 수행하도록 설계된 다른 전자 모듈들, 컴퓨터, 또는 이들의 조합으로 구현될 수 있다.
예시적인 실시 예들이 상세히 설명되고 첨부 도면들에 도시되었지만, 그러한 실시 예들은 단지 예시적인 것일 뿐이고, 더 넓은 개시를 제한하도록 의도되지 않으며, 다양한 다른 변형들이 당업자에게 자명할 수 있으므로, 본 개시가 도시 및 설명된 특정 배열들 및 구조들로 제한되지 않아야 한다는 것이 이해되어야 한다.
단수로 언급된 엘리먼트들은, 달리 특정되지 않는 한, 복수의 엘리먼트들을 배제하지 않는다.
다양한 종속항들에서 언급되는 특징들뿐만 아니라, 설명의 다양한 부분들에서 개시되는 실시 예들은 유용한 효과들의 달성을 위해 조합될 수 있으며, 심지어, 그러한 조합의 가능성이 명시적으로 개시되어 있지 않더라도 조합될 수 있다.
이하에서는 도 4 및 도 5를 참조하여, 상술한 바와 같은 다양한 실시 예가 전자 장치 및 복수의 신경망 모델을 통해 구현되는 실시 예에 대해 설명한다.
도 4는 본 개시에 따른 전자 장치의 제어 방법을 나타내는 흐름도이다.
도 4에 도시된 바와 같은 제어 방법의 각 단계를 설명함에 앞서, 각 단계를설명하기 위한 용어들에 대해 설명한다.
먼저, 본 개시에 따른 '전자 장치'는 블러링된 영역을 포함하는 이미지를 처리하여 디블러링된 이미지를 획득할 수 있는 장치를 말한다. 예를 들어, 전자 장치는 스마트폰, 태블릿 PC 등과 같은 사용자 단말일 수도 있으며, 서버 또는 클라우드 시스템 등으로 구현될 수 있다. 다만, 본 개시에 따른 전자 장치가 특정 유형의 장치에 국한되는 것은 아니다. 전자 장치라는 용어는 도 1 내지 도 3을 참조하여 상술한 바와 같은 '이미지 프로세싱 유닛'과 동일한 의미로 사용될 수 있으며, '이미지 캡처링 유닛'을 포함할 수도 있다.
한편, 전자 장치는 이미지의 디블러링을 위한 적어도 하나의 신경망 모델을 포함할 수 있다. 구체적으로, 전자 장치는 이하에서 정의하는 바와 같은 제1 신경망 모델, 제2 신경망 모델 및 제3 신경망 모델을 포함할 수 있다.
'제1 신경망 모델'은 입력된 이미지에 대응되는 제1 특징 정보 및 제1 특징 정보에 대응되는 가중치 정보를 획득하도록 학습된 신경망 모델을 말하며, 도 1 내지 도 3을 참조하여 상술한 바와 같은 인코더 및 디코더를 포함할 수 있다. 예를 들어, 제1 신경망 모델은 합성곱 신경망(Convolutional Neural Network, CNN)을 포함할 수 있으며, 특히 UNet CNN 모델일 수 있다.
여기서, '제1 특징 정보'는 입력된 이미지의 특징 값을 총칭하기 위한 용어로서, '특징 텐서' 또는 '특징 벡터' 등과 같은 용어로 대체될 수 있다. 그리고, '가중치 정보'는 제1 특징 정보의 특징 텐서와 동일한 높이, 폭 및 깊이를 갖는 가중치 값을 총칭하기 위한 용어로서, '가중치 텐서'라는 용어로 대체될 수 있다. 가중치 정보는 제1 특징 정보와 동일한 신경망 모델, 즉 제1 신경망 모델에 의해 생성될 수 있으며, 후술하는 바와 같은 제2 신경망 모델에 포함된 복수의 RNN 레이어 각각의 동작에 이용될 수 있다.
'제2 신경망 모델'은 제1 특징 정보 및 가중치 정보를 바탕으로 순환 필터링 과정을 수행하여 제2 특징 정보를 획득하도록 학습된 신경망 모델을 말하며, 도 1 내지 도 3을 참조하여 상술한 바와 같은 순환 리파인먼트 모듈을 포함할 수 있다. 예를 들어, 제2 신경망 모델은 순환 신경망(Recurrent Neural Network, RNN)을 포함할 수 있다. 여기서, '제2 특징 정보'는 제1 특징 정보 및 가중치 정보를 바탕으로 순환 필터링 과정을 수행하여 획득된 정보로서, 제1 특징 정보가 필터링된 결과 제2 신경망 모델에 의해 출력되는 정보를 지칭하기 위한 용어이다. 그리고, 제2 특징 정보라는 용어는 '필터링된 특징 텐서'라는 용어로 대체될 수 있다.
'제3 신경망 모델'은 제1 특징 정보 또는 제2 특징 정보를 바탕으로 디블러링된 이미지를 획득하는 신경망 모델을 말하며, 도 1 내지 도 3을 참조하여 상술한 바와 같은 이미지 재구성 모듈을 포함할 수 있다. 예를 들어, 제3 신경망 모델은 dilated causal convolutional neural network (DCCNN)을 포함할 수 있다.
도 4를 참조하면, 전자 장치는 블러링(blurring)된 영역을 포함하는 이미지 및 블러 정보를 제1 신경망 모델에 입력하여 제1 특징 정보 및 가중치 정보를 획득할 수 있다(S410).
여기서, 이미지는 전자 장치를 통해 실시간으로 획득되는 이미지, 전자 장치에 저장된 이미지 및 외부 장치로부터 수신된 이미지 등을 포함할 수 있으며, 한 장의 프레임으로 구성된 이미지뿐만 아니라 동영상을 의미할 수도 있다. '블러링된 영역을 포함하는 이미지'는 '블러리 이미지' 또는 '블러 이미지' 등과 같은 용어로 대체될 수 있다. 그리고, '블러 정보'는 앞서 정의한 바와 같이, 이미지를 획득하는 동안의 카메라 움직임에 관련된 정보를 총칭하기 위한 용어로 사용된다.
제1 신경망 모델은 이미지뿐만 아니라 블러 정보를 함께 이용하여 제1 특징 정보를 출력할 수 있다. 구체적으로, 제1 신경망 모델에 포함된 인코더는 이미지를 수신하고 수신된 이미지에 대응되는 전역적 특징 맵(global feature map)을 획득할 수 있다. 제1 신경망 모델에 포함된 병합 모듈(또는 병합 유닛)은 블러 정보를 수신하고, 수신된 블러 정보를 그에 대응되는 특징 값의 집합으로 변환하며, 수신된 이미지에 대응되는 전역적 특징 맵과 블러 정보에 대응되는 특징 값의 집합을 병합할 수 있다. 제1 신경망 모델에 포함된 디코더는 병합 모듈로부터 병합된 결과를 수신하고, 제1 특징 정보 및 가중치 정보를 생성하여 출력할 수 있다.
전자 장치는 이미지에 대한 전역적 시프트 정보(global shift information)를 획득할 수 있다(S420).
'전역적 시프트 정보'는 이미지 내에 포함된 이미지 시프트가 장면 전체에 걸쳐 전역적인지 아니면 이미지의 특정 영역들에서 국부적인지 여부를 나타내는 정보를 말한다. 구체적으로, 전역 시프트 정보는 전역적 시프트 추정 방법(global shift estimation method)에 따른 추정의 결과로서 획득될 수 있으며, 연속적인 프레임들 사이의 위상 상관을 추정하는 것과 같은 다양한 방법을 통해 획득될 수도 있다.
전자 장치는 전역적 시프트 정보를 바탕으로 이미지에 포함된 장면이 동적인 장면인지 여부를 식별할 수 있다(S430).
구체적으로, 전역 시프트 정보에 따라 추정된 이미지의 전역적 시프트에 대한 신뢰도가 높은 경우, 즉, 이미지에 포함된 오브젝트의 움직임이 전역적 시프트에 의해 설명되는 경우이면, 전자 장치는 이미지에 포함된 장면이 정적인 것으로 식별할 수 있다. 그리고, 이미지에 포함된 장면이 정적인 것으로 식별되면, 이미지의 블러가 카메라의 움직임에 의해 야기된 것이라고 할 수 있으므로, 전자 장치는 이미지를 획득하는 동안의 카메라 움직임에 관련된 정보인 블러 정보가 병합된 제1 특징 정보를 바탕으로 디블러링된 이미지를 획득할 수 있다.
즉, 이미지에 포함된 장면이 정적인 장면으로 식별되면(S430-N), 전자 장치는 제1 특징 정보를 제3 신경망 모델에 입력하여 블러링된 영역이 디블러링된 이미지를 획득할 수 있다(S460). 구체적으로, 전자 장치는 제1 특징 정보를 바탕으로 제2 특징 정보를 획득하기 위한 제2 신경망 모델을 활성화시키지 않고, 제1 신경망 모델을 통해 획득된 제1 특징 정보를 제3 신경망 모델에 직접 입력하여 디블러링된 이미지를 획득할 수 있다. 여기서, '디블러링된 이미지'란 이미지의 블러링된 영역이 해소된 고품질의 이미지를 말한다.
이미지에 포함된 장면이 정적이고 그에 따라 이미지의 블러가 균일인 경우의 구체적인 제어 방법에 대해서는 도 1를 참조하여 상술한 바 있으므로 상세한 내용에 대한 중복 설명은 생략한다.
한편, 전역 시프트 정보에 따라 추정된 이미지의 전역적 시프트에 대한 신뢰도가 낮은 경우, 즉, 이미지에 포함된 오브젝트의 움직임이 전역적 시프트에 의해 설명되지 않는 경우이면, 전자 장치는 이미지에 포함된 장면이 동적인 것으로 식별할 수 있다. 그리고, 이미지에 포함된 장면이 동적인 것으로 식별되면, 이미지의 블러가 카메라의 움직임뿐만 아니라 이미지에 포함된 오브젝트의 움직임에 의해 야기된 것이라고 할 수 있으므로, 전자 장치는 제1 특징 정보 및 가중치 정보를 바탕으로 제2 특징 정보를 획득하고, 제2 특징 정보를 바탕으로 디블러링된 이미지를 획득할 수 있다.
즉, 이미지에 포함된 장면이 동적인 장면으로 식별되면(S430-Y), 전자 장치는 제2 신경망 모델을 통해 순환 필터링 과정을 수행하여 제1 특징 정보가 필터링된 제2 특징 정보 획득하고(S440), 제2 특징 정보를 제3 신경망 모델에 입력하여 블러링된 영역이 디블러링된 이미지를 획득할 수 있다(S450).
구체적으로, 제2 신경망 모델은 제1 특징 정보를 순차적으로 처리하는 복수의 RNN(Recurrent Neural Network) 레이어를 포함하고, 복수의 RNN 레이어 각각은 서로 다른 방향의 이미지 스위프들(sweeps) 바탕으로 순환 필터링 과정을 수행하여 제2 특징 정보를 획득할 수 있다. 예를 들어, 제2 신경망 모델은 4 개의 RNN 레이어를 포함할 수 있으며, 4 개의 RNN 레이어 별 4 개의 가중치 정보를 바탕으로 RNN 레이어 별 순환 필터링 과정을 수행할 수 있다. 여기서, 각각의 RNN 레이어 별 가중치 정보는 우측에서 좌측 방향의 스위프, 좌측에서 우측 방향의 스위프, 위에서 아래 방향의 스위프 및 아래에서 위 방향의 스위프에 따른 4 개의 RNN 동작들 각각에 대한 가중치 텐서일 수 있다.
이미지에 포함된 장면이 동적이고 그에 따라 이미지의 블러가 동적인 경우의 구체적인 제어 방법에 대해서는 도 2를 참조하여 상술한 바 있으므로 상세한 내용에 대한 중복 설명은 생략한다.
한편, 이상에서는 전자 장치에 제1 신경망 모델, 제2 신경망 모델 및 제3 신경망 모델이 포함된 것임을 전제로 설명하였으나, 본 개시에 따른 1 신경망 모델, 제2 신경망 모델 및 제3 신경망 모델은 온 디바이스(on-device)의 형태로 전자 장치에 포함될 수 있을 뿐만 아니라, 1 신경망 모델, 제2 신경망 모델 및 제3 신경망 모델 중 적어도 하나의 신경망 모델은 이미지 프로세싱을 위한 서버와 같은 외부 장치에 포함된 형태로 구현될 수도 있음은 물론이다. 한편, 제1 신경망 모델, 제2 신경망 모델 및 제3 신경망 모델을 포함하는 전체 파이프라인(pipeline)은 단 대 단(end-to-end)으로 학습될 수 있으며, 제1 신경망 모델, 제2 신경망 모델 및 제3 신경망 모델을 포함하는 하나의 통합된 신경망 모델의 형태로 구현될 수도 있다.
도 5는 본 개시에 따른 전자 장치(100)의 구성을 나타내는 블록도이다.
도 5에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있으며, 뿐만 아니라 통신부(130), 센서(140), 입력부(150) 및 출력부(160)를 더 포함할 수 있다. 그러나, 도 5에 도시된 바와 같은 구성들은 예시적인 것에 불과할 뿐이며, 본 개시를 실시함에 있어 도 5에 도시된 바와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음은 물론이다.
메모리(110)에는 전자 장치(100)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 그리고, 메모리(110)에는 전자 장치(100)를 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(110)에는 본 개시의 다양한 실시 예들에 따라 전자 장치(100)가 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(110)는 플래시 메모리(Flash Memory) 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.
구체적으로, 메모리(110)에는 본 개시의 다양한 실시 예에 따라 전자 장치(100)가 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(120)는 메모리(110)에 저장된 각종 소프트웨어 모듈을 실행하여 전자 장치(100)의 동작을 제어할 수 있다. 즉, 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
한편, 본 개시에서 메모리(110)라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 메모리(110)에는 본 개시에 따른 제1 신경망 모델에 대한 정보, 제2 신경망 모델에 대한 정보 및 제3 신경망 모델에 대한 정보가 저장될 수 있다. 또한, 메모리(110)에는 본 개시에 따른 이미지에 대한 데이터, 블러 정보, 제1 특징 정보(특징 텐서), 가중치 정보(가중치 텐서), 제2 특징 정보(필터링된 특징 텐서) 등과 같은 정보가 저장될 수 있다. 그 밖에도 본 개시의 목적을 달성하기 위한 범위 내에서 필요한 다양한 정보가 메모리(110)에 저장될 수 있으며, 메모리(110)에 저장된 정보는 외부 장치로부터 수신되거나 사용자에 의해 입력됨에 따라 갱신될 수도 있다.
프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(120)는 상술한 바와 같은 메모리(110), 통신부(130), 센서(140), 입력부(150) 및 출력부(160)를 포함하는 전자 장치(100)의 구성과 연결되며, 상술한 바와 같은 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 전자 장치(100)의 동작을 전반적으로 제어할 수 있다.
프로세서(120)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(120)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다. 한편, 본 개시에서 프로세서(120)라는 용어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 및 MPU(Main Processing Unit)등을 포함하는 의미로 사용될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(120)는 블러링(blurring)된 영역을 포함하는 이미지 및 이미지를 획득하는 동안의 카메라 움직임에 관련된 블러 정보(blur information)를 제1 신경망 모델에 입력하여, 이미지에 대응되는 제1 특징 정보 및 특징 정보에 대응되는 가중치 정보를 획득하고, 이미지에 포함된 적어도 하나의 오브젝트의 움직임에 관련된 전역적 시프트 정보(global shift information)를 획득하여, 전역적 시프트 정보를 바탕으로 이미지에 포함된 장면이 동적인 장면인지 여부를 식별하며, 이미지에 포함된 장면이 동적인 장면으로 식별되면, 제2 신경망 모델을 통해 제1 특징 정보 및 가중치 정보를 바탕으로 순환 필터링 과정을 수행하여 제1 특징 정보가 필터링된 제2 특징 정보를 획득하고, 제2 특징 정보를 제3 신경망 모델에 입력하여 블러링된 영역이 디블러링된 이미지를 획득할 수 있다.
프로세서(120)의 제어를 바탕으로 한 본 개시에 따른 다양한 실시 예에 대해서는 도 1 내지 도 4를 참조하여 상술하였으므로 중복 설명은 생략한다.
통신부(130)는 회로를 포함하며, 외부 장치와의 통신을 수행할 수 있다. 구체적으로, 프로세서(120)는 통신부(130)를 통해 연결된 외부 장치로부터 각종 데이터 또는 정보를 수신할 수 있으며, 외부 장치로 각종 데이터 또는 정보를 전송할 수도 있다.
통신부(130)는 WiFi 모듈, Bluetooth 모듈, 무선 통신 모듈, 및 NFC 모듈 중 적어도 하나를 포함할 수 있다. 구체적으로, WiFi 모듈과 Bluetooth 모듈 각각은 WiFi 방식, Bluetooth 방식으로 통신을 수행할 수 있다. WiFi 모듈이나 Bluetooth 모듈을 이용하는 경우에는 SSID 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
또한, 무선 통신 모듈은 IEEE, Zigbee, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), 5G(5th Generation) 등과 같은 다양한 통신 규격에 따라 통신을 수행할 수 있다. 그리고, NFC 모듈은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 통신을 수행할 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(120)는 통신부(130)를 통해 외부 장치로부터 블러링된 영역을 포함하는 이미지를 수신할 수 있으며, 디블러링된 이미지를 외부 장치로 전송하도록 통신부(130)를 제어할 수도 있다. 또한, 본 개시에 따른 신경망 모델들 또는 모듈들 중 적어도 일부가 외부 장치에 포함된 형태로 본 개시가 구현되는 경우, 전자 장치(100)는 외부 장치에 포함된 신경망 모델 또는 모듈을 위한 정보를 전송하도록 통신부(130)를 제어하고, 통신부(130)를 통해 외부 장치에 포함된 신경망 모델 또는 모듈에 의해 출력된 정보를 수신할 수도 있다.
센서(140)는 전자 장치(100) 내부 및 외부의 다양한 정보를 감지할 수 있다. 구체적으로, 센서는 GPS(Global Positioning System) 센서, 자이로 센서(gyro sensor, gyroscope), 가속도 센서(acceleration sensor, accelerometer), 라이다 센서(lidar sensor), 관성 센서(Inertial Measurement Unit, IMU) 및 모션 센서 중 적어도 하나를 포함할 수 있다. 뿐만 아니라, 센서는 온도 센서, 습도 센서, 적외선 센서, 바이오 센서 등과 같은 다양한 종류의 센서를 포함할 수도 있다. 특히, 본 개시에 따른 다양한 실시 예에 있어서, 가속도 센서 또는 자이로 센서는 이미지를 촬영하는 동안의 카메라의 움직임을 감지할 수 있으며, 프로세서(120)는 가속도 센서 또는 자이로 센서를 통해 본 개시에 따른 블러 정보를 획득할 수 있다.
입력부(150)는 회로를 포함하며, 프로세서(120)는 입력부(150)를 통해 전자 장치(100)의 동작을 제어하기 위한 사용자 명령을 수신할 수 있다. 구체적으로, 입력부(150)는 마이크, 카메라(미도시), 및 리모컨 신호 수신부(미도시) 등과 같은 구성으로 이루어 질 수 있다. 그리고, 입력부(150)는 터치 스크린으로서 디스플레이에 포함된 형태로 구현될 수도 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(120)는 입력부(150)를 통해 블러링된 영역을 포함하는 이미지에 대한 디블러링 과정을 수행하기 위한 사용자 입력, 디블러링된 이미지에 대한 사용자 피드백을 위한 사용자 입력 등을 수신할 수 있다. 한편, 프로세서(120)는 디블러링된 이미지에 대한 사용자 피드백을 손실 함수에 반영함으로써 본 개시에 따른 적어도 하나의 신경망 모델을 학습시킬 수도 있다.
출력부(160)는 회로를 포함하며, 프로세서(120)는 출력부(160)를 통해 전자 장치(100)가 수행할 수 있는 다양한 기능을 출력할 수 있다. 그리고, 출력부(160)는 디스플레이, 스피커 및 인디케이터 중 적어도 하나를 포함할 수 있다.
디스플레이는 프로세서(120)의 제어에 의하여 영상 데이터를 출력할 수 있다. 구체적으로, 디스플레이는 프로세서(120)의 제어에 의하여 메모리(110)에 기 저장된 영상을 출력할 수 있다. 또한, 디스플레이는 메모리(110)에 저장된 사용자 인터페이스(User Interface)를 표시할 수도 있다. 디스플레이는 LCD(Liquid Crystal Display Panel), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있으며, 또한 디스플레이는 경우에 따라 플렉서블 디스플레이, 투명 디스플레이 등으로 구현되는 것도 가능하다. 다만, 본 개시에 따른 디스플레이가 특정한 종류에 한정되는 것은 아니다.
스피커는 프로세서(120)의 제어에 의하여 오디오 데이터를 출력할 수 있으며, 인디케이터는 프로세서(120)의 제어에 의하여 점등될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(120)는 블러링된 영역을 포함하는 이미지 및 디블러링된 이미지를 표시하도록 디스플레이를 제어할 수 있다. 또한, 프로세서(120)는 디블러링된 이미지가 획득되었음을 나타내는 알림을, 디스플레이 또는 인디케이터를 통해 시각적으로 제공할 수 있으며, 스피커를 통해 청각적으로 제공할 수도 있다.
한편, 상술한 실시 예에 따른 전자 장치(100)의 제어 방법은 프로그램으로 구현되어 전자 장치(100)에 제공될 수 있다. 특히, 전자 장치(100)의 제어 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
구체적으로, 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 전자 장치(100)의 제어 방법은 블러링(blurring)된 영역을 포함하는 이미지 및 이미지를 획득하는 동안의 카메라 움직임에 관련된 블러 정보(blur information)를 제1 신경망 모델에 입력하여, 이미지에 대응되는 제1 특징 정보 및 특징 정보에 대응되는 가중치 정보를 획득하는 단계, 이미지에 포함된 적어도 하나의 오브젝트의 움직임에 관련된 전역적 시프트 정보(global shift information)를 획득하여, 전역적 시프트 정보를 바탕으로 이미지에 포함된 장면이 동적인 장면인지 여부를 식별하는 단계, 이미지에 포함된 장면이 동적인 장면으로 식별되면, 제2 신경망 모델을 통해 제1 특징 정보 및 가중치 정보를 바탕으로 순환 필터링 과정을 수행하여 제1 특징 정보가 필터링된 제2 특징 정보를 획득하는 단계 및 제2 특징 정보를 제3 신경망 모델에 입력하여 블러링된 영역이 디블러링된 이미지를 획득하는 단계를 포함한다.
여기서, 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리(110) 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리(110)카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
이상에서 전자 장치(100)의 제어 방법, 그리고 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해 간략하게 설명하였으나, 이는 중복 설명을 생략하기 위한 것일 뿐이며, 전자 장치(100)에 대한 다양한 실시 예는 전자 장치(100)의 제어 방법, 그리고 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해서도 적용될 수 있음은 물론이다.
상술한 바와 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치(100)는 카메라의 움직임에 대한 블러 정보를 반영하여 이미지에 대한 특징 정보를 획득할 수 있으며, 동일한 신경망을 통해 이미지에 대한 특징 정보와 함께 순환 필터링 과정에 이용될 가중치 정보를 획득할 수 있다. 또한, 전자 장치(100)는 이미지에 포함된 장면이 동적인지 여부에 따라 순환 필터링 과정의 수행 여부를 선택적으로 결정함으로써, 하나의 신경망 아키텍처 하에서 정적인 블러와 동적인 블러 각각에 적합한 방법으로 디블러링을 수행할 수 있게 된다. 이에 따라, 디블러링 프로세싱의 연산 복잡성을 단순화하고, 프로세싱의 속도를 증가시키고, 높은 품질의 디블러링 이미지를 획득할 수 있게 된다.
한편, 이상에서 상술한 바와 같은 신경망 모델들과 다양한 모듈 등에 관련된 기능은 메모리(110) 및 프로세서(120)를 통해 수행될 수 있다.
프로세서(120)는 하나 또는 복수의 프로세서(120)로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서(120)는 CPU, AP 등과 같은 범용 프로세서(120), GPU. VPU 등과 같은 그래픽 전용 프로세서(120) 또는 NPU와 같은 인공 지능 전용 프로세서(120)일 수 있다.
하나 또는 복수의 프로세서(120)는, 비휘발성 메모리(110) 및 휘발성 메모리(110)에 저장된 기 정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기 정의된 동작 규칙 또는 인공 지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기 정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공 지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
인공 지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 각 레이어는 복수의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치의 연산을 통해 레이어의 연산을 수행한다. 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network), GAN(Generative Adversarial Networks) 및 심층 Q-네트워크 (Deep Q-Networks)이 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 로봇)을 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 본 개시에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리(110)와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다.
다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(100)(예: 전자 장치(100)(100))를 포함할 수 있다.
상기 명령이 프로세서(120)에 의해 실행될 경우, 프로세서(120)가 직접 또는 상기 프로세서(120)의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
100: 전자 장치
110: 메모리
120: 프로세서 130: 통신부
140: 센서 150: 입력부
160: 출력부
120: 프로세서 130: 통신부
140: 센서 150: 입력부
160: 출력부
Claims (19)
- 전자 장치에 있어서,
이미지의 디블러링(deblurring)을 위한 적어도 하나의 신경망 모델을 저장하는 메모리; 및
블러링(blurring)된 영역을 포함하는 이미지 및 상기 이미지를 획득하는 동안의 카메라 움직임에 관련된 블러 정보(blur information)를 제1 신경망 모델에 입력하여, 상기 이미지에 대응되는 제1 특징 정보 및 상기 특징 정보에 대응되는 가중치 정보를 획득하고,
상기 이미지에 포함된 적어도 하나의 오브젝트의 움직임에 관련된 전역적 시프트 정보(global shift information)를 획득하여, 상기 전역적 시프트 정보를 바탕으로 상기 이미지에 포함된 장면이 동적인 장면인지 여부를 식별하며,
상기 이미지에 포함된 장면이 동적인 장면으로 식별되면, 제2 신경망 모델을 통해 상기 제1 특징 정보 및 상기 가중치 정보를 바탕으로 순환 필터링 과정을 수행하여 상기 제1 특징 정보가 필터링된 제2 특징 정보를 획득하고,
상기 제2 특징 정보를 제3 신경망 모델에 입력하여 상기 블러링된 영역이 디블러링된 이미지를 획득하는 프로세서; 를 포함하는 전자 장치.
- 제1 항에 있어서,
상기 프로세서는,
상기 이미지에 포함된 장면이 정적인 장면으로 식별되면, 상기 제1 특징 정보를 상기 제3 신경망 모델에 입력하여 상기 블러링된 영역이 디블러링된 이미지를 획득하는 전자 장치.
- 제1 항에 있어서,
상기 제1 신경망 모델은 상기 이미지에 대응되는 전역적 특징 맵을 획득하고, 상기 전역적 특징 맵 및 상기 블러 정보를 병합하여 상기 제1 특징 정보를 획득하는 전자 장치.
- 제1 항에 있어서,
상기 제2 신경망 모델은 상기 제1 특징 정보를 순차적으로 처리하는 복수의 RNN(Recurrent Neural Network) 레이어를 포함하고,
상기 복수의 RNN 레이어 각각은 서로 다른 방향의 이미지 스위프들(sweeps) 바탕으로 상기 순환 필터링 과정을 수행하는 전자 장치.
- 이미지 프로세싱 유닛에 있어서,
블러리(blurry) 이미지 데이터를 수신하고, 상기 이미지의 전역적 특징 맵(global feature map)을 생성하도록 구성된 인코더;
이미지 캡처(capture) 시의 이미지 캡처링 유닛의 움직임을 특성화하는 블러(blur) 정보와 상기 전역적 특징 맵을 병합하도록 구성된 병합 유닛;
상기 병합 유닛으로부터 병합 결과를 수신하고, 특징 텐서(tensor) 및 가중치 텐서들을 생성하도록 구성된 디코더;
상기 디코더로부터 획득된 상기 특징 텐서 및 상기 가중치 텐서들에 기반하여, 순환 특징 필터링을 수행하도록 구성된 순환 리파인먼트 모듈(recurrent refinement module); 및
상기 디코더 또는 상기 순환 리파인먼트 모듈로부터 획득된 특징 텐서에 기반하여, 디블러링된 이미지를 재구성하도록 구성된 이미지 재구성 모듈; 을 포함하며,
상기 이미지 프로세싱 유닛은 이미지 전역적 시프트를 추정하고, 상기 추정에 기반하여 순환 리파인먼트 모듈을 활성화 또는 비활성화하도록 구성되는 이미지 프로세싱 유닛.
- 제5 항에 있어서,
상기 이미지 프로세싱 유닛은 인공 뉴럴 네트워크로서 구현되는 이미지 프로세싱 유닛.
- 이미지 프로세싱 유닛에 의해 수행되는 이미지 프로세싱을 위한 방법에 있어서,
블러리 이미지를 수신하고, 블러가 균일한지 또는 동적인지를 결정하기 위해 전역적 시프트를 추정하는 단계;
입력 블러리 이미지 데이터에 기반하여, 인코더에 의해 입력 이미지의 전역적 특징 맵을 생성하는 단계;
이미지 캡처 시의 이미지 캡처링 유닛의 움직임을 특성화하는 블러 정보와 상기 입력 이미지의 상기 전역적 특징 맵을 병합하는 단계;
상기 병합의 결과들에 기반하여, 디코더에 의해 특징 텐서 및 가중치 텐서들을 생성하는 단계;
이미지 블러링이 균일한 경우, 상기 특징 텐서에 기반하여, 이미지 재구성 모듈에 의해 디블러링된 이미지(deblurred image)를 재구성하는 단계; 및
상기 이미지 블러링이 동적인 경우, 생성된 텐서 특징 및 가중치 텐서들에 기반하여, 순환 리파인먼트 모듈에 의해 순환 특징 필터링을 수행하고, 획득된 필터링된 특징 텐서에 기반하여, 상기 이미지 재구성 유닛에 의해 상기 디블러링된 이미지를 재구성하는 단계; 를 포함하는 이미지 프로세싱을 위한 방법.
- 제7 항에 있어서,
상기 순환 특징 필터링은 4개의 RNN 동작들을 포함하는 이미지 프로세싱을 위한 방법.
- 제8 항에 있어서,
상기 디코더는 16개의 가중치 텐서들을 생성하고, 각각의 RNN 동작은 4개의 순환 이미지 스위프(sweep)들을 포함하는 이미지 프로세싱을 위한 방법.
- 제8 항에 있어서,
상기 디코더는 8개의 가중치 텐서들을 생성하고, 각각의 RNN 동작은 힐버트 곡선(Hilbert curve)인 곡선을 따르는 2개의 순환 이미지 스위프들을 포함하는 이미지 프로세싱을 위한 방법.
- 제7 항에 있어서,
상기 순환 필터링은 1개의 RNN 동작을 포함하는 이미지 프로세싱을 위한 방법.
- 제11 항에 있어서,
상기 디코더는 4개의 가중치 텐서들을 생성하고, 상기 RNN 동작은 4개의 순환 이미지 스위프들을 포함하는 이미지 프로세싱을 위한 방법.
- 제11 항에 있어서,
상기 디코더는 2개의 가중치 텐서들을 생성하고, 상기 RNN 동작은 힐버트 곡선인 곡선을 따르는 2개의 순환 이미지 스위프들을 포함하는 이미지 프로세싱을 위한 방법.
- 제7 항에 있어서,
상기 입력 블러리 이미지 상의 균일한 블러 이미지 영역들과 관련된 픽셀들을 필터링하고, 상기 순환 리파인먼트 모듈에 의해 동적 블러 이미지 영역들과 관련된 픽셀들을 프로세싱한 후에, 출력 디블러링된 이미지를 생성하기 위해 상기 이미지 재구성 모듈에서 상기 균일한 블러 이미지 영역들과 프로세싱된 동적 블러 이미지 영역들을 연관시키는 단계를 포함하는 이미지 프로세싱을 위한 방법.
- 제7 항에 있어서,
상기 이미지 캡처링 유닛으로부터 블러리 이미지 데이터를 수신하는 단계를 포함하는 이미지 프로세싱을 위한 방법.
- 제15 항에 있어서,
상기 이미지 캡처링 유닛의 움직임 센서로부터 블러 정보를 획득하는 단계를 포함하는 이미지 프로세싱을 위한 방법.
- 제15 항에 있어서,
상기 이미지 캡처링 유닛보다 더 높은 프레임 캡처 레이트 및 더 낮은 해상도를 갖는 선택적인 카메라에 의해 캡처된 이미지들의 시퀀스를 획득하고, 획득된 이미지 시퀀스에 기반하여 상기 이미지 캡처링 유닛의 움직임을 추정하고, 상기 움직임 정보를 블러 정보로서 사용하는 단계를 더 포함하는 이미지 프로세싱을 위한 방법.
- 제16 항에 있어서,
하나의 평면에서만 상기 이미지 캡처링 유닛의 움직임에 대한 블러 정보를 획득하는 단계를 포함하는 이미지 프로세싱을 위한 방법.
- 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서,
상기 전자 장치의 제어 방법은,
블러링(blurring)된 영역을 포함하는 이미지 및 상기 이미지를 획득하는 동안의 카메라 움직임에 관련된 블러 정보(blur information)를 제1 신경망 모델에 입력하여, 상기 이미지에 대응되는 제1 특징 정보 및 상기 특징 정보에 대응되는 가중치 정보를 획득하는 단계;
상기 이미지에 포함된 적어도 하나의 오브젝트의 움직임에 관련된 전역적 시프트 정보(global shift information)를 획득하여, 상기 전역적 시프트 정보를 바탕으로 상기 이미지에 포함된 장면이 동적인 장면인지 여부를 식별하는 단계;
상기 이미지에 포함된 장면이 동적인 장면으로 식별되면, 제2 신경망 모델을 통해 상기 제1 특징 정보 및 상기 가중치 정보를 바탕으로 순환 필터링 과정을 수행하여 상기 제1 특징 정보가 필터링된 제2 특징 정보를 획득하는 단계; 및
상기 제2 특징 정보를 제3 신경망 모델에 입력하여 상기 블러링된 영역이 디블러링된 이미지를 획득하는 단계; 를 포함하는 컴퓨터 판독 가능 기록매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21832503.3A EP4150562A4 (en) | 2020-07-02 | 2021-06-29 | ELECTRONIC DEVICE AND CONTROL METHOD FOR ELECTRONIC DEVICE |
PCT/KR2021/008159 WO2022005157A1 (en) | 2020-07-02 | 2021-06-29 | Electronic device and controlling method of electronic device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020121995 | 2020-07-02 | ||
RU2020121995A RU2742346C1 (ru) | 2020-07-02 | 2020-07-02 | Устранение размытия изображения |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220003946A true KR20220003946A (ko) | 2022-01-11 |
Family
ID=74554746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200138644A KR20220003946A (ko) | 2020-07-02 | 2020-10-23 | 전자 장치 및 전자 장치의 제어 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20220003946A (ko) |
RU (1) | RU2742346C1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220156891A1 (en) * | 2020-11-16 | 2022-05-19 | Zhixiang Chi | Methods and systems for deblurring blurry images |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101871098B1 (ko) * | 2017-01-12 | 2018-06-25 | 포항공과대학교 산학협력단 | 이미지 처리 방법 및 장치 |
CN107133948B (zh) * | 2017-05-09 | 2020-05-08 | 电子科技大学 | 基于多任务卷积神经网络的图像模糊与噪声评测方法 |
CN108230264B (zh) * | 2017-12-11 | 2020-05-15 | 华南农业大学 | 一种基于ResNet神经网络的单幅图像去雾方法 |
-
2020
- 2020-07-02 RU RU2020121995A patent/RU2742346C1/ru active
- 2020-10-23 KR KR1020200138644A patent/KR20220003946A/ko unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220156891A1 (en) * | 2020-11-16 | 2022-05-19 | Zhixiang Chi | Methods and systems for deblurring blurry images |
US11741579B2 (en) * | 2020-11-16 | 2023-08-29 | Huawei Technologies Co., Ltd. | Methods and systems for deblurring blurry images |
Also Published As
Publication number | Publication date |
---|---|
RU2742346C1 (ru) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12008797B2 (en) | Image segmentation method and image processing apparatus | |
US10861225B2 (en) | Neural network processing for multi-object 3D modeling | |
JP7236545B2 (ja) | ビデオターゲット追跡方法と装置、コンピュータ装置、プログラム | |
CN110062934B (zh) | 使用神经网络确定图像中的结构和运动 | |
CN109325954B (zh) | 图像分割方法、装置及电子设备 | |
US20200372622A1 (en) | Utilizing an image exposure transformation neural network to generate a long-exposure image from a single short-exposure image | |
CN107507126B (zh) | 一种利用rgb图像还原3d场景的方法 | |
KR102499147B1 (ko) | 이미지 처리 모델을 트레이닝하는 방법, 이미지 처리 방법, 네트워크 디바이스 및 저장 매체 | |
US20210326650A1 (en) | Device for generating prediction image on basis of generator including concentration layer, and control method therefor | |
US20180181796A1 (en) | Image processing method and apparatus | |
US11074438B2 (en) | Disentangling human dynamics for pedestrian locomotion forecasting with noisy supervision | |
CN111771226A (zh) | 电子设备、其图像处理方法及计算机可读记录介质 | |
JP2023162341A (ja) | 拡張データによって機械モデルを訓練するためのシステムおよび方法 | |
US20220005160A1 (en) | Electronic device and controlling method of electronic device | |
KR20200135102A (ko) | 영상 처리 장치 및 그 영상 처리 방법 | |
US20220156943A1 (en) | Consistency measure for image segmentation processes | |
CN113807361B (zh) | 神经网络、目标检测方法、神经网络训练方法及相关产品 | |
US10986287B2 (en) | Capturing a photo using a signature motion of a mobile device | |
JP2021015479A (ja) | 行動認識装置、行動認識方法、及び行動認識プログラム | |
Sharif et al. | DarkDeblur: Learning single-shot image deblurring in low-light condition | |
KR20220003946A (ko) | 전자 장치 및 전자 장치의 제어 방법 | |
CN108876812B (zh) | 用于视频中物体检测的图像处理方法、装置及设备 | |
US20230245344A1 (en) | Electronic device and controlling method of electronic device | |
Pan et al. | Self-supervised motion magnification by backpropagating through optical flow | |
US20220114740A1 (en) | Camera motion information based three-dimensional (3d) reconstruction |