RaspberryPi 3B+とIntel Movidiusで、サンプルコードを動かす!
前の記事こんなのを書きました。macOSでMovidiusの動作を試したい人はこの記事をお読みください、きっとお役に立ちます!
macOS Mojave VirtualBox Ubuntu 16.04 で Intel Movidiusを動かす方法!
目次
Raspberry Piでの試行錯誤
その後ちょっとRaspbery Piと繋いて、実験してみました。うまくいきませんでした。
USB全部ギリギリ刺せました!
(^。^) pic.twitter.com/dKlv3hjXgN— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年11月1日
#RaspberryPi で openCVをインストールしています!
コンパイル、時間がかかります! pic.twitter.com/k9vRIhivvW— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年11月6日
そのために、新しい Raspberry Pi 3B+も調達したりしていました。
#RaspberryPi 3B+ ですよ!! pic.twitter.com/zacGWu9r0G
— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年11月8日
こんな感じで繋いて
#ラズパイ #RaspberryPi
はい!こちらです! pic.twitter.com/vz7CKXGmD8— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年11月9日
新しいRaspberryPiでコンパイルしても
#movidius 今インストール中。。。#RaspberryPi #人工知能 pic.twitter.com/sX9eqeyUg8
— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年11月11日
Raspberry Piで色々エラーに遭遇してできなくて、macOS Mojave + VitrualBox + Ubuntu 16.04でMovidiusのサンプルコードを動かすことができるようになったのです。
その後、もう一度、フレッシュな(Raspbian Stretch)SDカードを用意して、最初からやり直しましたら、全部うまく行きました!
この記事では、RaspberryPi 3B+でIntel Movidiusを動かす必要なものをインストール手順などを説明していきます。
まず、もちろんRaspbianです
microSDのOSの用意はこちらの記事をご参照ください。
次は、キーボード、マウス、ディスプレー、電源、一式繋げて、Raspberry Piを起動して、必要な設定を終わらせましょう。
必要があれば、
sudo apt-get update sudo apt-get upgrade
も実行して、システムを最新の状態にしておいてください。
今回必要なのはRaspbian の Stretchです。
SDカードの容量は最低16GB私が32GBを使っています。32GBをお勧めします。
swapfile sizeの増大
NCSDK と OpenCVのインストールをするに下記のコマンドを実行して
sudo nano /etc/dphys-swapfile
このように
CONF_SWAPSIZE=2048
設定しましよう!
sudo /etc/init.d/dphys-swapfile restart
それから
free -m
実行して、swapsizeを確認しましょう。2047になっているはずです。
私は、1回目、ここをswapsizeを設定せずに、100のままでmake installをした時に、やはり、何回もフリーズしたりして、結果としても意味不明なエラーになり、うまくサンプルコードを実行できませんでした。
このステップを忘れずに、必ず実施してください。
ncsdkインストール
ncsdkはv2.xもでていますが、今Raspberry Piでは2.xは正常に動作しない可能性がありますので、1.xのバージョンにしてください。
インストールと作業用のフォルダを一応作りましょう
私はworkspaceにしています。
mkdir workspace
次は workspaceに入って後続の作業をします。これから、tensorflowとOpenCVのインストール作業もこのフォルダで実施しましょう。
git clone http://github.com/Movidius/ncsdk
それから
cd ncsdk make install
で、インストールをしてください。Raspberry Pi 3Bだと、2,3時間がかかる気がします。3B+の方では、一時間程度で完了できます。(正確に計測しているわけではなく、あくまでも感覚値です、ご参考になればと思います。)
make install完了後、そのままのTerminalでは、サンプルコードの実行ができません。
別のTerminalのウィンドウを開いてコマンドを実行してください。(意外とハマります。笑)
今回は、インストールはtensorflowがインストールされないようなので、あとで、手動でtensorflowをインストールします。
Tensorflowのインストール
コンパイル済みのものをインストールしましょう!
https://github.com/lhelontra/tensorflow-on-arm/releases
数分間で完了します。(Raspberry Pi 3B+で)
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.12.0/tensorflow-1.3.1-cp35-none-linux_armv7l.whl sudo pip3 install tensorflow-1.12.0-cp35-none-linux_armv7l.whl
OpenCVのインストール
こちらもコンパイル済みのものをインストールをしましょう!
wget https://github.com/mt08xx/files/raw/master/opencv-rpi/libopencv3_3.4.0-20180115.1_armhf.deb sudo apt install -y ./libopencv3_3.4.0-20180115.1_armhf.deb sudo ldconfig
ldconfigは共有ライブラリの依存関係情報を更新します。
数分間で完了します(Raspberry Pi 3B+で)
これで準備万端です!
サンプルコードのダウンロード・実行
movidiusを使ったサンプルコードはこちらにまとめてあります。
https://github.com/movidius/ncappzoo
こちらも、同じように、バージョンV2.x系ではなく、v1.x系を使ってください。(workspaceフォルダにcloneしましょう。)
git clone https://github.com/movidius/ncappzoo.git
cloneが完了しましたら、workspace/ncappzoo/apps/にたくさんのサンプルコードが入っています。
その中のsecurity-camフォルダに入って
make run
を実行してみてください!
または、直接に
python3 security-cam
PiCameraを使っている場合は
python3 security-picam.py
私はこちらで、実行しました!
#RaspberryPi でも出来ました!
嬉しい!
😃
人が認識されます! pic.twitter.com/9pXBVZ6NgD— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年11月12日
Movidius NCSの場合
とてもスムーズです!
人物(私)検出!
スクリーンショットを撮るために、手が足りないので、自分の写真をまずiPadに表示させて、カメラを向けて、やりました!笑 pic.twitter.com/jhmp39jNVQ— 深層学習・Python・機械学習 (@kokensha_tech) 2019年1月18日
最後ですが、全てのインストールやコンパイル作業が終わりましたら、上のswapfile sizeを最初の100に戻した方が良いです。
そうでないと、SDカードの寿命が縮むらしいです。
まとめ
前の数日間、Raspberry Piにインストールはできたようですが、なかなかうまくサンプルコードを実行できなくて、諦めかけていましたが、macOSで動作確認ができて、もう一回やって、よかったでう。
上のサンプルコード以外も他も全部実行できるはずです!
これから、サンプルコードを噛み砕いて、理解して、消化したら、色々手を加えて実験したいと思います。
顔認識や、物体検出など、最近機械学習やディープラーニングの技術の成熟によって大分簡単にできるようになりましたが、やはり、自分で動かしてみて、ソースコードをいじるのが一番の勉強ですし、一番楽しいですよね!
また、新しい知見がありましtがら、共有します!
ではまた!
[amazonjs asin=”B074PRCJKH” locale=”JP” title=”Movidius Neural Compute Stick – NCS ニューラル ディープラーニング USB スティック”]
[amazonjs asin=”B0711PVX6Z” locale=”JP” title=”Amazonベーシック USB2.0 A(オス) – マイクロBケーブル 0.9m ブラック”]
[amazonjs asin=”4822292274″ locale=”JP” title=”独学プログラマー Python言語の基本から仕事のやり方まで”]
[amazonjs asin=”4873117585″ locale=”JP” title=”ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装”]
[amazonjs asin=”B07FQ9678G” locale=”JP” title=”ABOX Raspberry Pi 3 Model b+ ラズベリーパイ 3 b+【2018新型】 MicroSDHCカード32G/カードリーダ /5V/2.5A スイッチ付電源/高品質HDMIケーブルライン/ヒートシンク /簡単に取り付けケース /日本語取扱説明書”]