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


0、背景知識



ソース:📺東ビンナYouTube
(R-CNNシリーズの説明が素晴らしい!)
R-CNN은
1. CPU 기반의 selective search 진행으로 많은 시간이 소요되고,
2. 전체 아키텍처에서 SVM, Regressor 모듈이 CNN과 분리 되어 있어 End-to-End 방식으로 학습할 수 없으며
3. 모든 Roi를 CNN에 넣어야하기 때문에 많은 CNN 연산이 필요하다
는 단점이 있다.

R-CNN의 단점을 보완하여 나온 것이 Fast R-CNN인데
Fast R-CNN은 End-to-End 방식으로 학습이 가능하게 되었지만
여전히 Region Proposal은 CPU에서 수행되기 때문에 속도가 느리다.

따라서 Faster R-CNN에서는
RPN(Region Proposal Network)를 제안하여 feature map을 보고 어느 곳에 물체가 있을 법한지 예측할 수 있도록
만들었다.

1. Key point


YOLOの3つのポイント
  • 速:2級検出器-->1級検出器
    リアルタイムのターゲット検出を実現した.(45 frames per second)
  • を背景に、高速応答を
  • まで最小化する.
  • 良好な汎用化性能:CNNによって対象特徴
  • を抽出する

    2. YOLO


    YOLOの進行段階は3つのステップに分かれている.

    Step 1. inputimageをSxS gridで割る.
    Step 2. B個のbounding box座標(x,y,w,h)とconfidence scoreを求める.
    (boundingbox scoreの計算)

    本論文ではSを7に設定し,7×7メッシュに分ける.次に、各boundingboxの座標(x,y,w,h)とconfidence scoreを求める.confidence scoreを求める方法はobjectの有/無(1/0)とIOU scoreを乗算することである.上図に示すようにgrid cellにobjectがない場合は0、grid cellにobjectがある場合は1とIoUの値を乗算し、最終的にIoU scoreと同じ値を得る.
    (trainではB個boundingbox、testでは2個boundingbox、trainでもB=2)

    Step3. クラス確率を求める.

    条件クラス確率はBox confidence scoreに乗算し,最終的にクラスconfidence scoreを求める.
    (論文ではテスト時に条件class確率とbox confidence predictionを乗算すると言っていますが、trainでも同じですか?)

    3. Network



    ネットワーク上では,あらかじめ用意されたGoogLeNetにimageNetデータを用いて導入し,後に4つのボリューム層と2つの完全接続層を加え,4つのconvと2つのfcを訓練した.また,GoogleNetのinceptionモジュールの代わりに1 x 1還元層と3 x 3 conv層を用いた.
    pretrain GoogLeNetは、画像分類のためのネットワークであり、入力画像に対して空間情報抽出が可能な特性であるため、ターゲット検出に用いることができる.
    trainネットワークを通過した後,出力テンソル形状は7 x 7 x 30であった.
    << 설정값 >>
    식: S x S x (B * 5 + C)
    - S x S (: grid cell) = 7
    - B (: bounding box 개수) = 2
    - C (: class 개수) = 20
    S x S(7 x 7)に分割されたメッシュユニットを観察すると,各メッシュユニットにはB個(B=2)の包囲ボックスが存在し,各包囲ボックスには座標値(x,y,w,h)とconfidence scoreがあり,合計5種類の情報があることが分かった.本論文ではPASCAL VOCデータセットを用い,クラス数Cは20である.したがって,式に従って書くと,7 x 7 x(2*5+20)=7 x 7 x 30の結果が得られる.

    4. Unified detection



    (bounding box)
    本論文では,448 x 448 size画像を用いて7 x 7 x 30の特徴図を抽出する.7 x 7の各グリッドには、5つの枠線情報(x,y,w,h,confidence score)が含まれている.30次元がどのように形成されているかを見てみましょう.1~5次元には、2つの包囲ボックスのうち最初の包囲ボックス情報が含まれています.6~10次元には、2番目のboundingboxの情報が含まれます.11-30次元は、最初のboundingボックスで検出されたオブジェクトの20クラスの確率値を含む(PASCAL VOCデータセットには20クラスがあるため).
    (class confidence score)
    boundingboxのconfidence socareとclass確率にboundingboxのconfidence scoreを乗算します.本明細書では、各7 x 7メッシュは2つのbounding boxからなるので、7 x 7 x 2=98個のbounding boxに関する情報を得ることができる.
    (NMS(Non-max suppression))
    前述の手順を経た98の情報に対してNMSを実行する.NMSを実行して被検出対象の予測値を得る.
    💡Non maximum suppresion(NMS)
    : 제일 큰 IoU를 가진 bounding box를 제외하고 나머지는 압축시킨다.
      (IoU가 특정 threshold 이상인 중복 box 제거)

    5. Loss Function



    全体lossは上図のように検索で学んだことからloss関数を3つの部分に分けて見ることができます
  • Localization loss

    一番上の2行はbounding boxの座標値とconfidence scoreの損失です.
  • 그림에서
    - 초록색 동그라미 부분: i번째 grid cell에서 j번째 bounding box가 object를 예측하도록
                         responsible for (할당) 받았을 때 1, 그렇지 않으면 0이 된다.
    - 파란색 동그라미 부분: object를 포함하지 않는 grid cell의 confidence score가 0이 되어
                         gradient에 영향을 주는 것을 방지하여 객체를 포함하는 grid cell에
                         가중치를 주게 된다. (본 논문 setting = 5)
    
    大きなboundingboxの小さなエラーは小さなboundingboxのエラーほど重要ではないので、w、hに根を付けてこれを反映します.
  • confidence loss

    2行はboundingboxのconfidence score Cのlossであり、オブジェクトが含まれている場合は1、そうでない場合は0、c^はboundingboxを予測するconfidence scoreである.
  • 그림에서
    - 초록색 동그라미 부분: object가 존재하지 않는 grid cell에 가중치 0.5를 곱하여 loss에 영향이 덜 가도록 한다.
  • classification loss

    Pは実際のクラス確率,p^は予測のクラス確率である.
  • 6. Experiment


  • Comparison to Other Real-Time Systems


  • Error Analysis


  • Generalizability: Person Detection in Artwork

  • 7. Result

  • YOLOは配置が簡単です.
  • 全体の画像を学習します.
  • 以前のモデルよりずっと速いです.
  • は良好な検出性能を有する.
  • 8. Limitation of YOLO

  • Gridユニットごとに1つのクラスしか予測できません.
  • オブジェクトが重なると、正確に予測できません.
    (ex-鳥の群れのような小さなオブジェクト)
  • Boodingboxの形式は、トレーニングデータのみで学習されます.
    新しい/ユニークな横長比などの包囲ボックスでは、正確な予測はできません.
  • 小さな枠線と大きな枠線のエラーは同じです.
    より小さなbounding boxにおけるloss項がIoUに与える影響はより敏感である(位置決めが不正確である)