測評分享丨RK3399開發板+RK1808人工智慧計算棒(被動模式)

ningmengzier發表於2020-11-30

高效賦能AIoT生態鏈:

上篇文章我們對OK3399-CDesktop+1808主動模式做詳細介紹 。本文將對被動模式的三個DEMO例程展開測評。

01

 硬 件 平 臺 


平臺:OK3399-C開發板

系統:Desktop

模組:TB-RK1808S0、usb攝像頭模組

環境準備: 飛凌OK3399-C開發板,RK1808人工智慧計算棒(韌體版本為V1.3.4),usb攝像頭,攝像頭和計算棒都插入OK3399-C開發板。

使用lsusb命令檢視,如下(紅框部分2207:0018即為我們的RK1808人工智慧計算棒):

輸入命令如下:

注意:因為被動模式需要安裝的庫檔案較多,佔用空間較大,所以需要擴大rootfs分割槽,修改param/parameter.txt檔案 0x00f00000@0x0005a000(rootfs)   //0x f00000個塊(512位元組)=7.5G

改為

0x01800000@0x0005a000(rootfs)   //0x1800000個塊=12G

修改後進入系統,檢視分割槽大小:

02  概 述   

AI計算區分為四個不同的象限,分別是雲端訓練、雲端推理,邊緣訓練以及邊緣推 理。 其中邊緣推理,幾乎都集中在Arm架構生態上。AI神經網路計算目前可以透過CPU、GPU、DSP、NPU、FAGA等完成,但不同的硬體特性會導致效率和功耗的不同。其中NPU——嵌入式神經網路處理器採用“資料驅動平行計算”的架構,最擅長的就是影片、影像類的海量多媒體資料的處理,並且相比GPU等具有更低的功耗。我司推出OK3399-C Desktop+RK1808(含3Tops算力NPU)的組合,在滿足AI邊緣計算的情況下,使得功耗大幅降低。

RK1808計算棒擁有主動模式和被動模式兩種模式。被動模式下:RK1808人工智慧計算棒是一個通用AI加速器。OK3399-C透過RKNN-Toolkit將模型及前處理後的資料傳輸給RK1808人工智慧計算棒,RK1808人工智慧計算棒完成推理,並把結果返回OK3399-C,OK3399-C進行後處理以及顯示等操作。

被動模式開發流程圖如下:


03

被動模式Mobilenet-ssd測試



1、使用官方連結下載被動模式Mobilenet-ssd原始碼

或者使用使用者資料中提供的原始碼,目錄為:使用者資料\linux\原始碼\被動模式\Mobilenet-ssd\


2、安裝編譯器、OpenCV、rknn-api

sudo apt-get install cmake gcc g++ //安裝編譯器

驗證編譯器已安裝成功:

sudo apt-get install libopencv-dev   //安裝opencv庫檔案

rknn-api安裝指令碼在slave_mobilenet_ssd壓縮包中

cd slave_mobilenet_ssd/install_rknn

sudo ./install_rknn_api.sh //安裝rknn_api和通訊程式

執行指令碼後,下載了rknn_api和通訊程式:

3、程式碼編譯執行

1)cd slave_mobilenet_ssd

修改ssd_demo.cpp檔案中main函式中如下語句,根據開發板實際情況修改開啟的攝像頭節點

ret= test.run(VIDEO_NODE, post_process, &data);

改為:

ret= test.run("/dev/video10", post_process, &data);

2)mkdir build

3)cd build

4)cmake..

5)make

編譯結果生成ssd_demo可執行程式:

6)npu_transfer_proxy&  //啟動NPU守護程式,通訊代理服務。該程式由原廠提供。

7)在PC上插入USB攝像頭

8)在PC介面終端上執行./ssd_demo,將會在螢幕上顯示SSD影像結果

9)按'ESC'鍵退出執行


04

被動模式Rock-X測試



1、使用原廠連結下載Rock-X SDK並解壓,連結如下:

%2F

或者使用使用者資料中提供的原始碼,目錄為:使用者資料\linux\原始碼\被動模式\Rock-X\

2、安裝編譯器 

sudo apt-get install cmake gcc g++

3、插入計算棒,等待上位機識別到計算棒

4 上位機執行rock-x依賴rknn_api, npu_transfer_proxy

使用者可以先按照本文件第三章“被動模式Mobilenet-ssd測試”安裝rknn_api;使用者也可以透過原廠提供的連結地址直接下載rknn_api, npu_transfer_proxy,如下:

5、執行npu_transfer_proxy和計算棒進行通訊 

npu_transfer_proxy &

6、編譯測試用demo 

cd demo/command_line_demo

./build-linux-rk3399pro-on-device.sh

此時會編譯得到rock-x中demo目錄下的各用例並存放在install目錄下

7、測試生成的用例中的rockx_face_landmark_demo

cd install/rockx_linux_rk3399pro/rockx_face_landmark_demo/

export LD_LIBRARY_PATH=../lib

./rockx_face_landmark face4.jpg 68 //人臉特徵點定位(68點)


8、測試效果如下:


9、Rock-X command_line_demo提供的例程

rockx_carplate_demo    車牌識別

rockx_face_attribute_demo     人臉屬性識別(性別、年齡)

rockx_face_detection_demo     人臉檢測

rockx_face_landmark_demo     人臉特徵點定位

rockx_head_detection_demo     人頭檢測

rockx_object_detection_demo     物體檢測

rockx_object_track_demo      物體運動檢測

rockx_pose_body_demo     人體姿態檢測

rockx_pose_finger_demo      手掌節點姿態檢測

rockx_face_liveness_demo     活體檢測

rockx_face_recognition_demo     人臉識別對比


05

被動模式yolov3測試



注意該測試中安裝的部分包因為資源問題下載可能會因超時而無法下載,遇到這種情況,可以使用我司提供的現成的安裝包,目錄為:使用者資料\ linux\原始碼\被動模式\yolov3 demo\安裝包\

1、安裝python3.5,ubuntu18.04預設python3.6,該版本部分庫沒有資源無法安裝,所以更換為python3.5

sudo  apt-get update

sudo  apt-get install software-properties-common

sudo  add-apt-repository ppa:deadsnakes/ppa

sudo  apt-get update

sudo  apt-get install python3.5-dev

sudo  apt-get --reinstall install python3.5-minimal

sudo  mv /usr/bin/python3 /usr/bin/python3-old

sudo  ln -s /usr/bin/python3.5 /usr/bin/python3

sudo  update-alternatives --install /usr/bin/python python/usr/bin/python3.5 300


驗證python3.5是否安裝成功並且python3已經修改為預設使用3.5:

安裝新版pip:

wget

sudo python3 get-pip.py

sudo pip3 install setuptools --upgrade

sudo ln -s /usr/local/bin/pip3 /usr/bin/pip3

驗證pip安裝成功且預設使用python3.5的pip工具:

2、安裝依賴庫

sudo  apt-get install cmake gcc g++ libprotobuf-dev protobuf-compiler

sudo  apt-get install liblapack-dev libjpeg-dev zlib1g-dev

sudo  apt-get install python3-dev python3-pip python3-scipy

sudo  apt-get install python3-opencv python3-numpy python3-lmd bpython3-h5py

pip3   install wheel setuptools


sudo   apt-get build-dep python3-h5py && pip3 install h5py

pip3  install --user scipy

pip3  install --user grpcio==1.26.0

pip3  install --user onnx

pip3  uninstall pillow

pip3  install --user pillow==4.2.1

pip3  uninstall h5py

pip3  install --user h5py==2.8.0rc1

注意部分安裝包因為資源問題下載可能會因超時而無法下載,可以使用我司提供的現成的安裝包。

檢視上述指令安裝的包是否安裝到python3.5目錄下:

3、安裝TensorFlow

wget   

pip3   install --user tensorflow-1.11.0-cp35-none-linux _aarch64.whl

TensorFlow也可以到/home/forlinx/.local/lib/python3.5/site-packages/目錄下檢視安裝情況

4、Python3.5安裝OpenCV3

1)下載opencv和opencv_contrib,這兩部分程式碼下載也比較困難,建議使用我司使用者資料中提供的原始碼包,目錄為:使用者資料\linux\原始碼\被動模式\yolov3demo\安裝包\:

cd~

git   clone

git   clone

2)編譯opencv原始碼

cd~/opencv
mkdir build
cd   build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DWITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -DINSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -DBUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON ..

make

編譯結果如下:

3)安裝OpenCV

sudo make install

部分安裝資訊:

OpenCV的安裝檔案也可以在系統中找到,例如:

/usr/local/lib/libopencv_core.so.4.3.0

/usr/local/include/opencv4/opencv2/cvconfig.h

編譯時會有報錯解決方法可以參考如下連結:

或者可以使用我司提供的現成的OpenCV的原始碼。

5、安裝rknn-toolkit

wget

pip3 --default-timeout=100000 install --user rknn_toolkit-1.1.0-cp35-cp35m-linux_aarch64.whl

rknn_toolkit也可以到/home/forlinx/.local/lib/python3.5/site-packages/目錄下檢視安裝情況,可以看到對應安裝目錄:

6、下載yolov3 demo程式測試執行

wget -r -np -nc -nH  

cd rk1808/yolov3/

修改rknn_camera_tiny_multiProcess.py中開啟的攝像頭節點:

video= cv2.VideoCapture(0)

改為:

video= cv2.VideoCapture("/dev/video10")

注意:攝像頭節點需要依據自己開發板的實際情況來修改

命令列執行:

python3.5 rknn_camera_tiny_multiProcess.py

執行結果如下:

至此,OK3399-C開發板+RK1808人工智慧計算棒被動模式下的測評告一段落。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2738095/,如需轉載,請註明出處,否則將追究法律責任。

相關文章