Faster R-CNN(3/5)RPNの実施例<前半>

2020年4月18日

はぐれ弁理士 PA Tora-O です。前回(第2回)では、R-CNNと対比する形で、”Faster R-CNN” の発明ストーリーを作成しました。改めて復習されたい方は、こちらのリンクから確認をお願いします。
今回(第3回)は、”Faster R-CNN” の隠された特徴事項であるRPN(Region Proposal Network)の実施例について詳しく説明します。

RPNの全体像

RPNは、関心領域(ROI)の提案を行うニューラルネットワークです。RPNの概念図は、図1に示す通りです。

【図1】RPNの概念図

出展:“Faster R-CNN : Towards Real-Time Object Detection with Region Proposal Networks”

この記載によれば、ニューラルネットワークは、[1]入力層と、[2]中間層と、[3]中間層から分岐する2つの出力層と、から構成されているようです。ただ、この概念図はコンパクトに描かれすぎていて、実際の処理流れを理解するのが難しいかもしれません。そこで、RPNの処理流れを示すフローチャートを自作しました(図2)。

【図2】RPNに関するフローチャート

これから、フローチャートの各ステップを詳細に説明しながら、RPNの全容を把握していきます。当方の理解不足につき技術的な誤りが含まれる可能性もありますが、予めご了承ください。

S1:アンカーの指定

まず、ステップS1では、全体特徴マップ内のうち、まだ計算対象になっていないアンカー(Anchor)を指定します。この「アンカー」は、いわゆるスライディングウィンドウ法における指定位置に相当します。後述するように、このアンカーが基準点となって様々な境界ボックスが設定されますので、アンカー(錨)という表現を使ったのかもしれません。

S2:アンカーボックスの設定

次に、ステップS2では、指定されたアンカーを中心とする複数のアンカーボックス(Anchor Boxes)を設定します。この「アンカーボックス」は、定形的な境界ボックスであり、デフォルトボックス(default box)とも呼ばれています。ここでは、[1]3種類のアスペクト比、[2]3種類のボックスサイズ、の全組合せである合計9個のアンカーボックスを設定します。どうやら、1個のアンカーにつき複数のアンカーボックスを設定する、というのが真新しい発想のようです。

【図3】アンカーボックスの設定

図3に示すように、それぞれ中心を共有する9個のアンカーボックスを準備することで、様々な形状・サイズを有する物体を囲むROI候補を提示することができます。なお、“Ground Truth” は、「正解」を意味し、AI分野では頻出の用語ですので覚えておきましょう。

S3:アンカー特徴量の生成・入力

次に、ステップS3では、設定された9個のアンカーボックスから特徴量(以下、アンカー特徴量)を生成します。具体的には、全体特徴マップから各アンカーボックス内の部分特徴マップを抽出した後、プーリング演算およびフラット化を通じて、9個のアンカーボックスに関する特徴量を含む特徴ベクトルを生成します。

なお、いずれも固定サイズのアンカーボックスが用いられるため、ROIプーリング(Fast R-CNN)のような手法は必要ありません。また、全体特報マップが有するチャンネルの取り扱いは、CNNの従来手法と同様であるため、詳しい説明を割愛します。そして、ニューラルネットワークの入力層にアンカー特徴量をセットすることで、ニューラルネットワークによる演算を開始します。

 

次回(第4回)は、ニューラルネットワークの出力(図2のステップS4)以降について説明します。

↓ブログランキングに参加しています。よろしければ1クリックお願いします。

にほんブログ村 士業ブログ 弁理士へ
にほんブログ村

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村