KR20230101872A - 이미지에서 블러를 제거하기 위한 시스템, 장치 및 방법 - Google Patents
이미지에서 블러를 제거하기 위한 시스템, 장치 및 방법 Download PDFInfo
- Publication number
- KR20230101872A KR20230101872A KR1020237018822A KR20237018822A KR20230101872A KR 20230101872 A KR20230101872 A KR 20230101872A KR 1020237018822 A KR1020237018822 A KR 1020237018822A KR 20237018822 A KR20237018822 A KR 20237018822A KR 20230101872 A KR20230101872 A KR 20230101872A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- blur
- filter
- deblurring
- estimating
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 125000001475 halogen functional group Chemical group 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims description 56
- 230000006870 function Effects 0.000 claims description 26
- 230000009471 action Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 22
- 238000001914 filtration Methods 0.000 description 19
- 238000011045 prefiltration Methods 0.000 description 18
- 238000003860 storage Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000002829 reductive effect Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000002238 attenuated effect Effects 0.000 description 5
- 239000000654 additive Substances 0.000 description 4
- 230000000996 additive effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 150000004820 halides Chemical class 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 206010047571 Visual impairment Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000009125 cardiac resynchronization therapy Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000009466 transformation Effects 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/73—Deblurring; Sharpening
-
- G06T5/003—
-
- G06T5/002—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- 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
-
- 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
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
이미지를 디블러링하기 위한 시스템, 장치 및 방법이 제시된다. 하나의 방법은 이미지를 수신하는 단계 및 이미지에 대한 블러를 추정하는 단계를 포함한다. 방법은 또한 디블러링 필터를 이미지에 적용하는 단계 및 이미지로부터 후광을 감소시키는 단계를 포함한다.
Description
본 출원은 2020년 11월 16일에 출원된 미국 가출원 번호 63/114,314의 이익을 주장하며, 그 전문은 전체적으로 참조로 본 명세서에 포함된다.
본 명세서에서 달리 명시되지 않는 한, 본 섹션에 기술된 자료는 본 출원의 청구범위에 대한 선행 기술이 아니며 본 섹션에 포함됨으로써 선행 기술로 인정되지 않는다.
이미지 캡처 기술의 최근 발전은 카메라 디바이스의 확산을 이끌었고, 결과적으로 사용자들에 의해 생성되는 디지털 사진의 수가 크게 증가했다. 그러나, 셀룰러 및 스마트폰의 카메라와 같은 많은 카메라에는 정교한 기계적 또는 전기적 포커싱 및 안정화 메커니즘이 없을 수 있다. 그 결과, 캡처된 많은 이미지가 흐릿하여(blurry) 이미지에 대한 사용자 만족도가 감소할 수 있다.
이미지에서 블러(blur, 흐릿함)를 제거하는 것은 이미지 처리 및 컴퓨터 사진 촬영에서 오랜 문제였다. 블러는 카메라의 초점이 제대로 조정되지 않았거나(예를 들어, 초점이 맞지 않음), 객체가 상이한 깊이감으로 나타나거나, 카메라와 장면 사이에 상대적인 움직임이 발생할 때와 같은 다양한 요인으로 인해 발생할 수 있다. 완벽한 조건에서도, 블러를 유발하는 피할 수 없는 물리적 제한이 있을 수 있다. 예를 들어, 유한한 렌즈 조리개로 인한 빛의 회절, 센서의 빛 통합 및 기타 가능한 렌즈 수차로 인해 블로가 유발되어 디테일(세부정보)이 손실될 수 있다. 추가적으로, 디모자이킹 및 노이즈 제거와 같은 이미지 처리 파이프라인 자체의 다른 구성 요소로 인해 블러가 발생할 수 있다.
이미지 블러는 일반적으로 선명한 잠상에 작용하는 선형 연산자로 모델링될 수 있다. 선형 연산자가 이동 불변(shift-invariant)인 경우, 블러링 동작은 블러 커널과의 컨볼루션에 해당한다. 캡처된 이미지에는 블러 위에 가산적 노이즈가 있을 것이라고 자주 가정한다. 이것은 v = k*u + n을 의미하는데, 여기서 v는 캡처된 이미지이고, u는 기본(underlying) 선명한 이미지이고, k는 알 수 없는 블러 커널이 있는 컨볼루션이며, n은 가산적 노이즈이다.
이미지 디블러링은 통상적으로 블라인드 디컨볼루션(blind deconvolution)의 접근법에 의해 다루어진다. 대부분의 블라인드 디컨볼루션 방법은 2단계 프로세스를 포함한다. 첫 번째 단계에서, 블러 커널이 추정된다. 이것은 변형 프레임워크를 사용하여 선명한 이미지 모델을 가정함으로써 수행될 수 있다. 두 번째 단계에서는 비블라인드(non-blind) 디컨볼루션 알고리즘이 적용된다. 이미지 노이즈는 두 단계를 모두 심각하게 방해할 수 있다. 따라서, 블라인드 디컨볼루션 접근법의 중요한 문제는 블러 커널이 완벽하게 알려진 경우에도, 노이즈 및 모델 불일치의 존재로 인해 아티팩트가 발생할 수 있다는 것이다.
본 발명의 실시예는 이미지에서 블러를 제거하기 위한 시스템, 방법 및 장치를 제공한다. 본 발명의 시스템, 방법 및 장치는 다양한 방식으로 구현될 수 있음을 이해해야 한다. 본 발명의 여러 실시예가 아래에서 설명된다.
일 양태에서, 이미지를 디블러링하는 방법이 설명된다. 이 방법은 이미지를 수신하는 단계 및 이미지에 대한 블러를 추정하는 단계를 포함한다. 방법은 또한 디블러링 필터를 이미지에 적용하는 단계 및 이미지에서 후광을 감소시키는 단계를 포함한다.
다른 양태에서, 본 출원은 메모리 및 하나 이상의 프로세서를 포함하는 장치를 설명한다. 하나 이상의 프로세서는 이미지를 수신하고 이미지에 대한 블러를 추정하도록 구성될 수 있다. 하나 이상의 프로세서는 또한 디블러링 필터를 이미지에 적용하고 이미지로부터 후광을 감소시키도록 구성될 수 있다.
또 다른 측면에서, 명령들이 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 매체가 개시된다. 동작들은 이미지를 수신하는 동작 및 이미지에 대한 블러를 추정하는 동작을 포함할 수 있다. 동작들에는 이미지에 디블러링 필터를 적용하는 동작 및 이미지에서 후광을 감소시키는 동작도 포함된다.
이들 뿐만 아니라 다른 양태, 이점 및 대안은 적절한 경우 첨부된 도면을 참조하여 다음의 상세한 설명을 읽음으로써 당업자에게 명백해질 것이다. 또한, 본 명세서에 제공된 이 요약 및 기타 설명 및 도면은 단지 예로서 실시예를 예시하기 위한 것이며, 따라서 수많은 변형이 가능하다는 것을 이해해야 한다. 예를 들어, 구조적 요소 및 공정 단계는 청구된 실시예의 범위 내에서 재배열, 결합, 분배, 제거 또는 변경될 수 있다.
이제 첨부된 도면 및 흐름도를 참조할 것이며, 반드시 일정한 비율로 그려지지는 않을 것이다.
도 1은 예시적인 실시예에 따른 컴퓨팅 디바이스의 예시를 도시한다.
도 2는 예시적인 실시예에 따른 이미지 처리 시스템의 단순화된 블록도이다.
도 3은 예시적인 실시예에 따른 예시적인 방법의 예시적인 흐름도를 도시한다.
도 4는 예시적인 구현에 따른 컴퓨터 프로그램의 개략도이다.
도 1은 예시적인 실시예에 따른 컴퓨팅 디바이스의 예시를 도시한다.
도 2는 예시적인 실시예에 따른 이미지 처리 시스템의 단순화된 블록도이다.
도 3은 예시적인 실시예에 따른 예시적인 방법의 예시적인 흐름도를 도시한다.
도 4는 예시적인 구현에 따른 컴퓨터 프로그램의 개략도이다.
예시적인 방법, 장치 및 시스템이 본 명세서에서 설명된다. 본 명세서에 사용된 "예" 및 "예시적인"이라는 단어는 "예, 실례 또는 예시 역할을 하는 것"을 의미하는 것으로 이해되어야 한다. "예", "예시적인(exemplary)" 및/또는 "예시적인(illustrative)" 것으로 본 명세서에 기술된 임의의 실시예 또는 특징은 그렇게 언급되지 않는 한 반드시 다른 실시예 또는 특징보다 바람직하거나 유리한 것으로 해석되어서는 안 된다. 따라서, 다른 실시예가 이용될 수 있고, 본 명세서에 제시된 주제의 범위를 벗어나지 않고 다른 변경이 이루어질 수 있다.
따라서, 본 명세서에 기술된 예시적인 실시예는 제한하려는 것이 아니다. 본 명세서에 일반적으로 기술되고 도면에 예시된 바와 같은 본 발명의 양태는 매우 다양한 상이한 구성으로 배열, 대체, 조합, 분리 및 설계될 수 있음을 쉽게 이해할 것이다.
또한, 문맥상 달리 제시되지 않는 한, 각 도면에 도시된 특징은 서로 조합하여 사용될 수 있다. 따라서, 도면은 일반적으로 하나 이상의 전체 실시예의 구성 요소 측면으로 간주되어야 하며, 모든 예시된 특징이 각각의 실시예에 필요한 것은 아니라는 점을 이해해야 한다.
게다가, 본 명세서 또는 청구범위에서 요소, 블록 또는 단계의 열거는 명확성을 위한 것이다. 따라서, 이러한 열거는 이러한 요소, 블록 또는 단계가 특정 배열을 준수하거나 특정 순서로 수행되는 것을 요구하거나 암시하는 것으로 해석되어서는 안 된다. 달리 명시되지 않는 한, 도면들은 축척대로 그려지지 않았다.
다음 실시예는 이미지에서 블러를 제거하기 위한 시스템, 장치 및 방법을 설명한다. 이제 도면을 참조하면, 도 1은 예시적인 구현에 따른 이미지에서 블러를 제거하기 위한 컴퓨팅 디바이스(100)의 예시를 도시한다. 컴퓨팅 디바이스(100)는 카메라, 모바일 디바이스, 개인용 컴퓨터 시스템, 데스크탑 컴퓨터, 랩탑, 노트북, 넷북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 셋탑 박스, 휴대폰, 비디오 게임 콘솔, 핸드헬드 비디오 게임 디바이스, 애플리케이션 서버, 저장 디바이스, 웨어러블 컴퓨팅 디바이스(예를 들어, 카메라가 장착된 안경, 헤드 마운트 디스플레이 및/또는 증강 현실 디스플레이), 스위치, 모뎀, 라우터 또는 일반적으로 모든 유형의 컴퓨팅 또는 전자 디바이스 등과 같은 주변 디바이스일 수 있다. 도 1에 도시된 바와 같이, 컴퓨팅 디바이스(100)는 통신 인터페이스(102), 사용자 인터페이스(104), 프로세서(106), 데이터 저장소(108)를 포함할 수 있으며, 이들 모두는 시스템 버스, 네트워크 또는 기타 연결 메커니즘(110)에 의해 함께 통신 가능하게 연결되거나 결합될 수 있다.
컴퓨팅 디바이스(100)의 통신 인터페이스(102)는 컴퓨팅 디바이스(100)가 아날로그 또는 디지털 변조를 사용하여 다른 디바이스, 액세스 네트워크 및/또는 전송 네트워크와 통신할 수 있도록 기능할 수 있다. 따라서, 통신 인터페이스(102)는 POTS 통신 및/또는 IP 또는 다른 패킷화된 통신과 같은 회선 교환 및/또는 패킷 교환 통신을 용이하게 할 수 있다. 예를 들어, 통신 인터페이스(102)는 무선 액세스 네트워크 또는 액세스 포인트와의 무선 통신을 위해 배열된 칩셋 및 안테나를 포함할 수 있다. 또한, 통신 인터페이스(102)는 이더넷, 토큰 링 또는 USB 포트와 같은 유선 인터페이스의 형태를 취할 수 있다. 통신 인터페이스(102)는 또한 Wifi, 블루투스, GPS 또는 광역 무선 인터페이스(예를 들어, WiMAX 또는 LTE)와 같은 무선 인터페이스의 형태를 취할 수 있다. 그러나, 다른 형태의 물리 계층 인터페이스와 다른 유형의 표준 또는 독점 통신 프로토콜이 통신 인터페이스(102)를 통해 사용될 수 있다. 게다가, 통신 인터페이스(102)는 다수의 물리적 통신 인터페이스(예를 들어, Wifi 인터페이스, 블루투스인터페이스 및 광역 무선 인터페이스)를 포함할 수 있다.
컴퓨팅 디바이스(100)의 사용자 인터페이스(104)는 컴퓨팅 디바이스(100)가 사용자로부터 입력을 수신하고 사용자에게 출력을 제공하는 것과 같이 인간 또는 인간이 아닌 사용자와 상호 작용할 수 있도록 기능할 수 있다. 사용자 인터페이스(104)는 키패드, 키보드, 터치 감지 또는 존재 감지 패널, 컴퓨터 마우스, 트랙볼, 조이스틱, 마이크로폰, 스틸 카메라 및/또는 비디오 카메라와 같은 입력 컴포넌트(구성요소)를 포함할 수 있다. 사용자 인터페이스(104)는 또한 디스플레이 스크린(예를 들어, 터치 감지 패널과 결합될 수 있음), CRT, LCD, LED, DLP 기술을 사용하는 디스플레이, 프린터, 전구, 및/또는 현재 알려져 있거나 나중에 개발될 다른 유사한 디바이스와 같은 하나 이상의 출력 컴포넌트를 포함할 수 있다. 사용자 인터페이스(104)는 또한 스피커, 스피커 잭, 오디오 출력 포트, 오디오 출력 디바이스, 이어폰, 및/또는 현재 알려져 있거나 나중에 개발될 기타 유사한 디바이스를 통해 가청 출력(들)을 생성하도록 구성될 수 있다. 일부 실시예에서, 사용자 인터페이스(104)는 소프트웨어, 회로, 또는 외부 사용자 입/출력 디바이스로 데이터를 전송 및/또는 외부 사용자 입/출력 디바이스로부터 데이터를 수신할 수 있는 다른 형태의 로직을 포함할 수 있다. 추가적으로 또는 대안적으로, 컴퓨팅 디바이스(100)는 통신 인터페이스(102)를 통해 또는 다른 물리적 인터페이스(미도시)를 통해 다른 디바이스로부터의 원격 액세스를 지원할 수 있다.
일부 예에서, 사용자 인터페이스(104)는 또한 컴퓨팅 디바이스(100)에 의해 지원되는 스틸 카메라 및/또는 비디오 카메라 기능을 위한 뷰파인더 역할을 할 수 있다. 추가적으로, 사용자 인터페이스(104)는 카메라 기능의 구성 및 포커싱 및 이미지 캡처를 용이하게 하는 하나 이상의 버튼, 스위치, 노브 및/또는 다이얼을 포함할 수 있다. 일부 구현에서, 이러한 버튼, 스위치, 노브 및/또는 다이얼의 일부 또는 전부는 터치 또는 근접 감지 패널의 기능으로 구현된다.
컴퓨팅 디바이스(100)의 프로세서(106)는 하나 이상의 범용 프로세서(예를 들어, 마이크로프로세서) 및/또는 하나 이상의 특수 목적 프로세서(예를 들어, 디지털 신호 프로세서(DSP), 그래픽 처리 장치(GPU), 부동 소수점 장치(FPU), 네트워크 프로세서, 또는 주문형 집적 회로(ASIC))를 포함할 수 있다. 프로세서(106)는 본 명세서에 설명된 다양한 기능을 수행하기 위해 데이터 저장소(108)에 저장된 프로그램 명령(118)(예를 들어, 컴파일되거나 컴파일되지 않은 프로그램 논리 및/또는 기계 코드)을 실행할 수 있다.
컴퓨팅 디바이스(100)의 데이터 저장소(108)는 자기, 광학, 플래시 또는 유기 저장소와 같은 하나 이상의 휘발성 및/또는 비휘발성 스토리지 구성요소를 포함할 수 있고 프로세서(106)와 전체적으로 또는 부분적으로 통합될 수 있다. 데이터 저장소(108)는 탈착 가능 및/또는 탈착 불가능한 컴포넌트를 포함할 수 있다. 또한, 데이터 저장소(108)는 컴퓨팅 디바이스(100)에 의해 실행될 때 컴퓨팅 디바이스(100)로 하여금 본 명세서 및/또는 첨부된 도면에 개시된 임의의 방법, 프로세스, 기술 및/또는 기능을 수행하게 하는 프로그램 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 프로세서(106)에 의한 프로그램 명령(118)의 실행은 프로세서(106)가 데이터(112)를 사용하게 할 수 있다.
예로서, 프로그램 명령(118)은 운영 체제(122)(예를 들어, 운영 체제 커널, 디바이스 드라이버(들) 및/또는 기타 모듈) 및 컴퓨팅 디바이스(100)에 설치된 하나 이상의 애플리케이션 프로그램(120)(예를 들어, 주소록, 이메일, 웹 브라우징, 소셜 네트워킹 및/또는 게임 애플리케이션)을 포함할 수 있다. 유사하게, 데이터(112)는 애플리케이션 데이터(114) 및 운영 체제 데이터(116)를 포함할 수 있다. 운영 체제 데이터(116)는 운영 체제(122)에 주로 액세스 가능할 수 있고, 애플리케이션 데이터(114)는 하나 이상의 애플리케이션 프로그램(120)에 주로 액세스 가능할 수 있다. 애플리케이션 데이터(114)는 컴퓨팅 디바이스(100)의 사용자에게 보이거나 숨겨진 파일 시스템에 배치될 수 있다.
애플리케이션 프로그램(120)은 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)를 통해 운영 체제(122)와 통신할 수 있다. 이들 API는 예를 들어 애플리케이션 프로그램(120)이 애플리케이션 데이터(114)를 판독 및/또는 기록하고, 통신 인터페이스(102)를 통해 정보를 전송 또는 수신하고, 사용자 인터페이스(102)에서 정보를 수신 또는 디스플레이하는 등을 용이하게 할 수 있다.
일부 모국어에서, 애플리케이션 프로그램(120)은 간단히 "앱"으로 지칭될 수 있다. 부가적으로, 애플리케이션 프로그램(120)은 하나 이상의 온라인 애플리케이션 스토어 또는 애플리케이션 마켓을 통해 컴퓨팅 디바이스(100)에 다운로드 가능할 수 있다. 그러나, 애플리케이션 프로그램(120)은 또한 웹 브라우저를 통하거나 컴퓨팅 디바이스(100)의 물리적 인터페이스(예를 들어, USB 포트)를 통하는 것과 같은 다른 방식으로 컴퓨팅 디바이스(100)에 설치될 수도 있다.
컴퓨팅 디바이스(100)는 또한 카메라 컴포넌트(미도시)를 포함할 수 있다. 카메라 컴포넌트는 조리개, 셔터, 기록면(예를 들어, 사진 필름 및/또는 이미지 센서), 렌즈 및/또는 셔터 버튼을 포함할 수 있지만 이에 한정되지 않는다. 카메라 컴포넌트는 프로세서(106)에 의해 실행되는 소프트웨어에 의해 적어도 부분적으로 제어될 수 있다. 또한, 카메라 컴포넌트는 조리개, 셔터, 기록면 렌즈, 이미지 센서, 프로세서 및/또는 셔터 버튼을 각각 포함하는 다중 카메라 시스템을 포함할 수 있다.
도 2는 일 실시예에 따른 블러 제거 프로세스를 수행하기 위한 이미지 처리 시스템 또는 엔진(202)의 예시적인 단순화된 블록도를 도시한다. 이미지 처리 시스템(202)은 카메라, 모바일 디바이스, 개인용 컴퓨터 시스템, 데스크탑 컴퓨터, 랩탑, 노트북, 넷북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 셋탑 박스, 휴대폰, 비디오 게임 콘솔, 핸드헬드 비디오 게임 디바이스, 애플리케이션 서버, 저장 디바이스, 웨어러블 컴퓨팅 디바이스(예를 들어, 카메라가 장착된 안경, 헤드 마운트 디스플레이 및/또는 증강 현실 디스플레이), 주변 디바이스(예를 들어, 스위치, 모뎀, 라우터), 또는 일반적으로 임의의 유형의 컴퓨팅 또는 전자 디바이스 등에 의해 구현되거나 통합될 수 있다. 이미지 처리 시스템(202)은 프리 필터(pre-filter) 또는 전처리 모듈(204)(예를 들어, 노이즈 제거 엔진) 및 블러 제거 모듈(206)을 포함하는 다양한 컴포넌트를 포함할 수 있다. 프리 필터 모듈(204)은 선택적 컴포넌트(점선 윤곽선으로 표시됨)일 수 있다. 예를 들어, 일부 경우, 프리 필터 모듈(204)(예를 들어, 노이즈 제거 엔진)이 이미지 처리 시스템(202)에 포함되거나 그에 의해 사용될 수 있으며, 다른 경우에는 이미지 처리 시스템(202)에서 생략되거나 사용되지 않을 수 있다.
이미지 처리 시스템(202)의 컴포넌트는 하나 이상의 프로그래밍 가능한 전자 회로(예를 들어, 마이크로프로세서, 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP), 중앙 처리 장치(CPU) 및/또는 기타 적절한 전자 회로)를 포함할 수 있는 전자 회로 또는 기타 전자 하드웨어를 포함할 수 있고, 및/또는 본 명세서에 설명된 다양한 동작을 수행하기 위해 컴퓨터 소프트웨어, 펌웨어 또는 이들의 조합을 포함할 수 있고/있거나 이를 사용하여 구현될 수 있다. 예를 들어, 프리 필터 모듈(202) 및 블러 제거 모듈(206)은 컴퓨터 판독 가능 저장 매체에 저장될 수 있고 본 명세서에 기술된 기능을 수행하기 위해 컴퓨터 시스템의 프로세서에 의해 실행될 수 있다. 이미지 처리 시스템(202)이 특정 컴포넌트를 포함하는 것으로 도시되어 있지만, 당업자는 이미지 처리 시스템(202)이 도 2에 도시된 것보다 더 많거나 더 적은 컴포넌트를 포함할 수 있음을 이해할 것이다. 예를 들어, 이미지 처리 시스템(202)은 일부 경우에 하나 이상의 메모리 디바이스(예를 들어, RAM, ROM, 캐시, 버퍼 등) 및/또는 도 2에 도시되지 않은 처리 디바이스를 포함할 수도 있다.
이미지 처리 시스템(202)은 입력 이미지를 수신할 수 있다. 입력 이미지는 이미지로부터 노이즈를 감소시키거나 제거하기 위해 프리 필터 모듈(202)에 의해 처리될 수 있다. 예를 들어, 프리 필터 모듈(204)은 입력 이미지의 노이즈를 제거하여 노이즈 감소된 이미지를 생성할 수 있다. 프리 필터 모듈(204)은 입력 이미지로부터 노이즈를 감소시키거나 제거하기 위해 필터링하는 비-로컬 수단을 포함할 수 있다. 다른 실시예에서, 프리 필터 모듈(204)은 노이즈 제거(denoising) 신경망(예를 들어, 컨벌루션 신경망 또는 다른 적합한 신경망)을 사용하여 입력 이미지로부터 노이즈를 제거하거나 감소시킬 수 있다. 이러한 경우, 노이즈 제거 신경망은 동일한 이미지의 클린(clean) 버전과 함께 여러 노이즈 버전의 이미지를 입력함으로써 트레이닝할 수 있다. 알려진 입력(노이즈 이미지)와 알려진 출력(클린 이미지)을 사용하여, 노이즈 제거 신경망은 신경망에 입력되는 노이즈 이미지로부터 클린 이미지(노이즈 감소된 이미지)를 출력할 수 있도록 파라미터(예를 들어, 가중치, 편향 등)를 조정할 수 있다. 노이즈가 감소된 결과 이미지에는 노이즈가 없거나 여전히 약간의 노이즈가 있을 수 있지만 노이즈 제거 신경망에 의해 노이즈가 크게 감소될 수 있다.
일부 실시예에서, 프리 필터 모듈(204)은 다른 노이즈 제거 기술을 사용하여 노이즈 감소된 이미지를 생성할 수 있다. 일부 예에서, 노이즈 제거 기술에는 AIM 엔진 노이즈 제거-업스케일-다운스케일(Denoise-Upscale-Downscale), 중간값 필터링, 비등방성 확산, 기하 평균 필터링, 로컬 평균 필터링, 양방향 필터링, 블록 매칭 및 3차원(3D) 필터링, 로컬 픽셀 그룹화, 위너(Wiener) 필터를 사용한 필터링, 이들의 임의의 조합, 및/또는 임의의 다른 적합한 노이즈 필터링 기술이 포함될 수 있다.
또한, 프리 필터 모듈(204)은 이미지를 정규화하고 이미지의 동적 범위를 결정하기 위한 동작을 수행할 수 있다. 예를 들어, 프리 필터 모듈(204)은 처리된 이미지가 기정의된 콘트라스트 및 표준 편차 값을 갖도록 입력 이미지의 밝기를 정규화할 수 있다. 프리 필터 모듈(204)은 이미지의 동적 범위 및 노이즈에 기초하여 블러 검출 처리를 수행할지 여부를 추가로 결정할 수 있다. 이미지에 노이즈가 너무 많거나 동적 범위가 너무 낮은 경우, 프리 필터 모듈(204)은 이미지를 폐기하도록 구성될 수 있다. 프리 필터 모듈이 블러 검출 처리가 수행될 수 있다고 결정하는 경우, 이미지로부터 블러를 제거하기 위한 추가 처리 단계가 블러 제거 모듈(206)에 의해 수행될 수 있다.
이미지 처리 시스템(202)의 블러 제거 모듈(206)은 이미지의 블러를 추정하고, 입력 이미지의 블러를 제거하고, 후광(halo)을 감소시킨다. 블러 제거 모듈(206)은 블러 제거 모듈(206)의 블러 추정 모듈(208), 디블러링(블러 제거) 모듈(210) 및 후광 제거 모듈(212)을 포함할 수 있다. 블러 추정 모듈(208)은 이미지의 블러를 추정하도록 구성될 수 있다. 블러 추정 모듈(208)은 입력 이미지를 수신할 수 있거나 프리 필터 모듈(204)로부터 노이즈 감소된 이미지를 수신할 수 있다. 블러 추정 모듈(208)은 수신된 이미지를 분석하여 블러 정도를 결정할 수 있다. 수신된 이미지가 너무 많은 블러를 갖는 경우, 블러 추정 모듈(208)은 아래에서 추가로 설명되는 바와 같이 수신된 이미지를 폐기할 수 있다. 그러나, 수신된 이미지에 약한 블러(mild-blur)가 있는(예를 들어, 블러가 임계값 미만인) 경우, 블러 추정 모듈(208)은 수신된 이미지에 대한 동작들을 수행하여 블러를 추정할 수 있다.
일 실시예에서, 블러 추정 모듈(208)은 가우시안 함수의 파라미터에 기초하여 수신된 이미지의 블러를 모델링할 수 있다. 이미지의 블러가 전체 이미지에 걸쳐 균일하고 이미지 블러가 선형 모델 v = k*u + n으로 모델링될 수 있다고 가정할 수 있다. 여기서 v는 캡처된 이미지이고, u는 기본 선명한 이미지이고, k는 알 수 없는 블러 커널이 있는 컨볼루션이고, n은 가산적 노이즈이다. 블러 추정 모듈(208)은 블러 커널이 작을 것으로 예상되는 약한 블러(예를 들어, 임계값 미만의 블러)를 처리하도록 설계될 수 있으므로, 블러 커널에 대해 파라메트릭 모델이 사용될 수 있다. 일 구현에서, 블러 커널은 비등방성 가우시안 함수로 모델링될 수 있으며 3개의 파라미터, 예를 들어 주축의 표준 편차(σ0), 주축과 직교 축의 표준 편차 간의 비율(ρ), 주축과 (수평) x축 사이의 각도(θ)로 지정될 수 있다. 따라서, 픽셀(x,y)에서 가우시안 블러 커널은 다음 방정식으로 계산될 수 있다.
블러 커널 모델을 이용하여 특정 이미지에 대한 블러 커널을 추정하기 위해, 이미지의 이미지 기울기(gradient, 구배) 분포에 대해 다음과 같은 가정을 할 수 있다. 예를 들어, 선명한(sharp) 내추럴 이미지의 임의의 방향에서 이미지 기울기의 최대값은 실질적으로 일정하고 이미지와 독립적일 수 있다고 가정될 수 있다. 또한 선명한 이미지가 가우시안 블러의 영향을 받는 경우 주(직교) 축 방향에서의 블러 레벨은 해당(직교) 방향에서 최대 이미지 기울기의 역수에 대해 선형 관계에 있을 수 있다고 가정될 수 있다. 이러한 가정에 기초하여, 이미지 도함수의 최대 크기는 가능한 모든 방향에서 추정될 수 있으며 그 중에서 최소값이 결정될 수 있다. 이는 다음 방정식으로 이어진다.
여기서 f(x)는 임의의 입력 이미지이다. 그런 다음
여기서 c는 기울기 특징과 블러 레벨 사이의 가정된 선형 관계를 제어하는 계수이다.
임의의 주어진 이미지 픽셀에서의 이미지 기울기의 추정은 (일종의 보간이 필요할 수 있기 때문에) 추가 블러를 유발할 수 있다. 이것은 이미지에 이미 포함된 이미지 블러에 추가(addition)될 수 있다. 블러 추정이 σb의 등방성 가우시안 블러를 유발한다고 가정하면, 이미지의 총 블러는 (가우시안 함수의 세미그룹 속성으로 인해) 대략 이 될 것이다. 이로 인해 다음이 발생한다.
여기서 c와 σb는 보정(교정)해야 하는 두 개의 파라미터이다.
일 구현에서, 파라미터(c 및 σb)는 다음과 같이 보정될 수 있다. 선명한 고품질 이미지 세트가 주어지면, 다수의 가우시안 블러 이미지(예를 들어, K = 1000)가 블러 공간과 이미지 세트를 무작위로 샘플링함으로써 시뮬레이션될 수 있다. 가우시안 블러 커널은 σ0∈[0.3, 4] 및 ρ∈[0.15, 1]에 대한 무작위 값을 샘플링함으로써 생성될 수 있다. σn = 3.0의 가산적 가우시안 화이트 노이즈가 각각의 시뮬레이션된 블러(blurry) 이미지에 추가될 수 있다. 블러 이미지 각각에 대해, 기울기 특징과 최대값 및 최소값이 위의 수학식 9에 따라 샘플링될 수 있다. 파라미터(c 및 σb)는 위의 수학식 10으로 추정될 수 있다. 다른 실시예에서, 다른 피팅 방식(예를 들어, 강력한 L1 피팅, Hubber 손실, 가중 최소 자승법 등)이 사용될 수 있다.
일 예에서, 블러 추정 모듈(204)은 다음과 같은 가우시안 블러 추정 절차를 수행하기 위한 알고리즘을 사용하여 구현될 수 있다: 이미지 u, q-분위수, n 각도, (a, b), (σmax,σmin), (ρmax, ρmin)를 입력으로 하고 파라미터(σ0, ρ, θ)를 출력으로 설정하자.
1. 입력 이미지를 정규화한다.
u = (u - umin)/(umax-umin)이고, 여기서 umax 및 umin은 견고한 최대 및 최소 분위수(q=0.0001 및 1-q)로 계산된다.
2. 기울기(gradient) 특징들을 계산한다.
이미지 기울기(ux,uy)를 계산한 다음 [0에서 pi)를 균일하게 커버하는 nangles(6)에서 방향 도함수를 계산한다. 이것은 uΨ = ux cos(Ψ) - uy sin(Ψ)을 계산함으로써 수행될 수 있다. 각 uΨ(x, y)에 대해, fΨ = max|uΨ|를 계산한다.
3. 기울기 특징들을 보간한다.
초해상 그리드(n개의 샘플)에서 3차원으로 (fΨ1, Ψ1),...,((fΨn, Ψn)을 보간하고 최소값과 각각의 각도를 추정한다. (f0, θ0)을 최소값으로 설정하고, (f1, θ0⊥) 방향 θ0⊥을 직교에서 특징값으로 설정한다.
4. 회귀 모델(예를 들어, 수학식 10)을 사용하여 σ0 및 σ1을 추정한다.
5. 파라미터들을 검증한다.
a. σ0 = clamp(σ0, σmin, σmax) 및 σ1 = clamp(σ1, σmin, σmax).
b. ρ=σ1/σ0 을 정의한다
c. ρ = clamp(ρ, ρmin,ρmax)
6. (σ0, ρ, θ0)을 반환한다.
또한, 블러 추정 모듈(208)은 블러의 정도를 나타내는 수신된 이미지에 대한 블러 스코어를 계산할 수 있다. 예를 들어, 블루 추정 모듈(208)에 의해 수신된 이미지가 분석될 수 있고 블러 스코어가 계산될 수 있다. 더 높은 블러 스코어는 이미지에서 더 큰 블러를 나타낼 수 있다. 추정된 가우시안 블러 파라미터가 주어지면, 블러 스코어는 다양한 방식으로 추정 또는 계산될 수 있다. 일 예에서, 블러 스코어는 추정된 가우시안과 동일한 공분산 행렬 결정자를 갖는 등방성 가우시안 블러의 표준 편차를 계산함으로써 결정될 수 있다. 이는 σ0 및 σ1에 의해 결정된 타원과 동일한 영역을 갖는 원의 반지름을 블러 스코어로 정의하는 것과 같다. 즉,
블러 스코어는 사전 결정된 임계값과 비교될 수 있다. 블러 스코어가 사전 결정된 임계값 미만인 경우, 이미지가 양호한/허용 가능한 품질이라고 결정될 수 있고 디블러링 모듈(208)에 의해 추가로 처리될 수 있다. 반면에 블러 스코어가 임계값보다 큰 것으로 결정되는 경우, 이미지는 폐기될 수 있다.
여전히 도 2를 참조하면, 이미지 처리 모듈(202)의 디블러링 모듈(208)은 블러 추정 모듈(206)로부터 이미지를 수신하여 그 이미지를 디블러링(블러 제거)한다. 디블러링 모듈(208)은 블러를 감소시키기 위해 디블러링 필터(예를 들어, 선형 복원 필터)를 이미지에 적용할 수 있다. 디블러링 필터는 블러 추정 모듈(206)에 의해 추정된 블러의 역수(inverse)에 기초하여 구성될 수 있다. 블러 이미지에서 블러 커널의 상이한 반복을 결합함으로써, 블러의 역함수는 다음과 같이 근사화될 수 있다. K를 블러 커널(k)이 있는 컨볼루션 연산자라고 하고 일부 행렬 놈(norm) 하에서 이면, K의 역수(K-1)는 다음과 같이 존재한다.
위의 수학식의 기하 급수는 컨볼루션에 대한 원형 경계 조건을 가정하면 수렴할 수 있으며, 행렬(K)의 고유 벡터는 푸리에 모드이다. 이는 (I-K)i = FH(I-D)iF임을 의미하며, 여기서 F는 푸리에 기저(Fourier basis)이고, FH는 F의 에르미트 전치(Hermitian transpose)이고, D는 고유값이 K인 대각 행렬이다. 따라서, K의 고유값이 D = {z ∈ C: |z-1| < 1}이면 급수가 수렴한다. 그러나, 블러가 비가역적이면, 즉 고유값이 0인 경우, 멱급수는 K의 의사 역수(pseudo-inverse)로 수렴할 수 있다. 전체 광도를 보존하는 블러 필터의 경우, 합리적인 가설은 k(x)≥0이고 이다. 이것은 임을 의미한다.
일 예에서, 역수는 베이스(base)로서 블러 커널을 사용하는 다항식 필터로 근사화될 수 있다. 예를 들어, 차수가 3인 멱급수를 절단(truncate)하는 경우, K의 다항식 근사 역수는 다음과 같이 나타낼 수 있다.
또한, 다음 수학식을 갖는 일반 다항식이 사용될 수 있다.
여기서 차수(d) 및 계수(a0,...,ad)는 블러가 특정 컴포넌트에 미치는 영향에 따라 다르게 증폭하거나 감쇠하도록 설계될 수 있다.
블러 필터 k(x)가 대칭 k(x) = k(-x)이고 음이 아닌 푸리에 계수를 갖는다고 가정하면, 필터(k)의 푸리에 계수()는 [0,1]에 있을 수 있다. 다항식 필터의 푸리에 계수는 동일한 다항식, 즉 아래 수학식을 통해 베이스 필터의 푸리에 계수와 관련될 수 있다.
다항식 필터는 푸리에 영역에서 분석될 수 있다. 다항식에 의해 매핑된 간격 I = [0, 1]에 기초하여, 감쇠된 푸리에 성분이 어떻게 다항식 필터에 의해 증폭되거나 감쇠될 수 있는지가 결정될 수 있다. 다항식 필터에 사용된 것과 동일한 기본 블러(k)의 영향을 받은 이미지(v)에 다항식 필터를 적용하면, 수학식은 다음과 같다.
여기서 블러 반전(inverting), 즉 p(K)K Id와 노이즈(n) 증폭 방지 (avoiding), 즉 p(K)n 0사이에 트레이드오프가 있음이 분명해질 수 있다. 따라서, 다항식은 (i) 크게 감쇠되지 않은 주파수에서 블러 효과를 반전시키고 (ii) 블러에 의해 크게 영향을 받는 주파수를 증폭하는 것을 방지하도록 설계될 수 있다.
일 예에서, 다항식 필터는 p(K)K Id(K가 항등식에 가까울 때), 또는 다항식의 관점(x 1인 경우 p(x) 1/x)에 기초하여 구축될 수 있다. 차수(d)의 x = 1에서 1/x의 테일러 확장은 수학식 2를 차수(d)로 자르는 다항식 필터로 이어진다. 이와 같이, 이 다항식은 실질적으로 역수에 가깝지만 특히 가장 감쇠된 구성 요소에서 노이즈를 크게 증폭시킨다. 역수를 근사화하고 노이즈의 증폭을 제어하기 위해, 다항식은 차수(d)로 설계될 수 있다. 즉, d+1 계수가 정의될 수 있다. 역수는 다항식이 x = 1에서 역수 중 하나에서 동일한 도함수를 갖도록 강제함으로써 근사화될 수 있다. 이것은 다음과 같이 차수(d-2)까지 이루어진다.
i = 1,...,d-2이고 p(x = 1) = 1이라는 추가 제약 조건을 기반으로 한다. 나머지 두 자유도는 설계 파라미터로 남겨둘 수 있다. 중간 주파수는 p(d-1)(x = 1) = α를 조절함으로써 증폭될 수 있으며, 노이즈는 블러에 의해 완전히 감쇠되는 주파수에서 p(x = 0) = b를 조절함으로써 증폭될 수 있다. d+1 선형 방정식의 이 예는 다항식의 (폐쇄형) 계열인 pol-d-α-b로 이어진다. α와 b의 값은 잘린 멱급수에 의해 주어진 범위, 즉 및 b = d+1에 가까운 범위에서 변해야 한다. 다항식 필터군(filter family)은 다음과 같이 차수 d = 3으로 표시될 수 있다.
위의 분석은 블러 필터 k(x)가 대칭이고 추가로 음의 푸리에 계수를 갖지 않을 수 있다고 가정한다. 이를 우회하는 한 가지 방법은 전체 필터가 h = ck * k가 되도록 이미지에 보정 필터 ck(x)를 적용하는 것일 수 있지만 이제 h는 원하는 속성(음이 아닌 푸리에 계수)을 갖는다.
일 예에서, 뒤집힌(flipped) 커널, 즉 ck(x) = k(-x)가 사용될 수 있으며, 이는 음이 아닌 실수 푸리에 계수()를 갖는 h(x)를 유도한다. 그러나, 보정 필터는 이미지에 추가 블러를 발생시켜 디블러링 문제를 더욱 어렵게 만들 수 있다. 대안적인 접근 방식은 스펙트럼의 추가 감쇠를 도입하지 않고 위상을 보상하도록 보정 필터를 설계하는 것일 수 있다. 이것은 순수한 위상 필터 에 의해 수행될 수 있다. 이와 같이, 절차는 다음과 같이 구현될 수 있다. 즉, k와 블러 이미지(v) 가 주어지면, vc = ck * v 및 h = ck * k가 계산될 수 있다. 그런 다음, 블러 이미지(vc)는 기본 필터(h)가 있는 다항식 필터를 사용하여 디블러링될 수 있다.
다시 도 2를 참조하면, 후광 제거 모듈(212)은 디블러링 모듈(210)로부터 디블러링된 이미지를 수신하고 그 이미지에서 후광(halo)(예를 들어, 후광 아티팩트)을 감소시킬 수 있다. 후광은 블러의 잘못된 평가로 인해 생성되거나 보다 일반적으로 모델 불일치로 인해 생성될 수 있다. 후광은 블러 이미지와 복원된 이미지가 반대 기울기(기울기 반전)를 갖는 픽셀에 나타날 수 있다.
일 예에서, v(x)는 블러 이미지이고 는 디블러링된 이미지라고 하자. 기울기 반전이 있는 픽셀들은 가 양수인 픽셀이다. 새로운 이미지 u(x)는 다음 수학식에 의해 입력 이미지 v(x)와 디블러링된 의 픽셀당 볼록 조합으로 형성된 것으로 계산될 수 있다.
디블러링 단계에서 도입된 기울기 반전 후광이 없을 수 있는 새 이미지로 이끌 것이다. 디블러링된 이미지를 최대한 많이 유지하려면(즉, z(x), ∈[0, 1]은 가능한 한 작아야 한다. 그런 다음 수학식 12로 주어진 블록 조합에서 다음의 수학식 채택함으로써 최종 이미지가 생성된다.
후광이 이미지로부터 감소되거나 제거된 후, 노이즈가 214에서 이미지에 추가될 수 있다. 예를 들어, 프리 필터 모듈(204)에 의해 제거된 노이즈는 출력 이미지를 생성하도록 후광 제거의 출력과 결합될 수 있다. 출력 이미지는 디블러링된 이미지일 수 있다.
일 구현에서, 도 2의 이미지 처리 시스템(202)은 모바일 디바이스에 통합될 수 있고 본 명세서에 설명된 기술을 사용하여 약 1분의 1초 내에 12MP 이미지를 디블러링할 수 있다. 예를 들어, 이미지 처리 시스템(202)은 Halide의 프로그래밍 언어를 사용하여 x86 및 ARM 아키텍처용으로 설계될 수 있다. Halide는 집약성을 위한 융합 파이프라인 단계를 보다 쉽게 융합하고 SIMD 컴퓨터 아키텍처 및 스레드 병렬성을 사용할 수 있도록 알고리즘 구현을 실행 스케줄(즉, 루프 중첩, 병렬화 등...)으로부터 분리할 수 있다. 알고리즘은 병렬로 실행될 수 있으며 병렬 구현은 적절한 GPU의 병렬 처리 능력을 최대한 활용할 수 있다.
이 구현에서, 노이즈 유사 구조를 나머지 이미지로부터 분리하는 프리 필터 단계가 적용될 수 있다. 입력 이미지에 노이즈가 많거나 압축 아티팩트가 있는 경우, 이 프리 필터링 단계는 이미지에 존재하는 아티팩트를 증폭하기 위해 블러 제거 프로세스를 회피한다. 마지막에 잔상이 추가되기 때문에, 이 단계는 최첨단 노이즈 제거기로 수행할 필요가 없을 수 있다.
이미지 처리 시스템(202)은 이미지의 블러를 추정할 수 있다. 먼저, 이상값(outlier)에 강건하도록 분위수(q =0:0001 및 1-q)를 사용하여 이미지가 정규화된다. 이미지 기울기(ux; uy)로부터, 방향 도함수는 [0; ¶]을 균일하게 커버하는 nangles(일반적으로 nangles = 6)에서 계산될 수 있다. 각각의 각도에 대한 크기의 최대 방향이 찾아질 수 있다. nangles 최대값 중에서, 최소값과 각도(f0; _0)는 초고해상도 그리드(n개의 샘플)에서 쌍삼차 보간볍(bicubic interpolation)((f1 ; 1);:::;(fn; n)을 통해 찾을 수 있다. 수학식 10을 사용하면, σ0 및 σ1이 계산될 수 있고 ρ가 계산될 수 있다.
이 경우, 기울기 특징은 서로 다른 각도 사이뿐만 아니라 서로 다른 픽셀 사이에서도 병렬로 효율적으로 계산될 수 있다. 최대값을 계산하는 것은 공유 메모리 및 타일링을 사용하여 최적화될 수 있는 수집(gather) 동작으로 나타낼 수 있다. 파이프라인 내에서, 이것은 최대 크기가 nangles 시간으로 계산될 수 있기 때문에 계산의 약 40-53%를 나타낸다.
또한, 이미지 처리 시스템(202)의 디블러링 필터는 추정된 블러와 위의 수학식 8의 다항식 계수에 의해 주어진 닫힌 형태(closed form)를 가질 수 있다. 3차 다항식 필터의 경우, 복원 필터 지원은 추정된 기본 블러의 대략 3배이다. 큰 블러 커널의 경우, 컨볼루션은 푸리에 영역에서 효율적으로 계산될 수 있다. 가우시안 블러가 분리 가능한 경우, 컨볼루션은 공간에서 효율적으로 계산될 수 있다. 이 경우, 다항식 필터는 계산되지 않을 수 있다. 오히려, 가우시안 블러의 반복 적용이 다음과 같이 직접 적용되고 누적될 수 있다.
분리 불가능한 가우시안 필터링은 또한 비직교 축에서 2개의 1차원 가우시안 필터에 의해 효율적으로 계산될 수 있다.
도면을 다시 참조하면, 도 3은 이미지로부터 블러를 제거하기 위한 방법(300)의 예시적인 양태를 도시한다. 방법(300)은 하나 이상의 블록(302-308)으로 도시된 바와 같은 하나 이상의 동작을 포함할 수 있는 예시적인 방법을 나타내며, 이들 각각은 다른 가능한 실시예 중에서 도 1 및 2에 도시된 임의의 실시예에 의해 수행될 수 있다. 예시적인 구현에서, 컴퓨팅 디바이스 또는 이미지 처리 시스템(예를 들어, 도 1의 컴퓨팅 디바이스(100) 또는 도 2의 이미지 처리 시스템(200))은 설명된 동작들을 수행하지만, 다른 구현에서는 하나 이상의 다른 시스템이 동작들의 일부 또는 전부를 수행할 수 있다. .
당업자는 본 명세서에 기술된 흐름도 또는 차트가 본 개시 내용의 특정 구현의 기능 및 동작들을 예시한다는 것을 이해할 것이다. 이와 관련하여, 흐름도의 각 블록은 특정 논리적 기능 또는 프로세스의 단계를 구현하기 위해 하나 이상의 프로세서에 의해 실행 가능한 하나 이상의 명령을 포함하는 모듈, 세그먼트 또는 프로그램 코드의 일부를 나타낼 수 있다. 프로그램 코드는 예를 들어 디스크 또는 하드 드라이브를 포함하는 저장 디바이스와 같은 임의 유형의 컴퓨터 판독 가능 매체에 저장될 수 있다.
또한, 각각의 블록은 프로세스에서 특정 논리적 기능을 수행하도록 배선된 회로를 나타낼 수 있다. 대안적인 구현은 당업자에게 이해될 수 있는 바와 같이. 포함된 기능에 따라 실질적으로 동시에 또는 역순으로 기능을 포함하여 도시되거나 설명된 것과 다른 순서로 기능이 실행될 수 있는 본 출원의 예시적인 실시예의 범위 내에 포함된다. 예시 내에서, 임의의 시스템은 다른 시스템이 아래에 설명된 동작들(또는 동작들의 일부) 중 하나 이상을 수행하도록 할 수 있다.
이제 도 3을 참조하면, 방법(300)은 카메라와 같은 이미지 캡처 디바이스로부터 수신된 이미지를 개선하는데 사용될 수 있다. 예를 들어, 방법(300)은 이미지에 대한 블러를 추정하기 위해 블러 제거 프로세스를 수행하고 이미지로부터 블러를 제거한다. 일 예에서, 도 2에 도시된 이미지 처리 시스템과 같은 이미지 처리 시스템은 도 3에 도시된 블러 제거 프로세스를 수행하는데 사용될 수 있다. 이미지 처리 시스템은 카메라, 모바일 디바이스, 개인용 컴퓨터 시스템, 데스크톱 컴퓨터, 랩탑, 노트북, 넷북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 셋탑 박스, 휴대폰, 비디오 게임 콘솔, 핸드헬드 비디오 게임 디바이스, 애플리케이션 서버, 저장 디바이스, 웨어러블 컴퓨팅 디바이스(예를 들어, 카메라가 장착된 안경, 헤드 장착 디스플레이 및/또는 증강 현실 디스플레이), 주변 디바이스(스위치, 모뎀, 라우터), 또는 일반적으로 임의의 유형의 컴퓨팅 또는 전자 디바이스 등에 의해 구현되거나 통합될 수 있다.
블록(302)에서, 이미지 처리 시스템은 이미지를 수신할 수 있다. 입력 이미지는 선택적으로 전처리될 수 있다. 전처리에는 이미지 밝기 정규화, 동적 범위의 결정 및 노이즈 추정이 포함될 수 있다. 노이즈가 심한 이미지는 거부될 수 있다. 일부 예에서, 입력 이미지는 이미지에 있는 노이즈를 줄이기 위해 필터(예를 들어, 로컬이 아닌 수단 필터)를 통과한다. 다른 실시예에서, 이미지 처리 시스템은 노이즈 감소된 이미지를 생성하기 위해 다른 노이즈 제거 기술을 사용할 수 있다. 일부 예에서, 노이즈 제거 기술에는 AIM 엔진 노이즈 제거-업스케일-다운스케일 (Denoise-Upscale-Downscale), 중간값 필터링, 비등방성 확산, 기하 평균 필터링, 로컬 평균 필터링, 양방향 필터링, 블록 매칭 및 3차원(3D) 필터링, 로컬 픽셀 그룹화, 위너(Wiener) 필터를 사용한 필터링, 이들의 임의의 조합, 및/또는 임의의 다른 적합한 노이즈 필터링 기술이 포함될 수 있다.
또한, 이미지 처리 시스템은 이미지를 정규화하고 이미지의 동적 범위를 결정하기 위한 동작들을 수행할 수 있다. 예를 들어, 이미지 처리 시스템은 처리된 이미지가 기정의된 콘트라스트 및 표준 편차 값을 갖도록 입력 이미지의 밝기를 정규화할 수 있다. 이미지 처리 시스템은 이미지의 동적 범위 및 노이즈에 기초하여 블러 검출 처리를 수행할지 여부를 추가로 결정할 수 있다. 이미지에 노이즈가 너무 많거나 동적 범위가 너무 낮은 경우, 이미지 처리 시스템은 이미지를 폐기하도록 구성될 수 있다. 이미지 처리 시스템이 블러 검출 처리가 수행될 수 있다고 결정하면, 이미지에서 블러를 제거하기 위해 추가 처리 단계가 수행될 수 있다.
블록(304)에서, 이미지 처리 시스템은 이미지의 블러를 추정할 수 있다. 일 예에서, 이미지 처리 시스템은 위에서 설명한 회귀 모델을 사용하여 입력 이미지를 정규화하고, 이미지 기울기 특징을 계산하고, 기울기 특징들을 보간하고, 가우시안 함수의 파라미터(예를 들어, σ0 및 σ1)를 추정할 수 있다. 또한, 이미지 처리 시스템은 블러의 정도를 나타내는 이미지에 대한 블러 스코어를 계산할 수 있다. 블러 스코어는 사전 결정된 임계값과 비교될 수 있다. 블러 스코어가 사전 결정된 임계값 미만인 경우, 이미지가 양호한/허용 가능한 품질인 것으로 결정될 수 있고 이미지 처리 시스템은 이미지를 계속 처리할 수 있다. 반면에, 블러 스코어가 임계값보다 큰 것으로 결정되는 경우, 이미지는 폐기될 수 있다.
블록(306)에서, 이미지 처리 디바이스는 추정된 블러에 기초하여 이미지를 디블러링할 수 있다. 이미지 처리 디바이스는 블러를 줄이기 위해 이미지에 디블러링 필터(예를 들어, 선형 복원 필터)를 적용할 수 있다. 디블러링 필터는 이미지 처리 시스템에 의해 추정된 블러의 역수에 기초하여 구성될 수 있다. 일 예에서, 역수는 상술한 바와 같이 블러 커널을 기본으로 사용하는 다항식 필터로 근사화될 수 있다.
블록(308)에서, 이미지 처리 디바이스는 이미지로부터 후광을 감소시킬 수 있다. 이미지 처리 디바이스는 위의 수학식 14를 이용하여 후광을 감소시킬 수 있다. 후광이 이미지에서 감소되거나 제거된 후, 노이즈가 214에서 이미지에 추가될 수 있다. 예를 들어, 프리 필터 단계에서 제거된 노이즈는 후광 제거 단계의 출력과 결합되어 출력 이미지를 생성한다. 출력 이미지는 디블러링된 이미지일 수 있다.
도 3에 도시된 단계는 예시적인 실시예에 따른 방법을 설명하기 위한 것임을 이해할 것이다. 이와 같이, 다양한 단계가 변경되거나 수정될 수 있고, 특정 단계의 순서가 변경될 수 있으며, 추가 단계가 추가될 수 있지만 여전히 전체적으로 원하는 동작을 달성할 수 있다. 이 방법은 클라이언트 디바이스, 서버, 또는 클라이언트 디바이스와 서버의 조합에 의해 수행될 수 있다. 이 방법은 임의의 적절한 컴퓨팅 디바이스(들)에 의해 수행될 수 있다.
예시적인 실시예가 본 명세서에 예로서 설명되었다. 그러나 당업자는 청구범위에 의해 정의되는 실시예가 지향하는 요소, 제품 및 방법의 진정한 범위 및 정신을 벗어나지 않고 이 실시예에 변경 및 수정이 이루어질 수 있음을 이해할 것이다.
도 4는 예시적인 구현에 따른 컴퓨터 프로그램의 개략도이다. 일부 구현에서, 개시된 방법은 기계 판독 가능 포맷의 비-일시적 컴퓨터 판독 가능 저장 매체, 또는 기타 비-일시적 매체 또는 제조품에 인코딩된 컴퓨터 프로그램 명령으로 구현될 수 있다.
예시적인 구현에서, 컴퓨터 프로그램 제품(400)은 하나 이상의 프로세서에 의해 실행될 때 도 1-3과 관련하여 전술한 기능 또는 기능의 일부를 제공할 수 있는 하나 이상의 프로그래밍 명령(404)을 포함할 수 있는 신호 베어링(bearing, 함유) 매체(402)를 사용하여 제공된다. 일부 예에서, 신호 베어링 매체(402)는 하드 디스크 드라이브, CD, DVD, 디지털 테이프, 메모리, 원격으로 저장할 컴포넌트(예를 들어, 클라우드에)와 같은 비-일시적 컴퓨터 판독 가능 매체(406)를 포함할 수 있지만 이에 한정되지 않는다. 일부 구현에서, 신호 베어링 매체(402)는 메모리, 판독/기록(R/W) CD, R/W DVD 등과 같은 컴퓨터 기록 가능 매체(408)를 포함할 수 있지만 이에 한정되지 않는다. 일부 구현에서, 신호 베어링 매체(402)는 디지털 및/또는 아날로그 통신 매체(예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등과 같은 통신 매체(410)를 포함할 수 있지만 이에 한정되지 않는다. 유사하게, 신호 베어링 매체(402)는 원격 저장소(예를 들어, 클라우드)에 대응할 수 있다. 컴퓨팅 시스템은 정보 전송 또는 수신을 포함하여 클라우드와 정보를 공유할 수 있다. 예를 들어, 컴퓨팅 시스템은 센서 또는 다른 엔티티로부터 획득한 정보를 보강하기 위해 클라우드로부터 추가 정보를 수신할 수 있다. 따라서, 예를 들어, 신호 베어링 매체(402)는 무선 형태의 통신 매체(410)에 의해 전달될 수 있다. 하나 이상의 프로그래밍 명령(404)은 예를 들어 컴퓨터 실행 가능 및/또는 논리 구현 명령일 수 있다. 일부 예에서, 도 1의 컴퓨팅 디바이스(100) 및 도 2의 이미지 처리 시스템(202)과 같은 컴퓨팅 디바이스는 컴퓨터 판독 가능 매체(406), 컴퓨터 기록 가능 매체(408) 및/또는 통신 매체(410) 중 하나 이상에 의해 컴퓨팅 디바이스로 전달되는 프로그래밍 명령(404)에 응답하여 다양한 동작, 기능 또는 액션을 제공하도록 구성될 수 있다.
비-일시적 컴퓨터 판독 가능 매체는 또한 서로 원격으로 위치할 수 있는 다수의 데이터 저장 요소 및/또는 클라우드(예를 들어, 원격) 사이에 분산될 수 있다. 저장된 명령의 일부 또는 전부를 실행하는 컴퓨팅 디바이스는 서버와 같은 다른 컴퓨팅 디바이스일 수 있다.
디블러링 이미지와 관련된 하나 이상의 양태에 따른 예시적인 방법, 시스템 및 장치가 본 명세서에서 설명된다. 일반적으로, 본 명세서에 기술된 컴포넌트, 모듈, 방법 및 동작들 중 임의의 것은 소프트웨어, 펌웨어, 하드웨어(예를 들어, 고정 논리 회로), 수동 처리 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 예시적인 방법의 일부 동작은 컴퓨터 처리 시스템에 로컬 및/또는 원격인 컴퓨터 판독 가능 저장 메모리에 저장된 실행 가능한 명령의 일반적인 맥락에서 설명될 수 있으며, 구현들은 소프트웨어 애플리케이션, 프로그램, 기능 등을 포함할 수 있다. 대안적으로 또는 추가적으로, 본 명세서에 기술된 임의의 기능은 제한 없이 FPGA(Field-programmable Gate Arrays), 주문형 집적 회로(ASIC), 애플리케이션별 표준 제품(ASSP), 시스템 온 칩 시스템(SoC), 또는 복합 프로그램 가능 논리 장치(CPLD)와 같은 하나 이상의 하드웨어 논리 컴포넌트에 의해 적어도 부분적으로 수행될 수 있다.
또한, 위의 상세한 설명은 첨부된 도면을 참조하여 개시된 시스템, 장치 및 방법의 다양한 특징 및 동작을 설명한다. 다양한 양태 및 실시예가 본 명세서에 개시되었지만, 다른 양태 및 실시예가 명백할 것이다. 본 명세서에 개시된 다양한 양태 및 실시예는 설명을 위한 것으로 제한하려는 의도가 아니며, 진정한 범위는 다음의 청구범위에 의해 표시된다.
Claims (20)
- 방법으로서,
처리 디바이스에 의해, 이미지를 수신하는 단계;
처리 디바이스에 의해, 이미지에 대한 블러를 추정하는 단계;
이미지에 디블러링(deblurring) 필터를 적용하는 단계; 및
이미지로부터 후광(halo)을 감소시키는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
이미지로부터 노이즈를 제거하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 블러를 추정하는 단계는,
블러 함수를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 블러는,
가우시안 함수의 적어도 하나의 파라미터에 기초하여 추정되는 것을 특징으로 하는 방법. - 제4항에 있어서,
상기 가우스 함수는,
등방성 가우스 함수를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
이미지를 정규화하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
이미지의 기울기(gradient) 특징을 계산하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제7항에 있어서,
기울기 특징에 기초하여 간격에 걸쳐 복수의 각도에서 방향 도함수를 계산하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제8항에 있어서,
복수의 각도 각각에 대한 방향 도함수의 최대 크기를 계산하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제9항에 있어서,
방향 도함수의 최대 크기로부터 최소값을 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
이미지에 대한 블러 스코어를 추정하는 단계를 더 포함하고, 상기 블러 스코어는 이미지의 블러 정도를 나타내는 것을 특징으로 하는 방법. - 제10항에 있어서,
블러 스코어를 임계값과 비교하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
블러의 역수를 추정하기 위해 복수 반복의 블러를 결합하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
블러 커널에 기초한 다항식으로 블러의 역수를 추정하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 디블러링 필터는 다항식 필터를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 다항식 필터는 추정된 블러의 역수에 기초하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 디블러링 필터는 추정된 블러로부터 구성된 선형 복원 필터를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
이미지에서 후광을 감소시키는 단계를 더 포함하는 것을 특징으로 하는 방법. - 장치로서,
메모리; 및
하나 이상의 프로세서를 포함하고,
상기 하나 이상의 프로세서는,
이미지를 수신하고,
이미지에 대한 블러를 추정하고,
디블러링 필터를 이미지에 적용하고, 그리고
이미지에서 후광을 감소시키도록 구성되는 것을 특징으로 하는 시스템. - 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 매체로서,
상기 명령들은 동작들을 포함하는 기능을 수행하도록 하나 이상의 프로세서에 의해 실행 가능하고, 상기 동작들은,
이미지를 수신하는 동작과;
이미지에 대한 블러를 추정하는 동작과;
디블러링 필터를 이미지에 적용하는 동작과; 그리고
이미지에서 후광을 감소시키는 동작을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063114314P | 2020-11-16 | 2020-11-16 | |
US63/114,314 | 2020-11-16 | ||
PCT/US2021/059321 WO2022104180A1 (en) | 2020-11-16 | 2021-11-15 | Systems, apparatus, and methods for removing blur in an image |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230101872A true KR20230101872A (ko) | 2023-07-06 |
Family
ID=78916714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237018822A KR20230101872A (ko) | 2020-11-16 | 2021-11-15 | 이미지에서 블러를 제거하기 위한 시스템, 장치 및 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20240013350A1 (ko) |
EP (1) | EP4226315A1 (ko) |
JP (1) | JP2023550352A (ko) |
KR (1) | KR20230101872A (ko) |
CN (1) | CN116529757A (ko) |
WO (1) | WO2022104180A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240067182A (ko) * | 2022-11-07 | 2024-05-16 | 삼성전자주식회사 | 영상 디블러링을 포함한 영상 처리 방법 및 그 장치 |
-
2021
- 2021-11-15 WO PCT/US2021/059321 patent/WO2022104180A1/en active Application Filing
- 2021-11-15 KR KR1020237018822A patent/KR20230101872A/ko unknown
- 2021-11-15 JP JP2023528735A patent/JP2023550352A/ja active Pending
- 2021-11-15 CN CN202180077077.7A patent/CN116529757A/zh active Pending
- 2021-11-15 US US18/251,663 patent/US20240013350A1/en active Pending
- 2021-11-15 EP EP21824711.2A patent/EP4226315A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4226315A1 (en) | 2023-08-16 |
US20240013350A1 (en) | 2024-01-11 |
WO2022104180A1 (en) | 2022-05-19 |
JP2023550352A (ja) | 2023-12-01 |
CN116529757A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ruiz et al. | Variational Bayesian blind image deconvolution: A review | |
WO2023123927A1 (zh) | 图像增强方法、装置、设备和存储介质 | |
US10007990B2 (en) | Generating composite images using estimated blur kernel size | |
US9142009B2 (en) | Patch-based, locally content-adaptive image and video sharpening | |
US9224362B2 (en) | Monochromatic edge geometry reconstruction through achromatic guidance | |
US9344636B2 (en) | Scene motion correction in fused image systems | |
JP5436566B2 (ja) | 画像を編集する方法及び装置 | |
US20150312495A1 (en) | Wavelet denoising of fringe image | |
US8867856B2 (en) | De-noising image content using directional filters for image de-blurring | |
WO2008106282A1 (en) | Image deblurring with blurred/noisy image pairs | |
US9619870B2 (en) | Scale adaptive blind deblurring | |
WO2014070273A1 (en) | Recursive conditional means image denoising | |
JP2013192224A (ja) | ブラー映像及びノイズ映像で構成されたマルチフレームを用いて非均一モーションブラーを除去する方法及び装置 | |
US20160371567A1 (en) | Image processing apparatus, image pickup apparatus, image processing method, and non-transitory computer-readable storage medium for estimating blur | |
WO2023030139A1 (zh) | 图像融合方法、电子设备和存储介质 | |
WO2016189901A1 (ja) | 画像処理装置、画像処理方法、プログラム、これを記録した記録媒体、映像撮影装置、及び映像記録再生装置 | |
Mosleh et al. | Explicit ringing removal in image deblurring | |
Ji et al. | Image deconvolution using a characterization of sharp images in wavelet domain | |
KR20230101872A (ko) | 이미지에서 블러를 제거하기 위한 시스템, 장치 및 방법 | |
JP6541454B2 (ja) | 画像処理装置、撮像装置、画像処理方法、画像処理プログラム、および、記憶媒体 | |
US8761507B1 (en) | Bilateral filter optimization | |
Ziou et al. | Reducing aliasing in images: a PDE-based diffusion revisited | |
US20230035482A1 (en) | Apparatus and method for combined intraband and interband multi-frame demosaicing | |
US20230034109A1 (en) | Apparatus and method for interband denoising and sharpening of images | |
KR101152525B1 (ko) | 모션 블러 제거 방법 및 이러한 방법을 수행하는 장치 |