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

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

基于YOLOv5的疲勞駕駛檢測系統(tǒng)(Python+清新界面+數(shù)據(jù)集)

2023-03-20 17:40 作者:思緒亦無限  | 我要投稿

摘要:基于YOLOv5的疲勞駕駛檢測系統(tǒng)使用深度學習技術(shù)檢測常見駕駛圖片、視頻和實時視頻中的疲勞行為,識別其閉眼、打哈欠等結(jié)果并記錄和保存,以防止交通事故發(fā)生。本文詳細介紹疲勞駕駛檢測系統(tǒng)實現(xiàn)原理的同時,給出Python的實現(xiàn)代碼、訓練數(shù)據(jù)集以及PyQt的UI界面。在界面中可以選擇各種圖片、視頻進行檢測識別,可對圖像中存在的多個目標進行識別分類。博文提供了完整的Python代碼和使用教程,適合新入門的朋友參考,完整代碼資源文件請轉(zhuǎn)至文末的下載鏈接。本博文目錄如下:

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

參考視頻演示:bilibili.com/video/BV1b

離線依賴庫下載鏈接pan.baidu.com/s/1hW9z9o?(提取碼:oy4n )

前言

????????疲勞駕駛,是指在長時間連續(xù)行車后,駕駛員在心理技能和生理機制上發(fā)生變化,在客觀上表現(xiàn)為駕駛技能的下降,并且表現(xiàn)出打瞌睡、反應(yīng)遲鈍、四肢無力、注意力不集中以及判斷能力下降等現(xiàn)象。具不完全統(tǒng)計,50%的交通安全事故起源駕駛員意識不清醒從而釀成車禍。

????????對駕駛員的疲勞狀態(tài)進行實時檢測是汽車安全駕駛的關(guān)鍵的一環(huán),因此在駕駛車輛時需要對駕駛員的疲勞狀態(tài)進行實時檢測及時做出預(yù)警。基于視覺特征的駕駛員疲勞狀態(tài)檢測方法,主要是利用攝像機對駕駛狀態(tài)下的駕駛員面部特征進行實時采集,然后使用基于視覺以及圖像處理的方法,獲取得到駕駛員的眼部、嘴部以及頭部區(qū)域信息等特征信息。最后,使用一定的判別方法對提取到的駕駛員眨眼間頻率,打哈欠等特征分析,對駕駛員疲勞狀態(tài)進行檢測。隨著當前深度學習方法在目標檢測方向上的應(yīng)用深入,基于YOLOv5的目標檢測方法具有應(yīng)用的可能性與應(yīng)用前景。

????????基于YOLOv5的疲勞駕駛檢測系統(tǒng)應(yīng)用深度學習技術(shù)檢測常見駕駛過程中可能存在的疲勞駕駛行為,包括閉眼、打哈欠等常見行為,以方便對駕駛員的安全駕駛進行監(jiān)測分析;系統(tǒng)采用登錄注冊進行用戶管理;對于圖片、視頻和攝像頭捕獲的實時畫面,系統(tǒng)可檢測畫面中的疲勞駕駛行為;系統(tǒng)支持結(jié)果記錄、展示和保存,每次檢測的結(jié)果記錄在表格中。對此這里給出博主設(shè)計的界面,同款的簡約風,功能也可以滿足圖片、視頻和攝像頭的識別檢測,希望大家可以喜歡,初始界面如下圖:

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

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


1.?效果演示

????????這里通過動圖看一下識別的效果,系統(tǒng)主要實現(xiàn)的功能是對圖片、視頻和攝像頭畫面中的疲勞駕駛行為進行識別,識別的結(jié)果可視化顯示在界面和圖像中,另外提供多個人臉的顯示選擇功能,演示效果如下。

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

????????經(jīng)查閱相關(guān)文獻,疲勞在人體面部表情中表現(xiàn)出大致三個類型:打哈欠(嘴巴張大且相對較長時間保持這一狀態(tài))、眨眼(或眼睛微閉,此時眨眼次數(shù)增多,且眨眼速度變慢)等。這里使用YOLOv5識別這些數(shù)據(jù)特征,實時地分析駕駛員的疲勞駕駛行為,并及時作出安全提示。

(二)技術(shù)特點

???????? (1)YOLO v5算法實現(xiàn),模型一鍵切換更新;
???????? (2)檢測圖片、視頻等圖像中的各疲勞駕駛行為;
???????? (3)攝像頭監(jiān)控實時檢測,便攜展示、記錄和保存;
???????? (4)支持用戶登錄、注冊,檢測結(jié)果可視化功能;
???????? (5)提供訓練數(shù)據(jù)集和代碼,可重新訓練模型;

(三)用戶注冊登錄界面

????????對于系統(tǒng)登錄界面如下圖所示,可以輸入用戶名和密碼進行登錄注冊功能,在輸入正確后可以進入主界面。

(四)選擇圖片識別

????????系統(tǒng)可以選擇圖片文件進行識別,點擊圖片選擇按鈕圖標選擇圖片后,顯示所有人臉識別的結(jié)果,可通過下拉選框查看單個結(jié)果,以便具體判斷某一疲勞駕駛?cè)藛T。本功能的界面展示如下圖所示:

(五)視頻識別效果展示

????????如果要識別視頻中的疲勞駕駛情況,可以點擊視頻按鈕可選擇待檢測的視頻,系統(tǒng)會自動解析視頻逐幀識別人臉,并將是否疲勞駕駛的結(jié)果記錄在右下角表格中,效果如下圖所示:

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

????????在真實場景中,如果需要利用設(shè)備攝像頭獲取實時畫面,并對畫面中的疲勞駕駛行為進行識別,可點擊攝像頭按鈕后系統(tǒng)進入準備狀態(tài),系統(tǒng)顯示實時畫面并開始檢測畫面中的駕駛員,識別結(jié)果展示如下圖:

2.?疲勞駕駛檢測

(一)疲勞駕駛數(shù)據(jù)集

????????這里我們使用的疲勞駕駛數(shù)據(jù)集,包含訓練數(shù)據(jù)集656張圖片、驗證集188張圖片、測試集94張圖片,共計938張圖片。

? ? ? ? 每張圖像均提供了圖像類標記信息,圖像中疲勞駕駛的bounding box,數(shù)據(jù)集并解壓后得到如下的圖片。

(二)網(wǎng)絡(luò)結(jié)構(gòu)

???????? Yolov5網(wǎng)絡(luò)結(jié)構(gòu)是由Input、Backbone、Neck、Prediction組成。Yolov5的Input部分是網(wǎng)絡(luò)的輸入端,采用Mosaic數(shù)據(jù)增強方式,對輸入數(shù)據(jù)隨機裁剪,然后進行拼接。Backbone是Yolov5提取特征的網(wǎng)絡(luò)部分,特征提取能力直接影響整個網(wǎng)絡(luò)性能。Yolov5的Backbone相比于之前Yolov4提出了新的Focus結(jié)構(gòu)。Focus結(jié)構(gòu)是將圖片進行切片操作,將W(寬)、H(高)信息轉(zhuǎn)移到了通道空間中,使得在沒有丟失任何信息的情況下,進行了2倍下采樣操作。

(三)訓練過程

???????? 網(wǎng)絡(luò)的訓練由于數(shù)據(jù)量較大進行實驗時將數(shù)據(jù)分為多個批次, 每個批次中含有 一定數(shù)目圖像, 經(jīng)過前向、 反向傳播后更新網(wǎng)絡(luò)參數(shù), 訓練出誤差合適的網(wǎng)絡(luò)。測試時, 圖像由網(wǎng)絡(luò)進行識別, 根據(jù)得到的識別正確率來驗證網(wǎng)絡(luò)的可行性。

????????對前面介紹過的數(shù)據(jù)集經(jīng)過處理后標簽文件均轉(zhuǎn)換為YOLOv5訓練所需的標記格式,基于此數(shù)據(jù)集,我們在train.py中設(shè)置必要參數(shù)后,運行該腳本進行模型訓練,訓練過程在終端的顯示如下圖所示。

? ? ? ? 在深度學習中,我們通常通過損失函數(shù)下降的曲線來觀察模型訓練的情況。而YOLOv5訓練時主要包含三個方面的損失:矩形框損失(box_loss)、置信度損失(obj_loss)和分類損失(cls_loss),模型訓練曲線圖如下圖所示。

????????一般我們會利用召回率recall和精度precision,兩個指標p和r都是簡單地從一個角度來判斷模型的好壞,為了綜合評價目標檢測的性能,一般采用均值平均密度map來進一步評估模型的好壞。我們通過設(shè)定不同的置信度的閾值,可以得到在模型在不同的閾值下所計算出的p值和r值,一般情況下,p值和r值是負相關(guān)的,繪制出來可以得到如下圖所示的曲線。

(四)預(yù)測過程

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

????????得到預(yù)測結(jié)果我們便可以將幀圖像中的目標框出,以下是讀取視頻文件并進行檢測的腳本,首先將圖片數(shù)據(jù)進行預(yù)處理后送predict進行檢測,然后計算標記框的位置并在圖中標注出來。

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

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

下載鏈接

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

????在文件夾下的資源顯示如下,下面的鏈接中也給出了Python的離線依賴包,讀者可在正確安裝Anaconda和Pycharm軟件后,復(fù)制離線依賴包至項目目錄下進行安裝,離線依賴的使用詳細演示也可見本人B站視頻:win11從頭安裝軟件和配置環(huán)境運行深度學習項目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ù)集及訓練代碼,環(huán)境配置與界面中文字、圖片、logo等的修改方法請見視頻,項目完整文件下載請見參考博客文章里面,或參考視頻的簡介處給出:???

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

參考視頻演示:bilibili.com/video/BV1b

離線依賴庫下載鏈接pan.baidu.com/s/1hW9z9o?(提取碼:oy4n )

? ? ? ? 在Qt Designer中可以徹底修改界面的各個控件及設(shè)置,然后將ui文件轉(zhuǎn)換為py文件即可調(diào)用和顯示界面。如果只需要修改界面中的文字、圖標和背景圖的,可以直接在ConfigUI.config文件中修改,步驟如下:

????????(1)打開UI_rec/tools/ConfigUI.config文件,若亂碼請選擇GBK編碼打開。
????????(2)如需修改界面文字,只要選中要改的字符替換成自己的就好。
????????(3)如需修改背景、圖標等,只需修改圖片的路徑。例如,原文件中的背景圖設(shè)置如下:

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

結(jié)束語

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

基于YOLOv5的疲勞駕駛檢測系統(tǒng)(Python+清新界面+數(shù)據(jù)集)的評論 (共 條)

分享到微博請遵守國家法律
营山县| 华亭县| 荥经县| 佛山市| 景谷| 比如县| 隆德县| 周至县| 白玉县| 武隆县| 隆安县| 台州市| 凤翔县| 长海县| 长沙市| 四平市| 克拉玛依市| 平凉市| 盘山县| 历史| 阳新县| 左权县| 南丹县| 绍兴市| 五常市| 溧阳市| 汪清县| 晋城| 咸丰县| 大英县| 灯塔市| 稻城县| 兴化市| 深泽县| 德州市| 萨迦县| 芜湖县| 托克逊县| 怀远县| 达拉特旗| 无棣县|