背景
前回からの続き
Jetson Nano 2GBに作ったモデルを載せて喋らせる
何をする
これも前回からの続き
組み上げてゆくもの
-
Jetson nano 2GB
- 「画像といえばGPU」とばかりに調達してしまった。
-
Wifiドングル TL-WN725N
- 単独でAzureと崇信できる必要がある。Jetsonは周辺機器をかなり選ぶみたいで、普通に手持ちの物は認識してくれなかった。同梱されているものもあるみたい。最初にこの記事を確認しておけばよかった、、
-
USBカメラ Logitech c270
- Raspiのカメラも試したが安定しなかったので素直にNVIDIAお勧めの機種を調達。運用の為に小さい筐体が必要な場合は何とかしてラズパイカメラを安定させる方法を考える
-
USB サウンドカード(waveshare usb to audio)
- ラズパイを使っていればいらなかった、、
-
スピーカ
- ラズパイならダイソーのスピーカでよかったのに、、ノリだけでJetson使うから、、
- 音読さん
-
convertio
- 再生する音声ファイルを作成し、wavファイルに変換
-
3Dプリンタ X-Maker
- コロナ対策の名目で導入したものが役に立った。フィラメントに初めてPETGを使用したら、糸引きが厄介だった。
-
3D モデル
- フリーの物を利用。きれいなモデルを公開頂きありがとうございます。
組み上げてゆく
ネットワークの接続
USBポートに挿して、ネットワークの接続をする。
ドングルは何もせずに認識してれた。
ネットワークの設定はモニタが断然便利。
この設定ができるとssh接続でjetsonを操作できる
python3関連のインストール
jetson nano用のSDカードを作成するときに使用したイメージのバージョンによっては不要かもしれない。
sudo apt install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev
sudo apt install python3-pip
sudo pip3 install -U pip
numpyを19.4にダウングレードしておくのが色々な不具合を避けるのに手っ取り早い
tfliteのランタイムインストール
lobeからエクスポートした際に作成されるrequirementに記載されている通り
pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp36-cp36m-linux_aarch64.whl
azure関連のインストール
azureのチュートリアルに記載されている通りに実行
pip3 install --upgrade azure-cognitiveservices-vision-face
soundcardの接続
つなぐだけで動き始めた
音が出ない時にの確認にはモニタがあると便利。
筐体の印刷
フリーで頂いたstlファイルから3Dプリンター用のファイルを出力
PETGだと充填率を下げた際に糸引きがすごくて、途中でダマのようになり上手く出力されなかったので、充填率を80%ぐらいに上げて印刷。
それでもバリがすごいでた
一連の作業で一番長く働いていたのは3Dプリンターだった
出来上がり
確認
- sshでコマンドを実行するとカメラが動いて(ランプが一瞬つく)、判定結果に応じた音声ファイルを再生する。
- モデル構築時に使用していない人の顔でも期待通りに判定してくれる。
- 鼻が出ている場合でも「マスク着用」と判定されるが、これはモデル構築時のラベルの付け方やデータ数の調整をして検証する必要あり。
所感
- 思いつきで初めて思ったところまでたどり着けた。
- dockerで構築すれば環境差異も吸収できて、環境に依らずでも実行可能にできそうと思ったが、Lobeは同じモデルで異なる環境用にエクスポートできるので、そのあたりは気にする必要はなさそう。
- 判定した理由や部分を返してくれる用になると安心感が増す。
- 角が立たないようにするにはもっと間抜けでかわいい筐体が良い気がする