一つ前の関連記事:NVIDIA Jetson Nano vs Raspberry Pi with NCS2 (Movidius Neural Compute Stick 2)
全242回のめざましじゃんけん結果取得を通じて
一番のテーマは、信頼性の向上です。
「全部の回次を正しく結果取得」
1回1回の信頼性向上・・・まだ、道半ば。誤判定をなくす、(運用コストが低く)信頼性の高いH/Wの導入。そして、H/Wの冗長化
イレギュラー開催などへの対応・・・見えていない部分もありますが、ダブルポイントなどへの対応、年末年始など、個別開催時間への対応など
信頼性を向上するうえで、システムの構成予想削減(よりシンプルに)、より高信頼なハードウェアで。
最近ホットな出来事は、USBカメラの画像が悪い時(太陽の高さなど、テレビの設置環境に依存)の画像検出率低下、さらには誤判定。
これらを回避する途中に、エッジコンピューティングでの画像検出エンジンの高速化が実現しました。
(高速化や信頼性を主テーマとすると、他の方式もありますが、あくまで気になる分野や楽しそうな技術の採用を優先させております)
- Raspberry Pi単体での画像検出を断念 (Windowsメインマシンでのモデル実行)
- Raspberry Pi with NCS2での画像検出へ移行
世界最速めざましじゃんけん結果公開Neural Compute Stick 2 ( NCS )
この時点でもすでに、エッジコンピューティングの凄さに感動しました。 - NVIDIA Jetson Nanoを試行開始(Keras + YOLO)
- NVIDIA Jetson Nanoでlibdarknet.so利用(NVIDIA CUDAの真髄)
YOLO / Darknetを動かす上で、アーキテクチャ的には一番良い選択なのだと思います。それにしても、Keras(TensorFlow)と比べて、倍速になるとはびっくりしました。
Keras導入時点のWEB記事では、導入が難しそうな記事も散見され、深追いしておりませんでした。
NVIDIA CUDA Toolkit 10.0 に対応しcuDNN 7.3など、機械学習時にデファクトスタンダートとなっているライブラリやフレームワークが多く、システムアーキテクチャの選択肢が非常に多いです。
今回も他フレームワークも視野に入れ、比較検討することが出来ました。TensorFlow や PyTorch、Caffe、Keras、MXNet などの機械学習 (ML) フレームワークに対応しています。ネイティブにインストールすることができます。
NVIDIA Jetsonの情報収集
NVIDIAの社員や関係者が強力にサポート、情報発信。
さすが、大手。ハードの供給体制もRaspberry Pi と比べて力強さを感じます。開発コミュニティーへの社員の書き込みが、本当にすごい。
オープンコミュニティの新しい形にも見えました。ハードでビジネスは成立し、技術者が率先して、コミュニティに参加。これは、弱点と感じた部分を、むしろ強み(正しい情報、責任感ある素早い対応)にしております。
今回は、特にこれらを体感出来ました。
関連記事:
NVIDIA Jetson Nanoで機械学習(推論)
Movidius Neural Compute Stick2とRaspberry Pi 3B +も利用しておりますが、GPU/推論向けデバイスが一体化されており、少しサイズは大きいです。
USB3.0などI/Fに差分もあるので、Raspberry Pi 4Bと比較したほうが良いかもしれません。ただし、Raspberry Pi 4B と NCS2を同時導入すると考えると、Jetson Nanoのほうがコストパフォーマンスが良いと思いますし、便利なフレームワーク利用により、開発時の手間(コスト)も考えると、機械学習にはNVIDIA Jetson Nanoがベストな選択と思います。
Jetson Nano、Raspberry Pi 3B + with NCS2 速度比較
めざましじゃんけん時に取得したWEBカメラ画像を216枚で画像認識エンジンを動作させた際の性能比較です。
以前同じテストを用いて、NCS2(Movidius Neural Compute Stick 2)導入により十分高速化された結果となりました。今回は、その結果と比べても十分に魅力的なJetson Nanoの結果が出ました。
参考記事:ディープラーニング向けUSBアクセラレーターNeural Compute Stick 2ー
Windows(GPU未使用) Core i7 6700/(Skylake) クロック周波数:3.4GHz | 15秒 opencv.dnn |
Raspberry Pi 3 Model B+ ARM Cortex-A53 1.4GHz | 785秒 opencv.dnn |
Raspberry Pi 3 Model B+ ARM Cortex-A53 1.4GHz + Movidius Vision Processing Unit(Myriad 2) | 105秒 opencv.dnn |
NVIDIA Jetson Nano Quad-core ARM A57 @ 1.43 GHz | 109秒 opencv.dnn |
NVIDIA Jetson Nano Quad-core ARM A57 @ 1.43 GHz + 128-core Maxwell | 46秒 Keras-YOLO |
NVIDIA Jetson Nano Quad-core ARM A57 @ 1.43 GHz + 128-core Maxwell | 20秒 libdarknet.so (ctypes) |
2019-08-14 20:34:48,460:202:INFO:ループ開始:D:\pic4ml\Janken_Target_Test\20190806_055717_102196_1.jpg 処理回数:1 2019-08-14 20:35:03,389:256:INFO:ジャンケン結果判定 Len(total_results): 3 List Values: 0,2,5 019-08-14 20:35:03,390:289:INFO:ジャンケン結果:Chokiを出してLose、相手はGoo
2019-08-15 12:11:10,292:202:INFO:ループ開始:/home/miki/cronScript/Janken_Target_Test/20190806_055717_102196_1.jpg 処理回数:1 2019-08-15 12:24:15,786:256:INFO:ジャンケン結果判定 Len(total_results): 3 List Values: 0,2,5 2019-08-15 12:24:15,787:289:INFO:ジャンケン結果:Chokiを出してLose、相手はGoo
2019-08-24 12:16:09,419:202:INFO:ループ開始:/home/miki/cronScript/Janken_Target_Test/20190806_055717_102196_1.jpg 処理回数:1 2019-08-24 12:17:54,200:256:INFO:ジャンケン結果判定 Len(total_results): 3 List Values: 0,2,5 2019-08-24 12:17:54,201:289:INFO:ジャンケン結果:Chokiを出してLose、相手はGoo
2019-10-05 11:01:36,900:4:INFO:ループ開始:/home/miki/hdd/cronScript/Janken_Target_Test/20190806_055717_102196_1.jpg 処理回数:1 2019-10-05 11:02:22,651:7:INFO:ジャンケン結果判定 Len(total_results): 3 List Values: 0,2,5 2019-10-05 11:02:22,701:30:INFO:ジャンケン結果:Chokiを出してLose、相手はGoo
2019-10-12 15:36:23,341:164:INFO:ループ開始:/home/miki/hdd/cronScript/Janken_Target_Test/20190806_055717_102196_1.jpg 処理回数:1 2019-10-12 15:36:43,531:210:INFO:ジャンケン結果判定 Len(total_results): 3 List Values: 0,2,5 2019-10-12 15:36:43,532:247:INFO:ジャンケン結果:Chokiを出してLose、相手はGoo
関連記事:NVIDIA JETSON NANO