DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks
Abstract
DeblurGAN : end-to-end learned method for motion deblurring.
학습은 conditional GAN, content loss 를 기반으로 진행된다. deblurring 모델의 품질은 실제 문제에서 새로운 방식으로 평가되며, 블러이미지에서 object detection을 통해 이루어진다. 이 방법은 최근의 경쟁자 Deep-Deblur 보다 5배 빠르다. 우리는 또한 선명한 이미지로부터 합성된 motion blurred images를 생성하는 새로운 방법을 소개하며, 이로 인해서 현실적인 데이터셋 증강이 가능해진다.
1. Introduction
이 작업은 단일 사진의 blind motion deblurring에 관한 것이다. 최근 GAN을 적용한 이미지 초해상도(super-resolution)와 in-painting 관련 분야에서 상당한 발전이 있었다.
*Inpainting: is a conservation process where damaged, deteriorated, or missing parts of an artwork are filled in to present a complete image. This process is commonly used in image restoration.
GAN은 이미지에서 texture details 를 보존하고, 실제 이미지 manifold에 가까운 솔루션을 생성하며, 지각적으로 설득력있어(perceptually convincing) 보이는 이미지를 생성하는 것으로 알려져 있다. GAN을 통한 이미지 초해상도와 이미지 간 변환(image-to-image translation)에 관한 최근 연구에 영감을 받아서, 우리는 deblurring을 이러한 이미지 간 변환의 특별한 케이스로 간주한다.
우리가 소개하는 DeblurGAN은, conditional GAN 과 다중 구성 요소 손실함수를(multi-component loss function) 기반으로 한 접근 방식을 가진다. 이전과 달리 우리는 gradient penalty, perceptual loss를 포함한 Wasserstein GAN를 사용한다. 이는 실제의 선명한 이미지를 지각적으로 구분하기 어려운 솔루션이 만들어지게 하며, 전통적인 MSE, MAE를 최적화 목표로(optimization target) 사용할 때보다 더 세밀한 texture details 을 복원할 수 있게 한다.
We make three contributions.
1. motion deblurring에서 5배 빠른 loss, architecutre 를 가진다.
2. motion deblurring 학습 데이터셋을 생성하기 위해서 random trajectories(궤적)을 기반으로 하는 방법을 제시한다.
(실제 이미지로만 훈련할 때보다 더 나은 결과를 얻을 수 있음)
3. object detection 을 어떻게 향상시킬지에 기반해서 deblurring algorithms 평가를 위한 데이터셋과 방법을 제시한다.
2. Related work
2.1. Image Deblurring
The common formulation of non-uniform blur model is the following:
- IB : a blurred image
- k(M) : unknown blur kernels(*generator는 blur kernel 정보 모름), determined by motion field M.
- IS : sharp latent image (원본 이미지)
- * : convolution
- N : an additive noise
→ Commonly the blur function is unknown, and blind deblurring algorithms estimate both latent sharp image IS and blur kernels k(M).
각 픽셀에 대한 blur function을 찾는 것은 잘못된 문제이며, 대부분의 기존 알고리즘은 heuristics, image statistics and assumptions on the sources of the blur 에 의존한다. 이러한 방법들은 이미지 전반에 걸쳐 균일한 blur를 고려해서 카메라 흔들림으로 인한 blur를 조정한다.
최근 몇 년 동안 합성곱 신경망(CNN)을 기반으로 한 접근 방식들이 등장했다.
2.2. Generative Adversarial Networks
vanilla GAN 의 경우, mode collapse, vanishing gradient 와 같은 문제가 있다.
*mode collapse : GAN에서 생성자가 다양한 이미지를 생성하지 못하고, 비슷한 이미지만 계속 생성하는 경우를 말함
GAN에서 value function을 최소화하는 것은 x에서 데이터와 모델 분포 간의 Jensen-Shannon 발산을 최소화하는 것과 같다. Arjovsky 등은 JS 발산 근사(divergence approximation)로 인해 GAN 훈련에서 발생하는 어려움을 논의하고, Earth-Mover 거리 𝑊(𝑞,𝑝)를 사용할 것을 제안했다. WGAN의 value function은 Kantorovich-Rubinstein duality를 사용하여 구성된다.
- G : Generator / D : Discriminator
- D(x) : 원본 이미지로 판단할 확률 / D(x~) : 생성한 이미지를 원본 이미지로 판단할 확률
WGAN에서 Lipschitz 제약을 강제하기 위해 가중치를 [−𝑐,𝑐]로 클리핑하는 방법을 추가했다.
이에 대한 대안으로 value function에 gradient penalty terms 를 추가할 것을 제안했다. 이 접근 방식은 생성기 아키텍처 선택에 강건하며 거의 하이퍼파라미터 조정이 필요없다. 이는 image deblurring 에 중요하며, 이전에 사용되었던 표준 Deep ResNet architectures 와는 대조적으로 새로운 경량 신경망 (lightweight neural network) 아키텍처를 사용할 수 있게 해준다.
2.3. Conditional Adversarial Networks
Vanilla GAN과 다르게, cGAN은 관찰된 이미지 𝑥, 랜덤 노이즈 벡터 𝑧로부터 𝑦로의 매핑을 학습한다.
판별기에 조건을 추가하고, 생성기에는 U-net 아키텍처 를 사용하며, 마르코프 판별기를 사용하여 레이블 맵으로부터 사진 합성(synthesizing photos from label maps), 에지 맵으로부터 객체 재구성(reconstructing objects from edge maps), 이미지 색칠(colorizing images) 등 많은 작업에서 지각적으로 우수한 결과(perceptually superior results)를 달성한다.
3. The proposed method
3.1. Loss Function
We formulate the loss function as a combination of content and adversarial loss:
모든 실험에서 𝜆는 100으로 설정된다. 입력과 출력 간의 불일치(mismatch)를 벌줄(penalize) 필요가 없기 때문에 판별기에 따로 조건(condition)이 필요없다.
Adversarial loss
Conditional GAN과 관련된 대부분의 논문에서는 loss function으로 vanilla GAN objective를 사용한다. 최근에는 더 안정적이고 높은 품질의 결과를 생성하는 least square GAN을 사용하는 대안이 제안되었다. 우리는 critic function 으로 WGAN-GP를 사용하며, 이는 generator 아키텍처의 선택에 강건하다. (we are able to use architecture much lighter than ResNet152) Loss는 아래와 같이 계산된다.
DeblurGAN은 GAN 구성 요소 없이 훈련하면 수렴하지만, 부드럽고 흐릿한 이미지를 생성한다.
Content loss
'content loss function'에 대한 classical choices 는, raw pixels에 대한 L1 or MAE loss, L2 or MSE loss 이다. 이러한 함수를 유일한 최적화 목표(optimization target)로 사용하면 픽셀 공간에서 가능한 솔루션들의 pixel-wise average로 인해 생성된 이미지에 blurry artifacts가 발생한다.
대신, 우리는 지각 손실(Perceptual Loss)을 채택했다. Perceptual Loss는 단순한 L2 loss이지만, 생성된 이미지와 목표 이미지(target image)의 CNN feature maps 간 차이에 기반하며, 이는 다음과 같이 정의된다.
- 𝜙𝑖,𝑗 VGG19 network 에서 ImageNet 으로 사전 학습된 i-th maxpooling layer 이전의 j-th convolution (activation 후!)에서 얻은 feature map
- 𝑊𝑖,𝑗와 𝐻𝑖,𝑗 : 차원
Perceptual loss는 일반적인 내용을 복원하는 데 중점을 두고, Adversarial loss는 텍스처 세부 사항을 복원하는 데 중점을 둔다. Perceptual loss 없이 또는 단순한 MSE로 픽셀 단위 손실을 사용하여 훈련된 DeblurGAN은 의미 있는 상태로 수렴하지 않는다.
3.2. Network Architecture
Generator CNN architecture is shown in Figure 3,
- 2 strided convolution blocks with stride 1/2
- 9 residual blocks(ResBlocks) and 2 transposed convolution blocks
- Each ResBlock consists of a 'convolution layer', 'instance normalization layer', 'ReLU activation'.
- 각 ResBlock의 첫 번째 합성곱 층 뒤에는 Dropout regularization(0.5) 추가.
- 또한 ResOut이라고 부르는 global skip connection 을 도입 → 이는 '흐릿한 이미지 𝐼𝐵에 '잔차 보정 𝐼𝑅'을 학습하여 선명한 이미지 '𝐼𝑆 = 𝐼𝐵 + 𝐼𝑅' 를 만든다.
이러한 공식은 훈련을 더 빠르게 만들고, 모델이 더 잘 일반화되도록 결과를 낸다.
4. Motion blur generation
훈련을 위해 대응되는 선명한 이미지와 흐릿한 이미지 쌍(image pairs of corresponding sharp and blurred images)을 얻는 쉬운 방법은 없다.
linear motion kernels 을 사용하여 합성적으로 흐릿한 이미지를 생성하거나, 6개의 랜덤 포인트를 샘플링하고 스플라인(spline)을 맞추어 blur kernel 을 생성한다.
우리는 더 현실적이고 복잡한 블러 커널을 시뮬레이션하는 방법을 제안한다;
Boracchi and Foi of random trajectories generation 을 따르며, 궤적 벡터(trajectory vector)에 서브 픽셀 보간(sub-pixel interpolation)을 적용하여 커널을 생성한다. 각 궤적 벡터는 2D 랜덤 운동을 따르는 객체의 이산적 위치(discrete positions)를 나타내는 복소수 벡터입니다. Trajectory generation 은 Markov process 에 의해 이루어지며(*Algorithm 1), 다음 지점 위치는 이전 지점의 velocity and position, gaussian perturbation, impulse perturbation and deterministic inertial component 를 기반으로 무작위로 생성된다.
5. Training Details
- 합성적으로 흐릿하게 만든 이미지와 실제 환경에서 촬영한 이미지의 조합으로 훈련 진행
- 합성 생성된 이미지와 고속 카메라로 촬영한 이미지의 비율은 2:1
- 학습률은 초기에는 generator and critic 모두에 대해 10-4로 설정되고, 첫 150 에포크 이후에는 다음 150 에포크 동안 선형적으로 0으로 감소시킴
- 추론 시에는 드롭아웃과 인스턴스 정규화를 적용
- 모든 모델은 배치 크기 1로 훈련되었으며, 이는 검증에서 더 나은 결과를 보여주었다.
- DeblurGAN 네트워크 하나를 훈련하는 데 6일이 소요되었습니다.
6. Experimental evaluation
6.3. Object Detection benchmark on YOLO
일반적으로 흐릿한 이미지에서는, 선명한 객체 경계가 없고 작은 객체가 감지되지 않기 때문에, 정밀도(precision)이 더 높게 나타난다. DeblurGAN significantly outperforms competitors in terms of recall and F1 score.
7. Conclusion
우리는 kernel-free blind motion deblurring 학습 접근 방식을 설명하고, multi-component loss function 를 사용하여 최적화된 Conditional Adversarial Network 인 DeblurGAN을 소개했다.
이와 더불어, 다양한 blur sources를 모델링할 수 있는 realistic synthetic motion blur 생성을 위한 새로운 방법을 구현했다.
object detection 결과를 기반으로 한 새로운 benchmark and evaluation protocol 을 도입하고, DeblurGAN이 blurred images 감지에 상당히 도움이 된다는 것을 보여주었다.
[Paper]
https://arxiv.org/abs/1711.07064