안녕하세요,
이번에는 새로운 Image Dehazing 논문을 리뷰해보았습니다. haze(안개, 연기, 연무, 먼지, …) 이미지에 존재하는 haze를 없애는(dehazing) 이미지 전처리 과정이라고도 볼 수 있습니다.
제가 취득하고 있는 데이터셋은 에어로졸(연무가 낀) 상황과 정상 상황에 대한 이미지를 취득하고 있습니다. 이는 센서가 스팀으로 인해 주위 환경에서 가시적인 제약이 발생하였을 때 해당 데이터셋으로부터 문제를 어떻게 풀어나갈 것인지 제안하게 되고, 이러한 문제를 해결하기 위한 방향 중 하나는 dehazing 될 수 있습니다.
해당 논문은 image dehazing 테스크에서 최초로 contrastive learning을 적용하여 꽤 높은 인용수를 차지하고 있고, 해당 논문을 기반하여 연구에 활용하면 어떨까 생각이 들어 읽어보게 되었습니다.
(참고)
dehazing 방법론은 prior-base/learning-base로 나뉩니다. 이번 논문은 prior를 사용하지 않는 learning-base 방법론에 속합니다. prior-base는 간단히 말하면 DCP(Dark Channel Prior)를 사용하여 physical scattering model이라는 물리적인 모델링에 기반한 prior를 사용함으로써 좋은 성능 결과를 얻을 수 있다는 장점이 있긴 하지만 복잡한 scene에 대해서는 robust하지 않다는 단점이 있다고 하네요.
리뷰 시작하겠습니다.
Introduction
Haze는 물체의 appearance, contrast에서 눈에 띄도록 노이즈를 유발시키는 중요한 요소입니다. 이러한 haze가 존재하는 scene으로부터 얻어진 이미지는 여러 테스크(detection, object pose estimation, …)에서도 성능에 큰 영향을 끼치기 마련입니다. 따라서, 이러한 dehazing 테스크도 컴퓨터 비전 분야에서 매우 중요한 테스크라고 볼 수 있습니다.
이러한 dehazing 문제를 단순화한 end-to-end 방식의 모델로 CNN 모델들이 많이 제안되었지만 GT(positive, clear image)를 사용하는 reconstruction loss 하나만 사용하게 되면 이미지의 디테일을 효과적으로 표현하는 게 실제로는 어려워 왜곡이 발생하는 경우가 그림(1)(b)와 같이 발생하게 됩니다.
기존 연구들에서는 메모리나, 계산 비용 등을 고려하지 않고 dehazing만 잘하도록 모델의 성능을 향상시키는 것에만 중점을 두어 임베디드 디바이스와 같이 리소스가 제한된 환경에서는 사용을 할 수 없는 상황에 처하게 됩니다. Dehazing 챌린지 대회인 NTIRE 2020에서 1위를 차지한 모델은 4,618만개의 파라미터를 사용한다고 합니다. 그림(2)와 같이 모델 크기와 성능에 대한 trade-off는 당연히 존재합니다. 모델 크기를 그럼 줄이면서 성능을 향상시키기 위한 방법도 고안이 되어야겠네요.
이번 논문의 contribution은 다음과 같습니다.
- 새로운 Dehazing 모델인 ACER-Net 제안
- CR(Contrastive Regularization)을 통해 dehazing 모델의 성능을 더욱 향상시킴
- AM(Adaptive Mixup), DFE(Dynamic Feature Enhancement)를 통해 dehazing 모델이 정보 흐름을 적응적으로 보존하고, 모델의 변환 기능을 향상시킴
Method
본격적으로 방법론에 대해 살펴보도록 하겠습니다.
기존 보다 더 나은 특징을 보존하기 위해 adaptive mixup을 사용하는 AE(Auto Encoder)와 유사한 구조를 사용하였고 추가적으로 공간적인 정보를 fusion하기 위한 모듈로 설계하여 dehazing을 수행하게 됩니다.
learning-base로 수행하는 일반적인 단일 이미지 dehazing 방법론들은 restore된 이미지를 만들기 위해 reconstruction loss와 regularization term을 사용한 식(1)과 같이 dehazing을 수행하게 됩니다.
notation은 다음과 같이 정의 됩니다.
- I: hazy image
- J: I와 대응되는 clear image
- \phi: dehazing 모델
- ||J-\phi(I, w)||: fidelity 정도를 계산하는 term, \mathcal {L_{1}, L_{2}} loss 주로 사용
- \rho: regularization을 통해 자연스러운(부드러운) 이미지를 생성하기 위한 term
- \beta: fidelity와 regularization의 균형을 맞춰주는 파라미터
기존 방법론들은 위와 같은 notation을 따르지만 이번 논문에서는 contrastive learning을 적용하므로 이에 따른 변형된 contrastive regularization term을 통해 restore된 이미지의 퀄리티를 개선해가는 방식을 수행하게 됩니다.
Autoencoder-like Dehazing Network
선행 연구로 제안된 FFA-Net[1]에서 사용된 FA block을 사용하게 됩니다.하지만 FFA-Net 같은 경우 모델이 꽤 컸나 봅니다. 이에 따라 저자는 좀 더 컴팩트한 dehazing 모델을 제안하게 되는데요. 위 그림(3)과 같이 AE와 유사한 encoder/decoder 형식으로 모델의 구조가 나타나있는 것을 확인할 수 있습니다. 4배 다운샘플링 시키는 과정을 거치고 FA block을 통과하면서 low-resolution 공간에서 특징을 표현하는 방법을 학습하도록 합니다. 이후, Dynamic feature enhancement(DFE) 모듈을 통해 공간적으로 구조화된 정보를 fusion하여 변환해주는 과정에 대한 기능적인 부분에서 향상해주는 과정으로 보시면 되겠습니다. 이후 업샘플링 과정을 거치면서 이전에 언급한 adaptive mixup을 수행하면서 특징을 보존하면서 다운샘플링 층과 업샘플링 층 사이의 특징을 fusion하여 사용하게 됩니다.
[1] Xu Qin, Zhilin Wang, Yuanchao Bai, Xiaodong Xie, and Huizhu Jia. Ffa-net: Feature fusion attention network for single image dehazing. In AAAI, pages 11908–11915, 2020.
Adaptive Mixup for Feature Preserving
특징을 보존하게 해주는 Adaptive mixup 과정을 좀 더 살펴보겠습니다.
SSD에서 multi-scale feature map을 다들 아실 것이라고 생각합니다. low-level 특징은 shallow한 층에서 나타나는 특징이죠. 이게 점점 high-level 특징으로 갈수록 shallow한 특징들은 점차 정보를 잃으면서 성능이 저하가 될텐데요. 그럼 이러한 문제를 해결하기 위해 대표적으로는 skip connection과 같은 방법을 통해 문제를 해결해나갔었습니다. 이와 비슷한 컨셉을 가진 FA block에서는 단순 덧셈 연산을 사용한 과정입니다. 하지만 이렇게만 끝내면 안되죠. 업샘플링에 대한 특징과도 연결을 해주어야 shallow한 특징을 잃지 않으니 Adaptive mixup이라는 과정을 적용함으로써 해당 문제를 해결하게 됩니다.
식(2)는 mixup에 대한 출력을 공식화한 식입니다. f_{\uparrow i},f_{\downarrow i}는 각각 i번째 업샘플링/다운샘플링 층의 feature map이고 f_{\uparrow}는 최종 출력 feature map을 나타냅니다. \sigma(\theta_{i})는 i 번째 다운샘플링과 업샘플링 과정에서 입력으로 받는 feature를 fusion하는 i번째 learnable 파라미터가 됩니다. 해당 값은 sigmoid를 통해 확률값을 반환받아 결정되게 되면서 특정 constant로 사용하는 것보다 좀 더 개선된 효과를 달성할 수 있었다고 합니다.
Dynamic Feature Enhancement
일반적으로 그림(5)의 Normal grid kernel에 나와있는 것과 같이 convolution의 filter 크기를 3×3로 많이들 사용하고 있죠. 저자는 해당 과정에 대해 문제를 지적하게 됩니다. 이는 receptive field를 제한하면서 특징 공간이라는 구조화된 정보를 오히려 활용할 수 없는 문제가 발생하게 되는 원인이라고 합니다. 물론 dilation convolution이 receptive field를 확장하면서 이를 해결할 수는 있겠지만, 결과적으로 dehazing을 수행하면서 아티팩트를 생성하는 결과를 초래하기 때문에 부적절하다고 볼 수 있습니다. 이러한 문제를 해결하기 위해 deformable convolution을 적용하여 그림(5)의 빨간 박스와 같이 커널이 동적이고 상황에 따라 유연하게 대처하기 때문에 기존 convolution 보다 좀 더 중요한 정보를 캐치하기 용이하게 됩니다. 이를 적용한 모듈을 Dynamic Feature Enhancement(DFE)라고 하며 이를 통해 adaptive한 모양으로 receptive field를 확장하면서 모델의 변환 능력을 향상시킴으로써 dehazing을 수행합니다. 그림(3)에 나와있는 노란박스가 DFE 모듈을 의미하며, 이는 FA 모듈과 다르게 2개가 하나의 모듈을 의미합니다. 이는 두개의 deformable convolution 레이어를 사용한다는 의미로 사용한 것으로 보입니다. 이를 통해 모델은 RoI 영역을 계산하기 위해 동적으로 구조화된 정보를 fusion 할 수 있게 됩니다.
Contrastive Regularization
기존 Contrastive Learning(CL)에서 사용하는 positive/negative pair라는 개념이 있죠. 이러한 개념을 사용하여 비슷한 샘플끼리는 가깝게, 다른 샘플은 멀게 하는 방법(표현)을 학습하는 것을 목표로 합니다. 저자는 ‘어떻게 하면 좀 더 나은 restore된 이미지를 얻을 수 있을까?’ 라는 것에 대한 해결 방법을 CL의 학습 컨셉에서 영감을 받게 받아 regularization에 적용하여 Contrastive Regularization(CR)를 제안하게 됩니다. 이러한 CR을 적용하기 위해서는 positive sample과 negative sample을 정의해야 하고 각 pair들 간의 contrastive를 가지게 하기 위한 latent feature space를 만드는 것입니다.
각 샘플에 대해 정의를 하면, 다음과 같습니다.
- positive pair: j(clear, positive) ↔ \hat j(restored; dehazing 모델의 출력, anchor)을 통해 생성
- negative pair: \hat j ↔ I(hazy, negative)을 통해 생성
latent feature space 같은 경우 VGG19과 같이 사전학습 모델 G의 중간 feature를 선택하여 사용하게 됩니다. 따라서,언급한 식(1)은 식(3)과 같이 다시 나타낼 수 있습니다. 앞서 언급했던 fidelity term은 결국 restore된 이미지와 GT 이미지 사이의 align을 맞춤으로써 reconstruction loss라고 표현을 하고 있고, \mathcal L_{1} loss를 사용하였다고 합니다. 두 번째 term 같은 경우 조금 변형이 됐죠? G를 통해 동일한 latent feature space에서 I, J, \phi(I, w) 간의 contrastive regularization을 수행하여 restore image \phi(I, w)를 clear image j는 가깝게, hazy image I는 멀게 서로 상반된 형태로 학습하도록 설계합니다. \beta는 이전과 동일하게 reconstruction loss와 CR의 밸런스를 맞추기 위한 하이퍼파라미터가 됩니다.
최종 loss function은 식(4)와 같이 좀 더 공식화를 할 수 있습니다. G_{i}는 사전학습 모델에서 i 번째 latent feature를 추출하는 것을 의미하며 D(\cdot, \cdot)은 L_{1} distance를 계산하는 것을 의미합니다. w_{i}는 wight coefficient를 나타내겠네요. 해당 과정을 통해 end-to-end로 모델을 학습할 수 있게 됩니다. 참고로, distance를 계산하는 방식은 선행 연구에서 사전 학습 모델에서 추출된 mutli feature를 활용하여 예측값과 GT간 시각적 차이를 distance 계산했기 때문에 적용한 것으로 보입니다.
Experiments
Experiment Setup
Datasets
- Synthetic: RESIDE[2]; SOTS
- 5개의 서브셋으로 구성; Indoor Training Set (ITS), Outdoor Training Set (OTS), Synthetic Objective Testing Set (SOTS), Real World task-driven Testing Set (RTTS), Hybrid Subjective Testing Set (HSTS)
- Real-world: Dense-Haze[3], NH-HAZE[4]
[2] Boyi Li, Wenqi Ren, Dengpan Fu, Dacheng Tao, Dan Feng, Wenjun Zeng, and Zhangyang Wang. Benchmarking single-image dehazing and beyond. TIP, 28(1):492–505, 2019.
[3] Codruta O. Ancuti, Cosmin Ancuti, Mateu Sbert, and Radu Timofte. Dense haze: A benchmark for image dehazing with dense-haze and haze-free images. In ICIP, 2019.
[4] C. O. Ancuti, C. Ancuti, and R. Timofte. NH-HAZE: An image dehazing benchmark with nonhomogeneous hazy and haze-free images. CVPRW, 2020.
Evaluation Metric
- PSNR(Peak Signal to Noise Ratio)
- 높을수록 좋음
- 비교 이미지의 품질을 측정
- 데시벨(dB) 단위로 표현
- SSIM(Structural Similarity index)
- 높을수록 좋음
- 비교 이미지의 구조적 유사성(명도, 대비, 구조)을 측정
- -1~1 사이의 값으로 표현 → 1에 가까울수록 유사함
Comparison with State-of-the-art Methods
Results on Synthetic Dataset
먼저, 합성 데이터에서 제안한 AECR-Net의 성능을 살펴보겠습니다. 기존 방법론들에 비해 매우 향상된 모습을 보여주고 있네요. 정성적 결과를 보여주고 있는 그림(6)을 확대해서 보면 AECR-Net은 기존 방법론들에 비해 확실히 아티팩트에 대한 문제를 많이 개선한 모습을 보여주고 있네요.
Results on Real-world Dataset
이번에는 표(1)에서 실제 데이터에서 실험 결과를 살펴보겠습니다. NH-HAZE에서는 기존 모델 대비 우수한 결과를 보여주고 있습니다. Dense-haze에서 PSNR은 기존 모델과 비교하였을 때 모두 우수한 결과를 보여주고 있지만 SSIM이 MSBDN 모델보다 조금 떨어진 결과를 보여주고 있습니다. 해당 MSBDN 모델 같은 경우 파라미터가 AECR-Net 보다 12배 많으므로 좀 더 적은 파라미터로 이정도 성능을 보여준 것이 좀 더 유의미하다는 분석을 하고 있습니다. 또한 해당 데이터셋들은 dense한 haze들이 많으므로 매우 챌린지한 상황에 대한 문제를 해결해야 합니다. 이 말을 좀 더 해석하면 dense한 haze로 인해 이미지 내 존재하는 정보들을 많이 잃게 된다는 의미로도 볼 수 있습니다. 따라서, 이렇게 챌린지한 상황에서도 자연스러운 이미지를 생성하는 것이 중요하게 되겠죠.
위 그림(7), (8)이 해당 데이터셋입니다. 입력으로 들어가는 hazy 상태가 매우 심각하긴 하네요. 이런 상황에서 자연스러운 결과를 나타내기에는 쉽지는 않아 보입니다. 기존 모델들은 색상 왜곡이 심하거나, 텍스처가 손실되는 그런 현상들을 보여주고 있지만 AECR-Net은 다른 방법론들에 비해 육안으로 대충봐도 엄청 자연스러운 결과를 보여주는 이미지를 생성하는 결과를 보여주고 있습니다.
Ablation Study
Effect of Adaptive Mixup Operation
Adaptive Mixup(AM)은 추가적인 파라미터이지만, 개수가 적어 좀 더 유연한 fusion을 함으로써 모델을 개선할 수 있었다고 합니다. 표(2)에서 2행과 5행을 비교하면 사용함에 따라 좀 더 개선되는 결과를 보이고 있네요.
Effect of DFE Module
해당 모듈을 사용함으로써 베이스 모델에서 1.65dB 정도로 성능이 대폭 오르네요. DFE가 AM보다 좀 더 높은 성능 향상을 해주므로 좀 더 중요한 요소라고 볼 수 있겠네요.
Effect of Contrastive Regularization
6행과 같이 negative smaple 사용 여부에 따라 CR의 효과를 보여줍니다. *가 붙으면 학습에 positive sample만 사용하는 것입니다. CR에 positive만 사용하였을 때도 5행보다 성능이 향상되었으며, negative 까지 고려하니 성능이 더 올라 학습을 위해서는 negative, positive를 둘 다 고려해야 한다는 점을 실험을 통해 보여주네요.
Conclusion
이번에는 Dehazing 모델인 AECR-Net을 살펴보았습니다. 해당 모델은 CR(Contrastive Regularization)을 통해 CL(Contrastive Learning)과 같은 학습 방법을 설계하였습니다. 또한 AM(Adaptive Mixup)과 DFE(Dynamic Feature Enhancement)을 적용하여 feature를 용이하게 만들어 활용을 했습니다.
이상으로 이번 리뷰 마치도록 하겠습니다.
감사합니다.
안녕하세요 희진님 좋은 리뷰 감사합니다.
1. ‘Dynamic Feature Enhancement’ 파트에서 deformable convolution와 같은 동적인 커널을 적용시킨다고 하셨는데 어떻게 커널이 동적으로 변하는지가 궁금합니다.
2. Contrastive Regularization 부분에서 Negative sample을 만들어내는 방식이 궁금한데 데이터셋은 Anchor 이미지처럼 clean한 이미지만 있고 이를 hazing모델에 넣어서 Negative 샘플을 만들어내는건가요?
3. Contrastive Regularization에서 얼마만큼의 Negative 샘플을 사용하는지도 궁금합니다.
감사합니다.
안녕하세요. 좋을 리뷰 감사합니다.
contrastive learning을 보고 ‘오 머신러닝팀이 읽은 논문이구나’ 싶어서 들어왔는데 image dehazing 논문이더라구요ㅎㅎ오히려 새로운 task에서 contrastive learning을 적용한 논문이라 흥미롭게 읽었습니다.
논문 리뷰를 읽어보니 논문의 저자가 기존의 방법론에 비해서 많이 개선해보고자 하는 것이 잘 느껴진 논문인 것 같습니다. 궁금한 부분이 있는데, negative는 input으로 들어온 hazing한 sample이라고 이해했고 이를 restore한 것이 anchor라고 이해했는데, 오히려 positive는 어떻게 얻지?란 생각이 들었습니다. positive는 gt라고 이해하면 되는 걸까요?
여기서 질문을 마무리하려고 했는데 대부분 contrastive learning을 수행할 때는 positive에 비해서 negative가 좀 더 많은 경우가 많은데, 여기서는 anchor당 하나의 positive, negative가 대응되는 느낌으로 이해하였는데 맞을까요?
감사합니다.