카테고리 없음

[CV] YOLO

galaxyou 2026. 5. 12. 15:36

1. Introduction

1.1. 배경 및 필요성

컴퓨터 비전에서 “빠르고 정확한 객체 탐지 알고리즘”은

자율주행, 보조기기, 범용 로봇 등 다양한 분야에서 필수적임!

1.2. 기존 시스템의 한계

기존의 객체 탐지 시스템

: 분류기를 여러 위치와 크기에 반복 적용하거나, Region Proposal 방식을 사용

ex. DPM은 슬라이딩 윈도우 방식으로 분류기를 전체 이미지에 적용하고,

R-CNN 계열은 Region Proposal을 생성 후 각 영역에 분류기를 적용한다.

이런 방식들은 파이프라인이 복잡하고 각 구성 요소를 별도로 훈련해야 하므로

최적화가 어렵고 속도도 느리다.

1.3. YOLO의 혁신

객체 탐지를 이미지 픽셀에서 바운딩 박스 좌표와 클래스 확률로의 단일 회귀 문제로 재정의함!

→ 이미지를 한 번만 보고 모든 객체의 위치와 종류를 동시에 예측한다.

→ 파이프라인 단순화, 엔드-투-엔드로 직접 최적화 가능, 매우 빠른 속도

1.4. YOLO의 장점

  • 실시간 처리: 기본 YOLO는 45fps, Fast YOLO는 155fps로 실시간 영상도 처리 가넝
  • 전역적 추론: 이미지를 전체적으로 보고 예측하니까 객체의 맥락 정보 활용가넝!
  • Fast R-CNN 등 기존 방법보다 배경 오탐이 절반 이하로 감소함
  • 일반화 성능: 자연 이미지로 학습한 후 예술 작품 등 새로운 도메인에서도 기존 방법 보다 뛰어난 성능
  • 단순한 파이프라인: 복잡한 구성 요소 없이 단일 신경망으로 모든 작업을 처리

1.5. 한계점

YOLO는 정확도 측면에서 최첨단 탐지 시스템에 비해 다소 뒤처짐… 특히 작은 객체의 위치를 정확히 잡는 데 어려움이 있음

2. Unified Detection

2.1. 전체 구조

YOLO는 객체 탐지의 모든 구성 요소를 단일 신경망으로 통합함

네트워크는 전체 이미지의 특징을 사용해 각 바운딩 박스를 예측하고, 모든 클래스에 대한 바운딩 박스를 동시에 예측함

→ 전체 이미지와 객체에 대한 전역적 추론이 가능해지고, 실시간 속도를 유지하면서도 높은 정확도를 달성한대여

2.2. 그리드 기반 예측 방식

  • 이미지를 S x S 그리드로 분할
  • 객체의 중심이 속한 그리드 셀이 해당 객체를 탐지
  • 각 셀은 B개의 바운딩 박스와 신뢰도 점수를 예측
  • 신뢰도는 해당 박스에 객체가 있을 확률과 예측 박스와 실제 박스의 IOU를 곱한 값
  • 각 바운딩 박스는 x,y,w,h,confidence 의 5개 값 예측
  • 각 셀은 C개의 클래스 확률도 예측한다.
  • 테스트 시에는 클래스별 신뢰도도 산출!

 

2.3. 네트워크 구조

  • 컨볼루션 레이어 24개, 완전 연결 레이어 2개
  • GoogLeNet에서 영감을 받았으나, Inception 모듈 대신 1x1, 3x3 컨볼루션 사용
  • Fast YOLO는 속도를 위해 9개의 컨볼루션 레이어만 사용
  • 최종 출력은 7×7×30 텐서(예: VOC 데이터셋 기준)

2.4. 학습 과정

  • ImageNet 데이터셋으로 컨볼루션 레이어를 사전학습(pretrain)한당.
  • 탐지용으로 네트워크를 변환할 때, 추가 컨볼루션 및 완전 연결 레이어를 추가하고, 입력 해상도를 448x448로 높인다.
  • 바운딩 박스의 넓이와 높이는 정규화하여 0~1 사이로 예측한다.
  • 마지막 레이어는 선형 활성화, 나머지는 Leaky ReLU를 사용한다.
  • 손실 함수는 좌표, 신뢰도, 클래스 확률에 대해 합성곱 오차(sum-squared error)를 사용하며, 작은 박스의 오차에 더 민감하도록 넓이와 높이의 제곱근을 예측한다.
  • 각 객체마다 가장 IOU가 높은 박스 예측기가 책임을 지도록 하여, 예측기별로 특화가 이루어진다.
  • 드롭아웃과 데이터 증강(스케일, 이동, 색상 변화 등)을 활용해 과적합을 방지한다.

2.5. 추론(테스트) 과정

  • 테스트 시에도 한 번의 네트워크 평가만 필요하다.
  • 98개의 바운딩 박스와 각 박스별 클래스 확률을 예측한다.
  • 그리드 구조로 인해 공간적으로 다양한 예측이 가능하며, 중복 탐지는 비최대 억제(Non-max suppression)로 제거한다.

2.6. 한계점

  • 각 그리드 셀은 두 개의 박스와 한 개의 클래스만 예측할 수 있어, 인접한 작은 객체가 많은 경우(예: 새 떼) 탐지에 한계가 있다.
  • 새로운 비율이나 형태의 객체에는 일반화가 어렵다.
  • 작은 박스의 오차가 성능에 큰 영향을 미치지만, 손실 함수는 이를 완벽히 반영하지 못한다.

3. Comparison to Other Detection Systems

3.1. 기존 탐지 시스템과의 비교

  • DPM(Deformable Parts Model): 슬라이딩 윈도우 방식으로 복잡한 파이프라인을 사용하지만, YOLO는 단일 신경망으로 모든 작업을 처리해 더 빠르고 정확하다.
  • R-CNN 계열:복잡한 단계 + 대박 느림(40초/이미지).
  • YOLO는 그리드 셀마다 바운딩 박스, 전체가 단일 모델로 통합 → 훨씬 빠름
  • Region Proposal → 특징 추출 → 분류 → 박스 조정 → 비최대 억제 등
  • Fast/Faster R-CNN: R-CNN의 속도를 개선했으나, 여전히 실시간에는 미치지 못한다. YOLO는 처음부터 실시간을 목표로 설계되었다.
  • Deep MultiBox, OverFeat: 일부 유사점이 있으나, YOLO는 완전한 탐지 시스템인 반면 이들은 파이프라인의 한 부분에 불과하다.
  • 특정 클래스 탐지기: 얼굴, 사람 등 단일 클래스에 특화된 탐지기는 최적화가 쉽지만, YOLO는 다양한 클래스를 동시에 탐지할 수 있다.

4. Experiments

4.1. 실시간 탐지 시스템 성능 비교

  • Fast YOLO는 VOC 2007에서 52.7% mAP와 155fps로, 기존 실시간 탐지기(DPM 등)보다 2배 이상 정확!
  • 기본 YOLO는 63.4% mAP와 45fps로, 속도와 정확도 모두에서 기존 실시간 시스템을 크게 앞섬
  • VGG-16 기반 YOLO는 정확도는 더 높으나 실시간 속도는 ㅠㅠ…
  • Fastest DPM, R-CNN Minus R, Fast R-CNN 등과 비교해도 YOLO가 속도/정확도 균형에서 가장 우수함

Detector mAP (%) FPS 특징

Fast YOLO 52.7 155 실시간, 기존 대비 2배 정확
YOLO 63.4 45 속도/정확도 균형
Fastest DPM 30.4 15 실시간 미달, 정확도 낮음
Fast R-CNN 70.0 0.5 정확도 높으나 매우 느림
Faster R-CNN (VGG) 73.2 7 정확도 우수, 속도 느림

4.2. 오류 분석

  • YOLO는 위치(localization) 오류가 가장 많다(19.0%).
  • 즉, 객체의 위치를 정확히 잡지 못하는 경우가 많다.
  • Fast R-CNN은 배경(background) 오류가 많다(13.6%).
  • 즉, 객체가 없는 곳을 객체로 잘못 탐지하는 경우가 많다.
  • YOLO는 배경 오류가 Fast R-CNN의 절반 이하(4.75%)이다.
  • 즉, 실제 객체만을 더 잘 구분한다.

4.3. 모델 결합 효과

  • YOLO와 Fast R-CNN을 결합해, Fast R-CNN이 예측한 박스 중 YOLO가 유사하게 예측한 경우 신뢰도를 높여줌.
  • 결합 시 mAP가 71.8%에서 75.0%로 3.2%p 상승, 단일 모델 조합보다 훨씬 큰 성능 향상이 나타남.

4.4. VOC 2012 및 도메인 일반화

  • VOC 2012 등 다양한 벤치마크에서 YOLO는 기존 방법에 비해 빠르고, 새로운 도메인(예술 작품 등)에서도 더 높은 일반화 성능을 보인다.

5. 결론

YOLO는 객체 탐지 문제를 단일 회귀 문제로 재정의하여, 복잡한 파이프라인 없이 실시간 처리와 높은 정확도를 동시에 달성하는 혁신적인 모델이다.

전역적 추론, 뛰어난 일반화, 간결한 구조, 실시간 처리 등 여러 장점이 있으며,

기존 탐지 시스템과 결합할 때도 큰 시너지를 보인다.

다만, 작은 객체의 위치 정확도 등 일부 한계는 남아 있다.