이미지 이진화 이후, 노이즈 감소 내용입니다.
이번에 사용할 이미지는 위 이미지와 같이,
전의 포스팅 내용인 Mean Adaptive Thresholding 이진화 기법 적용 이미지 입니다.
어떤 이미지든 노이즈가 껴있기 마련입니다.
일반적으로,
- 카메라 센서를 통해 이미지 입력 시 발생하는 전기적 잡음
- 이미지 파일 압축
- 조명, 그림자, 어두운 환경 혹은 너무 밝은 환경
- 카메라 렌즈 문제
등등
굉장히 다양한 환경으로 인해 노이즈는 발생합니다.
이미지 캡쳐떠서 붙여넣기 할때도 화질이 좀 떨어지는 경우가 있는데,
이는 압축 과정에서 정보 손실이 발생했기 때문입니다.
이런 모든 과정을 노이즈라 할 수 있고,
위 이미지에서는,
글씨 제외 모든 것을 노이즈라고 볼 수 있습니다.
미디언 필터는 노이즈 제거하기 위해 쓰는 기법 중 하나인데,
필터 내의 중간값으로 현재 픽셀 값을 교체하는 방식
입니다.
적용 코드는
median_filter =cv2.medianBlur(mean_bin, 3)
이와 같고,
적용 후 이미지는 이렇게 구성됩니다.
위 코드의 3값은 필터 크기를 뜻하는데,
왼쪽 그림은 필터 크기 3값 입력했을 때의 결과물이고,
오른쪽 그림은 필터크기 5로 설정했을 때 입니다.
확실히 필터 크기를 키웠을 때, 더 많은 크기를 고려해서 노이즈 값이 많이 감소된게 보입니다.
하지만 여기서의 문제는, 노이즈가 감소되면서, 실제 필요한 글씨도 함께 지워진걸 알 수 있습니다.
그래서 여기서는, 노이즈도 어느정도 사라져있고, 원래 글씨도 최대한 살아있는 것을 보아하면,
Median Filter 크기 3을 적용했을 때가 최적인 것을 알 수 있습니다.
Bilateral 필터는 노이즈 제거에 사용되는 또 다른 필터 입니다.
엣지를 유지하면서 노이즈를 제거하는 필터링 기법
으로 정리할 수 있으며,
공간 가중치(Spatial Weight, σSpace) :
픽셀의 거리가 가까울수록 더 큰 가중치 부여.
즉, 가까운 픽셀일수록 영향 많이 받고, 먼 픽셀일수록 영향이 줄어듦
색상 가중치(Color Weight, σColor) :
픽셀의 색상 차이가 작을수록 더 큰 가중치 부여.
즉, 비슷한 색상의 픽셀은 보존, 차이가 크면 영향을 덜 줌
이 두 가지 조건을 같이 고려하여, 노이즈를 제거하면서도 경계를 보존하는 효과를 줍니다.
가우시안 필터는 필터를 하나만 적용한다고 하면,
바이레터럴 필터는 두개의 필터를 동시에 사용하여 더 세밀한 조정이 가능하고,
이런 OCR 작업에 적합합니다.
bilater_filter = cv2.bilateralFilter(mean_bin, 9, 75, 75)
적용 코드는 이와 같고,
여기서 9값은 d(필터링 할 픽셀 범위), 75 값은 색상의 차이에 따른 필터 강도,
뒤의 75값은 거리 차이에 따른 필터 강도를 설정하는 값 입니다.
9값에서 더 커지면, 전체적으로 흐려지는 효과가 나타났고,
그 외의 값도, 강도를 설정하는 것이기 때문에, 값을 높였을 때 노이즈 감소 효과는 있었으나,
세부 정보(글씨)가 뭉개지는 것을 확인할 수 있었습니다.
즉, 실험했을 때의 최적 매개변수 값은 이와 같았고,
위 출력 이미지를 확인했을 때,
Median 필터(가운데) 적용 이미지와,
바이레터럴 필터(오른쪽) 이미지를 비교하면,
글씨 부분의 큰 차이는 보이지 않으나,
영수증 가장자리 경계선의 노이즈는 좀 더 감소하는 효과를 확인할 수 있습니다.
미디언 필터는 설정 픽셀 내, 중앙값으로 대체하는 방식 입니다.
그래서 바로 위 이미지 처럼, 글씨 사이사이에 점 같은 노이즈 제거 효과는 가져오지만,
가장자리 진한 검은 선으로 구성된 부분의 노이즈는 크게 감소되지 않는 것을 확인할 수 있습니다.
그에 반해, 바이레터럴 필터는
공간 정보와 색상 정보를 동시에 고려합니다.
이는, 색상이 유사한 픽셀끼리는 보존하면서도,
색상이 다른 픽셀(노이즈 부분)은 더 강하게 제거됩니다.
그래서 색상 차이가 큰 가장자리 부분의 노이즈는 필터링되면서,
위와 같은 효과를 가져옵니다.
여기까지의 결과물을 확인해보면,
기대효과에 크게 미치지는 못하는 것 같습니다.
모폴로지 연산으로 노이즈 감소 + 깨진 글씨 보완이 가능한데,
다음 포스팅 내용에 정리하도록 하겠습니다.
감사합니당 ~ 🦾