대학원 일기

[논문 리뷰] 심도 정보의 Entropy를 이용한 개선된 DCP 안개제거 방법 본문

Paper/Paper review

[논문 리뷰] 심도 정보의 Entropy를 이용한 개선된 DCP 안개제거 방법

대학원생(노예) 2022. 1. 14. 16:52

Introduction

  이 논문은 앞 포스팅과 동일하게 사전 정보 기반 방법(Prior Information Based Method)의 DCP(Dark Channel Prior)를 응용한 연구이다. 최근 영상 분야의 인공지능이 중요시 여겨지면서 영상을 처리하는 능력 또한 중요하게 여겨지고 있다. 안개 제거 방법은 영상 처리를 방해하는 안개 요소를 제거함으로써 영상 처리 능력을 개선시킨다.

  이 논문에서는 심도(깊이, Depth) 정보의 Entropy를 이용하여 기존 DCP 기법의 대비 문제와 블록현상(block artifact) 또는 후광 현상(halo artifact)을 처리하고, DCP의 계산 과정을 줄여 처리시간을 개선시켰다.

 

1. 서론

  본 논문은 안개를 모델링하여 영상에 있는 안개 영역을 제거하는 방법을 소개한다. 이 방법은 안개가 있는 영상의 대조비가 맑은 날에 촬영된 영상의 어느(국부영역) 부분에서 일반적으로 어두운 픽셀을 가지고 있다는 통계적 특성을 바탕을 이용해 안개 제거를 수행한다.

* 맑은 영상에서는 R, G, B 중 한 채널은 낮은 값을 가짐

 

  앞서 말한 특성을 바탕으로 나온 기법이 DCP(Dark Channel Prior)이다. 이 기법을 통해 안개를 효과적으로 제거할 수 있었지만, DCP 기법은 soft mapping 기법을 이용해서 많은 계산량이 요구되고, 안개 영상을 국부 영역으로 처리하기 때문에 후광현상(halo artifact) 또는 블록 현상(block artifact)가 발생하는 단점이 있었다. 본 논문에서는 이러한 문제들을 해결하기 위해 기존의 Dark channel에서 엔트로피(entropy)를 반영하여 영상의 심도(깊이, Depth) 정보가 포함된 물체의 경계선 정보를 구하고 엔트로피가 반영된 영상을 통해 블록현상이 발생하는 심도가 포함된 경계선 부분에서만 적응 윈도우를 적용하여 새로운 Dark channel 영상을 만들어 안개가 제거된 영상의 블록현상을 개선하였다.

(즉, 기존에 블록현상이 발생하는 부분에서 작은 사이즈의 윈도우를 사용한다는 것)

 

2. DCP 기반의 안개제거 알고리즘

2.1 안개제거 모델링

  안개 제거 모델링에서의 안개 제거는 안개가 포함된 원본 영상에서 안개 영역을 검출하고 안개의 정도를 추정한 후 안개를 제거하는 것이 목표이다. 안개가 포함된 영상을 구하는 식은 다음과 같다. 

 

$I(x) = J(x)\times e^{-\beta \times d(x)} + A(1 - e^{-\beta \times d(x)})$

 

  • $I(x)$ : 안개가 포함된 영상
  • $J(x)$ : 안개가 존재하지 않는 깨끗한 영상
  • $A$ : 안개 입자에 의해 산란되는 빛으로 인해 변질되는 영상의 정도(전역대기 산란광 또는 안개값)
  • $e^{-\beta \times d(x)}$ : 최종적으로 산란되지 않고 카메라로 전달된 양(전달량, $t(x)$로 치환하여 사용)  
  • $\beta$ : 대기 산란 계수(Atmospheric Scattering Coefficient)
  • $d(x)$ : x 위치에서의 카메라와 대상 간 거리

  안개 모델식을 풀어 정의하면 안개가 포함된 영상은 깨끗한 양싱에 빛의 전달량을 곱하고 안개값을 더한 것이다. 이를 통해 안개가 없는 맑은 영상을 얻는 식을 구하면 다음과 같다.

 

$J_{c}(x) = \frac{I_{c} - A_{c}}{t_{c}} + A_{c}$   $when$ $c \in \left\{r,g,b \right\}$

 

2.2 DCP 단일 영상 안개제거 방법

  DCP 기법은 안개가 없는 맑은 날의 영상에서 R, G, B 중 한 채널의 화소값이 0에 가까운 값을 가지는 통계적 특성을 바탕으로 가진다. Dark channel 식에서 임의의 안개 영역 $\Omega(x)$에서 안개를 겉어낸 화소 $x$에 관한 식은 다음과 같다.

 

$J_{dark}(x) = min_{y\in \Omega (x)}(min_{y\in \Omega (x)}(J_{c}(y)))$ 

 

  $J_{dark}(x)$는 x 좌표에서의 $J$의 dark channel을 의미하고 $\Omega (x)$는 좌표 $x$를 중심으로 국부영역의 픽셀 $y$의 집합을 의미한다. 또한, $J_{c}(y)$는 안개를 걷어낸 $y$에서의 해당 채널 값이다.

여기서, 맑은 영상에서 R, G, B 중 한 채널이 0에 가까운 화솟값을 가지는 통계적 특성을 이용하여 좌표 $x$에 대한 다음식이 성립해진다. 

 

$J_{dark}(x) \simeq 0$

 

  위 식처럼 $J_{dark}(x)$는 0에 근사한 값을 가지므로 0의 값으로 계산한다. 이 식을 통해 안개제거 모델식에 대입하여 정리하면 $t(x)$를 구할 수 있고, 식을 정리하면 다음과 같다.

 

$t(x) = 1 - min_{y \in \Omega(x)}(min_{c \in\left\{ r,g,b\right\}}(\frac{I_{c}(y)}{A_{c}}))$

 

  위 식을 이용하여 전달량을 구하면 전달량 맵을 구할 수 있다. 안개를 제거할 때, DCP 기법을 이용하면 안개 영상에서의 안개 영역을 줄일 수 있으나 대비가 낮아지고 블록현상이 일어난다는 단점이 발생한다. Figure 2를 보면 원본 이미지에서 DCP를 이용하여 안개 영역을 크게 줄였지만, 대비가 적어 덜 선명해 보이고 어두워질뿐만 아니라 나무의 경계 부근의 안개가 불 완전히 제거 되어 블록현상이 발생한 것을 확인할 수 있다. 블록현상이 발생하는 이유는 윈도우에 대한 최솟값 필터의 특성에 의해 해당 화소에 대한 R, G, B를 윈도우 내에서 반영하지 못해 물체나 영역에 경계에서 블록현상이 발생하는 것이다. 이는 모든 물체의 경계에서 일어나는 것이 아닌, 영상에서 심도(깊이)의 차이가 발생하는 경계 부분에서 현상이 나타난다. 본 논문은 이러한 현상에 주목하여 엔트로피가 적용된 새로운 dark channel을 구하여 블록현상이 예측되는 부분에서 윈도우의 크기를 변화시켜 블록현상이 발생하는 심도가 포함된 경계선 부분에서만 적응형 윈도우(Adaptive window)를 적용시키는 방법을 소개해준다.

 

 

3. 엔트로피를 이용한 향상된 DCP 안개제거

엔트로피(Entroty)란?

 

  엔트로피(Entropy) 가지는 통계역학적 정의는 어떠한 확률 분포가 가지는 정보의 확산도 혹은 정보량을 수치로 표현한 것이다. 여기서 특정 상태에서의 방법의 수가 많아 여기저기 다양한 곳에서 값이 나올 때, 엔트로피가 높다고 할 수 있다. 이와 반대로 엔트로피가 낮은 경우는 특정 상태에서의 방법의 수가 적어 명백한 값들이 나올 때이다.

 

  이러한 엔트로피는 영상의 심도(깊이)의 변화에 따라 dark channel의 정보가 변하는 것을 의미한다. 

Propose method flowchart

  본 논문이 제안한 방법의 순서도는 왼쪽 사진과 같다. 

 1) 안개가 있는 영상을 Input.

 2) 1차 Dark channel 연산을 통해 $I_{dark}$ 얻음.(기존 DCP 방법)

 3) $I_{dark}$에서 엔트로피 계산으로 $E_{c}$를 얻음.

 4) $E_{c}$로 심도정보가 반영된 경계선 정보에 따라 적응형 윈도우로 새롭게 Dark Channel 계산.

 5) 안개값 $A_{c}$를 추정(Estimate)함.

 6)전달량을 추정(Estimate)함.

 7) 전달량을 개선(Refinement)함.

 8)안개가 제거된 $J_{c}$ 영상 획득



 

3.1 엔트로피를 이용한 심도가 반영된 경계선 정보

  엔트로피는 위에서 설명한 듯이 어느 특정 상황에 대한 분포이다. 이를 논문에서 제안한 방법에 적용하면 영상의 국부 영역에서 심도(깊이) 변화의 경계 부분이 영역별로 달라지는 것을 의미한다.

 

  • 어느 영상의 국부 영역에서 심도(깊이) 변화가 큰 경계선 = 선택지가 적음 → 엔트로피(Entropy)가 작음
  • 어느 영상의 국부 영역에서 심도(깊이) 변화가 작은 경계선 = 선택지가 많음 → 엔트로피(Entropy)가 큼

이처럼 경계선에서 심도(깊이)의 변화에 따라 엔트로피(Etropy)의 특성처럼 Dark channel 계산 정보가 바뀐다.

엔트로피 계산 과정

  국부적 영역의 확률 값 $P$를 구한다. 확률 $P$는 해당 화소의 값을 국부적 영역의 화소의 합으로 나눈 것이다. 이를 식으로 나타내면 다음과 같다.(해당 화소가 분포된 정도 == 밀도)

 

$P(x) = \frac{I_{dark1}(x)}{\sum_{x \in w}\sum I_{dark1}(x)}$

 

  • $P(x)$는 $I_{dark1}(x)$ 영상의 윈도우 $w$안에서 해당 화소의 dark channel 값과 전체 화소의 dark channel 값을 합의 비를 확률로 나타낸다.
  • 분모는 $I_{dark1}(x)$에서 윈도우 내의 총 화소의 합을 의미한다.
  • 분자는 $I_{dark1}(x)$에서 계산하려는 해당 화소의 값을 의미한다.

  위 식을 이용하여 국부영역의 화소 발생 확률을 나타내고, 이를 구하고고자 하는 국부영역에서의 엔트로피 계산식은 다음과 같다.

 

$E(x) = -\sum_{x \in w}\sum p\times \log_2 p$ 

 

이 식을 통해 계산된 엔트로피 영상은 다음과 같다.

  화소간의 확률 특성으로 엔트로피를 계산하면 사물 영역과 안개 영역은 최소값 마스크에 의한 dark channel 값이 일정하기  때문에 엔트로피가 크게 나타난다. 반면에, 두 영역의 경계에서는 dark channel의 값이 일정하지 않고 차이가 발생하므로 엔트로피가 작게 나타난다. 이를 통해, Dark channel 값의 차이를 엔트로피로 계산하면 그 값의 차이가 경계선 정보로 나타나진다.

 

3.2 적응 윈도우를 적용한 전달량 추정

  본 논문에서는 적응 윈도우를 구현하기 위해 위에서 얻은 엔트로피 값을 이용해 세 개의 영역으로 나눈다. 경계선 영역에서 블록현상을 줄일 때 영역 분할이 많아질수록 계산량이 많아져서 처리속도가 많이 느려지게 된다. 

 

  구하는 방법은 엔트로피로 계산된 영상을 히스토그램으로 나타내어 화소의 엔트로피 값으로 분할한다. 엔트로피로 계산된 영상을 히스토그램으로 나타낸 것은 다음과 같다.

  위 히스토그램에서 세 영역으로 분할하는 기준은 $z_{1}$, $z_{2}$로 나누고, 분할하는 식은 다음과 같다.

 

$z_{1} = (\sum_{i=1}^n h_{i}(y))\times \frac{1}{2}$

$z_{2} = (\sum_{i=1}^n h_{i}(y))\times \frac{1}{4}$

 

  • $n$ : 영상 전체의 화소 개수
  • $h_{i}(y)$ : $y$축인 히스토그램 분포
  • $z_{1}$ : 엔트로피 누적 분포의 50%에 해당하는 $x$축의 엔트로피 값
  • $z_{2}$ : 엔트로피 누적 분포의 25%에 해당하는 $x$축의 엔트로피 값

$z_{1}$와 $z_{2}$ 을 이용해 엔트로피 영상을 세 개의 영역으로 나눈 영상

  검은색 영역이 엔트로피가 $z_{1}$보다 큰 영역을 나타내고 회색 영역은 $z_{1}$와 $z_{2}$ 사이의 영역, 흰색은 그 나머지 영역이다.

 

  계산된 엔트로피를 세 개의 영역으로 나눈 영상을 적응적으로 윈도우를 적용한다. 블록현상이 많이 발생하지 않는 엔트로피 값이 큰 부분에서는 큰 크기의 윈도우를 적용하고 블록현상이 발생하는 엔트로피 값이 낮은 부분에서는 상대적으로 작은 크기의 윈도우를 적용시킨다.

  적응 윈도우를 통해 dark channel $I_{dark2}$를 구하는 식은 다음과 같다.

 

$I_{dark2}(x) = min_{y \in \Omega_{i}(x)}(min_{c \in \left\{ r,g,b\right\}}(\frac{I_{c}(y)}{A_{c}}))$

$when$  $i = 1,2,3$

 

  • $I_{dark2}$ : $I_{dark1}$의 dark channel 값을 계산한 엔트로피를 이용해 그 값에 따라 적응 윈도우를 적용하여 얻은 새로운 dark channel
  • $\Omega_{i}$ : 엔트로피 값에 따른 국부영역의 변화
  • $i$ : 엔트로피 값에 따라 적응 윈도우를 적용할 영역을 나눈 개수

엔트로피 값에 따른 적응 윈도우를 적용하는 기준은 다음 연립식과 같다.

 

$\begin{cases} &\Omega_{1}, \text { if } E(x)\leq =z_{2}\\ &\Omega_{2}, \text{ if } z_{2}< E(x)\leq z_{1}\\ &\Omega_{3}, \text{ if } otherwise \end{cases}$

 

  • $E(x)$ : 화소 x의 엔트로피 값
  • $\Omega_{1}$ : 엔트로피 값이 $z_{2}$보다 작은 흰색 영역. $\Omega_{2}$(9 x 9), $\Omega_{1}$(5 x 5) 사용
  • $\Omega_{2}$ : 엔트로피 값이 $z_{1}$과 $z_{2}$ 사이의 회색 영역. $\Omega_{2}$(9 x 9), $\Omega_{1}$(5 x 5) 사용
  • $\Omega_{3}$ : 나머지. 검정색 영역. $\Omega_{3}$(13 x 13) 사용

최종 전달량 추정(estimate)하는 식

 

$t(x) = 1 - w \times min_{y \in \Omega_{i}(x)}(min_{c \in \left\{ r,g,b\right\}}(\frac{I_{c}(y)}{A_{c}}))$

$when$  $i = 1,2,3$

 

  전달량을 구하고 적응형 윈도우를 통해 새로운 dark channel $I_{dark2}$와 전달량 맵은 다음 사진과 같다.

  이 논문에서 제안한 방법에 의해 얻은 전달량 맵은 정확한 안개제거를 위해 후처리 과정으로 전달량 정제(refinement)과정으로 영상의 경계는 그대로 보존하면서 그 주변의 잡음만 제거하는 스무딩 필터인 양방향 필터를 이용하여 전달량 맵의 정보와 입력영상의 기울기 정보를 반영하여 경계선 영역을 조밀하게 표현했다.

 

4. 실험 및 고찰

제안 방법과 기존 DCP의 차이 테이블

제안 방법과 기존 DCP의 차이 영상

(a) 원본 영상, (b) DCP 적용 영상, (c) 제안 방법 적용 영상, (d) 제안 방법+스무딩 필터
(a) 원본 영상, (b) DCP 적용 영상, (c) 제안 방법 적용 영상, (d) 제안 방법+스무딩 필터

제안 방법과 기존 DCP의 에지 비율

제안 방법과 기존 DCP의 연산시간

 

 

Reference

이누리, 하윤수, 조석제.(2017).심도정보의 Entropy를 이용한 개선된 DCP 안개제거 방법.한국마린엔지니어링학회지,41(9),856-862.

 

 

Comments