YOLO

2025. 10. 27. 00:58·ML&DL/논문리뷰

 

Abstract

  • 기존의 객체 탐지 연구들은 주로 분류기를 재활용하여 속도 느림, 구조 복잡
  • YOLO는 이와 다르게 이미지를 한 번만 보고, 그 안의 모든 객체의 위치와 클래스 확률을 동시에 예측
    • 전체 탐지 과정을 하나의 신경망으로 통합
      → 모델 전체 최적화 가능
      → 초당 45프레임으로 작동, Fast YOLO 155프레임으로 작동
    • 위치 오차↑, 배경을 객체로 잘못 인식↓
    • 미술 작품 같은 전혀 다른 도메인에서 훨씬 더 잘 일반화

용어 정리

AP, mAP란?

해당 사진에서

  • Precision(정밀도): 모델이 검출해낸 박스 중에 정답 박스가 몇개 존재하는지에 대한 값
  • Recall(재현율): 실제 객체 중에서 모델이 맞게 탐지한 비

객체 확률이 0.5 이상인 박스만 탐지 성공으로 인정한다고 할 때, 0.5에 해당하는 임계값을 높이거나 낮추면 Precision과 Recall이 변화한다.

  • 임계값을 높이면 → 정확하지만 덜 탐지 (Precision ↑, Recall ↓)
  • 임계값을 낮추면 → 많이 탐지하지만 오류 탐지 증가 (Precision ↓, Recall ↑)

그래서 다양한 threshold 값에 대해 Precision과 Recall을 계산해 그린 곡선이 PR Curve(Precision–Recall 곡선)이다.

이 PR Curve의 곡선 아래 면적 값이 AP(Area Under PR Curve)이다.

즉, AP 값이 높을수록, 모델이 높은 Precision과 높은 Recall을 동시에 달성했다는 뜻이다.

YOLO의 경우 클래스가 여러 개이기에, 각 클래스마다 AP를 계산하고 평균을 낸다.

즉, mAP는 모든 클래스의 AP 평균이다.

(예) PASCAL VOC에는 20개 클래스가 있으니까 각 클래스(person, car, dog, tv, ...)의 AP를 계산한 뒤 평균을 내면 mAP 이다.

IoU; Intersection over Union

모델이 얼마나 박스를 잘 결정했는지 평가하기 위해 나온 수치로, 합집합의 면적 분의 중첩된 면적이 IoU 값이다.

1. Introduction

  • 기존의 객체 탐지 시스템
    • DPM
      • 슬라이딩 윈도우 방식
      • 모든 위치에 분류기를 반복적으로 적용
    • R-CNN
      • 후보 영역을 생성한 후, 이에 분류기를 적용하고, 결과 후처리
    → 정확도가 높았지만, 느리고 최적화가 어려움 ⇒ YOLO는 객체 탐지를 회귀 문제로 접근

2. Unified Detection

  1. 이미지를 S×S 격자로 나눔; 그림에서는 S=7로, 7×7인 49개의 셀로 분할됨
  2. (1) 각 셀은 B개의 바운딩 박스 예측; 그림에서는 B=2로, 각 셀마다 2개의 바운딩 박스 예측

    각 바운딩 박스는 (x, y, w, h)와 confidence 값을 가짐
    (x, y): 셀 기준의 상대적인 중심 좌표 값
    (w, h): 이미지 전체에 대한 상대 크기
    confidence는 이 박스 안에 객체가 있을 확률 × 예측 박스와 실제 박스의 IOU(Pr(Object) × IOU(pred, truth))

    (2) 각 셀은 클래스 확률 Pr(Class_i | Object) 를 예측
  3. 모든 셀의 예측 종합 시, 하나의 7×7×30 텐서가 만들어짐. (뒤에서 더 자세히 설명)
  4. 테스트 시,
    1. 클래스 확률 x confidence = 이 위치에 특정 클래스가 있을 확률 = 최종신뢰도 계산
    2. 최종신뢰도 바탕으로 NMS 연산 진행
    3. 클래스별 바운딩 박스의 위치 결정

2.1. Network Design

  • 하나의 CNN
    • 초반부의 합성곱 계층: 이미지의 특징 추출
    • 마지막 완전연결 계층: 각 셀의 바운딩 박스 좌표와 클래스 확률 예측
  • GoogLeNet의 영향을 받음
    • GoogLeNet의 Inception 모듈 대신, 1×1 합성곱과 3×3 합성곱을 사용
    • → 모델의 깊이를 유지하면서 계산 효율을 높여줌
  • 24개의 합성곱 계층 + 2개의 완전연결 계층
  • 입력 이미지: 448×448
  • 마지막 출력: 7×7×30 텐서

2.2. Training

  • ImageNet 데이터셋으로 사전학습 → 이후에 탐지용으로 합성곱 층 4개+완전연결 층 2개 추가
  • 입력 해상도: 224x224 → 448x448
  • 활성함수: 대부분 Leaky ReLU, 마지막 출력층만 선형 함수 사용
    *죽은 뉴런 문제: ReLU의 음수 입력에서 출력과 기울기가 0이 되어 그 이후로 어떤 입력을 받아도 항상 0만 출력하는 문제

 

  • YOLO의 세 가지 조정

  1. 대부분의 셀에 객체가 존재하지 않음
    → confidence가 0인 셀의 손실이 지나치게 커짐
    → 객체가 없는 셀의 손실 가중치 $λ_{noobj}$를 0.5로 줄임, 좌표 손실 가중치 $λ_{coord}$는 5로 높임
  2. 큰 박스와 작은 박스의 오차를 동일하게 취급
    → 너비와 높이에 루트를 씌워 예측
  3. 가장 IOU가 높은 박스가 책임 박스
    → 각 박스가 전문화되어 전반적인 탐지 성능 향상
  4. 학습: 135 epoch, Batch Size 64, 모멘텀 0.9, 드롭아웃 0.5, 데이터 증강(이미지의 크기와 위치를 ±20% 범위에서 랜덤하게 변형, HSV 색공간에서 밝기와 채도를 최대 1.5배까지 조정)

2.3. Inference

  • 7x7은 49개의 그리드 셀을 의미, 각 그리드 셀은 2개의 바운딩 박스를 가짐
    • 1~5번째 값: 첫 번째 바운딩 박스에 대한 x,y,w,h,c 값
    • 6~10번째 값: 두번째 바운딩 박스에 대한 x,y,w,h,c 값
    • 나머지 20개의 값: 클래스별 확률

  • 바운딩 박스의 confidence score x 각 클래스별 확률 → 최종 신뢰도를 구함

  • 모든 그리드 셀의 모든 바운딩 박스에 대해 계산 → 총 98개의 최종 신뢰도
  • 각 클래스 별로 NMS 연산 진행 후, 클래스별 바운딩 박스의 위치 결정

2.4. Limitations of YOLO

  1. 공간적 제약: 각 셀마다 최대 2개의 바운딩 박스와 하나의 클래스 예측
  2. 작은 객체 탐지 문제: 여러 단계의 다운샘플링 → 해상도가 매우 낮음
  3. 손실 함수의 균등 오차 처리: 큰 박스와 작은 박스의 오차를 똑같이 다룸

4.5. Generalizability: Person Detection in Artwork

 

모델을 Picasso Dataset, People-Art Dataset에서 테스트

  YOLO R-CNN
자연 이미지 59.2% 54.2%
Picasso 53.3% 10.4%
People-Art 45% 26%
  • R-CNN: Selective Search 사용 → 색감이나 형태가 다른 입력에서 성능 저하
  • YOLO: 이미지 전체를 한 번에 보고 전역적 문맥을 판단 → 크기, 비율, 위치 관계를 기반으로 인식

6. Conclusion

  • 이미지를 한 번만 보고 모든 객체를 탐지하는 접근 방식 제안
  • 하나의 신경망이 위치와 클래스를 동시에 예측하는 단일 통합 구조
  • Fast YOLO 모델은 초당 155프레임으로 동작, 두 배 이상 높은 정확도 달성
  • 예술 작품이나 비자연 이미지처럼 다른 도메인에서도 높은 일반화 성능
  • 빠르고, 단순하며, 강력한 실시간 객체 탐지 시스템

 

[참조]

https://i-am-eden.tistory.com/7

https://en.wikipedia.org/wiki/Jaccard_index

https://blog.naver.com/sogangori/220993971883

'ML&DL > 논문리뷰' 카테고리의 다른 글

BLIP  (0) 2025.11.03
CLIP  (0) 2025.11.03
GoogLeNet  (0) 2025.10.27
VGGNet  (0) 2025.10.27
AlexNet  (0) 2025.10.27
'ML&DL/논문리뷰' 카테고리의 다른 글
  • BLIP
  • CLIP
  • GoogLeNet
  • VGGNet
minyoy
minyoy
  • minyoy
    MINYOY
    minyoy
  • 전체
    오늘
    어제
    • 분류 전체보기 (17)
      • ML&DL (16)
        • 논문리뷰 (16)
      • 알고리즘 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
minyoy
YOLO
상단으로

티스토리툴바