Edited at

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

More than 3 years have passed since last update.

こんにちは。

最近の人工知能ブームは留まることを知らず、

日常でも多くの人工知能関連のニュースを目にするようになって来ました。

東京大学入学を目指す東ロボくんはセンター試験模試で「偏差値57.8」を記録したそうです。私が受験をしたのはだいぶ昔になりますが、代わりにセンター試験を受けてほしかったです(笑)

また、あの有名なイーロン・マスクは「AIは悪魔を呼び出すようなもので、特に軍事利用については規制が必要」と語っています。AIが悪魔かどうかは置いておいて、軍事利用については最もな意見だと思います。

なんとか、新しいテクノロジーを戦争のためではなく有効に利用してほしいものです。

まぁもっとも、個人的にはもっと人間らしいAIが誕生するのはもう少し先になると思っていますが、どうなるでしょうか。


概要

さて、前回R-CNNとしてBING(Objectness)を使ってみましたが、

今回は最近話題になっているSelective Searchを使ってみたいと思います。

R-CNNやBINGについては前回の記事を参照してください。


Selective Searchとは

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


手順

今回はAlpacaさんのライブラリを使用させていただきました。

試した環境:Windows7(64bit), Python2.7

ライブラリのインストールは「pip install selectivesearch」で行います。


結果

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

割りとオブジェクトっぽいところを検出していますね。

次に交差点画像の結果です。

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


まとめ

BINGと比べてると高精度な検出をしている感じです。

しかし、Selective Searchには処理が遅いという致命的な弱点があります。(私の環境では20~30秒かかっていしまいました)※あくまで今回使用したライブラリの所感です。他のライブラリは試していないため分かりません。

最も処理速度の問題は、GPUの並列処理等で改善するのかもしれません。今後の展開に期待しています。

=どなたかSelective Searchの高速化や高精度化の方法を教えて下さい=