YOLO (v1→v11)

Redmon 2016→2024 · 論文

一行要約 — 「You Only Look Once」は物体検出を1回のCNN順伝播で解く単発の回帰問題として再定義し、SLAMシステムがセマンティクスや動的物体の推論に最も一般的に使うリアルタイム検出ファミリーを確立した。

問題

YOLO以前、物体検出は分類器を検出に転用していた:DPMは画像上の全ての位置とスケールに対して分類器をスライドさせ、R-CNNファミリーは領域候補を生成し、それぞれを分類してから、後処理でボックスを精緻化・重複除去・再スコアリングしていた。これらの複雑なパイプラインは遅く — カメラのフレームレートには遠く及ばない — 各コンポーネントが個別に学習されるため最適化も難しかった。ロボティクスには、1回のパスで、動画レートで動作する、単一の学習可能な目的関数を持つ検出手法が必要だった。

手法とアーキテクチャ

λcoordi=0S2j=0B1ijobj[(xix^i)2+(yiy^i)2]+λcoordi=0S2j=0B1ijobj[(wiw^i)2+(hih^i)2]+i=0S2j=0B1ijobj(CiC^i)2+λnoobji=0S2j=0B1ijnoobj(CiC^i)2+i=0S21iobjcclasses(pi(c)p^i(c))2\begin{aligned} & \lambda_{\text{coord}} \sum_{i=0}^{S^2} \sum_{j=0}^{B} \mathbf{1}_{ij}^{\text{obj}} \left[ (x_i - \hat{x}_i)^2 + (y_i - \hat{y}_i)^2 \right] + \lambda_{\text{coord}} \sum_{i=0}^{S^2} \sum_{j=0}^{B} \mathbf{1}_{ij}^{\text{obj}} \left[ \left(\sqrt{w_i} - \sqrt{\hat{w}_i}\right)^2 + \left(\sqrt{h_i} - \sqrt{\hat{h}_i}\right)^2 \right] \\ & + \sum_{i=0}^{S^2} \sum_{j=0}^{B} \mathbf{1}_{ij}^{\text{obj}} (C_i - \hat{C}_i)^2 + \lambda_{\text{noobj}} \sum_{i=0}^{S^2} \sum_{j=0}^{B} \mathbf{1}_{ij}^{\text{noobj}} (C_i - \hat{C}_i)^2 + \sum_{i=0}^{S^2} \mathbf{1}_{i}^{\text{obj}} \sum_{c \in \text{classes}} \left(p_i(c) - \hat{p}_i(c)\right)^2 \end{aligned}

w,hw, hの平方根を取ることで小さいボックスの誤差がより大きく計上される;分類損失は物体を含むセルにのみ適用される。VOC 2007+2012上で約135エポック学習される(バッチ64、モーメンタム0.9、減衰0.0005、ドロップアウト0.5、スケール/平行移動/HSV拡張)。

実験結果

Pascal VOC 2007において、YOLOは45 FPSで63.4% mAP、Fast YOLOは155 FPSで52.7% mAPを達成する — 一方30HzのDPMは26.1% mAP、精度は高いが遅い手法としてはFast R-CNNが70.0% mAP/0.5 FPS、Faster R-CNN(VGG-16)が73.2%/7 FPS;VGG-16ベースのYOLOは21 FPSで66.4%を記録する。誤差分析によると、Fast R-CNNはYOLOに比べ背景誤検出をほぼ3倍起こしやすい(上位検出の13.6%);YOLOでFast R-CNNを再スコアリングすると、VOC 2007のmAPは71.8%から**75.0%**に向上する。VOC 2012テストではYOLOは57.9% mAPを記録し、主に小さい物体(bottle、sheep、tv/monitorでR-CNNより8〜10%低い)で最新技術に劣る。アートワークへの一般化では、YOLOのperson APは持ちこたえる(VOC2007の59.2からPicassoの53.3、People-Artの45へ)のに対し、R-CNNは崩壊する(54.2から10.4、26へ)。

この45 FPSという動作点により、フレーム単位の検出がライブの知覚スタック内で初めて実用的になった。そしてこのファミリーの進化はその位置を保ち続け、Transformer検出器(DETR → RT-DETR)が両軸で越えなければならない基準を確立した。

SLAMにおける意義

物体検出はSLAMパイプラインにセマンティクスを注入する最も安価な方法である。YOLOファミリーのリアルタイム検出器は、動的な物体(人、車両)をマスクして特徴追跡を汚染しないようにするため、物体SLAM(例えばCubeSLAMは2D検出から3Dキュボイドランドマークを構築する)のための物体レベルのランドマークを提供するため、下流タスクのために地図にラベルを付けるために使われる。SLAMシステムがロボットのオンボードコンピュータ上でフレームレートで「画像に何が写っているか」を知る必要がある場合、YOLOは通常最初に手が伸びるツールである — ただし、それはクローズドセットとして設計されている点に注意が必要であり、この限界がGrounding DINOのようなオープン語彙検出器を生み出す動機となった。

関連ノート