1. Smoothing(Lowpass) Spatial Filter란? 적용, 목적
Smoothing (also called averaging) spatial filters는 intensity에서 sharp(갑자기 intensity가 치솟는)함을 줄이는데 사용된다. sharp한 특성을 띠는 패턴이 random noise에서 발견되기 때문에 Lowpass filter를 하면 노이즈 감소 효과가 있다. 얼마나 감소되는지는 kernel의 size와 coefficient에 따라 결정된다.
노이즈 감소 외에도 이미지 내에서 쓸대없는 / 상관없는(매우 작은, 노이즈같은) 디테일을 감소시켜주는 역할또한 한다.
이외에도 intensity level의 부족으로 생긴 잘못된 경계를 smoothing 하는데 이용되기도, 이후 설명할 filter들의 기초로서 사용되기도 하는 등 중요한 개념이다.
2. Box filter kernel
가장 간편한 필터, 모든 계수가 1이고, 필터 크기로 normalize된 형태이다. 도은 계수가 1이므로 seperable하고, normalize하므로 입출력 Intensity의 평균이 같게 만들고, filtering으로 인한 bias를 막아준다(입출력의 픽셀의 합이 동일하므로)
이를 실제 돌리면 다음과 같은 결과를 얻을 수 있다.
kernel의 사이즈를 점점 키운 결과이다. 이미지가 blur되고 Noise를 표현한 이미지를 보았을 때 이것이 줄어듬을 확인할 수 있다. 추가로 zero padding으로 인해 경계부분에 얇은 gray border이 형성됨을 볼 수 있다.
+ 이미지의 크기에 따라 같은 필터라도 blur효과가 달라지기도 한다
2. Lowpass gaussian filter kernel
box filter의 한계로, 1) 한정된 적용처와 2) 수직 방향으로만의 blur ( geometry가 많고, high level의 detail을 포함한 이미지에서 예기치 못한 결과를 가져올 수 있음)가 있다.
그래서 이러한 경우 circularly symmetric(혹은 결과가 방향에 대해 독립적임을 의미하는 isotropic)하고 separable한 Gaussian kernels를 사용한다. 이에 대한 식은 다은과 같다.
separable하므로 연산 효율성이 높다
아까 말했던 circularly symmetric(원형 대칭)한 특성에 대해서 더 알아보자. 커널 크기가 홀수이므로 r*r도 홀수이고, 원형대칭을 이룰 수 있다. 그리고 box kernel때와 같은 이유로 coefficients의 합으로 normalize한다
Separability하다는 것은 circularly symmetric Gaussian kernels의 특성이다. 그리고, kernel의 크기를 결정할 때 가우시안 분포에서 "3 x 표준편차"를 넘는 영역은 무시되어도 괜찮다는 논리로 부터 크기를 [6*표준편차] x [6*표준편차]로 설정한다.
그리고 가우시안 커널엔 연산량을 줄이는 또 다른 특성이 존재한다. 가우시안 간의 convolution과 product의 결과가 가우시안임을 기반으로, 가우시안간의 연산을 다음과 같이 쉽게 계산할 수 있다.
3. 결과
오른쪽으로 갈 수록 표준 편차가 크다, 커짐에 따라 blur 효과도 증대됨을 확인할 수 있다
커널 크기를 6 x 표준편차로 정하는 이유를 보여주는 사진이다. 왼쪽은 6x표준편차이고, 오른쪽은 6 x 2 x 표준편차 크기만큼 커널을 만들었다. 하지만 결과가 비슷하다는 것으로 보아, 경계를 6x표준편차로 정해도 됨을 실험적으로 보였다
4. Box filter vs Gaussian filter
box filter는 linear smoothing을 하여 edge을 좀더 밝게 하여 급격한 경사 형상을 띄고, 끝 부분에서 직선형태로 급변한다. 따라서 edge에 대한 smoothing이 덜 되고자 할 때 사용한다.
반면에 Gaussian은 edge 주위에 급격한 smoothing을 하고, uniform smoothing을 해주므로 이러한 특성이 필요한 경우에 사용한다.
이를 위쪽 사진의 a를 보면 더 쉽게 이해할 수 있는데, a에서 gaussian의 edge가 더 smooth한 것을 확인할 수 있다.
5. Padding
zero padding은 kernel의 사이즈에 따라 경계의 일정 영역을 검게 한다. 다른 padding 방식으로는 대칭성을 활용해 값을 복사하는 mirror padding(경계 근처에 유의미한 image detail이 포함될 때 적합)과 근처 border값을 그냥 복사하는 replicate padding(border이 상수일 때 유용)이 존재한다.
각 padding에 따른 경향성을 예시를 보며 살펴보자
6. Order-statistic (Nonlinear) filter
Filter 내의 ranking을 바탕으로 중앙 값에 대한 output을 도출하는 필터로, 대표적으로 median filter가 이에 포함된다 (필터 내 중앙값을 선택하는 필터) 다른 linear smoothing filter보다 덜 blur하게 하면서도 noise reduction에 매우 좋은 성능을 보이는데, salt-and-pepper noise처럼 noise가 큰 값일 때 convolution하면 결과값이 극값이 되면서 noise를 잘 제거 못하는 경우를 해결해준다.
어떻게 연산되는가? 하면 일단 filter내의 neighborhood pixel들을 정렬하고, 중앙값을 찾아 대치하는 방식으로 진행된다.
이외에도 max filter 등 다양한 nonlinear filter들이 존재한다.