マダカレークッテナイデショー

お仕事SE、趣味ドラム

ラズパイにKeras、TensorFlowとOpen CVを入れたときのメモ

Kerasを使ってみたい、ということで以下を参考に導入してみる。

qiita.com

基本的には上記の手順通り。ただ、根本的なところ(virtualenvの使い方)などで少しはまったので、自分が気になったところを残しておく。

OpenCV3インストール

環境を作成するとき、

mkvirtualenv cv -p python2
mkvirtualenv cv -p python3

自分の使いたい環境に合わせて、どちらかのみ作ればよい。 自分は(python2にしたかったのに)何も考えずどちらも実行して、あとで戻ってきた。

TensorFlowインストール

virtualenvでpipするときは、sudoは使わない。(システム環境の方のpythonにインストールされてしまう?)

Kerasインストール

こちらも、sudoは使わない。特に、kerasのインストールは時間がかかる(自分は一晩放置した)ので、やり直すのはなかなか面倒。

ただし、事前に

sudo apt-get install libhdf5-dev

をする必要がある。
このあと、学習済みモデルの利用の段階で必要になる。 その後、以下を実施(やたらと時間がかかる)

pip install h5py
pip install keras

学習済みモデルの利用

git clone https://github.com/fchollet/deep-learning-models
cd deep-learning-models

ここで、elephant.jpgを直接保存して、同ディレクトリに配置しておく

python inception_v3.py

それらしい結果が出た。
(実際には、TensorFlow ~ Keras の手順を何度かさまよった)

改造 以降

  • InceptionV3()は、数分時間がかかる。
  • ひとつひとつの認識は、5秒程度。(Raspberry pi B+)
  • ssh経由ではできない。(新たにウインドウを立ち上げようとするので。HDMIでつないで直接やるか、VNCなどで接続。)
  • cv2.waitKeyは、新たに立ち上がったウィンドウに対する入力を待つ。(コンソールではない)
  • 別のデバイスでカメラを使っていると怒られる。自分はmotionを起動していたので、sudo service motion stop した。

その他、疑問

  • opencv
    初めて使った。今回は初めて尽くしだったので、いろいろとつらい。でも、面白そうだ。ラズパイにこだわらず、普通にwindows環境でも使ってみよう。

  • virtualenvは便利
    それ故に自分がどの環境に対して操作しようとしているか意識しないと面倒になる。

  • virtualenv
    上記の詰まった箇所で、システム環境にインストールしたものをvirtualenvにリンクしなおす設定とかがありそうだが、未調査。
    また、virtualenv環境では、権限はどう考えたらよいのか。具体的には、sudo pip と pip したときは何が違ってくるのだろうか。 とりあえずシステムの環境に干渉しないように、pipで実施したほうがよさそう。