可乐跑枸杞 · 2021年08月07日

【R329开发板评测】R329开发板实机运行分类网络

R329开发板第二步:实机运行分类网络

很荣幸拿到了由矽速科技提供的R329开发板,最近矽速科技提供了Debian系统,所以下面我们就在Debian系统上进行了。

仿真时候用的inception-v3的参数量对于板子来说可能还是太大,所以板子运行还是要换成轻量级的mobilenet吧,享受实时的快乐。

矽速科技提供的 Debian镜像:

链接:https://pan.baidu.com/s/1h-Lf6Y-xnvWUrOW6FSwitQ
提取码:dl7s

矽速科技提供的demo代码:

链接:https://pan.baidu.com/s/1vpPH_pHKQ_w3Z4DTxJTixg
提取码:4tni

一、板卡开箱

(1)首先对R329来一个资源一览:

QQ截图20210807125909.jpg

可以看到:R329 有两个1.5GHZ的经典的A53核心,32KB的L1指令缓存 + 32KB的L1数据缓存,并搭载了Arm China Zhouyi Z1 AIPU,提供了0.25TOPS 的算力。

CPU:Dual-core

  • ARM Cortex™-A53@1.5GHz
  • 32KB L1 I-cache + 32KB L1 D-cache per core
  • 256KB L2 cache

NPU:0.25TOPS@800MHz

  • Arm China Zhouyi Z1 AIPU, 1TEC+128mac FF
  • 0.25TOPS@800MHz

(2)再放张板子的实物图

e8fecc2fbf8fc0948740f56e2413bd5.jpg

和EAIDK310开发板的合影:
fd82f28f952495e7106566bdd18a007.jpg

二、系统烧录和开发环境配置

(1)系统烧录

此部分可以参考
R329开发板教程之四|Debian系统初体验

软件是用的balenaEtcher,如下图,正在烧录中:
QQ截图20210805220538.jpg

(2)配置串口连接和SSH连接

1、串口连接

使用终端软件配置串口连接,波特率为115200,配置如下:
QQ截图20210807131248.jpg

串口上传文件不方便,因此我们还需要配置一下ssh

2、SSH连接

因为板子没有网口,但是可以通过wifi连接。但学校实验室提供的wifi登录的时候要验证学号啥的,所以怎么配置笔记本和板子在同一个网段成了问题。。

幸好windows10提供了一个自带的热点功能,用它开个热点,板子再连上这个热点,笔记本和板子就在同一个网段了
QQ截图20210807131623.jpg

使用 nmtui 指令可以进入可视化的配网界面,选择 Activate a connection , 选择对应的SSID,输入连接密码,确认即可。
QQ截图20210807132418.jpg

再执行这两行代码手工生成ssh秘钥

ssh-keygen -A
systemctl restart ssh

成功使用MobaXterm登陆ssh
QQ截图20210807132110.jpg

其它配置参照:
R329开发板教程之四|Debian系统初体验

三、生成aipu.bin

这一部分可以参照上一篇文章:【周易AIPU 仿真】R329开发板系列一:环境的搭建和PC端仿真

不同的是:run是仿真模式, build会生成AIPU使用的模型文件。

[Common]
mode = build

[Parser]
model_name = mobilenet_v2
detection_postprocess =
model_domain = image_classification
input_model = ./model/mobilenet_v2_frozen.pb
input = input
input_shape = [1, 224, 224, 3]
output = MobilenetV2/Predictions/Softmax
output_dir = ./output/

[AutoQuantizationTool]
quantize_method = SYMMETRIC
quant_precision = int8
ops_per_channel = DepthwiseConv
reverse_rgb = False
label_id_offset = 0
dataset_name =
detection_postprocess =
anchor_generator =
log = False
calibration_data = ./dataset/dataset.npy
calibration_label = ./dataset/label.npy

[GBuilder]
outputs = aipu.bin
target=Z1_0701

运行 aipubuild config/mobilenet_v2_build.cfg 生成aipu.bin
QQ截图20210807144943.jpg

四、虚拟机交叉编译代码

在板子上编译代码估计慢的很,我的虚拟机之前也配置了aarch64-linux-gnu- 的交叉编译链, 所以还是直接在pc上编译吧,在通过ssh传到板子上。
QQ截图20210807132750.jpg

关于CMake使用交叉编译可以参照CMake文档:

https://cmake.org/cmake/help/...

(1)首先交叉编译OpenCV4.5.1,待用;

编译过程可以参考下面这个博文,在文章后面的云盘中也给出了编译好的文件。

https://blog.csdn.net/u010237...

(2) 编写 R329_Mobilenet工程的 CMakeLists.txt 文件

cmake_minimum_required(VERSION 3.5)

project(R329_Mobilenet)

set(OpenCV_DIR ../opencv4.5.1/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)

set(AIPU_LIBS "${CMAKE_SOURCE_DIR}/libaipudrv.so.4")

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")

aux_source_directory(. src)

add_executable(zhouyi_cam ${src})

target_link_libraries(zhouyi_cam ${OpenCV_LIBS} ${AIPU_LIBS})

(3)编写 R329-arm64.toolchain.cmake 交叉编译配置文件

# set target machine operating system  eg. Linux  Windows Generic
set(CMAKE_SYSTEM_NAME Linux)

#set target machine architecture    
set(CMAKE_SYSTEM_PROCESSOR aarch64)

#set corr
set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")

set(CMAKE_FIND_ROOT_PATH_MODE_PROGARM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

set(CMAKE_C_FLAGS "-march=armv8-a")
set(CMAKE_CXX_FLAGS "-std=c++11 -march=armv8-a")

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")

(4)交叉编译工程

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../R329-arm64.toolchain.cmake ..
make -j4

QQ截图20210807135416.jpg

(5)使用ssh上传到开发板测试效果:

cd zhouyi_test/build
bash run.sh

enjoy it!

QQ截图20210807150813.jpg
5132172891cb3216e18a322ac605d0c.jpg

关于分类网络的测试就先到这里,等着抽时间再移植检测网络看看效果如何。
最后许愿秋招能有个好offer,QAQ

相关的工程文件放在这里了:
R329工程文件,提取码:bdqf

参考文章:

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