패딩 (Padding)
합성곱 연산에도 단점이 존재한다.
1). 위의 예시를 봐서도 알겠지만 합성곱 연산을 할 때마다 이미지가 축소된다.
- 이 작업을 여러 번 반복한다면 특성 맵은 초기 입력보다 매우 작아질 것이다. (1 x 1 크기만큼 축소될지도?)
- 윤곽선을 검출하거나 어떤 특성들을 찾아내려고 할 때마다 저렇게 이미지가 축소되는 걸 원하지는 않을 것이다.
2). 모서리 부분에 놓인 픽셀들의 정보들은 거의 날려버리게 된다.
입력 이미지의 모서리 부분에 있는 픽셀(파란 네모로 표기한)들을 보면 딱 한 번씩만 필터와 맵핑되니 결과 이미지인 특성 맵에 단 한번만 사용되는 것이다. 그만큼 다른 픽셀들과 비교했을 때, 결과 이미지에 덜 사용하게 되니 이 픽셀들의 정보들을 거진 사용하지 않게 되는 것이다.
이 두 문제를 해결하기 위해서 합성곱 연산을 하기 전에 이미지를 덧대는 방법이 있다.추가로 이미지에 경계를 덧대는 방법으로 이를 패딩(Padding) 이라고 한다. 주로 새로 덧대진 부분들의 값은 0으로 채우는 제로 패딩(Zero padding)을 사용한다.
5 x 5 이미지에 패딩 = 1 을 사용하니 특성 맵은 6 x 6의 크기를 가져 기존 입력 이미지와 같은 사이즈를 가지게 되었다. 즉 패딩을 통해 이미지가 합성곱 연산 뒤에도 기존의 크기를 유지할 수 있다는 것이다.
패딩이 추가되었을 때의 합성곱 관계식: (n x n) * (f x f) = (n + 2p - f + 1 x n + 2p - f + 1)
p = 패딩 폭, n = 이미지의 높이와 너비, f = 필터 크기
위의 예시를 기반으로 합성곱의 관계식을 세워볼 수 있다.
패딩의 폭은 예시처럼 p = 1 뿐만 아니라 p = 2, p = 3 등 다양하게 지정할 수 있다.
유효 합성곱과 동일 합성곱
합성곱에는 두 가지의 선택지가 있다.
1. 유효 합성곱 (Valid Convolution) : 패딩을 적용하지 않은 합성곱
2. 동일 합성곱 (Same Convolution) : 패딩을 적용한 뒤의 특정 맵의 크기와 기존 입력 이미지의 크기가 같은 합성곱
- 그렇다면, 결과의 크기가 기존 이미지의 크기와 같게 하려면 패딩의 폭은 몇으로 설정해야 할까?
- ➱ 공식: p = (f – 1) / 2 | 단 f = 홀수 (일반적으로 컴퓨터 비전에서 f는 거의 항상 홀수다)
관계식 정리
스트라이드와 패딩까지 적용된 합성곱 연산의 관계식은 위와 같다.
정리 및 공부한 내용 참고출처:
https://www.youtube.com/watch?v=smHa2442Ah4&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF&index=4
'인공지능 > Computer Vision' 카테고리의 다른 글
풀링(Pooling) ft. Max & Average Pooling (0) | 2023.05.16 |
---|---|
합성곱 신경망(Convolution Neural Network) (0) | 2023.05.15 |
RGB 이미지의 합성곱 연산 (0) | 2023.05.15 |
합성곱 연산(Convolution operation) (1) | 2023.05.14 |
픽셀(Pixel)과 채널(Channel) (1) | 2023.05.13 |