가우시안 필터 : 가우시안 스무딩(Gaussian smoothing) 빠르게 배우기
2.Gaussian Smoothing Insight with Gaussian smoothing 가우시안 필터 빠르게 실행하기. Gaussian Filter g ( i , j ) = 1 2 π σ 2 × exp − ( i 2 + j 2 ) 2 σ 2 g(i,j) = \frac{1}{2\pi\sigma^2}\times\exp^{-(i^2 + j^2)\over2\sigma^2} g ( i , j ) = 2 π σ 2 1 × exp 2 σ 2 − ( i 2 + j 2 ) 가우시안필터의 특징은 i, j = (0, 0)일 때 가장 큰 값을 갖고 원점에서 멀어질 수록 점점 함수값이 작아진다. Gaussian Smoothing 이를 사용해서 가우시안 필터를 이미지에 컨볼루션을 적용해주면 필터링이 가능해지는데 식은 다음과 같다. 1. 2. 식을 분리할 수 있다. 2차원 필터보다 빠른 1차원 필터 2차원 필터는 참으로 느리다. 1번 식에서 사용하는 필터는 2차원 필터로 한번 컨볼루션을 하는데 총 O(n x m)의 복잡도가 필요하다. 컨볼루션이 항상 그런것처럼 당연하다고 여길 수 있는데 재미있는 건 계산을 훨씬 더 줄일 수 있다는 것이다. 이미지의 사이즈가 PxQ 이고 필터의 사이즈가 m, n라고 해보자. 1번 과정은 약 PQmn의 시간이 필요할 거다. 1차원 수평 필터는 행에 따라서 값이 달라질 필요가 없다 는 사실을 기억하자. 2번 식을 살펴보면 exp − n 2 2 σ 2 \exp^{-n^2\over{2\sigma^2}} exp 2 σ 2 − n 2 이고 이는 다음과 같은 1차원 필터이다. 이 1차원 수평 필터를 적용해서 계산한 후에 시그마로 합쳐주면 하나의 스칼라 값이 나온다. PQ의 이미지 사이즈에 1차원 가우시안 필터와 컨볼루션을 계산하는데 드는 시간은 PQn이 들 것이다. 1차원 수평 필터의 값은 행에 따라서 변하지 않기 때문에 우리는 재 계산할 필요없이 PxQ개의 값들...