【Movidius神經運算棒】在Raspberry Pi 上執行 Intel® Movidius™ NCS應用程式

Original post from Intel Movidius NCS blog: “Run NCS Applications on Raspberry Pi”:https://movidius.github.io/blog/ncs-apps-on-rpi/ )

 

什麼是嵌入式板?

Intel® Movidius™ Neural Compute Stick (簡稱Intel® Movidius™ NCS) 是將Intel® Movidius™視覺處理單元(VPU)整合在USB裝置上。這樣就可對數百萬種低功耗的嵌入式裝置提供視覺智能,例如監控攝影機、可用手勢控制的無人機、工業級機器視覺設備等等。由於Intel Movidius NCS是針對低功耗應用所設計,因此將其與像是MinnowBoardUP BoardRaspberry Pi (RPi) 等低功耗嵌入式系統搭配是很合適的應用。

作者/攝影   曾吉弘
時間   2小時
難度

★★★★★

材料表

 

開發 vs 部署 Development vs Deployment

Raspbian (RPi專用的作業系統)提供了相當好的圖形化使用者介面(GUI),使用者可以接上螢幕、鍵盤滑鼠之後就可以直接操作Pi。雖然這種作法便於探索Pi的各種功能以及進行一些輕量化的開發作業,但在headless mode(不接上任何螢幕鍵盤滑鼠)下部署嵌入式產品/專案也是常見的做法。例如想要做一台Pi 追乒乓球機器人的話,顯然是無法接上螢幕鍵盤滑鼠的吧。

嵌入式產品的軟體一般來說都是在開發平台(例如桌上型/筆記型電腦或伺服器)上完成的,最後產生的二元檔再部署到嵌入式硬體上即可。為了要支持開發與部署這兩件事,Intel® Movidius™ Neural Compute SDK (NCSDK) 有兩種執行模式:

  1. Full SDK模式 – 在Pi安裝toolkit與API framework
  2. API-only模式 – 只在Pi安裝API framework
    • 安裝較快;但剖析(profiling)與編譯網路需在桌上型/筆記型電腦上完成

即便未安裝toolkit,API-only模式也讓您可以在Pi上開發各種app。API-only模式的限制在於無法剖析、檢查/驗證與編譯以及將神經網路編譯為二元graph檔。例如mvNCProfile、mvNCCheck與 mvNCCompile 都沒有安裝。

邊做邊學!

您會製作:

結合Raspberry Pi與NCS神經運算棒的嵌入式深度神經網路(DNN)影像處理系統。

您會學到:

  • 如何在Raspberry Pi的API-only模式下安裝NCSDK mode
  • 如何在Raspberry Pi上執行 NCS應用程式

您會需要:

  • Intel Movidius Neural Compute Stick 神經運算棒 – 購買請按我
  • 32/64位元的桌上型/筆記型電腦,作業系統須為Ubuntu 16.04 (“開發機器”)
  • Raspberry Pi (RPi) 3 Model B 單板電腦
  • 可外部供電的USB hub

如果還沒做的話,請在您的開發機器上安裝完整的NCSDK。請參考Intel Movidius NCS Quick Start Guide上的安裝步驟來完成。

開始吧!

Step 1:安裝Raspberry Pi為桌面模式,如下圖

樹莓派基金會取得最新的作業系統 Stretch img 檔之後,燒錄開機用的 sd卡。確認Raspberry Pi 開機並連上網路之後,使用以下指令更新系統:

注意:需使用 Raspbian Stretch,上一版 Jessie 確認不支援。

sudo apt-get update

Step 2:安裝Debian與Python相依套件

開啟terminal,輸入以下指令

sudo apt-get install -y libusb-1.0-0-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libatlas-base-dev git automake byacc lsb-release cmake libgflags-dev libgoogle-glog-dev liblmdb-dev swig3.0 graphviz libxslt-dev libxml2-dev gfortran python3-dev python-pip python3-pip python3-setuptools python3-markdown python3-pillow python3-yaml python3-pygraphviz python3-h5py python3-nose python3-lxml python3-matplotlib python3-numpy python3-protobuf python3-dateutil python3-skimage python3-scipy python3-six python3-networkx

您也可用pip package manager (pip3 install)來安裝python相依套件,但我發現用debian package manager (apt-get install python3-xxx)來安裝會比較快。

Step 3:下載NCSDK到Pi

開啟terminal,輸入以下指令

mkdir -p ~/workspace
cd ~/workspace
git clone https://github.com/movidius/ncsdk

Step 4:編譯並安裝NCSDK API framework

開啟terminal,輸入以下指令

cd ~/workspace/ncsdk/api/src
make
sudo make install

Step 5:使用NC App Zoo範例程式來測試安裝是否成功

開啟terminal,輸入以下指令

cd ~/workspace
git clone https://github.com/movidius/ncappzoo
cd ncappzoo/apps/hello_ncs_py
python3 hello_ncs.py

您應該會看到類似的輸出畫面:

Hello NCS! Device opened normally.
Goodbye NCS! Device closed normally.
NCS device working.

恭喜!您成功在Pi 的API-only模式下安裝NCSDK了。 

還能做什麼:部署已編譯的graph檔

Step 5中的hello_ncs_py範例程式只是開始NCS裝置就關閉了;它實際上並沒有執行任何推論。如果要在NCS上進行推論的話,we need a graph file that was generated by mvNCCompile,這是NCSDK Toolkit的一部分,但並沒有安裝在Pi上。

請改用已安裝完整SDK的開發用機器(桌上型/筆記型電腦),並根據 mvNCCompile doc page 上的教學,以GoogLeNet 來產生graph檔。將開發機器上的 ~/workspace/ncsdk/examples/caffe/GoogLeNet/graph 複製到 Pi 的 ~/workspace/ncappzoo/caffe/GoogLeNet/graph路徑下。

現在Pi 上有graph檔了,請根據NCS image classifier 的說明在Pi上執行影像分類器。

還可以試試

  • 在Raspberry Pi上執行NCS image classifier
  • 在RPi上編譯並執行C/C++ 範例程式:
    • ~/workspace/ncappzoo/apps/hello_ncs_cpp

延伸閱讀

相關文章:

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *