TechNOTE

[논문리뷰] You Only Look Once:Unified, Real-Time Object Detection 본문

딥러닝, 연구

[논문리뷰] You Only Look Once:Unified, Real-Time Object Detection

JU1234 2021. 5. 27. 17:04

You Only Live Once~ 가 아니라 You Only Look Once ㅎㅎ 다시 봐도 논문 이름을 참 잘 지은 것 같다. 

 

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

We present YOLO, a new approach to object detection. Prior work on object detection repurposes classifiers to perform detection. Instead, we frame object detection as a regression problem to spatially separated bounding boxes and associated class probabili

ieeexplore.ieee.org

내 맘대로 리뷰 시작~ 

Contribution 

  • Simple structure & Extremely Fast Inference! 
    • 이전의 object detection model들은 detector가 따로 필요했다. 
    • 이 paper에서 저자들은 object detection을 regression problem으로 생각해서 spatially separated bounding obx와 associated class probability를 예측하도록 구성했다. 
    • 따라서 전체 파이프라인을 single neural network 로 구성이 가능해 end-to-end training을 가능하게 했다. 
    • 이 Unified architecture는 속도 면에서 큰 성능 향상을 보였다. 

Methods 

  • 전체 모델 구조를 훑어보면 다음과 같다. 
    • 앞쪽은 image의 feature를 추출하는 feature extractor로 보면 되고 
    • 뒤쪽의 linear layer는 각 bounding box와 class를 탐색하는 detector로 보면 된다. 
    • 이 구조를 통하여 [448, 448, 3] 의 image를 [7,7,30] 으로 만들준다.
  • Training pipeline은 다음과 같이 구성된다고 생각하면 된다. 
    • dataset 
      • input으로는 image [448, 448, 3] 이 들어간다.
      • 이 image에 대한 label로는 detect된 object의 주위에 둘러싸인 bounding box 들을 생각해 보면 되는데, 
      • 다음과 같다. 
      • 예제로 grid = 3으로 생각했지만 실제에서는 7을 사용했다고 한다. 
      • width, height를 normalize 하고 top-left , bottom-right 좌표가 주어졌을 때  object 가 위치한 center point와 image의 width, height를 구할 수 있다. 이때 이 center point가 위치한 cell의 confidence 값이 1 이고, 이때의 center x와 center y 좌표는 cell 크기에 맞춰서 rescale 된다. 
    • traning loss 
      • 전체적인 loss function은 다음과 같다.
      • [448, 448, 3] 의 image가 모델을 통과하면 [7, 7, 30] 이 된다. 이 30개의 channel dimension의 value들을 가지고 object의 center x, y 그리고 w, h, confidence score를 예측하고 해당 cell의 class를 예측한다! 
      • 한 image당 7*7 개의 cell이 있을 텐데, 모든 cell에 대해서 prediction을 하는 것이 아니라, object center가 위치해 있는 cell에 대해서 (위에서 구했던 confidence 값이 1인 cell에 대해서)만 loss 계산을 진행한다. 
      • 한 cell 에 대해서 여러 개의 bounding box들이 예측되는데, (이 개수는 학습 시 고정 논문에서는 2 사용) 예측된 값과 ground truth와의 IOU 를 계산해서 더 높은 쪽의 bounding box 를 학습에 사용한다. 
      • 여기서 학습 시에 ground truth confidence score for obj, 는
      • 다음과 같이 나타낼 수 있다. 따라서 각 cell의 Ci는 prediction과 ground truth간의 iou 를 예측하도록 학습되는것이다. 
      • non-obj의 경우에는 0이 된다. 
      • 다음은 class prediction인데, 마찬가지로 obj prediction에 대해서만 값을 예측해 준다.  
  • Inference 할 때는? 
    • tensor [7, 7, 30]  을 가지고.. 
      • object detection
        • 각 cell 별로 가장 responsible한 bounding box 결정 [confidence prob을 가지고] -> x, y, w, h 값 얻음 
        • confidence prob이 너무 낮은 cell들은 버려 
        • x, y, w, h값을 normalized -> 진짜 scale 로 변환해서 left-top right-bottom 좌표 구함 
      • object classification
        • class prob * conf prob 해서 최종 class probability를 구함.
        • 다음과 같이 각 cell 별로 예측된 bounding box 확인 가능 
    • NMS와, threshold detection를 수행해서 probable 한 bounding box 만 남긴다! 

Experiments 

  • 다른 모델들보다, 확연하게 빠른 속도 & 약간 낮은 accuracy 를 보인다. 둘의 trade off가 존재한다고 한다. 
  • 동영상에 대해서도 real-time detection이 가능하도록 만든게 고무적이다.
  • Some limitations
    • YOLO는 bounding box predcition에서 strong spatial constraints 를 주는데 (각 grid cell 당 2개의 bounding box..), 이 때문에 근처에 있는 object들을 제한적으로 찾을 수밖에 없다. 
    • data를 통해서 학습하는 것이기 때문에.. unseen object나 unusal rate object에 대해서는 일반화가 잘 안된다 
    • incorrect localization.. 

 

끝~~ 빨리 학습이 되었으면 좋겠다. 
배고프당 . 

반응형
Comments