Python
機械学習
DeepLearning
人工知能

R-CNNとしてSelective search を使ってみた

More than 1 year has passed since last update.

こんにちは。
最近の人工知能ブームは留まることを知らず、
日常でも多くの人工知能関連のニュースを目にするようになって来ました。
東京大学入学を目指す東ロボくんはセンター試験模試で「偏差値57.8」を記録したそうです。私が受験をしたのはだいぶ昔になりますが、代わりにセンター試験を受けてほしかったです(笑)
また、あの有名なイーロン・マスクは「AIは悪魔を呼び出すようなもので、特に軍事利用については規制が必要」と語っています。AIが悪魔かどうかは置いておいて、軍事利用については最もな意見だと思います。
なんとか、新しいテクノロジーを戦争のためではなく有効に利用してほしいものです。
まぁもっとも、個人的にはもっと人間らしいAIが誕生するのはもう少し先になると思っていますが、どうなるでしょうか。

概要

さて、前回R-CNNとしてBING(Objectness)を使ってみましたが、
今回は最近話題になっているSelective Searchを使ってみたいと思います。
R-CNNやBINGについては前回の記事を参照してください。

Selective Searchとは

ピクセルレベルで類似する領域をグルーピングしていくことで候補領域を選出するルゴリズムです。要は似たような特徴を持つ領域を結合していき、1つのオブジェクトとして抽出する訳です。

SelectiveSearch.jpeg

手順

今回はAlpacaさんのライブラリを使用させていただきました。
試した環境:Windows7(64bit), Python2.7
ライブラリのインストールは「pip install selectivesearch」で行います。

結果

前回と同じように空港画像の結果です。(※検出した領域すべてを表示すると良く分からないため、検出したオブジェクトの中でサイズを限定して描画しています)
figure_1.png

割りとオブジェクトっぽいところを検出していますね。
次に交差点画像の結果です。
figure_2.png

うーん、ちょっと画像が複雑過ぎたのでしょうか。またはパラメータの問題でしょうか?

まとめ

BINGと比べてると高精度な検出をしている感じです。
しかし、Selective Searchには処理が遅いという致命的な弱点があります。(私の環境では20~30秒かかっていしまいました)※あくまで今回使用したライブラリの所感です。他のライブラリは試していないため分かりません。
最も処理速度の問題は、GPUの並列処理等で改善するのかもしれません。今後の展開に期待しています。
=どなたかSelective Searchの高速化や高精度化の方法を教えて下さい=