[논문 리뷰] YOLO - You Only Look Once: Unified, Real-Time Object Detection (2015)

‍이수빈·2025년 1월 27일

[논문 리뷰]

목록 보기
10/24

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

🔍1. Introduction

기존의 object detection 시스템에서는 classifiers(분류기)를 객체 탐지 작업에 적용을 했음.
객체 탐지를 위해 특정 객체를 위한 classifiers를 가져와서 테스트 이미지의 다양한 위치 & Scale에서 평가함.
최근 R-CNN은 이미지에서 Region Proposal을 먼저 만들고, 이 영역에서 classifier를 실행한 후, post-processing(후처리)을 통해 중복된 부분을 제거하고, 재평가를 실시함.
다만, 이러한 복잡한 pipeline(파이프라인)으로 인해 속도가 느리고, 각각의 구성 요소를 따로 따로 학습시켜야 하기에, 최적화하기 좋지 않다는 한계가 있음.

YOLO

YOLO(You Only Look Once)는 객체 탐지를 회귀 문제(regression problem)로 정의했음. 이미지를 '한 번'만 분석해서, 어떤 객체가 있는지/어디에 있는지를 예측함
YOLO 구조
단일 합성곱 신경망이 동시에 여러 bounding boxes와 이 boxes엥 대한 class 확률을 예측함.
YOLO는 전체 이미지를 학습해서 탐지 성능을 직접 최적화 함.

속도
YOLO의 속도는 정말 빠름.
객체 탐지를 regression problem(회귀 문제)로 설정했기 때문에, 복잡한 파이프라인이 필요하지 않음.
기본 YOLO 네트워크의 경우 초당 25프레임
실시간으로 영상 처리도 가능하며, 이때, 지연 시간(latency)은 25milliseconds로 아주 신속히 처리되는 편임.
또한, 다른 실시간 시스템들에 비해 mAP(mean Average Precision, 평균 정밀도)가 2배 이상 높은 수준임.

이미지 전체 고려
YOLO는 이미지 예측할 때, global하게 고려함.
sliding window 방식이나, region proposal 기반 방식과 달리, YOLO는 이미지의 전체를 분석해서 class의 contextual information을 인코딩함.
Fast R-CNN과 달리, YOLO는 배경 영역에서의 예측 오류가 절반 이하 수준임.

일반화된 표현 학습
YOLO는 objects에 대해 generalizable representations을 학습함.
따라서 새로운 domain이나, 예상치 못한 input에서도 일반화를 통해 높은 성능을 보임.
(domain 변경: 자연 관경 이미지 → 사람 이미지)

YOLO 한계
단, YOLO의 경우 다른 최첨단 detection systems에 비해 정확도가 좀 뒤쳐짐.
이미지 분석 및 객체 식별 속도는 빠르지만, 특히 좀 작은 객체들을 localize하는 데에 한계가 있음.

✅2. Unified Detection

YOLO는 input image를 S X S grid로 나눔.
그리고 객체 center가 특정한 grid cell 안에 들어오면, 그 cell에서 객체를 탐지하게 됨.
각각의 grid cell은 B개의 bounding box와 bounding box의 confidence score(신뢰도 점수)를 예측함.

신뢰도 계산 수식
: Pr (Object) × IOU_truth_pred

  • Pr (Object): 해당 박스에 객체가 있을 확률
  • IOU(intersection over union): 예측 박스와 실제 박스의 겹치는 정도
  • grid cell에 객체가 없으면, 해당 score는 0이 되어야 함

Bounding Box는 x, y, w, h, confidence 정보를 포함.

  • x, y: grid cell 내 박스 중심 좌표
  • w, h: 전체 이미지에 대한 박스 너비&높이
  • confidence: 예측된 박스와 실제 박스 간 IOU

각 grid cell은 C개의 조건부 class 확률도 예측함.(이때, grid cell이 객체를 포함하고 있다는 조건 충족해야 함)
조건부 class 확률
: Pr (Class_i | Object)

grid cell당 하나의 class 확률 집합만 예측하고, 이는 B(bounding box 개수)와는 무관함.

Test 진행 시에는,
조건부 class 확률과 box 신뢰도 곱해서 계산
: Pr (Class_i | Object) X Pr (Object) X IOU_truth_pred
= Pr (Class_i) X IOU_truth_pred

해당 수식을 통해, 각 box에 대한 class별 신뢰도 점수를 확인할 수 있음.

Network Design

본 논문에서는 해당 YOLO 모델을 PASCAL VOC 데이터셋에서 평가했음.
전체 네트워크 아키텍처
24개의 합성곱 layer & 2개의 Fully Connected Layers로 구성되어 있음.
초기 합성곱 layer는 특징 추출 역할, FCL은 확률/좌표 예측 역할.
Inception 모듈 대신, 1 X 1 reduction layer와 3 X 3 convolution layer 사용.

파라미터의 경우,

  • S=7: 입력 이미지를 7 X 7 grid로 나눔
  • B=2: 각 grid cell이 2개의 바운딩 박스를 예측
  • C=20: 20개의 라벨 class

최종 출력 tensor: 7 X 7 X 30 size

  • 30? = 바운딩 박스 2개 x 5개 값 + 20개 클래스 확률
  • 5개 값? = x, y, w, h, confidence

+ Fast YOLO
YOLO의 fast version. 객체 탐지를 더 빠르게 하기 위해 만들어짐.
합성곱 layer 수가 더 적음(24개 아니고 9개).
각 layer 필터 수도 적음.
network size 말고 다른 파라미터는 YOLO와 동일.

Training

합성곱 layer를 ImageNet 데이터셋으로 사전 학습을 진행했음.
사전 학습에는 20개 합성곱 layer, average pooling layer, fully connected layer 사용.
결과적으로 GoogLeNet 모델과 비슷한 성능을 보임.
이후, 탐지 모델로 변환하기 위해, 사전 학습된 네트워크에 4개의 합성곱 layer와 2개의 FCL 추가.
입력 해상도 224 X 224에서 448 X 448로 증가.
최종 layer에서는 클래스 확률 & 바운딩 박스 좌표 예측 진행.
바운딩 박스의 너비, 높이, x, y 모두 0~1 사이로 normalization.
최종 layer: 선형(linear) 활성화 함수 사용
나머지 모든 계층: Leaky ReLU 활성화 함수 사용.
Leaky ReLU 활성화 함수
원래 ReLU는, x<=0이면, 다 0으로 처리해버리는데, Leaky ReLU는 0이 아니라, 0.1x로 처리해서 학습을 할 수 있도록 함.

손실 함수로는 sum-squared error를 사용하지만, average precision(평균 정밀도)를 최대화해야 하는 데에 적절치 않음.
localization error와 classification error의 weight 처리를 같게 하기 때문임.
그리고, 대부분 image에서 grid cell 다수가 객체를 포함하지 않음. 따라서 이 cell들의 confidence가 0이 되어버림. 결과적으로 모델이 불안정하게 됨.
이를 해결하기 위해, 객체가 있는 bounding box 예측 loss를 늘려 더 높은 가중치를 부여하고, 객체가 없는 bounding box의 confidence loss는 줄임.

  • λ_coord(bounding box 좌표 loss) = 5
  • λ_noobj(객체 없는 bounding box confidence loss) = 0.5

그리고, sum-squared error의 경우, box 크기와 상관 없이 error를 동일하게 봄.
하지만, YOLO는 작은 box의 작은 편차가 큰 영향을 미치도록, 큰 box의 작은 편차는 적은 영향을 미치도록 해야 함.
따라서, bounding box의 너비/높이를 직접 예측하는 거이 아닌, 너비/높이의 square root(제곱근)을 예측하여 문제를 해결하고자 했음.

또한, YOLO는 각 grid cell이 여러 개 bounding box를 예측함.
따라서 각 object에 대해 하나의 bounding box predictor만 할당하도록 해야함.
이를 위해 IOU가 가장 높은 값을 가진 predictor를 선택해서 그 object를 예측하도록 함.
이를 통해, predictor는 종횡비/특정 class 예측에서 더 나은 성능을 보임.

multi-part loss function(다중 손실 함수)

  • 1_ij_obj: grid cell i에서 예측된 j번째 바운딩 박스가 객체를 포함한다면 1, 아니면 0
  • 1_ij_noobj: 객체가 없는 경우 1
  • λ_coord & λ_noobj: 각 가중치

위 loss function을 최적화하면서 학습 진행.


network trainig 시 PASCAL VOC 2007, 2012 데이터셋 사용

  • epoch: 135
  • batch size: 64
  • momentum: 0.9
  • weight decay: 0.0005
  • learning rate: 초기에는 학습률 천천히 올리고, 이후에 줄임
    - 초기 epoch에서 10^-3에서 10^-2까지 증가
    - 이후 75 epoch 동안 10^-2
    - 이후 30 epoch 동안 10^-3
    - 마지막 30 epoch 동안 10^-4
  • dropout & data augmentation 사용하여 과적합 방지

Inference

PASCAL VOC 데이터셋에 대해 각 이미지 당 98개의 bounding boxes를 출력하고, class probabilities를 예측함.
중복 detection 방지를 위해, NMS(Non-Maximumal Suprression, 비최대 억제) 적용. 이를 통해 mAP를 2~3% 올릴 수 있음.

Limitations of YOLO

각 grid cell에서 2개의 bounding box, 1개의 class만 예측할 수 있으므로, 근접한 객체 탐지나, 작은 객체 그룹 탐지(ex. 새 떼)에 한계 존재.

data 기반으로 bounding box를 예측하도록 학습되었기에, 새롭거나, 비정상적인 종횡비/configuration(배열)을 가진 객체를 일반화 하는 데에 한계가 있음.

또한, downsampling layers가 많아서, bounding box 예측 시에 상대적으로 coarse(거친) feature가 사용됨.

손실 함수는 box 크기와 상관 없이 error를 같게 처리함.
다만, 큰 box에서 작은 error보다 작은 box에서 작은 error가 IOU에 더 큰 영향을 미침.
(근본적으로 한계가 있어서 squared root 방식 적용해도 localization 문제가 남아 있음)

✅3. Comparison to Other Detection Systems

DPM(Deformable parts models)

DPM은 sliding window 방식으로 객체를 탐지함.
또한, disjoint pipeline(분리된 파이프라인)을 사용해서 static features(정적인 features)를 추출하고, 이를 기반으로 바운딩 박스를 예측함.
이와 달리 YOLO는 disjoint한 모든 작업을 하나의 합성곱 신경망으로 구성되고, 네트워크가 정적인 features가 아닌 탐지에 최적화된 features를 학습함.
따라서 YOLO는 DPM보다 더 빠르고 더 정확함.

R-CNN

R-CNN의 경우 region proposals 방식을 사용해서 탐지를 진행함.
특히 파이프라인이 복잡한데, 이 파이프라인의 각각의 단계는 독립적이고, 이미지 한 장당 40초 이상이 걸릴 만큼 속도가 굉장히 느림.
YOLO는 동일한 객체에 대해 다중 탐지를 하는 문제를 해결해주고, 모델이 하나로 결합되어 있으니 속도도 빠름.

Other Fast Detectors

Fast R-CNN이나 Faster R-CNN 모델에서도 속도와 정확도는 나아진 부분이 있으나, 실시간 performance에서는 여전히 성능이 좋지 못함.

위에서 언급된 DPM의 가속화 버전도 많이 제안되었지만, 성능 향상이 제한적인 부분이 존재함.

Deep MultiBox.

MultiBox의 경우, 합성곱 신경망을 사용해서 ROI(Region Of Interest)를 예측하며, 단일 객체 탐지까지 수행할 수 있음.
다만, MultiBox의 경우 파이프라인의 일부일 뿐이며, image patch classification이 필요함.

OverFeat.

overfeat 방식은 sliding window 방식으로 licalization을 수행하지만, 탐지 성능도 제한적이고, local한 information만 활용하기 때문에, global context 활용을 못함.
따라서, 정확한 탐지를 위해서는 post-processing 과정이 많이 필요함.

MultiGrasp.

multigrasp는 이미지 내 단일 객체의graspable region만 예측함.
단순 grasp 가능한 region만 찾기 때문에, 복잡한 환경에서는 쓸 수 없음.

✅4. Experiments

Comparison to Other Real-Time Systems

다른 실시간 시스템과 비교를 진행함.

Fast YOLO는 가장 빠른 속도를 보였음.
YOLO는 mAP 63.4%로 더 높은 정확도를 보였음.
전체적으로 타 객체 탐지 시스템과 비교했을 때, 속도/정확도 양면에서 YOLO가 가장 우수하였고, 특히 실시간 탐지 면에서 가장 우수하였음.

VOC 2007 Error Analysis

VOC2007 데이터셋에서 YOLO와 Fast R-CNN을 비교하였음.

결과적으로 YOLO는 Localization에서 주요 문제를, Fast R-CNN은 배경을 객체로 잘못 탐지하는 문제가 있음을 확인할 수 있음.

Combining FastR-CNN and YOLO

Fast R-CNN과 YOLO을 결합하였음.


결과적으로 YOLO는 Fast R-CNN의 한계를 잘 보완하여 성능을 향상시킬 수 있었고, 특히나 Fast R-CNN이 배경을 객체로 잘못 탐지하는 오류를 줄이는 데에 효과적이었음.

VOC 2012 Results

VOC 2012에서 YOLO의 성능을 확인해본 결과, 특정 카테고리에서 높은 성능을 구현해 냈으며,
특히 Fast R-CNN과 결합하여 성능을 향상시키는 것을 확인할 수 있었음.

Generalizability: Person Detection in Artwork

일반화 성능을 확인하고자 하였으며,
결과적으로 예술 작품과 같은 다른 domain에서도 일반화된 성능을 보이며, 타 모델 대비 좋은 우수한 성능을 보임.

✅5. Real-Time Detection In The Wild

YOLO의 실시간 탐지 결과를 확인해보고자 하였음.
웹캠을 통해 이미지 처리/탐지 결과 출력 소요 시간 포함하여, 실시간 성능을 유지하였음.
웹캠에서 객체 움직임/외형 변화에도 우수한 탐지 능력을 보임.

🔚6. Conclusion

본 논문에서 소개된 YOLO 모델은 단순한 구조로, 통합적으로 학습이 진행됨.
특히 Fast YOLO 모델은 가장 빠른 객체 탐지기로, YOLO 모델은 실시간 객체 탐지에서 최고의 성능을 도출해내는 결과를 냄.
더불어 새로운 domain에서도 generalization 능력이 우수하다는 특징을 지니기에, 다양한 응용 분야에서 충분히 활용될 수 있는 훌륭한 모델임.

profile
🏫 Kookmin University, Major in Electrical Engineering (First Major), AI Big Data & Management (Double Major), Smart Car ICT (Interdisciplinary Major)

0개의 댓글