Computer VIsion/입문(이론편)

인스타의 핵심인 이미지 필터링에 대해 알아보자!

JackSmith 2024. 8. 27.

 

요즘같이 인스타 같은 SNS를 많이 하는 분들에게는 이미지를 찍고 나서 보정을 하고 필터를 넣어

내가 나온 사진을 더 자연스럽고 이쁘게 만드는게 대세인것 같습니다.

이런 맥락에서 오늘은 인스타의 꽃인 이쁜 이미지를 만드는데 필요한 '이미지 필터링' 대해서 알아보도록 하겠습니다.

 

1.이미지 필터링 정의 (Concept of Image Filtering)

'필터링' 이라는 단어를 들으시면 어떤 개념이 떠오르시나요?

다양한 것들이 있을 것 같습니다. 세탁기에 거름망 역할을 하는 필터가 있을 수도 있고, 불닭복음면을 만들때 뜨거운 물을 넣고 뚜껑에 구멍을 뚫어 면은 남긴채 물만 버리는 것도 하나의 필터라 볼수가 있겠죠.

 

<데이터사이언스스쿨>에서는 이렇게 나와있습니다.

이미지필터링이란,
필터(Filter) 또는 커널(Kernel) 또는 윈도우(Kernel)라고 하는 정방행렬을 정의하고 이 커널을 이동시키면서 같은 이미지 영역과 곱하여 그 결과값을 이미지의 해당 위치의 값으로 하는 새로운 이미지를 만드는 연산이다.
(기호 ⊗로 표기한다.)

 

일단 와닿지 않더라도 "그냥 이렇게 부르는구나" 라고 생각하고 넘어가도 괜찮을 것 같습니다.

 

필터링을 적용시키는 방법에는 다양한 수단이 사용됩니다. 위 정의처럼 커널을 이동시키는 클래식한 방법도 있지만, 최근에 나오는 필터들은 대부분 CNN이라고 하는 합성곱 신경망을 주로 사용하게 됩니다.

이 CNN이 컴퓨터비전에서 필터링을 위한 입문이자 최종이라 볼 수 있을 정도로 이 개념을 이해하는 것이 매우 중요하며 이를 위해 오늘은 간략하게만 알아보고 뒤에서 자세히 다루도록 하겠습니다.

 

 

2. 이미지 필터링의 종류

자, 필터링을 위해 필터를 설계할 때는 다양한 목적이 있습니다. 더 선명하게 보이게 한다던가, 일부러 흐려지게 노이즈를 끼게 한다던가, 이미지를 반전시킨다던가, 다양한 솔루션이 존재합니다.

그 대표적인 솔루션들이 아래에 나와 있습니다.

  • Linear Filtering
  • Shift
  • Blurring
  • Sharpening
  • Gaussian Filtering
  • Bilateral Filtering

다양한 솔루션들을 사용하여 다양한 효과를 이미지에 줄 수 있습니다.

하지만 이번 포스팅에서는 노이즈를 어떻게 하면 줄일 수 있을까?라는 질문에 초점을 맞춰봅시다.

이를 위해서는 총 세가지 방법이 제시할 수 있습니다.


1. Linear Filtering(선형 필터링)

리니어 필터링에는 크게 두가지(Cross-Correlation과 Convolution)이 있습니다.

컨볼루션은 전자공학부에서 전공수업 중 신호및시스템(또는 신호처리)과목을 들었다면 한번쯤 들어보았을때 용어일 겁니다. 또는 인공지능 과목을 들었다면 CNN을 공부할때 한번쯤 들어보았을 것 같습니다. 바로 오른쪽 피연산자 함수를 뒤집은 다음 왼쪽에서 오른쪽으로 함수를 밀어주면서 이때 교차하는 면접의 곱을 계산하는 것이었습니다.

이 두가지 필터링은 이런 맥락을 공유합니다.

 

Cross-Correlation은 뒤집지 않고 그냥 밀어준다라고 하면, Convolution은 뒤집은 다음 밀어준다고 생각하면 됩니다.

우선, Cross-Corrleation의 수식은 다음과 같습니다.

 

위에서 f(x,y)는 원본이미지의 (x,y) 위치의 명도를, h(x,y)는 필터 이미지를, g(x,y)는 필터링된 결과를 나타내게 됩니다.

 

이 식에서 K는 필터 크기의 절반을 뜻합니다. 예를 들어 3X3 크기의 필터에서는 K=1입니다. 위 식을 줄여서 다음처럼 나타내기도 합니다.

시그마 기호가 하나로 줄어고 밑에 W라고 붙어있는데, 이는 Window의 이니셜 문자를 따온 것으로 해당 시그마가 움직이는 윈도우(sliding-window) 영역의 역할을 한다는 것을 의미합니다.


반대로, Convolution의 수식은 필터를 좌우, 상하로 뒤집기 때문에 위 연산자 대신  ' * '  연산자를 사용하게 됩니다.

 

 

 

 

 

 

댓글