You Only Look Once(YOLO)は、畳み込みニューラルネットワークに基づくリアルタイム物体検出システムのシリーズである。2015年にJoseph Redmonらによって初めて紹介され、YOLOは幾度かの反復と改良を経て、最も人気のある物体検出フレームワークの一つとなった。「You Only Look Once」という名前は、このアルゴリズムが予測を行うためにニューラルネットワークを通る順伝播を一度だけ必要とするという事実を指しており、R-CNNのような従来の領域提案ベースの手法が単一画像に対して数千回の処理を必要とするのとは対照的である。
YOLOは物体検出を単一の回帰問題として捉え、画像ピクセルから直接バウンディングボックスの座標とクラス確率を予測する。この統合されたアーキテクチャにより、競争力のある精度を維持しながらリアルタイム処理速度を実現し、映像監視、自動運転、ロボティクスなどのアプリケーションに適している。
概要
R-CNNやOverFeatのような従来の手法と比較して、YOLOはモデルを画像の複数の位置やスケールに適用する代わりに、単一のニューラルネットワークを画像全体に適用する。このネットワークは画像を領域に分割し、各領域に対してバウンディングボックスと確率を予測する。これらのバウンディングボックスは予測された確率によって重み付けされる。
このアプローチは深層学習とニューラルネットワークのアイデア、特にコンピュータビジョンタスクで効果が実証されている畳み込みアーキテクチャから着想を得ている。YOLOの設計は速度と単純さを優先し、局在化精度の一部を大幅な計算効率と引き換えにしている。
OverFeat
OverFeatは、物体の分類と局在化を同時に行う初期の影響力のあるモデルであった。そのアーキテクチャは以下の通りである:
- 画像分類のみのためにニューラルネットワークを訓練する(「分類訓練済みネットワーク」)、例えばAlexNetなど。
- 訓練済みネットワークの最後の層を除去し、可能な物体クラスごとに、最後の層にネットワークモジュールを初期化する(「回帰ネットワーク」)。ベースネットワークのパラメータは凍結される。回帰ネットワークは、物体のバウンディングボックスの2つの角の(x, y)座標を予測するように訓練される。
- 推論中、分類訓練済みネットワークを同じ画像に対して多くの異なるズームレベルと切り抜きで実行する。それぞれについて、クラスラベルと確率を出力する。各出力は対応するクラスの回帰ネットワークによって処理され、クラスラベルと確率を持つ数千のバウンディングボックスが生成される。これらのボックスは、単一のクラスラベルを持つ単一のボックスのみが残るまでマージされる。
OverFeatは検出のためのエンドツーエンド学習の実現可能性を示したが、その多スケール推論手順のために計算コストが高いままであった。YOLOは検出を単一パスで実行することでこれを簡素化した。
バージョン
YOLOシリーズには2つの部分がある。元の部分にはYOLOv1、v2、v3が含まれ、すべてJoseph Redmonが管理するウェブサイトで公開された。後のバージョン(v4以降)は他の研究者によって開発され、別々に保守されている。
YOLOv1
2015年に紹介された元のYOLOアルゴリズムは、画像をS x Sのグリッドセルに分割する。物体のバウンディングボックスの中心がグリッドセル内に収まる場合、そのセルはその物体を「含む」とされる。各グリッドセルはB個のバウンディングボックスとそれらのボックスの信頼スコアを予測する。これらの信頼スコアは、モデルがボックスに物体が含まれるとどの程度確信しているか、および予測するボックスがどの程度正確であると考えるかを反映する。
より詳細には、ネットワークはS^2個のパッチのそれぞれに対して同じ畳み込み演算を実行する。各パッチに対するネットワークの出力はタプル(p_1, ..., p_C, c_1, x_1, y_1, w_1, h_1, ..., c_B, x_B, y_B, w_B, h_B)であり、ここでp_iはセルが少なくとも1つの物体を含むという条件の下で、セルがクラスiの物体を含む条件付き確率である。項x_j、y_j、w_j、h_jは、セル内に中心を持つj番目の予測バウンディングボックスの中心座標、幅、高さである。複数のバウンディングボックスが予測されるのは、各予測が一種類のバウンディングボックスに特化できるようにするためである。項c_jは、各バウンディングボックスと対応するグラウンドトゥルースとの予測交差オーバーユニオン(IoU)である。
ネットワークアーキテクチャは24の畳み込み層に続いて2つの全結合層を持つ。訓練中、グラウンドトゥルースのバウンディングボックスを含む各セルについて、グラウンドトゥルースとのIoUが最も高い予測バウンディングボックスのみが勾配降下に使用される。選択されたボックスの座標はグラウンドトゥルースに近づくように訓練され、正しいクラスのクラス確率は1に向かって訓練され、他のクラス確率はゼロに向かって訓練される。グラウンドトゥルースの物体を含まないセルは信頼スコア損失のみに寄与し、信頼度をゼロに向かって押し下げる。
YOLOv2とYOLOv3
2016年に公開されたYOLOv2は、バッチ正規化、アンカーボックス、およびマルチスケール訓練戦略を導入し、再現率と局在化精度を改善した。また、カスタムのdarknet-19アーキテクチャを使用し、GPU上で最大67フレーム毎秒で動作できた。2018年に公開されたYOLOv3は、3つの検出スケールを持つ特徴ピラミッドネットワークを追加し、小さな物体の処理を改善した。より深いdarknet-53バックボーンとクラス予測のためのロジスティック回帰を使用した。
後のバージョン
2020年にAlexey Bochkovskiyらによって公開されたYOLOv4は、CSPDarknet53、PANet、およびモザイクデータ拡張を組み込み、最先端の速度と精度のトレードオフを達成した。YOLOv5、YOLOv6、YOLOv7、およびYOLOv8が続き、効率性、エッジデバイスへの展開、および検出を超えたタスク(インスタンスセグメンテーションやポーズ推定など)のサポートが改善された。これらの後のバージョンは、YOLOv5とYOLOv8のUltralyticsなど、異なるグループによって保守されている。
アプリケーションと影響
YOLOはそのリアルタイム能力により、産業界と学界で広く採用されている。Tesla Autopilotでは自動運転における物体検出に、Waymoの自動運転車両では、Cruiseのロボタクシー車両群で使用されている。また、Amazon Web Services RekognitionやGoogle Cloud Visionでの画像分析にも利用されている。人工知能研究では、YOLOは新しい検出方法を比較するためのベースラインとして機能し、多くの変種や拡張に影響を与えてきた。
このフレームワークの効率性は、Apple、Samsung Electronics、Qualcommのデバイスを含む組み込みおよびモバイル展開での人気を高めている。そのオープンソース実装、特にdarknetとPyTorchバージョンは、機械学習教育とプロトタイピングでの広範な使用に貢献している。
制限と将来の方向性
その強みにもかかわらず、YOLOには制限がある。Faster R-CNNのような二段階検出器と比較して、小さな物体や重なり合うインスタンスに苦労することがある。その単一パスの性質はまた、反復的な洗練を必要とするタスクに対して柔軟性を低下させる。研究者は、注意機構やトランスフォーマーベースのバックボーンなどのアーキテクチャ変更を通じてこれらの問題に対処しており、ビジョンタスクにおけるトランスフォーマーと大規模言語モデルのトレンドに沿っている。
将来の研究は、精度と速度のトレードオフの改善、ドメインシフトへの堅牢性、および深度やライダーなどの他のモダリティとの統合に引き続き焦点を当てている。AWS TrainiumやCerebrasシステムなどの専用アクセラレータを含むハードウェアが改善されるにつれて、YOLOベースのモデルは生成AIパイプラインなどでのリアルタイム知覚に関連性を保ち続けると期待されている。