基于 YOLOv8 的垃圾分類識別系統(tǒng)(全套源碼+數(shù)據(jù)集)
基于 YOLOv8 目標檢測模型 PyQt6 桌面端應用的垃圾分類識別系統(tǒng)覆蓋數(shù)據(jù)集構建、模型訓練調優(yōu)、系統(tǒng)集成開發(fā)的完整深度學習工程流程。開發(fā)日期2026年目錄項目概述數(shù)據(jù)集說明深度學習開發(fā)流程訓練參數(shù)訓練指標與結果可視化圖表說明系統(tǒng)功能技術棧項目結構啟動教程項目概述本項目針對城市生活垃圾分類場景構建了一套端到端的 AI 識別系統(tǒng)目標檢測模型基于 YOLOv8n 預訓練權重進行遷移學習識別 44 種常見垃圾細類分類規(guī)則引擎將 44 個細類自動映射到「可回收物 / 廚余垃圾 / 有害垃圾 / 其他垃圾」四大類桌面端應用PyQt6 多功能檢測界面支持圖片、視頻、攝像頭三種輸入源實時檢測數(shù)據(jù)集說明基本信息項目內容標注格式YOLO TXT由 Pascal VOC XML 轉換圖像總數(shù)14,761張有效圖像原始 14,964 張去除無圖樣本大類數(shù)量4類可回收物、廚余垃圾、有害垃圾、其他垃圾細類數(shù)量44類圖像格式JPEG.jpg數(shù)據(jù)集劃分train / val / test 7 : 1 : 2子集分布子集圖片數(shù)量用途train10,319 張模型訓練val1,478 張訓練過程中的驗證評估test2,964 張最終性能測試垃圾分類體系大類細類數(shù)代表細類可回收物26 類飲料瓶、易拉罐、紙盒紙箱、玻璃器皿、舊衣服、充電寶…廚余垃圾7 類剩飯剩菜、果皮果肉、菜幫菜葉、魚骨、蛋殼…有害垃圾3 類干電池、過期藥物、軟膏其他垃圾8 類一次性快餐盒、煙蒂、陶瓷器皿、污損塑料…標注格式示例每張圖片對應一個同名.txt文件每行一個目標框坐標均歸一化到[0, 1]class_id x_center y_center width height 6 0.4106 0.4219 0.5962 0.3379深度學習開發(fā)流程第一階段數(shù)據(jù)集構建與處理原始數(shù)據(jù)收集整合公開垃圾分類數(shù)據(jù)集原始標注格式為 Pascal VOC XML格式轉換將 XML 標注批量轉換為 YOLO TXT 格式class_id x_center y_center w h歸一化坐標數(shù)據(jù)清洗剔除無有效標注框的樣本14,964 → 14,761 張數(shù)據(jù)集劃分按 7:1:2 比例隨機劃分訓練/驗證/測試集確保類別分布均衡分類規(guī)則構建編寫classify_rule.json建立細類 → 大類的映射規(guī)則支持推理后的大類歸并第二階段模型訓練與調優(yōu)模型選型選擇 YOLOv8nNano 版本作為基礎架構參數(shù)量小、推理速度快適合桌面端部署遷移學習加載 COCO 預訓練權重yolov8n.pt在垃圾數(shù)據(jù)集上進行微調加速收斂數(shù)據(jù)增強啟用 Mosaic 拼接mosaic1.0、隨機水平翻轉fliplr0.5、HSV 色彩擾動、隨機縮放等多種增強策略訓練策略前 3 個 epoch 進行學習率 Warmup逐步從warmup_bias_lr0.1過渡到lr00.01后期采用余弦退火式線性衰減lrf0.01避免學習率過高導致振蕩最后 10 個 epoch 關閉 Mosaic 增強close_mosaic10提升模型對真實樣本的擬合能力混合精度訓練啟用 AMPampTrue降低顯存占用提升訓練吞吐結果保存自動保存最優(yōu)權重best.pt和最終權重last.pt并記錄完整訓練日志results.csv第三階段系統(tǒng)集成與功能開發(fā)檢測器封裝將 Ultralytics YOLO 推理接口封裝為Detector類統(tǒng)一管理模型加載、參數(shù)配置和推理調用多線程架構視頻和攝像頭檢測采用QThread異步處理檢測線程與 UI 線程分離保證界面流暢歷史記錄持久化使用 SQLite 存儲每次檢測的結果支持按類型篩選和關鍵詞搜索訓練結果可視化讀取results.csv使用 Matplotlib 繪制多維度分析圖表嵌入 PyQt6 界面訓練參數(shù)參數(shù)值說明基礎模型yolov8n.ptCOCO 預訓練 Nano 版本訓練輪次100 epochs—批次大小16—輸入尺寸640×640—初始學習率0.01lr0最終學習率0.01 × lrf 0.0001線性衰減至 lr0×lrfWarmup 輪次3.0—優(yōu)化器autoSGD—動量0.937—權重衰減0.0005—Box Loss 權重7.5—Cls Loss 權重0.5—DFL Loss 權重1.5—IoU 閾值NMS0.7—混合精度AMP 開啟—Mosaic 增強1.0后 10 epoch 關閉—水平翻轉0.5—HSV 色調擾動0.015—HSV 飽和度擾動0.7—隨機縮放0.5—自動增強randaugment—隨機擦除0.4—總訓練時長≈ 2.54 小時9,161 秒訓練指標與結果核心指標基于驗證集指標最優(yōu)值Best Epoch最終值Epoch 100mAP0.50.6991Epoch 810.6971mAP0.5:0.950.5954Epoch 890.5981Precision0.7997Epoch 530.7564Recall0.6455Epoch 660.6270F1 Score≈ 0.714≈ 0.681損失曲線趨勢損失項初始值Epoch 1最終值Epoch 100說明train/box_loss0.7600.419邊界框回歸損失下降 ≈ 45%train/cls_loss3.8710.562分類損失下降 ≈ 85.5%train/dfl_loss1.2941.032分布焦點損失val/box_loss0.8930.599驗證集邊界框損失val/cls_loss2.7171.090驗證集分類損失訓練集與驗證集損失同步下降無明顯過擬合現(xiàn)象模型具備良好的泛化能力。可視化圖表說明系統(tǒng)內置兩套可視化工具指標展示頁內置圖表圖表名稱含義訓練/驗證 Box Loss模型預測邊界框與真實框之間的位置偏差值越低說明定位越準確訓練/驗證 Cls Loss類別分類的交叉熵損失值越低說明分類越準確訓練/驗證 DFL Loss分布焦點損失輔助邊界框精細化回歸mAP0.5** 曲線**IoU 閾值為 0.5 時的平均精度均值衡量整體檢測性能mAP0.5:0.95 曲線在多個 IoU 閾值0.5~0.95下的綜合性能要求更嚴格Precision 曲線精確率 正確檢測數(shù) / 總預測數(shù)反映誤報率Recall 曲線召回率 正確檢測數(shù) / 真實目標數(shù)反映漏報率F1 分數(shù)曲線Precision 與 Recall 的調和平均綜合衡量兩者均衡性學習率衰減曲線展示 Warmup → 線性衰減的學習率變化過程綜合性能雷達圖將 mAP、Precision、Recall、F1、損失收斂度等多維指標以雷達形式可視化各指標對比柱狀圖匯總最優(yōu) epoch 的四項核心指標便于橫向比較獨立可視化腳本plot_results.py運行python plot_results.py后自動為每個訓練指標生成獨立 PNG 圖片保存至runs/detect/train/charts/包含最優(yōu)值標注。系統(tǒng)功能 登錄注冊用戶名 密碼登錄支持注冊新賬號賬號信息持久化存儲于users.json? 圖片識別支持點擊打開或拖拽導入圖片JPG / PNG / BMP / WebP一鍵開始檢測實時展示標注結果圖統(tǒng)計摘要總檢測數(shù)、類別數(shù)、平均 / 最高置信度類別分布表、詳細檢測數(shù)據(jù)表坐標 置信度置信度直方圖分布支持導出標注圖片、導出 CSV 結果文件 視頻識別打開本地視頻文件按幀間隔檢測實時展示帶標注的視頻幀當前幀 / 累計檢測統(tǒng)計可隨時停止檢測 攝像頭識別支持多路攝像頭切換索引 0~10檢測開關分離可僅預覽不檢測實時統(tǒng)計目標數(shù)量、類別、置信度一鍵截圖保存會話結果寫入歷史 檢測歷史圖片 / 視頻 / 攝像頭檢測記錄自動入庫SQLite支持按檢測類型篩選、關鍵詞搜索點擊記錄查看完整詳情支持導出歷史 CSV、一鍵清空?? 模型管理自動加載默認權重runs/detect/train/weights/best.pt支持手動瀏覽指定任意.pt / .onnx模型文件可視化調節(jié)置信度閾值、IoU 閾值、最大檢測數(shù)展示模型信息與 44 類別說明 指標展示訓練曲線損失、mAP、Precision、Recall 全程變化指標匯總核心指標大字展示 柱狀對比圖綜合分析7 維雷達圖 學習率曲線 P/R/F1 三線對比技術棧類別技術 / 庫深度學習框架PyTorch目標檢測Ultralytics YOLOv8圖像處理OpenCVcv2數(shù)值計算NumPy可視化MatplotlibQtAgg 后端桌面 UIPyQt6數(shù)據(jù)庫SQLite3Python 內置開發(fā)語言Python 3.9項目結構垃圾分類檢測/ ├── main.py # 程序入口 ├── plot_results.py # 獨立指標可視化腳本 ├── requirements.txt # 依賴清單 ├── users.json # 用戶賬號自動生成 ├── detection_history.db # 檢測歷史數(shù)據(jù)庫自動生成 │ ├── datasets/ # 數(shù)據(jù)集 │ ├── images/ │ │ ├── train/ # 訓練圖片10,319 張 │ │ ├── val/ # 驗證圖片1,478 張 │ │ └── test/ # 測試圖片2,964 張 │ ├── labels/ │ │ ├── train/ # 訓練標注YOLO TXT │ │ ├── val/ │ │ └── test/ │ ├── garbage.yaml # YOLO 訓練配置 │ ├── classify_rule.json # 細類 → 大類映射規(guī)則 │ ├── train_classes.txt # 44 類名稱列表 │ └── README.md # 數(shù)據(jù)集說明 │ ├── runs/ │ └── detect/ │ └── train/ │ ├── weights/ │ │ ├── best.pt # 最優(yōu)模型權重系統(tǒng)默認加載 │ │ └── last.pt # 最終輪次權重 │ ├── results.csv # 訓練指標日志100 輪 │ ├── args.yaml # 訓練參數(shù)記錄 │ └── charts/ # plot_results.py 輸出圖表 │ ├── utils/ # 工具層 │ ├── styles.py # 全局 QSS 樣式 │ ├── db.py # SQLite 歷史數(shù)據(jù)庫操作 │ └── detector.py # YOLO 檢測器封裝 │ └── ui/ # 界面層 ├── widgets.py # 共享組件卡片、統(tǒng)計塊、標題 ├── login_window.py # 登錄 / 注冊窗口 ├── main_window.py # 主窗口頂部導航欄 └── pages/ ├── image_page.py # 圖片識別頁 ├── video_page.py # 視頻識別頁 ├── camera_page.py # 攝像頭識別頁 ├── history_page.py # 檢測歷史頁 ├── model_page.py # 模型管理頁 └── metrics_page.py # 指標展示頁啟動教程環(huán)境準備Python 版本要求Python 3.9安裝所有依賴pipinstall-rrequirements.txt如需 GPU 加速推理請?zhí)崆鞍惭b與 CUDA 版本匹配的 PyTorch詳見 pytorch.org準備模型權重將訓練好的模型權重放置于runs/detect/train/weights/best.pt系統(tǒng)啟動時將自動加載該路徑的權重。也可以在運行后于「模型管理」頁面手動指定其他權重文件。啟動系統(tǒng)在項目根目錄執(zhí)行python main.py登錄界面默認賬號賬號密碼adminadmin123重新訓練模型可選如需在自有數(shù)據(jù)集上重新訓練在項目根目錄執(zhí)行yolo traindatadatasets/garbage.yamlmodelyolov8n.ptepochs100imgsz640batch16訓練完成后將新權重路徑在「模型管理」頁面重新加載即可。生成獨立指標圖表python plot_results.py圖表將保存至runs/detect/train/charts/每個指標對應一張 PNG 文件。本項目為個人原創(chuàng)結構清晰功能完整適合計算機視覺方向課程設計、畢業(yè)設計和項目演示使用。有定制化需求可以評論或私信作者。作者原創(chuàng)項目地址michael-jay.pages.dev/projects.html

相關新聞

SAP在裝備制造業(yè)數(shù)字化轉型中的解決方案與實踐

SAP在裝備制造業(yè)數(shù)字化轉型中的解決方案與實踐

1. 智能制造浪潮下的裝備制造行業(yè)痛點 裝備制造業(yè)作為工業(yè)體系的核心支柱,其生產模式正經(jīng)歷著從傳統(tǒng)制造向智能制造的深刻變革。在這個轉型過程中,企業(yè)普遍面臨著幾個關鍵挑戰(zhàn): 產品復雜度指數(shù)級上升:現(xiàn)代裝備產品往往由數(shù)萬個零…

2026/8/4 8:02:57 閱讀更多
膜單元在非線性有限元分析中的高效應用

膜單元在非線性有限元分析中的高效應用

1. 項目概述:膜單元在非線性有限元分析中的應用探索 在工程結構分析領域,膜單元(Membrane Element)作為一種特殊的殼體單元,因其獨特的力學特性而廣泛應用于薄壁結構分析。不同于傳統(tǒng)的殼單元,膜單元僅考慮…

2026/8/4 8:02:57 閱讀更多
Python實現(xiàn)決策樹模擬器:從算法原理到交互式項目實戰(zhàn)

Python實現(xiàn)決策樹模擬器:從算法原理到交互式項目實戰(zhàn)

最近在技術社區(qū)看到不少關于“選擇藥丸決定生存地”的討論,這其實是一個經(jīng)典的決策模擬與算法實現(xiàn)問題,非常適合用來練習條件判斷、隨機數(shù)生成、數(shù)據(jù)結構以及面向對象設計。本文將從一個開發(fā)者的視角,完整拆解如何用 Python 實現(xiàn)一個交互式的…

2026/8/4 9:22:59 閱讀更多
Blender效率插件“套卡”:一鍵自動化重復操作流程

Blender效率插件“套卡”:一鍵自動化重復操作流程

這次我們來看一個專門為 Blender 用戶設計的效率工具——“套卡”插件。如果你在 Blender 建模、動畫或渲染過程中,經(jīng)常需要重復執(zhí)行一系列固定的操作,比如設置材質、調整燈光、批量重命名對象,那么這個插件就是為你準備的。它的核心思路很簡…

2026/8/4 9:22:59 閱讀更多
技術視角下的微信視頻號內容生態(tài)分析與合規(guī)建模實踐

技術視角下的微信視頻號內容生態(tài)分析與合規(guī)建模實踐

在實際內容創(chuàng)作和社交媒體運營中,我們經(jīng)常需要分析特定平臺上的熱門內容創(chuàng)作者,以理解其成功模式、內容策略和受眾吸引力。微信視頻號作為微信生態(tài)內重要的短視頻內容平臺,涌現(xiàn)了大量風格各異、內容優(yōu)質的創(chuàng)作者,他們往往在特定垂…

2026/8/4 9:22:59 閱讀更多
運行時Hook技術原理與多語言攻防實踐

運行時Hook技術原理與多語言攻防實踐

1. 運行時Hook技術基礎回顧在進入實戰(zhàn)對抗環(huán)節(jié)前,有必要先梳理清楚Hook技術的基本原理。Hook的本質是通過修改程序執(zhí)行流程,在目標函數(shù)執(zhí)行前后插入自定義代碼。不同語言實現(xiàn)方式各有特點:Java:主要通過Java Agent的Instrumentati…

2026/8/4 9:22:59 閱讀更多
清華大學重磅EST:植物自導電閃蒸焦耳熱600°C/2600°C兩步法!稀土超積累植物秒級轉化為CeO?-石墨烯電催化劑!

清華大學重磅EST:植物自導電閃蒸焦耳熱600°C/2600°C兩步法!稀土超積累植物秒級轉化為CeO?-石墨烯電催化劑!

通訊作者:鄧兵、劉建國通訊單位:清華大學DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清潔能源技術與電子器件不可或缺的核心原料,然而傳統(tǒng)提取方式依賴能耗高、排放大的采礦與強…

2026/8/4 0:01:30 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/3 12:53:38 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應用材料(Applied Materials)公司生產的一款用于半導體設備的I/O信號分配電路板。該型號(0100-02186)的核心特點如下:專用于Endura等半導體工藝腔室。集成信號路由與分配功能。連接控制…

2026/8/3 19:34:52 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機,適用于自動化設備及通用機械驅動。該型號(FFMN-32L-10-T0 40AX)的核心特點如下:三相交流異步電動機。額定…

2026/8/3 19:34:54 閱讀更多