《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——1. 启航:你的第一个工业视觉应用
目录
- 一、概述
- 1.1 背景介绍:为工业生产线装上“智能之眼”
- 1.2 项目目标
- 1.3 技术栈
- 1.4 代码链接
- 二、环境安装
- 2.1 安装Qt 6和Qt Creator
- 2.2 安装 Visual Studio Community
- 2.3 环境验证
- 三、创建项目
- 3.1 创建Qt Quick项目
- 3.2 设置应用程序图标
- 3.2.1 设置窗口图标 (The Window Icon)
- 3.2.2 设置可执行文件图标 (The Executable Icon)
- 四、总结与展望
一、概述
1.1 背景介绍:为工业生产线装上“智能之眼”
在“工业4.0”和“中国制造2025”的浪潮下,传统制造业正经历着深刻的数字化、智能化转型。其中,机器视觉技术扮演着至关重要的角色,它如同生产线上不知疲倦、精度恒定的“智能之眼”,能够自动完成产品的质量检测、尺寸测量和定位引导。
本项目将聚焦于机器视觉最核心的应用——瑕疵检测。我们将从零开始,完整地构建一款与工业相机配套的桌面软件。这款软件将能够实时分析摄像头捕获的图像,并利用强大的AI算法,自动识别出像螺丝这类精密元器件表面的微小瑕疵,如划痕、锈斑或损伤,从而取代传统、低效的人工目检,实现生产质量控制的自动化。
1.2 项目目标
本系列文章的核心任务是带领读者完成一个功能完备的AI工业视觉检测软件,它最终将具备:
- 现代化UI:使用Qt Quick技术,创建一个简洁、美观、响应迅速的用户界面。
- 实时视频处理:稳定接入并显示USB摄像头的实时视频流。
- AI智能检测:集成自行训练的YOLOv8深度学习模型,实现对多种瑕疵的快速、准确识别。
- 硬件联动模拟:通过串口与模拟的PLC(可编程逻辑控制器)通信,接收指令并反馈结果。
- 数据上报:将检测数据通过HTTP协议上报给模拟的MES(制造执行系统)服务器。
- 专业软件交付:能够打包成可在Windows、Linux及国产操作系统上运行的专业安装包,并具备在线自动更新功能。
1.3 技术栈
- 框架:Qt 6.9.1 (在安装组件中,务必勾选 MSVC 2022、Qt Quick、Qt Multimedia、Qt Serial Port 和 Qt Charts)
- 语言:C++
- 构建系统:CMake
- 编译器:MSVC (Visual Studio 2022)
- 图像库:OpenCV
- 开发工具:Qt Creator
- 开发系统:Windows
1.4 代码链接
本系列项目源码将逐步更新,可从以下网址下载:https://github.com/qianbin1989228/Qt6_Industrial_AI_Vision_Tutorial 。
下面,正式进入研发环节。
二、环境安装
2.1 安装Qt 6和Qt Creator
1.下载开源版安装软件
打开浏览器,访问Qt官方网站,导航至开源版本的下载页面https://www.qt.io/download-open-source,下载并运行Qt Online Installer for Windows(x64),如下图所示:
2.运行在线安装程序
双击运行后进入登录界面,按照要求输入对应的Qt账户名和密码即可,如下图所示。如未注册过Qt账户,则按照提示先进行账户注册再登录。
3.安装选项
在“安装选项”界面,选择对应的Qt安装目录(路径中不得包含中文或特殊符号),然后依次勾选开发工具和自定义安装,如下图所示:
4.自定义
在“自定义”组件页面,此为最关键的步骤:
- (1)在顶部的Qt版本列表中,选择一个最新的稳定版,例如Qt 6.9.1。展开该版本,务必勾选MSVC 2022 64-bit。在Additional Libraries分类下,勾选Qt Multimedia、Qt Serial Port和Qt Charts。如果空间充裕,可以将Additional Libraries下的组件全部勾选,如下图所示:
- (2)展开下方的Build Tools分类,确保CMake和Ninja已被勾选。
- (3)最后,展开Qt Creator,将其全部勾选上。如下图所示。
- (4)单击“下一步”,同意许可协议,然后启动安装。
这里需要解释为何选择MSVC?
在Windows平台,MSVC是微软官方的C++编译器,它与Windows操作系统以及各类第三方预编译库(例如后续将要集成的OpenCV)拥有最佳的二进制兼容性,可有效规避许多潜在的编译与链接问题。
2.2 安装 Visual Studio Community
由于前文Qt编译器选择了MSVC,因此需要安装MSVC的提供者——Visual Studio。
(1)访问Visual Studio官方网站https://visualstudio.microsoft.com/。
(2)下载并运行Visual Studio Community 2022(社区版免费)的安装程序。
(3)在“工作负荷”选择界面,务必勾选“使用C++的桌面开发”选项,然后执行安装,如下图所示。
2.3 环境验证
所有安装完成后,启动Qt Creator。导航至菜单栏的“编辑”->Preferences->“构建套件(Kits)”。如果在列表中能看到一个名为Desktop Qt 6.9.1 MSVC2022 64bit(具体版本号可能略有不同)的构建套件,且其前方没有任何红色的感叹号或错误图标,则表明开发环境已成功配置,如下图所示:
三、创建项目
3.1 创建Qt Quick项目
- 打开Qt Creator,选择
文件 -> New Project...
。 - 模板选择: 在弹出的窗口中,选择 Application (Qt) -> Qt Quick Application。
- 项目命名: 项目名称设为
ScrewDetector
,选择一个不含中文或特殊字符的创建路径。 - 构建系统:选择
CMake
。 - 构建套件(Kit): 勾选
Desktop Qt 6.9.1 MSVC2022 64bit
的Release。 - 完成向导:一路点击“下一步”,完成项目创建。
创建完成后,按Ctrl+R
运行程序,初始效果为一个空白的"Hello World"窗口,如下图所示:
打开Main.qml
,可以对窗体标题、大小和背景色进行初步美化:
import QtQuickWindow {width: 960height: 720visible: truetitle: qsTr("AI螺丝瑕疵检测系统 V1.0")color: "#1e2a38" // 设置一个深色背景
}
修改后重新运行,效果如下:
3.2 设置应用程序图标
一个专业的应用程序需要有自己的图标。设置图标主要包括两个部分:
- 窗口图标:应用程序运行时,在窗口标题栏和任务栏上显示的图标。
- 可执行文件图标:在文件浏览器中看到的
.exe
文件的图标。
3.2.1 设置窗口图标 (The Window Icon)
第一步:准备图标文件
首先,需要一个.png
格式的图标文件,因为它通用且支持透明背景。建议准备一张至少 256x256
像素的图片,命名为appicon.png
。在项目根目录中创建一个icons
文件夹,并将appicon.png
文件拷贝进去。
资源推荐:可以从免费的图标素材网站 https://icons8.com/ 寻找合适的图标。
第二步:将图标添加到Qt资源系统
编辑项目根目录下的CMakeLists.txt
文件,在末尾添加以下代码,将icons
文件夹下的图片注册为Qt资源:
qt_add_resources(appScrewDetector "app_resources"PREFIX "/"FILESicons/appicon.png
)
第三步:在main.cpp中调用
打开main.cpp
,添加QIcon
头文件,并调用setWindowIcon
函数:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QIcon> // 1. 添加头文件引用int main(int argc, char *argv[])
{QGuiApplication app(argc, argv);// 2. 在创建QGuiApplication对象后,设置窗口图标app.setWindowIcon(QIcon(":/icons/appicon.png"));QQmlApplicationEngine engine;// ... (后续代码保持不变)return app.exec();
}
现在重新编译并运行程序,会看到窗口的左上角和任务栏上已经显示了专属图标。
3.2.2 设置可执行文件图标 (The Executable Icon)
要让编译出的.exe
文件也显示图标,需要一个.ico
格式的文件,并创建一个资源脚本.rc
文件。
第一步:转换图标格式
将之前的appicon.png
转换为.ico
格式。可以使用免费的在线转换网站,例如 https://www.ico51.cn/。转换完成后,将appicon.ico
文件也拷贝到项目的icons
文件夹下。
第二步:创建资源脚本文件(.rc)
在项目根目录(与CMakeLists.txt
同级)下,手动创建一个名为logo.rc
的文件,并用Qt Creator打开,输入以下内容:
IDI_ICON1 ICON DISCARDABLE "icons/appicon.ico"
第三步:将.rc文件添加到项目中
再次打开CMakeLists.txt
,找到qt_add_executable
函数,将logo.rc
添加进去:
qt_add_executable(appScrewDetectormain.cpplogo.rc
)
重新编译项目。然后打开构建目录下的release
文件夹,会发现appScrewDetector.exe
的文件图标已经成功更换。
四、总结与展望
在本篇文章中,我们明确了整个系列的项目目标与技术选型,并完成了最关键的起步工作:成功搭建了专业的开发环境,创建了项目骨架,并为应用程序赋予了专业的视觉标识——窗口图标和文件图标。
虽然这只是万里长征的第一步,但一个配置正确的、外观专业的项目框架,将为后续所有功能的开发提供巨大的便利和信心。
软件的“颜值”固然重要,但其强大的“内芯”——C++后端逻辑,才是我们接下来要修炼的内功。在下一篇文章**【 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——2. C++基础:构建程序的坚实骨架】**中,我们将深入C++的世界,掌握构建程序逻辑的基本功。