海思3559使用Yolov3进行目标检测

1、实验环境
Ubuntu虚拟机+一根网线+USB转串口+小相机(支持IMX334等,可以查看)
2、资料准备
《HiMPP V4.0 媒体处理软件开发参考.pdf》
这个资料主要介绍了图像是通过什么方式进行输入,处理,以及输出的。
VI-VPSS-VO,VENC和VDEC,VGS画图等
《HiSVP开发指南.pdf》
这个资料主要介绍如何使用NNIE模块进行图像处理,以及ruyistudio的安装和使用教程。
《HiSVP API 参考.pdf》等
API等资料可以编写代码的时候在重点关注。

推荐想学习的朋友看一下刘山老师的博客,很有帮助。

本教程只是使用预训练的Yolov3模型生成的.wk文件,只能作为一个初学者入门。真正要学会掌握需要很长的路去学习。由于ubuntu下的vim开发不够熟练,所以我是在ubuntu下安装了一个vscode编译器进行开发。
3、整体思路
借鉴RFCN的输入输出模式进行修改即可。
在这里插入图片描述
4、具体实现
三板斧
1>模型初始化
2>硬件初始化
3>软件参数初始化
软件参数初始化里面,如果今后要修改模型,需要将对应的软件参数进行修改
在这里插入图片描述
SAMPLE_COMM_IVE_StartViVpssVencVo函数在common里面,主要实现vi-vpss-vo的绑定操作。
在这里插入图片描述
SAMPLE_COMM_SYS_GetPicSize函数主要得到图像的大小
这里用的是Yolov3,需要修改为416*416
该SAMPLE_SVP_NNIE_My_Yolov3_ViToVo函数是由RFCN对应的函数进行简单修改得到的。
在这里插入图片描述
HI_MPI_VPSS_GetChnFrame是从一个通道获取到图像数据,YOLOv3是通过两路(上文结构已说明),所以使用两个HI_MPI_VPSS_GetChnFrame
在这里插入图片描述
在这里插入图片描述
获取完图像数据之后,模型的参数主要通过SAMPLE_SVP_NNIE_My_Yolov3_Proc完成,里面主要通过前向传播的函数SAMPLE_SVP_NNIE_Forward以及SAMPLE_SVP_NNIE_Yolov3_GetResult函数,得到了pstSwParam的结构体的结果,里面有strect,包含4个值,但是yolov3的参数结构体没有定义,需要定义一下。
在这里插入图片描述
在这里插入图片描述
得到最终的检测框strect,需要经过SAMPLE_SVP_NNIE_RoiToRect函数,里面有VGS的模块,该模块主要功能如下所示:
在这里插入图片描述
5、如何编译:
将cfg.mak.multicore改为cfg.mak即可在svp中的multi-core中进行编译
在这里插入图片描述
6、实验结果
在这里插入图片描述

版权声明:本文为CSDN博主「dx0014」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dx0014/article/details/114709403

dx0014

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

单目3D目标检测调研

单目3D目标检测调研 一、 简介 现有的单目3D目标检测方案主要方案主要分为两类,分别为基于图片的方法和基于伪雷达点云的方法。   基于图片的方法一般通过2D-3D之间的几何约束来学习,包括目标形状信息&#xff0