一、模型转化
1.安装mmcv+mmcls:
2.商汤训练模型转化为onnx模型:
运行之后,用户可以获取相应的onnx模型!
二、模型校验
成功得到ONNX模型之后,我们需要把ONNX模型转化为板端部署文件,地平线提供了天工开物工具链,可以有效地对ONNX模型进行验证并转化。使用工具链对ONNX模型进行校验,校验不通过的模型目前无法上板部署,需要调整算子或提交地平线开发人员进行算子支持升级!!
图 2
图3 Check结果图
使用Checker 模型校验可以判断地平线BPU模块是否支持算子推理,这是模型上板的第一步。上图为校验结果,显示出算子的运行设备。
model_type为ONNX、Caffe等可选模型,config_file中包含了模型转化的各种参数,包括模型输入大小,节点名称,输入类型(此处非常重要,因为板端通常接入MIPI相机等,NV12的图像数据结构与训练使用的NCHW差别较大,大部分MIPI相机输入都需要增加转化节点),模型输出layout以及推理优先级(速度优先还是带宽优先)等,下图为转化推理文件的输出结果,模型的精度保持达到97.76%。
图4 量化模型输出图
三、推理测试
使用天公开物工具链,调用上板测试模块:
1.构建应用:
2.数据预处理
处理好的图像将会用于后续的评测eval。
3.将构建好的应用传到开发板
执行这个命令,会将构建好的应用,通过scp,传输到开发板的 /userdata/samples/mobilenet 目录下。
若要执行单张图片的infer, 则可通过下面的代码操作远程登录开发板进行执行:
4.执行评测
该脚本会将图片传输至板上进行运行和评测, 此过程将持续很久.
5.执行性能测试
同时该操作也可从开发板上单独完成, 则可通过下面的代码操作远程登录开发板进行执行:
图5 速度验证与精度验证图
在测试集上获取70%左右的准确率,训练精度约为72.3%,保留了较高的精度,可以满足板端推理需求。
四、总结
商汤OpenMMLab可以快速有效地构建深度学习模型,地平线的天公开物开发板可以快速进行嵌入式开发部署,而且速度与精度都能得到有效的保证。商汤和地平线的强强联合,进一步扩大了地平线芯片的算法生态,同时助力OpenMMLab用户更好地进行多样化的AI部署。

