2021년 4월 3일 토요일

YOLO-V1

You Only Look Once: Unified, Real-Time Object Detection 

[https://arxiv.org/abs/1506.02640]


2016년 Facebook-AI에서 나온 One Stage-Object Detection 논문입니다.



[Introduction]

해당 논문에서는 크게 3가지의 이점으로 제안한 YOLO모델의 유효성을 제시하고 있습니다.

1. 빠른 속도

  • YOLO모델은 Titan X GPU기준으로 45fps, Fast-YOLO모델은 150fps의 속도를 나타냅니다.

2. 이미지 전체를 보고 추론

  • Sliding windowRegion propasal과 같은 기법들과는 다르게 이미지의 전체적인 정보를 봅니다.

3. 다른 도메인이나 예상치 못한 input에 강함


[Unify detection]

- 이미지를 $S$x$S$로 분할합니다.

- 각각의 cell은 $B$개의 bounding box(이하 bbox)와 confidence score를 갖고있습니다.

  bbox coordinate= $x, y, width, height$

  confidence score=$P_{r}(Object) * IOU^{truth}_{pred}$이며 cellobject가 있다면 $P_{r}(Object)$이 될것이고 없다면 0이될것입니다.

- 각각의 cell은 $C$개의 conditional class probabilities를 갖고있습니다.

  $C$=$Pr(Class_{i}|Object)$

- 최종 출력은 $S$x$S$x($B$x$5$+$C$)의 tensor를 갖게됩니다.

 

[Network architecture]

- 24개의 conv layer, 2개의 fc layer 사용하였으며 Fast-YOLO모델은 9개의 conv layer만 사용하였습니다.

- Google net inception module을 사용하는 대신에 1x1 conv를 사용하여 채널을 줄이고 연산속도도 향상하는 효과를 보았습니다.

- input shape는 448x448로 detection관점에서 좀 더 세밀한 정보가 필요하기 때문에 기존 224x224 shape에서 2배 scaling-up을 진행하였습니다.


[Training]

- bbox들을 normalization하여 [0, 1]사이로 맵핑시켰습니다.





- activation functionleaky-ReLU를 사용하였습니다.













- loss function은 위와 같습니다. SSE(Sum squared error)를 적용하였는데 AP(Average precision)을 최대화하려는 목적과 

  부합하지는 않지만 optimize하기 쉬워 적용했다고 합니다.

- 여기서 $\mathbb{I}_{ij}^{obj}$는 $0<=i<=S^{2}$범위에 GT object가 존재하며 $0<=j<=B$번째 bbox가 $i$구간에 있는 모델이 추론한 bbox들을 말합니다.

- 현 YOLO의 구조에서는 cell들의 대부분이 object가 포함되어 있지 않은데 이로 인해 confidence score가 0쪽으로 

  치우쳐져 있게 됩니다. 이 현상은 모델이 불안정해지고 train이 조기에 빗나갈 수 있도록 만드는데 

  $\lambda_{coord}$와 $\lambda_{noobj}$의 hyper-parameter를 대안으로 냈습니다.

- 파라미터 셋팅은 다음과 같습니다.

  • batch size: 64
  • lr momentum: 0.9
  • lr decay: 0.0005    
  • lr epoch: slowly raise first epoch lr $10^{-3}$ to $10^{-2}$, $10^{-2}$ until 75epoch, $10^{-3}$ for 30epoch, $10^{-4}$ for 40 epoch  
  • used dropout rate with 0.5    
  • data augmentation: random scaling, translate up to 20% original image size,
    exposure and saturation by factor of
    1.5 in HSV channel


[Limitation of YOLO V1] 

- $S$x$S$범위에서 bbox 2개와 하나의 object class밖에 추론할 수 없어서 작은 object들이 무리로 나오는 데이터에는 굉장히 취약합니다.