このシリーズではE資格対策として、シラバスの内容を項目別にまとめています。

E資格まとめ

試験概要 ディープラーニングの理論を理解し、適切な手法を選択して実装する能力や知識を有しているかを認定する。 1.応用数学 (1)確率・統計 (2)情報理論 2.機…

Faster R-CNNは、Renらによって2015年に提案されました。この技術の主な特徴は、効率的な2ステージ計算を通じた物体検出CNNのEnd-to-End学習化と準リアルタイム計算の達成です。それによって、精度と速度の両方で高いパフォーマンスを発揮します。

前身としてR-CNN(Girshick et al., 2014)とFast R-CNN(Girshick, 2015)があります。R-CNNは、領域提案と特徴抽出を組み合わせて物体検出を行う初の手法でしたが、計算量が多く非常に遅いという問題がありました。次いで、Fast R-CNNは、計算効率の向上を図りましたが、まだ領域提案の計算がボトルネックとなっていました。

Faster R-CNNでは、この問題を解決するために、「アンカーありの2ステージ物体検出CNN」を導入しました。具体的には、領域提案の計算をCNNに組み込むことで、一貫したネットワーク内で物体の候補領域を効率的に特定することが可能になりました。

Faster R-CNNのアーキテクチャは、第一段階としてRegion Proposal Network(RPN)を使用してアンカーと呼ばれる参照窓から物体の候補領域を提案し、第二段階で提案された候補領域に対して物体のクラスを分類し、バウンディングボックスを精緻化します。

R-CNNとFaster R-CNN

R-CNNの概要

R-CNN(Regions with Convolutional Neural Networks)は、画像内の物体を認識し、その位置を特定するための深層学習モデルであり、物体検出のタスクに用いられます。

R-CNNの処理は大きく2つのステージに分かれます。前半ステージでは、「Selective Search」によって領域候補を検出し、後半ステージでそれらを詳細に処理します。

前半ステージで見つかった各領域候補は、後半ステージで2つの主要な処理を受けます。一つ目は、CNNを用いた特徴ベクトルの算出で、二つ目はその特徴ベクトルを利用してSVMで物体クラスを識別し、線形回帰で境界ボックスの修正を行うことです。これらの処理により、最終的な物体検出結果が得られる仕組みとなっています。

R-CNNはPascal VOC 2010において、以前の手法に比べて10%以上の性能向上を示しました。

しかし、R-CNNにはいくつかの課題も存在します。学習の段階が3つに分かれており、各モデル間が独立して学習されるため一貫性が欠如しています。また、学習とテストの速度が遅く、1枚の画像に対して約2000個の領域候補を処理する必要があります。このため、学習時間が膨大にかかり、1枚の画像を処理するのに47秒もかかることから、実用化には限界がありました。

Fast R-CNNの概要

Fast R-CNNの開発者であるRoss Girshick氏によって、R-CNNの後半部分を全CNN化し、軽量化と処理速度の向上を果たしたものであります。この全CNN化によって、処理効率と精度が同時に向上しています。前半ステージは変更がなく、R-CNNと同じですが、全体的な最適化は顕著で、これがFast R-CNNの成功の鍵となっています。

Fast R-CNNの中核部分である関心領域プーリング(ROI Pooling)は、画像空間上の関心領域(ROI)に対応する特徴マップを扱うプーリング層です。この技術によって、異なるサイズの領域提案を同一の特徴マップサイズに揃えることができるため、後続の処理が容易になります。

このモデルでは、特徴の集約が行われ、フラット化した特徴ベクトルが全結合層を通じて更なる抽象化を受けます。これにより物体クラスの識別とバウンディングボックスの回帰が効率的に学習され、高い精度の物体検出が可能になります。

テスト時の処理も特異で、画像全体をCNNバックボーンに入力し、特徴マップを計算後、ROI Poolingによってプーリングされます。全結合層により特徴ベクトルを抽出し、クラス確率とバウンディングボックスの修正量を推定し、最終的な検出結果として非極大値抑制(NMS)を用います。

しかし、Fast R-CNNは前半ステージの領域提案の部分で精度が不足する場合があります。この問題の解決に向け、Faster R-CNNというさらに洗練された手法が開発されました。

Faster R-CNN

Fast R-CNNの構成

RPN(Region Proposal Network)(前半ステージ)
このステージでは、アンカーボックス方式を用いて領域提案のバウンディングボックス群を検出します。特徴マップグリッド上の各グリッドの中心をアンカー点とし、それに対応するK個のアンカーボックスを用意します。このアンカーボックスは領域候補の事前分布に相当します。次に、各アンカー位置で「物体らしさ」値とバウンディングボックス修正量の回帰値を学習します。RPNの導入により、Faster R-CNNは1ステージ目で、物体内遮蔽と物体間遮蔽の双方について頑健な領域候補の検出が可能になります。

Fast R-CNN(後半ステージ)
このステージでは、前半のRPNで計算された全画像の特徴マップを入力として使用します。ROI Poolingによって領域特徴を抽出した後、2つの並列タスクが実施されます。タスク1は領域提案をクラスに識別するもので、タスク2は領域提案を残差回帰して洗練するものです。両ステージ間で序盤の特徴マップ抽出層(VGGNet Pool5 + [3 × 3]畳み込み層など)を全画像の特徴マップとして共有することで、効率よく学習が進められます。

Faster R-CNNの特長は、2つのステージをうまく連携させることで、高速かつ正確な物体検出を実現している点にあります。また、共有畳み込み層群の学習により、領域候補の検出も高品質に行えるようになります。

RPN(Region Proposal Network)の構成

RPNは、アンカーボックスを用いて、領域候補のバウンディングボックス群を検出する役割を果たします。ここでのアンカーボックスは、物体の位置とサイズの事前分布に相当し、一定の数のアンカーボックスが用意されます。

具体的な処理手順としては、まず特徴マップ上でスライディングウィンドウ処理を行います。この際、各[3 x 3]窓内の特徴から処理が進行します。その各アンカー位置において、特定の種類のアンカーボックスに対して、物体が存在するかどうかの2クラス識別と、バウンディングボックスの位置・サイズの修正量を回帰推定します。

このスライディングウィンドウ処理とアンカーボックスの組み合わせは、Faster R-CNNの効率性と精度を向上させる鍵となります。具体的には、以下の長所があります。

  1. 効率・高速化: 特徴マップの窓内特徴から一度に複数個の特徴を出力する設計により、処理が効率化されます。
  2. 物体サイズ多様性への対応: スケール・アスペクト比が異なる物体同士も複数個検出できるため、様々なサイズの物体に対応できます。
  3. 物体内、物体間遮蔽への対応: アンカーボックスを回帰させて修正することで、物体内の部分的な遮蔽や、異なるクラス間での遮蔽に対しても強いモデルを学習できます。

このような処理により、各スライディングウィンドウ窓の位置に対して特定のチャンネルのマップが出力され、最終的な領域候補が確定します。RPNによって後半ステージでイチから画像の特徴マップを再計算する必要性がなくなり、計算効率が向上しているのです。

RPNの損失関数

RPNの学習では、合成損失関数が使用されます。この損失関数は、物体らしさ(Objectness)の分類問題と、バウンディングボックスの修正量の回帰問題の両方を考慮しています。

具体的には、以下の2つの部分からなります。

物体らしさの損失: アンカーボックスが物体を含むかどうか(物体らしさ)の確率に対するロスです。物体らしさの正解値と予測値の差を計算します。この部分はバイナリクロスエントロピー損失などで計算されることが一般的です。

バウンディングボックスの回帰ロス: アンカーボックスの修正量に関するロスです。ここでは、smooth L1損失が用いられます。この損失は、予測ベクトルと正解ベクトルの差を測定します。

これらの2つの損失は、バッチ内の各アンカーボックスに対して計算され、合計されます。この際、回帰ロスは物体らしさスコアで重み付けされ、ポジティブクラスにラベル付けされた正解バウンディングボックスに対応するアンカーにのみ損失が加えられます。

まとめ

最後までご覧いただきありがとうございました。