상세 컨텐츠

본문 제목

[2주차 / 강민채 / 논문리뷰] YOLOv1

2023 Summer Session/CV Team 1

by eahcnim 2023. 7. 19. 14:56

본문

Object detection frame을 변화시킨 논문
Classification + Regression의 2-steps network  ▶ Single Regression problem의 Single network

이미지로부터 신경망으로 한 번에 detection 처리 → You Only Look Once ! 

특징

  • single convolution network가 multiple bounding boxes + class probabilities 동시에 예측한다.
  • 전체 이미지를 직접적으로 학습한다.
    → Unified model
- Extremely Fast: real-time detection 가능
- Reasons globally: background error 감소
- Generalizable: 새로운 도메인 적용 용이

1.1 Bounding Box 예측 방식

  • input image: 이미지를 S x S grid로 나눈다.
  • each grid cell: 각 grid cell은 [B개의 bounding boxes] & [confidence score]를 예측한다.
     * confidence score = Pr(object) * IOU(truth pred)
       → bbox가 객체를 포함하는지 & 얼마나 정확하게 G.T. box를 예측했는지를 반영
     * 이를 위해 C개의 conditional class probabilities 계산
  • each bounding boxes: 각 bbox는 5개의 predictors(x,y,w,h,confidence)를 예측한다.
     * x,y: bbox의 중심좌표로, grid cell의 경계를 기준으로 한 상대적 위치
             ex) x,y가 0.5, 0.5이면 해당 bounding box의 중심이 어떤 grid cell의 정중앙에 위치한다는 것
     * w,h: bbox의 높이와 너비로, 전체 이미지를 기준으로 한 상대적 위치
     * confidence: IOU btw predicted box & any G.T. box
  • 최종 output tensor size: S x S x (Bx5 + C) 사이즈의 최종 output을 출력한다. 본 논문에서는 7x7x(2*5+20) = 7x7x30

 

1.2 Network Design: DarkNet

최종 output size: 7x7x30

  • 24개의 convolution layers
  • 2개의 FC layers
  • GoogLeNet의 아이디어를 가져와 1x1 conv layers(depth ↓)

네트워크는 위와 같이 구성되어 있으며, input size는 task에 따라 달라진다.
(classification task의 경우 224x224, detection task의 경우 448x448이며 바로 이어지는 training 단계에서 적용된다.)
* Fast version의 경우 conv layer의 수를 24개 → 9개로 줄인다.

 

1.3 Training

  • ImageNet 데이터셋으로 초기 20개의 conv layer를 pre-train: classification task (224x224)
  • 이후 학습된 네트워크에 4개의 conv layer와 2개의 FC layer를 붙여 detection task 진행 (448x448)
  • 마지막 layer는 Class probability & Bounding box를 동시에 예측: x,y & w,h 각각 기준에 맞게 normalize(0~1) 해야 함
Activation function

- final layer: linear activation function

- other lyaers: Leaky ReLU

Leaky ReLU

 

Loss function

- SSE(Sum Squared Error) 사용하지만, 다음과 같은 문제점이 있어 아래의 방식으로 수정
   * 문제점
     (1) localization loss와 classification loss의 가중치를 동일하게 적용

     (2) 객체 미포함 grid cell의 confidence가 0 → 배경이 많으면 0으로 수렴 or 물체 포함 cell의 gradient 발산

출처: https://herbwood.tistory.com/13

 

  1. Localization Loss: 문제 (2) 해결
    객체를 포함하는 cell에 5의 가중치를 부여하고, 각 grid cell이 가지는 b개의 bbox 중 confidence score가 가장 높은 1개의 bbox만을 학습하도록 할당한다.

출처: https://herbwood.tistory.com/13

    2. Confidence Loss: 문제 (2) 해결
        객체를 포함하지 않는 grid cell은 0.5의 가중치를 곱해 그 영향력을 줄인다.

출처: https://herbwood.tistory.com/13

    3. Classification Loss

출처: https://herbwood.tistory.com/13

- 위 세 개의 loss를 합해 최종 loss를 산출한다.

 

1.4 Inference 

학습 후, 이미지의 최종 output은 7x7x30 tensor로, 이미지가 총 49개의 grid cell로 분할된다. 각각의 cell은 2개의 bbox를 예측하므로, 이미지는 총 98개의 bbox와 class 확률을 갖게 된다. 하지만 object가 큰 경우, 여러 grid에서 검출될 수 있다. 한 object에 여러 개의 bbox가 생기는 것을 방지하고자 Non-Maximal Suppresion(NMS)를 통해 최종 bbox를 선정한다.

NMS
1) confidence score가 threshold보다 작은 bbox는 그 값을 0으로 변경
2) 나머지 bbox는 confidence score가 높은 순으로 정렬
3) confidence score가 가장 높은 bbox(A)와, 다른 bbox(B)의 IOU가 0.5 이상이면 다른 bbox(B)를 제거

 

1.5 Limitation

  • grid cell 분할 후 각 2개씩의 bbox만 제안하므로, 한 물체에 근접한 다른 작은 물체들은 잘 감지하지 못한다.
    (하나의 cell 안에 여러 개의 물체들이 있을 때, 최대 2개만 감지한다)
  • 데이터로부터 학습하므로, 새로운 형태에 대해 일반화가 어렵다. 
  • 작은 box의 error는 IOU에 큰 영향을 주는데, 학습 과정에서 큰 box와 작은 box의 error를 똑같이 취급한다.

 

2. Comparison to other detection systems

  • 높은 mAP
  • 낮은 background error

 

3. Conclusion

  • YOLO는 unified model로 쉽게 만들 수 있으며, 전체 이미지를 학습한다.
  • bbox와 class probabilities를 동시에 예측하므로 복잡한 파이프라인이 필요 없고, 매우 빠르다.

Reference

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

https://187cm.tistory.com/24?category=1105411#google_vignette

https://herbwood.tistory.com/13

 

관련글 더보기

댓글 영역