自动驾驶(AIOT) - 轻量级目标检测与分割算法开发和部署(RK3568)【玩转华为云】

举报
HouYanSong 发表于 2024/02/22 11:49:18 2024/02/22
【摘要】 本文将在ModelArts平台上开发轻量级目标检测与分割算法,并使用ModelBox框架在RK3568开发板上实现模型推理和部署。

自动驾驶(AIOT) - 轻量级目标检测与分割算法开发和部署(RK3568)

本文将在ModelArts平台上开发轻量级目标检测与分割算法,并使用ModelBox框架在RK3568开发板上实现模型推理和部署。

v2-40e7985e4ad74b1aa69ec2352a751df2_r.jpg

数据准备

我们收集了一份200张由Labelme标注的道路图像分割数据集,之后使用脚本将其转换为VOC格式的数据集并进行数据增强:

下载 (9).png

处理好的数据集已经分享到AI Gallery上,可以使用OBS下载:

屏幕截图 2024-02-12 030121.png算法简介

像素级的图像分割不仅需要精确,有时还需要高效以便应用到real-time application比如自动驾驶汽车等。现有的方法可能精度较高但往往参数量巨大,为了解决这个问题,我们使用LinkNet作为主干网络[Fig. 1],中间层[Fig. 2]使用LeakyRelu进行激活,最后一层使用Sigmoid做归一化,并在Encoder Block 4后增添目标检测分支,训练过程中进行梯度裁剪防止梯度爆炸。




Collage_20240212_024357.jpg

云端训练

算法详情可以运行我发布的Notebook,并下载转换好的模型文件:屏幕截图 2024-02-11 210048.png

ONNXRuntime推理:

下载yolo_tf_seg.zip并解压到本地,之后安装opencv、numpy、onnxruntime即可一键运行。

端侧推理

IMG_20240212_040344.jpg

1、我们在VS Code中使用Remote-SSH远程连接ModelBox端云协同AI开发套件(RK3568)

8bb91d55-9ab1-4d2c-af85-1ff55633aa33.png

2、在SDK目录下使用create.py脚本创建工程object_detection_seg(od_seg):

屏幕截图 2024-02-22 064327.png

3、创建推理功能单元yolo_tf_seg:

屏幕截图 2024-02-22 065106.png

4、将转换好的模型放到yolo_tf_seg目录下,我们的模型有一个输入和两个输出:


yolo_tf_seg.rknn (1).png

修改配置文件如下:屏幕截图 2024-02-22 092031.png5、创建后处理功能单元post_process:

对于后处理功能单元,我们在config中配置参数,接收2个float类型的推理结果,返回类别检测框和图像掩码:code.png

对应的逻辑代码如下:code.png

6、创建绘图功能单元draw_image:

屏幕截图 2024-02-22 072023.png

对于绘图功能单元,我们接收解码后的原始图像和目标检测框以及分割图像,对应的配置文件如下:

code.png

接下来补充逻辑代码生成新的图像:code.png

7、查看流程图:


graphviz.png

代码如下:

code.png

8、配置输入和输出,运行应用:

屏幕截图 2024-02-22 102100.png

9、我们可以在Chrome浏览器chrome://tracing/中加载性能统计文件:

屏幕截图 2024-02-22 103221.png

通过分析耗时最久的是推理功能单元,720p视频检测帧率在6fps左右。

小结:

本文总体而言并没有太多的创新点,是一个纯工程化的项目,主要工作是将学术界的优秀论文落地到边缘设备上,通过对网络的魔改,得到一个兼顾精度、速度和体积的目标检测和分割模型,在模型量化过程中会出现精度损失,后续会通过优化算法以及选择不同的量化算法kl_divergence(feature分布不均匀时可以得到较好的改善效果)继续提高模型的检测效果,复现本案例所需资源(代码、模型、测试数据等)均可从object_detection_seg.zip获取。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。