星光不负赶路人 · 2021年08月16日

【R329开发板评测】实机测试Resnet50

在经过仿真测试拿到开发板后,参考官方的实机测试教程,对仿真测试模型进行了实机运行和测试,这里主要是对resnet50进行了实时运行。

一、系统镜像的烧录和配置

目前官方给的操作系统镜像主要有debian、armbian、Tina等。我使用的是debian,因为它自带了编译环境,不需要自己再重新配置,当然也可以自己搭建。编译环境的搭建主要是需要交叉编译opencv,可以选择在Ubuntu主机中进行编译搭建,然后将编译好的文件传回开发板系统中,我在Ubuntu16中参考 IF_c8wXBr的帖子成功编译了opencv4,并搭建了编译环境,需要的朋友可以试试。

(1)debian系统烧写

在烧写前,需要准备SD卡、烧写软件:Win32DiskImager、SD卡初始化软件:SDFormatter、Debian镜像。
1)使用SDFormatter对SD卡进行初始化
微信截图_20210816164423.png
2)使用Win32DiskImager烧写Debian镜像
微信截图_20210816164722.png
3)进入系统进行简单测试

(2)debian系统配置

这部分可以参考官方例程,非常简单。Debian初体验在配好系统后就可以通过串口调试软件操控开发板。
微信截图_20210816165401.png

二、Resnet50网络模型的实机测试

在开始测试之前,需要准备程序运行所需的AIPU.bin文件,这个文件就是仿真测试时,通过修改配置文件resnet_v1_50_build.cfg文件,然后运行得到。修改内容如下:

[Common]v1_
mode=build

[Parser]
model_name = resnet_v1_50
detection_postprocess = 
model_domain = image_classification
output =resnet_v1_50/predictions/Reshape_1
input_model = resnet_v1_50_frozen.pb
input = input
input_shape = [1,224,224,3]
output_dir=./

[AutoQuantizationTool]
model_name = resnet_v1_50
quantize_method = SYMMETRIC
ops_per_channel = DepthwiseConv
calibration_data = dataset.npy
calibration_label = label.npy
preprocess_mode = normalize
quant_precision=int8
reverse_rgb = False
label_id_offset = 0

[GBuilder]
outputs=aipu.bin
#profile= True
target=Z1_0701

在有了AIPU.bin文件后,就可以将该文件远程传输到开发板中,接下来我们还需要准备摄像头配置文件即官方给的zhouyi_cam,该文件主要是关于摄像头的一些配置和图片读取程序,需要在opencv环境中进行编译得到。可以参考官方例程:实时运行模型

具体步骤如下:

cd zhouyi_test #进入官方编译环境
cd build 
make -j2 #第一次编译较慢

编译成功后会得到zhouyi_cam文件
微信截图_20210816171952.png
也可以在Ubuntu主机中进行编译,编译速度会快很多。
微信截图_20210816172250.png
在得到zhouyi_cam和AIPU后,就可以执行以下命令:

cd zhouyi_test
bash run.sh

运行结果如下:
8d05b617952445b4b199d095ddd521d.jpg
resnet50模型的运行速度大概7帧左右,基本达到实时效果。就分享到这里。

第一次接触npu和神经网络,希望能和大家一起努力,奥里给,就是干,目前正在尝试部署model-zoom中的网络模型。

推荐阅读
关注数
7442
内容数
92
人工智能边缘计算软硬件解决方案,提供高性能、低成本、低功耗、易使用的硬件选型方案.
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息