https://arxiv.org/abs/1711.07064
Non-uniform blur model의 일반적인 수식은 다음과 같음:
Deblurring 문제는 blind deblurring과 non-blind deblurring으로 나뉨
기존의 방법은 Lucy-Richardson 알고리즘, Wiener 필터, Tikhonov 필터 등을 사용해 deconvolution 연산 수행
Blind deblurring에서 각 픽셀에 대한 blur function을 찾는 것은 ill-posed problem이며, 대부분의 알고리즘은 휴리스틱, image 통계, blur 원인에 대한 가정에 의존
최근에는 Whyte 등이 파라미터화된 기하학적 model을 사용한 새로운 알고리즘을 개발했고, Gupta는 3D camera 움직임을 blur의 원인으로 가정
Convolutional Neural Networks (CNNs)을 사용한 새로운 방법들이 등장:
Kernel-free end-to-end approaches:
Generative Adversarial Networks (GANs)는 두 개의 경쟁하는 network(discriminator와 generator) 사이의 game으로 정의
GAN의 game은 다음 minimax objective로 설명:
여기서 은 데이터 분포, 는 model 분포
GAN 학습에서 발생하는 문제들(예: mode collapse, vanishing gradients)이 있음
WGAN의 objective function은 Kantorovich-Rubinstein duality를 사용해 다음과 같이 정의:
는 1-Lipschitz functions의 집합이며, 는 model 분포
Gradient penalty를 적용하는 방식:
GANs는 image-to-image translation 문제에 널리 사용됨
Conditional GAN (cGAN)은 조건부로 image translation을 수행하는 GAN의 일종
Loss function은 adversarial loss와 content loss의 결합으로 정의:
여기서 는 100으로 설정 (모든 실험에서)
Adversarial loss는 다음과 같이 계산:
Content loss는 Perceptual loss를 사용하며, 이는 VGG19 network에서 추출된 feature map 간의 차이에 기초한 L2 loss
Perceptual loss는 일반적인 내용 복원에 집중하며, texture details 복원도 포함
TV regularization을 추가했으나, 성능은 27.9 vs. 28.7로 오히려 저하됨 (PSNR 기준, GoPro dataset)
Sharp image와 blurred image pair를 얻는 것은 쉽지 않음
Sun et al.은 73개의 선형 motion kernel 중 하나를 사용해 깨끗한 자연 image를 convolution하여 synthetically blur image를 생성
Chakrabarti는 6개의 random point를 sample링하고, 이를 spline으로 맞추어 blur kernel을 생성
이 연구에서는 더 복잡하고 현실적인 blur kernel을 제안하며, Boracchi와 Foi의 random trajectories 생성 아이디어를 따름
각 trajectory(궤적) vector는 2D random motion을 따르는 object의 위치를 나타내는 복소수 vector로, 이는 Markov process에 의해 생성 (아래 Pseudo code 참고)