第9回 物体検出
前回はAIの画像認識の入り口について話をしました。画像認識に深層学習が活用される背景について述べました。深層学習の様々なモデルによって画像中に「何が」あるかを予測できるようになり、人間の認識率を超えたことは驚くべきことです。
今回は画像内の「どこに」あるかを検出する技術についてです。これは物体検出といわれています。みなさんがよく目にするのは顔検出ではないでしょうか。画面に顔が映ると顔の周りが四角で囲われて、男性/女性、xx歳のようなラベルが四角のふちに出力される画像です。この物体を囲う四角い枠のことをバウンディングボックスと呼んでいます。下の図例では「羊」や「犬」であることを認識することと、それぞれの位置を探すことになります。
認識は畳み込み処理で解決できますが、位置は畳み込み処理で解決できません(畳み込み処理は次回以降で話をします)。これを解決する方法としてR-CNN※1が考案されました。処理のイメージとしては、おおよその枠を決めて、その枠内に認識できる物体があるかどうかをチェックし、あれば枠を画像に描き、なければ次の枠に移動して物体があるかをチェックするという感じです。この枠の候補領域を決めるのも人間の目でみれば「この辺に」と決められますが、コンピュータにとって画像はただ数字が並んでいるだけなので、枠である候補領域を決めるのも一苦労です。R-CNNでは選択的検索法という方法で約2000個の候補領域を抜き出し、ひとつひとつの候補領域にCNNで処理をしています。このR-CNNのCNNの処理部分は、前回話をしたAlexNetを転移学習させています。転移学習とは、すでにある領域で学習したモデルを利用して効率よく学習させる方法のことです。もちろんR-CNNは2014年に発表された論文なので、改良版がいくつかあり、Fast R-CNN、Faster R-CNNと処理が順に早くなっています。
物体検出は人間が目視して確認していたものを深層学習で解決しようとする手法のひとつで、自動運転やセキュリティにもつながっていきます。今回紹介した手法は少し古い(といっても5、6年前)ですが、現在はもっと精度の高い手法が発表されています。興味があればぜひ文献を読んでみてはいかがでしょうか。
[※1] Regions with Convolution Neural Network
「YSeye21号」掲載