Faster R-CNN: 2ステージ型のCNN物体検出の元祖

1 Faster R-CNN の概要

Faster R-CNN (Faster Region-CNN) [Ren et al., 2015] は「領域提案を用いた2ステージ型物体検出器」の元祖となった,CNN(Convolutional Neural Network)を用いた複数物体クラス検出器である.この記事では,Faster R-CNN について解説する.

当時は,以下のような2ステージ型の領域提案ベースのCNN物体検出が,新たに提案され研究され始めていた:

  • 前半ステージ(絞り込み):非DNN手法(selective searchなど)を用いて,後半ステージのCNNで処理するための領域提案(region proposal)を検出する.(※「Objectness 領域の検出 [Cheng et al., 2014]」に相当)
  • 後半ステージ(検出処理):領域提案内のCNN特徴マップを特徴として用いて「20~30種程度の物体クラスを識別」 + 「領域候補のバウンディングボックス修正量の回帰」の2タスクを,Region-CNN (R-CNN)で推定する.

この方針が登場してきた中で,Faster R-CNN [Ren et al., 2015] は領域提案ネットワーク(RPN: region proposal network) を導入し,初めて前半ステージのCNN化も達成した.前半ステージにSelective Search (2.1節)を領域提案に用いた前身の2手法(R-CNN, Fast R-CNN)よりも,領域提案ネットワークを前半に用いるFaster R-CNNの方が,正確・高速に領域提案を検出できる.

Faster R-CNN とFast R-CNN の後半ステージで用いられるネットワークの構成.
図1 Faster R-CNN と Fast R-CNN の後半ステージで用いられるネットワークの構成

Faster R-CNNとその前身のFast R-CNNの後半ステージは,図1のような構成である.前半ステージで計算したCNN特徴の,領域提案内の特徴マップのみをROI Poolingで取り出した入力から,マルチタスクネットワークによって,物体クラス識別とバウンディンボックスの修正量の回帰を出力する.

Faster R-CNNによって,複数クラス物体検出手法が初めて実用的な速度・精度になったことにより,それ以降は実用レベルの物体検出も発展していき,またFaster R-CNNなどの物体検出を他のタスクの前処理として活用されるようにもなった.

1.1 記事の構成

まず2節で前準備として,Faster R-CNNの前身である R-CNN [Girshick et al., 2014] と Fast R-CNN [Girshick, 2015] について説明する.その後,3節で本題であるFast R-CNN について述べたい.

特に,前半ステージの領域提案ネットワーク(2.1節)と,ステージ間をつなぐ上で重要なROI Pooling(2.2.1節)とアンカーボックス(3.1節)について焦点を当てて紹介したい.

2節以降は,以下の構成で Faster R-CNN の構成要素について紹介する:

  • 2節 前身の2手法: Region-CNN と Fast R-CNN
    • 2.1 R-CNN (bboxの修正量回帰,マルチタスク学習の導入)
    • 2.2 Fast R-CNN (ROI Poolingによる後半ステージの全ニューラルネット化)
  • 3節 Faster R-CNN
    • 3.1 アンカーボックスの導入
    • 3.2 [前半] RPN
    • 3.3 [後半] Fast R-CNN
    • 3.4 モデルの交互学習
  • 4節 まとめ

2 前身の2手法: Region-CNN と Fast R-CNN

画像認識CNN流行後の初期(2012~2013年頃)に,以下のような(素直な)改善アイデアが研究者たちに生まれはじめた:

  • 「従来の物体検出手法のHOG特徴, Haar-like特徴や,SVMやBoosting代わりに,CNNを特徴抽出と識別器として使用すれば,CNNの恩恵で物体検出の精度が大きく向上するはず」
  • 「ImageNetから学習する画像認識CNNと同様に,大規模クラス数を対象とする物体検出器も実現できるはず」

しかし,当時の画像認識CNN (AlexNetVGGNet) を使用するには,計算負荷がかなり高く,物体検出には応用しづらくアイデアが必要であった.従来の「スライディングウィンドウ方式の物体検出」で,クラス識別器や特徴抽出をCNNに差し替えるだけだと,計算負荷の高いCNNの順伝搬を何万回も1から行うことになってしまう.

そこで研究者らは,以下の「2ステージ構成の手法」を研究し始めた:

  • 前半ステージ:物体候補となる領域を,数100~数1000個だけに絞る検出処理を行う.検出されたbbox群を領域提案(region proposal)と呼ぶ.
  • 後半ステージ:領域提案に対してのみCNNを適用し,「物体クラス識別」と「矩形位置・サイズの回帰による修正」を行う.

この2節では,Faster R-CNN(3節) を説明するための事前準備として,2ステージ物体検出の発展段階に提案された R-CNN (2.1節)とFast R-CNN (2.2節)を紹介する.

2.1 R-CNN: 領域候補を元に,CNNでクラス識別とbbox回帰.

R-CNN
図2 R-CNN

R-CNN (Region-CNN) [Girshick et al., 2014] は,初めて提案された2ステージ型のCNN物体検出である (図2).Pascal VOC Challenge の 物体画像20クラス検出に対して実験が行われた.(※「バウンディングボックス」という単語は長いので,以降は時折「bbox」と省略形を使う)

R-CNNは以下の2ステージを通じた処理を順に行う:

  • 前半ステージ(図2 左側): Selective Search [Uijlings et al., 2013] を使用して,後半ステージで処理する領域候補を検出する. (※ Selective Search は前景マスクも出力するが,この記事ではマスクは無視してbboxだけを領域候補として考える).
  • 後半ステージ(図2 右側): 領域候補を用いて,各領域候補に以下のR-CNNによる処理を行う:
    • 領域内の画像を切り出し,CNNの入力サイズに合うよう画像をリサイズする.
    • リサイズした画像からCNN特徴ベクトルを計算する.
    • CNN特徴ベクトルを入力として,以下の予測を独立に行う:
      1. SVMによる,物体クラスの識別.
      2. 線形回帰により,bbox修正量を推定 (2.2.1節).

以上の処理により,各領域の最終的な物体検出結果が得られる.

2.1.1 バウンディングボックス修正量の回帰

バウンディングボックス修正量の回帰
図3 バウンディングボックス修正量の回帰.修正量$(d_x, d_y, d_w, d_h)$を,領域提案$\bm(p)$を入力に回帰しておく.

各領域提案において,領域提案内で計算したCNN特徴ベクトルを入力に,領域提案の中心位置$(x,y)$・サイズ(w,h)の正解領域への修正量(オフセット)を,線形回帰モデルへ学習することが提案された (図3).領域提案BBoxの中心位置・サイズを$\bm{p} = (p_x,p_y,p_w,p_h)$で表す.また,物体クラス$k$の正解領域BBoxの中心位置・サイズを$\bm{g} = (g_x, g_y, g_w, g_h)$で表す.

これらの間の修正量を$(d_x(\bm{p}),d_y(\bm{p}),d_w(\bm{p}),d_y(\bm{p}))$と定義し,修正量を$\bm{p}$を入力とした$d_{\star}(p)$線形回帰で予測することを著者らは考えた:

\[
\tilde{g_x} = p_x d_x(\bm{p}) + p_x\\
\tilde{g_y} = p_x d_y(\bm{p}) + p_y\\
\tilde{g_w} = p_w \exp (d_w(\bm{p}))\\
\tilde{g_h} = p_h \exp (d_h(\bm{p}))
\]

しかし,上記の$\bm{g}$では,線形回帰の学習上都合が悪いことから,再パラメータ化された修正量$\bm{t}=(t_x, t_y, t_w, t_h)$を代わりに回帰するようにした:

\[
t_x = (g_x – p_x)/p_w\\
t_y = (g_y – p_y)/p_h\\
t_w = \log (g_w/p_w)\\
t_h = \log (g_h/p_h)
\]

この再パラメータ化された$\bm{t}$をR-CNNでは線形回帰に学習する.

2.1.2 予測と学習: 物体クラスのSVM識別 + バウンディングボックスの線形回帰

各候補領域での最終予測として,CNN特徴ベクトル(AlexNetの全結合層ベクトル)を入力として,以下の2モデルを独立に学習する:

  1. クラス識別用のSVM: 「物体 or 背景」を,N個の物体クラスごとに,2値SVMへ学習 (Pascal VOC 2010の場合,N = 20クラス).
  2. 線形回帰:物体クラスごとに,領域候補の修正量$\bm{t}$を線形回帰モデルに学習.

テスト時は,これらの学習済みモデルを,それぞれ独立に実行する.

2.1.3 R-CNN の意義と課題

Pascal VOC 2010に対して,CNN以前の最高性能手法であった DPM [Felzenszwalb et al., 2010] やRegionlets [Wang et al., 2013] をmAPで10%以上更新する,大幅な性能向上を達成した.

こうして,CNNで高精度物体検出を達成できる可能性を示したものの,最初のR-CNNには以下のような欠点があり,実用レベルにはまだ遠かった[Girshick et al., 2014]:

  • 学習が3ステージに分離している: 領域提案からCNNをfine-tuneして特徴抽出CNNを学習.そのCNN特徴から,クラス識別SVMと,bbox線形回帰をそれぞれ学習する.よって,各モデル間に一貫性はない.
  • 学習が遅い:1画像につき2000個くらいの領域候補が出る.従って,2000回/画像もCNNを順伝搬する必要があり,膨大に学習時間がかかる.
  • テストが遅い:1枚の画像を処理するのに47秒もかかるので,実用的に到底使えない.

そこで,著者らは高速化版として次にFast R-CNNを提案する.

2.2 Fast R-CNN: 後半ステージの全ニューラルネット化

Fast R-CNN
図4 Fast R-CNN

Fast R-CNN [Girshick et al., 2015]は,R-CNNの筆頭著者自身による改善版である(図4).注意領域プーリング (ROI Pooling) の導入により,後半ステージが完全ニューラルネット化により軽量化され,精度と速度の向上を達成した.(前半ステージは変更がなく,R-CNNと同じである)

2.2.1 ROI Pooling

注意領域プーリング(ROI Pooling)
図5 注意領域プーリング(ROI Pooling)

ROI プーリング(ROI Pooling)は,画像空間上の注目領域 (ROI: Region of Interest)内で,そのROI内に対応する特徴マップの最大値プーリングをおこなう層である (図5).

VGGNet-16などを用いて抽出したCNN特徴マップ(pool5層)をもとに,領域提案内の任意の縦横空間サイズのグリッド範囲(C x H x W)を,最大値プーリングによって固定縦横サイズ(C x 7 x 7) の表現に変換できる.これにより,前半の領域提案のサイズがバラバラでも,Fast R-CNN を固定空間サイズ入力(C x 7 x 7)で学習できるようになる.

2.2.2 後半ステージ: Fast R-CNN

まずROI Pooling 済みの領域提案内の特徴マップ($C ¥times 7 \times 7$)をフラット化した特徴ベクトルから,全結合層2層を通してROI表現を推定する.そのROIベクトルを用いて,2つの全結合層ヘッドに 「(1) 物体クラス」「 (2 )bbox回帰」をそれぞれ学習する.

テスト時:

後半ステージは,以下の手順でテスト計算を行う(図4 右側):

  • 画像全体を先にCNNバックボーンに入力し,画像全体の特徴マップを計算.
  • 各$i$番目の領域提案に対して,以下の計算を行う:
    1. ROI Pooling層で,領域提案$i$の特徴マップのプーリングを行う.
    2. MLP(全結合2層)により,領域提案$i$の特徴ベクトルを抽出.
    3. 領域提案$i$の特徴ベクトルを入力として,全結合層のヘッド2つにより,個別に「softmax確率ベクトルをKクラス分」と「bboxの修正量 × Kクラス分」を推定.
    4. クラス確率最大のクラス$k$と.そのクラスに対応するbbox修正量(のみ)を出力.
  • NMS(Non-maximal Suppression)処理を行い,その結果を最終的な検出結果として出力.
学習時:正解ROIごとの,マルチタスク損失による学習

Fast R-CNNのSGD学習には,物体クラス$u$にラベル付されたRoIごとに,以下のマルチタスク損失関数を用いて誤差を計算する:

\[ \mathcal{L}_{fast}(\bm{p},u,\bm{t}^u,\bm{v}) = \mathcal{L}_{cls}(\bm{p},u) + \lambda [ u \geq 1]\mathcal{L}_{bbox}(\bm{t}^u, \bm{t}) \tag{2.1}\]

(ここで$[u \geq 1]$は,アイバーソンの記法(Wikipedia)である.$u>1$が真の時に値が1となり,偽のときは値が0となる.)

式(2.1)で使用されている各変数は以下のものである:

  • $u$: 正解クラスのラベル; $u \in \{0,…..,K \}$.$u = 0$が背景クラス.
  • $\bm{p}$: softmax出力の$K+1$次元クラス確率ベクトル; $\bm{p} = (p_0,p_1,\ldots, p_K)$
  • $\bm{v}$: 正解bboxの位置とサイズ; $\bm{v} = (v_x,v_y,v_w,v_h)$
  • $\bm{t}^u$: 推定されたbboxの修正量; $\bm{t}^u = (t_x^u,t_y^u,t_w^u,t_h^u)$

式(2.1)のクラス識別の損失には,事後確率の負の対数を用いる:

\[ \mathcal{L}_{cls}(\bm{p},u) = – \log p^u \tag{2.2}\]

式(2.1)のbbox修正量回帰の損失には,外れ値に頑健なsmooth L1損失を用いる:

\[\mathcal{L}_{bbox} (\bm{v}, \bm{t} )= \sum_{i \in \{ x,y,w,h \}} L_1^{smooth}(t_i^u-v_i)\tag{2.3}\]

\[
L_1^{smooth}(x)=\begin{cases}
0.5x^2 & if |x| < 1 \\
|x| – 0.5 & otherwise
\end{cases}
\tag{2.4}
\]

式(2.1)の損失関数$\mathcal{L}_{fast}$を用いてFast R-CNN を学習することに,R-CNNと比べて高速化と性能向上に成功した.こうしてFast R-CNN は,1つのニューラルネットワークに統一できた.

2.2.3 Fast R-CNN の課題

Fast R-CNNは良くなったが,前半ステージはSelective Searchのままであるので,領域提案の過検出や未検出は起こりがちである.つまり,前段ステージが精度向上のボトルネックである点が,解決できていなかった.

したがって,前半ステージもCNN化して,安定した領域提案検出を行いたいという動機のもと,この記事の本題であるFaster R-CNNが登場する.

3 Faster R-CNN : ステージ間で畳み込み層を共有し,モデル間の一貫性を実現

Faster R-CNN
図6 Faster R-CNN

Faster R-CNN [Ren et al., 2015] は,Fast R-CNN (2.2節)の前半ステージを,領域提案ネットワーク(RPN: Region Proposal Network)に差し替えたものである (図6).

RPNは,特徴マップ上のスライディングウィンドウ窓の中心点に相当する,入力画像上のアンカー(Anchor) 点に対して,領域候補の事前分布群であるアンカーボックス(Anchor Box) を複数個用意する (3.1.1節).RPNでは,各アンカー位置において,k個のアンカーボックス群から,「Objectness推定 + bbox修正量回帰 」を行う.RPNの導入により,Faster R-CNNは,高速かつ正確でありながらも,物体内遮蔽・物体間遮蔽の双方について頑健な領域候補検出が可能となった.

また2ステージのモデル間で全画像の特徴マップを共有することで,2モデルとも同じ特徴マップを用いる推定器を学習できるようになった(3.2節).これにより,後半ステージ用の正解ラベルも加味した「共有畳み込み層群」を学習できるようになったので,RPNの方も高品質な領域候補の検出が可能となった(3.4節)

Faster R-CNN の2ステージ構成は以下のようになっている:

  • 前半ステージ (RPN, 3.1 節):
    • アンカーボックス方式のRPNで領域提案を検出.
  • 後半ステージ (Fast R-CNN, 3.2節):
    • RPNで計算した,全画像の特徴マップを入力特徴に用いる.
    • ROI Poolingした領域特徴を入力に,以下の2タスクを実施:
      • 識別ヘッド(タスク1): 領域提案を$N$クラス識別.
      • 回帰ヘッド(タスク2): 領域提案を残差回帰して洗練.

3.1 [前半] 領域提案ネットワーク

領域提案ネットワーク(RPN)
図7 領域提案ネットワーク(RPN).

前半ステージの領域提案ネットワークをFCN化したおかげで, 領域提案ネットワークの特徴マップを再利用して後半ステージの推定処理が実施できる.これにより,従来のR-CNNとFast R-CNNのように「後半ステージで,CNN特徴を画像から再度計算する」必要性がなくることで,Fast R-CNNよりも計算効率が向上した.

3.1.1 アンカーボックス群の導入

領域提案ネットワーク(RPN)では,アンカーボックス群を用いた評価が導入された (図7 中央,右側).スライディングウィンドウ時の窓内特徴マップに対して,入力画像で対応するROI中心位置 (= アンカー)を共有しながら,各領域候補の$k$個のbboxを事前分布として用意する仕組みである .

特徴マップ上を 3 x 3 窓内の特徴でスライディングウィンドウ処理する際に,各窓位置の3 x 3 x C の特徴マップを入力に対して,前身のFast R-CNNのように「クラス識別 + bbox回帰」評価を行うネットワーク設計にしたい.

ROI Poolingと同様に,入力画像座標と,CNN特徴マップの座標系のあいだで,スライディングウィンドウの矩形中心位置同士の座標間対応付けを考える.そして入力画像における「領域提案のスケール と 領域提案のアスペクト比」の事前分布として,アンカーボックスを用意する.

ここで,入力画像における3スケール(128 x 128, 256 x 256, 512 x 512)3アスペクト比(w+hの値をそれぞれ 1:1, 1:2, 2:1に分配したもの)の組み合わせの,計 $k = 9$個のアンカーボックスを用意し,各窓位置の特徴マップをもとに「(1)その領域候補物体が,アンカーボックス内に存在するかどうかのObjectness識別」と「(2)アンカーボックスに対する領域提案の,BBox修正量回帰」を推定する仕組みにした.

というわけで,RPNは以下の順で,処理を行う(図7):

  • 特徴マップ上で$3 \times 3$セルの窓でスライディングウィンドウを行う.
  • その各アンカー位置において,$k$種類のサイズのアンカーボックスについて以下の2つの推定を行う
    1. アンカーボックス内に「物体が有る or 物体が無い」の2クラス識別.
    2. アンカーボックスから領域提案への,位置$(x,y)$・サイズ$(w,h)$の修正量を回帰.
アンカーボックス導入の利点

アンカーボックスの導入は,領域提案ネットワークに以下の長所をもたらした:

  1. 効率・高速化:「セル窓(3 x 3)上の特徴から,k個分の特徴をいっぺんに1ヘッドで出力する設計にした.これにより,特徴抽出層が$k$ボックス分共有されておりその分処理が効率化されている.
  2. 物体サイズ多様性への対応:各窓位置において,スケール・アスペクト比が異なる物体同士を,複数個検出できる.
  3. 物体内,物体間遮蔽への対応:領域提案のアンカーボックスを回帰させて修正,また,複数クラス間での見え方の関係性を学習できる.よって,「馬に乗った人」のような別クラス間での遮蔽と,「上半身しか写っていない人」のようなインスタンス内の遮蔽,の双方に強いモデルを学習できる(元論文 Figure 1 右の,検出例画像などを参照).

この結果,各スライディングウィンドウ窓の位置に対して,$(2+k)$チャンネルのマップが出力され,それをもとにNMS処理後,最終的な領域候補が確定する.

3.1.2 RPNの損失関数

RPNの損失関数には,Fast R-CNN方式の,以下の2タスクを重み付けした関数を用いて学習を行う:

\[ \mathcal{L}_{RPN} (\{p_i\},\{t_i\}) = \frac{1}{N_{cls}}\mathcal{L}_{cls}(\tilde{p_i},p_i) + \lambda \frac{1}{N_{reg}} \sum_i \tilde{p_i} \mathcal{L}_{reg} (\tilde{t_i},t_i) \tag{3.1}\]

ここで,各変数は以下の変数を指している:

  • $i$: バッチ内のアンカー(ボックス)のインデックス.
  • $p_i$: アンカー$i$領域のObjectness確率(1: 物体, 0: 背景)の正解.
  • $\tilde{p_i}$: $p_i$の予測値.
  • $t_i$: アンカーボックス$i$の修正量$(t_x,t_y,t_w,t_h)$の正解(2.1.1節).
  • $\tilde{t_i}$: アンカーの修正量の予測値.

RPNでは,1つの正解物体領域に対して,複数のアンカーボックスを紐づけされており,それらアンカーボックス損失の合計を計算する点に注意.

式(3.1)では,回帰ロス側$\mathcal{L}_{reg}$にはsmooth L1損失を用いる.$\mathcal{L}_{reg}$をObjectnessスコア$\tilde{p_i}$で重み付けしているので,ポジティブクラスにラベル付けされた正解bboxに対応するアンカー(\tilde{p_i} = 1)にしか,損失を加えない.

3.2 [後半ステージ] Faster R-CNN

後半ステージのFaster R-CNNは,Fast R-CNN [Girshick, 2015] のネットワーク構造の各全結合を,すべて畳み込み層に変更したネットワークに,RPNと同じ畳み込み層を前半に共有したネットワークである (図6 右側).

Fast R-CNN [Girshick, 2015] と同じマルチタスク出力であるので,損失関数の式(2.1)を用いて学習する (2.2.2節).

3.3 モデルの交互学習

RPNが Fully Convolutional Network であるおかげで,RPNの出力である「入力画像全体の特徴マップ」は,そのまま後半ステージの「Fast R-CNNの入力」として共有される.よって,2ネットワーク間で共有する特徴マップが整合性を保つように,2モデル間で共有する畳み込み層は固定しながら,RPNとFaster-RCNNを以下の手順で交互に学習する:

  1. 初期化 (RPNのみ初期化):ImageNetでRPNを事前学習.そののち,領域候補の正解データを用いてRPN全体を学習.
  2. Faster R-CNNの学習:ステップ1で学習したRPNから得られる領域候補を元に,Faster R-CNNを学習.
  3. RPNの再学習: ステップ2で学習したFaster R-CNNからの検出結果を元に,共有畳み込み層は固定しながら,RPNにのみにある後方の層のみfine-tuningする.これにより,2モデルが畳み込み層を共有.
  4. Faster R-CNNの再学習:Faster R-CNNを,共有畳み込み層は固定してFine-turingする.
  5. ステップ3と4を,損失が終了値以下に減るまで繰り返す.

この手順により,2ステージのモデルに一貫性を持たせることができる.したがって,RPNが出力する領域候補が,きちんとFaster R-CNNの事前分布としてはたらく結果となる.こうして前半で高精度な領域候補の出力ができ,なおかつFaster R-CNNによる識別・回帰に適した特徴マップを提供できるようになった.

4. まとめ

この記事ではFaster R-CNNのついて紹介した.前進版のR-CNNとFast R-CNNについて紹介することで,Fast R-CNNの構成要素でもある「bbox修正量のパラメタライズ」「マルチタスク損失による学習」「ROI Pooling」について先に述べた.

それを踏まえて,Faster R-CNNの「アンカーボックスを利用した領域提案ネットワーク」と,「2ステージの特徴計算層(FCN)の共有」について紹介した.

References

  • [Cheng et al., 2014] Cheng, M. M., Zhang, Z., Lin, W. Y., & Torr, P. (2014). BING: Binarized normed gradients for objectness estimation at 300fps. In CVPR 2014.
  • [Felzenszwalb et al., 2008] P. Felzenszwalb, D. McAllester, and D. Ramanan. A discriminatively trained, multiscale, deformable part model. In CVPR, 2008.
  • [Felzenszwalb et al., 2010] P. Felzenszwalb, R. Girshick, D. McAllester, and D. Ramanan. Object detection with discriminatively trained part based models. TPAMI, 2010.
  • [Girshick et al., 2014] Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
  • [Girshick, 2015] Girshick, R. Fast r-cnn. In ICCV, 2015.
  • [He et al., 2014] He K., Zhang X., Ren, S., and Sun, J. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014.
  • [Ren et al., 2015] Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: towards real-time object detection with region proposal networks. In NIPS, 2015.
  • [Uijlings et al., 2013] Uijlings, J. R., Van De Sande, K. E., Gevers, T., and Smeulders, A. W. Selective search for object recognition. International journal of computer vision, 104(2), 154–171.
  • [Wang et al., 2013] X.Wang, M.Yang, S.Zhu, and Y.Lin. Regionlets for generic object detection. In ICCV, 2013.
  • [Wu et al., 2020] Wu, X., Sahoo, D., & Hoi, S. C. (2020). Recent advances in deep learning for object detection. Neurocomputing, 396, 39-64.

外部参照リンク

関連記事