Image
오늘 설명할 내용은 Image에 대한 내용입니다
우리가 일반적으로 Image를 인식할때와 그 이미지가 컴퓨터에서 어떻게 인식되고 어떻게 활용되는지에 대해 포스팅하겠습니다
기존에 우리가 인식하는 Image들은 이와같이 인식됩니다


(좌)기본 이미지/ (우)컴퓨터가 인식하는 이미지
하지만 Deep learning을 위해 컴퓨터가 인식하는것은 우측에 있는 사진처럼 특정한 값을 가지고 인식됩니다.
0~255까지의 범위를 가지며
0에가까울수록 어둡고 255에 가까울수록 밝게 표현됩니다.
Imager를 표현할때 크게 세가지로 나누어 볼 수 있습니다
Binary Image, Grayscale Image, Color Image로 볼 수 있습니다
1.Color Image

Color Image는 저희가 흔이 알고있는 RGB,즉 Red Green Blue 로 구성된 이미지입니다.
2.Binary Image
Binary란 우리가 알고있듯이 2진수입니다. 즉 사진이 0과 1로만 구성되어있는것입니다. 명암은 존재하지않고 흑과 백으로만 image가 표현된것입니다
첫번째 사진에서 볼수있듯이 image의 픽셀마다 특정값을 가지고있습니다. 0 ~ 255범위 내부에서 존재하는것인데, threshold,즉 임계점을 넘으면 1로 판단하고 그 이하의 수면 0으로 판단하는것입니다. 0이면 검정색으로 표현되고 1이면 백색으로 표현되게됩니다

이처럼 동일한사진이 threshold에 의해서 판별됐는데요

threshold를 10으로 낮춰준다면 10 이상의 숫자들은 모두 1로 판별되고 흰색으로 판단되기때문에 이처럼 사진이 출력되게됩니다
3.Grayscale Image
Grayscale Image란 Binary에서는 0과 1로만 숫자가 구성되어 흑과 백으로 표현하게 되지만, 명암표현은 되지 않습니다. Grayscale Image는 흑백으로 표현되지만 Binary image와 다르게 명암으로 구분될수 있도록합니다

Image Filtering
image filtering에서는 mean filter, gaussian filter, median filter가 사용되는데, 특정 이미지에 Filter를 적용해 image를 변화시킵니다.
filter의 사용 이유는 이미지의 특정 특징을 강조하거나 불필요한 노이즈를 제거하는 등 다양한 목적을 달성하기 위해서입니다.
Mean filter란 평균 필터입니다. 각 필셀의 값을 주변 픽셀들의 평균으로 대체하여 노이즈를 줄입니다. 혹은 이미지를 블러링 처리하여 특정효과를 얻거나, 후속 처리 단계에서 더 나은 결과를 얻기 위해 사용됩니다.
블러링은 이미지를 흐리게 만드는 과정입니다.
이미지를 왜 블러링을 통해 흐려지게 만들까요?
이미지를 흐리게 만듦으로써,
1.고주파 노이즈를 줄입니다.
2. 이미지를 부드럽게 만들어 비정상적인 경계나 불연속성을 제거합니다. 이는 후속단계인 segmentation에서 유용하게 처리될수 있도록 해줍니다.
3.이미지의 작은 세부 사항을 흐리게해 주요 구조를 더 명확하게 만들거나 중요한 특징만 남겨두고 불필요한 세부사항을 제거합니다.
위와같은 이유로 블러링을 사용합니다.
이는 3*3 kernel이라면 총 9개의 pixel이 존재하므로 각 pixel마다 1/9씩 해주는것입니다. 그렇게되면


좌측에 있는 filter가 우측에 있는 Image에 대해서 적용되어, 값들이 떨어져, 평균적으로 맞춰지도록 합니다.
그렇게 되면


이와같이 흐려지게 되는 결과물을 얻게 됩니다.

이와같이 코드를 사용하게되는데
cv.blur(image,(5,5)) 이 코드에서 (5,5)는 filter의 크기를 나타냅니다. filter가 커질수록 나눠지는 분모의 값이 더 커지니 더욱 더 흐려지게 됩니다.
Gaussian filter
가우시안 필터는 평균 필터와 같이 이미지 블러링을 위한 필터지만 그 원리와 결과에 차이점이 있습니다.
평균필터는 커널 크기 내 모든 픽셀 값의 단순 평균을 계산해 중심 픽셀값을 대체합니다
가우시안 필터는 가우시안 분포를 따르는 커널을 사용해 각 필셀 값에 가우시안 가중치를 곱한 뒤 그 값을 더해 중심 픽셀값을 대체합니다.
여기서 가우시안 분포에 대해서 잘 모르실수도 있는데
가우시안 분포는 연속 확률 분포로, 평균μ와 표준 편차 σ를 매개변수로 가지며, 확률 밀도 함수(PDF)는 다음과 같은 형태를 가집니다:

이와같은 성질을 가지고있으며

이와같이 표준편차에 따라 그래프 분포가 달라지는것을 볼 수 있습니다.

이처럼 gaussian blur를 적용하기위해 filter의 size와 표준편차를 이용해 필터를 만들게 됩니다


Gaussian filter 좌 표준편차 0/ 우 표준편차 3으로 설정
이와같이 표준편차를 다르게 했을때, 같은 kernel size여도 표준편차로 인해 더욱더 blur처리가 될수 있도록 합니다.
가우시안 필터는 가우시안 가중치로 인해 자연스럽고 부드러운 블러링 효과를 가지며 에지를 더 잘 보존할수 있어 평균필터보다 이점이 있습니다. 하지만 계산량이 복잡하다는 단점도 존재합니다.
Median Filter
중간값필터는 평균필터와는 사뭇 다른 과정입니다.
1. 커널 설정: 특정 크기의 커널을 설정합니다
2. 값 정렬: 커널 내의 픽셀 값을 오름차순으로 정렬합니다.
3. 중간 값 선택: 정렬된 값들 중 중간에 위치한 값을 선택합니다.
4. 값 대체: 중심 픽셀 값을 중간 값으로 대체합니다.
이는 이미지 에지를 잘 보존하며 픽셀값의 평균을 계산하지 않으므로 원래 이미지를 더 잘 유지합니다.

이와같이 코드를 사용하며


같은 kernel size를 설정한 mean filter를 비교해봐도 median filter가 더 원본 image를 잘 보존하고 있음을 알 수 있습니다.
'DeepLearning' 카테고리의 다른 글
| 가상환경 설정상환경 설정/ Git clone (1) | 2025.07.18 |
|---|---|
| CUDA 설치, Python Pytorch (1) | 2025.07.18 |
| [DeepLearning]Epoch,Batch의 의미 (2) | 2025.02.05 |