最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

交通信號(hào)標(biāo)志識(shí)別軟件(Python+YOLOv5深度學(xué)習(xí)模型+清新界面)

2023-03-23 10:52 作者:思緒亦無(wú)限  | 我要投稿


摘要:交通信號(hào)標(biāo)志識(shí)別軟件用于交通信號(hào)標(biāo)志的檢測(cè)和識(shí)別,利用機(jī)器視覺(jué)和深度學(xué)習(xí)智能識(shí)別交通標(biāo)志并可視化記錄,以輔助無(wú)人駕駛等。本文詳細(xì)介紹交通信號(hào)標(biāo)志識(shí)別軟件,在介紹算法原理的同時(shí),給出Python的實(shí)現(xiàn)代碼以及PyQt的UI界面。在界面中可以選擇各種圖片、視頻進(jìn)行檢測(cè)識(shí)別;可對(duì)圖像中存在的多目標(biāo)進(jìn)行識(shí)別分類,檢測(cè)速度快、識(shí)別精度高。博文提供了完整的Python代碼和使用教程,適合新入門的朋友參考,完整代碼資源文件請(qǐng)轉(zhuǎn)至文末的下載鏈接。

完整代碼下載:https://mbd.pub/o/bread/ZJaXlZlv

參考視頻演示:https://www.bilibili.com/video/BV1HT411r7Uv/

離線依賴庫(kù)下載:https://pan.baidu.com/s/1hW9z9ofV1FRSezTSj59JSg?pwd=oy4n?(提取碼:oy4n )

前言

????????交通標(biāo)志識(shí)別系統(tǒng)是ITS和無(wú)人駕駛系統(tǒng)的重要組成部分。如何提高交通標(biāo)志檢測(cè)與識(shí)別技術(shù)的準(zhǔn)確性和實(shí)時(shí)性,是該技術(shù)走向?qū)嶋H應(yīng)用時(shí)需要解決的關(guān)鍵問(wèn)題。近年來(lái),大多數(shù)先進(jìn)的目標(biāo)檢測(cè)算法,如Faster R-CNN、R-FCN、SSD和YOLO,都使用了卷積神經(jīng)網(wǎng)絡(luò),并在目標(biāo)檢測(cè)任務(wù)中取得了豐碩的成果。然而,將這些方法簡(jiǎn)單地應(yīng)用到交通標(biāo)志識(shí)別中很難取得滿意的效果。車載移動(dòng)終端的目標(biāo)識(shí)別和檢測(cè)對(duì)不同尺度的目標(biāo)要求較高的精度,對(duì)識(shí)別速度要求較高,這意味著要滿足準(zhǔn)確性和實(shí)時(shí)性兩個(gè)要求。

????????傳統(tǒng)的CNN通常需要大量的參數(shù)和浮點(diǎn)運(yùn)算(FLOPs)來(lái)達(dá)到令人滿意的精度,例如ResNet-50有大約25.6萬(wàn)個(gè)參數(shù),需要41億個(gè)浮點(diǎn)運(yùn)算來(lái)處理224×224大小的圖像。然而,內(nèi)存和計(jì)算資源有限的移動(dòng)設(shè)備(如智能手機(jī)和自動(dòng)駕駛汽車)無(wú)法用于更大網(wǎng)絡(luò)的部署和推理。YOLOv5作為一種One-stage檢測(cè)器,具有計(jì)算量小、識(shí)別速度快等優(yōu)點(diǎn)。

????????本系統(tǒng)基于YOLOv5,采用登錄注冊(cè)進(jìn)行用戶管理,對(duì)于圖片、視頻和攝像頭捕獲的實(shí)時(shí)畫面,可檢測(cè)交通信號(hào)標(biāo)志圖像,系統(tǒng)支持結(jié)果記錄、展示和保存,每次檢測(cè)的結(jié)果記錄在表格中。對(duì)此這里給出博主設(shè)計(jì)的界面,功能也可以滿足圖片、視頻和攝像頭的識(shí)別檢測(cè),希望大家可以喜歡,初始界面如下圖:

????????檢測(cè)類別時(shí)的界面截圖(點(diǎn)擊圖片可放大)如下圖,可識(shí)別畫面中存在的多個(gè)類別,也可開(kāi)啟攝像頭或視頻檢測(cè):

???????? 詳細(xì)的功能演示效果參見(jiàn)博主的B站視頻或下一節(jié)的動(dòng)圖演示,覺(jué)得不錯(cuò)的朋友敬請(qǐng)點(diǎn)贊、關(guān)注加收藏!系統(tǒng)UI界面的設(shè)計(jì)工作量較大,界面美化更需仔細(xì)雕琢,大家有任何建議或意見(jiàn)和可在下方評(píng)論交流。


1.?效果演示

????????首先我們還是通過(guò)動(dòng)圖看一下識(shí)別的效果,系統(tǒng)主要實(shí)現(xiàn)的功能是對(duì)圖片、視頻和攝像頭畫面中的交通信號(hào)標(biāo)志進(jìn)行識(shí)別,識(shí)別的結(jié)果可視化顯示在界面和圖像中,另外提供多個(gè)目標(biāo)的顯示選擇功能,演示效果如下。

(一)系統(tǒng)介紹

????????交通信號(hào)標(biāo)志識(shí)別軟件主要用于常見(jiàn)交通信號(hào)標(biāo)志的智能識(shí)別,對(duì)于圖像傳感器采集的圖像、視頻或?qū)崟r(shí)畫面,基于深度學(xué)習(xí)技術(shù)識(shí)別多種交通信號(hào)標(biāo)志,在軟件界面中標(biāo)記檢測(cè)框和標(biāo)志類別,以輔助無(wú)人駕駛等任務(wù);軟件準(zhǔn)確定位標(biāo)志區(qū)域并記錄結(jié)果在界面表格中便于查看,支持限速標(biāo)志、停車、行人等目標(biāo)檢測(cè),標(biāo)志數(shù)目、類別、置信度等結(jié)果可記錄、展示和保存;軟件提供登錄注冊(cè)功能,可進(jìn)行用戶管理。

(二)技術(shù)特點(diǎn)

???????? (1)檢測(cè)模型支持更換,模型采用YOLOv5訓(xùn)練;
???????? (2)攝像頭實(shí)時(shí)檢測(cè)交通標(biāo)志,展示、記錄和保存識(shí)別結(jié)果;
???????? (3)可檢測(cè)圖片、視頻等文件,統(tǒng)計(jì)結(jié)果實(shí)時(shí)可視化;
???????? (4)支持用戶登錄、注冊(cè),檢測(cè)結(jié)果可視化功能;

(三)用戶注冊(cè)登錄界面

????????這里設(shè)計(jì)了一個(gè)登錄界面,可以注冊(cè)賬號(hào)和密碼,然后進(jìn)行登錄。界面還是參考了當(dāng)前流行的UI設(shè)計(jì),左側(cè)是一個(gè)LOGO圖,右側(cè)輸入賬號(hào)、密碼、驗(yàn)證碼等等。

(四)選擇圖片識(shí)別

????????系統(tǒng)允許選擇圖片文件進(jìn)行識(shí)別,點(diǎn)擊圖片選擇按鈕圖標(biāo)選擇圖片后,顯示所有識(shí)別的結(jié)果,可通過(guò)下拉選框查看單個(gè)結(jié)果,以便具體判斷某一特定目標(biāo)。本功能的界面展示如下圖所示:

(五)視頻識(shí)別效果展示

????????很多時(shí)候我們需要識(shí)別一段視頻中的多個(gè)交通信號(hào)標(biāo)志,這里設(shè)計(jì)了視頻選擇功能。點(diǎn)擊視頻按鈕可選擇待檢測(cè)的視頻,系統(tǒng)會(huì)自動(dòng)解析視頻逐幀識(shí)別多個(gè)交通信號(hào)標(biāo)志,并將分類和計(jì)數(shù)結(jié)果記錄在右下方表格中,效果如下圖所示:

(六)攝像頭檢測(cè)效果展示

????????在真實(shí)場(chǎng)景中,我們往往利用道路的攝像頭獲取實(shí)時(shí)畫面,同時(shí)需要對(duì)交通信號(hào)標(biāo)志進(jìn)行識(shí)別,因此本文考慮到此項(xiàng)功能。如下圖所示,點(diǎn)擊攝像頭按鈕后系統(tǒng)進(jìn)入準(zhǔn)備狀態(tài),系統(tǒng)顯示實(shí)時(shí)畫面并開(kāi)始檢測(cè)畫面中的交通信號(hào)標(biāo)志,識(shí)別結(jié)果展示如下圖:

2.?數(shù)據(jù)集及訓(xùn)練情況

???????? 交通標(biāo)志數(shù)據(jù)集包含限速、環(huán)島、禁止駛?cè)氲葮?biāo)志類型,訓(xùn)練數(shù)據(jù)集包含6522張圖片,驗(yàn)證集包含632張圖片,測(cè)試集296張圖片,共計(jì)7450張圖片,部分標(biāo)注情況顯示如下。

????????每張圖像均提供了圖像類標(biāo)記信息,圖像中交通信號(hào)標(biāo)志的bounding box,交通信號(hào)標(biāo)志的關(guān)鍵part信息,以及交通信號(hào)標(biāo)志的屬性信息,數(shù)據(jù)集并解壓后得到如下的圖片

???????? 作為YOLO系列的完善版本,YOLOv5優(yōu)越的靈活性使得它可以方便地快速部署在車輛硬件側(cè)。YOLOv5包含YOLOv5s、YOLOv5m、YOLOv5l, YOLOv5x。

???????? YOLOv5s是YOLO系列中最小的版本,由于其內(nèi)存大小為14.10M,更適合部署在車載移動(dòng)硬件平臺(tái)上,但其識(shí)別精度不能滿足準(zhǔn)確高效識(shí)別的要求,尤其是對(duì)小目標(biāo)的識(shí)別。

???????? YOLOv5的基本框架可以分為4個(gè)部分:Input、Backbone、Neck和Prediction。

???????? Input部分通過(guò)拼接數(shù)據(jù)增強(qiáng)來(lái)豐富數(shù)據(jù)集,對(duì)硬件設(shè)備要求低,計(jì)算成本低。但是,這會(huì)導(dǎo)致數(shù)據(jù)集中原有的小目標(biāo)變小,導(dǎo)致模型的泛化性能下降。

???????? Backbone部分主要由CSP模塊組成,通過(guò)CSPDarknet53進(jìn)行特征提取。

???????? 在Neck中使用FPN和路徑聚合網(wǎng)絡(luò)(PANet)來(lái)聚合該階段的圖像特征。最后,網(wǎng)絡(luò)進(jìn)行目標(biāo)預(yù)測(cè)并通過(guò)預(yù)測(cè)輸出。

????????這里我們開(kāi)始訓(xùn)練和測(cè)試自己的數(shù)據(jù)集,在cmd終端中運(yùn)行train.py進(jìn)行訓(xùn)練,以下是訓(xùn)練過(guò)程中的結(jié)果截圖。

????????在深度學(xué)習(xí)中,我們通常通過(guò)損失函數(shù)下降的曲線來(lái)觀察模型訓(xùn)練的情況。而YOLOv5訓(xùn)練時(shí)主要包含三個(gè)方面的損失:矩形框損失(box_loss)、置信度損失(obj_loss)和分類損失(cls_loss),在訓(xùn)練結(jié)束后,我們也可以在logs目錄下找到生成對(duì)若干訓(xùn)練過(guò)程統(tǒng)計(jì)圖。下圖為博主訓(xùn)練交通標(biāo)志類識(shí)別的模型訓(xùn)練曲線圖。

????????一般我們會(huì)接觸到兩個(gè)指標(biāo),分別是召回率recall和精度precision,兩個(gè)指標(biāo)p和r都是簡(jiǎn)單地從一個(gè)角度來(lái)判斷模型的好壞,均是介于0到1之間的數(shù)值,其中接近于1表示模型的性能越好,接近于0表示模型的性能越差,為了綜合評(píng)價(jià)目標(biāo)檢測(cè)的性能,一般采用均值平均密度map來(lái)進(jìn)一步評(píng)估模型的好壞。我們通過(guò)設(shè)定不同的置信度的閾值,可以得到在模型在不同的閾值下所計(jì)算出的p值和r值,一般情況下,p值和r值是負(fù)相關(guān)的,繪制出來(lái)可以得到如下圖所示的曲線,其中曲線的面積我們稱AP,目標(biāo)檢測(cè)模型中每種目標(biāo)可計(jì)算出一個(gè)AP值,對(duì)所有的AP值求平均則可以得到模型的mAP值。

? ? ? ? 以PR-curve為例,可以看到我們的模型在驗(yàn)證集上的均值平均準(zhǔn)確率為0.991。

3.?交通信號(hào)標(biāo)志檢測(cè)識(shí)別

????????執(zhí)行預(yù)測(cè)代碼,得到的結(jié)果如下圖所示,圖中交通信號(hào)標(biāo)志的種類和置信度值都標(biāo)注出來(lái)了,預(yù)測(cè)速度較快?;诖四P臀覀兛梢詫⑵湓O(shè)計(jì)成一個(gè)帶有界面的系統(tǒng),在界面上選擇圖片、視頻或攝像頭然后調(diào)用模型進(jìn)行檢測(cè)。

????????博主對(duì)整個(gè)系統(tǒng)進(jìn)行了詳細(xì)測(cè)試,最終開(kāi)發(fā)出一版流暢得到清新界面,就是博文演示部分的展示,完整的UI界面、測(cè)試圖片視頻、代碼文件,以及Python離線依賴包(方便安裝運(yùn)行,也可自行配置環(huán)境),均已打包上傳,感興趣的朋友可以通過(guò)下載鏈接獲取。

下載鏈接

????若您想獲得博文中涉及的實(shí)現(xiàn)完整全部程序文件(包括測(cè)試圖片、視頻,py, UI文件等,如下圖),這里已打包上傳至博主的面包多平臺(tái),見(jiàn)可參考博客與視頻,已將所有涉及的文件同時(shí)打包到里面,點(diǎn)擊即可運(yùn)行,完整文件截圖如下:

????在文件夾下的資源顯示如下,其中包含了Python的離線依賴包,讀者可在正確安裝Anaconda和Pycharm軟件后,點(diǎn)擊bat文件進(jìn)行安裝,詳細(xì)演示也可見(jiàn)本人B站視頻。

注意:該代碼采用Pycharm+Python3.8開(kāi)發(fā),經(jīng)過(guò)測(cè)試能成功運(yùn)行,運(yùn)行界面的主程序?yàn)閞unMain.py和LoginUI.py,測(cè)試圖片腳本可運(yùn)行testPicture.py,測(cè)試視頻腳本可運(yùn)行testVideo.py。為確保程序順利運(yùn)行,請(qǐng)按照requirements.txt配置Python依賴包的版本。Python版本:3.8,請(qǐng)勿使用其他版本,詳見(jiàn)requirements.txt文件;

完整資源中包含數(shù)據(jù)集及訓(xùn)練代碼,環(huán)境配置與界面中文字、圖片、logo等的修改方法請(qǐng)見(jiàn)視頻,項(xiàng)目完整文件下載請(qǐng)見(jiàn)參考博客文章里面,或參考視頻的簡(jiǎn)介處給出:???

完整代碼下載:https://mbd.pub/o/bread/ZJaXlZlv

參考視頻演示:https://www.bilibili.com/video/BV1HT411r7Uv/

離線依賴庫(kù)下載:https://pan.baidu.com/s/1hW9z9ofV1FRSezTSj59JSg?pwd=oy4n?(提取碼:oy4n )

界面中文字、圖標(biāo)和背景圖修改方法:

????????在Qt Designer中可以徹底修改界面的各個(gè)控件及設(shè)置,然后將ui文件轉(zhuǎn)換為py文件即可調(diào)用和顯示界面。如果只需要修改界面中的文字、圖標(biāo)和背景圖的,可以直接在ConfigUI.config文件中修改,步驟如下:
????????(1)打開(kāi)UI_rec/tools/ConfigUI.config文件,若亂碼請(qǐng)選擇GBK編碼打開(kāi)。
????????(2)如需修改界面文字,只要選中要改的字符替換成自己的就好。
????????(3)如需修改背景、圖標(biāo)等,只需修改圖片的路徑。例如,原文件中的背景圖設(shè)置如下:

????????可修改為自己的名為background2.png圖片(位置在UI_rec/icons/文件夾中),可將該項(xiàng)設(shè)置如下即可修改背景圖:

結(jié)束語(yǔ)

????????由于博主能力有限,博文中提及的方法即使經(jīng)過(guò)試驗(yàn),也難免會(huì)有疏漏之處。希望您能熱心指出其中的錯(cuò)誤,以便下次修改時(shí)能以一個(gè)更完美更嚴(yán)謹(jǐn)?shù)臉幼?,呈現(xiàn)在大家面前。同時(shí)如果有更好的實(shí)現(xiàn)方法也請(qǐng)您不吝賜教。

交通信號(hào)標(biāo)志識(shí)別軟件(Python+YOLOv5深度學(xué)習(xí)模型+清新界面)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
安泽县| 淅川县| 达尔| 郑州市| 南康市| 平顶山市| 广安市| 全南县| 宾阳县| 伊金霍洛旗| 台北县| 揭东县| 虹口区| 阿尔山市| 宣城市| 长岭县| 康平县| 东阳市| 出国| 宁安市| 江门市| 清流县| 读书| 洪洞县| 体育| 湄潭县| 铅山县| 波密县| 扎兰屯市| 通榆县| 神木县| 衢州市| 康马县| 鄂伦春自治旗| 衡阳市| 湟源县| 拉萨市| 城步| 泰州市| 获嘉县| 新建县|