R-CNN「物体候補領域を用いた畳み込みニューラルネットワーク」

こんにちは。ゆうせいです。

画像の中から「どこに何があるか」を見つけ出す物体検出の世界。その進化の歴史を語る上で絶対に外せないのが、R-CNNという技術です。

ディープラーニングが画像認識を塗り替えた記念碑的なモデルですが、その仕組みは意外と泥臭く、人間味あふれる工夫が詰まっています。今回は、R-CNNがどのようにして画像の中の物体を見つけ出しているのか、その舞台裏を覗いてみましょう!

R-CNNって何の略?

R-CNNは「Regions with Convolutional Neural Networks」の略称です。日本語に直すと「物体候補領域を用いた畳み込みニューラルネットワーク」となります。

これまでの画像認識(分類)は、画像全体を見て「これは猫です」と答えるだけでした。しかし、物体検出は「ここの座標に猫がいて、こっちには犬がいます」と場所まで特定しなければなりません。

ここで一つ質問です。もしあなたに「写真の中から宝物を探せ」という指令が下ったら、どうしますか?闇雲に探すより、まずは「宝物が入っていそうな箱」をいくつかピックアップしてから、中身を確認しますよね?

ステップ1:怪しい場所を見つける「Selective Search」

R-CNNが最初に行うのが、物体候補領域の抽出です。画像の中を隅から隅まで調べるのは時間がかかるため、まずは「ここらへんに何かありそうだぞ」というアタリをつけます。

この役割を担うのが、Selective Search(セレクト・サーチ)というアルゴリズムです。

Selective Searchは、色や質感、模様の似ている隣り合った画素を少しずつ合体させていき、最終的に「物体らしき四角い枠」をたくさん作り出します。1枚の画像に対して、だいたい2000個くらいの候補を出してくれるんですよ。

ステップ2:形を揃える「画像サイズ」の調整

さて、見つかった2000個の候補領域は、横長だったり縦長だったり、大きさもバラバラです。しかし、その後に控えているCNN(画像の特徴を分析するAI)は、決まった大きさの画像しか受け付けてくれません。

そこで、無理やり画像サイズを固定(リサイズ)する工程が必要になります。

このとき、元の画像の比率を無視して引き伸ばしたり縮めたりするため、画像が歪んでしまうという弱点があります。これを専門用語で「Warp(ワープ)」と呼びます。

ステップ3:本物かどうかを見極める「SVM」

CNNが画像の特徴を抽出した後、最後に登場するのがSVM(サポートベクターマシン)という識別器です。

SVMは「これはAというクラスか、それとも背景か」を非常に厳密に切り分けるのが得意な手法です。CNNが書き出した特徴量をもとに、SVMが「これは90パーセントの確率で飛行機だ!」と最終判断を下します。

R-CNNのメリット

  1. 圧倒的な精度:それまでの手法に比べて、物体の場所を特定する精度が劇的に向上しました。
  2. 柔軟性:CNNで特徴を掴み、SVMで分類するという役割分担が明確なため、理論が非常に明快です。

R-CNNのデメリット

  1. 計算コストが膨大:1枚の画像に対して2000回もCNNを動かすため、とにかく処理が重いです。
  2. 処理速度が遅い:1枚の画像を処理するのに数秒から十数秒かかってしまいます。これでは自動運転のようなリアルタイムの動作は無理ですね。
  3. 学習が複雑:CNN、SVM、そして枠を微調整するモデルを別々に学習させる必要があり、手間がかかります。

数式で見る評価の仕組み

物体検出がどれくらい正確に場所を捉えているかを測る「IoU(Intersection over Union)」という指標があります。

IoU = 正解の枠と予測の枠が重なっている面積 \div 正解と予測の枠を合わせた全体の面積

この数値が 1 に近づくほど、AIが完璧な場所を見つけていることになります。

これからの学習の指針

R-CNNは素晴らしい技術でしたが、その「重さ」を解決するために、その後「Fast R-CNN」や「Faster R-CNN」といった後継モデルが登場しました。

これらは、今回お話しした「2000回も計算する」という無駄を省き、1回の計算で済ませる魔法のような工夫が施されています。

次はぜひ、Faster R-CNNでどのように「Selective Search」が進化(RPNへの置き換え)したのかを調べてみてください。AIがどんどん「速く、賢く」なっていく歴史を感じることができるはずですよ!

今回の解説で、R-CNNの3つのステップ(候補探し、リサイズ、判定)のイメージは湧きましたか?

次は、これらの計算を劇的に速くした「Fast R-CNN」の仕組みについて一緒に見てみましょうか?

セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。