YOLO (v1→v11)
Redmon 2016→2024 · 論文
一行要約 — 「You Only Look Once」は物体検出を1回のCNN順伝播で解く単発の回帰問題として再定義し、SLAMシステムがセマンティクスや動的物体の推論に最も一般的に使うリアルタイム検出ファミリーを確立した。
問題
YOLO以前、物体検出は分類器を検出に転用していた:DPMは画像上の全ての位置とスケールに対して分類器をスライドさせ、R-CNNファミリーは領域候補を生成し、それぞれを分類してから、後処理でボックスを精緻化・重複除去・再スコアリングしていた。これらの複雑なパイプラインは遅く — カメラのフレームレートには遠く及ばない — 各コンポーネントが個別に学習されるため最適化も難しかった。ロボティクスには、1回のパスで、動画レートで動作する、単一の学習可能な目的関数を持つ検出手法が必要だった。
手法とアーキテクチャ
- グリッド回帰。 画像はのグリッドに分割され、物体の中心を含むセルがその物体の検出を担当する。各セルは個のボックス — それぞれと、として定義される信頼度を持つ — に加え、そのセルのボックス間で共有される個の条件付きクラス確率を予測する。全出力は単一のテンソルである;Pascal VOCでは、、、によりテンソル(画像あたり98ボックス)が得られる。テスト時のクラス固有スコアはである。
- ネットワーク。 24個の畳み込み層(削減+畳み込み、GoogLeNetに着想を得たもの)に続く2つの全結合層;Fast YOLOは9個の畳み込み層を使う。最初の20個の畳み込み層はのImageNetで事前学習される(top-5で88%);その後、検出はでleaky-ReLU活性化関数(の場合)、それ以外はを用いてファインチューニングされる。
- 多項からなる二乗和誤差損失。 、、そしては、物体を「担当する」予測器(現在最もIOUが高いもの)を選択する:
の平方根を取ることで小さいボックスの誤差がより大きく計上される;分類損失は物体を含むセルにのみ適用される。VOC 2007+2012上で約135エポック学習される(バッチ64、モーメンタム0.9、減衰0.0005、ドロップアウト0.5、スケール/平行移動/HSV拡張)。
- 大域的コンテキスト。 ネットワークは(候補領域のクロップではなく)画像全体を見るため、文脈情報を符号化できる;NMSはR-CNN/DPMのような構造的必要性ではなく、任意のクリーンアップ処理である(+2〜3% mAP)。
- 明記された限界(これが後続バージョンを動機付けた):各セルは2つのボックスと1つのクラスしか予測しないため、密集した小さな物体(鳥の群れなど)は苦手である;ダウンサンプリング後の特徴は粗い;損失は小さいボックスと大きいボックスの誤差を同じように扱う — 位置決め誤差がYOLOの主要な誤差要因だった。
- v1からv11への長い進化の系譜。 後続バージョンはアンカーボックスとマルチスケール予測、より強力なバックボーンと学習レシピ、そして近年の世代ではアンカーフリーのヘッドを追加し、このファミリーをリアルタイム検出の速度・精度のパレート最前線に近い位置に保っている;Ultralyticsのエコシステム(学習、ONNX/TensorRT出力、エッジ展開)は、YOLOがロボティクスにおける既定の検出器として残っている大きな実用的理由である。
実験結果
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のようなオープン語彙検出器を生み出す動機となった。