ラズパイはじめてみた(TensorFlow/Keras/OpenCV3導入編)
Raspberry PiにGoogleが開発した機械学習のソフトウェアライブラリTensorFlow、
深層学習ライブラリKeras、 および画像処理ライブラリOpenCV3を導入してみました。
筆者がTensorFlowを使って何をやりたいかというと、以下のQiita記事にある画像認識です。 qiita.com
本記事では、TensorFlow, Keras, OpenCV3のインストール方法を記載します。
※ラズパイの初期セットアップしたときの記事は以下の通りです。 chinokalog.hatenablog.com
環境
今回使用する環境は以下の通りです。
- HW: Raspberry Pi3 Model B
- OS: Raspbian GNU/Linux 9.6 (stretch)
TensorFlowのインストール
以下のTensorFlow公式ページを参照しながら、インストールを実施します。 https://www.tensorflow.org/install/
まずは、お決まりのやつです。
$ sudo apt update
続いて、行列計算ライブラリであるlibatlas-base-dev
をインストールします。
$ sudo apt install libatlas-base-dev
そして、TensorFlowをインストールするのですが、
$ pip3 install tensorflow
を実行すると筆者の環境では、ReadTimeoutError
が発生してしまいました。
サーバの問題なのか、ネットワークの問題なのか不明。
ググると、以下のページに解決策を見つけました。
How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip? - Stack Overflow
HTTPタイムアウト時間のオプションを指定してpip実行すれば上手くいくとのこと。
そこで、以下のように実行しました。
$ pip3 --default-timeout=100 install tensorflow
これでインストールに成功。
動作検証として、Hello, World的な以下を実行しました。
$ python3 >>> import tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() >>> print(sess.run(hello))
Hello, TensorFlow!
が出力されればとりあえず問題なし。
ちなみに、バージョンは以下で確認できます。
$ python3 >>>import tensorflow as tf >>>tf.__version__
今回の使用環境のTensorFlowバージョンは、1.11.0
です。
Kerasのインストール
Kerasもpipからインストール可能です。
こちらもReadTimeoutError
の問題が発生したので、
HTTPタイムアウト時間のオプションを指定してpip実行しました。
$ pip3 --default-timeout=100 install keras
インストール後、バージョン確認を実施しておきます。
$ python3 >>>import keras >>>keras.__version__
今回の使用環境のKerasバージョンは、2.2.4
です。
OpenCV3のインストール
OpenCV3のインストールは、以下のQiita記事、およびGithubソースを 使用させていただきました。
記事の通り、以下を実行します。
$ OPENCV_DEB=libopencv3_3.4.5-20181227.1_armhf.deb $ curl -SL https://github.com/mt08xx/files/raw/master/opencv-rpi/${OPENCV_DEB} -o ${OPENCV_DEB} $ sudo apt autoremove -y libopencv{3,4} $ sudo apt install -y ./${OPENCV_DEB}
インストール後、バージョン確認を実施します。
$ sudo ldconfig $ python3 -c 'import cv2; print(cv2.__version__)'
今回の使用環境のOpenCV3バージョンは、3.4.5
です。
次回
学習済モデルであるInceptionV3を導入して、いよいよ画像認識に挑戦してみたいと思います。
(2019/01/21 更新)
やってみました。記事はこちら。
chinokalog.hatenablog.com