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
- 후보 영역을 생성한 후, 이에 분류기를 적용하고, 결과 후처리
- DPM
2. Unified Detection

- 이미지를 S×S 격자로 나눔; 그림에서는 S=7로, 7×7인 49개의 셀로 분할됨
- (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) 를 예측 - 모든 셀의 예측 종합 시, 하나의 7×7×30 텐서가 만들어짐. (뒤에서 더 자세히 설명)
- 테스트 시,
- 클래스 확률 x confidence = 이 위치에 특정 클래스가 있을 확률 = 최종신뢰도 계산
- 최종신뢰도 바탕으로 NMS 연산 진행
- 클래스별 바운딩 박스의 위치 결정
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의 세 가지 조정

- 대부분의 셀에 객체가 존재하지 않음
→ confidence가 0인 셀의 손실이 지나치게 커짐
→ 객체가 없는 셀의 손실 가중치 $λ_{noobj}$를 0.5로 줄임, 좌표 손실 가중치 $λ_{coord}$는 5로 높임 - 큰 박스와 작은 박스의 오차를 동일하게 취급
→ 너비와 높이에 루트를 씌워 예측 - 가장 IOU가 높은 박스가 책임 박스
→ 각 박스가 전문화되어 전반적인 탐지 성능 향상 - 학습: 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
- 공간적 제약: 각 셀마다 최대 2개의 바운딩 박스와 하나의 클래스 예측
- 작은 객체 탐지 문제: 여러 단계의 다운샘플링 → 해상도가 매우 낮음
- 손실 함수의 균등 오차 처리: 큰 박스와 작은 박스의 오차를 똑같이 다룸
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