논문 리뷰/Image Enhancement

[논문 리뷰] Learning to See in the Dark(SID)

dhkang0428 2024. 7. 23. 10:51

논문 링크: https://arxiv.org/pdf/1805.01934.pdf

See-in-the-Dark

초저조도 상태의 이미지 촬영은 광자 수가 적고 신호 대 잡음 비율(SNR)이 낮아 어렵습니다. 

초저조도 상태에서 short-exposure 이미지는 노이즈, long-exposure 이미지는 흐릿함의 문제가 발생합니다.

다른 다양한 노이즈, 흐림 제거 및 개선 기법이 제안되었지만 제한적인 성능을 가졌습니다.

따라서 본 논문의 저자 Chen Chen et al.는 fully-convolutional network의  end-to-end 학습 기반 초저조도 이미지 처리 파이프라인을 제안합니다.

 

Introduction

 

위 사진들은 광학 장비에서 빛의 감도를 측정하는 지표인 ISO에 따른 초저조도에서 촬영된 이미지입니다.

조도는 0.1 lux 미만이며, 노출 시간은 1/30초, 조리개는 f/5.6입니다. ISO 8000의 사진은 사실상 검은 이미지를 생성합니다.ISO 409,600의 사진은 상대적으로 밝지만 여전히 어둡고 노이즈가 많으며 색상이 왜곡되어 있습니다.

 

높은 ISO 설정은 밝기를 증가시키지만 노이즈또한 증폭시킵니다. 스케일링이나 히스토그램 스트레칭과 같은 후처리 기법은 SNR 문제를 완전히 해결하지 못합니다. 

또한, 초저조도에서의 빠른 이미지 촬영은 조리개를 개방하거나 노출 시간을 늘리는 등의 물리적인 방법으로도 제한적입니다.

 

이러한 문제를 해결하기 위해 연구자들이 연구하고 제안해온 기법들은 어느 정도 어두운 조건에서의 이미지를 가정하고 중간 수준의 노이즈를 다루는데 이는 초저조도와는 다른 환경입니다.

따라서 본 논문에서는 짧은 노출 시간에서의 초저조도 이미지 촬영에 초점을 맞추고 있습니다. 논문에서 제안하는 이미지 처리 파이프라인은 color transformations, demosaicing, noise reduction, image enhancement 등을 포함하며 DNN를 사용하여 end-to-end로 학습됩니다. 

Related Work

저조도 이미지 처리 방법을 세분화하여 살펴보겠습니다.

 

Image denoising

기존의 저수준 이미지 노이즈 제거 방법에는 total variation ,wavelet-domain processing,

sparse coding, nuclear norm minimization ,3D transform-domain filtering (BM3D) 등이 존재합니다.

또한 DNN를 활용한 이미지 노이즈 제거 방법에는 stacked sparse denoising auto-encoders (SSDA), trainable nonlinear reaction diffusion (TNRD), multi-layer perceptrons, deep autoencoders, convolutional networks 등이 존재합니다.

DNN 활용 노이즈 제거 방법이 더 최신 기법임에도 불구하고, 가우시안 노이즈와 소금 후추 노이즈가 추가된 합성 데이터 평가에서는 BM3D가 최신 기법보다 우수한 결과를 나타냈습니다.

 

Joint denoising, demosaicing, DNN을 사용한 노이즈 제거 방법은 실제 초저조도 이미지가 아닌, 합성 Bayer 패턴(색상 입히기)과 합성 노이즈를 기반으로 평가되었습니다. 

 

단일 이미지 노이즈 제거 방법뿐만 아니라, 다중 이미지 노이즈 제거 방법도 연구되어 왔으며, 이는 한 scene으로부터 더 많은 정보를 수집할 수 있어 더 좋은 성능을 보여줍니다.

Liu et al.과 Hasinoff et al.은 동일한 장면에서 촬영된 이미지 버스트의 노이즈를 제거하는 방식을 제안했습니다.

 

Low-light image enhancement

전통적인 저조도 이미지 대비 개선을 위한 방법은 전체 이미지의 히스토그램을 균등화하는 히스토그램 평활화, 어두운 영역의 밝기를 증가시키고 밝은 픽셀을 압축하는 감마 보정이 있습니다.

더 고수준의 방법으로는 inverse dark channel prior, the wavelet transform, the Retinex model, illumination map estimation 등의 방법이 있습니다.

위 방법들은 이미지가 scene의 내용을 잘 표현하고 있다고 가정합니다.

때문에 이미지 노이즈를 명시적으로 모델링하지 않으며, 후처리를 통해 노이즈를 제거합니다.
반면에, 본 논문은 초저조도 조건에서 발생하는 심한 노이즈와 색상 왜곡을 고려합니다.

 

Noisy image datasets

기존의 이미지 노이즈 제거 방법은 깨끗한 이미지에 가우시안 노이즈 또는 소금 후추 노이즈를 추가한 합성 데이터에서 평가되었습니다.

몇 가지 예시로 RENOIR 데이터셋 이미지 쌍은 공간적 정렬이 잘못되어 있었고, 이미지 버스트를 사용한 저조도 조건 잡음 감소 연구에서는 데이터셋에 target 데이터가 포함되지 않았습니다.

Google HD R+ 데이터셋은 초저조도 이미지를 대상으로 하지 않았고, Darmstadt Noise Dataset (DND)는 낮에 촬영되었으며 저조도 이미지 처리의 평가에 적합하지 않습니다.
원시 저조도 이미지와 해당 target 데이터를 포함하는 공개 데이터셋은 존재하지 않으므로, 저자는 이러한 데이터셋을 직접 수집했습니다.

 

See-in-the-Dark Dataset

위에서 설명한 바와 같이, 저자는 "See-in-the-Dark (SID)"라는 새로운 데이터셋을 수집했습니다.

해당 데이터셋은 5094개의 원시 short-exposure 이미지와 이에 해당되는 long-exposure target 이미지가 포함되어 있습니다. 위 사진들은 long-exposure target 이미지의 몇 가지 예시입니다.

또한 이미지 버스트로 인해 이 데이터셋의 여러 개의 hort-exposure 이미지는 long-exposure target 이미지가 될 수 있습니다.

이미지 버스트로 인해 생성된 이미지 외의 long-exposure target 이미지의 총 개수는 424개입니다.이는 달빛이나 가로등 아래에서 0.2 lux ~ 5 lux의 조도로 촬영된 실외 이미지와 일반 조명이 꺼지고 밀폐되어 0.03 lux ~ 0.3 lux의 조도로 촬영된 실내 이미지로 구성되어 있습니다.

위 표는 촬영된 데이터셋을 요약하고 있습니다.

위 표에서 확인할 수 있듯이 원시 short-exposure 이미지는 1/30 ~ 1/10초의 노출 시간으로 촬영되었고, 해당하는  long-exposure target 이미지는 이보다 100배에서 300배 더 긴 노출 시간으로 촬영되었습니다.

 long-exposure target 이미지에는 일부 노이즈가 있을 수 있지만, 지각 품질(perceptual quality)이 높아 충분히 target data로 사용될 수 있습니다.

 

Method

 

(1) Pipeline

위 그림의 (a)는 기존의 이미지 처리 파이프라인의 구조입니다. 

(a) - 1 전통적 이미지 처리 파이프라인은 이미지 센서로부터 원시 데이터를 받아, white balance, demosaicing, denoising, sharpening, color space conversion, gamma correction 등의 모듈을 적용합니다.  

(a) - 2 Jiang et al.은 지역적이고, 선형적이고, 학습된 L3 필터의 대규모 컬렉션 사용을 제안했지만, 전통적인 파이프라인이나 L3 파이프라인은 초저조도 조건에서의 이미지 처리가 어려워 매우 낮은 SNR을 처리할 수 없습니다.

(a) - 3 Hasinoff et al.은 스마트폰 카메라를 위한 버스트 이미지 파이프라인을 제안하여 여러 이미지를 정렬, 블랜딩하여 좋은 결과를 냈지만, 밀도 높은 correspondence estimation가 필요해 복잡하고, 많은 수의 이미지 중에서 품질이 가장 좋은 이미지를 선택하는 기술인 Lucky imaging을 사용하기 때문에 비디오 촬영으로의 확장이 어렵습니다.

 

저자는 저조도 이미지의 직접적이고 빠른 단일 이미지 처리를 위해 end-to-end 학습을 제안합니다. 

위 그림의 (b)는 본 논문의 파이프라인 구조입니다. 기본 architecture는 U-net 입니다.

① Bayer filter로, 입력 이미지를 R, G, B, G 네 개의 채널로 패킹하고 해상도를 절반으로 줄입니다. 

여기서 Bayer filter는 디지털 이미지 센서에서 컬러 정보를 캡처하기 위해 사용되는 일종의 컬러 필터입니다.

② 이미지의 각 픽셀에서 Black Level 값을 빼줍니다.

여기서 Black Level은 이미지 센서에 기록되는 최소 신호 레벨로, 어두운 영역에서의 노이즈나 부정확한 신호를 나타냅니다.

③ 이미지를 원하는 증폭 비율로 스케일링합니다.

논 논문에서는 x100이나 x300과 같은 값을 사용했습니다.

④ 패킹되고 증폭된 이미지는 fully-convolutional network의 입력이 됩니다.

fully-convolutional network의 출력은 입력 이미지에 비해 반으로 줄어든 해상도를 가진 12채널의 이미지입니다.

⑤ fully-convolutional network의 출력은 하위 픽셀 레이어를 통해 원래의 해상도가 복원됩니다.

위 사진들은 같은 사진의 서로 다른 증폭 비율에 대한 결과입니다.

③에 대해 부연 설명을 하자면, 본 논문의 파이프라인에서 증폭 비율은 카메라 ISO 설정과 유사하게 입력으로 제공됩니다.

증폭 비율을 설정하여 이미지의 밝기를 조정할 수 있고, 테스트 시 파이프라인이 블라인드 노이즈 억제와 색상 변환을 수행합니다. 또한  네트워크에서 처리된 이미지는 직접적으로 sRGB 공간으로 출력됩니다.

(2) Training

④의 네트워크는 L1 loss와 Adam optimizer로 학습됩니다. 

See-in-the-Dark Dataset 파트에서 설명했듯이, input data는 short-exposure 이미지이고, target data는 long-exposure 이미지입니다.

각 카메라에 대해서 하나의 네트워크가 학습되며, 증폭 비율은 위에서 설명한 바와 같이 input 이미지와 target 이미지의 노출 차이만큼 설정되며, 학습과 테스트 모두에 적용됩니다.

이미지에서 512x512만큼의 패치를 자르고 무작위로 뒤집고 회전시켜 데이터 증강을 수행합니다.

4000 epoch 동안 진행된 학습에서 learning rate는 초기에는 10^-4로 설정하고 2000 epoch 이후에는 10^-5로 설정하였습니다.

Experiments

(1) Qualitative results and perceptual experiments

Comparison to traditional pipeline

전통적 이미지 처리 파이프라인은 디지털 데이터를 표현하는 데 사용되는 비트 수를 줄여서 데이터 크기를 감소시키는 과정인 양자화 이전에 이미지를 증폭시킵니다. 위 사진에서 확인할 수 있듯이, 초저조도 조건에서 전통적 이미지 처리 파이프라인으로 생성된 이미지는 심각한 노이즈와 색상 왜곡이 발생합니다. 

Comparison to denoising and burst processing

위 사진은 전통적 파이프라인과 BM3D와 논 논문의 파이프라인의 노이즈 제거 결과물입니다.

위에서 설명한 바와 같이, 실제 데이터를 통한 평가에서 BM3D가 최신의 노이즈 제거 모델보다 좋은 성능을 보였습니다.

때문에 본 논문에서는 BM3D를 target data의 노이즈 제거 알고리즘으로 사용합니다.

BM3D에 대해서 자세히 설명하자면, BM3D는 비블라인드 노이즈 제거 방법으로, 노이즈 수준을 외부 매개변수로 지정해야합니다. 수준 설정을 너무 낮게 하면 이미지에 심각한 노이즈를 남길 수 있고, 너무 높게하면 이미지를 과도하게 매끄럽게 만들 수 있습니다.

실제 초저조도 사진의 경우 모든 지역에서 균일한 노이즈를 갖지 않기 때문에 위 두가지 문제가 동시에 발생할 수 있습니다.

이에 반해, 본 논문의 파이프라인은 초저조도 이미지에 지역적으로 적용할 수 있는 비블라인드 노이즈 제거를 수행합니다.

 

버스트 노이즈 제거의 경우 정렬된 8장의 이미지 시퀀스의 픽셀 단위의 중간값을 사용하여 수행됩니다.

 먼저 taget data의 화이트 밸런스 계수 사용하여 색상 편향을 줄이고 target data와 동일한 픽셀의 중간값을 갖도록 노이즈를 제거할 이미지를 채널별로 조정합니다. 이를 통해 노이즈를 제거할 이미지의 색상과 밝기가 target data와 유사해집니다.

위 표는 본 논문의 파이프라인, BM3D, 버스트를 통해 노이즈를 제거하여 생성된 이미지의 상대적인 성능 지표를 나타냅니다. 본 논문의 파이프라인의 성능이 다른 두 기법을 앞서는 것을 확인할 수 있습니다.

Qualitative results on smartphone images

 

저자는 iPhone 6s 스마트폰에서 촬영한 이미지에 SID의 Sony 하위집합으로 훈련된 모델을 적용하였습니다.

또한 ISO 및 기타 파라미터를 수동으로 설정하기 위해 앱을 사용하고, 이미지 처리를 위해 원시 데이터를 입력했습니다.

위 사진은 iPhone 6s 스마트폰에서 촬영한 사진을 전통적 파이프라인으로 처리한 결과와 본 논문의 파이프라인으로 처리한 결과입니다. 

전통적 파이프라인으로 처리된 초저조도 이미지는 심각한 노이즈와 색상 왜곡을 가지고 있는 반면, 본 논문의 파이프라인으로 처리된 이미지는 상대적으로 좋은 대비와. 낮은 노이즈, 조정된 색상을 갖습니다.

(2) Controlled experiments

위 표의 첫 번째 행 Peak Signal-to-Noise Ratio (PSNR) 및 Structural SIMilarity (SSIM) 측면에서 본 논문의 파이프라인의 정확도를 보고합니다.

Network structure

위 표의 두 번째 행은 본 논문의 기본 architecture인 U-net을 CAN으로 대체한 결과를 보고합니다.

U-net에서 생성된 이미지는 두 세트 모두 CAN에서 생성된 이미지보다 높은 PSNR을 가집니다. CAN에서 생성된 이미지는 U-net에 비해 더 높은 SSIM을 가지지만, 색상 왜곡이 발생할 수 있습니다.

위 사진은 Fuji x300 세트에서 촬영한 이미지를 각 네트워크로 처리한 결과입니다.

CAN에서 생성된 이미지에 색상 왜곡이 발생합니다.

Input color space

위 표의 세 번째 행은 전통적 이미지 처리 파이프라인에 의해 처리된 sRGB 이미지를 본 논문의 파이프라인으로 처리한 결과를 나타냅니다.

기존의 노이즈 제거 방법은 전통적 이미지 처리 파이프라인에 의해 처리된 sRGB 이미지에서 작동하지만, 초저조도 환경에서는 원시 센서 데이터에 직접 적용하는 것이 효과적입니다.

Loss functions

위 표의 네 번째, 다섯 번째 행은 기존에 사용하던 L1 손실 함수를 L2나 SSIM 손실 함수로 대체한 결과를 나타냅니다.

다른 손실 함수를 사용해도 특별한 시각적 이점을 얻지는 않습니다.

Data arrangement

위 표의 여섯 번째 행은 Bayer 데이터를 패킹하지 않고 마스킹한 경우를 나타냅니다.

마스킹의 경우 패킹보다 낮은 PSNR과 SSIM을 보여줍니다.

마스킹 방식의 단점은 출력의 일부 색상의 손실입니다.

위 표의 일곱 번째 행은 X-Trans 데이터를 3x3 블록 배열에서 6x6 블록 배열로 변경한 결과를 나타냅니다.

6x6 블록 배열이 더 낮은 PSNR과 SSIM을 보여줍니다.

Postprocessing

위 표의 여덟 번째 행은 히스토그램 스트레칭을 target image에 적용한 결과를 나타냅니다.

본 논문의 파이프라인이 히스토그램 스트레칭을 시도할 때 훈련 데이터에 과적합되기 쉬우며, 네트워크의 정확도가 크게 감소하는 것을 확인할 수 있습니다.

위 사진은 히스토그램 스트레칭을 적용한 target image와 적용하지 않은 target image를 보여줍니다.

히스토그램 스트레칭을 적용하지 않은 결과가 적용한 target image에 비해 더 어둡고 더 깨끗한 것을 확인할 수 있습니다.

Discussion

전통적인 이미지 처리 기술로는 낮은 광자 수와 SNR로 인해 어려운 고속 저조도 이미지 촬영을 본 논문의 See-in-the-Dark(SID) 데이터셋과 전통적 파이프라인을 개선한 파이프라인을 통해 지원이 가능합니다.

실험 결과 SID 데이터에서의 노이즈 억제와 정확한 색상 변환의 유망한 결과를 보였습니다.

하지만, SID 데이터셋에는 동적인 객체와 인간이 포함되지 않아 제한적인 부분이 있으며, 증폭 비율을 외부에서 선택해야합니다. 또한 특정 카메라 센서에 일반화되지 않은 전용 네트워크가 학습되어야 한다고 가정하고 있습니다.

 

마치며

최근 image enhancement에 관심이 생겨 SOTA 논문을 찾던 중 이 논문을 발견하게 되었습니다. 특이한 점은 논문의 제목인 See-in-the-Dark가 모델의 이름이 아닌 데이터셋의 이름인 점입니다. 계속해서 다른 기법들과의 결과를 비교한 사진들을 제시해 직관적인 이해가 용이했고, 결과의 차이가 유의미했습니다. 한가지 아쉬운 부분은 fully-convolutional network의 세부적인 구조를 같이 보여줬으면 어떨까하는 것입니다. 이상으로 Learning to See in the Dark 논문 리뷰를 마치겠습니다. 논문 내용에 대해 질문해주시거나 틀린 부분 지적해주시면 감사드리겠습니다.