AI바라기의 인공지능

Atrous Convolution 본문

딥러닝/컴퓨터비전

Atrous Convolution

AI바라기 2023. 4. 6. 21:17

세그멘테이션 분야에서는 아트로스 컨볼루션이 많이 왜 그런 것일까요?

 

Atrous Convolution은 Dilated Convolution 또는 Hole Convolution이라고도 불리며, Convolutional Neural Network (CNN)에서 사용되는 컨볼루션 연산의 한 종류입니다.

 

Atrous Convolution은 커널의 크기를 유지하면서 컨볼루션 연산을 수행하는 기법으로, 컨볼루션 연산의 Receptive Field(수용 영역)을 키울 수 있어서, 더 넓은 범위의 정보를 수집할 수 있습니다.

 

일반적인 컨볼루션 연산은 이미지 특징을 추출하는데 매우 효과적입니다. 그러나, 큰 이미지에서 특징을 추출하거나, 객체가 작거나 듬성듬성 분포하는 이미지에서 특징을 추출할 때, 컨볼루션 연산이 수용 범위를 충분히 확장하지 못해서 정보 손실이 발생할 수 있습니다.

 

이 때 Atrous Convolution을 사용하면 커널의 크기를 그대로 유지하면서, 적절한 간격(Stride)으로 건너뛰면서 컨볼루션 연산을 수행할 수 있습니다. 이렇게 간격을 두면서 연산을 수행하면, 이미지를 더 넓은 범위에서 살펴볼 수 있어서, 더 다양하고 세밀한 특징 정보를 추출할 수 있습니다.

 

Atrous Convolution은 딥러닝에서 Semantic Segmentation, Object Detection, Image Captioning 등의 분야에서 주로 사용되며, 특히, ResNet, Xception 등과 같은 딥러닝 모델에서 널리 사용됩니다.

 

 

즉 정리하면 세그멘테이션은 인풋 이미지의 위치 정보가 굉장히 중요합니다. 그래서 한개의 뉴런이 바라볼 수 있는 영역인 Receptive field 를 늘려야합니다.

 

Receptive Field(수용 영역)은 Convolutional Neural Network (CNN)에서 사용되는 개념으로, 특징 추출에 사용되는 한 개의 뉴런이 받아들일 수 있는 입력 데이터의 영역을 의미합니다. 즉, 한 개의 뉴런이 처리하는 영역을 말합니다.

 

CNN에서 뉴런은 일반적으로 컨볼루션 필터(Convolutional Filter)를 사용하여 입력 데이터에 대해 연산을 수행합니다. 이때 컨볼루션 필터의 크기와 Stride(간격)에 따라 Receptive Field의 크기가 결정됩니다.

 

예를 들어, 첫 번째 컨볼루션 층에서 3x3 크기의 필터를 사용하고, Stride가 1인 경우, 한 개의 뉴런은 3x3 크기의 입력 데이터를 처리하게 됩니다. 두 번째 컨볼루션 층에서 3x3 크기의 필터를 사용하고, Stride가 1인 경우, 한 개의 뉴런은 5x5 크기의 입력 데이터를 처리하게 됩니다. 이렇게 점점 더 넓은 Receptive Field를 가진 뉴런들이 만들어지면서, 더 큰 영역에서 특징을 추출할 수 있게 됩니다.

 

Receptive Field는 CNN에서 중요한 개념 중 하나이며, CNN의 구조와 성능에 영향을 미칩니다. 또한, Receptive Field를 통해 넓은 영역의 정보를 수집하면서, 보다 정확하고 의미 있는 특징을 추출할 수 있습니다. 따라서, 딥러닝 모델을 설계할 때, Receptive Field를 고려하여 최적의 구조를 설계하는 것이 중요합니다.

 

아래는 간단 설명입니다.

 

일반적인 컨볼루션

 

 

 

아트로스 컨볼루션

 

일반적인 convolution과 달리 atrous convolution의 경우 kernel 사이가 한 칸씩 띄워져 있는 것을 확인할 수 있다.

차이가 느껴지시나요?

 

즉 한개의 영역이 더 넓은Receptive Field를 바라보기 때문에 픽셀단위의 조밀한 예측(dense prediction)이 가능한것입니다.