SSD(Single Shot MultiBox Detector)は、1回のネットワーク処理で「物体がどこにあるか」と「それが何か」を同時に予測する物体検出手法です。この記事では、2段階の従来手法との違い、マルチスケール特徴マップとデフォルトボックスという2つの柱を初心者向けに解説します。

📖 ひと言でいうと

SSDは、画像を1回ネットワークに通すだけ(Single Shot)で、複数の候補枠(MultiBox)に対して物体の位置とクラスをまとめて予測する1ステージ型の物体検出モデルです。例えるなら、従来手法が「まず怪しい場所をリストアップし、その後1か所ずつ確認しに行く」二度手間方式だったのに対し、SSDは「一目見た瞬間に、どこに何があるかを一括で答える」方式です。この一括処理のおかげで高速になり、リアルタイム検出が可能になりました。

🖼 1枚でわかるSSD

SSD — 1ステージの高速物体検出
  • 正式名称 — Single Shot MultiBox Detector
  • 方式 — 単一ネットワークで位置とクラスを同時予測(1ステージ検出)
  • 土台 — VGG-16などの分類用CNNの全結合層を外し畳み込み層を追加
  • 工夫① — マルチスケールの特徴マップで大小さまざまな物体に対応
  • 工夫② — サイズ・アスペクト比の異なるデフォルトボックス(アンカーボックス)
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

SSD(Single Shot MultiBox Detector)の略称であり、物体検出の手法の一つである。従来の物体検出手法は、画像内の物体候補領域を生成し、その後に各領域を分類する二段階のプロセスを採用していた。これに対し、SSDは単一のニューラルネットワークで物体の位置とクラスを同時に予測する。これにより、処理速度が向上し、リアルタイムでの物体検出が可能となる。SSDのネットワーク構造は、一般的に画像分類で用いられる畳み込みニューラルネットワーク(CNN)を基盤としている。具体的には、VGG-16などの既存の画像分類モデルの全結合層を除去し、代わりに複数の畳み込み層を追加することで、異なるスケールの特徴マップを生成する。これらの特徴マップ上で、異なるサイズやアスペクト比のデフォルトボックス(アンカーボックス)を設定し、各ボックスに対して物体の存在確率と位置オフセットを予測する。SSDの特徴として、マルチスケールの特徴マップを活用する点が挙げられる。これにより、小さな物体から大きな物体まで、さまざまなサイズの物体を効果的に検出できる。さらに、デフォルトボックスの設定により、異なるアスペクト比やスケールの物体にも対応可能である。一方で、SSDには小さな物体の検出精度が低下する傾向があるという課題も指摘されている。これを改善するために、データ拡張やハードネガティブマイニングといった手法が導入されている。

長い説明ですが、骨子は「二段階(候補領域の生成→分類)だった物体検出を、1つのネットワークによる同時予測に置き換えて高速化した」という1点です。そのための道具立てが、VGG-16ベースのネットワーク、マルチスケール特徴マップ、デフォルトボックスの3つだと整理すれば読みやすくなります。

🔍 しっかり理解する

2ステージ検出と1ステージ検出

R-CNN系(Fast R-CNN、Faster R-CNNなど)は、「物体がありそうな候補領域を出す」処理と「各候補を分類する」処理を分けた2ステージ方式です。精度は高い一方、処理が重くなりがちでした。SSDやYOLOは、候補領域生成という独立したステップを持たず、画像全体から直接、位置とクラスを予測する1ステージ方式で、速度面で大きな利点があります。

🅰 2ステージ検出(Faster R-CNNなど)
  • ①候補領域を生成 → ②各領域を分類の二段構え
  • 精度が高い傾向
  • 処理が重く、速度は不利になりやすい
🅱 1ステージ検出(SSD・YOLO)
  • 単一ネットワークで位置とクラスを同時予測
  • 高速でリアルタイム処理向き
  • 小さな物体の検出は苦手になりやすい

マルチスケール特徴マップ

SSDの土台は、画像分類で実績のあるVGG-16です。ただし分類用の全結合層は取り除き、その後ろにサイズが段階的に小さくなる畳み込み層を追加します。すると「大きな特徴マップ(細部が残っている)」から「小さな特徴マップ(広い範囲を要約している)」まで、複数のスケールの特徴マップが手に入ります。SSDは、大きな特徴マップでは小さな物体を、小さな特徴マップでは大きな物体を検出するというように、複数の特徴マップそれぞれの上で予測を行います。これがマルチスケール検出です。

デフォルトボックス(アンカーボックス)

各特徴マップの各位置には、あらかじめサイズやアスペクト比(縦長・横長・正方形など)の異なる複数の基準枠=デフォルトボックスが敷き詰められています。ネットワークは、ボックスごとに「そこに物体がある確率(クラスごとのスコア)」と「基準枠から実際の物体枠へのズレ(位置オフセット)」を予測します。ゼロから枠の座標を当てるのではなく、基準枠からの微修正として予測するため、学習が安定しやすくなります。

💡 具体例で考える

SSDのようなリアルタイム物体検出が活きる典型例が、走行中の車両からの周囲認識です。前方カメラの映像から歩行者・車・標識を毎フレーム検出するには、1枚の画像を素早く処理できる1ステージ検出器が向いています。また、工場の検品ラインでベルトコンベア上を流れる製品から不良品や異物を検出する用途でも、止まらず流れる対象への即時処理が求められるため、SSD系の手法が採用しやすい構図です。

一方で公式テキストにあるとおり、SSDは小さな物体の検出精度が低下する傾向があります。これを補うために、学習画像を拡大・縮小・切り抜きして多様なサイズの物体を経験させるデータ拡張や、背景の誤検出のうち「間違えやすい難しい例」を重点的に学習させるハードネガティブマイニングが導入されています。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 記憶装置のSSDとの混同 — 文脈がまったく異なりますが、略称が同じなので試験文中では「物体検出のSSD=Single Shot MultiBox Detector」だと即座に切り替えられるようにしましょう。
  • YOLOとの混同 — どちらも1ステージの高速検出器です。SSDは「マルチスケールの特徴マップ+デフォルトボックス」、YOLOは「画像をグリッドに分割して各セルが予測」という仕組みの違いで区別します。
  • 「SSDは2ステージ手法」は誤り — 2ステージなのはFaster R-CNNなどのR-CNN系です。SSDはそれを1段に統合して高速化した手法です。
  • セグメンテーションとの混同 — SSDの出力はバウンディングボックス(矩形)であり、ピクセル単位の塗り分け(セグメンテーション)は行いません。

📝 試験でのポイント

💡 ポイント
  • 「単一のニューラルネットワークで物体の位置とクラスを同時に予測する手法」という説明からSSD(またはYOLOとの2択)を選ばせる出題が想定されます。
  • SSDの固有キーワードは「VGG-16ベース」「マルチスケール特徴マップ」「デフォルトボックス(アンカーボックス)」。この3点が出たらSSDです。
  • 課題として「小さな物体の検出精度が低下しやすい」、対策として「データ拡張」「ハードネガティブマイニング」がセットで問われる可能性があります。
  • 2ステージ(Faster R-CNN系)と1ステージ(SSD・YOLO)の分類問題は頻出パターンとして押さえておきましょう。

📚 まとめ

💡 ポイント
  • SSDはSingle Shot MultiBox Detectorの略で、単一ネットワークで物体の位置とクラスを同時予測する1ステージ型の物体検出手法です。
  • 候補領域生成→分類という従来の二段階プロセスを一括化し、リアルタイム検出を可能にしました。
  • VGG-16などをベースに複数スケールの特徴マップを作り、デフォルトボックスを使って大小さまざまな物体を検出します。
  • 弱点は小物体の検出で、データ拡張やハードネガティブマイニングで補います。