SSD: 複数スケール向け,1ステージ型の物体検出CNN

記事を共有する:

1. SSD (Single Shot multibox Detector)とは [概要]

SSD (Single Shot multibox Detector)とは,アンカーベースの1ステージ型のCNN物体検出ネットワークの初提案手法の1つである [Liu et al. 2016].Single Shot multibox Detectorの名前が示す通り,SSDは「複数クラス識別済みの,N個の物体ボックス(Multibox [Erhan et al., 2014])」を,「1枚の入力画像から一度に(= single shot)」検出する.YOLO v1 のすぐ後に提案された手法である.

YOLOと同じく,全ての1ステージ型の物体検出ネットワークでも,画像に映っている全ての物体を一気に推定する「1ショット構成」で処理が行われる.

SSDは,ネットワーク全体がFCN化されており,後半層では,複数スケール特徴マップから構成されるFeature Pyramid Networkから,各スケールごとの個別のストリームにおいて,特徴マップ上の全点のデフォルトボックス群に対して,「物体バウンディングボックスのオフセット回帰」・「物体クラスC個の尤度」の推定を行う.

この記事では,(SSDと実は対称構成にある) Faster R-CNNとの比較も大事にしながら,SSDの紹介を行う記事構成とした.その比較を通して,Faster R-CNNシリーズの理解も,同時に高まるはずだ.

初心者向けオススメ書籍まとめ記事(2022春版)でも紹介している,以下のチームカルポの書籍が,SSDについて詳しい紹介 + 実装をたどれるのでオススメしておく:

以下は,参照した記事のリンク先のTDSの記事にも埋め込んである,「SSDを車載前方映像で試した動画」である.

動画1:SSDの動画への適用結果例(車載前方動画)

この動画のように,SSDは(直前に先に発表された)YOLO v1 [Redmon et al., 2016] と同様に,リアルタイムでの多クラス物体検出を,CNNで初めて実現した手法の1つである.SSDは,YOLO v1と似たような手法であるが,FPNで得た特徴に対して,複数スケールで個別に検出に検出器(=ヘッド)を用意している点が異なり,そのぶんだけYOLO v1 よりも性能・効率性で少し勝っている.

当時の最先端の物体検出手法であった,(2ステージ型の)Faster R-CNN [Ren et al., 2015] に対して,SSDは速度・精度の両面で少し上回った.ただし,SSDの後すぐに YOLO v2 [Redmon and Farhadi, 2017] も登場して性能を更に上回る.こうして,YOLO v1, v2 とSSDの2手法のリアルタイム手法の登場を通して,1ステージ型の物体検出に注目が当たるきっかけとなった.

1.1 記事の構成

以降は,以下の構成でSSDの中身について紹介する:

  • 2節 SSDの詳細
    • 2.1 複数スケールの特徴マップ
    • 2.2 スケールごとの検出器
    • 2.3 デフォルトボックスのアスペクト比.
  • 3節 SSDの損失関数と学習
    • 3.1 複数の正解ボックスと対応付け
    • 3.2 SSD の合成損失関数
    • 3.3 その他の学習テクニックの使用
  • 4節 YOLO, SSDの当時の課題
  • 5節 まとめ

1.2 SSDの概要と特徴

SSD (Single Shot multibox Detector) を用いた物体検出
図1. SSD (Single Shot multibox Detector) を用いた物体検出

SSD [Liu et al. 2016] (ECCV2016) は,直前のCVPR2016で発表された Yolo v1 [Redmon et al., 2016] を元に発展させたような,1ステージ型のCNN物体検出器を提案した.

具体的には,SSD300 モデルは,以下の前後半の処理(図1)から構成されている:

処理手順

  1. [特徴マップ生成 (図1 左半分)]
    • (300 x 300) サイズのカラー画像を入力
    • VGG-16で特徴マップを生成していく.
  2. [各スケールで独立した検出 (図1 右半分)]
    • そのVGGNetで畳み込みを繰り返す中盤(Conv4層)以降で
    • 各スケールサイズに沿ったサイズの物体Bounding Boxを検出する.
    • 各スケールの特徴マップのアンカー位置 $(x,y)$ 周辺に配置した,$k$ 種類のデフォルトボックス(default box)内の特徴マップをもとに,畳み込み検出器で以下の2つを出力:
      1. 各クラス信頼度確率
      2. Bounding Box修正量の回帰
  3. [後処理]

1.3 SSDの要点: Faster R-CNN の逆を提案

Faster R-CNN から見た際の,SSDの2つの変更点についておさえておきたい:

Faster R-CNNSSD
【変更点1】
2ステージ
→ 1ステージ
2ステージに分割して学習1ステージに統合して学習
【変更点2】
単一スケール特徴
→複数の個別スケール特徴
統合された
単一スケール特徴マップ.
複数スケールのアンカーから検出
複数スケールの特徴マップに
分割
各スケールごとに個別に検出.
(※ つまりは終盤設計がFPN 形式)

この表で両者を比較すると,以下のことがわかる:

重要】SSDは「統合 v.s. 分割」の観点で,Faster R-CNN の逆の構成 とみなせる.

※ 論文中にも書かれているように,SSDの特徴マップを単一スケールにすれば,YOLO v1 とほぼ等価なモデルになる.

よってこの記事では,直前の先行提案であるYOLO v1と比較するのではなく,対称的な鏡同士の関係にあるFaster R-CNN と比較していくことで,SSDへの理解を深めてもらう構成にしてある(普通は,Yoloの発展型として,SSDを紹介するのが通例).

SSDは,構成部品が多いため,初見時には複雑そうに見える.しかし,表の2点の違い(対称性)を理解したうえで,元論文やこの記事,ならびにその他のSSDの解説を読むと,SSDの設計意図も楽に理解できると思う.

※ 本来は,SSD著者自身が,論文名やabstract・conclusionでこの2者間の対称に気づいたうえで,論文中でも,この記事のように簡潔に違いを示しておいてもらえると,SSD論文はもっと読みやすくなっていたはず.

1.3 SSDの特徴と貢献

2節以降に詳細を紹介する準備として,SSDモデルの「特徴と貢献」をまず列挙しておく:

  • ほぼ並行研究のYolo v1と同じく,リアルタイム動作する初のCNN物体検出器であった.
    • SSD300 は 46fps, SSD512 は 22fpsで動作(Faster R-CNN は 5~7 fps程度).
  • 「各スケールの特徴グリッドに配置された大量のデフォルトボックス」と「正解ボックス」の間での損失を用いる.
    • Fine-tuningSSDネットワーク全体を直接学習する(Faster R-CNNのように,前段の領域提案ネットワークで,先に領域候補を限定させたりはしない):
    • デフォルトボックス郡から,正解BBoxへの「複数クラス識別 + BBox回帰」2タスクを直接学習する.
  • 後半層のFPN構造では,各スケールの特徴マップで,各スケールを担当する検出器のパスで,それぞれ独立に(各スケールの物体の)検出を行う(2.1, 2,2節)
    • 1つのデフォルトボックスから2個以上同時に検出できるように,学習時に複数の正解ボックスとの対応付け処理を行う(3.1節).
  • 各スケールの検出器は畳み込み層で構成しているので,SSD全体はFCN構造になっている.

2. SSD のモデルの詳細

SSD (Single Shot multibox Detector)のネットワーク構造
図2. SSD (Single Shot multibox Detector)のネットワーク構造

SSDは,図2のようなネットワーク構造をしている.VGG-16を序盤の特徴抽出バックボーンとして配置されており,後半はFPN構造になっており,スケールごとの検出器ヘッドが6個接続されているマルチヘッド構成である.

2.1節から,このネットワーク構造を用いたSSDのテストと学習の詳細をみていく.繰り返すが,1.1,1.2節で述べたように,「SSDが Faster R-CNN の鏡である」ことを知っていると理解が簡単である.

したがって,まずは Faster R-CNNの2ステージの中身について,簡単にだけ復習として以下にまとめておきたい:

  • 前半ステージ [全体画像から,候補物体検出器を学習]
    • スライディングウィンドウを候補から,領域提案ネットワークを2タスク学習:
      • タスク1:2クラス(物体 or 背景)の識別
      • タスク2:スライディングウィンドウ各位置のboxからの,領域提案正解BBoxへの修正量の回帰.
  • 後半ステージ [領域提案内の特徴だけから,マルチクラス検出]
    • 領域提案でROI Poolingした特徴マップから,アンカーボックス9個に対して2タスクを学習:
      • タスク1:複数物体クラスを識別(Pascal VOCの20~30クラス程度).
      • タスク2:アンカーボックスに対して,正解ボックスへの修正量を回帰.

このFaster R-CNNの構造を理解済みとの前提のもとで,2節,3節では論文の節通りの同じ順で,SSDの各部品の詳細を見ていく.

2.1 複数スケールの特徴マップ

SSDでは,VGG-16のConv4_3 層以降の特徴マップのうち,複数スケール$s$個の特徴マップを,検出に用いる.各検出器では「担当する入力特徴マップの空間スケールに合った空間サイズ(デフォルトボックス)内の特徴から『クラス識別 + BBox修正』を行う」検出ヘッドを接続する(図2).SSD300モデルでは $s = 6$ 個の検出器を用意する(検出ヘッドの詳細は 2.2節).

検出BBoxのPriorであるとして,特徴マップ上の各アンカー周辺に配置するアンカーボックスFaster R-CNN での呼び方)を,SSDではデフォルトボックス(default box)と呼ぶ.デフォルトボックスは,特徴マップ上のアンカー位置で, $k$ 個の異なるアスペクト比のPriorボックスを用意する(2.3節).

[SSD] 複数スケールの特徴マップで分担した,複数スケールの物体検出
図3. [SSD] 複数スケールの特徴マップで分担した,複数スケールの物体検出

図3は,VGG-16の3つの層の特徴マップを,元の画像サイズ(300,300)に合わせて並べたものの上に,デフォルトボックス(赤の矩形)を,少しだけ例示したものである.各特徴マップ上に示した赤色サイズのBBoxが,各セル(特徴グリッドの中心座標)が担当するデフォルトボックスである.それを基準サイズとする$k$個 (4個 or 6個) のアスペクト比において,特徴マップの全てのセル $(x,y)$に対し,デフォルトボックスを (基準ボックスを含めて) $k$個それぞれ配置する

※ 詳しくは,SSD論文 [Liu et al. 2016] の図1も,よく参照していただきたい.

SSDの「デフォルトボックス」は,入力画像に対する位置が,(ユーザーが事前に決めた)既定の配置で固定され,1ステージ処理で出力のバウンディンボックスの予測が一気に行われる.それもあって,2ステージ型Faster R-CNN の前半・後半ステージ双方向けの概念である「アンカーボックス」とは,別物であると呼び名で区別する意味で,「デフォルト(既定の,初期設定の)ボックス」と呼ぶようにしたと,管理人は憶測・理解している.とはいえ,結局は予測するPriorボックス群という意味で,両者同じ役割である.

2.2 スケールごとの検出器

2.1節で述べた$s$個のスケールの特徴マップに対して,SSDでは畳み込み層よる検出器ヘッドを用意し,スケールごとに設定したデフォルトボックス群から,それぞれ独立にスケールに即した検出処理を行う(図1, 図2).既に述べてきたように,これは(SSDの論文ではまだその名前がなかったが)実質的にはFeature Pyramid Network構造(スキップ接続は無し)を形成しており,複数スケール特徴で個別に推定を行う識別サブネットワークである.

ただ,ヘッドも畳み込み層のみで全結合を使わないので,これによりSSD全体が完全畳み込みネットワーク(FCN)を構成することにもなる.すなわち,Faster R-CNNYOLOと違って,全結合層は一切使用しない.よって,デフォルトボックス群に対する出力も,畳み込み層で,3次元配列マップの表現のまま出力を推定する(2.2.1節で詳細).

具体的には,VGGのように,[3 x 3] の小さな畳み込みカーネルにより,各スケールの検出器ヘッドを構成している.最終的に $p = k \times ( C \text{クラスの信頼度スコア} + 4 \text{オフセット}) $ チャンネルを出力したい.よって,各検出器層には,$3\times 3 \times p$ の大きさの畳込み層を使用する.

SSD300 (図2)の場合,以下の6スケールの畳み込み層検出器ヘッドを用意し,対応する画像スケールのBBoxのみを個別に検出する(図1):

入力特徴マップ のサイズデフォルトボックス識別器(畳み込み層)
Conv4_338 x 38 x 512チャンネル38 x 38 x 4 = 5776[3 x 3] x 4 x [C + 4オフセット]
Conv7 19 x 19 x 1028チャンネル19 x 19 x 6 = 2166[3 x 3] x 6 x [C + 4オフセット]
Conv8_210 x 10 x 512チャンネル10 x 10 x 6 = 600[3 x 3] x 6 x [C + 4オフセット]
Conv9_25 x 5 x 256チャンネル5 x 5 x 6 = 150[3 x 3] x 6 x [C + 4オフセット]
Conv10_23 x 3 x 256チャンネル3 x 3 x 4 = 36[3 x 3] x 4 x [C + 4オフセット]
Conv11_21 x 1 x 128チャンネル1 x 1 x 4 = 4[3 x 3] x 4 x [C + 4オフセット]
表1. 各畳み込み層時点での,サイズの関係

このヘッド群により,各デフォルトボックスの出力数と同じ, k x [C + 4] チャンネル畳み込み層を,それぞれの特徴マップスケールで学習している.したがって,合計で,8732個 (= 5766 + 2166 + 600 + 150+ 36 +4 )のデフォルトボックスに対する結果(= その [C個のクラス信頼度 + 4つのオフセット])を,クラスごとに出力する.

最後に,各スケールでの検出結果全てをまとめて NMS(非極大値抑制)で処理することで,信頼度が極大の,最終的な検出結果バウンディングボックス群のみ残り,最終出力される.

以上のように,大量のデフォルトボックス(=ボックスサイズとアスペクト比の組み合わせ)について,なるべく効率的に検出するのが,SSDの中心的仕組みである.

2.2.1 FCNの登場との関連

この当時2014~2016年ごろ,セマンティックセグメンテーション人物姿勢推定などの別のタスクの画像認識CNNでは,FCN化されたネットワーク(とりわけ砂時計型のEncoder-Decoder)で,全画素位置に対して出力ベクトルを推定することが一般的になり始めていた.

それらのネットワーク構造の出力でも,入力画像と同じ空間サイズ $(w \times h)$で,各画素の特徴ベクトル深さが$C$チャンネルのマップに予測結果が出力される.その仕組みがFCN(Fully Concolutional Network)の論文の登場により,物体検出においてもSSDやYoloなど1ステージ型物体検出でも導入されはじめたというのが,この当時の状況であった.

Faster R-CNNでは,ステージ1で出力した領域提案(1000~2000個)の全てに対して,ステージ2のFast R-CNNを順伝搬する計算コストは地味に少し高く,リアルタイム化までは実現できていなかった.それに対して,1ステージ手法のSSDでは,検出器まで畳み込み層化されたFCN構成で処理も速く,検出精度を保ちながらリアルタイム化を達成した.

ただし,2ステージ型でも特定のタスクでは別のメリットが生じて,良い手法が登場していく(※ Mask R-CNNなど).つまりは「1ステージ型が,必ずしも全ての問題に対して最適というわけではない」という点に注意されたい(4節のまとめで,1ステージ型のデメリットについても少し述べる).

2.3 デフォルトボックスのアスペクト比.

SSDでは,各スケールの特徴マップ上で,そのスケールに現れそうな大きさの物体サイズの k = 4 or 6 種類のアスペクト比のサイズで,デフォルトボックスを配置する.そして(Faster R-CNN と同様に)それらのデフォルトボックスに対応した正解ボックス(2.1説)への(中心のx, 中心のy ,幅 ,高さ)の4種の修正量を回帰する(3.2.1節).

アンカーボックス方式は,「複数スケールの特徴マップ上で,各セル位置$(x,y)$に$k$種のアスペクト比のデフォルトボックスを配置する」ことにより,大量の候補物体サイズに対する検出処理を,(離散化し)効率的に行うことができている.

このアンカーボックス/デフォルトボックス方式の処理は,古典的な単一クラス物体検出における「複数スケール画像ピラミッドで,密なスライディングウィンドウから,各位置で密に2クラス識別(SVMやAdaboost)を行う」という処理を改善させて,「スライド位置を疎にして,スキップした中間の識別していない部分は,バウンディングボックス回帰で助けてもらうようにした」と見なすこともできる.

3. SSDの学習

3.1 複数の正解ボックスと対応付け

学習時に,どのデフォルトボックスが,どの正解ボックスに対応しているかを決めて対応づけし,他を除外する必要がある.Faster R-CNNの損失では,Multibox [Erhan et al., 2014] と同じく,IoU値(Jaccard係数)を用いて「最も重なっているベストの正解BBox」にのみ対応づけを行い,その1ボックスとの損失を用いた.

しかし,SSDでは,各特徴マップ上において,同スケールの $k$ 種類のアスペクト比でデフォルトボックス群を密に配置する.ゆえに「正解ボックスに最も重なっている(= IoUが最も高い)デフォルトボックスだけを対応付けする」ことが難しい.また,前半の領域提案ステージがないSSDでは,1対1の厳格なボックス対応づけをして学習すると,2物体以上が遮蔽する画像での推定が苦手になってしまう(そのうち1つにしか対応付けしないので,2つ目以降を学習できない).

そこでSSDでは,1つのデフォルトボックスに対して,複数の正解ボックスを(おおらかに)対応づけることにした.具体的には,(NMSで用いる) IoU 値(Jaccard係数) が,0.5 (50%)以上の正解ボックスを,複数個全て1つのデフォルトボックスへと対応づける.

これにより「ベストの正解ボックスとの対応づけを頑張って行う」必要がなくなり,学習のための正解ボックスとの対応づけを単純な処理に変更できた.また,複数の重なり合う「隣接デフォルトボックス群」の全てに対して,大きなスコアが推定されるよう学習できる利点も生まれた.

3.2 SSD の合成損失関数

まず,$i$番目のデフォルトボックスが,$j$番目のクラス$p$である正解ボックスと「対応している(1)」か「対応していない(0)」かを示す,2値の指示変数を$x_{ij}^p = {1,0}$とする.3.1節の通り,2つ以上と対応付けして良いとするので,$x_{ij}^p \leq 1 $である.また,$c_i^p$をクラス$p$のクラス信頼度とする.

SSDは,信頼度(confidence)損失(3.2.1節)と領域検出(localization)損失 (3.2.2節)の,2タスクの損失を合成した,以下のMultibox損失関数を用いてend-to-end 学習 を行う:

\[
\mathcal{L}_{ \text{multibox} }(x,c,l,g) = \frac{1}{N} \left[ \mathcal{L}_{\text{conf}}(x,c) + \alpha \mathcal{L}_{\text{loc}}(x,\hat{\bm{l}},\bm{g}) \right]\tag{3.1}
\]

添字の$i$で和をとっている表現なので,式(3.1)にも,次の式(3.2),式(3.3)中にも表出して来ないのだが,各スケールの特徴マップ(各ヘッド)で計算した損失の全てが,この損失に含まれる点に注意.

3.2.1 クラス信頼度 損失

Faster R-CNN では,この合成損失に相当するものを「 (1) 領域提案ネットワークの学習」,「(2) Fast R-CNNの学習」,の2ステージの学習の両方に使用していた.それをSSDで「2問題に分解せずに式(3.1)で一括に学習する」のと比較すると,Faster R-CNNではこの損失の総量を2つのネットワークに分割して学習をおこなうモデルとみなせる.

一方,各アンカーボックスの$N$クラス識別の損失には,素直に2クラス分類のSoftmax+ 交差エントロピー損失を用いる:

\begin{equation}
\mathcal{L}_{\text{conf}}(x,c) = -\sum_{i \in Pos}^{N} x_{ij}^p \log(\hat{c}_i^p)- \sum_{i \in \text{Neg}}^{N} x_{ij}^p \log(\hat{c}_i^p) \tag{3.2}
\end{equation}

SSDが学習する複数クラスのうち,対象のクラス$c$の正解ボックスのクラスだけ$\text{Pos}$ラベルとし,他の全クラスは$\text{Neg}$ラベルとして,この損失を計算する.

3.2.2 領域検出(Localization) 損失

Localization損失では,対応づいた予測ボックス$(\hat{\bm{l}})$と正解(ground truth)ボックス$(\bm{g})$の間で,Faster R-CNNSmooth L1損失 [Ren et al., 2015] を計算する:

\begin{equation}
\mathcal{L}_{loc}(x,\hat{\bm{l}},\bm{g}) = \sum_{i \in {pos}}^{N} \sum_{m \in \{c_x, c_y, w, h\} } x^{k}_{ij} \text{smooth}_{L_1}( \hat{\bm{l}}_j^m – \bm{g}_i^m )\tag{3.3}
\end{equation}

この損失により,デフォルトボックスの4値「ボックス中心座標 $(c^d_x,c^d_y)$,幅 $w^d$,高さ$w^d$」の予測値 $\hat{\bm{l}}$ に対する,オフセット修正量 $\Delta \bm{l} = (\Delta c_x, \Delta c_y,\Delta w,\Delta h)$ 回帰する.

テスト時には,順伝搬の結果として,デフォルトボックスごとに予測したオフセット $(\delta c_x, \delta c_y,\delta w,\delta h)$ と,そのデフォルトボックスの座標/幅/高さ $(c^d_x, c^d_y, w^d, h^d)$ をもとに,Faster-R-CNN と同じ再パラメータ化(R-CNNの3.1節)を使用して,最終的なROIボックスの予測値 $\hat{\bm{l}}=(\hat{c}_x, \hat{c}_y, \hat{w}, \hat{h})$ を算出する:

\begin{align}
\hat{c_x} = c^d_x + 0.1 \Delta c_x \times w^d \\
\hat{c_y} = c^d_y + 0.1 \Delta c_y \times h^d \\
\hat{w} = w^d \times \exp(0.2 \Delta w) \\
\hat{h} = h^d \times \exp(0.2 \Delta h) \tag{3.4}
\end{align}

※ (2022/4/26追記) 係数の0.1, 0.2は,中心値と縦横サイズの,重みづけを行うハイパーパラメータprior_varianceの,github上での初期(固定)値に相当する (公式github上での著者による回答を参照).論文中にこの式の説明は一切出ていないので,正確にSSDを自力で再現実装したい場合は,元のcaffeの公式コードで書いてあるこの(3.4)式に合わせる必要がある.著者が2022春版・初心者向け書籍ベスト7で薦めたチームカルポの本 物体検出/GAN/VAE編(2.7節)や,小川氏のつくりながら学ぶ!の本(2-5節)などでも,係数0.1, 0.2の解説がなしに,(3.3)式の提示が急に行われている.Localization ロス関数内ではなくこの「再パラメータ化」側で,2者間の重みづけが行われていることがポイントである.

3.3 その他の学習テクニックの使用

SSDの学習時には,典型的な物体検出むけの精度向上テクニックであるハードネガティブマイニングと,CNNの汎化性能向けのデータ拡張も行なっている.特に,SSDやYoloは,特徴マップ間やセル間に,デフォルトボックスがうまく配置できていない「はざま」があるので(図1の真ん中の猟師がその例),画像上の物体の配置やスケールを,データ拡張で増やすことは有効である.

4. YOLO, SSD の当時の課題

YOLO v2 や SSDで,とりあえずCNNベースでリアルタイムに多数の(一般的な)物体クラスを物体検出できるところまでは到達した.しかし,この時点のこれらのモデルには,次の主要な2つの苦手とする状況があった:

  1. 複数スケールで検出できるモデルが学習できない(小さい物体や,大きい物体の検出が苦手)
  2. 密に,複数の物体が遮蔽している状況が苦手で,その場合はうまく学習・検出できない.

課題1の「複数スケール物体検出(Multi-scale Object Detection)」には,FPN(特徴ピラミッドネットワーク)が提案され,解決が始まる

※ ただしSSDの後半は,スキップ接続はないもののFPN化されていたので,YOLOよりはマルチスケール検出には,ある程度対応できている.

課題2の「密な物体検出(Dense Object Detection)」には RetinaNet (Focal Lossによる学習) の提案から,解決する研究が始まる.

5. SSDのまとめ

初めての1ステージCNN物体検出手法であり,リアルタイム処理化も達成したSSDについて紹介した.Faster R-CNNとは2つの観点で逆の方針をとっており,1ステージに学習を統合して,特徴スケールは複数に分割して処理する方針をとったものがSSDである.従って,SSDをFaster R-CNNと対比して2者間の対称性も考えながら理解することは,Faster R-CNN などの2ステージ型の理解度と応用力向上にも役に立つ.

4節でも触れたが,SSDは1ステージ化で計算効率はよい反面,デフォルトボックスの配置が強力な空間配置のPrior(拘束条件)となりすぎるケースがあるのに加えて,序盤層の低レベル特徴が識別層には欠落しているので「(画像サイズに対して)小さい物体」の検出は苦手である.

関連書籍

References

  • [Erhan et al., 2014] Erhan, D., Szegedy, C., Toshev, A., Anguelov, D.: Scalable object detection using deep neural networks. In: CVPR. (2014)
  • [Liu et al. 2016] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, Cheng-Yang Fu, and A. C. Berg. Ssd: Single shot multibox detector. In ECCV, 2016.
  • [Redmon et al., 2016] Joseph Redmon, Santosh Divvala, Ross Girshick, and Ali Farhadi. You only look once: Unified, real-time object detection. In CVPR 2016,
  • [Redmon and Farhadi, 2016] J. Redmon and A. Farhadi. YOLO9000: Better, Faster, Stronger. In CVPR, 2017.
  • [Ren et al., 2015] S. Ren, K. He, R. Girshick and J. Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, In NeruIPS 2015.

参照外部リンク