예전에 수잘갤에 썼던 Rudin-Osher-Fatemi (ROF) (혹은 Total Variation denoising)를 조금 정리해서 올리는 것임.



딥러닝과는 크게 관련 없는 분야인데, 그래도 수학 떡밥도 나온겸 고전 영상처리 시절에는 수학적 직관과 증명을 통한 영상처리 방법론이 어떻게 쓰였는지 한번 돌아보면 좋을것 같아서 다시 가져옴. 



아래 모델은 Leonid Rudin, Stanley Osher, Emid Fatemi가 1992년 "Nonlinear total variation based noise removal algorithm", Physica D:Non-linear phenomena 논문으로 처음 제안한 모델임. (Stanley Osher는 여전히 학계에서 활발히 활동중, UCLA교수).


28ac8168f5dc3f8650bbd58b3683776e8592


이 모델이 제안되기 이전에 쓰이는 Gaussian filter 등을 이용한 노이즈 제거는 근본적으로 edge를 보존하지 않음. 즉, 이미지가 흐려짐. 쉽게 카메라맨 이미지로 예시를 들어볼께.


viewimage.php?id=20bcc42e&no=24b0d769e1d32ca73ced82fa11d02831fe384ecd5bf5471a0304a3eb0f93158c581e310f971bc0f232a8772484abcd481c7dc24d4ff36a2699208f66dc9a20361

noisy image


viewimage.php?id=20bcc42e&no=24b0d769e1d32ca73ced82fa11d02831fe384ecd5bf5471a0304a3eb0f93158c581e310f971bc0f232a8772484abcd481c7dc24d4bf73a7d93248d36dc9a20362


Gaussian smoothing


viewimage.php?id=20bcc42e&no=24b0d769e1d32ca73ced82fa11d02831fe384ecd5bf5471a0304a3eb0f93158c581e310f971bc0f232a8772484abcd481c7dc24d49f26c7dc574836cdc9a20363


Rudin-Osher-Fatemi 모델



그럼 수학적으로 어떻게 이미지를 모델링 하는지 조금 더 자세히 알아보자.



29b8d677b79c28a8699fe8b115ef0465db61e8e9



정의2를 이용해서 이제 이미지를 continuous setting에서 다루어보자.
2차원 공간 svg.latex?%5COmega%20=%20(a,b)%20%5Ctimes%20(c,d)%20%5Csubset%20%5Cmathbb%7BR%7D%5E2 을 생각해보자. 우리는 이미지를 2차원 공간에서 각 픽셀들이 가지는 화소값을 표현하는 함수/디스트리뷰션 으로 생각해볼 수 있어. 즉, svg.latex?%20u:%5COmega%20%5Cmapsto%20%5Cmathbb%7BR%7D . 직관적으로 접근하면 test function svg.latex?%5Cvarphi%20%5Cin%20D(%5COmega) 이미지 신호를 캡쳐하는하는 센서라고 이해해보자 (e.g. CCD센서). 이미지 함수 svg.latex?u는 distribution on svg.latex?%5COmega 으로 모델링 할 수 있음. 즉, 이미지 svg.latex?ua continuous linear functional on svg.latex?D(%5COmega)로 표현 할 수 있다. 이제 이 내용을 수학적으로 더 엄밀하게 표현해보자.

정의 3 (convergence in svg.latex?D(%5COmega))
만약 svg.latex?%5Cvarphi_n가 a bounded set 밖에서 사라지고, all partial derivatives of svg.latex?%5Cvarphi_n가 0으로 uniformly converging하면 (svg.latex?%5Cvarphi_n%5C%5C%7D%20) in svg.latex?D(%5COmega) 은 0으로 수렴한다.

svg.latex?%5Clim_%7Bn%20%5Cto%20%5Cinfty%7D%5Cleft(%20%5Csup_%7Bu%20%5Cin%20%5COmega%7D%20%5Cvert%20D%5E%7B%5Calpha%7D%20%5Cvarphi_n%20(x)%20%5Cvert%20%5Cright)%20=%200%20
for all multi indieces svg.latex?(%5Calpha_1,%20%5Calpha_2)%5Cin%20%5Cmathbb%7BZ%7D_%7B+%7D%5E2%20

29b8d672abc236a14e81d2b628f17d68651c82


28a58568f5dc3f8650bbd58b36827d6f783f

viewimage.php?id=20bcc42e&no=24b0d769e1d32ca73ced82fa11d02831fe384ecd5bf5471a0304a3eb0e94158c66319e17a6121fbe9d4f565e086c579355a35d9b4f4dca4d4704cf07d988ef0b4

즉, Distribution이론을 이용해서 Dirac-delta function 이미지시그널을 test function 센서로 감지하는 것을 모델링 할 수 있음. 하지만 svg.latex?D%5E%7B%5Cprime%7D(%5COmega) 는 complete space지만 normed vector space가 아님. 즉, distribution을 이용한 모델은 이미지를 general class의 함수에 대해서 정의할 수 있지만, 영상처리에 쓰일 만한 모델을 만들기는 힘듬. 고로 함수해석학에서 자주 쓰이는 svg.latex?L%5Epspace로 이미지함수를 모델링해보자.


정의 6 (svg.latex?L%5Ep space)

Measurable space svg.latex?(X,%5Cmathcal%7BE%7D,%20%5Cmu)%20, svg.latex?1%20%5Cleq%20p%20%20%3C%20%5Cinfty일 때, 함수 공간 svg.latex?L%5Ep(X)는 다음과 같이 정의될 수 있음

svg.latex?%5Cleft%5C%7B%20u%20:%20%5Cint_X%20%5Cvert%20u%20%5Cvert%5Ep%20d%5Cmu%20%20%3C%20%5Cinfty%20%5Cright%5C%7D

svg.latex?L%5E%7B%5Cinfty%7D%20공간의 경우는 essential supremum을 사용해서 정의하는데, space of essentially bounded functions로 보면됨. (귀찮으니 자세한 정의는 생략할께, 이건 아무 교과서에나 나오는거니까).

svg.latex?L%5Ep 공간이 아래 정의한 norm과 함께 바나흐 공간이라는 것은 다들 알꺼야


svg.latex?%5CVert%20u%20%5CVert_p%20=%20%5Cleft(%20%5Cint_X%20%5Cvert%20u%20%20%5Cvert%5Ep%20d%5Cmu%20%5Cright)%5E%7B%5Cfrac%7B1%7D%7Bp%7D%7D

svg.latex?%5CVert%20u%20%5CVert_%7B%5Cinfty%7D%20=%20%5Ctext%7Bess%20sup%7D_X%20%5Cvert%20u%20%5Cvert




그렇다면 svg.latex?L%5Ep 공간은 이미지를 모델링하고 정보를 추출하는데 유용한 공간일까?


저번에 정의한 것처럼 이미지 공간을 svg.latex?%5COmega%20 로 두고 다음과 같이 이미지 정보를 추출해보자. For svg.latex?%5COmega%5E%7B%5Cprime%7D%20%5Csubset%20%5COmega with svg.latex?%5Cvert%20%5COmega%5E%7B%5Cprime%7D%20%5Cvert%20%5Cgeq%200에 대해서 svg.latex?%20%5Clangle%20u%20%5Crangle_%7B%5COmega%5E%7B%5Cprime%7D%20%7D%20:=%20%5Cfrac%7B1%7D%7B%5COmega%5E%7B%5Cprime%7D%7D%20%5Cint_%7B%5COmega%7D%20u(x)dx%20를 이미지 함수 u의 평균 over svg.latex?%5COmega%5E%7B%5Cprime%7D 로 볼 수 있고, 이미지 함수 u의 정보를 소위 p-mean oscillation으로 정의할 수 있음.

svg.latex?u_%7B%5Cphi%7D%5E%7Bp%7D%20=%20%5Cleft(%20%20%5Cfrac%7B1%7D%7B%5COmega%5E%7B%5Cprime%7D%7D%20%5Cint_%7B%5COmega%7D%20%5Cvert%20u(x)%20-%20%20%5Clangle%20u%20%5Crangle_%7B%5COmega%5E%7B%5Cprime%7D%20%7D%20%20%5Cvert%5Ep%20dx%20%5Cright)%5E%7B%5Cfrac%7B1%7D%7Bp%7D%7D

만약 p = 2인 케이스면, 소위 통계학에서 배우는 empirical standard deviation 이 나옴.

하지만 우리가 원하는 정보를 이미지에서 추출하려면 이미지의 변화(change), 즉 기울기의 값 역시 중요함. 고로 자연스럽게 소볼레프 공간 (Sobolev space)의 정의로 이어짐.


일단 소볼레프 공간을 정의하기 위해서는 Weak derivative라는 개념을 이해해야함. 하지만 난 그냥 귀찮으니 소볼레프 공간을 여기 있는 사람들은 어느 정도 이해하고 있다고 생각하고 정의로 바로 넘어갈께



29b8d671abc236a14e81d2b628f1756d26c045d1


ROF functional과의 관계


소볼레프 공간 svg.latex?W%5E%7B1,1%7D은 ROF functional에 딱 맞는 공간처럼 보일거임. 드디어 이미지를 모델링하기 좋은 공간을 찾았다 (...)라고 생각 했을 수 있겠지만, 소볼레프 공간에서 ROF functional은 일반적으로 well-posed 되지 않음. 왜 그럴까?



39b5dd7eabc236a14e81d2b628f1716478f7bf


Theorem 8이 어떤 의미지인지 한번 생각해봐. 소볼레프 공간은 hypersurface따라서 불연속성을 정의할 수 없음. 예들들어서, 우리가 생각하는 일반적 2D 이미지를 생각해보면, 수직, 수평선을 따라서 불연속 (jump)를 허용하지 않음. 즉, 우리가 원하는 이미지 경계 (edge)를 보존하면서 노이즈를 제거하는 것이 불가능함.


고로 우리는 jump를 허용하는 새로운 공간에서 ROF functional을 정의해야함.



다음에 시간나면 BV공간의 성질과 ROF functional의 minimizer의 존재성 유일성 까지 증명해서 1편으로 만들께.