현실 데이터를 다루다보면 여러가지 영향을 많이 받게 됩니다. 사람이 봤을때 사진이 어둡게 되면 물체를 식별하기 어렵듯이 기계가 학습할 때 조도로 인해 학습 성능에 영향을 줄 수도 있습니다. 특히, 물체를 탐지하는 모델일 경우 조도가 어두운 사진에서 사람이나 특정한 물체를 찾아내는 데 어려울 수 있겠죠이런 이미지 데이터의 조도를 전처리하는데 꽤 어려운 점이 있습니다. 사진의 조도는 균일하지 않기 때문이죠. 창문 주변은 밝지만 물체는 어두울 수도 있어 사진 전체의 밝기를 올리면 오히려 밝았던 물체들이 너무 밝아질 수도 있습니다. 따라서 밝은 영역은 그대로 또는 어둡게, 어두운 영역은 밝게 바꿔야합니다. 이런 작업을 딥러닝 모델을 통해 해결한 모델이 Zero-DCE입니다. 이번 글에서는 Zero-DCE에 대해 설명드리겠습니다.
⭐️ Summary
- 많은 사진들은 종종 unbalance한 조명 조건을 가지고 있음. 이로 인해 부정확한 정보를 얻거나 만족스럽지 못한 퀄리티의 사진을 얻을 수 있음. 이 연구는 딥러닝 기반의 zero-reference deep curve estimation(Zero-DCE) 모델을 통해 어두운 이미지를 개선함.
- paired, unpaired data가 필요없는 zero-reference 기법을 만들기 위해 4개의 loss를 사용함
- 사진 편집 시 사용되는 곡선 조정을 참고하여 저조도 이미지를 자동으로 향상된 버전으로 매핑할 수 있는 곡선을 deep convolutional neural network를 이용해 설계함
🍭 Method
- higher-order curve: 복잡한 저조도 조건에 대응할 수 있음
- pixel-wise curve: 각 픽셀에 대해 최적의 곡선을 적용, 지역적인 특성도 고려함
🦄 Future Works
- 의미론적 정보를 사용: 이미지 내의 사람, 동물, 물체 등을 식별해 다르게 적용하면 어떨지
- 노이즈의 영향 고려
🔥 기존의 문제점
- 많은 사진들은 조명이 너무 약하거나 일부만 밝게 나타나는 문제가 있을 수 있음
- 이로 인해 정보가 부족해질 수 있으며 객체나 얼굴 인식이 부정확할 수 있는 문제를 초래함
기존 모델들의 문제점들을 극복하기 위한 방법
- image-to-image mapping으로 저조도 이미지를 극복했음
- Zero-DCE는 학습을 위해 paired 또는 unpaired data가 필요함
- CNN 기반이나 GAN 기반의 모델은 얼굴 부분은 너무 어둡게, 캐비닛 부분은 너무 밝게 만들어 둘 다 노출이 불균형하게 조정됨
관련 논문
- Conventional Methods
- Data-Driven Methods
🔍 Method
Curve Light-Enhancement 조건
- 각 픽셀값을 0,1 사이로 정규화 시킴 → overflow로 인한 정보 손실을 피하기 위함
- 곡선은 단조롭게 설계되어야함 → 픽셀간의 contrast를 유지하기 위함
gradient back propagation 과정에서 미분 가능해야 함
- LE(I(x);α): input image의 enhance된 버전
- LE-curve는 RGB 채널 세개에 각각 따로 적용됨
- 본래의 색상을 더 잘 보존하고 과도한 채도의 위험을 줄임
higher-order curve
- LE-curve를 여러번 반복적으로 적용할 수 있어 어려운 저조명 상황에 대응할 수 있음
- 논문에서는 8번 적용했을 때 만족스러운 결과를 받을 수 있었음
- alpha: pixel-wise parameter
Pixel-Wise Curve
- 보통의 curve 기반의 이미지 향상의 경우 global한 매핑을 적용하기 때문에 이미지의 특정 영역이 과도하게 향상되거나 미향상될 수 있음 → local 영역도 매핑할 수 있어야 함
- A: parameter map을 적용함
그 결과 값의 단조 관계가 여전히 유지될 수 있음
- 위 그림은 3개의 채널에 최적화된 parameter map을 보여줌
- 이 map으로 픽셀별 curve mapping을 통해 향상된 이미지를 얻을 수 있음
- 즉, 밝은 영역은 유지하며 어두운 영역은 밝게 향상시킬 수 있음
DCE-Net
- input image와 가장 적합한 curve parameter map을 fit하도록 학습함
- input: 저조도 이미지, output: curve
- model
- 7개의 convolution layer를 갖춘 CNN, kernel size 3x3, stride 1,
- ReLU activation function
- 인접 픽셀의 관계를 줄이기 위해 down-sampling, batch normalization 적용
- 마지막 convolutional layer에 Tanh activation function
Non-Reference Loss Functions
- zero-reference learning을 위해 4개의 non-reference loss를 사용함
- 향상된 이미지 품질을 평가하기 위한 방법임
Spatial Consistency Loss
- 이웃된 영역의 차이 비교
- K: local region 갯수 → local region을 4x4로 지정함
- 오메가: i를 중심으로 4개의 이웃된 영역(top, down, left, right)
- Y: 향상된 이미지의 local region 평균 강도
- I: 원본 이미지의 local region 평균 강도
Exposure Control Loss
- 노출이 과도하게 많거나 부족한 영역을 제한하기 위한 목적 함수
- local region의 평균 강도 값과 잘 노출된 수준 E 사이의 거리를 측정함
- E는 RGB 컬러 공간에서 회색 수준을 E로 설정한느 방법을 활용
- 0.6으로 설정함(0.4-0.7) 범위 내에서는 비슷한 성능을 보임
- M: overlap 되지 않는 local regions(16 x 16)의 수
Color Constancy Loss
- 향상된 이미지에서 색상이 일관되게 유지되도록 하는 목적함수
- 다른 채널간의 평균 강도 값의 차이를 최소화하여 전체 이미지에서 색상 일관성을 유지함
- 앱실론: RGB 채널 쌍의 집합
- J: 향상된 이미지에서 p 채널의 평균 강도 값
Illumination Smoothness Loss
- 인적한 픽셀 사이의 단조 관계를 유지하기 위한 목적 함수
- A: n번째의 c 채널의 parameter map
- delta: x와 y 방향으로의 기울기 → 수직, 수평 방향의 기울기
- 기울기들의 합: 조명의 변화를 측정함
Total Loss
🧪 Experiments
- 사용한 데이터셋: SICE dataset(3,022장, 2,422장-train, 600장-validation)
- image resize shape: 512x512
- batch size: 8
- 각 layer의 filter는 standard zero mean과 0.02 standard deviation gaussian function으로 초기화함
- ADAM optimizer 활용
- learning rate: 0.0001
Ablation Study
Contribution of Each Loss
- 위 그림은 각각 loss가 없을 때의 결과를 보여줌
- spatial consistency loss가 없을 경우 인접한 영역들의 차이가 유지되지 않음
- exposure control loss가 없을 경우 낮은 밝기의 영역이 향상되지 않음
- color consistency loss가 없을 경우 색변형이 생김
- illumination smoothness loss가 없을 경우 인접한 영역간의 상관관계가 떨어져 artifact가 발생함
Effect of Parameter Settings
parameter 실험 결과
Impact of Training Data
학습데이터 impact를 테스트하기 위해 여러가지 데이터셋을 이용해 실험함
- Low: 900개의 low-light image
- LargeL: DARK FACE dataset 9000개의 unlabeled low-light images
- LarghLH: 4800개의 다양한 노출 이미지
이를 통해, 다양한 노출이 있는 학습 데이터를 사용해야하는 것을 알 수 있음
🗒️ Benchmark Evaluations
- SOTA 모델과 정량적, 정성적 실험을 통해 성능을 비교함
- 3개의 conventional methods: SRIE, LIME
- 2개의 CNN-based methods: RetinexNet
- 1개의 GAN-based method: Enlighten-GAN
Visual and Perceptual Comparisons
- 아래의 기준으로 1부터 5까지 점수화함
- 과다, 과소 노출되는 artifacts 또는 region이 있는지
- 결과 색상이 어긋나는지
- 자연스럽지 않은 텍스처나 노이즈가 있는지
- NPE, LIME, MEF, DICM, VV: 데이터셋
- User Study가 높을수록/Perceptual index가 낮을수록 좋은 결과를 나타냄
- 그 결과 Zero-DCE가 가장 좋은 성능의 user study score, PI score를 보임
Quantitative Comparisons
Peak Signal-to-Noise Ratio(PSNR,dB), Structural Similarity (SSIM), MAE로 성능을 측정함. 빨간색이 가장 좋은 결과, 파란색이 두번째 좋은 결과
runtime 측정 결과. best: Zero-DCE, 2nd best: EnlightenGAN
Face Detection in the Dark
어두운 데이터를 이용해 face detection 실험으로 저조도 이미지의 향상된 버전을 확인함
- 향상된 이미지의 경우 detect한 face의 수가 증가했음

🧐 Conclusion
- 저조도 이미지 개선을 위한 deep neural network를 제안함
- zero reference의 end-to-end 모델을 훈련할 수 있음
- 기존의 조도 개선 방법들에 비해 성능이 향상된 것을 확인함
- 향후, 의미론적 정보를 도입하고 노이즈의 영향을 고려할 예정
Outro.
zero-dce의 가장 큰 장점은 reference가 없는 것이라고 생각합니다. 간단한 convolution layer로만도 이런 결과를 만들어내는 것 또한 속도 측면에서도 좋을 것 같아요. 다만, 얼굴 데이터에 활용해봤을때 아쉽게도 약간 노란색으로 변하고 뿌얘지는 성향이 있었습니다. 하나의 물체가 사진에 차지하는 비율이 크다면 조금 고려해봐야겠지만 도로나 풍경 사진들은 꽤 만족스러운 성능을 보이지 않을까요? 지금까지 읽어주셔서 감사합니다! 🫧