https://github.com/saeed-anwar/UWCNN
https://li-chongyi.github.io/proj_underwater_image_synthesis.html
Introduction
수중에서 촬영된 이미지나 비디오의 visual quality나 딥러닝기반 pattern recognition, object detection, key feature extraction모델에적용하였을 때의 성능은 기대에 미치지 못한다. 그 이유는 대부분의 딥러닝 모델들이 high quality의 이미지나 clear 이미지를 입력으로 가정해 설계된 반면 수중 이미지는 adverse effects of light absorption 이나 scattering 등의 문제가 발생하기 때문이다. 또한 수중에서 빛이 전파할때는 빛의 파장에 따라서 selective attenuation(선택적 감쇠)의 특성을 갖기 때문에 adverse effects of light absorption 이나 scattering 등의 문제가 더 크게 나타난다. 이는 다음 그림을 통해서 알 수 있으며, 이 그림은 빛의 파장에 따른 감쇠정도를 나타낸다.
이러한 absorption 이나 scattering 문제는 수중 장면의 이해나 인식에 방해가 된다. 기존 image enhancement method에 수중이미지를 사용하면 enhancement의 한계가 있음을 확인했다. 또한 학습 데이터의 부족으로 딥러닝 기반 classification, analysis, segmentation,super-resolution, recognition 등 을 성공적으로 수행하는 모델들이 수중이미지에서는 효과적이지 못했다. 따라서 이러한 딥러닝 기반의 모델들을 효과적으로 적용하기 위해서라도 수중이미지의 synthesis and enhancement methods를 개발하는 것은 반드시 필요하다.
따라서 논문에서는 수중 under scene prior를 사용해 새로운 수중 이미지 합성 알고리즘을 제안하고, 수중 이미지나 비디오의 enhancement를 위한 robust하고 데이터 중심적 솔루션을 설계하였다. 논문에서 제안하는 방법은 우수한 강인성, 정확도 그리고 다양한 물 유형에 대한 유연성을 나타냈다. 논문에서 제안하는 복잡바고 비선형인 수중이미지의 솔루션은 end-to-end 방식이며, 모델은 degrade된 수중 이미지를 강인하게 복원하며, 외형과 색도 정확히 reconstruct한다. 결과적으로 논문의 Contribution은 다음과 같이 정리할 수 있다.
- underwater scene prior 기반의 새로운 수중 합성 이미지를 생성하는 알고리즘을 제안한다. underwater scene prior는 수중에서 일어나는 다양한 degrade 현상을 시뮬레이션한 이미지이다. 해당 연구는 (저자가 말하는 기준으로) 수중에서의 다양한 degrade 현상을 시뮬레이션한 첫번째 수중 이미지 합성 알고리즘이다.
- 논문에서는 clear한 수중 이미지를 reconstruct하는 새로운 CNN 모델을 제안한다. 이때 original structure와 texture는 joint optimizing multi-term loss를 통해 보존된다. 해당 모델은 light-weight를 갖고 데이터를 효율적으로 학습하게 설계돼 수중 비디오에서도 frame-by-frame enhancement로 확장이 가능하다.
- 해당 모델은 실제 수중이미지와 합성된 이미지와 비디오에서 다양한 색과 시각적 특성을 잘 일반화한다. 게다가 lightweight 네트워크 구조는 effective prior information을 네트워크에 잘 결합해 좋은 성능을 달성했다.
Underwater image formulation model
전통적으로 수중 이미지 복원 방법을 다음과 같은 수식으로 표현할 수 있다.
해당 수식에서 U(x)는 촬영된 수중 이미지를 , I(x)는 clear latent image(scene radiance)이다. 이 논문에서는 U(x)를 I(x)로 recover하는 것이 목표이다. B는 Homogeneous global background light, λ
는 빛의 파장을 의미하고, x는 수중 이미지의 한 좌표를 의미한다. The medium energy ratio T(x) 는 수중의 한 좌표 x로부터 반사된 후 카메라에 도달한 scene radiance의 비율을 의미한다. T(x)를 다르게 빛의 파장 λ와 scene point x로부터 카메라까지의 거리 d(x)로 표현하면 다음과 같다. 여기서 β는 wavelength-depended medium attenuation coefficient이며 이는 Fig1에서 나타냈다.
(생략) degradation 수중 이미지 model은 많이 알려진 degradation model(대표적으로 image superresolution, image deblurring, image dehazing)과는 다른 형태를 갖는데, 그나마 degazing model과 유사한 형태를 갖지만 파장의 light absorption과 scattering의 특성으로 더 복잡하다. image deblurring model과 image superresolution model과는 다르게 degradation 수중 이미지 model은 주로 color and visibility degradation 해결에 포커스를 맞췄다.
Proposed UWCNN model
Residuals
해당 논문에서 제안하는 수중이미지(혹은 비디오)의 enhancement를 위한 lightweight network인 UWCNN의 구조는 위 그림과 같다. 전통적인 end-to-end 구조와는 다르게 해당 모델은 mapping function I=f⁻¹(U)를 학습해 바로 clean latent image I를 predict한다. 해당 모델은 합성된 수중 이미지와 clean counterpart사이의 차이를 학습한다.이에 관련한 자세한 내용은 section5에서 다룬다. 논문에서 제안하는 모델은 깊지 않지만, vanishing or exploding gradient가 발생할 가능성이 있으므로 학습과정에서 이를 피하기 위해 residual을 수행하였다. [ I = U + Δ (U, θ ) ]
Enhancement units
UWCNN은 Enhancement units(E-Units) 모듈 여러개로 이뤄진 modular architecture를 갖는다.
Network layers
논문에서 제안하는 모델의 네트워크는 크게 3개의 구성으로 이뤄지며 이는 위의 그림에서 각각 다른 색으로 나타냈다.
Dense concatenation
논문에서 모든 convolution layer를 마지막에 stack 하였다. 이건 DenseNet과는 다른 기술인데, 각 convolutional layer는 다른 convolutional layers와 연결됐다. 또한 fullty connected layers나 batch normalization을 사용하지 않았고, 이것들이 제안하는 네트워크의 메모리가 효율적이고 빠르게 만들었다. 또한 우리 모델은 이미지를 모든 블럭에다 입력으로 주고있는데, 이러한 방법으로 모델을 deep하게 쌓지 않아도 됐다. 요약하자면 (1) 이미지를 모든 enhancement unit에 입력했으며, (2) 오직 fully convolutional layers만 포함하고 batch normalization step은 수행하지 않았다.
Network detph
우리의 프레임 워크는 모듈식 구조이고 3개의 enhancement units이 존재한다. 즉 우리는 총 10개의 레이어만 사용한다. 이건 우리 모델이 학습과 추론에 계산에 있어 효율적임을 의미한다. 게다가 이러한 light-weight network 구조는 frame-by-frame의 비디오로도 확장이 가능하다. 또한 이러한 네트워크를 기존에 연구된 pattern recognition, object detection 등 visual understanding 모델에 결합하면 성능을 향상시킬 수 있다.
Reducing boundaryt artifacts
low-level vision task에서는 시스템의 output size는 input 사이즈와 같기를 요구하고, 이는 종종 boundary artifact를 발생시킨다. 이러한 현상을 피하기 위해서 2가지 전략을 다음과 같이 설정하였다. (1) pooling layer를 사용하지 않았다. (2) zeros를 각 convolution layer 앞에 추가하였다. 결과적으로 UWCNN network의 결과는 거의 artifacts-free이고 input과 같은 사이지의 output을 만들어낸다.
* boundary artifact 정보가 손실되는 현상
Network Loss
L2로스를 사용했는데 잘 안되서 SSIM Loss를 추가해서 사용했다.
Post processing
학습을 위한 수중이미지와 clear latent 이미지의 pair 데이터셋을 얻기는 어렵다. indoor 이미지를 가지고 합성해 pair 데이터셋을 만들었지만 이도 한계가 있다. 따라서 우리는 이러한 문제를 해결하기 위해 단순하지만 효과적인 post-processing 전략을 사용했다. 그리고 이 방법을 UWCNN+라고 이야기한다. 이미지를 HSI color space로 변환하고, 그때 saturation 범위와 intesity components를 0과 1 사이로 정규화한다. 그리고 이를 다시 RGB color space로 변환한다. 이를 통해 나타난 결과는 다음과 같다.
Proposed underwater image synthesis algorithm
논문에서 제안하는 수중 이미지 합성 알고리즘은 수중 이미지의 물리적 모델과 optical properties of underwater scenes를 기반으로 한다. 처음으로 수중 이미지 합성 알고리즘에 물리적(physical)모델을 적용하여 다양한 수중 환경과 degradation levels을 시뮬레이션 할 수 있었다. 이건 수중 이미지 enhancement에 있어서 굉장히 의미있는 학문적 기여이다.
synthesize underwater image degradation datasets에는 우리는 oceanic 유형과 coastal classes에 따라 다르게 설명된 attenuation coeffcient를 사용했다. 이러한 타입에 대한 예시는 다음 그림과 같이 나타낼 수 있다.
우리는 attenuation coefficient를 앞서 설명한 다음 수식에 적용하여 위의 그림과 같이 다양한 합성이미지 데이터셋을 구축하였다.
각 타입에 따른 자세한 coefficient 값은 다음 테이블과 같다.
Experimental evaluations
우리가 만든 테스트셋에 우리의 알고리즘을 적용한 이미지는 다음과 같다.
그리고 결과는 다음과 같다.
총평
무조건적인 딥러닝으로 문제를 해결하는게 아닌, 해당 도메인에 대한 충분한 지식을 바탕으로 한 적용이 도움이 된다.
최근 TPAMI에 나온 논문이 있지요.
http://csms.haifa.ac.il/profiles/tTreibitz/datasets/ambient_forwardlooking/index.html
확인해보겠습니다.
모델 내부에서 도메인 변화 (예를 들어 한 모델이 오전 5시부터 오후 3시까지 보행자 인식 과제를 수행해야 할 때)가 아니라 아예 도메인 자체의 학습에 어려움을 겪는다(수중 이미지가 기존의 도메인보다 손실이 있기 때문에)는 것이 맞나요? 만약 맞다면, 모델로 되살릴 수 있는 손실부분을 현대의 모델에서 충분히 커버하지 못한다는게 신기합니다..
수중에서 촬영된 이미지를 가지고 지상에서 촬영된 이미지와 같은 퀄리티의 이미지를 만들기 위해 수중에서 촬영된 이미지의 퀄리티가 낮아지는 이유인 빛의 분산과 같은 여러 물리적인 요인들을 적용하여 수중 이미지의 품질을 향상시키는 연구입니다.