본문 바로가기
비전공자의 얕은 딥러닝(컴퓨터 비전)/이론

Convolution이란? convolution 뜻, 계산 방법, 의미, Padding

by 박사과정 모닝 2023. 10. 14.
반응형

Convolution

Convolution은 인공 지능(CNN)이나 영상 처리 등의 과목을 공부할 때 꼭 나오는 용어입니다. 대표적으로 유명한 인공지능 기법인 CNN은 Convolutionnal Neural Network의 줄임말이죠. 그렇다면 Convolution은 무엇일까요? 영상 처리 분야에서 Convolution은 행과 열을 가지는 Image에 대해 Convolution kernel을 convolution 계산하는 것을 이야기합니다. Convolution 계산은 * 기호로 나타낼 수 있고, 아래의 그림과 같은 연산을 합니다.

Convolution kernel을 Image pixel에 겹치고, 겹쳐지는 자리의 숫자들끼리 곱한 다음 합한 것이 Convolution 연산의 결과가 됩니다. 수식적으로 나타내면 아래와 같습니다.

이러한 Convolution 연산은 선형 필터링 기법이므로, 다음과 같은 성질을 가집니다.

수식이나 위의 그림을 보면, 컨볼루션 연산은 하나의 픽셀이 아닌 일정한 영역의 픽셀들을 함께 연산합니다. 이 점을 고려하면 이미지에 컨볼루션 연산을 하는 경우를 더 쉽게 이해할 수 있습니다. Convolution kernel의 형태에 따라 이미지의 노이즈를 제거할 수도 있고, edge를 찾아내거나 이미지를 더 선명하게, 또는 흐릿하게 변환할 수 있습니다. 이러한 특성들은 이미지 내 하나의 픽셀에 관한 특성이 아닌, 한 픽셀과 주변 픽셀들과의 관계에 관한 특성들입니다. 색깔을 예로 들어 보면, 하나의 픽셀이 빨간색인것 만으로는 더 이상 다른 정보를 알기 어렵습니다. 그렇지만 주변 픽셀들이 전부 노란색인데 이 픽셀만 빨간색이라면, 이 픽셀은 노란 배경에 있는 하나의 빨간 점이라는 정보를 알 수 있죠. 또는 주변 픽셀들과의 차이를 줄여서 전체적으로 픽셀들이 주변의 픽셀들과 비슷한 값을 가지도록 하면 이미지에 부드럽거나 흐릿하게 될 것입니다. Convolution은 이러한 원리를 구현하는 연산입니다.

 

Padding

padding이란 convolution 연산에서 이미지의 크기와 kernel(필터) 크기의 차이에 의해, convolution 연산을 할 때 마다 Output image의 크기가 줄어드는 문제를 예방하기 위해 사용하는 방법입니다. 

위의 이미지를 다시 보면, Image는 5X5 크기인데 convolution kernel은 이미지 위에서 가로로 3번, 세로로 3번밖에 움직일 수 없기 때문에 output은 3X3 크기로 줄어들게 됩니다. 이러한 현상을 Boundary effect 라고 합니다. Padding(패딩)은 kernel의 크기로 인해 줄어드는 이미지의 사이즈 만큼 원본 이미지의 가장자리에 다른 픽셀을 덧붙여 주는 것을 이야기합니다. 우리가 겨울에 두꺼운 패딩을 덧입는 것과 마찬가지로요.

위와 같이 패딩을 진행한 이미지를 Convolution 연산한 결과, 결과 이미지의 사이즈가 원본 이미지의 사이즈와 동일하게 유지되는 것을 볼 수 있습니다. Padding은 가장자리에 추가되는 픽셀에 어떤 값을 채워 넣느냐에 따라 Zero padding, Warp  padding, Clamp  padding, Mirror padding 등 다양한 종류로 구분됩니다.

반응형

'비전공자의 얕은 딥러닝(컴퓨터 비전) > 이론' 카테고리의 다른 글

Local image features  (0) 2023.10.12