忍者ブログ

設備のマニアどっとこむ

IoT開発、設備・DIYのブログ!

raspberry piでAIを使う

スペックに制限のあるラズパイでも工夫すればAIを使うことはできます。
まずAIライブラリをThonnyなどで使うのがかなりきついのでjupyter notebookを入れます。
これでブラウザでpythonを軽めに?動かすことができます。
sudo apt-get install build-essential python-dev
sudo pip install jupyter
sudo apt-get install libpng12-dev libjpeg8-dev libfreetype6-dev libxft-dev liblapack-dev libatlas-base-dev gfortran g++


インストールが済んだら jupyter notebookとコマンドを打てば起動します。

しかしそのままではログインできないので password or tokenというところに 
token= 以下をコピペして進んでください。


トークンはコマンド打ってすぐのやつです。何個か出てくるので注意!


そこから右上のNEW→pythonで新規作成できるのですが、python2のみになっている場合は 
下記コマンドで解決できます。


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が搭載されるのがトレンドに……
なるのかなあ。


↑こんな本も出てます!







拍手[0回]

PR

コメント

翻訳(Translate)

プロフィール

HN:
佐々木 雅史
性別:
男性
自己紹介:
2021年 ラズパイ、M5stackを用いたIoT開発を専門で受注するアルティメンテを設立。代表を務める。
・2020年ラズパイコンテスト優良賞受賞
・設備系資格多数(電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトなど)

AD

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30