实现onnxruntime在labview中的应用。章节的运行环境WIN10,Labview 2019 X64,CPU I5-11。
一 案例
1.anomalib
Anomalib 是一个深度学习库,旨在收集最先进的异常检测算法,用于对公共和私有数据集进行基准测试。Anomalib 提供了最近文献中描述的异常检测算法的几种即用型实现,以及一组有助于开发和实现自定义模型的工具。该库非常注重视觉异常检测,该算法的目标是检测和/或定位数据集中图像或视频中的异常。它使用无监督以及半监督技术,在光学成像较为稳定但缺陷数据集较少的场景有着很好的应用。

leather数据集

leather数据集

bottle数据集

bottle数据集
2.Yolo v11检测模型
YOLO系列凭借着建档方便的训练部署,高效的速率一直活跃在检测一线。


二 部署流程
1.安装包
安装lib_imaquopencv包。因为没氪金,没法进行网络发布,感兴趣可以留言。
因为兼容IMAQ图像类型,需要labview已经正确安装vision组件

安装后位于 Vision and Motion->Opencv_Lab->OnnxRuntime


2.程序框图
模型训练以及导出onnx格式参考相应的网络。程序的掉用分为几部分:加载模型、加载图像、推理模型、结果解析。

模型输出的结果为Vector<ort::value>格式,对于不同的模型输出的尺度以及长度存在差异,根据不同的模型解析Vector相应元素转为指定float或者bool等类型数组。

对于yolo检测模型,只解析vector[0]

对于anomalib 解析vector[2]获取热力图,vector[3]获取mask

热力图转图像显示
三 总结
作者解析了IMAQ的图像数据格式,优化IMAQ图像转换效率,使得嵌入mat进行处理耗时几乎可以不计,在大分辨率图像例如6120*6120,图像转换效率会有3ms损耗,主要来源于IMAQ有一块随机大小的内存块,作者还不理解IMAQ用来干嘛的,所以onnx里面图像传递使用mat指针,以减少不必要损耗(反正中间图像过程没必要进行探针)。

目前图像转换是如下方法,对于[1,3,x,x]Tensor输入都可以正常运行,但对于远古onnx格式例如[1,x,x3],作者进行了报错处理。


1324

被折叠的 条评论
为什么被折叠?



