🌱Inflearn 누적 7만 수강생이 만족한 강사진이 궁금해?
#인공지능 

컴퓨터 비전에서의 Receptive Field와 YOLO

컴퓨터 비전(Computer Vision)은 인공지능의 한 분야로, 컴퓨터가 이미지나 동영상을 이해하고 해석할 수 있도록 하는 기술입니다. 컴퓨터 비전 분야에는 이미지 분류(Image Classification), 객체 감지(Object Detection), 의미론적 분할(Semantic Segmentation) 등 다양한 문제들이 연구되고 있습니다. 이 중에서도 YOLO(You Only Look Once)는 객체 감지 분야에서 혁신적인 아이디어를 제시하며 발표 당시 큰 주목을 받았고 발전에 발전을 거듭하고 있습니다.

2024-05-17 | 김정은

컴퓨터 비전(Computer Vision)은 인공지능의 한 분야로, 컴퓨터가 이미지나 동영상을 이해하고 해석할 수 있도록 하는 기술입니다.
컴퓨터 비전 분야에는 이미지 분류(Image Classification), 객체 감지(Object Detection), 의미론적 분할(Semantic Segmentation) 등 다양한 문제들이 연구되고 있는데요.
이 중에서도 YOLO(You Only Look Once)는 객체 감지 분야에서 혁신적인 아이디어를 제시하며 발표 당시 큰 주목을 받았고 발전에 발전을 거듭하고 있습니다.

 

YOLO와 Receptive Field: 이미지를 바라보는 새로운 방식

YOLO는 어떻게 이미지를 한 번만 보고도 객체의 위치와 클래스를 동시에 예측할 수 있을까요?
YOLO의 핵심 아이디어는 바로 Receptive Field 개념을 활용하는 것입니다.

Receptive Field란 이미지의 특정 영역이 모델의 특정 뉴런에 영향을 미치는 범위를 의미하는데요. 쉽게 말해 모델이 이미지의 어떤 부분을 보고 있는지를 나타냅니다.
CNN의 각 레이어는 이전 레이어의 특징 맵에서 일정 영역을 보고 새로운 특징을 추출하는데, 이때 입력 이미지에서 해당 영역까지 거슬러 올라가 봤을 때 어느 범위까지 관여하는지를 말하는 것을 Receptive Field 라고 합니다.

Receptive Field는 레이어가 깊어질수록 점차 넓어집니다. 초기 레이어에서는 국소적인 저수준 특징(모서리, 색상 등)을 인식하지만, 레이어가 깊어질수록 더 넓은 영역에 걸친 고수준 특징(물체의 부분, 전체 모양 등)을 인식하게 됩니다. 이를 통해 CNN은 이미지의 계층적 특징 표현을 학습할 수 있습니다.

YOLO에서 Receptive Field는 모델이 이미지의 특정 영역을 바라보는 창(window)으로 이해할 수 있습니다.
Receptive Field 개념을 바탕으로 이미지를 그리드로 나누고, 각 그리드 셀마다 객체의 존재 여부와 위치, 클래스를 예측합니다.
각 그리드 셀은 고유한 Receptive Field를 가지고 있으며, 이는 해당 셀이 이미지의 어느 부분을 보고 있는지를 결정합니다.

 

YOLO의 혁신: 전체 맥락을 고려한 객체 감지

이런 접근 방식은 기존의 객체 감지 모델들과는 사뭇 다릅니다. 전통적인 방법들은 이미지를 여러 개의 영역으로 나누고, 각 영역마다 객체가 있는지 없는지를 판단하는 방식으로 동작했습니다.
하지만 YOLO는 이미지 전체를 한 번에 바라보고, Receptive Field를 활용해 객체의 위치와 클래스를 동시에 예측합니다.
이는 마치 인간이 이미지를 볼 때, 전체적인 맥락을 파악하며 객체를 인식하는 것과 유사한 방식이라고 할 수 있습니다.

 

YOLO Architecture

YOLO Architecture
24개의 컨벌루션 레이어와 2개의 완전 연결 레이어로 구성.
1×1 컨벌루션 레이어를 교대로 사용하면 이전 레이어의 feature Area가 줄어듭니다. ImageNet 분류 작업에서 컨벌루션 레이어를 절반의 해상도(224 × 224 입력 이미지)로 사전 훈련한 다음 탐지를 위해 해상도를 두 배로 늘렸습니다.

 

YOLO의 기본 구조

1. 입력 이미지는 여러 개의 합성곱 레이어와 풀링 레이어를 통과합니다. 이 과정에서 특성 맵의 크기는 점차 감소하지만, Receptive Field의 크기는 증가합니다.

2. YOLO v3에서는 52개의 합성곱 레이어를 사용하며, 이를 Darknet-53이라고 부르는데요. 이 깊은 네트워크 구조로 인해 마지막 레이어의 뉴런들은 매우 큰 Receptive Field를 가지게 됩니다.

3. 마지막 레이어의 뉴런들은 입력 이미지의 넓은 영역에서 정보를 통합할 수 있으므로, 객체의 전체적인 모양, 크기, 위치 등 고수준 특성을 인식할 수 있습니다.

4. YOLO는 이미지를 S × S 그리드로 나누고, 각 그리드 셀마다 B개의 바운딩 박스와 해당 박스의 신뢰도 점수, 그리고 C개의 클래스 확률을 예측합니다. 이 과정에서 큰 Receptive Field를 가진 뉴런들의 정보가 활용됩니다.

5. YOLO에서는 서로 다른 크기의 Receptive Field를 가진 각각의 출력 레이어를 사용하여 다양한 크기의 객체를 탐지할 수 있도록 합니다.

이처럼 YOLO에서는 깊은 네트워크 구조를 통해 큰 Receptive Field를 확보하고, 이를 바탕으로 객체의 고수준 특성을 인식하여 정확한 탐지를 수행합니다.
다른 객체 탐지 모델들, 예를 들어 SSD (Single Shot MultiBox Detector), Faster R-CNN 등에서도 비슷한 원리가 적용됩니다.

 

 

YOLO Detection System

YOLO Detection System

YOLO System

YOLO System은 탐지를 회귀 문제로 모델화합니다.
이미지를 S × S 그리드로 나누고 각 그리드 셀에 대해 B 경계 상자, 해당 상자에 대한 신뢰도 및 C 클래스 확률을 예측합니다. 예측은 S × S × (B * 5 + C) 텐서로 인코딩됩니다.

 

YOLO의 동작 과정

그렇다면 YOLO는 어떤 과정을 통해 객체를 감지할까요?

1. 이미지를 그리드로 분할

YOLO는 입력 이미지를 S x S 크기의 그리드로 나누어 각 영역을 독립적으로 처리합니다.

2. 바운딩 박스 예측

각 그리드 셀마다 B개의 바운딩 박스를 예측하며, 바운딩 박스의 중심 좌표, 크기, confidence score를 예측합니다.

3. 클래스 확률 예측

각 그리드 셀마다 C개의 클래스에 대한 확률을 예측하여, 해당 영역 내 특정 클래스 객체의 존재 확률을 나타냅니다.

4. 클래스 스코어 계산

바운딩 박스의 confidence score와 클래스 확률을 곱하여 각 바운딩 박스의 클래스 스코어를 계산합니다.

5. NMS(Non-Maximum Suppression) 적용

중복 감지를 제거하기 위해 각 클래스별로 스코어가 가장 높은 바운딩 박스만 선택하고, 나머지는 제거합니다.

6. 최종 객체 감지 결과 도출

NMS를 통해 선택된 바운딩 박스들을 원본 이미지 위에 시각화하여 최종 객체 감지 결과를 확인합니다.

 

YOLO의 Receptive Field 확장과 Anchor Box의 관계

YOLO의 Receptive Field는 Convolutional Neural Network(CNN)의 구조에 의해 결정됩니다. CNN에서 각 합성곱 레이어의 뉴런은 입력 데이터의 일부분에만 연결되어 있습니다. 이 연결된 영역을 해당 뉴런의 Receptive Field라고 합니다.
Receptive Field의 크기는 커널(필터) 크기, 스트라이드, 패딩 등의 하이퍼파라미터에 의해 결정됩니다. 얕은 레이어의 뉴런들은 작은 Receptive Field를 가지며, 선, 모서리 등 저수준 특성을 감지합니다.

네트워크가 깊어질수록 Receptive Field의 크기가 점진적으로 확장되어 뉴런들이 더 넓은 영역을 포괄하게 되어 정보를 통합할 수 있게 됩니다. 이렇게 확장된 Receptive Field는 모델이 객체의 전체적인 모습과 주변 맥락을 파악할 수 있게 해주며, 이는 객체 감지 성능 향상에 큰 도움이 됩니다. 이를 통해 객체, 얼굴 등 고수준 특성을 인식할 수 있습니다.

Global Receptive Field는 네트워크의 출력 뉴런이 입력 데이터의 전체 영역을 볼 수 있는 것을 의미합니다. 분류 문제 등에서는 Global Receptive Field를 갖는 것이 중요합니다.

또한 Receptive Field의 크기는 Anchor Box의 크기와도 밀접한 관련이 있습니다. Anchor Box란 미리 정의된 다양한 크기와 비율의 바운딩 박스 템플릿으로, YOLO에서는 각 그리드 셀마다 여러 개의 Anchor Box를 예측합니다. 작은 Anchor Box는 작은 객체를, 큰 Anchor Box는 큰 객체를 담당하게 되죠.

 

Receptive Field 조절의 중요성

적절한 Receptive Field 크기는 다루는 문제와 데이터셋에 따라 달라질 수 있으므로, 이를 적절히 조절하는 것이 CNN 설계에서 중요한 요소 중 하나입니다. 모델 구조와 하이퍼파라미터 설정 등을 통해 제어할 수 있으며 Dilated Convolution이나 Deformable Convolution 등 Receptive Field를 효과적으로 확장하는 방법들이 제안되었습니다.

Dilated Convolution란?

Dilated Convolution(팽창된 합성곱)은 필터 내부에 빈 공간을 둠으로써, 파라미터 수를 늘리지 않고도 수용영역을 효과적으로 넓히는 방법입니다. 일반적인 합성곱에선 필터의 각 원소가 입력 특징 맵에 밀착해서 적용되지만, dilated convolution에선 필터 원소 사이사이에 일정한 간격(dilation rate)을 두고 적용됩니다.

예를 들어 3×3 커널에 dilation rate를 1 적용하면 일반 합성곱과 동일하지만, dilation rate가 2이면 커널 원소 사이에 1칸의 공백이 생겨 5×5 영역에 적용되는 효과를 냅니다. Dilation rate를 r이라 할 때, 실제 수용영역의 크기는 (2r+1)x(2r+1)이 됩니다.

Dilated convolution을 사용하면 파라미터 수와 연산량을 크게 늘리지 않으면서도, 수용영역을 효과적으로 확장할 수 있습니다. 이는 특히 segmentation 같은 dense prediction 문제에서 전체 이미지의 넓은 context를 고려하는데 유리합니다.

Dilated Convolution의 예시

아래는 dilation rate에 따른 dilated convolution의 예시입니다.

Dilated Convolution

Dilated Convolution

 

  • (a)는 일반적인 3×3 합성곱으로 Dilation rate = 1인 경우입니다.
  • (b)는 Dilation rate = 2인 경우로, 3×3 커널이 5×5 크기에 걸쳐 적용됩니다.
  • (c)는 Dilation rate = 4인 경우로, 3×3 커널이 9×9 크기에 걸쳐 적용됩니다.

Dilation rate를 높일수록 같은 커널로 더 넓은 수용영역을 얻을 수 있음을 알 수 있습니다. 이를 통해 Dilated convolution은 모델의 파라미터 효율성과 입력 데이터에 대한 넓은 수용영역을 동시에 달성할 수 있습니다.

 

3 × 3 Deformable Convolution

3 × 3 Deformable Convolution

 

 

Deformable convolutions

Deformable convolutions
3 × 3 표준 및 변형 가능한 컨볼루션의 샘플링 위치 그림.
(a) 표준 컨볼루션의 일반 샘플링 그리드(녹색 점)
(b) 변형 가능한 컨볼루션에서 오프셋이 증가된(연한 파란색 화살표) 변형된 샘플링 위치(진한 파란색 점)
(c)(d)는 (b)의 특별한 경우로, 변형 가능한 컨볼루션이 크기, (이방성) 종횡비 및 회전에 대한 다양한 변환을 일반화한다는 것을 보여줍니다.

 

 

Deformable Convolution란?

Deformable Convolution은 기존의 Convolution 연산을 확장한 개념으로, 더 유연하고 적응적인 특징 추출을 가능하게 합니다. 기존의 Convolution 연산은 고정된 크기와 형태의 커널을 이미지의 모든 위치에 일괄적으로 적용하는 반면, Deformable Convolution은 커널의 위치와 형태를 입력 데이터에 따라 적응적으로 조정할 수 있습니다

  1. 개념
    • Deformable Convolution은 각 위치마다 커널의 위치를 조정하는 오프셋(offset)을 학습합니다.
    • 이 오프셋은 입력 데이터에 따라 동적으로 계산되며, 커널이 입력 데이터의 특징에 맞게 변형될 수 있도록 합니다.
    • 오프셋은 일반적으로 다른 Convolution 레이어를 통해 생성되며, 이를 통해 모델은 입력 데이터의 특성에 맞는 유연한 커널을 학습할 수 있습니다.
  2. 수식
    • 기존 Convolution 연산:  $y(p) = \sum_{k} w(k) \cdot x(p + k)$
    • Deformable Convolution 연산:  $y(p) = \sum_{k} w(k) \cdot x(p + k + \Delta k)$
    •  $p$ : 출력 위치,  $k$ : 커널 내 위치,  $w$ : 커널 가중치,  $x$ : 입력 데이터,  $\Delta k$ : 오프셋
  3. 예시
    • 객체 감지(Object Detection) 분야에서 Deformable Convolution을 활용한 대표적인 모델로는 Deformable ConvNets가 있습니다.
    • Deformable ConvNets는 기존의 CNN 구조에서 일부 Convolution 레이어를 Deformable Convolution으로 대체하여, 객체의 변형에 더욱 유연하게 대응할 수 있도니다.
    • 이를 통해 다양한 크기, 형태, 자세를 가진 객체들을 효과적으로 감지할 수 있으며, 기존 모델 대비 성능 향상을 이룰 수 있습니다.
  4. 장점
    • Deformable Convolution은 입력 데이터의 특성에 맞게 커널을 조정할 수 있어, 객체의 변형이나 왜곡에 강인한 특징 추출이 가능합니다.
    • 기존 CNN보다 더 적은 수의 파라미터로 유연한 특징 추출이 가능하며, 이는 모델의 효율성 향상으로 이어집니다.
    • 다양한 컴퓨터 비전 태스크에 적용 가능하며, 특히 객체 감지, 의미론적 분할 등의 분야에서 큰 성능 향상을 보여줍니다.

 

Deformable Convolution은 CNN의 고정된 구조에서 벗어나, 입력 데이터에 적응적으로 반응하는 유연한 특징 추출 방법을 제시합니다. 이를 통해 기존 CNN의 한계를 극복하고, 더욱 강인하고 효율적인 모델 구축이 가능해졌습니다.

 

 

SSD and YOLO

A comparison between two One-Shot Detector models: SSD and YOLO

 

 

YOLO 이후의 발전: Receptive Field를 활용한 다양한 모델들

YOLO의 등장 이후, Receptive Field를 활용한 다양한 모델들이 제안되었습니다. YOLOv2, YOLOv3 등의 후속 모델들은 Anchor Box, Feature Pyramid 등의 기법을 도입하여 성능을 더욱 향상시켰습니다. 또한 SSD(Single Shot MultiBox Detector), RetinaNet 등의 One-Stage Detector들도 YOLO의 아이디어에서 영감을 받아 개발되었습니다. 이처럼 YOLO가 제시한 Receptive Field를 활용한 아이디어는 컴퓨터 비전 분야에 큰 영향을 미쳤으며, 객체 감지 문제를 넘어 다양한 문제들에 적용되고 있습니다. 모델이 이미지를 바라보는 방식에 대한 통찰을 제공한 Receptive Field 개념은, 앞으로도 컴퓨터 비전 분야의 발전에 중요한 역할을 할 것으로 기대됩니다.

 

컴퓨터 비전 기술의 실생활 적용: 우리 삶 속의 인공지능

컴퓨터 비전 기술은 우리 일상생활의 곳곳에서 활용되고 있습니다. 스마트폰의 카메라 앱부터 자율주행차, CCTV 감시 시스템, 의료 영상 분석에 이르기까지, 컴퓨터 비전은 다양한 분야에서 혁신을 이끌어내고 있죠. 이런 혁신의 중심에는 YOLO와 같이 창의적인 아이디어를 제시하는 연구자들이 있습니다. 앞으로도 컴퓨터 비전 분야에서는 Receptive Field와 같은 핵심 개념을 바탕으로, 더욱 발전된 모델과 알고리즘이 등장할 것으로 기대됩니다.

 

Reference