感谢大家学习这个项目,PhenixVision项目是我本科大四时的毕设项目。作为一个机械专业的学生,画三张A0大图的毕设任务量于我是苦不堪言,所以借着大四去公司实习的机会,我申请了这个由自己主导的机器视觉相关的毕业设计,并且完成的很成功。在完成毕设时,我将PhenixVision毕设项目做成了视频发布在BiliBili,也收获了不错的反响:
我将项目整理为四个文件夹,文件树如下:
-
doc:存放了该项目的解析文档和帮助指南
-
executable:存放了该项目打包好的可执行文件exe,可以直接运行查看效果
-
src:存放项目源码,包含两个:
-
caps_mobileNet_classification:深度学习瓶盖分类算法
-
PhenixVision:QT上位机软件
-
-
testImage:存放了五张用于测试的瓶盖缺陷图片
-
README.md
https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle
2、
用到的控件:
-
菜单栏、工具栏:利用QAction来添加选项操作列表
-
Qlabel:显示图像
-
QTabWidget:进行日志输出以及配置参数展示
-
QlistWidget:算法列表
-
QStackedWidget:栈窗口存放子算法列表
3、图像处理流程框架
多线程同步,生产者消费者模型,基于QT实现的单生产者单消费者线程同步模型,图像缓存队列为10。
日志的输出参考文章:《Qt 日志 QDebug 输出至文件》https://blog.csdn.net/weixin_37204973/article/details/82530713
5、添加图标进行美化
图标直接去阿里的矢量图标库进行搜索查找就可以了
6、调用Opencv基础算法API
使用Opencv包进行简单图像处理算法展示 添加opencv包,直接调用算法API即可,涉及QImage与cv::Mat图像之间的格式转换,直接CSDN一个就可以了。
7、工业相机接口
简略的学习了一下海康工业相机SDK二次开发,只CV了一些代码,没有测试也不能使用。
如果想接入工业相机需要单独学习一下相机官方的SDK文档。
二、加入深度学习算法
1、数据集制作
数据集根据现场图片集进行分类并重命名处理,并按1:9分为测试集和训练集,一共有六类。
2、模型选择
瓶盖缺陷可以采用目标检测算法,对每一类缺陷进行检测,也可以采用分类算法,根据可能产生的缺陷类别进行分类预测。
毕设采用分类模型,选取小巧高效的MobileNet_V2作为训练模型。选取pytorch作为框架。
3、模型训练与测试
数据集共674张,采用EPOCH = 10,BATCH_SIZE = 8,学习率LR = 0.01 进行训练。
达到的效果最好,可以到达预测准确率100%。
4、模型保存
将训练好的pytorch模型参数保存为pth模型文件,再由pth模型参数文件转为onnx格式,方便进行下一步的推理部署。
5、QT+opencv进行模型推理部署
opencv版本为4.5.5,通过opencv的DNN模块可以直接读取onnx模型文件,然后对图像进行预处理并输入模型进行预测即可。预测准确率100%。
6、效果展示
opencv与QT相结合,可以实现对相机或文件及下的图像进行读取、识别预测、结果展示、日志输出等演示。
暂无评论内容