Computer Vision Theory : 노이즈 제거 & 이미지 복원

Noise Reduction & Image Restoration

Computer Vision Theory : 노이즈 제거 & 이미지 복원
[ ComputerVision ] - 윤대희

노이즈 제거(Noise Reduction)


1 노이즈(Nosie)란 잡음을 뜻하며, 원하지 않는 데이터를 의미합니다. 즉, 다른 데이터를 간섭하거나 의도하지 않은 왜곡을 의미합니다. 노이즈는 알고리즘을 방해하는 주된 요인이 됩니다. 빛의 세기, 장면 전환, 피사체의 움직임, 카메라의 성능, 디지털 이미지 정보 압축 등 다양한 이유로 인하여 발생합니다. 노이즈는 데이터의 품질을 저하시킬뿐만 아니라 알고리즘의 성능과 정확도 등에도 영향을 미칩니다.

결국, 알고리즘의 연산량을 줄이고 성능과 정확도를 높이기 위해 노이즈를 제거하는 과정을 진행해야 합니다. 이러한 과정이나 작업을 디노이즈(DeNoise)라 합니다. 디노이즈는 주로, 입력 데이터나 출력 데이터의 불필요한 데이터를 제거하거나 값을 변경하여 데이터를 선명하게 만드는 역할을 합니다.

OpenCV를 통하여 불러오는 이미지는 Bitmap 형식이므로, 어떤 이미지라도 노이즈는 항상 존재합니다. 만약, 노이즈가 존재하지 않는 이상적인 이미지라고 가정하여도 검출하려는 객체를 제외한 데이터는 검출을 방해하는 요소가 됩니다. 즉, 불필요한 데이터는 모두 노이즈로 가정할 수 있습니다. 노이즈를 제거하여 검출이나 분석 등의 정확성정밀성을 높일 수 있습니다.

대표적인 노이즈 제거 알고리즘으로는 흐림 효과(Blur), 필터링(Filtering), 모폴로지(Morphology) 등이 있습니다.



흐림 효과(Blur)

흐림 효과(Blur)는 영상이나 이미지를 흐림 효과를 주어 번지게 하기 위해 사용합니다. 해당 픽셀의 주변값들과 비교하고 계산해 픽셀들의 색상 값을 재조정합니다. 흐림 효과를 통해 이미지를 부드럽게 하거나 흐릿하게 하여 노이즈를 제거합니다. 또한, 흐림 효과를 통해 이미지가 움직이는 듯한 효과를 줄 수도 있습니다. 즉, 주변 객체들과 흡사한 값으로 변경해 노이즈를 줄이고, 형상을 유지하여 검출하기 쉬운 상태로 변형합니다.



필터링(Filtering)

필터링(Filtering)은 원하지 않는 데이터를 걸러내어 필요한 데이터만 남기는 작업을 의미합니다. 영상처리에서 필터링은 임의의 필터를 이미지나 영상에 적용하여 원하지 않는 데이터를 제거하거나, 노이즈를 감소시키는 역할을 합니다. 흐림 효과와 마찬가지로, 해당 픽셀 주변값들과 비교하고 계산해 픽셀들의 색상 값을 재조정합니다. 그러므로, 필터링을 이용해 흐림 효과를 적용할 수 있으며, 선명화(Sharpening) 작업도 진행할 수 있습니다. 선명화 작업은 이미지를 흐리게 만드는 것과 반대로 이미지를 선명하게 만듭니다.



모폴로지(Morphology)

모폴로지(Morphology) 는 영상이나 이미지의 픽셀값을 대체하기 위해 사용합니다. 영상이나 이미지에서 팽창(Dilate)침식(Erode)을 이용해 이미지의 정확도를 높일 수 있습니다. 팽창은 구조 요소를 사용하여 이웃한 화소를 최대 픽셀로 대체합니다. 어두운 영역이 줄어들며 밝은 영역이 늘어납니다. 노이즈 제거 후 줄어든 크기를 복구하고자 할 때 주로 사용합니다. 침식은 구조 요소를 사용하여 이웃한 화소를 최소 픽셀로 대체합니다. 밝은 영역이 줄어들며 어두운 영역이 늘어납니다. 노이즈 제거에 주로 사용합니다. 이 두 연산을 혼합한 열림(Opening), 닫힘(Closing), 그레이디언트(Gradient) 연산 등으로 이미지에서 원하지 않는 홀(Hole)이나 스펙클(Speckle) 등을 제거할 수 있습니다.



이미지 복원(Image Restoration)


2 이미지 복원(Image Restoration)디노이즈(DeNosie) 영역이 일부 포함됩니다. 이미지 복원은 훼손된 영역이나 객체를 변형하여 본래의 형태로 복구하는 작업을 의미합니다. 이미지가 뭉게지거나 선명하지 않은 이미지를 원래의 형상으로 복원합니다.

이미지에서 불필요한 부분을 제거하였을 경우, 다시 원래 상태로 복원해야 하는 경우가 있습니다. 이때, 주변의 픽셀값으로 대체하거나 본래의 형상과 비슷하도록 변형하는 작업입니다. 입력된 이미지의 형태가 변경되지만, 본질에 더 가깝게 변경하게 됩니다.

대표적으로 크기 변환(Resize), 개체 제거(Inpaint), 감마 보정(Gamma Correct) 등이 있습니다.



크기 변환(Resize)

크기 변환(Resize)은 이미지 자체의 크기를 변경하거나 특정 영역의 크기를 변경하는 역할을 합니다. 이미지의 크기를 변경하는 작업으로도 이미지를 복원할 수 있습니다. 이미지 내의 특정 영역을 잘라 크기를 변경하여 본래의 이미지와 어울리게 배치하거나, 크기 변환을 통해 나온 데이터의 값으로 원래의 이미지와 블렌딩(Blending)하여 데이터의 픽셀값을 더 자연스럽게 변경합니다.



개체 제거(Inpaint)

개체 제거(Inpaint)는 영상이나 이미지에서 불필요한 부분이나 영역을 제거한 후, 주변의 픽셀값으로 대체합니다. 제거될 영역의 경계에서부터 주변의 인근 픽셀값과 유사한 값으로 채워 자연스러운 이미지의 형태로 만드는 과정입니다. 개체 제거는 워터 마크나 이미지 내에서 불필요한 부분 또는 본래의 객체에서 튀는 부분 등을 삭제하고 자연스럽게 대체하기 위해 사용합니다.



감마 보정(Gamma Correct)

감마 보정(Gamma Correct)은 영상이나 이미지의 명암을 보정하기 위해 사용되는 알고리즘입니다. 모니터 등을 통하여 촬영된 이미지를 확인할 때, 결과물이 밝거나 어둡게 보이는 경우가 있습니다. 디스플레이 장치는 입력 신호에 따라 출력 밝기가 비선형적인 강도를 가지고 있으며, 인간의 시각 또한 비선형적으로 빛을 인지합니다. 그러므로, 비선형 전달 함수(Nonlinear Transfer Function)를 사용해 빛의 강도 신호를 비선형적으로 변형합니다. 단순하게 전체 픽셀값을 균일하게 밝게 하는 것보다, 비선형적인 연산으로 명암을 조금 더 효과적으로 보정하기 위해 감마 보정을 실행합니다.



  • Writer by : 윤대희


Book Image

책이 출간되었습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C# OpenCvSharp4
  • Python OpenCV4
  • Using Tesseract
  • Using TensorFlow
  • Using Regular Expression
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post Computer Vision Theory : 전처리 알고리즘 ⤧  Next post Computer Vision Theory : 이미지 연산
    ComputerVision Category