論文と公式サイトは以下から。
概要
どんな画像からでも学習でき、分類結果の損失関数を使い学習します。Fast YOLO(ネットワークが小さい版)は最速の物体検出が可能なため、リアルタイムでの物体検出が可能。
先行研究との比較
YOLOの物体検出はbounding boxとclassの確率の回帰問題と設定しています。1つのニューラルネットワークを使ってbounding boxとclassの確率を予測できます。
処理早い
具体的には1秒間に45フレームを処理できます。Fast YOLOは1秒間に155フレーム処理できます。
俯瞰した予測が可能
window slidingやregion proposal-based techniquesではなく、画像全体をみて分類します。
抽象的な学習が可能
画像で学習して、絵で検出する能力が他の手法より精度が高いです。
技術や手法の特徴
全体像
inputする画像をS x Sのグリッドで区切ります。
- それぞれのグリッドからbouding boxと物体である可能性を検出します。
fig2でいうところのBounding boxes + confidence
のことで、confidenceはPr(Object) ∗ IOUtruthpred
で表されます。IOUはintersection over union
の略です。全てのbouding boxは、中心を表すx, y、縦横を表すw, h、そしてconfidenceで構成されます。 -
それぞれのグリッドの物体であり、分類の種類の確率(何に分類されるか。犬など。)
fig2でいうところのClass probability map
で、bouding boxがgridの上にいくつかあったとしても、1つの分類の可能性しか推測しません。
1と2はまとめると式1のようになります。
グリッドをS x S、グリッドで予測されるBounding boxの数をB、分類の種類の可能性をCとすると、予測されるtensorはS x S x (B * 5 + C)
になります。この5はx, y, w, h, confidence
。
ネットワーク
畳み込み層が24層の後に、全結合層が2層。Fast YOLOでは畳み込み層を9層にしました。最終的な出力は7 x 7 x 30。
学習方法
Imagenetの1000classのdatasetで事前学習をしています。事前学習にはfig3の20層までと、Average Pooling Layer、そして全結合の層を使います。精度を上げるために、bouding boxのサイズを間違えたときの損失を増やして、bouding boxに何も含まないのに含むと推測した損失を減らしています。λ{coord}とλ{noobj}としてパラメータを加えています。このペーパーではそれぞれ5と0.5を使っています。
検証方法
Deformable parts models(DPM)、R-CNN、Other Fast Detectors、Deep MultiBox、OverFeat、MultiGraspと比較した。
議論
bounding boxを1つのセルに対して2つしか適用していません。大きなオブジェクトに対する小さな検出漏れと、小さなオブジェクトに対する同じサイズの検出漏れを同等の損失と捉えてしまいます。