본문 바로가기

AI

YOLO(You Only Look Once) 논문 번역 / 리뷰

선수 지식

1) intersection over union (iou)

바운더리 박스 두개가 존재할 때 두 박스의 교집합의 면적을 합집합의 면적으로 나눈 것이다. 따라서 두 박스간의 겹치는 부분이 많아질수록 iou는 증가한다.

 

2) precision, recall

ex) 모델이 총 15개의 번호판 이미지 중에서 10개의 번호판 이미지를 검출했다고 하자. 검출한 10개의 이미지 중 7개는 TP(옳게 검출) , 나머지 3개는 FP(틀린 검출)이라고 하자.

  • precision: 옳게 검출한 물체 개수 / 모델이 검출한 물체 개수 = 7 / 10 = 0.7
  • recall =  옳게 검출한 물체 개수 / 실제 물체의 전체 개수 = 7 / 15 = 0.47

precision과  recall은 반비례의 관계를 보인다.

 

3) confidence

모델이 물체를 검출했을 때, 모델이 판단한 정확도이다. confidence에 대한 threshold를 적용하여 일정 값 이상의 물체만 검출 되었다고 판단한다. confidence에 대한 threshold값을 어떻게 설정하느냐에 따라서 precision과 recall 값이 바뀐다. recall의 경우 threshold가 낮을 수록 모델이 검출한 물체들 중에서 검출되었다고 인정되는 수가 많아지므로 recall값은 증가한다.

p-r 값의 변화에 따라 나타낸 그래프를 pr 그래프라고 한다.

위의 detection에 대한 pr graph의 모습은 다음과 같다.

 

4) average precision (AP)

두 알고리즘간의 성능을 정량적으로 비교하기 위해서 사용하며 pr 그래프에서 그래프를 아래의 부분을 적분한 면적으로 계산한다.

5) mean average precision(mAP)

여러개의 클래스가 존재할 때 각 클래스마다 AP를 구한뒤 이를 평균낸 값을 mAP라고 한다.

 

 6) localization

class의 분류는 고려하지 않고 물체의 location을 Bounding Box등으로 표시하며, Bounding Box의 좌표를 추론하는 방식으로 학습한다. 이때 Bounding Box는 (x,y,w,h)로 나타내며 x,y는 Bounding Box의 위치를 나타내는 좌표, w,h는 Box의 너비와 높이이다. 

 

논문

You Only Look Once: Unified, Real-Time Object Detection
Joseph Redmon, Santosh Divvala∗†, Ross Girshick, Ali Farhadi∗†

University of Washington, Allen Institute for AI, Facebook AI Research


1506.02640 (arxiv.org)

 

 기존의 객체 탐지 작업은 분류기를 객체 탐지에 활용하는 반면, YOLO의 경우 객체 탐지를 공간적으로 분리된 바운딩 박스 및 관련 클래스 확률을 통한 회귀 문제로 구성한다. 단일 신경망을 통한 한번의 평가 과정으로 바운딩 박스와 클래스 확률을 예측하여 성능 최적화가 가능했으며 속도가 빠르다. 소규모의 네트워크에서 Fast YOLO는 다른 실시간 탐지 시스템의 두배에 달하는 mAP를 갖는다.

 

R-CNN과 같은 Two-stage detector는 object가 존재할만한 location들을 detecting 한 후, 찾은 region들에 대해서 classfication을 수행한다. 즉, localization 이후 classification을 수행한다.

 

YOLO와 달리 Two-stage detector인 R-CNN 모델(과 해당 계열)은 window를 통해 전체 이미지의 일부만을 보고 객체를 탐지한다. 이로 인해서 탐지하는 객체와 유사한 Background 요소에 의해서도 FP 오류를 종종 범하게 된다. 하지만 YOLO는 학습 시 전체 배경까지 고려하므로 주변 배경으로 인한 FP를 범하는 빈도가 1/2 정도에 그친다.

S x S x (B * 5 + C)  tensor의 각 부분에 대한 설명은 다음과 같다.

  • (S x S) 개의 grid cell 
  • Bounding Box의 개수 B * (x, y, w, h, confidence score)
  • C개의 Class probabilites 

input 이미지를 S x S 크기의 grid로 나눈다. grid cell 내부에 어떠한 객체의 중심이 포함되는 경우 grid cell은 해당 객체에 대한 학습을 진행한다. 각 grid cell은 해당 grid cell안에 중심을 가지는 B개의 Bounding Box을 가지며, 이와 함께 Confidence Score를 예측한다.

이때 Confidence Score는 박스안에 객체가 포함될 확률 * IOU에 대한 곱으로 표현된다. 

Pr(Object)의 값은 객체가 있다면 1, 없다면 0이다. 따라서 포함되지 않은 경우 Confidence Score는 0을 갖게된다.

결론적으로 confidence score의 경우 객체가 존재한다면 iou, 없다면 0이다.

 

grid cell 안에서 Bounding Box는 4개의 예측값을 갖는다. (x,y,w,h) 중 x, y는 Bouding Box에 대한 중심값으로 각 grid cell 안에서 0~1의 상대 좌표를 가지게 된다. 만일 grid cell의 중심과 Bouding Box의 중심이 동일하다면 (0.5, 0.5)의 값을 갖게 된다. (w, h)는 전체 이미지에 대한 Bounding Box의 상대적인 너비, 높이를 말한다. 만일 Bounding Box가 이미지와 동일한 크기를 갖는다면 (1,1)의 값을 갖는다.

 

각 grid cell은 C개의 클래스에 대한 Conditional Class Probabilities를 계산한다. 이는 Bounding Box 안에 있는 객체가 어떤 클래스일지에 대한 조건부 확률을 말한다. 따라서 각각의 grid cell은 C개의 클래스에 대한 확률을 구하게 되며 그 중에서 가장 높은 확률을 가지는 class가 grid cell의 클래스가 된다.

 

CCP를 통해서 Class-specific Confidnece Score를 구하게 되며, 이는 Bounding Box 내부에 특정 객체가 속할 확률과 Bounding Box가 객체를 담고있는 정도를 표현한다. 계산식은 다음과 같다.

 

모델의 구조는 24개의 Conv layer와 두개의 FC layer로 구성된다.   

 

Ref.

mAP(Mean Average Precision) 정리 (tistory.com)

YOLO 논문 리뷰: You Only Look Once: Unified, Real-Time Object Detection | by Heejun Park | Medium

'AI' 카테고리의 다른 글

Activation function과 Weight initialization  (0) 2024.08.22
Overfitting 방지  (0) 2024.08.20
Multinomial Classification  (0) 2024.08.20
Logistic Regression  (0) 2024.08.19
Object Detection 알고리즘 별 Label Bounding Box 좌표  (0) 2024.05.14