华为Hi3559 系列芯片平台模型转换,caffe 转NNIE wk注意事项
华为X系列摄像机具备深度学习算法推理能力,为了方便用户快速和高效地将自己的算法移植到华为智能摄像,华为摄像头提供SDC(software define camera)模块供用户调用,用户可以调用SDC接口获取视频流和转换视频帧格式,将图片传入NNIE(Neural Network Inference Engine)模块,实现图片预测推理。
把caffe模型转换成NNIE可使用的WK模型文件,是很重要的操作,下面我们简单介绍一下流程。
1、安装模型转换工具:
1)工具运行环境为windows7 或者 windows10。
2)工具目录:Hi3559A-010\Hi3559A V100R001C02SPC010\SVP_PC\HiSVP_PC_V1.1.1.0\tool\nnie\windows\RuyiStudio-2.0.21\ RuyiStudio-2.0.21.zip,转换工具解压就可以使用,不需要进行安装。
3)进入RuyiStudio-2.0.21目录双击RuyiStudio.exe即可打开转换工具。
2、算法模型转换:
本文档以SSD300模型为例介绍移植开发过程。
2.1 Caffe网络裁剪
NNIE支持caffe标准层,比如conv,pooling层,也支持公开的但非caffe标准的网络层,比如SSD Normalize层,不支持SSD prior层。所以使用ruyistudio转换模型的时候需要把不支持的层去掉(这些层在摄像机上用CPU实现)。
上图是SSD300原始模型,在deploy.txt中将蓝框中的层去掉,包括norm_mbox priorbox mbox_conf_flat mbox_loc_flat softmax等层。
上图为修改过的网络结构,Flatten层、softmax层和NMS需要CPU实现。
2.2 模型转换
第1步:打开RuyiStudio.exe 创建一个nnie工程。
第2步:将Hi3559A-010\Hi3559A V100R001C02SPC010\SVP_PC\HiSVP_PC_V1.1.1.0\software\sample\data拷贝到创建的nnie工程下。
第3步:双击ssd_inst.cfg, 打开转换配置文件。
第4步:填写需要转换的caffe模型,prototxt文件是裁剪过得,caffemodel是训练产生的。
第5步:填写mean_file和mean_value, 数据归一化使用。
image_ref_list.txt 是一个jpg的文件列表,jpg文件为均值为算法均值量化使用,mean.txt为模型均值文件。
第6步:开始模型量化,生成NNIE模型文件(wk文件)。
第7步:生成NNIE模型文件。
备注:目前模型转换工具RuyiStudio只支持Caffe1.0转换,其他框架如tensorflow等模型文件需要先转换成Caffe1.0后,再使用RuyiStudio进行转换。