본문 바로가기
논문리뷰

[논문리뷰] YOLO 논문 리뷰

by 단깅수 2025. 1. 25.
728x90

YOLO 논문 리뷰입니다.

본 논문은 2016년도에 등장한 논문입니다.

논문 : You Only Look Once: Unified, Real-Time Object Detection

저자 : Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi

[1] Background


최근 몇 년 간 CV  분야에서 객체 탐지 기술이 눈에 띄게 발전해왔습니다.

 

Object Detection, 객체 탐지란 Localization + Classification 의 개념으로

어떤 객체가 어느 위치에 있는지 탐지하는 Task를 얘기합니다.

 

기존의 객체 탐지 Model 들은 주로 Classifier, 분류기를 기반으로 한 접근 방식을 사용해왔습니다.

 

DPM (left) / R-CNN (right)

 

대표적으로 DPM / R-CNN 등이 있는데 논문에서 이 두 모델을 언급하고 있습니다

 

Deformable Parts Models (DPM) 은 객체의 각 부분을 변형 가능한 부분으로 모델링해 어떻게 조합되는지를 학습하는 모델이고

R-CNN (Regions with CNN features) 은 이미지에서 객체 후보 영역을 먼저 정하고 각 영역에 대해 Conv 연산을 해 특징을 추출한 뒤 이를 바탕으로 객체를 분류합니다.

 

DPM 은 이미지 전체를 Sliding Window 방식으로 검색하기에 계산 비용이 높고 느리다는 단점이 있으며

R=CNN 도 Selective Search 방식으로 후보 영역을 생성하고 후에 특징 추출, 분류 등 여러 단계를 거쳐야 하기에 속도가 느리다는 단점이 여전히 존재했습니다.

 

이러한 문제를 해결하기 위해 YOLO는 객체 탐지 Task를 하나의 회귀 문제로 간주해 이미지에서 바로 Bounding Box 와 클래스 확률을 예측합니다.

 

특히 하나의 신경망을 사용해 이미지를 한 번에 평가하고 모든 객체의 위치와 클래스를 동시에 예측하기에 속도가 상당히 빠르며 end-to-end 방식으로 최적화 또한 가능합니다.

 


[2] Network Architecture

Unified Detection

Unified Detection

 

위에서 설명했다시피 YOLO (You Only Look Once)는 객체 탐지를 단일 회귀 문제로 재구성하고

하나의 통합된 신경망 모델을 사용하였습니다.

네트워크의 구성을 좀 살펴보면

 

1) 이미지 그리드 분할

- 입력 이미지를 S x S 크기의 그리드 픽셀로 나눕니다.

- 그리드의 각 셀은 중심에 객체가 위치할 경우 해당 객체를 탐지하는 역할입니다.

 

2) Bounding Box 생성 및 Confidence Score 예측

 

- 분할된 그리드 픽셀은 B개의 Bounding Box와 각 Box에 대한 Confidence Score를 예측합니다.

- 각 Bounding Box는 5가지 예측값 (x, y, w, h, confidence)을 포함합니다.

- (x, y)는 Box의 중심점 좌표, w와 h는 Box의 크기를 나타냅니다.

- Confidence Score는 아래 사진 식과 같이 객체가 있을 확률 x IOU 수치입니다. 객체가 없는 경우 0

 

3) 클래스 확률 예측

 

- 각 그리드 픽셀은 C개의 조건부 클래스 확률을 예측합니다.

- 이 확률은 픽셀 내에 객체가 존재하는 경우에만 클래스 확률을 계산합니다.

- PASCAL VOC 실험에서 S=7, B=2 로 설정해 실험했었고 Class가 20개였어서 계산량이 7 x 7 x (2 x 5 + 20) = 1,470 이었다고 합니다.

 

Network Design

Network Design

 

YOLO의 아키텍처는 총 24개의 컨볼루션 레이어와 2개의 FC 레이어로 구성됩니다.

 

YOLO는 GoogLeNet 모델에서 영감을 받아 1×1 컨볼루션 레이어를 사용하여 이전 레이어들로부터의 특징 공간을 축소합니다.

 

1×1 컨볼루션 레이어 뒤에 3×3 컨볼루션 레이어를 배치하고 Max Pooling을 진행합니다.

 

Training

YOLO의 학습 과정은 Pretraining과 Fine-Tuning 단계로 나눠서 진행됩니다.

 

Pretraining

- YOLO는 초기 20개의 Conv Layer를 ImageNet 1000-class competition 데이터셋로 사전 훈련합니다.

 

Fine-Tuning

- 객체 탐지 Task에 맞게 변환되어서 4개의 Conv Layer와 2개의 FC Layer가 추가됩니다.

- 이 Layer들은 임의로 초기화된 가중치를 가집니다. 성능 향상을 위해서

- 이미지 입력 해상도를 224 x 224 에서 448 x 448로 증가시킵니다.

💡 
1) 파인튜닝 단계에서 객체 탐지 Task의 성능 향상을 위해 Conv Layer를 추가했다고 합니다.
2) 새로 추가된 Conv Layer는 가중치가 초기화되어 있기 때문에 사전 훈련 데이터에 영향을 받지 않고 새로 입력되는 이미지에 맞게 특징을 학습할 수 있어서 성능 향상에 도움이 된다고 합니다.
3) 224x224에서 448x448로 증가는 그냥 Resize 한 것 같고, 해상도가 더 증가하면 Conv Layer의 Stride나 Filter나 추가 Conv Layer를 삽입하는 등 네트워크를 수정할 필요가 있다고 합니다.

 

Loss Function

Loss Function

 

1) 위치 Loss

- 그리드 픽셀 i 에 대해 j 번째 Bounding Box의 중심 좌표 오류를 최소화

$1_{ij}^{obj}$

그리드 픽셀 i 의 j 번째 box가 객체를 포함하면 1, 아니면 0

 

$(x_i - \hat{x}_i)^2 + (y_i - \hat{y}_i)^2$

실제 중심 좌표와 예측 중심 좌표의 거리

 

$λ_{coord}$

위치 예측의 중요도를 조절하는 가중치로, 논문에서는 5로 설정

 

2) 크기 Loss

$(\sqrt{w_i} - \sqrt{\hat{w}_i})^2 + (\sqrt{h_i} - \sqrt{\hat{h}_i})^2$

실제 box와 예측된 box간 크기 차이

- 루트를 사용하는 이유는 Box 크기에 따른 오차를 정규화해주기 위해서입니다

 

3) Confidence Loss

- 각 Bounding Box의 객체 존재 확률과 예측 간의 오차를 최소화

 

$1_{ij}^{noobj}$

객체가 없으면 1, 있으면 0

 

$λ_{noobj}$

객체가 없는 box에 대한 비중을 줄이기 위한 가중치, 논문에서는 0.5로 설정

 

4) 클래스 예측 Loss

- 그리드 픽셀 조건부 클래스 확률과 예측 간의 오차를 최소화

 

$(p_i(c) - \hat{p}_i(c))^2$

실제 클래스 확률과 예측된 클래스 확률 간 제곱 오차

 

Inference

 

YOLO는 S를 7, B를 2라고 했을 때 한 이미지 당 98개의 Bounding Box를 예측합니다.

 

한 픽셀 당 2개의 Bounding Box를 예측하고 각 Box에 대해 객체의 클래스에 대한 확률이 계산됩니다.

20개의 클래스라면 box 하나당 20번 계산이 되겠죠.

 

그렇게 생성된 Bounding Box 중에 NMS 알고리즘을 적용해서 IOU가 특정 임계치 이하인 Box를 제거합니다.

IOU가 임계치 이상인 Box가 여러 개라면 가장 높은 Box만 남기고 나머지는 제거합니다.

💡
- P(object) : box가 포함된 해당 픽셀에 객체가 존재할 확률   있다 / 없다
- P( class / object ) : 객체가 있다면 그 객체가 특정 클래스에 속할 확률
만약 강아지 픽셀에 1번 클래스가 강아지, 2번 클래스가 자전거라면 1번과 곱해지는 Confidence score는 높고, 2번과 곱해지는 Confidence Score는 낮겠죠.
- IOU : 예측된 Box와 실제 Box 간 겹침 정도

위 수치를 다 곱하면 Confidence Score를 도출할 수 있습니다.

 

Limitation

YOLO의 문제점

 

 

하지만 YOLO도 몇 가지 구조적인 한계점을 가지고 있습니다.

 

1) 공간적 제약

- YOLO는 구조적으로 한 픽셀 당 하나의 클래스 Label을 가질 수 있기 때문에 새 떼와 같이 한 픽셀에 여러 객체가 들어 있는 경우에 객체 탐지 성능이 떨어질 수 있습니다.

 

2) 종횡비 일반화 문제

- YOLO는 학습 데이터로부터 Bounding Box 예측을 학습하기에 학습데이터에 없었던 새로운 종횡비 객체가 등장한다면 예측이 어려울 수 있습니다.

 

3) 손실함수의 비효율성

- YOLO는 작은 Box와 큰 Box의 오류를 동일하게 처리합니다.

- 그래서 똑같은 좌표 오차더라도 Box 크기에 따라 IOU 수치가 달라질 수 있습니다. 성능에 악영향 가능성

 


[3] Experiments

Table 1

 

  • PASCAL VOC 2007 데이터셋을 통한 실시간 객체 탐지 실험
  • YOLO는 실시간 성능
  • Fast YOLO는 가장 빠른 FPS를 기록하면서 52.7% 의 mAP를 기록
    • Fast YOLO는 일반적으로 9개의 Conv Layer로 구성된 YOLO의 경량화 버전
  • YOLO는 R-CNN, DPM 모델에 비해 빠르고 정확하며, Faster R-CNN과 같은 다른 모델들은 정확도는 높지만 처리 속도가 느림

 

Figure 4

 

  • VOC 2007 데이터셋에서 Fast R-CNN과 YOLO의 성능을 비교 분석
  • Fast R-CNN
    • 정확도 (Correct) : 71.6%의 예측이 정확하게 이루어짐
    • 배경 오류 (Background) : 13.6%의 예측이 배경 오류로, 객체가 없는 영역을 객체로 잘못 인식
    • 위치 오류 (Localization) : 8.6%의 예측이 위치 오류로, 객체의 위치를 정확히 특정하지 못함
  • YOLO
    • 정확도 (Correct) : 65.5%의 예측이 정확하게 이루어짐
    • 배경 오류 (Background): 4.75%의 예측이 배경 오류로, 배경을 객체로 잘못 인식하는 비율이 Fast R-CNN보다 낮음
    • 위치 오류 (Localization): 19.0%의 예측이 위치 오류로, YOLO는 특히 객체의 정확한 위치를 파악하는 데 어려움을 겪는 것으로 나타남

→ YOLO는 객체의 정확한 위치 파악에 어려움을 겪는 경향이 있음

 

Table 3

 

  • Table 3은 Pascal VOC 2012 데이터셋을 기반으로 한 다양한 객체 탐지 모델의 성능 비교 분석
  • YOLO는 실시간 성능을 유지하면서도 각각의 클래스에 대해 경쟁력 있는 정확도를 보여주며, 전체적으로 57.9%의 mAP
    • 성능 표만 보면 그렇게 높아보이지 않지만 저 Leader Board 중 실시간 탐지에 쓰일 만한 모델은 YOLO 뿐!!
  • YOLO와 Fast R-CNN을 결합하였을 때, 이 방법은 VOC 2012 데이터셋에서 mAP 75.0%를 달성
    • 결합한다는 의미는 Fast R-CNN와 YOLO로 각각 Box를 생성해서 결과를 비교하고 결합한다고 봤는데, 앙상블하는 느낌으로 이해하긴 했습니당 서로의 단점 보완

 

Figure 5

 

  • YOLO 및 다른 객체 탐지 모델들이 예술 작품 데이터셋에서 어떻게 작동하는지 실험한 결과 분석 일반화 성능
  • YOLO는 VOC와 예술 작품 모두에서 높은 일반화 성능을 보여주며, 예술 작품에서도 타 모델에 비해 높은 성능을 유지함
  • R-CNN은 일반 이미지에서는 높은 성능을 보이지만 예술 작품에서 크게 성능이 저하됨

 


[4] Conclusions

 

  • YOLO는 기존의 분류기 기반 접근법을 벗어나 객체 탐지를 회귀 문제로 접근하고, 단일 신경망을 사용해 이미지에서 직접 Bounding Box와 클래스 확률을 예측하는 경량화 모델로 등장함
  • YOLO는 end-to-end, 통합된 아키텍쳐로 이미지를 Grid로 나누고 각 Grid 마다 Box를 생성한 후 Confidence Score를 측정하는 방식으로 객체를 탐지함
  • 24개의 Conv Layer와 2개의 FC Layer로 구성됨
  • 여러 실험 결과, YOLO는 실시간 인식이 가능한 빠른 속도와 높은 일반화 능력을 갖추고 있음

 


[5] References

https://www.youtube.com/watch?v=84JM_q8zqh8

ChatGPT

 

 

[논문리뷰] Faster R-CNN 논문 리뷰

Faster R-CNN 논문 리뷰입니다.본 논문은 2015년도에 등장한 논문입니다.논문 : Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 저자 : Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun  [1] Backgrou

dangingsu.tistory.com

728x90
반응형