(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是針對低功耗應用所設計,因此將其與像是MinnowBoard、UP Board或Raspberry Pi (RPi) 等低功耗嵌入式系統搭配是很合適的應用。
作者/攝影 | 曾吉弘 |
時間 | 2小時 |
難度 |
★★★★★ |
材料表 |
開發 vs 部署 Development vs Deployment
Raspbian (RPi專用的作業系統)提供了相當好的圖形化使用者介面(GUI),使用者可以接上螢幕、鍵盤滑鼠之後就可以直接操作Pi。雖然這種作法便於探索Pi的各種功能以及進行一些輕量化的開發作業,但在headless mode(不接上任何螢幕鍵盤滑鼠)下部署嵌入式產品/專案也是常見的做法。例如想要做一台Pi 追乒乓球機器人的話,顯然是無法接上螢幕鍵盤滑鼠的吧。
嵌入式產品的軟體一般來說都是在開發平台(例如桌上型/筆記型電腦或伺服器)上完成的,最後產生的二元檔再部署到嵌入式硬體上即可。為了要支持開發與部署這兩件事,Intel® Movidius™ Neural Compute SDK (NCSDK) 有兩種執行模式:
- Full SDK模式 – 在Pi安裝toolkit與API framework
- 安裝較慢;安裝步驟與在桌上型/筆記型電腦上安裝完全相同 – 請參考Intel Movidius NCS Quick Start Guide
- 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 確認不支援。
Step 2:安裝Debian與Python相依套件
開啟terminal,輸入以下指令
您也可用pip package manager (pip3 install)來安裝python相依套件,但我發現用debian package manager (apt-get install python3-xxx)來安裝會比較快。
Step 3:下載NCSDK到Pi
開啟terminal,輸入以下指令
Step 4:編譯並安裝NCSDK API framework
開啟terminal,輸入以下指令
Step 5:使用NC App Zoo範例程式來測試安裝是否成功
開啟terminal,輸入以下指令
您應該會看到類似的輸出畫面:
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
延伸閱讀
- 請參考Daniel Whitenack的推特發文,他讓NCS能跑在Allwinner ARM-based Pocket Chip上面。
相關文章: