SSD: アンカーベース・1ステージの複数スケール物体検出CNN

1. SSDとは [概要]

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と同じく,1ステージ型は,基本的に全て同様に,映っている全ての物体を一気に推定する1ショット構成になる.SSDはネットワーク全体がFCN化されており,後半層では,複数スケール特徴マップから構成されるFeature Pyramid Networkから,各スケールごとの個別のヘッド(畳み込み層)により,「物体バウンディンボックス・物体クラス」の2つを推定する.

この記事では「(SSDと実は対称構成にある)Faster R-CNNとの比較」を大事にしながら,SSDの紹介を行う.それにより,SSDのみならず,Faster R-CNNの理解も同時に高まる記事構成とした.

以下は,参照した記事のリンク先の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は速度・精度の両面で少し上回った.ただし,その後 改善されたYOLO v2 [Redmon and Farhadi, 2017] が登場し,YOLO v2が SSDを更に上回ることになる.こうして,YOLOとSSDの2手法のリアルタイム手法の登場を通して,1ステージ型の物体検出に注目が当たるきっかけとなった.

1.1 SSDの概要と特徴

SSDの処理フロー
図1 SSDの処理フロー

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

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

  • [特徴マップ生成 (図1 左半分)] 300 x 300 画素のカラー画像を入力とし,VGG-16構造で特徴マップを生成していく.
  • [各スケールで独立した検出 (図1 右半分)] そのVGGで畳み込みを繰り返す中盤(Conv4層)以降において,そのスケールサイズに沿ったサイズの物体BBoxを検出する.
    • 各スケールの特徴マップのアンカー位置$(x,y)$周辺に配置した$k$種類のデフォルトボックス(default box)内の特徴に対し,「各クラス信頼度確率の推定 + BBox(Bounding Box)修正量の回帰」を各ヘッドの畳み込み検出器で出力する.
  • [後処理]:非極大値抑制(NMS)を行い,最終結果を得る.

1.2 SSDの要点:『Faster R-CNN の逆を提案』

ここで,SSD全体を俯瞰しやすくするために「Faster R-CNN から見た際の,SSDの2つの変更点」についておさえておきたい:

  • 【変更点1】分割して2ステージに学習 → 1ステージに統合して学習
    • Faster R-CNN:2ステージで分割して学習.
    • SSD:正解BBoxとの損失を,1ステージで学習
  • 【変更点2】統合された単一スケール特徴マップ → 複数スケールへ特徴マップを分割
    • Faster R-CNN:単一スケールの特徴マップを用いて,複数スケールのアンカーボックスから検出する.
    • SSD複数スケールの特徴マップに分割し,各スケールごとに検出する.(※ つまりは後半の構成がFeature Pyramid Network 形式である)

重要】つまり,SSDは『統合 v.s. 分割』の観点で,Faster R-CNN の逆の構成を提案した手法である.

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

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

SSDは,構成部品が多いため,初見時には複雑そうに見える.しかし,

  • Faster R-CNN と対称的なモデルの提案がSSD.
  • そして,「統合か分割か」を,2点においてFaster R-CNNの逆にした.

ということを理解して,この記事を読んだ後は,SSDの全体の意味を俯瞰しやすくなり,その構成の意図も楽に理解できるようになると思う(※ 本来はSSD著者自身が,論文名やabstract・conclusionでこの2者間の対称に気づき,この記事のように簡潔に示しておいてもらえると,論文自体がもっと読みやすくなっていた).

1.3 SSDの特徴と貢献

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

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

1.4 記事の構成

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

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

2. SSD のモデルの詳細

SSDのネットワーク構造
図2 SSDのネットワーク構造 (SSD300)

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した特徴マップを入力に,K個のアンカーボックスに対して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節).

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

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

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

SSDの「デフォルトボックス」は,入力画像に対する位置が,(ユーザーが決めた)既定の配置で固定される.それもあって,Faster R-CNNの後半ステージ向けのアンカーボックスとは,別物であと区別する意味で「デフォルト(既定の,初期設定の)ボックス」と呼ぶようにしたと,管理人は憶測・理解している(予測するPriorボックス群という意味では両者同じ役割ではあるが).

2.2 スケールごとの検出器

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

ただ,ヘッドも畳み込み層のみで全結合を使わないので,これによりSSD全体が完全畳み込みネットワーク(FCN)を構成することにもなる.すなわち,Faster R-CNNやYOLOと違って,全結合層は一切使用しない.よって,デフォルトボックス群に対する出力も,畳み込み層で,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_3 の特徴マップ(38 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_2 の特徴マップ (10 x 10 x 512チャンネル):
    • デフォルトボックス:10 x 10 x 6 = 600
    • 識別器:3 x 3 x 6 x [C + 4オフセット] の畳み込み層.
  • Conv9_2 の特徴マップ (5 x 5 x 256チャンネル):
    • デフォルトボックス数:5 x 5 x 6 = 150
    • 識別器:3 x 3 x 6 x [C + 4オフセット] の畳み込み層.
  • Conv10_2 の特徴マップ (3 x 3 x 256チャンネル):
    • デフォルトボックス数:3 x 3 x 4 = 36
    • 識別器:3 x 3 x 4 x [C + 4オフセット] の畳み込み層.
  • Conv11_2 の特徴マップ (1 x 1 x 128チャンネル):
    • デフォルトボックス数:1 x 1 x 4 = 4
    • 識別器:3 x 3 x 4 x [C+ 4オフセット] の畳み込み層.

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

こうして大量のデフォルトボックスを配置し,それらの全てに対して畳み込み層で検出を行うことで,画像の物体がとりえる「ボックスサイズ × アスペクト比」のパターンを,なるべく効率的に離散化して網羅して検出するのが,SSDがリアルタイム性を達成したコアの仕組みとなっている.

最後に,各スケールでの検出結果全てをまとめて,非極大値抑制(Non-maximal suppression, NMS)処理することで,最終的な検出結果群を出力する.

2.2.1 FCNの登場との関連

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

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

2ステージ型のFaster R-CNNでは,中間的に2000~3000個ほど推定される「領域提案」ごとに,ROI Poolingでリサンプリングした特徴を用意し,Fast R-CNNで最終出力を推定する.領域提案の全てに対して,Fast R-CNNを毎回Forwardする計算コストは地味に少し高く,リアルタイム化までは実現できていなかった.それに対して,FCN化を達成したSSDでは,検出器まで畳み込み層化され,検出精度を保ちながらのリアルタイム化を達成した.

ただし(この記事では述べないが)後に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] と同じく,Jaccard係数を用いて「最も重なっているベストの正解BBox」にのみ対応づけを行い,その1ボックスとの損失を用いた.

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

そこでSSDでは,1つのデフォルトボックスに対して,複数の正解ボックスを(大らかに)対応づけることにし.具体的には,(NMSで用いる) Jaccard係数(= IoU) が 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)領域検出(localization)の,2タスクの損失を合成した,以下の合成損失関数によりend-to-end 学習する:

\begin{equation}
L(x,c,l,g) = \frac{1}{N}(\mathcal{L}_{\text{conf}}(x,c) + \alpha \mathcal{L}_{\text{loc}}(x,l,g))\tag{3.1}
\end{equation}

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

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

3.2.1 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}(\bm{g}_i^m – \hat{\bm{l}}_j^m)\tag{3.2}
\end{equation}

この損失により「デフォルトボックスの,ボックス中心座標 $(c^d_x,c^d_y)$,幅 $w^d$,高さ$w^d$」の4値の予測値$\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.3}
\end{align}

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

3.2.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.4}
\end{equation}

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

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

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

4. YOLO, SSD の頃の2つの課題

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.

参照外部リンク