1.使用Labview自带深度学习推理模块,限制只能使用Tenserflow 1.14或openvino 2019.3的模型文件,不支持GPU推理加速,并且最近几年都没有再更新。在发现不支持GPU加速后就没有继续研究使用,已放弃该方案。
2.使用OPENCV DNN模块进行推理,优点是环境依赖非常简单,API相对也不算复杂,NI vision图像与Mat图像之间转换可以通过NI OPENCV工具包实现,整体没有太高的技术障碍。针对YOLO系列模型推理速度基本能达到要求,目前已实现预定功能。缺点是DNN模块对模型支持不是非常完善,部分模型无法在DNN中加载,推理速度相对较慢。
CPU加速编译方式:opencv + openvino
GPU加速编译方式:opencv + cuda
3.使用onnxruntime进行部署,参考仪酷VIROBOT推出的Labview ONNX工具包,封装ONNXRUNTIME相关API后供Labview调用,ORT相比DNN速度更快,支持模型更多。但是需要对模型结构有一定了解,ORT相关API输入输出还没搞懂,暂时没有实现。
4.在看ORT时发现百度飞浆Paddle开源有FastDeploy仓库,已经将模型部署相关功能打包成SDK,研究后觉得可以直接使用Labview调用FastDeploy来实现模型和不同推理后端的全覆盖,无需再自行针对不同推理后端封装,目前主要在看这个仓库,基本实现Labview对FastDeploy的调用和推理结果的解析,但因FastDeploy还在初期阶段,API经常更新,等正式版API稳定后再考虑封装Labview库正式使用。
评论