【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是針對低功耗應用所設計,因此將其與像是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)與編譯網路需在桌上型/筆記型電腦上完成

- 安裝較快;但剖析(profiling)與編譯網路需在桌上型/筆記型電腦上完成
邊做邊學!
您會製作: 結合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
開始吧!
Step 1:安裝Raspberry Pi為桌面模式,如下圖
由樹莓派基金會取得最新的作業系統 Stretch img 檔之後,燒錄開機用的 sd卡。確認Raspberry Pi 開機並連上網路之後,使用以下指令更新系統:
注意:需使用 Raspbian Stretch,上一版 Jessie 確認不支援。 [pastacode lang="bash" manual="sudo%20apt-get%20update" message="" highlight="" provider="manual"/]
Step 2:安裝Debian與Python相依套件
開啟terminal,輸入以下指令 [pastacode lang="bash" manual="sudo%20apt-get%20install%20-y%20libusb-1.0-0-dev%20libprotobuf-dev%20libleveldb-dev%20libsnappy-dev%20libopencv-dev%20libhdf5-serial-dev%20protobuf-compiler%20libatlas-base-dev%20git%20automake%20byacc%20lsb-release%20cmake%20libgflags-dev%20libgoogle-glog-dev%20liblmdb-dev%20swig3.0%20graphviz%20libxslt-dev%20libxml2-dev%20gfortran%20python3-dev%20python-pip%20python3-pip%20python3-setuptools%20python3-markdown%20python3-pillow%20python3-yaml%20python3-pygraphviz%20python3-h5py%20python3-nose%20python3-lxml%20python3-matplotlib%20python3-numpy%20python3-protobuf%20python3-dateutil%20python3-skimage%20python3-scipy%20python3-six%20python3-networkx" message="" highlight="" provider="manual"/] 您也可用pip package manager (pip3 install)來安裝python相依套件,但我發現用debian package manager (apt-get install python3-xxx)來安裝會比較快。Step 3:下載NCSDK到Pi
開啟terminal,輸入以下指令 [pastacode lang="bash" manual="mkdir%20-p%20~%2Fworkspace%0Acd%20~%2Fworkspace%0Agit%20clone%20https%3A%2F%2Fgithub.com%2Fmovidius%2Fncsdk" message="" highlight="" provider="manual"/]Step 4:編譯並安裝NCSDK API framework
開啟terminal,輸入以下指令 [pastacode lang="bash" manual="cd%20~%2Fworkspace%2Fncsdk%2Fapi%2Fsrc%0Amake%0Asudo%20make%20install" message="" highlight="" provider="manual"/]Step 5:使用NC App Zoo範例程式來測試安裝是否成功
開啟terminal,輸入以下指令 [pastacode lang="bash" manual="cd%20~%2Fworkspace%0Agit%20clone%20https%3A%2F%2Fgithub.com%2Fmovidius%2Fncappzoo%0Acd%20ncappzoo%2Fapps%2Fhello_ncs_py%0Apython3%20hello_ncs.py" message="" highlight="" provider="manual"/] 您應該會看到類似的輸出畫面: 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上面。
留言 💬 (0)
還沒有留言,來當第一個。