ラズパイで、からあげさんの簡単ディープラーニングを試してみた
まずは、からあげさんのこちらのサイトを参考にして環境構築
Raspberry PiとTensorFlowを使ったディープラーニングの開発環境構築
環境構築
Tensorflow+kerasインストール
$ pip3 install numpy==1.13
$ sudo apt-get install libblas-dev liblapack-dev python3-dev libatlas-base-dev gfortran python3-setuptools
$ sudo pip3 install https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.4.1/tensorflow-1.4.1-cp35-none-linux_armv7l.whl
$ sudo apt-get install python3-h5py
$ sudo pip3 install keras
$ pip3 install keras==2.1.2
画像処理に使用するOpenCV・PILというライブラリをインストール
$ wget https://github.com/mt08xx/files/raw/master/opencv-rpi/libopencv3_3.4.0-20180115.1_armhf.deb
$ sudo apt install -y ./libopencv3_3.4.0-20180115.1_armhf.deb
$ sudo ldconfig
matplotlibもインストール
$ sudo apt-get install python-pandas
$ sudo apt-get install python-matplotlib
TensorFlowで顔認証
からあげさんのこちらのサイトを試してみました
Raspberry Pi上でTensorFlowで簡単にディープラーニングを試せるツール「tensorflow-pi」でロボホンの幻の顔認識機能に挑戦してみた
からあげさんの自前のパッケージ「tensorflow-pi」を使って顔認識します
tensorflow-piをダウンロード
$ cd
$ git clone https://github.com/karaage0703/tensorflow-pi
$ cd tensorflow_pi
サンプルデータはうちの娘(gum)、息子(banana)の画像を使います
- Googleフォトから2人の画像をダウンロード
- 画像から顔の部分を切り出し
ラズベリーパイに人別に画像を配置します
tensorflow-pi
|-- data
|-- image_data
|-- etc
|-- gum
|-- banana
ectには顔以外の画像を保存しておきます
ラベル作成
$ cd ~/tensorflow-pi/data
$ python make_train_data.py image_data
/tmp/tensorflow_pi/ 以下に labels.txt , train.txtのファイルが生成されます
cnn.py のファイルにあるNUM_CLASSES = 4というような記述を確認して
クラスの数と違えば修正します
etc、gum、bananaと3だったので、NUM_CLASSES = 3に修正しました
まずは学習です
$ cd ~/tensorflow-pi
$ python train.py
こんな感じで学習が進んでいきました
最後に結果が出てきて、認識率0.5だそう
なんか低めだけどとりあえず、次
判別テストをしてみる
$ cd ~/tensorflow-pi
$ python predict.py test.jpg
gumの画像(test.jpg)を配置してコマンドを実行、結果は.....
gum!
ちゃんと判別されてる!
いざ顔認識実行!
$ cd ~/tensorflow-pi
$ python face_recog_pi.py
おっ!顔認識できた!
1回だけだけど、認識されました!
ちなみにわたしの顔をいくらカメラに映してもまったく反応せず
親子で顔は似てるほうなのに、さすが
実はここで使った、学習サンプル画像は1人につき5枚のみ(めんどうくさがりすぎ)
ひととおり、どんなものか分かった感じなので
もう少しtensorflowについて勉強してからまた再チャレンジしよう