画像の中から複数の物体を識別し、その位置を特定する「物体検出」は、コンピュータビジョン分野で最も実用的かつ重要な課題の一つだ。自動運転車が歩行者や標識を認識する場面から、製造ラインでの製品不良検出まで、物体検出アルゴリズムは精度と速度の両方が求められるアプリケーションを支えている。この分野を長らく牽引してきたのが、YOLO(You Only Look Once)、SSD(Single Shot MultiBox Detector)、そしてFaster R-CNNという3つのアーキテクチャファミリーである。それぞれのトレードオフを理解することは、どんなアプリケーションにどの手法が適しているかを見極める上で不可欠だ。
2つのパラダイム:ワンステージ vs ツーステージ
物体検出アルゴリズムは、検出タスクへのアプローチ方法によって、根本的に2つのパラダイムに分けられる。Faster R-CNNに代表されるツーステージ検出器は、まず物体が存在しそうな候補領域を生成し、次に各候補を分類・洗練させる。この2段階のプロセスは、一般的に高い精度をもたらすが、その分計算コストも増大する。一方、YOLOやSSDを含むワンステージ検出器は、ネットワークを一度だけ通過させるだけで、物体のクラスとバウンディングボックスを予測する。これは、精度をいくらか犠牲にする代わりに、劇的な速度向上を実現する。
このアーキテクチャ上の違いが、この分野を形作る根本的なトレードオフ、すなわち「精度 vs 速度」を生み出している。どちらを選択すべきかは、特定アプリケーションの要件に完全に依存する。
Faster R-CNN:精度チャンピオンの座
アーキテクチャ
2015年にShaoqing Renらが発表したFaster R-CNNは、Region Proposal Network(RPN)を導入することで、ツーステージ検出パラダイムを洗練させた。このアーキテクチャは3つのコンポーネントから成る:入力画像から特徴を抽出するバックボーンとなる畳み込みニューラルネットワーク、これらの特徴から候補領域を生成するRPN、そして各候補を分類しバウンディングボックスの座標を微調整する検出ヘッドだ。
RPNは検出ヘッドと畳み込み特徴量を共有するため、以前の領域ベースの手法にあった計算上のボトルネックを解消している。複数スケールとアスペクト比を持つアンカーボックスにより、RPNは様々なサイズの物体に対応できる。
強み
Faster R-CNNは、小さな物体の検出や、非常に異なるスケールの物体が混在するシーンの処理に長けている。ツーステージアプローチにより、有望な領域に計算リソースを集中させることができ、分類精度を向上させる。COCOのような困難なベンチマーク、特にきめ細かな識別が重要なカテゴリで高いパフォーマンスを達成する。
限界
ツーステージアーキテクチャは、本質的にシングルショットアプローチよりも遅い。GPUアクセラレーションを使っても、Faster R-CNNは標準的なハードウェアで通常5〜15フレーム/秒程度しか達成できない。これは多くのアプリケーションには十分だが、高解像度でのリアルタイム映像処理には不十分だ。また、実装とチューニングの複雑さも課題だ。
YOLO:スピードを特徴に
アーキテクチャ
2016年にJoseph Redmonが初めて発表したYOLOは、物体検出を単一の回帰問題として再定義した。数千もの候補領域を調べるのではなく、YOLOは入力画像をグリッドに分割し、各グリッドセルに対してバウンディングボックスとクラス確率を直接、一度のフォワードパスで予測する。このエレガントな再定式化により、初めてリアルタイム物体検出が可能になった。
このアーキテクチャは、複数の世代を経て大きく進化してきた。YOLOv1がパラダイムを確立。YOLOv3は特徴ピラミッドを用いたマルチスケール検出を導入した。Ultralyticsとコミュニティによって開発されたYOLOv5からYOLOv8は、CSPNetバックボーン、パス集約ネットワーク、高度なトレーニング技術などのアーキテクチャ革新を通じて、速度を維持しながら精度を継続的に向上させている。YOLOv8とその派生モデルは、現在の最先端であり、異なる速度・精度要件に対応するため、ナノからエクストララージまでの複数のモデルサイズを提供している。
強み
YOLOの決定的な利点は速度だ。現在のYOLOバリアントは、モデルサイズとハードウェアに応じて30〜160フレーム/秒を処理でき、映像アプリケーションでの真のリアルタイム検出を可能にする。シングルステージアーキテクチャは、強力なグローバルコンテキスト認識も提供する——YOLOは画像全体を同時に処理するため、スライディングウィンドウアプローチよりも背景の誤検出が少ない。Ultralyticsのエコシステムは、トレーニング、デプロイ、最適化のための優れたツールを提供している。
限界
YOLOは、歴史的に小さな物体や、複数の物体が同じグリッドセルを占めるような密集したシーンの処理に苦労してきた。最近のバージョンでは、マルチスケール検出と改良されたアーキテクチャによりこれらの問題は大幅に緩和されているが、非常に小さな物体の検出が不可欠なアプリケーションでは、Faster R-CNNが依然として優位性を持っている。
SSD:中間地点を担う
アーキテクチャ
2016年にWei Liuらが発表したSSDは、YOLOと同様のワンステージアプローチを採用しているが、特徴的なマルチスケール検出戦略を持つ。SSDはベースネットワーク(通常はVGG-16またはよりモダンなバックボーン)の後、徐々に小さくなる特徴マップを使用する。各スケールでデフォルトのアンカーボックスが対応するサイズの物体を検出し、初期のYOLOバージョンよりも自然に幅広いスケールの物体を処理できるようにしている。
このマルチスケールアプローチは、大きな物体は早期の高解像度特徴マップで検出され、小さな物体は後続の低解像度特徴マップで検出されることを意味する——それぞれが適切な空間スケールで動作する。
強み
SSDは、速度と精度の実用的なバランスを提供する。Faster R-CNNよりも高速に動作し、初期のYOLOバージョンよりも効果的に複数の物体スケールを処理できる。アーキテクチャは比較的実装が容易で、多くの本番システムで広く採用されている。SSDのマルチスケール検出は、多様な物体サイズを持つアプリケーションに特に適している。
限界
SSDの小さな物体に対する精度は、Faster R-CNNや最新のYOLOバリアントに劣る。近年、YOLOファミリーほど活発な開発が行われていないため、最新のトレーニング技術やアーキテクチャ革新からの恩恵が少ない。依然として関連性は高いものの、SSDは、より良い速度と精度の両方を達成する新しいYOLOバージョンによって、ある程度取って代わられている。
パフォーマンス比較
物体検出の標準的な評価データセットとなっているCOCOベンチマークでは、3つのファミリーは特徴的なパフォーマンスパターンを示している。ResNeXtのような強力なバックボーンを持つFaster R-CNNバリアントは、特に小さな物体に対して、最も高い平均精度(mAP)を達成する。YOLOv8 LargeはFaster R-CNNに迫る精度を達成しつつ、数倍高速に動作する。SSDは、精度と速度の両方で、これらの中間に位置する。
しかし、ベンチマークのパフォーマンスが常に実際の有用性を予測するわけではない。最適な選択は、具体的なアプリケーションに依存する。
適切なアルゴリズムの選択
リアルタイム映像アプリケーション——監視、スポーツ分析、ドローンナビゲーション、ライブARなど——では、YOLOの速度の利点がデフォルトの選択肢となる。高精度オフライン分析——医療画像、衛星画像、詳細なシーン理解など——では、Faster R-CNNの優れた精度が、その遅さを正当化する。組み込みおよびモバイルデプロイメントにおいては、軽量なYOLOバリアントやSSDが、ハードウェア制約内で最高のパフォーマンスを提供する。
自動運転においては、選択はしばしば特定のサブタスクに依存する:リアルタイムの歩行者・車両検出には速度のためにYOLOバリアントが使用され、詳細なシーン解析には精度のためにツーステージ検出器が使用される場合がある。多くの場合、本番システムでは、それぞれ異なる検出要件に最適化された複数の検出器が並列で使用される。
ビッグ3のその先へ
この分野は急速に進化し続けている。DETR(Detection Transformer)とその派生モデルのようなTransformerベースの検出器は、アンカーボックスや非最大抑制のような手設計されたコンポーネントを排除することで、畳み込みアプローチの優位性に挑戦している。これらのモデルは、よりシンプルなアーキテクチャと競争力のあるパフォーマンスを提供するが、現時点ではより多くのトレーニングデータと計算量を必要とする。速度と精度の根本的なトレードオフは依然として存在するが、効率性のフロンティアは進歩し続けている。