Openvino_ARM源码编译+nano_detect树莓派部署实测

本文介绍了如何在Ubuntu18.04的x86-64主机上为树莓派4B交叉编译OpenVINO,以及在树莓派上部署和测试目标检测模型nano_detect的过程。通过Github开源的编译方法,成功实现了OpenVINO在ARM上的独立运行,但在推理速度上与Intel芯片相比有较大差距。
摘要由CSDN通过智能技术生成

        目前openvino在树莓派上的部署形式是和NCS组合在一起使用,树莓派无法单独使用,今年5月Github上开源了openvino在ARM上独立运行的源码编译方法,以实现openvino在树莓派的独立部署。 参考openvino_ARM编译方法 ,折腾一番后,在安装Ubuntu18.04的树莓派4B上实现了openvino加速工具的部署,并基于该加速工具测试了目标检测方法nano_detect,分享给后来之人。 

        一 、openvino交叉编译

        首先给出github的交叉编译教程:Github-openvino交叉编译教程,目前支持的软硬件搭配如下图所示,硬件系统是树莓派4B,操作系统Debian32位和Ubuntu64位。

                                

        我选择了Ubuntu18.04作为操作系统进行编译, 编译是在自己的x86-64主机上做的,步骤如下:

(1)安装docker

sudo apt-get install docker

(2)clone代码仓

git clone --recurse-submodules --single-branch --branch=master https://github.com/openvinotoolkit/openvino_contrib.git 

 (3)创建docker镜像

cd openvino_contrib/modules/arm_plugin
docker image build -t arm-plugin -f Dockerfile.RPi64_bionic .

(4)arm架构openvino交叉编译

mkdir build
docker container run --rm -ti -v $PWD/build:/armcpu_plugin arm-plugin

第四步时间较长,得个把小时,等着就行,直到生成如下所示的文件

        编译完成的文件夹如上图所示,除了armcpu_package和OV_ARM压缩包,其他文件夹都是从github上下载下来的,可以独立下载再执行交叉编译,下载方法这里有:Github Project子库git方法

        我们需要的就是OV_ARM压缩包,把这个文件夹拷贝到树莓派4B上进行解压,得到需要的各个库文件,与官方提供的openvino差别不大,至此,交叉编译完成。

二、openvino在树莓派4B部署及nano_detect测试

(1)树莓派4B配置openvino和主机端配置方法相同,核心就是添加环境变量,添加方法如下:

sudo vi ~/.bashrc
source ../bin/setupvars.sh
source ../opencv/setupvars.sh

 配置完成后开始测试nano_detect,nano_det GitHub开源链接如下Github:Nano_Detect,没接触过的去了解一下,令人膜拜的目标检测算法。

在开源代码里添加推理时间获取代码并进行推理,设置推理次数20次,计算平均值,基于openvino的nano_detect推理时间如下所示,平均推理时间330ms。

(2)彩蛋(nuhui大佬yyds)

基于ncnn的nano_det在树莓派4B部署方法如下图所示,平均推理时间147ms。

 三、感悟总结

(1)PC端Intel芯片2.6GHz主频推理速度16ms,但到了ARM上只有330ms,可以看到推理速度掉速比较大,猜测是由于Intel指令集和arm指令集的差异导致的,无法最大程度使用树莓派4B。

(2)后期做一些openvnio自带库的推理,看看速度如何,但官网给的样例推理速度也不快,提速空间不大,整体有点小失落,折腾了两三天速度不尽人意。

(3)nihui大佬,yyds。PC端Intel芯片2.6GHz主频推理速度27ms,树莓派4B达到147ms。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值