2.1 물리 기반 Retinex 모델
물리 기반 Retinex 모델은 일련의 방정식 또는 최적화 문제를 통해 Retinex 이론을 보다 물리적인 형태로 변환하여 문제를 해결한다. 이러한
알고리즘은 이미지에서 전체적인 조명을 제거할 수 있는 능력 때문에 최근 몇 년 동안 널리 연구되었다. 이 범주의 알고리즘은 앞서 언급한 바와 같이
이미지 값 $S$를 다음과 같이 조명 함수 $L$과 반사율 함수 $R$의 곱으로 표현한다.
여기서 $0<L(x)<\infty$, $0<R(x)\le 1$ 이고, 따라서 이를 정리하면 $0<S\le L$ 로 표현할 수 있다. 식(1)과 같이 곱하기 형태의 이미지 값 $S$를 로그 도메인으로 변경하면 더하기 형태의 식으로 (1)을 변경할 수 있다.
이때, $s=\log(S)$, $l=\log(L)$, $r=-\log(R)$ 이고 $r\ge 0$, $l GEs$ 으로 표현된다. 이렇게 로그 도메인으로
변경하여 더하기 형태의 식으로 변경하면, 조명 성분 $l$과 반사율 성분 $r$을 쉽게 분해할 수 있게 된다.
2.1.1 Total Variation Retinex(TVR) model
TVR model에서는 조명과 반사율의 전체 변동량을 고려한 Retinex 모델을 제안하였다(10), (15). 이 모델은 조명 함수가 공간적으로 부드럽고 반사율 함수가 부분적으로 일정하다는 가정을 기반으로 설계되었다. 이를 기반으로 HVS이 색상을 인식하는
방법을 설명하기 위해 아래와 같은 에너지 함수가 설계되었다.
이고, $\alpha_{1}$, $\alpha_{2}$ 와 $\mu$는 정규화 매개 변수를 위한 양의 상수이다. $|p|=\sqrt{p_{1}^{2}+p_{2}^{2}}$
(단, $p=(p_{1,\:}p_{2})$) 이고, $di v$ 와 $del$은 각 divergence와 그라디언트 연산자이다. 결과적으로 다음과
같은 $l$과 $r$에 대한 최적화 식을 통하여 조명과 반사율을 분해한다.
그러나 이러한 방식의 경우 반사율을 함수를 구성할 때 $\int_{ohm}|Dr|$ 부분을 통해서 전체 이미지의 총 변동량을 계산하게 된다(10). 이때, 지역적인 변동을 반사율 함수에 적절하게 반영하지 못하게 되고, 이것이 조명 함수에 영향을 주게 되어 조명 함수에 반사율 함수의 성분이 반영된다.
따라서, 이 경우 반사율과 조명 성분을 정확하게 분해할 수 없게 된다.
2.1.2 Sparse Source Separation Retinex(SSSR) model
SSSR model에서는 조명과 반사율을 그라디언트 영역으로 변경하여 각 함수의 희소성을 통해 조명과 반사율을 분해하는 Retinex 모델을 제안하였다
(16). 반사율은 부분적으로 상수값을 가지기 때문에 $delr$은 공간적으로 희소성을 가지게 되고 이는 이미지에서 모서리 정보로 표현될 수 있다. 조명의
경우 공간적으로 부드러운 성질을 가지기 때문에 $dell$은 부분적으로 상수값을 가지고 주파수 도메인에서 희소성을 가지게 된다. 이를 바탕으로 설계된
에너지 함수는 아래와 같다.
SSSR 모델에 따르면 Retinex 모델의 조명과 반사율 함수 성분의 분해 정확도는 $delr$과 $D dell$의 희소성과 비례하고, $||\nabla
r||_{1}+||D\nabla l||_{1}\le\dfrac{1}{2}\sqrt{\dfrac{OHM}{2}}$의 Restricted Isometry
Property 조건을 만족하면 완벽하게 조명과 반사율 성분을 분해할 수 있다 (16). 이는 이미지 행렬의 랭크가 충분히 작아야 함을 나타낸다. 그러나 일반적으로 이러한 조건은 1920×1080 크기의 이미지일 때, 0.02% 정도의
랭크를 가진다. 따라서 복잡한 이미지일수록 이미지 행렬의 랭크가 크기 때문에 이 경우 반사율과 조명을 정확하게 분해할 수 없게 된다.
2.2 컨볼루션 희소 코딩(Convolutional Sparse Coding)
컨볼루션 희소 코딩 모델 (17),(18)은 입력신호에 대하여 사전(Dictionary)과 희소 계수 맵의 컨볼루션을 사용하여 아래와 같은 식으로 표현하는 것이다.
이때, $x\in\vec{R}^{n_{1}\times n_{2}}$ 는 입력신호, $d_{k}\in\vec{R}^{s\times s}$ 는 지역 컨볼루션
필터, $z_{k}\in\vec{R}^{n_{1}\times n_{2}}$는 $d_{k}$의 요소를 가지는 희소 계수 맵, $\ast$는 컨볼루션
연산자이다. 컨볼루션 희소 코딩의 $l_{1}$ 최소화 문제는 다음과 같이 공식화된다.
컨볼루션 희소 코딩의 입력신호 $x$는 패치(또는 세그먼트)로 분할되지 않고 전체 이미지를 입력신호로 사용한다. 컨볼루션 희소 코딩 모델의 본질은
컨볼루션의 사용으로 공간적인 불변성을 가지기 때문에 특정 모서리 방향의 학습된 요소는 전체 이미지에서 해당 방향의 모든 모서리를 전체적으로 나타낼
수 있다. 컨볼루션 희소 코딩과 달리 고전적인 희소 코딩에서의 요소들 중 다수는 다른 오프셋에 대해 동일한 방향의 가장자리를 학습하는 경향이 있다.
2.3 제안하는 컨볼루션 희소 코딩 기반 Retinex 모델
2.3.1 제안하는 Retinex 모델의 반사율 함수
앞서 TVR의 경우 반사율 함수의 성분이 $\int_{ohm}|Dr|$ 로 표현되고, 이것은 전체 이미지의 총 변동량을 고려하므로 지역적인 반사율의
특징을 반영하지 못하였고, 이것이 조명 함수의 오류가 되어 조명 함수에 상대적으로 반사율 성분이 남아있게 된다. 또한, SSSR의 경우에는 $||\nabla
r||_{1}+||D\nabla l||_{1}$ 와 같이 이미지 행렬의 랭크에 영향을 받게 되므로 충분히 랭크가 작은 이미지가 아닐 경우 반사율의
희소성을 보장받지 못하게 되므로 반사율과 조명을 정확하게 분해하지 못하게 된다. 이러한 한계를 극복하기 위해 새로운 형태의 반사율 함수를 제안하였다.
제안하는 Retinex 모델의 반사율 함수의 성분은 다음과 같다.
본 논문에서는 반사율 함수를 구성함에 있어서 식(8)과 같이 컨볼루션 희소 코딩을 활용하여 반사율 함수에 대한 제약 조건을 가지지 않게 하였다. 따라서, 사전 학습을 통하여 사전을 생성하게 되고, 이러한
사전의 컨볼루션을 통해 반사율을 생성하게 된다. 컨볼루션을 사용하여 반사율 함수의 성분을 생성하게 되면 이미지의 다양한 비선형적인 형태를 표현할 수
있고, 지역적인 특징 또한 반영할 수 있게 된다. 따라서, 기존의 방법보다 복잡한 영역에서도 반사율과 조명을 정확하게 분해할 수 있다. 컨볼루션 희소
코딩에서 학습의 경우 앞서 방법들에 비해 많은 시간이 걸리지만 실제로 사전을 학습해 놓으면 테스트 단계에서 반사율 함수의 성분을 생성할 때 저장된
사전을 통해서 빠르게 알고리즘을 진행할 수 있다.
2.3.2 제안하는 Retinex 모델
본 논문에서는 이미지의 조명과 반사율을 효과적으로 구분하기 위해 컨볼루션 희소 코딩을 Retinex 모델에 적용한다. 컨볼루션 희소 코딩의 주요 아이디어는
반사율 함수에 대해 사전에서 적절한 기초를 검색하고 그러한 기초에 의해 반사율 함수에서 보다 상세한 구조 또는 특징을 파악하여 조명을 분해하는 것이다.
따라서 핵심 단계는 입력 이미지를 표현하기 위한 사전을 구성하는 것이다. 일반적으로 조명 함수는 공간적으로 부드럽기 때문에 정규화 부분으로써 $\int_{OHM}|del
l|^{2}$로 표현할 수 있다. 또한 반사율의 경우에는 컨볼루션 희소 코딩에 의해 생성되는 것으로 대체하여 사용한다. 2.3.1절의 컨볼루션 희소
코딩으로부터 반사율 함수는 다음과 같은 방식의 정규화 부분인 $\dfrac{1}{2}||r-\sum_{k=0}^{K}d\ast z ||_{2}^{2}+\delta\sum_{k=0}^{K}||z
||_{1}$로 표현할 수 있다. 또한, 앞서 언급한 바와 같이 $r\ge 0$, $l GEs$ 이므로 이를 제한 조건으로 추가하게 되면 다음과 같이
식을 구성할 수 있다.
이때, $r, l \in \mathbb{R}^{N \times M}, \Omega$은 이미지 전체의 영역을 나타내고, $\alpha_{1}$, $\alpha_{2}$는
정규화 매개 변수로써 사용된다.
위의 모델에서 반사율은 TVR 모델보다 학습된 사전으로 더 잘 표현될 수 있고, 식(9)의 첫 번째 항과 4번째 항은 반사율 $r$에 대한 정규화된 항으로 해석할 수 있다. 또한, 위의 모델에서 반복 알고리즘을 적용하여 알고리즘이 반복될
때마다 최적의 반사율을 구성할 수 있는 사전을 구성하도록 한다. 따라서 식(9)의 방정식을 풀기 위해 다음과 같은 Alternating minimization 방식(10)을 사용한다.
2.3.3 알고리즘
1. 초기의 $p=0$, $l^{0}=s$ 는 초기 조명 함수라고 하자.
2. $p$번째 반복에서는 다음과 같다.
◼ $l^{p}$가 주어졌을 때, $r^{k+\dfrac{1}{2}}$는 다음과 같다.
그리고 $r^{p+1}$은 다음과 같다.
◼ $r^{p+1}$이 주어졌을 때, $l^{p+\dfrac{1}{2}}$는 다음과 같다.
그리고 $l^{p+1}$은 다음과 같다.
3. $\dfrac{||l^{p+1}-l^{p}||}{l^{p+1}}\le\epsilon_{l}$, $\dfrac{||r^{p+1}-r^{p}||}{r^{p+1}}\le\epsilon_{r}$
을 만족하지 않으면 2번 순서로 돌아가서 알고리즘을 반복한다.
식(10)을 풀기 위하여 컨볼루션 희소 코딩 방법(17)을 적용하면 다음과 같이 표현할 수 있다.
이때, $d=[d_{1}^{T}... d_{k}^{T}]^{T}$, $d\in\vec{R}^{(n_{1}\times n_{2}\times K)\times
1}$이고, $"\in d"_{C}(\bullet)$은 각 필터에 대한 추가 페널티 함수이며 $C=\left\{x| ||Gx||_{2}^{2}\le
1\right\}$, $G$는 역 푸리에 변환을 계산하고 결과를 각 필터의 공간에 투영하기 위한 $\vec{R}^{(s\times s)\times(n_{1}\times
n_{2})}$ 인 행렬이다. $Z^{k}=[Z_{1}^{m}...Z_{K}^{m}]$ 인 연결된 토플리츠(Toeplitz) 행렬이고, 각각의 희소
계수 맵인 $z_{k}^{m}(Z^{m}\in\vec{R}^{(n_{1}\times n_{2})\times(n_{1}\times n_{2}\times
K)})$의 컨볼루션을 표현한다. 식(14)는 필터 $d$의 부분과 계수 맵 $z$부분으로 구분하여 풀 수 있고, 주어진 $Z$에 대하여 필터 부분 $d$의 하위 문제는 다음과 같다.
$H$는 각각의 데이터벡터 $c$와 희소 계수 행렬 $Z$를 분할하여 병렬로 처리하기 위한 인덱스이고, $h$번째 집합 $(c_{h,\:}Z_{h,\:}d_{h})$을
각각 계산할 수 있다. 식(15)는 Alternating Direction Method of Multipliers(ADMM) 방법(17),(18)을 사용하여 필터 $d$를 계산할 수 있다. 다음으로 계수 맵 부분 $z$의 하위 문제는 다음과 같다.
희소 계수 맵 $z$도 필터 $d$와 같은 방식으로 ADMM 방법을 사용하여 계산한다.