網站首頁 討論群 智慧演算/FinTech主題論壇 文章影片分享 Pi zero W也能玩Movidius神經運算棒

該主題包含 0 則回覆,有 1 個參與人,並且由  OmniXRI Jack1 月 前 最後更新。

正在檢視 1 篇文章 - 1 至 1 (共計 1 篇)
  • 作者
    文章
  • #11302

    OmniXRI Jack
    版主

    最近人工智慧(AI)當道,對於想學習及實作的Maker來說,樹莓派加上Intel Movidius神經計算棒(Neural Compute Stick,以下簡稱NCS)大概是最容易取得且最經濟的平台了。目前除了可直買到USB3.0版的NCS外,另外Google有提供AIY Vision Kit(Pi Zero W + Vision Bonnet),主要使用Pi Zero W及使用了和NCS相同計算晶片Intel Movidius MA2450的Vision Bonnet擴充板,舊的版本還得自己安裝一堆環境,新的1.1版買來組裝一下就可用了。加上最近Intel最近大力推廣它的OpenVINO,讓自家的CPU, GPU, FPGA, VPU(NCS主要晶片)能更容易跨平台,更適合開發AI終端(邊緣)應用裝置及程式。

    一般在官網上的安裝程序都是建議使用樹莓派3B或3B+,其步驟很簡單。

    步驟一:取得樹莓派板子及16GB SD卡(強烈建議大於8GB)並安裝好官方提供的作業系統Raspbian。

    步驟二:進入樹莓派命令列模式安裝NCS軟體開發工具(SDK)1.2版,其步驟如下:

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

    步驟三:編譯範例程式及測試,其指令如下:

    cd ~/workspace/ncsdk
    make examples

    完成後即可執行相關範例程式,更多說明可參考官方文件。

    Movidius NCSDK Github https://github.com/movidius/ncsdk
    Movidius NCSDK Introduction https://movidius.github.io/ncsdk/

    本來想把NSC直接搬到Pi Zero W上用,就像Google AIY Vision Kite一樣,結果照著上面步驟作,竟然出現一大堆問題,為了避免大家也掉到這個大坑,所以把自己慘痛的經驗分享出來,省去大家撞牆的時間,接著就一步一步帶著大家走出地雷區。

    [1] 安裝作業系統後,修改GPU共享記憶體,從64MB增加到128MB。

    [2] 進入命令列執行下列動作,將記憶體SWAP容量從100MB擴大到1024MB,以免後續編譯OpenCV及其它套件時記憶體不足造成系統當掉。

    sudo nano /etc/dphys-swapfile

    將 CONF_SWAPSIZE=100 改成 CONF_SWAPSIZE=1024

    按[Ctrl + O]存檔後,再按[Ctrl + X]離開編輯模式。

    [3] 若要使用Pi專用相機,要修改開機啟動設定。(若不使用則可忽略此步驟)

    sudo nano /etc/modules-load.d/modules.conf

    移到檔案最下面,新增一行,加入 bcm2835-v4l2 (注意是L不是數字1)

    按[Ctrl + O]存檔後,再按[Ctrl + X]離開編輯模式。

    [4] 更新系統套件並重新開機

    sudo apt-get update
    sudo apt-get upgrade
    sudo reboot

    [5] 進入樹莓派命令列模式安裝NCS軟體開發工具(SDK)1.2版,其步驟如下:

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

    由於有很多套件包需要編譯,所以可能要四到五個小時。編譯到快結束時會出現下面錯誤。

    “cp: cannot stat ‘/opt/movidius/NCSDK/ncsdk-armv6l/tk’: No such file or directory Installation failed. Error on line 554”

    這是因為NSC安裝程式預設是給Pi 3 Arm v7系列用,而Pi 0是Arm v6系列,所以要另要產生一個對應的路徑才能繼續工作。另外還要把一些設定檔複製到該路徑下才能接著正確編譯其它程式。

    cp -r /opt/movidius/NCSDK/ncsdk-armv7l /opt/movidius/NCSDK/ncsdk-armv6l
    cp -r ~/workspace/ncsdk/api/src /opt/movidius/NCSDK/ncsdk-armv6l

    接著要把剩下的安裝工作完成,此時不要再執行 make install,而直接把剩下動作執行完即可,如下指令所示:

    ./install-ncsdk.sh

    [6] 再來就可開始編譯範例程式,其指令如下:

    cd ~/workspace/ncsdk
    make examples

    這個步驟中有包含重新編譯OpenCV 3.3版,所以要十幾個小時,建議準備一個小風扇幫忙散熱一下,以免做到一半熱當,前功盡棄。OpenCV編譯完後會自動開始編譯範例程式,但執行沒多久就會發生以下錯誤。

    RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
    Makefile:80: recipe for target ‘compile’ failed make[4]: *** [compile] Error 1

    在網上有些網友說是因為$PYTHONPATH沒有exprot /opt/movidius/NCSDK/ncsdk-armv6l/api/src/mvnc造成,但加入測試後仍沒有作用。費盡千辛萬苦後終於找到原因,是因為Python numpy版本不合造成,原先安裝的是1.13.1版,而movidius的範例支援的是較新版本,所以只要將numpy缷載後再重裝(目前版本為v1.15.2)並重新開機後再重新編譯範例即可。

    pip3 uninstall numpy
    pip3 install numpy
    sudo reboot

    cd ~/workspace/ncsdk
    make examples

    [7] 苦難還沒結束,編譯到inception-v3的時候會出現下列錯誤。

    File “./inception-v3.py”, line 4, in <module> import tensorflow as tf Import
    Error: No module named ‘tensorflow’
    Makefile:41: recipe for target ‘weights’ failed

    因為TensorFlow的套件包不合,所以要重新安裝,執行下面指令,再重新編譯範例即可。

    pip3 install tensorflow==1.9.0
    make examples

    [8] 經過幾小時的等待完成所有(apps, cafee, tensorflow)範例的編譯後,最後進到/examples/下各個範例,執行 make run 就能開始享受人工智慧的學習旅程了。

正在檢視 1 篇文章 - 1 至 1 (共計 1 篇)

抱歉,回覆主題必需先登入。