本系列为华为海思海思AI芯片(Hi3519A/3559A)方案学习系列之十五,主要对基于nnie引擎进行推理的仿真代码浅析,系列文章请见底部。
作者:ltshan139
前言
HISVP仿真(即基于nnie引擎进行推理)的代码有如下四个版本
前两个是功能性仿真,后两个是指令性仿真。在功能性或指令性仿真内部又分为使用opencv库和不使用opencv库两种类型。它们的最终结果应该是一致的,但功能性验证显然速度要快很多。
由于yolo层后处理都是软件实现的,所以当待仿真的算法模型(即wk文件)改变时,尤其网络size或目标识别种类数等方面不同,下面这些参数需要在代码里面手动进行修改。
模型参数修改
待识别的输入图像设置如下所示。 对应yolo版本的路径中有image_test_list.txt来指定一个或多个输入图像的路径和文件名称。
权值文件的指定如下所示。上面是指令级别的wk文件;下面是功能仿真的wk文件。
最重要的模型相关参数设置在SvpSampleYolo.h中。下面是一个尺寸为416x416的模型参数,识别类型有80个classes。其它参数请自行体会。 当模型尺寸改变,如608x608,那么下面xxx_82, 94以及106层的feature map大小也随之改变。此外,识别类型数目发生变化,那么xxx_CHANNEL_NUM以及CLASS_NUM也要相应修改。
此外,在软件后处理(主要是NMS)检测框时,有两个参数也是可以调节的。一个是每个框的置信阈值,另外一个是两个框之间的iou阈值。
最后一个值得注意地方就是 anchor boxes的修改。在svpSampleYolov3.cpp代码里面,它的符号表式是 bias。
结论
由上可知,当算法模型发生变化,往往需要手动调整一些软件参数。 某一个环节做错了,很有可能得到错误的结果。
版权声明:本文为CSDN博主「ltshan139」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/avideointerfaces/article/details/90182987
海思AI芯片系列文章
- 海思AI芯片(Hi3519A/3559A)方案学习(十四)JPEG图片转换成bgr文件
- 海思AI芯片(Hi3519A/3559A)(十三)在hi3519A ARM上运行yolov3模型
- 海思AI芯片(Hi3519A/3559A)方案学习(十二)移植opencv343到hi3519A
- 海思AI芯片(Hi3519A/3559A)方案学习(十一)分析bgr文件格式
- 海思AI芯片学习(十)将yolov3 darknet模型转换为caffemodel
- 海思AI芯片(Hi3519A/3559A)方案学习(九)wk格式的模型生成以及PC仿真
- 海思AI芯片(Hi3519A/3559A)方案学习(八)根文件系统运行遇到的两个问题
- 海思AI芯片(Hi3519A/3559A)方案学习(七)ext4根文件系统制作
- 海思AI芯片(Hi3519A/3559A)学习(六)No MMC device available和can't get kernel image两个问题的解决
- 海思AI芯片(Hi3519A/3559A)学习(五)SDK平台文档梳理 code
- 海思AI芯片(Hi3519A/3559A)学习(四)在3519A板子上运行sample code
- 海思Hi3519A/3559A(三)Ubuntu18.0.4上编译uboot和kernel
- 海思AI芯片(Hi3519A/3559A)方案学习(二)RuyiStudio安装
- 海思AI芯片(Hi3519A/3559A)方案学习(一)资料以及术语介绍
更多海思AI芯片方案学习笔记欢迎关注海思AI芯片方案学习。