안녕하세요. 지난 포스팅의 디지털 영상 처리 - 노이즈 모델 구현에서는 MATLAB을 이용해서 영상에 노이즈를 인위적으로 부가하는 방법에 대해서 알아보았습니다. 간단하게 정리하면 아래와 같습니다.
- 부가하고자 하는 노이즈 종류를 정한다.
- 노이즈 종류에 따른 PDF를 정의한다.
- 입력 영상의 크기만큼 PDF에서 샘플링한다.
- 샘플링된 노이즈를 입력 영상에 더한다.
그리고 영상의 퀄리티를 떨어뜨리는 요인은 2가지로 열화 함수 $h(x, y)$와 부가 노이즈 $\eta(x, y)$라고 미리 말씀드렸습니다. 오늘은 열화 함수는 없다고 가정하겠습니다. 그리고 부가 노이즈 $\eta(x, y)$만 주어졌을 때 영상을 복원하는 방법에 대해서 알아보도록 하죠. 따라서 이를 다시 모델링하면 아래와 같이 나타낼 수 있습니다.
$$g(x, y) = f(x, y) + \eta(x, y)$$
$$G(\mu, \nu) = F(\mu, \nu) + N(\mu, \nu)$$
첫번째 식은 공간 도메인에서 정의된 식이고 두번째 식은 주파수 도메인에서 정의된 식입니다. 만약 저희가 $\eta(x, y)$나 $N(\mu, \nu)$를 알고 있다면 아주 간단하게 $f(x, y) = g(x, y) - \eta(x, y)$나 $F(\mu, \nu) = G(\mu, \nu) - N(\mu. \nu)$를 이용해서 영상을 쉽게 복원할 수 있습니다. 하지만 일반적으로 부가 노이즈 항에 대한 정보는 제한되어 있어 입력 영상에 부가된 노이즈가 무엇인지 100% 알지는 못합니다. 따라서 위와 같이 구하는 방법은 아주 이상적인 방법이라는 것이죠.
따라서 영상에 어떤 노이즈가 부가되었는 지 알 수 없기 때문에 다양한 공간 필터 함수들(평균 필터, 순서-통계 필터, 적응 필터)들을 적용하여 가장 좋은 결과를 내도록 만들어야합니다. 오늘은 각각의 공간 필터 함수들에 대해서 정리해보고 가지는 의미에 대해서 알아보도록 하겠습니다.
1. 평균 필터(Mean Filter)
평균 필터는 이전에 제가 아래의 2개의 포스팅에서 미리 정리를 해보았습니다. 혹시 아직 안보고 오신분들은 간단하게 보고 오시는 것을 추천드립니다.
여기서 한 가지 알아둬야할 점은 평균에는 한 가지만 있지 않다는 것입니다. 일반적으로 저희가 평균이라고 말하는 것은 산술 평균(Arithmetic Mean)이고 이와 다르게 정의된 평균이 기하 평균(Geometric Mean), 조화 평균(Hormonic Mean) 등이 있습니다. 따라서 평균 필터 역시 "평균"을 어떻게 정의하느냐에 따라서 다르게 정의된다는 것이죠. 하나씩 살펴보도록 하겠습니다. 모든 필터들에 대해서 $S_{xy}$는 중심이 $(x, y)$이고 크기가 $m \times n$인 사각형으로 된 서브 윈도우 영상 좌표들의 집합, $\hat{f}(x, y)$는 필터링된 영상을 의미하니 착오없으시길 바랍니다.
산술 평균 필터(Arithmetic Mean Filter)
산술 평균 필터는 위의 링크에서 보았던 필터와 동일한 것이기 때문에 수식만 첨부하도록 하겠습니다.
$$\hat{f}(x, y) = \frac{1}{mn}\sum_{(s, t) \in S_{xy}}g(s, t)$$
기하 평균 필터(Geometric Mean Filter)
일단 기하 평균에 대한 정의는 아래의 링크에 자세히 나와있습니다.
간단하게 예시를 들어서 설명드리겠습니다. 2와 4에 대한 산술 평균은 $\frac{2 + 4}{2} = 3$으로 나오지만 기하 평균은 $(2 + 4)^{\frac{1}{2}} = \sqrt{6} \approx 2.449$가 됩니다. 이를 데이터 $(x_{1}, x_{2}, \dots, x_{n})$의 데이터가 있다고 가정했을 때 기하 평균은 $\left(\Pi_{k = 1}^{n} x_{k}\right)^{\frac{1}{n}}$으로 주어집니다. 정의 자체는 간단합니다. 이를 2차원 영상에 대해서 적용하면 아래와 같습니다.
$$\hat{f}(x, y) =\left[\Pi_{(s, t) \in S_{xy}} g(x, y)\right]^{\frac{1}{mn}}$$
위 수식이 이해안되시는 분들을 위해서 추가적으로 설명을 드리면 저희가 미리 정의한 서브 윈도우 영상 좌표들의 집합 $S_{xy}$에 해당하는 영상 좌표들을 싹다 불러와서 다 곱한다음에 $1/mn$ 제곱을 적용한 결과를 $\hat{f}(x, y)$의 값으로 채우는 것입니다. 단순히 평균에 대한 정의만 바뀌었다는 것을 꼭 인지하셔야합니다.
조화 평균 필터(Harmonic Mean Filter)
조화 평균에 대한 정의 역시 아래의 위키피디아에 자세히 나와있으니 필요하신 분들을 참고하시길 바랍니다.
기계학습 관련 공부를 하신 분들이라면 조화 평균이라는 말은 한번 쯤은 들어보셔야합니다. 왜냐하면 분류에 대한 성능을 측정할 때 F1 점수를 계산하는 것은 정밀도(Precision)과 재현율(Recall)의 조화 평균으로 계산하기 때문입니다. 예를 들어서 2와 4에 대한 조화 평균은 $\frac{2}{\frac{1}{2} + \frac{1}{4}} = 2 \cdot \frac{4}{3} = \frac{8}{3} \approx 2.667$로 주어집니다. 이를 2차원 영상으로 확장하면 아래와 같습니다.
$$\hat{f}(x, y) = \frac{mn}{\left[\sum_{(s, t) \in S_{xy}} \frac{1}{g(s, t)}\right]}$$
콘트라 조화 평균 필터(Contra-harmonic Mean Filter)
콘트라 조화 평균 필터는 위의 조화 평균 필터에서 식을 변형하여 아래와 같이 정의됩니다.
$$\hat{f}(x, y) = \frac{\sum_{(s, t) \in S_{xy}} g(s, t)^{Q + 1}}{\sum_{(s, t) \in S_{xy}} g(s, t)^{Q}}$$
위의 식을 잘 관찰해보면 기존의 조화 평균 필터에서 $Q$라는 파라미터가 추가된 것을 볼 수 있습니다. $Q$는 차수(order)로 불리고 조화 평균이 기본적으로 소금 노이즈에 대해서는 잘 동작하지만 후추 노이즈에 대해서는 잘 동작하지 않기 때문에 나온 필터함수입니다. 실제로 $Q = -1$이면 조화 평균 필터, $Q = 0$이면 산술 평균 필터와 동일한 것을 알 수 있습니다. 이처럼 $Q$가 음수라면 소금 노이즈를 제거하는 데 좋고, 이와 반대로 $Q$가 양수라면 후추 노이즈를 제거하는 데 좋은 성능을 보여줍니다. 따라서 콘트라 조화 평균은 산술 평균 필터와 조화 평균 필터의 일반화된 버전이라고 보면 됩니다.
위 영상에서 (b)는 가우시안 노이즈에 오염된 영상입니다. 여기에 산술 평균 필터를 적용한 (c)와 기하 평균 필터를 적용한 (d)를 비교해볼 수 있습니다. 여기서는 두 영상 사이에 큰 차이는 존재하지 않지만 일반적으로 기하 평균 필터가 산술 평균 필터에 비해 디테일에 대한 보존을 더 많이 하는 경향이 존재합니다.
이번에는 소금-후추 노이즈에 오염된 영상을 콘트라 조화 평균 필터를 이용해서 복원해보도록 하겠습니다. 방금도 말씀드렸지만 (a)와 같은 후추 노이즈는 $Q$를 양수로 두어야하고 (b)와 같은 소금 노이즈는 $Q$를 음수로 두어야 노이즈 제거 효과가 발생합니다. 만약 부호를 잘못선택하면 아래와 같은 현상이 발생합니다.
2. 순서-통계 필터(Order-Statistic Filter)
순서-통계 필터 역시 이전 위의 포스팅에서 미리 정리한 적이 있으니 아직 안보신 분들은 한번 보고 오시는 것을 추천드립니다. 순서-통계 필터의 기본 알고리즘은 동일하다고 보시면 됩니다.
- 서브 윈도우 $S_{xy}$ 내의 픽셀값들을 크기 순으로 정렬
- 어떤 순서-통계 필터를 사용하는 지에 따라서 정렬된 수열에서 선택
따라서 순서-통계 필터는 어떤 통계적 값을 사용하는 지에 따라서 종류가 달라집니다. 대표적으로 중간값 필터, 최댓값 필터, 최솟값 필터, 중간점 필터, Alpha-트리밍 평균 필터 등이 있습니다. 하나씩 살펴보도록 하겠습니다.
중간값 필터(Median Filter), 최댓값 필터(Max Filter), 최솟값 필터(Min Filter)
이 3개의 필터들은 전부 서로 유사합니다. 정렬한 뒤 중간값을 적용하면 중간값 필터, 최댓값을 적용하면 최댓값 필터, 최솟값을 적용하면 최솟값 필터가 되는것이죠. 각각의 필터들은 전부 위의 링크들에 제가 미리 정리해놓았으니 여기에는 간단하게 수식만 첨부하도록 하겠습니다.
$$\hat{f}(x, y) = \text{median}_{(s, t) \in S_{xy}} \{g(s, t)\}$$
$$\hat{f}(x, y) = \text{max}_{(s, t) \in S_{xy}} \{g(s, t)\}$$
$$\hat{f}(x, y) = \text{min}_{(s, t) \in S_{xy}} \{g(s, t)\}$$
여기서 특히 중간값 필터는 소금-후추 노이즈, 최댓값 필터는 후추 노이즈, 최솟값 필터는 소금 노이즈 제거에 탁월한 효과를 보여줍니다.
중간점 필터(Mid-point Filter)
중간점 필터는 위의 필터들과는 살짝 다른 방식으로 값을 결정합니다만 그렇게 어렵지 않습니다. 일단 서브 윈도우 $S_{xy}$ 상에서 값들을 정렬한 뒤 최댓값과 최솟값의 평균을 취하면 그게 중간점이라고 합니다. 아주 간단하죠? 이를 수식으로 표현하면 아래와 같습니다.
$$\hat{f}(x, y) = \frac{1}{2}\left[\text{max}_{(s, t) \in S_{xy}} \{g(s, t)\} + \text{min}_{(s, t) \in S_{xy}} \{g(s, t)\}\right]$$
이러한 중간점 필터는 순서 통계와 평균을 조합한 대표적인 필터 중 하나 입니다. 기본적으로 중간점 필터는 가우시안 노이즈나 균일 노이즈와 같은 랜덤하게 분포된 노이즈에 대해 가장 잘 동작합니다.
Alpha-트리밍 평균 필터(Alpha-Trimmed Mean Filter)
이제는 말도 어려워 보입니다. 하지만 실제로는 그렇게 어렵지 않으니 차근차근 알아보도록 하겠습니다. 이를 위해서는 먼저 최댓값 필터, 최솟값 필터, 중간점 필터의 특성부터 알아보아야합니다. 각 필터들은 전부 서브 윈도우 $S_{xy}$ 내의 가장 극단적인 값들을 이용하여 필터링합니다. 따라서 이러한 극단적인 값들에 대한 영향력을 줄이는 방법이 Alpha-트리밍 평균 필터입니다.
이를 위해서 저희는 콘트라 조화 평균 필터의 $Q$와 마찬가지로 이번에는 $d$라는 새로운 파라미터를 도입합니다. 이 파라미터는 서브 윈도우 $S_{xy}$ 내의 극단적인 값들을 얼마나 무시할 것인지에 대한 것입니다. 일단 이번에도 동일하게 서브 윈도우 $S_{xy}$ 내의 모든 값들은 정렬을 시킵니다. 그 다음에는 $\frac{d}{2}$ 개의 가장 낮은 밝기 값들과 $\frac{d}{2}$ 개의 가장 높은 밝기 값들을 무시합니다. 무시된 좌표들을 제외한 영상을 $g_{r}(s, t)$가 총 $mn - d$개의 픽셀들을 나타낸다고 가정하면 해당 픽셀값들에 대한 평균을 계산하는 것이 Alpha-트리밍 평균 필터입니다. 이를 수식화하면 아래와 같습니다.
$$\hat{f}(x, y) = \frac{1}{mn - d} \sum_{(s, t) \in S_{xy}} g_{r}(s, t)$$
여기서 $d$는 $0 ~ mn - 1$ 사이의 값을 가질 수 있습니다. $d = 0$ 이라면 Alpha-트리밍 평균 필터는 단순한 산술 평균 필터가 되고 $d = mn - 1$이라면 1개의 값을 제외하고 모두 삭제한다는 것을 의미하기 때문에 중간값 필터와 동일합니다. 이러한 조합된 구조의 필터링 방식은 혼합된 노이즈의 제거에 좋은 결과를 보여줍니다. Alpha-트리밍 평균 필터의 경우에는 중간값 필터와 산술 평균 필터의 암묵적 조합이기 때문에 소금-후추 노이즈와 가우시안 노이즈가 조합된 경우 좋은 결과를 얻을 수 있습니다.
일전에도 설명드렸지만 중간값 필터는 소금-후추 노이즈를 제거하는 데 아주 좋은 성능을 보여줍니다. 실제로 위와 같이 노이즈가 거의 없어진 것을 관찰할 수 있습니다.
위의 영상에서 (b)는 균일 노이즈와 소금-후추 노이즈에 오염된 영상을 보여줍니다. 위와 같이 노이즈 조합에서 Alpha-트리밍 평균 필터($d = 6$)를 적용한 (f)가 그나마 좋은 성능을 보이고 있음을 알 수 있습니다.
'image processing' 카테고리의 다른 글
디지털 영상 처리 - 노이즈만 있을 때 복원하기(공간 필터링) : 평균 필터와 순서-통계 필터 구현 (0) | 2021.05.22 |
---|---|
디지털 영상 처리 - 노이즈만 있을 때 복원하기(공간 필터링) : 적응 필터 (0) | 2021.05.12 |
디지털 영상 처리 - 노이즈 모델 구현 (0) | 2021.05.07 |
디지털 영상 처리 - 노이즈 모델들 (0) | 2021.05.05 |
디지털 영상 처리 - 영상 열화 및 복원 과정 모델 (0) | 2021.05.02 |