LoginSignup
1
1

More than 5 years have passed since last update.

Sklearn-theanoを使ってR-CNNをしてみよう

Last updated at Posted at 2016-08-11

はじめに

CNNの前処理としてOpenCVでBINGを使ってみた
R-CNNとしてSelective search を使ってみた

これまで、BINGやSelective Searchを使ってR-CNNを行ってきました。
が、折角CNN(畳み込み処理)を行うならその時にオブジェクトっぽい箇所を見つけてよと思った方はいないでしょうか。安心してください、それできますよ!
ということで、今回はCNNで位置推定を行います。(※Sklearn-theanoのGitHubではLocalizing - 位置推定と記載されているので以下こちらの表現を使うことにします)

Sklearn-theanoって何?

Sklearn-theanoはディープラーニングのフレームワークであるTheanoを抽象化することでディープラーニングを容易にするライブラリです.似たようなものだと、Kerasがあります。こちらは流行っていてかなり良い感じですが、今回は敢えて無名?のSklearn-theanoを使ってみます。

Sklearn-theanoならこんなことができちゃうよ

前述のようにSklearn-theanoは位置推定だけではなく画像の分類や推定なども簡単にできます。
また、OverFeat, AlexNet, VGGNet, GoogLeNet などの有名所のライブラリを簡単に試すことができます。
色んな学習済みモデルを使って実践的な問題を解いてみたい。
そんなあなた、Sklearn-theanoを使ってみてはいかがでしょうか?

早速使ってみよう

https://github.com/sklearn-theano/sklearn-theano
上記のリポジトリをクローンして、コマンドの python setup.py install でインストールします。また、こちらのパッケージが必要なので、インストールしていない場合は先にインストールしておきましょう。
・numpy
・scipy
・theano
・scikit-learn
・pillow

結果

今回はSampleにあるplot_single_localization.pyを使ってみました。
最後のフレームでナマケモノの位置が推定されています。
かなりざっくり説明すると、最初に黄色の四角い領域内でオブジェクトらしい点を推定していき、集まった点郡を最終的なオブジェクトとして検出します。
検出の詳しい過程はこちらのページを参照してください。

figure_sloth_example.png

さて、気になる処理時間ですがおよそ310sec.... 約5分!!!!
長い。。。公式にも352.80 secondsと書いてあるので間違いなさそうです。

まとめ

今回は、Sklearn-theanoというマイナーなライブラリを使って、CNNで位置推定を行いました。ある程度の時間がかかっても問題ないという場合は使ってみるのも良いかもしれません。が、スピードが求められる場合は言うまでもなく厳しいと思います。
どなたかリアルタイムに耐えうる一般物体検出方法をご存知な方、一報ください

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1