AI | ML/논문 리뷰

[CVPR 2021] Removing Diffraction Image Artifacts in Under-Display Camera viaDynamic Skip Connection Network 리뷰

깜태 2021. 8. 8. 15:37
728x90

Abstract

  • UDC(Under display Camera) 환경에서 생기는 noise, flare, haze, blur 등을 해결하려 함

1. Introduction

문제부터 설명하자면 논문에서는 (a)같은 하드웨어의 제약으로 인해 빛이 퍼지는 문제를 소프트웨어적으로 해결하려고 했다.
(a)에서 좌측은 일반 OLED 화면, 우측은 OLED 화면 아래에 카메라가 있는 부분으로 패널이 카메라 때문에 촘촘하지 못해 투명한 공간이 생긴다고 한다.
조금 더 자세히 설명하면 (b)는 UDC 시스템의 간단한 그림인데 점광원으로부터 방출된 빛이 센서에 닿기도 전에 OLED와 카메라로부터 이미 변형된다고 한다.
(c)는 PSF 패턴을 캡처해 가시화한 것으로 원래 이미지에 적용하면 흐릿해지는 것을 볼 수 있는데, 논문에서는 이 PSF를 해결해서 어떻게 해결하는지 보여주려고 한다.

보통의 UDC 시스템에서는 반투명 OLED와 카메라가 매우 밀착해있는 상태로
디스플레이가 부분적으로 투명함에도 불구하고, 빛이 픽셀 사이 틈새로 통과해 빛번짐이 발생한다고 한다.

사전 설명 PSF - (Point Spread Function)

PSF는 Point Spread Function의 약자로 카메라 에서 빛을 센싱해서 들어올 때
빛이 얼마나 퍼져서 들어오는지 계산하는 함수이다.
1픽셀만큼 감지될 정도의 거리에서 이 빛을 촬영했다면 이상적인 구조라면 1픽셀이여야겠지만,
여러 제약조건들로 빛이 분산되어 1점에 찍히지 못하는 경우가 생긴다고 한다.
이때 PSF를 이용하면 카메라 별로 빛번짐이 얼마나 있는지 계산할 수 있게 된다.

 

논문에서는 이전 논문 [47] 논문의 단점을 지적하였다.
해당 논문에서는 페어된 이미지를 캡처하고, 두 종류의 OLED 디스플레이에서 생기는 PSF(Point Spread Function)를 합성하는 MCIS(Monitor Camera Imaging System)라는 걸 제안했는데 5가지 문제가 있었다고 지적했다.

  1. 실제와 합성된 PSF 사이의 미스매치로 인한 부정확한 PSF (함수 미흡)
  2. MCIS-captured 데이터에서 적절한 HDR이 부족해, 실제로 정확한 UDC 품질 저하를 놓침 (데이터 미흡)
  3. 프로토타입 UDC이 실제 사용하는 UDC와 확실히 다름을 지적 (하드웨어 차이)
  4. non-MCIS 일 때의 평가가 없었다
  5. 제안된 네트워크가 도메인지식을 제대로 활용하지 못했다

당연하게 논문에서는 위의 문제들을 다루는데 초점을 두었다.

실제처럼(realistic) 형성하는 모델을 소개하고,
카메라 센서와 이미지 사이의 적절한 HDR을 고려한 측정방법과
UDC카메라에서 회절된 이미지를 복원하는 방법 순으로 소개한다.

 

그리고 실험용으로 촬영했던 ZTE 카메라를 위한 솔루션이 아니라 회절효과에 대해 다룬 것이기 때문에 다른 UDC 디바이스에도 적용가능할 뿐더러, 더 나아가서 핀홀카메라나 현미경같은 다른 회절 현상이 생기는 시스템에서도 적용 가능하다고 한다.

논문에서 제안하는 Main Contribution은 아래와 같다.

Main Contributions

  • UDC 시스템에서 Dynamic Range와 실제 수렴을 고려한 image formation model을 재공식화
  • real world PSF를 측정하기 위해 UDC prototype smartphone을 이용하였고, 스마트폰을 이용해 저하된 이미지를 합성하는 데 사용
  • 도메인 지식을 포함한 DISC Net을 이용해 Image Formation model을 제안

3. Image Formation Model and Dataset

3.1 Image Formation Model

논문에서는 회절, 노이즈 등이 여러 번 들어간 저하된 UDC 이미지를 다음의 수식으로 표현하였다.

y =ϕ[C(x∗k+n)]

x : HDR을 가진 실제 조도 이미지
k : PSF로 표현되는 알 수 없는 convolution kernel
* : convolution 연산
n : noise 값
C : 디지털 센서의 한계로 오는 제한된 채도를 표현하기 위한 clipping 함수 ex) C=min(x, x_max)
ϕ : 사람의 인지와 매칭시키는 non-linear function

3.2 PSF Measurement

Figure 2에서 점광원으로부터 센서가 취득한 값 Optical Field U_s​(p,q) 를 다음으로 표현하였다.

p,q : 2D 공간 좌표
r^2 = p^2 + q^2

λ : 파장
f : 렌즈의 초점거리
t(p,q) : 디스플레이에서의 전달함수
z_1 : 점광원과 디스플레이 사이의 거리
d : 렌즈와 센서 디스플레이 거리
z_2 : 점광원과 sensor거리
*: convolution연산
⋅ : 곱셈 연산
마지막으로 이미지 시스템의 PSF는 k=|U_S|^2 에 의해 주어진다.

논문에서는 디스플레이 카메라의 정확한 픽셀과 디스플레이에서 변조된 광학 시스템의 PSF를 시연해보았는데 실제 PSF가 비슷한 모양을 갖는 걸 발견했다고 한다.

하지만 제조 공정에서 불완전함도 있었고 모델 추측으로 인해 color와 contrast에서 차이도 있었지만,
이 연구에선 소유권 문제로 OLED 디스플레이의 전달함수를 제어할 수 없었기 때문에 다른 방식을 찾았다.

 

그 방법은 점광원의 크기가 센서의 1픽셀과 같게 하기 위해 OLED로부터 1미터 떨어진 곳에
점광원을 둠으로 PSF를 측정하는 것이다.

PSF 전체를 잡기 위해 강한 피크 부분과 약 한 사이드로브(이웃 주파수)를 포함하여 각각 다른
노출정도 (1, 1/32, 1/768)로 3장의 사진을 연속적으로 촬영하여 같은 밝기 레벨로 normalize했다고 한다.

그 다음 수렴하지 않은 픽셀 값들을 HDR 이미지와 섞어 UDC 시스템에서의 PSF를 잡아내서 볼 수 있었다고 한다.

(배경지식 참고 : https://m.blog.naver.com/P

ostView.naver isHttpsRedirect=true&blogId=suya309&logNo=221467948212)

비교해본 결과, UDC의 PSF는 HDR 시뮬레이션의 일반 블러 커널보다 아래와 같은 몇 가지 더 특별한 특징이 있다는 걸 발견했다고 한다.

  • 강한 피크를 지님
  • 픽셀로부터 갖는 거리도 넓을 뿐더러 분포를 확인해보면 이웃주파수(sidelobe)가 exponential하게 길게 늘어져 있으며, 뾰족한 모양의 긴 꼬리가 있음
  • tail 부분에서 color shift가 있음

 

이렇게 만들어낸 PSF는 이전 논문에 비해 두가지 관점에서 더 실제와 비슷하다고 한다.

첫째로 위에서 가정한 x가 더 HDR스러운 장면이라고 한다. 그 이유로 이전 논문에서는 dynamic range가 제한된 LCD 모니터에서 캡처했기 때문에 이런 저하를 충분히 모델링하지 못했다고 지적하면서, 실제 이미지에서 촬영된 UDC는 중앙에는 강도가 더 강하고 주변에서는 이웃주파수(sidelobe) 에너지를 가지고 있어 높은 강도의 장면와 얽히면 저하된 이미지 (UDC) 에서는 플레어 효과로 증폭되어 보여질 수 있기 때문에 HDR 스럽다고 한다.

둘째로 입력 이미지의 HDR로 인해 실제 이미지에서는 피할 수 없이 수렴되면서 정보 손실이 발생되기 때문이라고 한다. image formation model 때 말했던대로 사람의 인지는 비선형적이기 때문에 선형으로 찍히는 이미지를 사람에게 더 좋아보이게 만드는 HDR로 만드는 작업은 비선형적으로 만드는 작업이다.
(HDR : High Dynamic Range의 약자로, 명암을 넓혀 밝은 부분은 더 밝고, 어두운 부분은 더 어둡게 표현하면서 사물이 또렷하게 보이도록 하는 이미지 표현 기술)

3.3 Data Collection & Simulation

Simulated Data

논문에서는 인조 이미지를 만들기 위해 360도 파노라마와 8192 x 4096 이미지를 갖는 HDRI dataset에서 132개의 이미지를 모아서 파노라마 이미지를 원근 변환(perspective transform)한 뒤, 800x800으로 크롭했다.
이렇게 해서 2016개의 train, 360개의 val 이미지를 수집하였고, 위의 수식에서 방정식 1의 k에 3.2 장의 PSF를 대입해 저하된 이미지를 시뮬레이션했다고 한다.

Real Data

실제 이미지로 [1, 1/4, 1/16] 각 다른 노출의 이미지를 찍고 합쳐 HDR 이미지를 만들었다.

4. Dynamic Skip Connection Network

사전 지식 : What is Blind vs Non-blind ?

PSF를 알고 있다는 가정 하에서 이미지의 blurring을 풀어내는 작업을 non-blind deconvolution이라 한다.
반대로 PSF를 모르고, 어떤 이미지가 들어올지도 모른 채 해당 커널을 deconvolution하는 작업을 blind convolution이라고 한다.

논문에서의 상황을 정확히 정의내려보면 어떤 이미지가 들어오는지도 모르고, 그 이미지에서 어떤 kernel이 적용되었는지도 모르는 상황이기에 blind 문제로 보는게 더 합당하다.
하지만 UDC 이미지 복원이 목적이고 어떤 커널인지 알고 있다는 가정이어야 deconvolution을 진행할 수 있기 때문에, PSF를 알고 있다는 non-blind 문제로 접근하여 해당 커널을 딥러닝 학습으로 추론하려고 했다.

딥러닝으로 접근한 이유

전통적으로 non-blind image restoration은 Wiener filter 같은 선형성을 갖는 deconvolution을 의미한다.

HDR 이미지에서 UDC 생성물은 정보를 잃을 뿐더러, high intensity 영역에서 과포화되어 선형성이 깨진다.
게다가 전통적인 deconvolution은 800x800 같이 엄청 큰 커널을 고려하지 않아 halo, ringing 현상이 생긴다고 한다.

딥러닝 기반의 방법들은 복원하기 위해 더 많은 데이터가 필요하지만, 딥러닝으로 접근하면

위의 non-blind 설명처럼 blind 문제처럼 알 수 없는 커널을 딥러닝을 통해 추론시킬 수 있고,

인퍼런스 1번만 거치면 되기 때문에, 비선형성을 갖는 도메인에서 복원하는 네트워크를 만들어 사용하기로 했다.

따라서 non-blind로 가정했을 때로 학습을 위해 저하된 이미지를 y, ground-truth PSF를 k, 복원된 깨끗한 이미지를 x로 정하였다.

이렇게 진행하면 딥러닝이 이미지에 따라 PSF를 알아서 추정해주기 때문에 blind UDC 이미지 복원에도 사용 될 수 있다고 한다.

아까 (1)번 공식에서는 공간적 정보가 변화되지 않는 Shift Invariance 2D convolution을 가정하였지만,
비선형 센서 포화도를 가진 톤 맵 도메인에서는 PSF의 모양과 강도가 해당 위치에서 입력 픽셀과 그 이웃에 따라 변할 수 있기 때문에 더 이상 그러한 가정이 유지되지 않는다.
예를 들어, OLED 빛번짐 포화 정도를 주변의 포화되지 않은 영역으로 빛번짐을 적용하면 초기에 제한된 정보의 적응적 복구가 가능하다.

논문에서는 최근 KPN(Kernel Prediction Network)에 영감을 받아 각 픽셀마다 filter kernel을 동적으로 생성하고,
skip connection 구조로 각 픽셀마다 다른 convolution을 적용시키는 DISCNet 을 제안하였다.

KPN 네트워크의 예시: 네트워크를 통해 Kernel 마다 convolution kernel을 생성하여 진행한다

네트워크는 두가지를 입력으로 하는데, 하나는 도메인 지식을 제공하는 PSF와
공간적 정보를 회복을 할 수 있을만큼의 빛이 포함된 이미지를 입력으로 받는다. (너무 하얗거나, 너무 까만 것은 안된다는 뜻)

KPN 논문에 있던 내용을 그대로 적용시키기에는 문제가 있었다고 한다.
왜냐하면 UDC의 PSF는 광범위하고 주변주파수가 길기 때문에라고 언급되어 있었는데 이 말은 KPN에서 커널이 예측한 빛의 크기(K)에 비해 PSF의 영역인 빛이 퍼지는 영역(N)이 생각보다 넓었다는 이야기다. (N>K)
따라서 KPN에서 언급된 예측된 필터를 이미지 도메인에 적용하는 건 UDC 이미지 복원에 적합한 접근은 아니였지만, 논문에서는 dynamic convolution을 적용하려고 했고 각 scale마다 dynamic filter를 따로 예측하는 multi-scale 구조를 설계해 학습된 필터의 공간 지원을 더 크게 만들었다고 한다.

4.2 Network Architecture

위는 DISCNet의 그림으로 Restoration Branch를 거치면서 특징을 추출하면서 이미지를 복원하는 과정을 담았다.

Training with Various Degradation

논문에서는 H x W x C 크기의 저하된 이미지 \hat{y} 가 있다고 가정하여 진행하였다.
먼저 계산복잡도를 줄이기 위해 PCA로 PSF를 b차원으로 줄여 저하된 이미지로 H x W x b 채널의 kernel code를 생성하였고, 이 둘을 concat하여 H x W x (b + C) 크기의 condition map을 만들었다.
논문에서는 b값을 5로 설정하였다.

Restoration Branch

Restoration Branch는 skip connection을 갖는 Encoder - Decoder 구조를 지닌다.
Encoder는 3개의 conv block으로 되어 각 블록의 처음에선 3x3 conv, stride2 연산으로
H, W가 반으로 줄어들고 블록 내에선 2개의 residual block을 가진다.
각 conv block는 scale이 다른 E1, E2, E3라는 특징을 추출하고 DISCNet에 들어가 R1, R2, R3로 변환된다.

마찬가지로 Decoder는 2개의 conv block으로 되어 각 블록은 처음에 up-convolution으로 스케일을 키우고, residual block 2개를 거쳐 마지막 결과로 보정된 이미지를 출력한다.

DynamIc Skip Connection Network

DISCNet은 condition encoder, multi-scale filter generator, dynamic convolution
3가지의 구조로 이루어져 있다.

입력으로 위에서 설명한 condition map이 주어지고, 위의 encoder와 비슷한 구조로 condition encoder를 거쳐 각각 H1, H2, H3 특징을 추출한다.
논문에서는 커널 코드 맵이 전체적으로 균일하더라도 condition encoder는 저하된 이미지로부터 공간 불변성을 포함한 다양한 정보들을 뽑아낼 수 있고, 저조도 지역에도 수렴된 이미지를 회복하려 한다고 한다.

위에서 생성된 H1, H2, H3 특징들은 filter generator로 입력들어가는데 generator도 마찬가지로 3x3 conv와 2개의 residual block을 가지지만, 특징을 풍부하게 뽑기 위해 1x1 convolution layer가 추가 되었다.

특히, 동적 필터 s는 h x w x c 크기의 H를 입력으로 받으면 h x w x c s^2s
2
크기로 출력하는데, 이를 표현하는 수식하면 이렇다.

F_n = G_n(H_n)

출력 특징인 R_n은 위의 수식을 거쳐 만들어지는데, 하나씩 풀어서 보면
K는 F_n(i, j, c_m)의 i,j 픽셀에서 m 채널의 s x s 필터 값으로 그냥 픽셀마다 적용되는 s x s 이라고 보면 된다.
마찬가지로 ψ(E_n(i,j,c_m))​부분도 특징 E의 i,j 픽셀의 c 채널에 적용되는 s x s 필터로 둘을 각 내적해서 R을 만들고,
각 Rn은 restoration branch의 decoder로 넘어간다.

5. Experiments

5.2 Ablation Study

논문에서는 DISCNet의 효과를 검증하기 위해 UNet의 구조로부터 시작해 하나씩 추가하였다.

Learning Variational Degradation

(a)는 커널을 1개로 고정했을 때로 쉽게 오버피팅되어 다른 타입의 저하된 이미지를 일반화시킬 수 없었기 때문에,
커널을 다양하게 하는 (b)를 baseline으로 잡게 되었다고 한다.

Type of Conditons

다음 실험으로 위의 베이스라인에서 filter generator G1, G2 을 하나씩 지워보면서 조사해봤는데 결과적으로 E1, E2가 전혀 바뀐게 없이 restoration branch로 넘어가는 것을 확인했다고 한다. 다양한 타입의 조건을 적용해봤는데 image condition과 PSF condition을 바꿔보는 (c), (d)실험을 통해 PSNR이 눈에 띄게 좋아지는 것을 확인해볼 수 있었다고 한다. 그 다음으로는 (c), (d)를 합쳐서 같이 진행해봤는데, 더 성능이 올라간 것을 볼 수 있었다.

single-scale vs multi-scale

모든 스케일의 skip connection에 dynamic filter generator를 시도해봤는데 성능이 더 좋아져서 multi-scale을 사용했다고 한다.

Size of Dynamic Filters

더 좋은 성능을 얻기 위해 다양한 dynamic filter의 크기를 시도해봤는데 5일 때가 제일 좋았다고 한다.

5.3 Evaluation on Simulated Dataset

직접 데이터셋을 만들었기 때문에, 데이터셋에서 다양한 논문들을 테스트했다.

위는 그 결과로 다른 논문들도 좋은 결과를 보이기도 하지만 DISCNet이 성능이 제일 좋았다.

5번은 데이터셋 내에서에 대한 평가, 6번은 실제로 찍은 이미지에 대한 평가이다.

6.Discussion

Limitation

논문에서는 회절을 지우는 첫 단계밖에 불과하지 않는다는 한계를 언급했다.
공간적으로 다양한 PSF나 저조도에서의 노이즈, 포커스가 없는 이미지 등의 다른 복잡한 문제에 대한 연구도 필요함을 말하였고, DISCNet이 때때로는 실제 이미지에서 카메라 노이즈나, 모션 블러등의 다양한 이유들로 실패할 수도 있고,
게다가 현재는 모델이 매우 무겁다는 한계도 말했다.

Conclusion

UDC 시스템에서 실제 PSF를 측정해보고, 모델 학습에 쓰이는 저하된 이미지를 제공하는 데이터셋을 만들었다.

 

 

제 나름대로 이해하면서 쉽게 번역하려고 했지만 부족한 게 많습니다.

지적사항이나 질문이 있다면 자유롭게 댓글 달아주세요

728x90

'AI | ML > 논문 리뷰' 카테고리의 다른 글

EXPLAINING AND HARNESSINGADVERSARIAL EXAMPLES  (0) 2020.11.09