目录
- 【《使用Qt Quick从零构建AI螺丝瑕疵检测系统》系列简介】
- 第一部分:基础入门与项目启航
- 第二部分:核心视觉算法开发
- 第三部分:模拟完整工业流程
- 第四部分:软件打包与高级特性
【《使用Qt Quick从零构建AI螺丝瑕疵检测系统》系列简介】
本系列是一个面向工业应用的Qt 6项目实战教程,使用Qt最新的QML技术。我们将从零开始,以博客文章的形式,手把手带您完整构建一个功能完备的AI视觉检测软件。内容覆盖QML界面、C++后端、OpenCV视觉处理、YOLOv8模型训练与部署,直至串口、HTTP通信和跨平台部署。每篇文章都是一个独立可复现的学习单元,旨在帮您掌握从算法研发到软件产品化的全栈能力,无缝对接企业级项目需求。
第一部分:基础入门与项目启航
-
第1篇: 启航:你的第一个工业视觉应用
- 核心内容: 介绍项目目标,解析技术栈,并手把手带领读者完成开发环境搭建(Qt Creator + MSVC),最终成功运行一个“Hello World”级的Qt Quick程序。
- 核心内容: 介绍项目目标,解析技术栈,并手把手带领读者完成开发环境搭建(Qt Creator + MSVC),最终成功运行一个“Hello World”级的Qt Quick程序。
-
第2篇:C++基础:构建程序的坚实骨架
- 核心内容: 以Qt控制台程序为例,快速掌握变量、函数、类和Qt核心的信号槽机制。每个知识点都配有可独立运行的精简示例。
-
第3篇: QML入门:像搭积木一样构建UI
- 核心内容: 学习QML基础语法、常用组件(
Window
,Rectangle
,Image
,Button
)和布局方式(Row
,Column
,Anchors
),搭建出项目的主界面静态框架。
- 核心内容: 学习QML基础语法、常用组件(
-
第4篇:前后端联动:打通QML与C++的任督二脉
- 核心内容: 讲解MVVM架构思想,并通过
setContextProperty
将C++对象暴露给QML。实现点击QML按钮,调用C++函数并返回结果,完成前后端的首次成功“对话”。
- 核心内容: 讲解MVVM架构思想,并通过
第二部分:核心视觉算法开发
-
第5篇:集成OpenCV:让程序拥有“视力”
- 核心内容: 在Qt项目中配置和引入OpenCV库,实现
cv::Mat
与QImage
的相互转换,并在QML界面上加载并显示一张本地的螺丝图片。
- 核心内容: 在Qt项目中配置和引入OpenCV库,实现
-
第6篇:传统算法实战:用OpenCV测量螺丝尺寸
- 核心内容: 使用OpenCV的二值化、轮廓发现等经典函数,对螺丝图片进行处理,计算其长度、宽度等几何参数,并判断是否合格。引出传统算法的局限性。
-
第7篇:AI赋能(上):训练你自己的YOLOv8瑕疵检测模型
- 核心内容: 介绍目标检测基本概念。重点讲解如何使用LabelImg等工具标注螺丝瑕疵数据,并编写Python脚本,调用Ultralytics库训练一个YOLOv8模型,最终导出为ONNX格式。
-
第8篇:AI赋能(下):在Qt中部署YOLOv8模型
- 核心内容: 使用OpenCV的DNN模块,在C++中加载上一篇训练好的ONNX模型。对输入的图像进行推理,解析模型的输出,并在图像上绘制出瑕疵的边界框和标签。
第三部分:模拟完整工业流程
-
第9篇:接入真实硬件:驱动USB摄像头
- 核心内容: 使用Qt Multimedia模块中的
QCamera
和QVideoSink
,捕获USB摄像头的实时视频流,并将其稳定地显示在QML界面上,实现对真实物体的动态检测。
- 核心内容: 使用Qt Multimedia模块中的
-
第10篇:模拟PLC通信:玩转串口(Serial Port)
- 核心内容: 讲解Qt SerialPort模块的使用。编写一个“虚拟PLC助手”(QML版),通过虚拟串口发送“拍照”指令给主程序,主程序在检测后回传“OK/NG”结果。
-
第11篇:数据上报MES:与FastAPI服务器的HTTP通信
- 核心内容: 介绍Qt Network模块。将检测结果封装成JSON格式,通过HTTP POST请求,上报给一个用Python FastAPI搭建的超轻量级本地Web服务器。
第四部分:软件打包与高级特性
-
第12篇:专业部署:打包你的Windows应用
- 核心内容: 讲解Release编译,并使用官方的
windeployqt
工具自动收集所有依赖项(DLLs, QML文件等),最终通过Inno Setup创建一个专业的.exe
图形化安装包。
- 核心内容: 讲解Release编译,并使用官方的
-
第13篇: 跨平台之旅:部署到Linux与国产系统
- 核心内容: 在Ubuntu环境下编译项目,并使用
linuxdeployqt
进行打包。重点讲解在国产操作系统(以麒麟为例)上部署的注意事项和适配要点。
- 核心内容: 在Ubuntu环境下编译项目,并使用
-
第1.4篇:终极功能:实现程序的在线自动更新
- 核心内容: 在FastAPI服务器上增加版本检查API。在Qt客户端中编写检查更新、下载新版安装包、并启动外部安装程序的逻辑,为我们的应用画上一个完美的句号。