Attention please

[논문 리뷰] YOLO v1(2016) 리뷰 본문

논문 리뷰/Object detection

[논문 리뷰] YOLO v1(2016) 리뷰

Seongmin.C 2023. 1. 10. 20:05

이번에 리뷰할 논문은 "You Only Look Once: Unified, Real-Time Object Detection" 이다. 

 

 

 

One-stage vs Two-stage

Object Detection 모델은 크게 one-stage modeltwo-stage model 로 구분된다.

 

two-stage model 은 대표적으로 R-CNN 기반 모델들을 예로 들 수 있다.

 

 

즉, Localization과 Classification을 각각 순차적으로 수행하는 모델을 의미한다. 이는 정확도를 올리는 것에는 유리하지만 시간이 오래걸린다는 단점이 있다. R-CNN에 대한 자세한 설명은 아래 링크에서 자세히 다루고 있다.

 

2022.12.30 - [논문 리뷰/object detection] - [논문 리뷰] R-CNN(2014)

 

[논문 리뷰] R-CNN(2014)

이번에 리뷰할 논문은 "Rich feature hierarchies for accurate object detection and semantic segmentation" 이다. R-CNN은 object detection 모델 중 2-stage detector의 시초가 되는 모델이다. R-CNN 모델은 Regions with CNN의 약자로 r

smcho1201.tistory.com

 

반대로 one-stage model 같은 경우에는 Localization과 Classification을 한 번에 수행하여 정확도는 떨어지지만 수행 속도가 빨라지는 특징을 가진다. YOLO 모델이 one-stage model의 대표적인 모델이다.

 

 

아무래도 자율주행 기술과 같이 real-time에 사용 가능한 detection 모델이 필요했고 이를 위해 YOLO는 하나의 network가 bounding box를 찾고 동시에 class 역시 분류하여 빠른 속도를 보여주었다.

 

 

 

 

 

 

 

 

Detection process

Detection하는 과정은 다음 그림과 같다.

 

1. 입력 이미지를 SxS grid로 분할한다. (논문에서는 S=7)

 

2. grid cell 은 object를 탐지한다. (object 의 중심과 grid cell과 맞게 되는 순간 객체를 탐지)

 

3.  grid cell 은 B개의 bounding box와 confidence score(신뢰도 점수)를 예측한다.

  • confidence score = Pr(Object) * IoU 
  • confidence score는 box가 얼마나 object를 잘 감지했는지에 대한 점수이다. 만약 cell에 object가 존재하지 않으면 Pr(Object) 는 0이 되어 confidence score 역시 0이 된다.
  • 반대로 object 가 존재하면 Pr(Object)는 1이 되고 confidence score는 IoU가 된다. (IoU에 대한 자세한 설명은 다음 링크에 달아두었다.) - https://smcho1201.tistory.com/60
 

IoU(Intersection over Union)의 개념 및 코드 구현

IoU란? IoU란 Ground Truth와 모델이 예측한 값이 얼마나 겹쳐있는지 나타내는 Metric이다. 즉, IoU는 실제 box와 예측한 box의 교집합 / 합집합을 의미한다. 정답 영역과 예측 영역의 겹쳐진 부분이 크면

smcho1201.tistory.com

  • 각 bounding box는 x, y, w, h, confidence 에 대한 정보를 가진다. x, y는 box의 중심 좌표이며, w와 h는 box의 weight, height에 대한 정보이다. confidence 는 predicted box와 실제 box의 IoU값이다. 

4. grid cell은 class 에 대한 확률값을 예측한다. 예측값은 (S x S x (B*5+C)) 의 크기인 tensor이다. (논문에서는 S=7, B=2, C=20 이다.)

 

5. NMS(Non-Max Suppression) 을 사용하여 최종적으로 예측한다.

 

 

위 그림과 같이 NMS를 적용하여 가장 점수가 좋은 Bounding box만을 남겨두었다. NMS에 대한 설명은 다음 링크를 달아두었다.

 

2022.12.30 - [딥러닝/CNN] - NMS(Non-maximum Suppression) 원리

 

NMS(Non-maximum Suppression) 원리

NMS의 목적은 동일한 object를 가리키는 여러 box의 중복을 제거하는 것이다. NMS에는 IoU의 개념이 포함되어 있으니 IOU를 먼저 알아야한다. 2022.12.30 - [딥러닝/CNN] - IoU(Intersection over Union)의 개념 및 코

smcho1201.tistory.com

 

 

 

 

 

 

 

 

Architecture

YOLO v1의 구조

 

DarkNet이라 불리는 위 네트워크는 24개의 Convolution 층2개의 FC 층으로 이루어져있다. 20개의 Convolution 층은 1000개의 class를 가지는 ImageNet 데이터셋으로 pre-train 되어있다. Inception 모델과 같이 1x1 Conv 층을 사용하였고, 최종적으로는 (7x7x30) 의 텐서로 나오게된다. (S=7, B=2, C=20)

 

 

 

 

 

 

 

 

Loss Function

기존의 two-stage model들은 classification과 localization에 대해 따로 loss function을 따로 사용하였다. 하지만 YOLO v1 모델의 경우 regression에 자주 사용되는 SSE(Sum of Squared Error) 를 사용하는데 이는 Localization lossConfidence lossClassification loss으로 이루어져 있다.

 

 

먼저 Localization loss에 대한 수식은 다음과 같다.

 

 

  • coord : 대부분의 grid cell은 object를 포함하지 않기 때문에 객체를 포함하는 grid cell 의 gradient를 압도하는 문제가 발생한다. 이를 해결하기 위해 object를 포함하는 grid cell에 coord 가중치를 둔다. (논문에서는 5로 설정한다.)
  • S : grid cell의 개수 (논문에서는 7)
  • B : grid cell 당 bounding box의 개수
  • 1(obj i,j) : i 번째 grid cell의 j번째 bounding box가 객체를 예측하도록 할당받았을 때 1, 그렇지 않았을 때 0인 값 (grid cell의 경우 B개의 bounding box를 예측하나 confidence score가 가장 높은 1개의 box만을 학습에 사용한다.)
  • (x, y, w, h) : ground truth box의 x, y좌표와 weight, height 값
  •  hat(x, y, w, h) : 예측한 bounding box의 x, y 좌표와 weight, height 값

 

 

 

 

다음으로 Confidence loss 에 대한 수식이다.

 

 

  • noobj : coord 가중치와 반대로 object를 포함하지 않는 grid cell에 대해 부여되는 가중치 값이다. (논문에서는 0.5 로 설정한다.)
  • 1(noobj i,j) : i 번째 grid cell의 j번째 bounding box가 object를 예측하도록 할당받지 않았을 때 1, 그렇지 않은 경우에는 0 이다.
  • C : object가 포함되어 있을 때 1, 그렇지 않은 경우 0 이다.
  • hat (C) : predict한 bounding box의 confidence score

 

 

 

 

마지막으로 Classification loss 에 대한 수식이다.

 

 

  • P : 실제 class probabilities
  • hat (P) : predict한 class probabilities

 

 

 

 

 

 

 

 

Limitations

1. 작은 객체를 탐지하는 것에 제한적임

  • 각 grid cell은 하나의 class만을 예측하기 때문에 Object가 겹쳐있게 되면 제대로 예측하는 것이 불가능하다.

2. 새로운 형태의 bounding box의 경우 정확히 예측하는 것이 힘듬

  • bounding box가 데이터에 의해 학습되기 때문에 새로운 형태의 bounding box의 경우 예측이 힘들다. 예를 들어 1:1, 2:1 비율의 bounding box만을 학습한 경우 새로운 형태의 3:4 비율의 bounding box에 대해 예측이 힘들다.

3. 작은 Bounding box의 loss가 IoU에 더 영향을 줌

  • 손실함수 SSE가 bounding box의 크기와 상관 없이 가중치를 동일하게 적용하였기 때문에 문제가 생긴다.

 

 

Comments