Fast Single Image Reflection Suppression via Convex Optimization

Inc Lomin's avatar
May 25, 2019
Fast Single Image Reflection Suppression via Convex Optimization
이 논문은 신경망을 이용하지 않고, 단일 영상에 대해서 반사된 부분들을 제거하는 방법에 대한 논문입니다. 제목에 'convex optimization'이라는 말을 포함하고 있지만, 막상 방법을 자세히 보면 일반적으로 떠올릴 수 있는 convex optimization보다는, deterministic하게 얻을 수 있는 해석적인 해에 더 가깝습니다. 제안한 아이디어가 복잡하지 않음에도 불구하고, 기존의 유사한 방법들에 비하여 연산시간을 획기적으로 단축시킨 것을 확인할 수 있었습니다.
 

Introduction

Goal

유리창 너머에 있는 물체를 찍은 사진에서, 유리창에 반사된 부분(reflection layer)을 제거합니다. 동시에 투과된 대상(transmission layer)를 최대한 잘 살리는 것을 목표로 합니다.
notion image

Related Works

기존의 reflection suppression 방법들은 multiple image reflection removal과 simple image reflection removal로 나눌 수 있습니다. multiple image의 경우에는 같은 피사체를 여러 각도에서 찍은 사진들을 동시에 이용함으로써, 더 많은 정보를 추출해낼 수 있습니다. 하지만 대부분 특정 각도에서 찍은 몇 장 이상의 사진이 필요하다는 요구사항들이 있으며, 거창하게도 편광판이나 플래시가 필요한 방법들도 있습니다. single image processing은 inter-image information이 부족하기 때문에 더 challenging한 문제라고 볼 수 있습니다.
 

Contributions

이 논문에서 제안하는 방법은 다음과 같은 특징을 갖습니다.
  • Convex model에 기반하기 때문에, 해가 해당 모델의 전역 최적임을 보장할 수 있습니다.
  • 최적 해를 closed-form으로 얻을 수 있으며, 반복적인 연산이 필요하지 않습니다.
  • 신경망 방법들과는 다르게 별도의 데이터셋 구성이나 학습 과정 없이 수행이 가능합니다.
 

Proposed Method

Model Formulation

현실에서 사진을 찍는 경우와 비슷하게, 사진을 찍을 때에 transmission layer에 카메라의 초점이 맞춰진 것으로 가정합니다. 그러면 사진의 sharp edge들이 거의 이 layer에서 나타나게 되고, reflection layer에서의 edge들은 비교적 약하게 나타나게 됩니다. 이를 다음과 같이 수식으로 나타낼 수 있습니다.
notion image
Y는 전체 이미지, T와 R은 각각 transmission/reflection layer, w는 layer들 간의 weighting parameter, \kappa는 Gaussian blurring kernel입니다. 기존의 논문들에서는 data fidelity term으로 T와 Y에 동시에 laplacian을 취한 후, 그 둘 사이의 L2-norm을 최소화하는 방식으로 접근합니다. 혹은 단순히 T-Y의 norm을 최소화하기도 합니다. 하지만 이러한 경우들에서는 gradient의 크기 thresholding을 따로 해 주어야 하기 때문에 연산이 iterative하게 이루어집니다. (thresholding-minimizaion)
따라서 이를 조금 변형하여 다음과 같은 형태의 문제를 제시합니다.
notion image
Objective function의 첫 번째 항은 data fidelity 항입니다. input image Y의 1차 gradient에 divergence를 취하기 전에 gradient thresholding을 해서, h보다 낮은 값의 gradient들은 모두 0으로 만들어줍니다. 두번째 항은 해의 유일성을 보장하기 위해 필요합니다. 원래의 해에 영향을 주지 않게 하기 위해 epsilon을 최대한 작게 설정합니다. 논문의 결과들에서는 1e-6의 값을 사용했습니다.
 

Solving the Model

위의 식은 target variable T에 대해서 convex한 형태를 갖고 있습니다. 다음과 같이 T에 대한 gradient를 나타내고, 이 gradient를 0으로 두면 2D Poisson equation(2차 편미분 방정식)의 한 형태를 얻을 수 있습니다.
notion image
notion image
Transmission layer는 이를 Neumann boundary condition(경계 조건에 1계 미분 값 포함)를 이용해서 해결할 수 있습니다. Neumann bounday condition의 Poisson equation으로부터, F_c, F_c^{-1}를 각각 discrete cosine transform과 그 inverse라고 하면 다음과 같은 결과가 유도되어 있습니다.
notion image
이 결과를 간단히 요약하자면, 식 (8)에 DCT를 취하면 좌변을 element-wise multiplication으로 나타낼 수 있다는 뜻입니다. 다만 위의 결과는 (m,n)=(0,0)에서 singularity를 갖기 때문에, 해당 지점에서의 transmission 값에 대해서는 다른 처리가 필요합니다.
위의 결과를 앞에서 세운 모델에 적용합니다. T의 Laplacian에 DCT를 취한 것을 다음과 같이 나타냅니다. (element-wise multiplication)
notion image
위의 Poisson equation의 양변에 DCT를 취합니다. E는 ones matrix, P는 Poisson equation의 우변을 나타냅니다.
notion image
 
그렇다면 위의 결과를 적용하여 solution matrix의 각 성분을 다음과 같이 나타낼 수 있습니다.
notion image

Experiment

Toy example
notion image
이 논문의 결과를 데이터셋 없이 단일영상을 처리할 수 있는 다른 방법들과 비교했습니다. 다만 여기서 state-of-the-art라고 지칭하며 언급한 방법들이 각각 2017, 2014, 2016년에 발표된 방법들이라는 점에서, 최근에도 '별도의 데이터셋을 이용한 학습 없이 단일 영상의 reflection suppression'하는 방법에 관한 연구가 계속 진행되고 있는지는 확인할 필요가 있을 것 같습니다.
h는 grandient thresholding level을 나타냅니다. 즉 h보다 낮은 값의 gradient들은 smooth되어 사라집니다. h가 클수록, reflection/transmittion layer에서 더 많은 디테일들이 제거됩니다. 따라서 원래 그림에서의 reflection된 정도에 따라 가장 좋은 결과물을 내는 h가 달라지게 됩니다. h는 경험적으로 [0.01, 0.1] 사이의 값을 가지며, h값에 따른 효과는 다음 그림에서 확인할 수 있습니다.
notion image
 

Synthetic Images

다음의 두 그림을 이용해서 새로운 이미지를 합성해 냅니다. 이 때 합성의 Gaussian blurring kernel κ는 σ=4로 고정하였으며, 합성 시의 weight는 0.7, 0.5로 적용하였습니다.
notion image
첫번째 column이 합성 이미지, 마지막 column이 이 논분에서 제안한 방법을 이용해서 reflection suppression을 수행한 결과입니다. 첫번째 비교 방법 (2nd column)에서는 이미지가 어두워지고, 색상이 왜곡되는 결과가 나타납니다. 이는 reflection layer의 비율이 높기 때문에, 해당 layer를 모두 제거하면서 전체적인 값이 낮아진 것으로 보입니다. 세 번째 열에 이용된 방법은 이미지를 과도하게 smoothing하는 경향이 있습니다. 네 번째 열에서의 방법이 가장 자연스러운 편이지만, 이 논문에서 제시한 방법과 수치들을 비교했을 때 차이가 있습니다. 특히 처리시간 측면에서는 본 방법이 압도적인 우위에 있는 것을 확인할 수 있습니다.
notion image
notion image
notion image
notion image
notion image
 

Real-World Images

제안한 방법이 reflection suppression을 효과적으로 해낼 뿐만 아니라, transmission detail들을 살리는 데에도 뛰어나다는 것을 확인할 수 있습니다. 특히 이미지 개당 처리 시간이 1.5초 수준이기 때문에 portable device들에서도 실행이 가능하며, 유저가 h값을 조정하여 원하는 결과물을 눈으로 확인하고 얻는 방식의 응용을 제안하고 있습니다.
notion image
notion image
notion image
 
다만, 앞에서 기본적 모델링에 사용한 transmission layer와 reflection layer에 대한 가정이 깨진다면 이 방법은 적용에 어려움이 있습니다. 예를 들어, reflection layer에 sharp edge들이 존재한다면 해당하는 edge pixel의 gradient가 커지게 됩니다. 따라서 이러한 reflection edge들을 제거할 수 있을 정도로 h값을 키우면 transmission layer의 정보를 잃게 됩니다. 이러한 경우의 실패 사례들은 다음 그림에서 확인할 수 있습니다.
notion image
 

Conclusions

이 논문에서는 단일 영상의 reflection suppression을 위한 convex problem을 제시했습니다. 해당 문제는 gradient thresholding과 DCT를 이용해서 해석적인 해를 얻을 수 있습니다. 하지만 여전히 단일 영상 reflection suppression은 해결하기 쉽지 않은 문제이며, 앞으로 더 사이즈가 큰 이미지들이나 sharp한 반영이미지들도 처리 가능한 알고리즘 개발이 필요합니다.
Share article