IoT開発、設備・DIYのブログ!
python3 -m IPython kernelspec install-self
あとはwindowsでもラズパイでも変わりません。
下記コードで以前のこの記事の手書き数字画像の判別ができます。
画像データはフルパスが好ましいですが home/pi/直下であれば動かせます。
※ちなみに、sklearn、numpyのインポートは必要ですがopenCVはjpg→png変換に使用しているだけで
必須ではありません。
from sklearn import datasets, cross_validation, svm, metrics
import numpy as np
from PIL import Image
import cv2
digits = datasets.load_digits()
im_gray = cv2.imread('test6.jpg')
cv2.imwrite('my_photo.png', im_gray)
label_test = [6]
image = Image.open('my_photo.png').convert('L')
image = image.resize((8, 8) Image.ANTIALIAS)
img = np.asarray(image, dtype=float)
img = np.floor(16 - 16 * (img / 256))
img = img.flatten()
data_train = digits.data
label_train = digits.target
data_test = img
clf = svm.SVC(C=1.0, cache_size=200, class_weight=None, coef0=1.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
clf2 =data_test.reshape(1,-1)
clf.fit(data_train, label_train)
predict = clf.predict(clf2)
print(data_test)
print(clf2)
print(clf)
print("テストラベル=",label_test)
print("解析結果=",predict)
ac_score = metrics.accuracy_score(label_test, predict)
print("正解率=", ac_score*100, "%")
これでラズパイで手書きデータを判別することができました。
AI関連のライブラリはリソースが必要と思われがちですが、大量のデータのディープラーニングでもやらない限り
結構動いてしまったりします。 今後はラズパイのような小型PCにAIが搭載されるのがトレンドに……
なるのかなあ。
↑こんな本も出てます!
('n02087394', 'Rhodesian_ridgeback', 0.58250064)
('n02090379', 'redbone', 0.1364721)
('n02099601', 'golden_retriever', 0.058095142)
('n02088466', 'bloodhound', 0.055783514)
('n02106662', 'German_shepherd', 0.03908478)
reshape前
[0. 0. 1. 2. 3. 2. 1. 0. 0. 0. 7. 8. 7. 9. 9. 0. 0. 0. 0. 0. 0. 7. 3. 0.
0. 0. 0. 0. 3. 9. 0. 0. 0. 0. 0. 0. 9. 2. 0. 0. 0. 0. 0. 6. 6. 0. 0. 0.
0. 0. 0. 3. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
reshape後
[[0. 0. 1. 2. 3. 2. 1. 0. 0. 0. 7. 8. 7. 9. 9. 0. 0. 0. 0. 0. 0. 7. 3. 0.
0. 0. 0. 0. 3. 9. 0. 0. 0. 0. 0. 0. 9. 2. 0. 0. 0. 0. 0. 6. 6. 0. 0. 0.
0. 0. 0. 3. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
テストラベル= [7]
解析結果= [7]
正解率= 100.0 %
こうでればOKです。ほかにも4を試したりしましたが正解してます。
まあ精度はどうであれ、AIを実感することができました。
tensorflowでは最初から学習データを使うことができます。OpenCVみたいに死ぬほどデータを
用意しなくていいみたいですね。
最近Qiitaみたいにこのブログがなってきましたが、いろんなことやっていきますよ!!
sudo apt-get update
sudo apt-get install python-pip python-dev
そして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