LabVIEW+OpenVINO在CPU上部署新冠肺炎检测模型实战
之前博客:
一、LabVIEW视觉工具包下载与配置
可在如下链接中下载工具包:https://www.cnblogs.com/virobotics/p/16527821.html
2、OpenVINO toolkit下载安装
下载地址:
2)选择版本,选择如下版本,并DownLoad:
3)下载后,运行安装即可!(建议安装到默认路径)
4)可以选择安装路径,具体安装可以参考官方文档:
5)安装完成后,请记得配置环境变量,即在电脑的环境变量-->系统变量-->path种添加如下变量
二、模型获取
openvino工作流程,和其他的部署工具都差不多,训练好模型,解析成openvino专用的.xml和.bin,随后传入Inference Engine中进行推理。本实战中的模型来自:https://blog.csdn.net/weixin_47567401/article/details/122809410,你可以在这里下载到模型:
三、语义分割之Unet
1、语义分割在医疗影像上的应用
随着人工智能的崛起,将神经网络与医疗诊断结合也成为研究热点,智能医疗研究逐渐成熟。在智能医疗领域,语义分割主要应用于肿瘤图像分割,龋齿诊断等。(下图分别是龋齿诊断,头部CT扫描紧急护理诊断辅助和肺癌诊断辅助)
2、Unet简介
U-Net 起源于医疗图像分割,整个网络是标准的encoder-decoder网络,特点是参数少,计算快,应用性强,对于一般场景适应度很高。原始U-Net的结构如右图所示,由于网络整体结构类似于大写的英文字母U,故得名U-net。左侧可视为一个编码器,右侧可视为一个解码器。编码器有四个子模块,每个子模块包含两个卷积层,每个子模块之后通过max pool进行下采样。由于卷积使用的是valid模式,故实际输出比输入图像小一些。具体来说,后一个子模块的分辨率=(前一个子模块的分辨率-4)/2。U-Net使用了Overlap-tile 策略用于补全输入图像的上下信息,使得任意大小的输入图像都可获得无缝分割。同样解码器也包含四个子模块,分辨率通过上采样操作依次上升,直到与输入图像的分辨率基本一致。该网络还使用了跳跃连接,以拼接的方式将解码器和编码器中相同分辨率的feature map进行特征融合,帮助解码器更好地恢复目标的细节。
四、LabVIEW+OpenVINO在CPU上部署新冠肺炎检测模型(covid_main.vi )
运行本项目,请务必安装新版工具包及OpenVINO toolkit,否则会报错无法运行
1、实现过程
-
dnn模块调用IR模型(模型优化器)
-
设置计算后台与计算目标设备(推理引擎加速)
-
读取待检测的影像图片
-
图像预处理(blobFromImage)
-
推理
-
后处理
-
绘制分割出的感染区域
-
添加logo和标题,并将其保存为MP4
-
后处理中
-
先将mat reshape 成512*512
-
进行二值化阈值处理
-
寻找轮廓
-
绘制轮廓
-
在指定地方绘制logo
-
将其在前面板显示并保存为MP4,保存为MP4之前记得进行颜色空间转换。
2、程序源码
3、推理运行
请将下载的项目放在不包含中文的路径下,打开covid_main.vi,修改检测影像路径为实际路径,运行检测 有如下四个文件夹可选
注意:readNetFromModelOptimizer.vi中IR模型路径不可以包含中文
4、运行效果
五、项目源码及模型下载
大家可关注微信公众号: VIRobotics,回复关键字:新冠肺炎检测实战 获取本次分享内容的完整项目源码及模型。
附加说明
-
操作系统:Windows10
-
python:3.6及以上
-
LabVIEW:2018及以上 64位版本
-
视觉工具包:techforce_lib_opencv_cpu-1.0.0.73.vip
-
OpenVINO:2021.4.2
总结
以上就是今天要给大家分享的内容。 如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群:705637299,进群请备注暗号:LabVIEW机器学习
如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏