Rasspberry pi で画像解析
をしたかったけど Raspberry pi メモリ 1GB だと結構厳しいみたい。。
Caffe のリファレンスモデルで推論してみたらメモリ不足で落ちてしまった
bvlc_reference_caffenet で推論
リファレンスモデルの取得
$ cd ~/caffe/models/bvlc_reference_caffenet $ wget http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel
リファレンスモデルで推論
画像はとりあえず Caltech101 から chair を入力。deploy.prototxt と mean.npy はデフォルトのまま
$ cd ~/caffe/python $ python classify.py ~/101_ObjectCategories/chair/image_0010.jpg result.npy
実行結果はメモリ不足。。 やり方を考える必要がありそう
: File "/home/pi/caffe/python/caffe/classifier.py", line 26, in __init__ caffe.Net.__init__(self, model_file, pretrained_file, caffe.TEST) MemoryError
MNIST でトレーニング
mnist なら動かせるかなと思いトレーニングしてみた
mnist データの取得
$ cd ~/caffe/data/mnist $ ./get_mnist.sh
データベースの作成
$ cd ~/caffe/examples/mnist $ ./create_mnist.sh
solver.prototxt の編集
学習回数とかスナップショットとか回数をかなり少なく編集
net: "examples/mnist/lenet_train_test.prototxt" test_iter: 10 test_interval: 50 base_lr: 0.01 momentum: 0.9 weight_decay: 0.0005 lr_policy: "inv" gamma: 0.0001 power: 0.75 display: 10 max_iter: 1000 snapshot: 100 snapshot_prefix: "examples/mnist/lenet" solver_mode: CPU
トレーニング実施
$ cd ~/caffe $ examples/mnist/train_lenet.sh
回数かなり減らしたのにめちゃ時間がかかる。。
やってみてから気づいたが、Raspberry pi で学習する必要は全くなかった。
Iteration | accuracy | loss |
---|---|---|
100 | 0.904 | 0.33312 |
200 | 0.888 | 0.362638 |
300 | 0.974 | 0.0817223 |
400 | 0.99 | 0.0362336 |
500 | 0.975 | 0.0846267 |
600 | 0.943 | 0.158974 |
700 | 0.965 | 0.114721 |
800 | 0.982 | 0.058539 |
900 | 0.993 | 0.0229984 |
1000 | 0.975 | 0.0803299 |
でも、とりあえず学習はできているようだ。
あとで手書き数字で推論してみよ