五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

基于深度學(xué)習(xí)的車型識別系統(tǒng)(Python+清新界面+數(shù)據(jù)集)

2023-03-23 10:58 作者:思緒亦無限  | 我要投稿


摘要:基于深度學(xué)習(xí)的車型識別系統(tǒng)用于識別不同類型的車輛,應(yīng)用YOLO V5算法根據(jù)不同尺寸大小區(qū)分和檢測車輛,并統(tǒng)計各類型數(shù)量以輔助智能交通管理。本文詳細介紹車型識別系統(tǒng),在介紹算法原理的同時,給出Python的實現(xiàn)代碼以及PyQt的UI界面。在界面中可以選擇各種圖片、視頻進行檢測識別;可對圖像中存在的多目標(biāo)進行識別分類,檢測速度快、識別精度高。博文提供了完整的Python代碼和使用教程,適合新入門的朋友參考,完整代碼資源文件請轉(zhuǎn)至文末的下載鏈接。

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

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

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

前言

????????智能交通系統(tǒng)是現(xiàn)代化交通的重要組成部分,是未來交通系統(tǒng)的發(fā)展趨勢。在智能交通中,車型的自動識別是一個重要的研究方向。其在停車場車輛管理、道路交通狀況監(jiān)管和車流量統(tǒng)計等眾多領(lǐng)域有著廣泛的應(yīng)用。針對交通視頻,車型識別系統(tǒng)主要利用圖像處理和模式識別技術(shù)來實時進行分析處理視頻監(jiān)控數(shù)據(jù)。

????????本系統(tǒng)基于YOLOv5,采用登錄注冊進行用戶管理,對于圖片、視頻和攝像頭捕獲的實時畫面,可檢測車型,系統(tǒng)支持結(jié)果記錄、展示和保存,每次檢測的結(jié)果記錄在表格中。對此這里給出博主設(shè)計的界面,同款的簡約風(fēng),功能也可以滿足圖片、視頻和攝像頭的識別檢測,希望大家可以喜歡,初始界面如下圖:

????????檢測類別時的界面截圖(點擊圖片可放大)如下圖,可識別畫面中存在的多個類別,也可開啟攝像頭或視頻檢測:

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


1.?效果演示

????????一款軟件的顏值和功能同樣重要,首先我們還是通過動圖看一下識別的效果,系統(tǒng)主要實現(xiàn)的功能是對圖片、視頻和攝像頭畫面中的車型進行識別,識別的結(jié)果可視化顯示在界面和圖像中,另外提供多個目標(biāo)的顯示選擇功能,演示效果如下。

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

????????基于深度學(xué)習(xí)的車型識別系統(tǒng)主要用于不同尺寸類型的車輛識別,利用攝像設(shè)備采集的圖像、視頻或?qū)崟r畫面,應(yīng)用深度學(xué)習(xí)技術(shù)識別多種包括小型車、中型車、大型車、小型卡車、大型卡車等7種類型車輛,在軟件界面中標(biāo)記檢測框和車型類別,并可視化數(shù)量;軟件準(zhǔn)確定位檢測車輛并記錄在界面中顯示記錄結(jié)果,支持各個類型車輛數(shù)目、類別、置信度等結(jié)果可視化、展示和保存;軟件提供登錄注冊功能,可進行用戶管理。

(二)技術(shù)特點

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

(三)用戶注冊登錄界面

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

(四)選擇圖片識別

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

(五)視頻識別效果展示

????????很多時候我們需要識別一段視頻中的多個車輛,這里設(shè)計了視頻選擇功能。點擊視頻按鈕可選擇待檢測的視頻,系統(tǒng)會自動解析視頻逐幀識別多個車型,并將車型的分類和計數(shù)結(jié)果記錄在右下角表格中,效果如下圖所示:

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

????????在真實場景中,我們往往利用道路的攝像頭獲取實時畫面,同時需要對車型進行識別,因此本文考慮到此項功能。如下圖所示,點擊攝像頭按鈕后系統(tǒng)進入準(zhǔn)備狀態(tài),系統(tǒng)顯示實時畫面并開始檢測畫面中的車型,識別結(jié)果展示可見本人視頻。

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

(一)YOLOv5模型簡介

????????本文借助YOLOv5實現(xiàn)對不同大小車輛的類型進行識別,YOLOv5的調(diào)用、訓(xùn)練和預(yù)測都十分方便,并且它為不同的設(shè)備需求和不同的應(yīng)用場景提供了大小和參數(shù)數(shù)量不同的網(wǎng)絡(luò)。

????????YOLOv5模型是一個在COCO數(shù)據(jù)集上預(yù)訓(xùn)練的物體檢測架構(gòu)和模型系列,它是YOLO系列的一個延伸,能夠很好的用來進行車型的特征提取,其網(wǎng)絡(luò)結(jié)構(gòu)共分為:input、backbone、neck和head四個模塊,yolov5對yolov4網(wǎng)絡(luò)的優(yōu)點在于:在input端使用了Mosaic數(shù)據(jù)增強、自適應(yīng)錨框計算、自適應(yīng)圖片縮放; 在backbone端使用了Focus結(jié)構(gòu)與CSP結(jié)構(gòu);在neck端添加了FPN+PAN結(jié)構(gòu);在head端改進了訓(xùn)練時的損失函數(shù),使用GIOU_Loss,以及預(yù)測框篩選的DIOU_nms。除了模型結(jié)構(gòu),yolov5使用Pytorch框架,對用戶非常友好;代碼易讀;模型訓(xùn)練快速;能夠直接對圖像,視頻進行推理;能直接部署到手機應(yīng)用端;預(yù)測速度非??臁oloV5模型詳解可以參照鏈接。

????????(1)主干部分:使用了Focus網(wǎng)絡(luò)結(jié)構(gòu),具體操作是在一張圖片中每隔一個像素拿到一個值,這個時候獲得了四個獨立的特征層,然后將四個獨立的特征層進行堆疊,此時寬高信息就集中到了通道信息,輸入通道擴充了四倍。該結(jié)構(gòu)在YoloV5第5版之前有所應(yīng)用,最新版本中未使用。

????????(2)數(shù)據(jù)增強:Mosaic數(shù)據(jù)增強、Mosaic利用了四張圖片進行拼接實現(xiàn)數(shù)據(jù)中增強,優(yōu)點是可以豐富檢測物體的背景,且在BN計算的時候可以計算四張圖片的數(shù)據(jù)。

????????(3)多正樣本匹配:在之前的Yolo系列里面,在訓(xùn)練時每一個真實框?qū)?yīng)一個正樣本,即在訓(xùn)練時,每一個真實框僅由一個先驗框負責(zé)預(yù)測。YoloV5中為了加快模型的訓(xùn)練效率,增加了正樣本的數(shù)量,在訓(xùn)練時,每一個真實框可以由多個先驗框負責(zé)預(yù)測。

(二)車型識別數(shù)據(jù)集

????????這里我們使用的車型數(shù)據(jù)集,其中訓(xùn)練集包含1488張圖片,驗證集包含507張圖片,測試集包含31張圖片,共計2026張圖片。部分圖片和標(biāo)注情況如下圖所示。

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

? ? ? ? 該數(shù)據(jù)集分為7類,分別有小型車,中型車,大型車,小型卡車,大型卡車,油罐車,特種車。

????????我們分析一下數(shù)據(jù)集的組成結(jié)構(gòu),第4類也就是小型卡車的的圖片最多,并且x,y坐標(biāo)主要集中在0.5,0.5的位置。

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

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

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

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

3.?車型檢測識別

????????在訓(xùn)練完成后得到最佳模型,接下來我們將幀圖像輸入到這個網(wǎng)絡(luò)進行預(yù)測,從而得到預(yù)測結(jié)果,預(yù)測方法(testVideo.py)部分的代碼如下所示:

????????執(zhí)行得到的結(jié)果如下圖所示,圖中車型的種類和置信度值都標(biāo)注出來了,預(yù)測速度較快。基于此模型我們可以將其設(shè)計成一個帶有界面的系統(tǒng),在界面上選擇圖片、視頻或攝像頭然后調(diào)用模型進行檢測。

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

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

下載鏈接

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

????在文件夾下的資源顯示如下,下面的鏈接中也給出了Python的離線依賴包,讀者可在正確安裝Anaconda和Pycharm軟件后,復(fù)制離線依賴包至項目目錄下進行安裝,離線依賴的使用詳細演示也可見本人B站視頻:win11從頭安裝軟件和配置環(huán)境運行深度學(xué)習(xí)項目、Win10中使用pycharm和anaconda進行python環(huán)境配置教程

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

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

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

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

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

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

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

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

結(jié)束語

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

基于深度學(xué)習(xí)的車型識別系統(tǒng)(Python+清新界面+數(shù)據(jù)集)的評論 (共 條)

分享到微博請遵守國家法律
德阳市| 西城区| 繁峙县| 潼关县| 中江县| 克山县| 皮山县| 新泰市| 得荣县| 嘉荫县| 右玉县| 翁源县| 外汇| 新余市| 沁阳市| 珲春市| 陆川县| 仁布县| 喀喇沁旗| 兴隆县| 远安县| 循化| 乐业县| 东安县| 武夷山市| 资溪县| 沂水县| 山西省| 竹溪县| 双峰县| 赤水市| 洛南县| 台湾省| 瑞安市| 淄博市| 体育| 兴仁县| 水富县| 大庆市| 开鲁县| 社旗县|