JSP's Deep learning

[Paper Review - Object Detection] 4. YOLOv1 본문

Paper Review/Object Detection

[Paper Review - Object Detection] 4. YOLOv1

_JSP_ 2023. 1. 25. 23:03

1. YOLOv1 요약

 

1) YOLOv1의 Detection System

 

2) YOLOv1의 장단점

 

(1) 장점

  • One-Stage Object Detection
  • 45 fps로 빠르다. => Real time object detection에 적합하다.
  • 물체에 대해서 더 잘 일반화를 한다.
  • 배경에 대해서 잘못 예측하는 경우가 더 적다.

 

(2) 단점

  • 더 많은 Localization Error을 가진다.

 

2. YOLOv1의 용어정리

 

1) Leaky ReLU

Leaky ReLU - https://excelsior- cjh.tistory.com /177

  • ReLU에서 일부 뉴런이 활성화되지 않는 문제를 개선
  • x ≤ 0에 대해서, 0.01x를 적용

 

2) HSV color space

HSV color space 표현 - https:// www.charlezz.com /?p=44906

  • (H, S, V)의 좌표로 색을 표현하는 방법
    • H(Hue) : 색상, 색의 종류 (0~179)
    • S(Saturation) : 채도, 색의 탁하고 선명한 정도(0~255)
    • V(Value) : 명도, 빛의 밝기(0~255)
  • 원기둥 또는 원뿔 모양으로 표현

 

3) Darknet framework

Darknet의 Emblem - https://zeuseyera.github.io/darknet-kr/11_SaYongBeob/SaYongBeob_Yolo-v3.html

  • Joseph Redmon이 독자적으로 개발한 neural network framework
  • C, CUDA로 작성된 Open source
  • YOLO, AlexNet, VGG-16, Resnet, DenseNet 등의 Model 지원

 

3. Unified Detection

 

1) YOLOv1의 Detection System

 

2) YOLOv1의 Convolution Network

 

3) YOLOv1의 Output

  • S = 7, B = 2, C = 20으로 설정

 

4) YOLOv1의 Detection System 요약

  • Detection System
    • ImageS x S grid-cell로 분리
    • grid-cellB개의 box predicter가 존재하고, box predicter(x, y, w, h) + confidence를 예측
    • grid-cellC개의 class에 대한 확률 값을 가진다.
  • Network Design
    • GoogleNet에서 3 x 3 conv layers – 1 x 1 conv layers를 추가
    • 24개의 convolutional layers – 2개의 fully connected layer의 구조.

 

5) YOLOv1의 학습

 

(1) Pre-trained layer 및 Fine-tuned layer

 

(2)  Layer 세부사항

      1. Pre-trained layers
        • 학습데이터 : 1000 – ImageNet 1000-class competition dataset
        • 입력 형태 : 224 x 224
        • Network 구조 : 20 Conv layers(+ average-pooling layers) + fully connected layer
      2. Fine-tuned layers
        • Network 구조 : 4 Conv layers +  fully connected layer1 + fully connected layer2
          • 4 Conv layers +  fully connected layer1
            • Random Initialize
            • 입력 형태 : 448 x 448
          • fully connected layer2
            • Class probability & box coordinates 예측 -> w, h는 이미지의 너비, 높이에 정규화, x, y는 grid cell location의 offset
            • linear activation 사용

 

(3) 학습시 예측한 Bounding box 사용

 

(4) Multi-part Loss function

 

(5) 학습 정보

    • Parameters
      • Epochs : 135
      • Batch size : 64
      • Momentum : 0.9
      • Decay : 0.0005
    • Learning rate schedule
      • first epochs10^(-3)  →10^(-2) 로 서서히 증가 => Gradient exploding 방지
      • 75 epochs까지는 10^(-2), 이후 30 epochs까지는 10^(-3), 마지막 30 epochs10^(-4)로 학습 => 수렴에 가까워질 때, 세밀한 조정
    • Avoid overfitting
      • dropout : 0.5
      • extensive data augmentation
      • HSV color space에서 1.5배까지 exposuresaturation을 무작위로 조정

 

6) YOLOv1 추론

  • S = 7, B = 2, C = 20으로 설정

 

7) YOLOv1의 한계

 

(1) 비정상 객체에 대한 탐지 어려움

 

(2) 작은 객체에 대한 탐지 어려움

 

8) YOLOv1의 강점

  • One-Stage Object Detection
  • Single-stage pipeline
  • Simple architecture
  • Fewer region proposals
  • No required additional classification

 

4. 실험

 

1) 다른 Real-time Detection 모델과 비교

  • 다른 모델에 비해 빠른 속도와 준수한 정확도를 지닌다.

 

2) VOC 2007 데이터셋에 대한 Error 분석(Fast R-CNN과 비교)

 

3) Fast R-CNN과 YOLO을 결합한 경우의 성능 실험

  • 결합한 경우 성능이 더 향상된다.

 

4) VOC 2012 데이터셋에 대한 성능 실험

  • 작은 객체에 대한 탐지 성능이 다른 모델에 비해 떨어진다.
  • 유사한 객체가 존재하는 객체에 대해서도 성능이 떨어진다.

 

5) Generalizability 실험

  • Domain이 다른 객체에 대해서도 좋은 탐지 성능을 보인다 => 일반화 가능성이 존재

 


< Reference >

[1] Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi. ou Only Look Once: Unified, Real-Time Object Detection. IN CSCV, 2016

[2] 이윤승. https://www.youtube.com/watch?v=O78V3kwBRBk

Comments