項(xiàng)目介紹
項(xiàng)目中所用到的算法模型和數(shù)據(jù)集等信息如下:
算法模型:
? ? yolov8
? ? yolov8主要包含以下幾種創(chuàng)新:
? ? ? ? 1. 添加注意力機(jī)制(SE
、CBAM
等)
? ? ? ? 2. 修改可變形卷積(DySnake
-主干c3
替換、DySnake-所有c3替換)
數(shù)據(jù)集:
? ? 網(wǎng)上下載的數(shù)據(jù)集,詳細(xì)介紹見數(shù)據(jù)集介紹部分。
以上是本套代碼的整體算法架構(gòu)和對目標(biāo)檢測模型的修改說明,這些模型修改可以為您的 畢設(shè)、作業(yè)等提供創(chuàng)新點(diǎn)和增強(qiáng)模型性能的功能 。
如果要是需要更換其他的檢測模型,請私信。
注:本項(xiàng)目提供所用到的所有資源,包含 環(huán)境安裝包、訓(xùn)練代碼、測試代碼、數(shù)據(jù)集、視頻文件、 界面UI文件
等。
本人聲明:所有的系統(tǒng),都是本人自己編寫代碼,我不是二次售賣的二手販子,我是有售后的,本人親自語音或者遠(yuǎn)程解決問題。最近發(fā)現(xiàn)有一些專門賣畢設(shè)的,購買我的系統(tǒng)后,進(jìn)行二次售賣,而且價(jià)格貴很多,大家注意辨別。我敢保證說,外面見到的有這種美觀界面的,都是從我這購買后,要么稍微改了一丟丟布局,要么,一點(diǎn)都沒改,就直接賣的,都是打著有售后的旗子,最后啥也不是,賣給你就沒有后續(xù)了。
不要問我是怎么知道的,有人從二手販子那買了后,沒有售后不管了,最后找到我這來了。。。。????????????
深度學(xué)習(xí)項(xiàng)目相對來說部署環(huán)境,運(yùn)行比較麻煩,自己不懂,且沒有售后,寸步難行。希望大家不要被騙。
項(xiàng)目簡介
本文將詳細(xì)介紹如何使用深度學(xué)習(xí)中的YOLOv8算法實(shí)現(xiàn)對交通標(biāo)志的檢測,且利用PyQt5設(shè)計(jì)了簡約的系統(tǒng)UI界面。在界面中,您可以選擇自己的視頻文件、圖片文件進(jìn)行檢測。此外,您還可以更換自己訓(xùn)練的yolov8模型,進(jìn)行自己數(shù)據(jù)的檢測。
該系統(tǒng)界面優(yōu)美,檢測精度高,功能強(qiáng)大。它具備多目標(biāo)實(shí)時(shí)檢測,同時(shí)可以自由選擇感興趣的檢測目標(biāo)。
本博文提供了完整的Python程序代碼和使用教程,適合新入門的朋友參考。您可以在文末的下載鏈接中獲取完整的代碼資源文件。以下是本博文的目錄:
效果展示:
功能:
1. 支持單張圖片識別
2. 支持遍歷文件夾識別
3. 支持識別視頻文件
4. 支持結(jié)果導(dǎo)出(xls、csv兩種格式)
5. 支持切換檢測到的目標(biāo)
基于深度學(xué)習(xí)的交通標(biāo)志識別系統(tǒng)
??一、環(huán)境安裝
本項(xiàng)目提供所有需要的環(huán)境安裝包(python、pycharm、cuda、torch
等),可以直接按照視頻講解進(jìn)行安裝。講解是以其他項(xiàng)目為例的,但是都是通用的,按照視頻步驟操作即可。 點(diǎn)擊上方效果展示的視頻,跳轉(zhuǎn)到B站就能看到環(huán)境安裝視頻。
上面這個(gè)方法,是比較便捷的安裝方式(省去了安裝細(xì)節(jié)),按照我的視頻步驟和提供的安裝包安裝即可,如果要是想要多學(xué)一點(diǎn)東西,可以按照下面的安裝方式走一遍,會(huì)更加熟悉。
環(huán)境安裝方法2:
追求快速安裝環(huán)境的,只看上面即可?。?!
下面列出了5個(gè)步驟,是完全從0開始安裝(可以理解為是一臺(tái)新電腦,沒有任何環(huán)境),如果某些步驟已經(jīng)安裝過的可以跳過。下面的安裝步驟帶有詳細(xì)的視頻講解和參考博客,一步一步來即可。另外視頻中講解的安裝方法是通用的,可用于任何項(xiàng)目
。
- python環(huán)境安裝:B站視頻講解
- cuda、cudnn安裝:B站視頻講解
- torch安裝: B站視頻講解
- pycharm安裝: B站視頻講解
- 第三方依賴包安裝: B站視頻講解
按照上面的步驟安裝完環(huán)境后,就可以直接運(yùn)行程序,看到效果了。
??二、數(shù)據(jù)集介紹
數(shù)據(jù)集總共包含以下類別,且已經(jīng)分好 train、val、test
文件夾,也提供轉(zhuǎn)好的yolo
格式的標(biāo)注文件,可以直接使用。
總共有9千多張數(shù)據(jù)集,161種類別,基本上包含了遇到的絕大部分交通標(biāo)志的類別了。
數(shù)據(jù)樣式如下:
??三、 目標(biāo)檢測介紹
yolov8相關(guān)介紹
YOLOv8 是一個(gè) SOTA 模型,它建立在以前 YOLO 版本的成功基礎(chǔ)上,并引入了新的功能和改進(jìn),以進(jìn)一步提升性能和靈活性。具體創(chuàng)新包括一個(gè)新的骨干網(wǎng)絡(luò)、一個(gè)新的 Ancher-Free 檢測頭和一個(gè)新的損失函數(shù),可以在從 CPU 到 GPU 的各種硬件平臺(tái)上運(yùn)行。
不過 ultralytics 并沒有直接將開源庫命名為 YOLOv8,而是直接使用 ultralytics 這個(gè)詞,原因是 ultralytics 將這個(gè)庫定位為算法框架,而非某一個(gè)特定算法,一個(gè)主要特點(diǎn)是可擴(kuò)展性。其希望這個(gè)庫不僅僅能夠用于 YOLO 系列模型,而是能夠支持非 YOLO 模型以及分類分割姿態(tài)估計(jì)等各類任務(wù)。
總而言之,ultralytics 開源庫的兩個(gè)主要優(yōu)點(diǎn)是:
-
融合眾多當(dāng)前 SOTA 技術(shù)于一體
-
未來將支持其他 YOLO 系列以及 YOLO 之外的更多算法
網(wǎng)絡(luò)結(jié)構(gòu)如下:
四、 yolov8訓(xùn)練步驟
此代碼的訓(xùn)練步驟極其簡單,不需要修改代碼,直接通過cmd
就可以命令運(yùn)行,命令都已寫好,直接復(fù)制即可,命令如下圖:
下面這條命令復(fù)制下來,直接就可以運(yùn)行,看到訓(xùn)練效果(需要將traffic_sign.yaml替換為自己的數(shù)據(jù)集的yaml文件)。
python ./train.py --epochs 300 --yaml ultralytics/cfg/models/v8/yolov8s.yaml --cfg ultralytics/cfg/default.yaml --data ultralytics/cfg/datasets/traffic_sign.yaml --weights weights/yolov8s.pt --workers 4 --batch 16
執(zhí)行完上述命令后,即可完成訓(xùn)練,訓(xùn)練過程如下:
下面是對命令中各個(gè)參數(shù)的詳細(xì)解釋說明:
-
python
: 這是Python解釋器的命令行執(zhí)行器,用于執(zhí)行后續(xù)的Python腳本。 -
./train.py
: 這是要執(zhí)行的Python腳本文件的路徑和名稱,它是用于訓(xùn)練目標(biāo)檢測模型的腳本。 -
--epochs 500
: 這是訓(xùn)練的總輪數(shù)(epochs),指定為500,表示訓(xùn)練將運(yùn)行500個(gè)輪次。 -
--cfg models/yolov5s-CBAM-2.yaml
: 這是YOLOv5模型的配置文件的路徑和名稱,它指定了模型的結(jié)構(gòu)和參數(shù)設(shè)置。 -
--hyp data/hyps/hyp.scratch-low.yaml
: 這是超參數(shù)文件的路徑和名稱,它包含了訓(xùn)練過程中的各種超參數(shù)設(shè)置,如學(xué)習(xí)率、權(quán)重衰減等。 -
--data data/coco_NEU-DET.yaml
: 這是數(shù)據(jù)集的配置文件的路徑和名稱,它指定了訓(xùn)練數(shù)據(jù)集的相關(guān)信息,如類別標(biāo)簽、圖像路徑等。 -
--weight weights/yolov5s.pt
: 這是預(yù)訓(xùn)練權(quán)重文件的路徑和名稱,用于加載已經(jīng)訓(xùn)練好的模型權(quán)重以便繼續(xù)訓(xùn)練或進(jìn)行遷移學(xué)習(xí)。 -
--workers 4
: 這是用于數(shù)據(jù)加載的工作進(jìn)程數(shù),指定為4,表示使用4個(gè)工作進(jìn)程來加速數(shù)據(jù)加載。 -
--batch 16
: 這是每個(gè)批次的樣本數(shù),指定為16,表示每個(gè)訓(xùn)練批次將包含16個(gè)樣本。
通過運(yùn)行上面這個(gè)命令,您將使用YOLOv5模型對目標(biāo)檢測任務(wù)進(jìn)行訓(xùn)練,訓(xùn)練500個(gè)輪次,使用指定的配置文件、超參數(shù)文件、數(shù)據(jù)集配置文件和預(yù)訓(xùn)練權(quán)重。同時(shí),使用4個(gè)工作進(jìn)程來加速數(shù)據(jù)加載,并且每個(gè)訓(xùn)練批次包含16個(gè)樣本。
五、 yolov8評估步驟
評估步驟同訓(xùn)練步驟一樣,執(zhí)行1行語句即可,注意--weights
需要變?yōu)樽约合胍獪y試的模型路徑, VOC_fruit.yaml
替換為自己的數(shù)據(jù)集的yaml文件。
python ./val.py --data ultralytics/cfg/datasets/traffic_sign.yaml --weight ../weights/YOLOv8s/weights/best.pt
評估結(jié)果如下:
六、 訓(xùn)練結(jié)果
我們每次訓(xùn)練后,會(huì)在 run/train 文件夾下出現(xiàn)一系列的文件,如下圖所示:
??下載鏈接
? ?該代碼采用Pycharm
+Python3.8
開發(fā),經(jīng)過測試能成功運(yùn)行,運(yùn)行界面的主程序?yàn)?code>main.py,提供用到的所有程序。為確保程序順利運(yùn)行,請按照requirements.txt
配置Python依賴包的版本。Python版本:3.8,為避免出現(xiàn)運(yùn)行報(bào)錯(cuò),請勿使用其他版本,詳見requirements.txt
文件;
? ? 若您想獲得博文中涉及的實(shí)現(xiàn)完整全部程序文件(包括訓(xùn)練代碼、測試代碼、訓(xùn)練數(shù)據(jù)、測試數(shù)據(jù)、視頻,py、 UI文件等
,如下圖),這里已打包上傳至博主的面包多
平臺(tái),可通過下方項(xiàng)目講解鏈接中的視頻簡介部分下載
,完整文件截圖如下:文章來源:http://www.zghlxwxcb.cn/news/detail-837594.html
項(xiàng)目演示講解鏈接:B站文章來源地址http://www.zghlxwxcb.cn/news/detail-837594.html
到了這里,關(guān)于基于深度學(xué)習(xí)的交通標(biāo)志檢測識別系統(tǒng)(含UI界面、yolov8、Python代碼、數(shù)據(jù)集)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!