Fast R-CNN (G検定)

Fast R-CNN

1. 定義と概要

Fast R-CNNとは、2015年にRoss Girshick(Microsoft Research)が発表した物体検出モデルで、R-CNNが抱えていた計算の重複と多段階の学習という課題を解消し、高速化と精度向上を両立させた手法です。

画像全体を1回だけ畳み込みニューラルネットワーク(CNN。画像の特徴を段階的に抽出する深層学習モデル)に通し、特徴マップ(画像をCNNに通して得られる、物体の特徴を数値で表した多層のデータ)を生成します。この特徴マップ上で領域候補(画像の中で物体が写っていそうな範囲の候補)に対応する部分を切り出し、クラス分類と矩形の位置調整を単一のネットワークで同時に行います。

従来のR-CNNは、Selective Search(画像の色や質感の類似性をもとに、物体が写っていそうな領域候補を機械的に探す従来手法)で得た1枚あたり約2,000個の領域候補それぞれを個別に切り出してCNNに入力していました。そのため1枚の画像につきCNNをほぼ2,000回実行する必要がありました。

また、クラス分類にはSVM(サポートベクターマシン。従来型の機械学習の分類器の一つ)を、矩形の位置調整には別の回帰モデル(数値を予測する機械学習モデル)を用いる3段階の学習も必要で、学習の手間と特徴量(画像や物体の特徴を数値化したデータ)の保存容量が課題になっていました。

Fast R-CNNは、画像全体を1回だけCNNに通してから領域候補を特徴マップ上にマッピングする方式に切り替え、単一のネットワークでまとめて学習できるようにする工夫を導入することで、これらの課題を同時に解消しました。

2. 試験対策ポイント

まず整理しておきたいのは、Fast R-CNNの3つの改善点です。1つ目は、画像全体を1回だけCNNに通して特徴マップを作り、領域候補に対応する部分をこの特徴マップ上から切り出す点です。R-CNNのように領域候補ごとにCNNを個別に適用する重複計算を解消しており、これが処理速度を大きく向上させた要因になっています。

2つ目はROIプーリング(RoI Pooling。大きさの異なる領域候補を固定サイズの特徴量に変換する処理)です。領域候補は元の大きさがまちまちなため、そのままでは後段の全結合層(ニューラルネットワークの各ノードが前の層のすべてのノードとつながる層)に入力できません。

ROIプーリングは可変サイズの領域候補を固定サイズにそろえ、全結合層に渡せる形に整える役割を担っており、内部の分割やプーリング演算の詳細は関連する別の解説に譲ります。

3つ目は学習方式の変更です。R-CNNではCNNによる特徴抽出、SVMによるクラス分類、矩形の位置調整の3段階を別々に学習していました。

Fast R-CNNはクラス分類をソフトマックス関数(各クラスに属する確率を計算する関数)に置き換えました。クラス分類の損失とバウンディングボックス回帰(物体を囲む矩形の位置や大きさを調整する処理)の損失を組み合わせた多タスク損失(マルチタスク損失。クラス分類と位置調整のズレを1つの指標にまとめて同時に学習させる損失関数)を用いて、単一のネットワークを一括で学習します。SVMを個別に学習していたR-CNNとの違いは、この一括学習の可否にあります。

もっとも、Fast R-CNNは大幅に高速化された一方で、領域候補の生成自体は「Selective Search」に依存したままで、この部分が処理のボトルネックとして残りました。この弱点はFaster R-CNN(領域候補の生成までニューラルネットワークで行い、Fast R-CNNよりさらに高速化したモデル)でRPN(Region Proposal Network。画像の特徴マップから領域候補をニューラルネットワークで提案する仕組み)に置き換えられて解消されます。

3. 関連概念との比較・相違点

R-CNNとの最大の違いは、処理の重複をなくしたかどうかにあります。両者がどこで分かれるのかを、処理の流れに沿って並べると次のようになります。

観点 R-CNN Fast R-CNN
CNNの適用 領域候補ごとに個別適用(1枚あたり約2,000回) 画像全体に1回だけ適用
領域候補の扱い 候補ごとに画像を切り出してCNNへ入力 特徴マップ上の対応部分を切り出す
学習の進め方 クラス分類・矩形回帰・CNNの微調整を別々に学習する3段階構成 多タスク損失で単一のネットワークを一括学習

R-CNNは領域候補ごとの重複計算と3段階の学習を抱えるため、処理に時間がかかります。Fast R-CNNはこの重複をまとめて取り除いたことで、大幅な高速化を実現しました。

Faster R-CNNとの違いは、領域候補の生成方法にあります。Fast R-CNNは領域候補の生成を「Selective Search」というCPUベースの従来手法に依存したままで、ここが処理速度のボトルネックとして残ります。

Faster R-CNNはこの部分をRPNという学習可能な仕組みに置き換え、ほぼリアルタイムの検出速度を実現しました。両者の関係は、Fast R-CNNが確立した一括学習の枠組みに、Faster R-CNNが領域候補の生成まで組み込んだ発展形と整理できます。

4. ビジネス・実務での活用シナリオ

Fast R-CNNは、画像全体を1回だけCNNに通し、ROIプーリングと多タスク損失で一括学習する設計思想を確立しました。この設計は、医療画像診断の分野において、後継のFaster R-CNNを通じてCT・MRI画像から病変候補を高精度に絞り込む診断支援システムの土台になっています。

衛星画像や地理空間解析の分野では、広域画像から建造物や車両などを検出する用途で検出速度よりも精度が重視されるため、Fast R-CNNの流れをくむ二段階検出方式、つまり領域候補を絞ってから分類する方式が採用されやすい傾向にあります。

モデル開発や研究の現場では、画像全体を1回だけCNNに通す設計とROIプーリング、多タスク損失による一括学習という3つの要素が重要な参照点になっています。これらはFaster R-CNNやMask R-CNNなど後続の物体検出モデルの基本設計として引き継がれ、新しいモデルを開発する際の出発点になっています。

5. 要点まとめ

  • Fast R-CNNは画像全体を1回だけCNNに通し、その特徴マップ上で領域候補に対応する部分を切り出すことで、R-CNNの重複計算を解消した物体検出モデルです。
  • ROIプーリングにより大きさの異なる領域候補を固定サイズの特徴量に変換し、SVMを廃してソフトマックスとバウンディングボックス回帰を組み合わせた多タスク損失で単一ネットワークを一括学習します。
  • 領域候補の生成自体は「Selective Search」に依存したままで、この弱点は後継のFaster R-CNNがRPNに置き換えることで解消しました。

6. 確認問題

問1Fast R-CNNは、画像全体を1回だけCNNに通して特徴マップを生成し、その特徴マップ上で領域候補に対応する部分を切り出す。

解答・解説をみる

○ 正しい

領域候補ごとにCNNを個別適用していたR-CNNとの最大の違いで、CNNの実行回数を1回に減らすことで高速化を実現しています。

問2Fast R-CNNは、クラス分類に引き続きSVMを用い、CNNの学習とは別の段階で学習する。

解答・解説をみる

× 誤り

正しくは、Fast R-CNNはSVMを廃してソフトマックス関数による分類とバウンディングボックス回帰の損失を組み合わせた多タスク損失を用い、単一のネットワークを一括で学習します。SVMによる別段階の学習はR-CNNの特徴です。

問3Fast R-CNNは領域候補の生成自体を「Selective Search」に依存しており、この部分は後継のFaster R-CNNでRPNに置き換えられた。

解答・解説をみる

○ 正しい

Fast R-CNNの残存する弱点で、CPUベースの「Selective Search」が処理速度のボトルネックとして残っていました。