提供營銷型網(wǎng)站鄭州營銷型網(wǎng)站建設
《博主簡介》
小伙伴們好,我是阿旭。專注于人工智能、AIGC、python、計算機視覺相關(guān)分享研究。
?更多學習資源,可關(guān)注公-仲-hao:【阿旭算法與機器學習】,共同學習交流~
👍感謝小伙伴們點贊、關(guān)注!
《------往期經(jīng)典推薦------》
一、AI應用軟件開發(fā)實戰(zhàn)專欄【鏈接】
項目名稱 | 項目名稱 |
---|---|
1.【人臉識別與管理系統(tǒng)開發(fā)】 | 2.【車牌識別與自動收費管理系統(tǒng)開發(fā)】 |
3.【手勢識別系統(tǒng)開發(fā)】 | 4.【人臉面部活體檢測系統(tǒng)開發(fā)】 |
5.【圖片風格快速遷移軟件開發(fā)】 | 6.【人臉表表情識別系統(tǒng)】 |
7.【YOLOv8多目標識別與自動標注軟件開發(fā)】 | 8.【基于YOLOv8深度學習的行人跌倒檢測系統(tǒng)】 |
9.【基于YOLOv8深度學習的PCB板缺陷檢測系統(tǒng)】 | 10.【基于YOLOv8深度學習的生活垃圾分類目標檢測系統(tǒng)】 |
11.【基于YOLOv8深度學習的安全帽目標檢測系統(tǒng)】 | 12.【基于YOLOv8深度學習的120種犬類檢測與識別系統(tǒng)】 |
13.【基于YOLOv8深度學習的路面坑洞檢測系統(tǒng)】 | 14.【基于YOLOv8深度學習的火焰煙霧檢測系統(tǒng)】 |
15.【基于YOLOv8深度學習的鋼材表面缺陷檢測系統(tǒng)】 | 16.【基于YOLOv8深度學習的艦船目標分類檢測系統(tǒng)】 |
17.【基于YOLOv8深度學習的西紅柿成熟度檢測系統(tǒng)】 | 18.【基于YOLOv8深度學習的血細胞檢測與計數(shù)系統(tǒng)】 |
19.【基于YOLOv8深度學習的吸煙/抽煙行為檢測系統(tǒng)】 | 20.【基于YOLOv8深度學習的水稻害蟲檢測與識別系統(tǒng)】 |
21.【基于YOLOv8深度學習的高精度車輛行人檢測與計數(shù)系統(tǒng)】 | 22.【基于YOLOv8深度學習的路面標志線檢測與識別系統(tǒng)】 |
23.【基于YOLOv8深度學習的智能小麥害蟲檢測識別系統(tǒng)】 | 24.【基于YOLOv8深度學習的智能玉米害蟲檢測識別系統(tǒng)】 |
25.【基于YOLOv8深度學習的200種鳥類智能檢測與識別系統(tǒng)】 | 26.【基于YOLOv8深度學習的45種交通標志智能檢測與識別系統(tǒng)】 |
27.【基于YOLOv8深度學習的人臉面部表情識別系統(tǒng)】 | 28.【基于YOLOv8深度學習的蘋果葉片病害智能診斷系統(tǒng)】 |
29.【基于YOLOv8深度學習的智能肺炎診斷系統(tǒng)】 | 30.【基于YOLOv8深度學習的葡萄簇目標檢測系統(tǒng)】 |
31.【基于YOLOv8深度學習的100種中草藥智能識別系統(tǒng)】 | 32.【基于YOLOv8深度學習的102種花卉智能識別系統(tǒng)】 |
33.【基于YOLOv8深度學習的100種蝴蝶智能識別系統(tǒng)】 | 34.【基于YOLOv8深度學習的水稻葉片病害智能診斷系統(tǒng)】 |
35.【基于YOLOv8與ByteTrack的車輛行人多目標檢測與追蹤系統(tǒng)】 | 36.【基于YOLOv8深度學習的智能草莓病害檢測與分割系統(tǒng)】 |
37.【基于YOLOv8深度學習的復雜場景下船舶目標檢測系統(tǒng)】 | 38.【基于YOLOv8深度學習的農(nóng)作物幼苗與雜草檢測系統(tǒng)】 |
39.【基于YOLOv8深度學習的智能道路裂縫檢測與分析系統(tǒng)】 | 40.【基于YOLOv8深度學習的葡萄病害智能診斷與防治系統(tǒng)】 |
41.【基于YOLOv8深度學習的遙感地理空間物體檢測系統(tǒng)】 | 42.【基于YOLOv8深度學習的無人機視角地面物體檢測系統(tǒng)】 |
43.【基于YOLOv8深度學習的木薯病害智能診斷與防治系統(tǒng)】 | 44.【基于YOLOv8深度學習的野外火焰煙霧檢測系統(tǒng)】 |
45.【基于YOLOv8深度學習的腦腫瘤智能檢測系統(tǒng)】 | 46.【基于YOLOv8深度學習的玉米葉片病害智能診斷與防治系統(tǒng)】 |
47.【基于YOLOv8深度學習的橙子病害智能診斷與防治系統(tǒng)】 | 48.【基于深度學習的車輛檢測追蹤與流量計數(shù)系統(tǒng)】 |
49.【基于深度學習的行人檢測追蹤與雙向流量計數(shù)系統(tǒng)】 | 50.【基于深度學習的反光衣檢測與預警系統(tǒng)】 |
51.【基于深度學習的危險區(qū)域人員闖入檢測與報警系統(tǒng)】 | 52.【基于深度學習的高密度人臉智能檢測與統(tǒng)計系統(tǒng)】 |
53.【基于深度學習的CT掃描圖像腎結(jié)石智能檢測系統(tǒng)】 | 54.【基于深度學習的水果智能檢測系統(tǒng)】 |
55.【基于深度學習的水果質(zhì)量好壞智能檢測系統(tǒng)】 | 56.【基于深度學習的蔬菜目標檢測與識別系統(tǒng)】 |
57.【基于深度學習的非機動車駕駛員頭盔檢測系統(tǒng)】 | 58.【太基于深度學習的陽能電池板檢測與分析系統(tǒng)】 |
59.【基于深度學習的工業(yè)螺栓螺母檢測】 | 60.【基于深度學習的金屬焊縫缺陷檢測系統(tǒng)】 |
61.【基于深度學習的鏈條缺陷檢測與識別系統(tǒng)】 | 62.【基于深度學習的交通信號燈檢測識別】 |
63.【基于深度學習的草莓成熟度檢測與識別系統(tǒng)】 | 64.【基于深度學習的水下海生物檢測識別系統(tǒng)】 |
二、機器學習實戰(zhàn)專欄【鏈接】,已更新31期,歡迎關(guān)注,持續(xù)更新中~~
三、深度學習【Pytorch】專欄【鏈接】
四、【Stable Diffusion繪畫系列】專欄【鏈接】
五、YOLOv8改進專欄【鏈接】,持續(xù)更新中~~
六、YOLO性能對比專欄【鏈接】,持續(xù)更新中~
《------正文------》
基本功能演示
基于YOLO11/v10/v8/v5深度學習的安檢X光危險品檢測與識別系統(tǒng)設計與實現(xiàn)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓練代碼】
摘要:
安檢X光危險品檢測與識別系統(tǒng)在維護公共安全、預防恐怖襲擊等方面具有重要意義。
該系統(tǒng)能夠?qū)崟r識別并定位危險品,有效提高安檢效率,確保人民群眾生命財產(chǎn)安全。本文基于YOLOv11/v10/v8/v5的深度學習框架
,通過8312
張安檢X光危險品
的相關(guān)圖片,訓練了可進行安檢X光危險品
目標檢測的模型,可以分別檢測5種類別:['槍','刀','鉗子','剪刀','扳手']
,同時全面對比分析了YOLOv5n、YOLOv8n、YOLOv10n、YOLO11這4種模型在驗證集上的評估性能表現(xiàn)
。最終基于訓練好的模型制作了一款帶UI界面的安檢X光危險品檢測與識別系統(tǒng)
,更便于進行功能的展示。該系統(tǒng)是基于python
與PyQT5
開發(fā)的,支持圖片
、視頻
以及攝像頭
進行目標檢測
,并保存檢測結(jié)果
。本文提供了完整的Python代碼和使用教程,給感興趣的小伙伴參考學習,完整的代碼資源文件獲取方式見文末。
文章目錄
- 基本功能演示
- 研究背景
- 主要工作內(nèi)容
- 一、軟件核心功能介紹及效果演示
- 軟件主要功能
- 界面參數(shù)設置說明
- 檢測結(jié)果說明
- 主要功能說明
- (1)圖片檢測說明
- (2)視頻檢測說明
- (3)攝像頭檢測說明
- (4)保存圖片與視頻檢測說明
- 二、YOLOv5/v8/v10/11簡介
- YOLOv5簡介
- YOLOv8簡介
- YOLOv10介紹
- YOLO11簡介
- 二、模型訓練、評估與推理
- 1. 數(shù)據(jù)集準備與訓練
- 2.模型訓練
- 3. 訓練結(jié)果評估
- 4. 使用模型進行推理
- 三、YOLOv5/v8/v10/11性能對比分析
- 1.常用評估參數(shù)介紹
- 2. 模型訓練過程對比
- 3.各模型性能評估
- 4.模型總體性能對比
- 6.性能對比總結(jié)
- 四、可視化系統(tǒng)制作
- Pyqt5簡介
- 1. 基本架構(gòu)
- 2. 事件驅(qū)動編程
- 3. Qt 對象模型
- 4. 部件(Widgets)
- 5. 布局管理
- 6. 資源管理
- 7. 信號與槽機制
- 8. 跨平臺性
- 系統(tǒng)制作
- 【獲取方式】
點擊跳轉(zhuǎn)至文末《完整相關(guān)文件及源碼》獲取
研究背景
安檢X光危險品檢測與識別系統(tǒng)的重要性與意義
在于它為公共安全提供了強有力的技術(shù)支持,通過高效識別潛在威脅物品,它能夠預防犯罪行為和恐怖襲擊,保障人民的生命財產(chǎn)安全,同時提升安檢工作的準確性和效率。
以下是安檢X光危險品檢測與識別系統(tǒng)的應用場景:
機場安全檢查:系統(tǒng)可自動識別旅客行李中的槍支、刀具等危險品,確保航班安全。
火車站與地鐵站安檢:在人流密集的公共交通站點,系統(tǒng)有助于快速識別危險品,保障乘客安全。
快遞物流安檢:系統(tǒng)可以自動檢測包裹中的違禁物品,防止危險品通過物流渠道傳播。
政府機關(guān)和重要設施安檢:在政府大樓、大使館、核電站等重要場所,系統(tǒng)用于防止危險品帶入,維護場所安全。
大型活動安檢:如體育賽事、音樂會、展覽等,系統(tǒng)可以提高安檢速度,減少排隊時間,同時確?;顒影踩?。
商業(yè)樓宇安全檢查:在寫字樓、商場等商業(yè)環(huán)境中,系統(tǒng)可用于日常安檢,預防安全事件發(fā)生。
總的來說,安檢X光危險品檢測與識別系統(tǒng)是一項關(guān)鍵的技術(shù)創(chuàng)新,它在多個關(guān)鍵領(lǐng)域發(fā)揮著不可或缺的作用。通過實時監(jiān)測和精準識別,該系統(tǒng)不僅提高了安檢的效率和準確性,還顯著增強了公共安全保障能力,為社會的和諧穩(wěn)定提供了有力支撐。
主要工作內(nèi)容
本文的主要內(nèi)容包括以下幾個方面:
搜集與整理數(shù)據(jù)集:
搜集整理實際場景中安檢X光危險品
的相關(guān)數(shù)據(jù)圖片,并進行相應的數(shù)據(jù)處理,為模型訓練提供訓練數(shù)據(jù)集;訓練模型:
基于整理的數(shù)據(jù)集,根據(jù)最前沿的YOLOv11/v10/v8/v5目標檢測技術(shù)
訓練目標檢測模型,實現(xiàn)對需要檢測的對象進行實時檢測功能;模型性能對比:對訓練出的4種模型在驗證集上進行了充分的結(jié)果評估和對比分析
,主要目的是為了揭示每個模型在關(guān)鍵指標(如Precision、Recall、mAP50和mAP50-95等指標)上的優(yōu)劣勢
。這不僅幫助我們在實際應用中選擇最適合特定需求的模型,還能夠指導后續(xù)模型優(yōu)化和調(diào)優(yōu)工作,以期獲得更高的檢測準確率和速度。最終,通過這種系統(tǒng)化的對比和分析,我們能更好地理解模型的魯棒性、泛化能力以及在不同類別上的檢測表現(xiàn),為開發(fā)更高效的計算機視覺系統(tǒng)提供堅實的基礎。
可視化系統(tǒng)制作:
基于訓練出的目標檢測模型
,搭配Pyqt5
制作的UI界面,用python
開發(fā)了一款界面簡潔的安檢X光危險品檢測與識別系統(tǒng)
,可支持圖片、視頻以及攝像頭檢測
,同時可以將圖片或者視頻檢測結(jié)果進行保存
。其目的是為檢測系統(tǒng)提供一個用戶友好的操作平臺,使用戶能夠便捷、高效地進行檢測任務。
軟件初始界面如下圖所示:
檢測結(jié)果界面如下:
一、軟件核心功能介紹及效果演示
軟件主要功能
1. 可用于安檢X光危險品
檢測與識別,分為5個檢測類別:['槍','刀','鉗子','剪刀','扳手']
;
2. 支持圖片、視頻及攝像頭
進行檢測,同時支持圖片的批量檢測
;
3. 界面可實時顯示目標位置
、目標總數(shù)
、置信度
、用時
等信息;
4. 支持圖片
或者視頻
的檢測結(jié)果保存
;
5. 支持將圖片的檢測結(jié)果保存為csv文件
;
界面參數(shù)設置說明
置信度閾值:也就是目標檢測時的conf參數(shù),只有檢測出的目標框置信度大于該值,結(jié)果才會顯示;
交并比閾值:也就是目標檢測時的iou參數(shù),對檢測框重疊比例iou大于該閾值的目標框進行過濾【也就是說假如兩檢測框iou大于該值的話,會過濾掉其中一個,該值越小,重疊框會越少】;
檢測結(jié)果說明
顯示標簽名稱與置信度:
表示是否在檢測圖片上標簽名稱與置信度,顯示默認勾選,如果不勾選則不會在檢測圖片上顯示標簽名稱與置信度;
總目標數(shù)
:表示畫面中檢測出的目標數(shù)目;
目標選擇
:可選擇單個目標進行位置信息、置信度查看。
目標位置
:表示所選擇目標的檢測框,左上角與右下角的坐標位置。默認顯示的是置信度最大的一個目標信息;
主要功能說明
功能視頻演示見文章開頭,以下是簡要的操作描述。
(1)圖片檢測說明
點擊打開圖片
按鈕,選擇需要檢測的圖片,或者點擊打開文件夾
按鈕,選擇需要批量檢測圖片所在的文件夾,操作演示如下:
點擊目標下拉框后,可以選定指定目標的結(jié)果信息進行顯示。
點擊保存
按鈕,會對檢測結(jié)果進行保存,存儲路徑為:save_data
目錄下,同時會將圖片檢測信息保存csv文件
。
注:1.右側(cè)目標位置默認顯示置信度最大一個目標位置,可用下拉框進行目標切換。所有檢測結(jié)果均在左下方表格中顯示。
(2)視頻檢測說明
點擊視頻
按鈕,打開選擇需要檢測的視頻,就會自動顯示檢測結(jié)果,再次點擊可以關(guān)閉視頻。
點擊保存
按鈕,會對視頻檢測結(jié)果進行保存,存儲路徑為:save_data
目錄下。
(3)攝像頭檢測說明
點擊打開攝像頭
按鈕,可以打開攝像頭,可以實時進行檢測,再次點擊,可關(guān)閉攝像頭。
(4)保存圖片與視頻檢測說明
點擊保存
按鈕后,會將當前選擇的圖片【含批量圖片】或者視頻
的檢測結(jié)果進行保存,對于圖片圖片檢測還會保存檢測結(jié)果為csv文件
,方便進行查看與后續(xù)使用。檢測的圖片與視頻結(jié)果會存儲在save_data
目錄下。
【注:暫不支持視頻文件的檢測結(jié)果保存為csv文件格式。】
保存的檢測結(jié)果文件如下:
圖片文件保存的csv文件內(nèi)容如下,包括圖片路徑、目標在圖片中的編號、目標類別、置信度、目標坐標位置
。
注:其中坐標位置是代表檢測框的左上角與右下角兩個點的x、y坐標。
二、YOLOv5/v8/v10/11簡介
YOLO(You Only Look Once)是一種流行的計算機視覺算法,用于實現(xiàn)實時對象檢測。它由Joseph Redmon等人首次在2015年提出,并隨后進行了多次改進。YOLO的核心思想是將整個圖像劃分為一個固定數(shù)量的格子(grid cells),然后在每個格子內(nèi)同時預測多個邊界框(bounding boxes)和類別概率。
YOLOv5、YOLOv8、YOLOv10是YOLO系列中最經(jīng)典且常用的3個系列版本,他們均是基于先前YOLO版本在目標檢測任務上的成功,對模型結(jié)構(gòu)進行不斷地優(yōu)化改進,從而不斷提升了性能和靈活性,在精度和速度方面都具有尖端性能。下面對這3個系列的模型進行簡要介紹。
YOLOv5簡介
源碼地址:https://github.com/ultralytics/yolov5
YOLOv5算法是目前應用最廣泛的目標檢測算法之一,它基于深度學習技術(shù),在卷積神經(jīng)網(wǎng)絡的基礎上加入了特征金字塔網(wǎng)絡和SPP結(jié)構(gòu)等模塊,從而實現(xiàn)了高精度和快速檢測速度的平衡。
基本網(wǎng)絡結(jié)構(gòu)如下:
YOLOV5有YOLOv5n, YOLOv5s、YOLOv5m、YOLOv51、YOLOv5x五個版本。這幾個模型的結(jié)構(gòu)基本一樣,不同的是depth_multiple模型深度和width_multiple模型寬度這兩個參數(shù)。對應模型的深度與寬度因子,隨著因子值的增大,模型不斷加深、加寬。
YOLOv5不同模型尺寸信息:
YOLOv5提供了5種不同大小的模型尺寸信息,以及在coco數(shù)據(jù)集上的性能表現(xiàn)如下:
模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 A100 TensorRT (毫秒) | params (M) | FLOPs (B) |
---|---|---|---|---|---|---|
yolov5nu.pt | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
yolov5su.pt | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
yolov5mu.pt | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
yolov5lu.pt | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
yolov5xu.pt | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
YOLOv5算法創(chuàng)新點:
- Anchor-free設計:傳統(tǒng)目標檢測算法中需要先確定物體位置并給出候選框,但yolov5采用了無錨設計方式,直接預測物體的位置和大小,從而避免了候選框?qū)z測性能的影響。
- 多尺度檢測:yolov5算法可以精確檢測到不同尺度、各種形狀和姿態(tài)的目標,具有很好的適應性。
- 目標定位精確:yolov5通過導出中心點坐標來實現(xiàn)目標的精準定位,并且在分類和回歸兩個方面都進行優(yōu)化,從而提高了目標檢測精度。
- 檢測速度快:采用高效計算方法,并利用GPU等硬件加速技術(shù),使得yolov5算法在保證高精度的同時,具有非常快的檢測速度。
YOLOv8簡介
源碼地址:https://github.com/ultralytics/ultralytics
Yolov8是一個SOTA模型,它建立在Yolo系列歷史版本的基礎上,并引入了新的功能和改進點,以進一步提升性能和靈活性,使其成為實現(xiàn)目標檢測、圖像分割、姿態(tài)估計等任務的最佳選擇。其具體創(chuàng)新點包括一個新的骨干網(wǎng)絡、一個新的Ancher-Free檢測頭和一個新的損失函數(shù),可在CPU到GPU的多種硬件平臺上運行。
YOLOv8網(wǎng)絡結(jié)構(gòu)如下:
YOLOv8創(chuàng)新點:
Yolov8主要借鑒了Yolov5、Yolov6、YoloX等模型的設計優(yōu)點,其本身創(chuàng)新點不多,偏重在工程實踐上,具體創(chuàng)新如下:
- 提供了一個全新的SOTA模型(包括P5 640和P6 1280分辨率的目標檢測網(wǎng)絡和基于YOLACT的實例分割模型)。并且,基于縮放系數(shù)提供了N/S/M/L/X不同尺度的模型,以滿足不同部署平臺和應用場景的需求。
- Backbone:同樣借鑒了CSP模塊思想,不過將Yolov5中的C3模塊替換成了C2f模塊,實現(xiàn)了進一步輕量化,同時沿用Yolov5中的SPPF模塊,并對不同尺度的模型進行精心微調(diào),不再是無腦式一套參數(shù)用于所有模型,大幅提升了模型性能。
- Neck:繼續(xù)使用PAN的思想,但是通過對比YOLOv5與YOLOv8的結(jié)構(gòu)圖可以看到,YOLOv8移除了1*1降采樣層。
- Head部分相比YOLOv5改動較大,Yolov8換成了目前主流的解耦頭結(jié)構(gòu)(Decoupled-Head),將分類和檢測頭分離,同時也從Anchor-Based換成了Anchor-Free。
- Loss計算:使用VFL Loss作為分類損失(實際訓練中使用BCE Loss);使用DFL Loss+CIOU Loss作為回歸損失。
- 標簽分配:Yolov8拋棄了以往的IoU分配或者單邊比例的分配方式,而是采用Task-Aligned Assigner正負樣本分配策略。
YOLOv8不同模型尺寸信息:
YOLOv8提供了5種不同大小的模型尺寸信息,詳情如下:
Model | size (pixels) | mAPval 50-95 | params (M) | FLOPs (B) |
---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 68.2 | 257.8 |
一般來說,選擇模型大小的原則如下:
數(shù)據(jù)集小(幾百張圖片):使用yolov8n或yolov8s。過大模型會過擬合。
數(shù)據(jù)集中等(幾千張圖片):yolov8s或yolov8m。能獲得較高精度,不易過擬合。
數(shù)據(jù)集大(幾萬張圖片):yolov8l或yolov8x。模型容量大,充分擬合大數(shù)據(jù)量,能發(fā)揮模型效果。
超大數(shù)據(jù)集(幾十萬張以上):首選yolov8x。超大模型才能處理海量數(shù)據(jù)并取得最優(yōu)效果。
YOLOv10介紹
論文地址:https://arxiv.org/abs/2405.14458
源碼地址:https://github.com/THU-MIG/yolov10
YOLOv10 的架構(gòu)建立在以前 YOLO 模型的優(yōu)勢之上,通過消除非最大抑制 (NMS) 和優(yōu)化各種模型組件, 實現(xiàn)了最先進的性能,并顯著降低了計算開銷。
模型網(wǎng)絡結(jié)構(gòu)由以下組件組成:
主干網(wǎng):YOLOv10 中的主干網(wǎng)負責特征提取,使用增強版的 CSPNet(Cross Stage Partial Network)來改善梯度流并減少計算冗余。
頸部:頸部被設計成聚合來自不同尺度的特征,并將它們傳遞到頭部。它包括 PAN(路徑聚合網(wǎng)絡)層,用于有效的多尺度特征融合。
一對多頭:在訓練過程中為每個對象生成多個預測,以提供豐富的監(jiān)督信號,提高學習準確性。
一對一頭:在推理過程中為每個對象生成一個最佳預測,消除對 NMS 的需求,從而減少延遲并提高效率。
YOLOv10創(chuàng)新點如下
無 NMS 訓練
:利用一致的雙重分配來消除對 NMS 的需求,從而減少推理延遲。
整體模型設計
:從效率和精度兩個角度對各種組件進行全面優(yōu)化,包括輕量級分類頭、空間通道解耦下采樣和秩引導塊設計。
增強的模型功能
:整合大核卷積和部分自注意力模塊,可在不增加大量計算成本的情況下提高性能。
YOLOv10不同模型尺寸信息:
YOLOv10 提供6種不同的型號規(guī)模模型,以滿足不同的應用需求:
Model | Input Size | APval | params (M) | FLOPs (G) |
---|---|---|---|---|
YOLOv10-N | 640 | 38.5 | 2.7 | 6.7 |
YOLOv10-S | 640 | 46.3 | 7.2 | 21.6 |
YOLOv10-M | 640 | 51.1 | 15.4 | 59.1 |
YOLOv10-B | 640 | 52.5 | 19.1 | 92.0 |
YOLOv10-L | 640 | 53.2 | 24.4 | 120.3 |
YOLOv10-X | 640 | 54.4 | 29.5 | 160.4 |
YOLOv10-N:Nano 版本,適用于資源極度受限的環(huán)境。
YOLOv10-S:平衡速度和精度的小型版本。
YOLOv10-M:通用的中型版本。
YOLOv10-B:平衡版本,寬度增加,精度更高。
YOLOv10-L:大版本,以增加計算資源為代價,實現(xiàn)更高的精度。
YOLOv10-X:超大版本,可實現(xiàn)最大的精度和性能。
YOLO11簡介
源碼地址:https://github.com/ultralytics/ultralytics
Ultralytics YOLO11是一款尖端的、最先進的模型,它在之前YOLO版本成功的基礎上進行了構(gòu)建,并引入了新功能和改進,以進一步提升性能和靈活性。YOLO11設計快速、準確且易于使用,使其成為各種物體檢測和跟蹤、實例分割、圖像分類以及姿態(tài)估計任務的絕佳選擇。
YOLO11創(chuàng)新點如下:
YOLO 11主要改進包括:
增強的特征提取
:YOLO 11采用了改進的骨干和頸部架構(gòu),增強了特征提取功能,以實現(xiàn)更精確的目標檢測。
優(yōu)化的效率和速度
:優(yōu)化的架構(gòu)設計和優(yōu)化的訓練管道提供更快的處理速度,同時保持準確性和性能之間的平衡。
更高的精度,更少的參數(shù)
:YOLO11m在COCO數(shù)據(jù)集上實現(xiàn)了更高的平均精度(mAP),參數(shù)比YOLOv8m少22%,使其在不影響精度的情況下提高了計算效率。
跨環(huán)境的適應性
:YOLO 11可以部署在各種環(huán)境中,包括邊緣設備、云平臺和支持NVIDIA GPU的系統(tǒng)。
廣泛的支持任務
:YOLO 11支持各種計算機視覺任務,如對象檢測、實例分割、圖像分類、姿態(tài)估計和面向?qū)ο髾z測(OBB)。
YOLO11不同模型尺寸信息:
YOLO11 提供5種不同的型號規(guī)模模型,以滿足不同的應用需求:
Model | size (pixels) | mAPval 50-95 | Speed CPU ONNX (ms) | Speed T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
---|---|---|---|---|---|---|
YOLO11n | 640 | 39.5 | 56.1 ± 0.8 | 1.5 ± 0.0 | 2.6 | 6.5 |
YOLO11s | 640 | 47.0 | 90.0 ± 1.2 | 2.5 ± 0.0 | 9.4 | 21.5 |
YOLO11m | 640 | 51.5 | 183.2 ± 2.0 | 4.7 ± 0.1 | 20.1 | 68.0 |
YOLO11l | 640 | 53.4 | 238.6 ± 1.4 | 6.2 ± 0.1 | 25.3 | 86.9 |
YOLO11x | 640 | 54.7 | 462.8 ± 6.7 | 11.3 ± 0.2 | 56.9 | 194.9 |
二、模型訓練、評估與推理
本文主要基于YOLOv5n、YOLOv8n、YOLOv10n
、YOLO11n
這4種模型進行模型的訓練,訓練完成后對4種模型在驗證集上的表現(xiàn)進行全面的性能評估及對比分析。模型訓練和評估流程基本一致,包括:數(shù)據(jù)集準備、模型訓練、模型評估。
下面主要以最新的YOLO11為例進行訓練過程的詳細講解,YOLOv5、YOLOv8與YOLOv10的訓練過程類似。
1. 數(shù)據(jù)集準備與訓練
通過網(wǎng)絡上搜集關(guān)于實際場景中安檢X光危險品
的相關(guān)圖片,并使用Labelimg標注工具對每張圖片進行標注,分5個檢測類別
,分別是['槍','刀','鉗子','剪刀','扳手']
。
最終數(shù)據(jù)集一共包含8312張圖片
,其中訓練集包含5819張圖片
,驗證集包含1662張圖片
,測試集包含831張圖片
。
部分圖像及標注如下圖所示:
數(shù)據(jù)集各類別數(shù)目分布情況如下:
2.模型訓練
準備好數(shù)據(jù)集后,將圖片數(shù)據(jù)以如下格式放置在項目目錄中。在項目目錄中新建datasets
目錄,同時將檢測的圖片分為訓練集與驗證集放入Data
目錄下。
同時我們需要新建一個data.yaml
文件,用于存儲訓練數(shù)據(jù)的路徑及模型需要進行檢測的類別。YOLOv8在進行模型訓練時,會讀取該文件的信息,用于進行模型的訓練與驗證。data.yaml
的具體內(nèi)容如下:
train: D:\2MyCVProgram\2DetectProgram\XRayDangerousGoodsDetection_v11\datasets\Data\train
val: D:\2MyCVProgram\2DetectProgram\XRayDangerousGoodsDetection_v11\datasets\Data\valid
test: D:\2MyCVProgram\2DetectProgram\XRayDangerousGoodsDetection_v11\datasets\Data\testnc: 5
names: ['Gun', 'Knife', 'Pliers', 'Scissors', 'Wrench']
注:train與val后面表示需要訓練圖片的路徑,建議直接寫自己文件的絕對路徑。
數(shù)據(jù)準備完成后,通過調(diào)用train.py
文件進行模型訓練,epochs
參數(shù)用于調(diào)整訓練的輪數(shù),batch
參數(shù)用于調(diào)整訓練的批次大小【根據(jù)內(nèi)存大小調(diào)整,最小為1】,optimizer
設定的優(yōu)化器為SGD,訓練代碼如下:
#coding:utf-8
from ultralytics import YOLO
import matplotlib
matplotlib.use('TkAgg')# 模型配置文件
model_yaml_path = "ultralytics/cfg/models/11/yolo11.yaml"
#數(shù)據(jù)集配置文件
data_yaml_path = 'datasets/Data/data.yaml'
#預訓練模型
pre_model_name = 'yolo11n.pt'if __name__ == '__main__':#加載預訓練模型model = YOLO(model_yaml_path).load(pre_model_name)#訓練模型results = model.train(data=data_yaml_path,epochs=150, # 訓練輪數(shù)batch=4, # batch大小name='train_v11', # 保存結(jié)果的文件夾名稱optimizer='SGD') # 優(yōu)化器
模型常用訓練超參數(shù)參數(shù)說明:
YOLO11 模型的訓練設置包括訓練過程中使用的各種超參數(shù)和配置
。這些設置會影響模型的性能、速度和準確性。關(guān)鍵的訓練設置包括批量大小、學習率、動量和權(quán)重衰減。此外,優(yōu)化器、損失函數(shù)和訓練數(shù)據(jù)集組成的選擇也會影響訓練過程。對這些設置進行仔細的調(diào)整和實驗對于優(yōu)化性能至關(guān)重要。
以下是一些常用的模型訓練參數(shù)和說明:
參數(shù)名 | 默認值 | 說明 |
---|---|---|
model | None | 指定用于訓練的模型文件。接受指向 .pt 預訓練模型或 .yaml 配置文件。對于定義模型結(jié)構(gòu)或初始化權(quán)重至關(guān)重要。 |
data | None | 數(shù)據(jù)集配置文件的路徑(例如 coco8.yaml ).該文件包含特定于數(shù)據(jù)集的參數(shù),包括訓練數(shù)據(jù)和驗證數(shù)據(jù)的路徑、類名和類數(shù)。 |
epochs | 100 | 訓練總輪數(shù)。每個epoch代表對整個數(shù)據(jù)集進行一次完整的訓練。調(diào)整該值會影響訓練時間和模型性能。 |
patience | 100 | 在驗證指標沒有改善的情況下,提前停止訓練所需的epoch數(shù)。當性能趨于平穩(wěn)時停止訓練,有助于防止過度擬合。 |
batch | 16 | 批量大小,有三種模式:設置為整數(shù)(例如,’ Batch =16 ‘), 60% GPU內(nèi)存利用率的自動模式(’ Batch =-1 ‘),或指定利用率分數(shù)的自動模式(’ Batch =0.70 ')。 |
imgsz | 640 | 用于訓練的目標圖像尺寸。所有圖像在輸入模型前都會被調(diào)整到這一尺寸。影響模型精度和計算復雜度。 |
device | None | 指定用于訓練的計算設備:單個 GPU (device=0 )、多個 GPU (device=0,1 )、CPU (device=cpu ),或蘋果芯片的 MPS (device=mps ). |
workers | 8 | 加載數(shù)據(jù)的工作線程數(shù)(每 RANK 多 GPU 訓練)。影響數(shù)據(jù)預處理和輸入模型的速度,尤其適用于多 GPU 設置。 |
name | None | 訓練運行的名稱。用于在項目文件夾內(nèi)創(chuàng)建一個子目錄,用于存儲訓練日志和輸出結(jié)果。 |
pretrained | True | 決定是否從預處理模型開始訓練??梢允遣紶栔?#xff0c;也可以是加載權(quán)重的特定模型的字符串路徑。提高訓練效率和模型性能。 |
optimizer | 'auto' | 為訓練模型選擇優(yōu)化器。選項包括 SGD , Adam , AdamW , NAdam , RAdam , RMSProp 等,或 auto 用于根據(jù)模型配置進行自動選擇。影響收斂速度和穩(wěn)定性 |
lr0 | 0.01 | 初始學習率(即 SGD=1E-2 , Adam=1E-3 ) .調(diào)整這個值對優(yōu)化過程至關(guān)重要,會影響模型權(quán)重的更新速度。 |
lrf | 0.01 | 最終學習率占初始學習率的百分比 = (lr0 * lrf ),與調(diào)度程序結(jié)合使用,隨著時間的推移調(diào)整學習率。 |
3. 訓練結(jié)果評估
在深度學習中,我們通常用損失函數(shù)下降的曲線來觀察模型訓練的情況。YOLOv8在訓練時主要包含三個方面的損失:定位損失(box_loss)、分類損失(cls_loss)和動態(tài)特征損失(dfl_loss),在訓練結(jié)束后,可以在runs/
目錄下找到訓練過程及結(jié)果文件,如下所示:
各損失函數(shù)作用說明:
定位損失box_loss
:預測框與標定框之間的誤差(GIoU),越小定位得越準;
分類損失cls_loss
:計算錨框與對應的標定分類是否正確,越小分類得越準;
動態(tài)特征損失(dfl_loss)
:DFLLoss是一種用于回歸預測框與目標框之間距離的損失函數(shù)。在計算損失時,目標框需要縮放到特征圖尺度,即除以相應的stride,并與預測的邊界框計算Ciou Loss,同時與預測的anchors中心點到各邊的距離計算回歸DFLLoss。
本文訓練結(jié)果如下:
我們通常用PR曲線
來體現(xiàn)精確率和召回率的關(guān)系,本文訓練結(jié)果的PR曲線如下。mAP
表示Precision和Recall作為兩軸作圖后圍成的面積,m表示平均,@后面的數(shù)表示判定iou為正負樣本的閾值。mAP@.5:表示閾值大于0.5的平均mAP,可以看到本文模型目標檢測的mAP@0.5
值為0.906
,結(jié)果還是很不錯的。
模型驗證集上的評估結(jié)果如下:
4. 使用模型進行推理
模型訓練完成后,我們可以得到一個最佳的訓練結(jié)果模型best.pt
文件,在runs/train/weights
目錄下。我們可以使用該文件進行后續(xù)的推理檢測。
圖片檢測代碼如下:
#coding:utf-8
from ultralytics import YOLO
import cv2# 所需加載的模型目錄
path = 'models/best.pt'
# 需要檢測的圖片地址
img_path = "TestFiles/P00009_jpg.rf.6d9f67060235237afa8ffea5b1d46088.jpg"# 加載預訓練模型
model = YOLO(path, task='detect')# 檢測圖片
results = model(img_path)
print(results)
res = results[0].plot()
# res = cv2.resize(res,dsize=None,fx=2,fy=2,interpolation=cv2.INTER_LINEAR)
cv2.imshow("YOLOv8 Detection", res)
cv2.waitKey(0)
執(zhí)行上述代碼后,會將執(zhí)行的結(jié)果直接標注在圖片上,結(jié)果如下:
更多檢測結(jié)果示例如下:
三、YOLOv5/v8/v10/11性能對比分析
本文在介紹的數(shù)據(jù)集上分別訓練了YOLOv5n、YOLOv8n、YOLOv10n
這3種模型用于對比分析,訓練輪數(shù)為150個epoch
。主要分析這3種模型的訓練結(jié)果在Precision(精確度)
、Recall(召回率)
、mAP50
、mAP50-95
、F1-score
等性能指標上的表現(xiàn),以選出更適合本數(shù)據(jù)集的最優(yōu)模型。
3種模型基本信息如下:
Model | size (pixels) | mAPval 50-95 | params (M) | FLOPs (B) |
---|---|---|---|---|
YOLOv5n | 640 | 34.3 | 2.6 | 7.7 |
YOLOv8n | 640 | 37.3 | 3.2 | 8.7 |
YOLOv10n | 640 | 38.5 | 2.7 | 6.7 |
FlOPs(floating point operations):浮點運算次數(shù),用于衡量算法/模型的復雜度。
params (M):表示模型的參數(shù)量
這3種模型都是各個YOLO系列種最小尺寸結(jié)構(gòu)的模型,在模型參數(shù)與計算量上都相差不大,屬于同一個級別的模型,因此能夠進行橫向的對比分析。
1.常用評估參數(shù)介紹
-
Precision(精確度):
-
精確度是針對預測結(jié)果的準確性進行衡量的一個指標,它定義為預測為正例(即預測為目標存在)中真正正例的比例。
-
公式:
-
其中,TP(True Positives)是正確預測為正例的數(shù)量,FP(False Positives)是錯誤預測為正例的數(shù)量。
-
-
Recall(召回率):
-
召回率衡量的是模型檢測到所有實際正例的能力,即預測為正例的樣本占所有實際正例的比例。
-
公式:
-
其中,FN(False Negatives)是錯誤預測為負例(即漏檢)的數(shù)量。
-
-
mAP50(平均精度,Mean Average Precision at Intersection over Union 0.5):
- mAP50是目標檢測中一個非常重要的指標,它衡量的是模型在IoU(交并比)閾值為0.5時的平均精度。IoU是一個衡量預測邊界框與真實邊界框重疊程度的指標。
- mAP50通常在多個類別上計算,然后取平均值,得到整體的平均精度。
- 計算方法:對于每個類別,首先計算在IoU閾值為0.5時的精度-召回率曲線(Precision-Recall Curve),然后計算曲線下的面積(AUC),最后對所有類別的AUC取平均值。
這三個指標共同提供了對目標檢測模型性能的全面評估:
- 精確度(Box_P)關(guān)注預測的準確性,即減少誤檢(FP)。
- 召回率(Box_R)關(guān)注檢測的完整性,即減少漏檢(FN)。
- mAP50提供了一個平衡精確度和召回率的指標,同時考慮了模型在不同類別上的表現(xiàn)。
在實際應用中,根據(jù)具體需求,可能會更側(cè)重于精確度或召回率,例如在需要減少誤報的場合,可能會更重視精確度;而在需要確保所有目標都被檢測到的場合,可能會更重視召回率。mAP50作為一個綜合指標,能夠幫助研究者和開發(fā)者平衡這兩個方面,選擇最合適的模型。
- mAP50-95:
- 這是衡量目標檢測模型在不同IoU閾值下性能的指標。IoU是預測的邊界框與真實邊界框之間的重疊程度,mAP50-95計算了從IoU為0.5到0.95的范圍內(nèi),模型的平均精度。
- 精度-召回率曲線在不同的IoU閾值上繪制,然后計算曲線下的面積(AUC),最后取這些AUC的平均值,得到mAP50-95。
- 這個指標反映了模型在不同匹配嚴格度下的性能,對于評估模型在實際應用中的泛化能力非常重要。
- F1分數(shù):
-
這是精確度和召回率的調(diào)和平均數(shù),能夠平衡兩者的影響,是一個綜合考慮精確度和召回率的指標。
-
公式:
-
當精確度和召回率差距較大時,F1分數(shù)能夠提供一個更全面的模型性能評估。
-
2. 模型訓練過程對比
YOLOv5n、YOLOv8n、YOLOv10n、YOLO11n
這3種模型的訓練過程損失曲線與性能曲線如下。
訓練過程的損失曲線對比如下:
訓練過程中的精確度(Precision)、召回率(Recall)、平均精確度(Mean Average Precision, mAP)等參數(shù)的對比如下:
直觀的從曲線上看,4種模型在模型精度上看,差別不是很大。下面對具體的性能數(shù)值進行詳細分析。
3.各模型性能評估
在YOLOv5n、YOLOv8n、YOLOv10n、YOLO11n
這3種模型訓練完成后,我們可以通過驗證集對各個模型分別進行性能評估。
YOLOv5n模型在驗證集上的性能評估結(jié)果如下:
表格列說明:
Class:表示模型的檢測類別名稱;
Images:表示驗證集圖片數(shù)目;
Instances:表示在所有圖片中目標數(shù);
P:表示精確度Precison;
R:表示召回率Recall;
mAP50:表示IoU(交并比)閾值為0.5時的平均精度。
mAP50-95:表示從IoU為0.5到0.95的范圍內(nèi)【間隔0.05】,模型的平均精度。
表格行說明:
第一行all,除Instances是
所有類別目標數(shù)之和
,其他參數(shù)表示所有類別對應列參數(shù)的平均值
;
其他行,表示每一個類別對應參數(shù)的值。
YOLOv8n模型在驗證集上的性能評估結(jié)果如下:
YOLOv10n模型在驗證集上的性能評估結(jié)果如下:
YOLO11模型在驗證集上的性能評估結(jié)果如下:
4.模型總體性能對比
下面我們從總體的平均指標上對YOLOv5n、YOLOv8n、YOLOv10n、YOLO11
這3種模型進行對比分析。
下表是YOLOv5n、YOLOv8n、YOLOv10n、YOLO11
這4不同模型目標檢測結(jié)果的整體性能平均指標對比情況:
Model | Precision | Recall | mAP50 | mAP50-95 | F1-score |
---|---|---|---|---|---|
YOLOv5n | 0.926 | 0.831 | 0.908 | 0.662 | 0.876 |
YOLOv8n | 0.926 | 0.852 | 0.914 | 0.671 | 0.887 |
YOLOv10n | 0.902 | 0.833 | 0.901 | 0.671 | 0.866 |
YOLO11 | 0.914 | 0.837 | 0.908 | 0.672 | 0.874 |
為了方便更加直觀的查看與對比各個結(jié)果,同樣我們將表格繪制成圖表的形式進行分析。
當然,我們除了從整體的平均指標上對比之外,也可以單獨對比相同類別在不同模型上的指標表現(xiàn)。以查看不同模型在各個類別上的優(yōu)劣勢。
6.性能對比總結(jié)
整體來看,幾個模型性能相差并不是特別大。YOLOv8n相較于其他3個版本,在此數(shù)據(jù)集上的性能表現(xiàn)略優(yōu)。
四、可視化系統(tǒng)制作
基于上述訓練出的目標檢測模型,為了給此檢測系統(tǒng)提供一個用戶友好的操作平臺,使用戶能夠便捷、高效地進行檢測任務。博主基于Pyqt5開發(fā)了一個可視化的系統(tǒng)界面,通過圖形用戶界面(GUI),用戶可以輕松地在圖片、視頻和攝像頭實時檢測之間切換,無需掌握復雜的編程技能即可操作系統(tǒng)?!鞠到y(tǒng)詳細展示見第一部分內(nèi)容】
Pyqt5簡介
PyQt5 是用于 Python 編程語言的一個綁定庫,提供了對 Qt 應用程序框架的訪問。它常用于開發(fā)跨平臺的桌面應用程序,具有豐富的功能和廣泛的控件支持。PyQt5 提供了一個功能強大且靈活的框架,可以幫助 Python 開發(fā)者迅速構(gòu)建復雜的桌面應用程序。其事件驅(qū)動編程模型、豐富的控件和布局管理、強大的信號與槽機制以及跨平臺能力,使得 PyQt5 成為開發(fā)桌面應用程序的理想選擇。
下面對PyQt5 的基本原理進行詳細介紹:
1. 基本架構(gòu)
PyQt5 是 Python 和 Qt 庫之間的一層接口,Python 程序員可以通過 PyQt5 訪問 Qt 庫的所有功能。Qt 是由 C++ 編寫的跨平臺軟件開發(fā)框架,PyQt5 使用 SIP(一個用于創(chuàng)建 Python 與 C/C++ 語言之間的綁定工具)將這些功能導出到 Python。
2. 事件驅(qū)動編程
PyQt5 基于事件驅(qū)動編程模型,主要通過信號(signals)和槽(slots)機制實現(xiàn)用戶與應用程序之間的交互。當用戶與 GUI 進行交互(如點擊按鈕、調(diào)整滑塊等)時,會觸發(fā)信號,這些信號可以連接到槽函數(shù)或方法,以執(zhí)行特定操作。
from PyQt5.QtWidgets import QApplication, QPushButtondef on_click():print("Button clicked!")app = QApplication([])
button = QPushButton('Click Me')
button.clicked.connect(on_click)
button.show()
app.exec_()
3. Qt 對象模型
PyQt5 的核心是 Qt 對象模型,所有的控件和窗口部件都是從 QObject
類派生而來的。它們擁有復雜的父子關(guān)系,確保父對象在銷毀時自動銷毀所有子對象,避免內(nèi)存泄漏。
4. 部件(Widgets)
PyQt5 提供了豐富的內(nèi)置部件,如按鈕、標簽、文本框、表格、樹、標簽頁等,幾乎涵蓋了所有常見的 GUI 控件。這些部件可以直接使用,也可以通過繼承進行自定義。
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayoutapp = QApplication([])window = QWidget()
layout = QVBoxLayout()label = QLabel('Hello, PyQt5!')
layout.addWidget(label)window.setLayout(layout)
window.show()
app.exec_()
5. 布局管理
PyQt5 提供了強大的布局管理功能,可以通過 QLayout
和其子類(如 QHBoxLayout
, QVBoxLayout
, QGridLayout
)來控制部件在窗口內(nèi)的擺放方式。這使得界面的設計變得靈活且易于維護。
6. 資源管理
PyQt5 支持資源文件管理,可以將圖像、圖標、樣式表等資源打包進應用程序中。資源文件通常以 .qrc
格式存儲,并通過資源管理器集成到應用程序中。
7. 信號與槽機制
信號與槽機制是 Qt 框架的核心特性之一,它允許對象之間進行松耦合通信。通過信號可以觸發(fā)槽函數(shù)來處理各種事件,使代碼邏輯更加清晰和模塊化。
8. 跨平臺性
PyQt5 是跨平臺的,支持 Windows、Mac 和 Linux 等操作系統(tǒng),編寫一次代碼即可運行在多個平臺上。
系統(tǒng)制作
博主基于Pyqt5框架開發(fā)了此款安檢X光危險品檢測與識別系統(tǒng)
,即文中第一部分的演示內(nèi)容,能夠很好的支持圖片、視頻及攝像頭進行檢測,同時支持檢測結(jié)果的保存
。
通過圖形用戶界面(GUI),用戶可以輕松地在圖片、視頻和攝像頭實時檢測之間切換,無需掌握復雜的編程技能即可操作系統(tǒng)。這不僅提升了系統(tǒng)的可用性和用戶體驗,還使得檢測過程更加直觀透明,便于結(jié)果的實時觀察和分析。此外,GUI還可以集成其他功能,如檢測結(jié)果的保存與導出、檢測參數(shù)的調(diào)整,從而為用戶提供一個全面、綜合的檢測工作環(huán)境,促進智能檢測技術(shù)的廣泛應用。
關(guān)于該系統(tǒng)涉及到的完整源碼、UI界面代碼、數(shù)據(jù)集、訓練代碼、訓練好的模型、測試圖片視頻等相關(guān)文件,均已打包上傳,感興趣的小伙伴可以通過下載鏈接自行獲取。
【獲取方式】
關(guān)注下方名片G-Z-H:【阿旭算法與機器學習】,并發(fā)送【源碼】即可獲取下載方式
本文涉及到的完整全部程序文件:包括python源碼、數(shù)據(jù)集、訓練好的結(jié)果文件、訓練代碼、UI源碼、測試圖片視頻等(見下圖),獲取方式見文末:
注意:該代碼基于Python3.9開發(fā),運行界面的主程序為
MainProgram.py
,其他測試腳本說明見上圖。為確保程序順利運行,請按照程序運行說明文檔txt
配置軟件運行所需環(huán)境。
關(guān)注下方名片GZH:【阿旭算法與機器學習】,并發(fā)送【源碼】即可獲取下載方式