AKIBAko

自分のためのナレッジ的ブログ

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

でも、とりあえず学習はできているようだ。
あとで手書き数字で推論してみよ