Movidiusを使ってリアルタイム画像解析(ラズパイ版)

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

昨年夏、Movidius™ Neural Compute StickというディープラーニングエンジンをUSBチップ化したものが販売され、すぐさま飛びついたものの何もせずに放置。
机の奥隅に眠っていたのを最近発掘して、ちょっと遊んでみました。

    1. Raspberry piとカメラとMovidiusを接続します
      ※Raspberry piは2でも動くが3が吉、カメラはUSBでも内蔵でもどちらでも
    2. RASPBIAN STRETCH WITH DESKTOPをBootします
    3. Tensorflowをインストールします
      ※10分程度

      wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.3.1/tensorflow-1.3.1-cp35-none-linux_armv7l.whl
      sudo pip3 install tensorflow-1.3.1-cp35-none-linux_armv7l.whl
    4. Movidius Neural Compute SDKをインストールします
      ※ラズパイ3なら4時間程度、ラズパイ2なら8時間以上

      git clone http://github.com/Movidius/ncsdk && cd ncsdk && make install && make examples
    5. pyimagesearchで”DOWNLOAD THE CODE!”をクリックしてcodeをダウンロード
    6. ダウンロードしたcodeを適当な場所に展開
      ※ここでは/home/piの配下とします
    7. カメラがUSBカメラであればコード(130行目)を修正する
      sudo vi realtime-object-detection/ncs_realtime_objectdetection.py

      変更前:vs = VideoStream(usePiCamera=True).start()
      修正後:vs = VideoStream(0).start()

    8. 実行する
      python3 realtime-object-detection/ncs_realtime_objectdetection.py --graph realtime-object-detection/graphs/mobilenetgraph --display 1

こんな風になればオッケーです。

Movidiusを使わなければCPU100%使ってるような処理を、Movidiusに任せる事によってCPU使用率は数パーセント、そして処理は5倍~6倍の結果が得られました。

なお、最大4台までMovidiusを接続する事により並列処理が可能とのこと。
2台目は1台利用時の200%の性能向上が得られますが、3台目は160%、4台目は110%と落ちていくようです。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメント

  1. 釜江常好 より:

    質問です。ここの写真に出ているRasPiは、何でしょうか。

  2. がせ より:

    写真はRaspberryPi 3Bになります。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください