Mnemosyne

Linux, 機械学習について個人的なメモを綴っていきます

Raspberry Pi 3にkeras+tensorflow+openCV環境構築

f:id:free6464:20171203023238j:plain
RaspberryPiに学習モデルの判定環境を整えたのでそのメモ(2017/12/02)
使用したOSは
/*****************************/
RASPBIAN STRETCH LITE

Version:November 2017
Release date:2017-11-29
Kernel version:4.9
/*****************************/

本記事の概要としては、予め機械学習させて作成したモデルを使用して
WEBカメラから得られた画像を判定する為にラズパイ3を利用する。
その為にkeras+tensorflow+openCVの環境を整え、さらにRDPを使用してリモートで判定結果を確認できるようにする。

まずはラズパイの環境を最新にする。

$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade

開発環境を構築するにあたって必要なライブラリのインストール

$ sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libbz2-dev libreadline-dev
$ apt-get install git
$ sudo apt-get install python3-pip python3-dev
$ sudo apt-get install python-pip python-dev

肝心のkeras+tensorflow+openCVの環境はからあげさんのサイトからそのまんま引用します。
karaage.hatenadiary.jp
Python2を利用してTensorflowを導入します。

$ wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.1.0/tensorflow-1.1.0-cp27-none-linux_armv7l.whl
$ sudo pip install tensorflow-1.1.0-cp27-none-linux_armv7l.whl
$ sudo pip uninstall mock
$ sudo pip install mock

OpenCV、画像のリサイズなどに使用するPILをインストール

$ sudo apt-get install python-imaging
$ sudo apt-get install libopencv-dev
$ sudo apt-get install python-opencv

グラフ描写の為にPandas、matplotlibをインストール
*kerasの依存ライブラリだった気がするのでインストール推奨

$ sudo apt-get install python-pandas
$ sudo apt-get install python-matplotlib

tensorflowのフレームワークであるkerasをインストール

$ sudo apt-get install python-scipy
$ sudo apt-get install python-h5py
$ sudo pip install keras

試しにここでKerasを動かすと、メモリ不足に起因するエラーが発生。以下のコマンドでスワップ領域のサイズを編集した。

$sudo vi /etc/dphys-swapfile
デフォルトのサイズが100MBくらいなので、CONF_SWAPSIZE=1024と編集して1GBくらい用意しておいた。
$sudo /etc/init.d/dphys-swapfile restart
$swapon -s
実際にメモリが増えているかを確認する

Raspberry Pignome+rdp+opencvの実行環境を整える方法は以下の記事に記載しています。
CUI環境のRaspberry Pi 3にGNOMEを導入し、RDPでopenCVを実行する - Mnemosyne