目錄
- 【《使用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客戶端中編寫檢查更新、下載新版安裝包、并啟動外部安裝程序的邏輯,為我們的應用畫上一個完美的句號。