李少博 董世浩 張佳玉 夏宇航 符竹子 張一博 胡文成 張哲
(1、長安大學(xué)信息工程學(xué)院,陜西 西安 710064 2、長安大學(xué)學(xué)生工作部,陜西 西安 711064)
隨著經(jīng)濟(jì)與社會(huì)的發(fā)展,各大城市車輛保有量不斷提高,越來越多的人選擇乘車出行,但隨之而來的交通問題也越來越嚴(yán)重。根據(jù)中國統(tǒng)計(jì)年鑒的數(shù)據(jù)可以看出,近些年來,交通事故數(shù)量不斷增加,其中,非機(jī)動(dòng)車事故發(fā)生率的增長尤為明顯。而且導(dǎo)致非機(jī)動(dòng)車事故死亡人數(shù)不斷增加的一個(gè)主要原因之一就是:路口人行橫道非機(jī)動(dòng)車闖紅燈問題嚴(yán)重。然而,有限的警力與快速的管理需求增長的矛盾越來越突出,建設(shè)一套技術(shù)先進(jìn)、質(zhì)量可靠、經(jīng)濟(jì)實(shí)用、方便管理的城鄉(xiāng)區(qū)域安防數(shù)字化網(wǎng)絡(luò)監(jiān)控系統(tǒng)勢在必行。這幾類交通事故并不是無法避免的,通過加大對路口人行橫道的監(jiān)督力度、加強(qiáng)闖紅燈問題的治理可以有效減少。本文使用Retinaface 人臉檢測技術(shù)得到人臉信息,結(jié)合YOLOv4 卷積神經(jīng)網(wǎng)絡(luò)特點(diǎn),模擬神經(jīng)元的學(xué)習(xí)功能,建立相應(yīng)神經(jīng)網(wǎng)絡(luò)模型,在搭建的神經(jīng)網(wǎng)絡(luò)各層次中調(diào)整偏置項(xiàng),進(jìn)而訓(xùn)練得到有效的神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)非機(jī)動(dòng)車駕駛?cè)耸欠翊黝^盔檢測功能,機(jī)動(dòng)車是否闖紅燈監(jiān)測功能、行人是否闖紅燈監(jiān)測功能,并保證其較高的精確度。截取違反交通規(guī)則、闖紅燈、未帶安全帽的機(jī)動(dòng)車車牌圖像,并將其發(fā)送至終端系統(tǒng),將違規(guī)車輛車牌圖像輸入到已訓(xùn)練好的tensorflow2 網(wǎng)絡(luò)中進(jìn)行車牌檢測,得到車牌圖像,并將違規(guī)車輛的車牌信息發(fā)送至終端系統(tǒng)。
本系統(tǒng)以pytorch 為模型搭建平臺(tái),采用深度學(xué)習(xí)的框架構(gòu)建了一個(gè)交通規(guī)范檢測系統(tǒng)。在本系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中,我們使用了神經(jīng)網(wǎng)絡(luò)YOLOv4 模型進(jìn)行對所讀取的視頻流進(jìn)行目標(biāo)物體的檢測分類與記錄,斑馬線的卡爾曼濾波檢測,頭盔模型的訓(xùn)練與使用以及基于神經(jīng)網(wǎng)絡(luò)模型的人臉檢測技術(shù)。通過相關(guān)技術(shù)檢測車輛、行人及非機(jī)動(dòng)車的行駛狀況以及是否存在不規(guī)范行為,并且將違規(guī)人員的信息傳輸?shù)浇K端進(jìn)行檢測與記錄。項(xiàng)目的總體思想為:先對視頻流中的人行道位置進(jìn)行檢測,統(tǒng)計(jì)通過人行道的車流量[1],人流量[2]以及非機(jī)動(dòng)車流量信息[3],并在界面上進(jìn)行顯示。當(dāng)檢測到當(dāng)前紅綠燈狀態(tài)為紅燈時(shí),即車輛通過人行道視為違規(guī),記錄車輛的車牌信息;當(dāng)檢測到當(dāng)前紅綠燈狀態(tài)為綠燈時(shí),即行人通過則視為闖紅燈,記錄行人的照片信息,并且發(fā)送至終端系統(tǒng),進(jìn)行人臉檢測與識(shí)別[4]。本系統(tǒng)在統(tǒng)計(jì)非機(jī)動(dòng)車輛信息后,會(huì)對非機(jī)動(dòng)車輛的車主進(jìn)行是否戴頭盔檢測,并且將違規(guī)車主信息記錄。圖1 為整個(gè)系統(tǒng)總體設(shè)計(jì)實(shí)現(xiàn)框圖。
圖1 系統(tǒng)框架圖
本文采用深度學(xué)習(xí)的方法,結(jié)合YOLOv4 卷積神經(jīng)網(wǎng)絡(luò)特點(diǎn),模擬神經(jīng)元的學(xué)習(xí)功能,建立相應(yīng)神經(jīng)網(wǎng)絡(luò)模型,在搭建的神經(jīng)網(wǎng)絡(luò)各層次中調(diào)整偏置項(xiàng),進(jìn)而訓(xùn)練得到有效的神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)檢測二輪機(jī)動(dòng)車駕駛?cè)耸欠翊黝^盔的功能,即實(shí)現(xiàn)頭盔識(shí)別,并保證其較高的精確度。
基于yolov4 的頭盔檢測模型模型構(gòu)建:
本文在YOLOv4 的目標(biāo)識(shí)別網(wǎng)絡(luò)下構(gòu)建頭盔檢測模型[5],所謂YOLOv4 網(wǎng)絡(luò)即為一個(gè)人工神經(jīng)網(wǎng)絡(luò),采用了近些年CNN 領(lǐng)域中最優(yōu)秀的優(yōu)化方法,在數(shù)據(jù)處理、主干網(wǎng)絡(luò)backbone、網(wǎng)絡(luò)的訓(xùn)練、激活函數(shù)的選取、損失函數(shù)的選取等各個(gè)方面都有著不同程度的優(yōu)化,雖然沒有特別惹人注目的創(chuàng)新,但在檢測效率,準(zhǔn)確率方面已經(jīng)為大多數(shù)CNN 領(lǐng)域從業(yè)者接受應(yīng)用。
本文在對頭盔識(shí)別網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),需要使用CIOU 作為損失函數(shù)。由于本文是對摩托車駕駛員頭盔進(jìn)行目標(biāo)檢測,因此優(yōu)化器的選擇十分重要,IoU 是比值的概念,對目標(biāo)物體的scale 是不敏感的。然而常用的BBox 的回歸損失優(yōu)化和IoU 優(yōu)化不是完全等價(jià)的,尋常的IoU 無法直接優(yōu)化沒有重疊的部分。
CIOU 將目標(biāo)與anchor 之間的距離,重疊率、尺度以及懲罰項(xiàng)都考慮進(jìn)去,使得目標(biāo)框回歸變得更加穩(wěn)定,不會(huì)像IoU 和GIoU 一樣出現(xiàn)訓(xùn)練過程中發(fā)散等問題。而懲罰因子把預(yù)測框長寬比擬合目標(biāo)框的長寬比考慮進(jìn)去。
CIOU 公式如下:
其中,ρ2(b,bgt)分別代表了預(yù)測框和真實(shí)框的中心點(diǎn)的歐式距離。c 代表的是能夠同時(shí)包含預(yù)測框架和真實(shí)框架的最小閉包區(qū)域的對角距離。
而α 和β 的公式如下:
把1-CIOU 就可以得到相應(yīng)的LOSS 了。
在利用以上所述的深度學(xué)習(xí)方法進(jìn)行頭盔識(shí)別模型建立與訓(xùn)練后,將其運(yùn)用到PYQT 編寫的可視化應(yīng)用中用以實(shí)時(shí)性監(jiān)控,監(jiān)控中心人員可利用PYQT 提供的良好用戶接口操作軟件,來觀察、統(tǒng)計(jì)未按規(guī)定佩戴好頭盔的二輪車駕駛員。
本文采用HyperLPR 車牌識(shí)別開源項(xiàng)目來完成車牌識(shí)別任務(wù),利用cascade 進(jìn)行車牌定位,其次利用左右邊界回歸模型,預(yù)測出車牌的左右邊框,進(jìn)一步裁剪,進(jìn)行精定位,最后利用CRNN 進(jìn)行車牌字符識(shí)別。
首先是車牌定位提取,本文采用的是基于灰度的還有邊緣檢測的車牌定位:由于車牌字符的灰度值與車牌底色的灰度值相差較大,字符與底色的交界處就有灰度突變,灰度突變處就會(huì)產(chǎn)生邊緣,這是車牌定位技術(shù)中非常重要的特征。也可以通過檢測車牌的外邊框來定位車牌,由于外邊框的上下左右四邊都為直線,而且有明顯的邊緣特征,所以首先利用邊緣檢測算法提取車牌邊框位置,然后,用Hough 變換算法檢測直線,確認(rèn)外邊框的上下左右四條邊位置就確定了車牌在圖像中的位置。
其次是提取特征的CRNN 網(wǎng)絡(luò),可以是任意一款深度網(wǎng)絡(luò),VGG、resnet、googleNet、mobileNet 等網(wǎng)絡(luò)均可,本文中用的是VGG16,需要注意的是無論選取哪種網(wǎng)絡(luò)要保證最終輸出的特征是二維的即(N,H,W,C)中H 必須為1,否則是不能用作LSTM的輸入的。
COCO 數(shù)據(jù)集是一個(gè)大型的、豐富的物體檢測,分割和字幕數(shù)據(jù)集。這個(gè)數(shù)據(jù)集以scene understanding 為目標(biāo),主要從復(fù)雜的日常場景中截取,圖像中的目標(biāo)通過精確的segmentation 進(jìn)行位置的標(biāo)定。該數(shù)據(jù)集主要解決3 個(gè)問題:目標(biāo)檢測、目標(biāo)之間的上下文關(guān)系、目標(biāo)的2 維上的精確定位。COCO 數(shù)據(jù)集有91類,雖然比ImageNet 和SUN 類別少,但是每一類的圖像多,這有利于獲得更多的每類中位于某種特定場景的能力,對比PASCAL VOC,其有更多類和圖像。
利用COCO 數(shù)據(jù)集訓(xùn)練的YOLOv4 網(wǎng)絡(luò),用以實(shí)現(xiàn)檢測街道上的行人、摩托車、汽車這些目標(biāo),可以比較方便地將這些不同類別的物體區(qū)分開來。給系統(tǒng)反饋信息,讓系統(tǒng)利用這些信息來分別為不同的物體指定不同的識(shí)別違規(guī)算法,將不同類的違規(guī)物體分類,然后在進(jìn)行數(shù)據(jù)傳送,用以統(tǒng)計(jì)和分析。
Pyqt 界面的基于計(jì)算機(jī)視覺的行人及非機(jī)動(dòng)車規(guī)范系統(tǒng)實(shí)現(xiàn)了系統(tǒng)總體功能設(shè)計(jì)與各個(gè)模塊的程序設(shè)計(jì),通過qt 界面來將整套系統(tǒng)進(jìn)行可視化,用戶可以通過點(diǎn)擊相關(guān)按鈕進(jìn)行相應(yīng)的操作。打開系統(tǒng)后,系統(tǒng)會(huì)自動(dòng)檢測人行道位置,進(jìn)行人流量、車流量和非機(jī)動(dòng)車流量檢測,會(huì)對闖紅燈人員、闖紅燈車輛、未帶頭盔人員進(jìn)行檢測并記錄。其實(shí)實(shí)現(xiàn)的功能板塊有四個(gè)方面:目標(biāo)檢測(行人、車輛、非機(jī)動(dòng)車)、車牌識(shí)別(HyperLPR)、頭盔識(shí)別以及闖紅燈檢測記錄。
本項(xiàng)目采用深度學(xué)習(xí)的方法,結(jié)合YOLOv4 卷積神經(jīng)網(wǎng)絡(luò)特點(diǎn),模擬神經(jīng)元的學(xué)習(xí)功能,對6251 不同的含頭盔人物圖片和對應(yīng)的標(biāo)簽文件進(jìn)行訓(xùn)練,(其中將總數(shù)據(jù)集的80%劃分為訓(xùn)練數(shù)據(jù)集,20%劃分為測試集)實(shí)現(xiàn)檢測非機(jī)動(dòng)車輛駕駛員是否戴頭盔的功能,即實(shí)現(xiàn)頭盔識(shí)別,并保證其較高的精確度。本項(xiàng)目使用Retinaface 人臉檢測技術(shù)得到人臉信息,在確定各個(gè)人臉位置的基礎(chǔ)上,結(jié)合YOLOv4 卷積神經(jīng)網(wǎng)絡(luò)特點(diǎn),模擬神經(jīng)元的學(xué)習(xí)功能,建立相應(yīng)神經(jīng)網(wǎng)絡(luò)模型,在搭建的神經(jīng)網(wǎng)絡(luò)各層次中調(diào)整偏置項(xiàng),進(jìn)而訓(xùn)練得到有效的神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)非機(jī)動(dòng)車駕駛?cè)耸欠翊黝^盔檢測功能,機(jī)動(dòng)車是否闖紅燈監(jiān)測功能、行人是否闖紅燈監(jiān)測功能,并保證其較高的精確度。通過有效的懲罰制度對非機(jī)動(dòng)車的監(jiān)管,可以有效減少非機(jī)動(dòng)車的交通事故,使人們養(yǎng)成良好的交通習(xí)慣,規(guī)范駕駛員的交通行為。