ITPub博客

首页 > 人工智能 > 人工智能 > 测评分享丨RK3399开发板+RK1808人工智能计算棒(被动模式)

测评分享丨RK3399开发板+RK1808人工智能计算棒(被动模式)

原创 人工智能 作者:ningmengzier 时间:2020-11-30 13:56:36 0 删除 编辑

高效赋能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源码

http://t.rock-chips.com/wiki.php?mod=view&id=71

或者使用用户资料中提供的源码,目录为:用户资料\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并解压,链接如下:

https://eyun.baidu.com/s/3o9xqPPC#sharelink/path=%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,如下:

http://repo.rock-chips.com/rk1808/rknn-api/

http://repo.rock-chips.com/rk1808/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 https://bootstrap.pypa.io/get-pip.py

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   http://repo.rock-chips.com/python/tensorflow-1.11.0-cp35-none-linux_aarch64.whl

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 https://github.com/opencv/opencv.git

git   clone https://github.com/opencv/opencv_contrib.git

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

编译时会有报错解决方法可以参考如下链接:

https://stackoverflow.com/questions/28776053/opencv-gtk2-x-error

http://www.luyixian.cn/news_show_316237.aspx

或者可以使用我司提供的现成的OpenCV的源码。

5、安装rknn-toolkit

wget http://repo.rock-chips.com/python/tensorflow-1.11.0-cp35-none-linux_aarch64.whl

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   http://repo.rock-chips.com/rk1808/yolov3/

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博客 ” ,链接:https://blog.itpub.net/69989353/viewspace-2738095/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-11-25

  • 博文量
    327
  • 访问量
    139509