接着写未写完的部分,一直业务太忙,延期了两周才写这一篇。
本篇主要写一下模型量化后的仿真部分。海思在RS工具里提供了simulation方式对量化后的模型进行功能仿真(func sim)和指令仿真(inst sim),在板卡上跑之前就可以做模型的仿真,提前看到效果。
主要目的认为是两个:1)模型识别功能的验证;2)模型识别阈值的调整。
打个小广告:
海思hi3519av100开发板链接:
https://item.taobao.com/item.htm?spm=a230r.1.14.117.4afe75a61WreAX&id=586610485052&ns=1&abbucket=1#detail
除了SDK与底板图纸之外我们提供了EMMC文件配置和摄像头采集到RFCN深度神经网络的物体识别和HDMI显示的完整代码,帮助开发者快速部署模型。
进入正题!
仿真之前需要先做一下仿真配置,配置文件在我们板卡提供的 ...hisilicon/nnie_sim.ini中。
RS提供了图形化配置方式,其实可配置的东西就是要使能CUDA 加速,前提是电脑有显卡。
然后我们直接打开提供的sample工程,在 ...\software\sample,这样省去了很多需要的动态链接库的配置。
没有必要自己全从头到尾配一遍。
打开sample_similator 工程,在 src/main.cpp 中修改如下:
其他模型都注释掉,留下 SvpSampleCnnDetYoloV3();
在src/SvpSampleDetectionOneSeg.cpp 中修改对应的模型和测试用的数据路径
测试用数据路径,下面我们再具体说测试数据的问题。
Inst和func用模型选择,现在是做指令仿真,选inst模型修改就可以。
仿真工程需要切换到inst方式,右键选择
修改测试列表中的测试数据,此处配置的是 { "../../data/detection/yolov3/image_test_list.txt" },
对应文件在 data/detection/yolov3 中
此处列出需要仿真的文件表,必须是bgr格式的,测试用的数据的BGR格式的图片已经提供了几个。
设置完成后开始仿真
仿真后结果存储在
..\3519A\software\sample_simulator\sim_out\result_SVP_SAMPLE_YOLO_V3。输出结果如下,模型层和阈值是改过的,大家的输出结果不一定一样。
此外对于模型的阈值设置等可以查看 src/SvpSampleYolov3.cpp 文件,此处就不详细介绍了。
下一篇我们会讲一讲如何在板卡中把生成的 *.wk文件用上,并实时在开发板中运行。