本帖最后由 一代睡神的崛起 于 2023-4-26 10:13 编辑
一、走进CPU世界的NCNN
首先RK3588具有四核Cortex-A76@2.4GHz+四核Cortex-A55@1.8GHz属于一个真八核的CPU,相对已RK3568也有一个大的提升。本来之前打算是验证ARM集成的Mail-G610的GPU性能,但是小编的工作环境选择的是Linux而不是Android,因此NCNN不具备调用Mali_GPU相关接口的API函数,因此支持利用NCNN来验证8核CPU对int8数据的图像推理能力了。闲话不多说,直接开干。
克隆ncnn按照上面的安装说明进行安装,安装成功后可以使用pkg-config ncnn --modversion进行查看。如下图:
二、nanodet让爱照进现实
相信有不少人在装有显卡的PC机上玩过yolo、SSD等模型推理,但是想让这些模型成功落地在嵌入式设备上却让很多工程师翻了愁,即使在不损失很多的极度下对FP32数据类型进行剪枝、量化、蒸馏得到比较适中的计算参数量的GFLOPS--int8模型,但是一旦上了嵌入式设备上依然显得那么的冗余与繁重,因此如何利用一个轻量的backbone训练出来的权重模型成为了当下在嵌入式设备上部署的关注点。
可能有很多工程师都不约而同的使用过很多轻量级模型,例如mobilenet、shuffnet、inspetnet等作为backbone创造出来的模型,但是都面临一个共同问题就是速度虽然上去了,但是精度确实那样的令人唏嘘。nanodet作为商汤科技基于旷视科技提出的shuffnetv2网络创建的物体目标检测推理矿建,适配市面上常用的深度学习框架pytorch,tensorflow2,openvinio,ncnn等。nanodet在推理工作上既响应了速度又兼顾了精确度,算得上是嵌入式设备对目标检测的一大利器。
克隆nanodet在其谷歌云中下载支持ncnn的模型权重,小编此次选择的是nanodet-plus-m_416,下载下来的模型权重已经量化为int8数据格式了,所以不需要再做额外的处理,然后进入demo_ncnn目录,这里注意的是如果是使用的安卓系统就进入demo_ncnn_andriod目录,android系统使用了Vulkan厂家调用Mali_GPU的API函数,因此可以直接让ARM的Mali_GPU直接放飞自我。然后根据里面的安装说明进行安装,安装完后就可以使用ncnn加载CPU资源来推理图形数据了。使用8核CPU推理coco数据集可以看到FPS基本维持在15-30FPS之间,比使用NPU推理也只少了12FPS左右,所以RK3588此次升级的CPU也是足够的强大的。CPU这里小编将推理结果放在了附件内,有兴趣的小伙伴可以自行查看。
|