李少博 董世浩 夏宇航 張一博 張佳玉 張 哲 符竹子 胡文成
(1.長(zhǎng)安大學(xué) 信息工程學(xué)院,陜西 西安 710064 2、長(zhǎng)安大學(xué) 學(xué)生工作部,陜西 西安 711064)
隨著經(jīng)濟(jì)與社會(huì)的發(fā)展,各大城市車輛保有量不斷提高,越來越多的人選擇乘車出行,但隨之而來的交通問題也越來越嚴(yán)重。根據(jù)統(tǒng)計(jì)的數(shù)據(jù)可以看出:近些年來,交通事故數(shù)量不斷增加。其中,非機(jī)動(dòng)車事故發(fā)生率的增長(zhǎng)尤為明顯?!督煌ò踩ā返谖迨粭l規(guī):摩托車行駛時(shí),駕駛?cè)思俺俗藛T應(yīng)當(dāng)佩戴符合國(guó)家規(guī)定標(biāo)準(zhǔn)的安全頭盔,并系扣牢固。駕駛?cè)瞬坏迷诔俗藛T未按照規(guī)定使用安全頭盔的情況下駕駛摩托車。騎電動(dòng)自行車出行,一旦出事故,就是“肉包鐵”。事故發(fā)生時(shí),駕駛?cè)嘶蛘叱俗藥缀鯖]有時(shí)間、也沒有辦法保護(hù)頭部免受碰撞。
對(duì)于非機(jī)動(dòng)車安全出行,戴頭盔,是最簡(jiǎn)單而又最有效的保命措施。據(jù)相關(guān)數(shù)據(jù)顯示,在已發(fā)生的非機(jī)動(dòng)車的道路交通事故數(shù)據(jù)中,我們可以知道正確佩戴安全頭盔的良好習(xí)慣能夠?qū)⒎菣C(jī)動(dòng)車的道路交通事故死亡風(fēng)險(xiǎn)降低60%至70%,佩戴頭盔可使電動(dòng)車事故人員頭部受傷、顱腦損傷幾率分別減少63%和88%。因此駕乘摩托車、電動(dòng)車出行須佩戴安全頭盔。
頭盔檢測(cè)的基本原理屬于目標(biāo)檢測(cè)的范疇,對(duì)于圖像來說,我們先以某種方式在輸入圖片上生成一系列可能包含物體的區(qū)域,這些區(qū)域稱為候選區(qū)域,在一張圖上可以生成很多個(gè)候選區(qū)域。然后對(duì)每個(gè)候選區(qū)域,可以把它單獨(dú)當(dāng)成一副圖像來看待,使用圖像分類模型對(duì)它進(jìn)行分類,看它屬于哪個(gè)類別或者背景(即不包含任何物體的類別)。但如果沒有一個(gè)合適的策略進(jìn)行候選區(qū)域的劃分,那么產(chǎn)生的計(jì)算量是十分巨大的。于是,在頭盔識(shí)別文中,對(duì)于輸入的圖像要能夠劃分出合適的候選區(qū)域即錨框,然后運(yùn)用CNN 方法提取特征進(jìn)行分類識(shí)別,這屬于兩階段算法。本文進(jìn)行頭盔檢測(cè)的模型為YOLOv4 使用的是單階段檢測(cè)算法[4],只使用一個(gè)網(wǎng)絡(luò)同時(shí)產(chǎn)生候選區(qū)域并預(yù)測(cè)出物體的類別和位置。
頭盔檢測(cè)模型算法的基本思想可以分成兩部分:
3.1 按一定相關(guān)的算法以及操作先在若干張圖片上產(chǎn)生一系列的候選區(qū)域,然后根據(jù)這些候選區(qū)域與所選取圖片上物體真實(shí)框之間的位置關(guān)系對(duì)圖片上的候選區(qū)域進(jìn)行標(biāo)注。當(dāng)檢測(cè)到真實(shí)框足夠接近那些圖片上的候選區(qū)域會(huì)被標(biāo)注為正樣本,同時(shí)將所檢測(cè)到的真實(shí)框位置作為正樣本的目標(biāo)位置。當(dāng)檢測(cè)到偏離真實(shí)框較大的候選區(qū)域則會(huì)被標(biāo)注為負(fù)樣本,負(fù)樣本則不需要進(jìn)一步操作。
3.2 使用YOLOv4 模型對(duì)圖片特征進(jìn)行提取并對(duì)所測(cè)圖片候選區(qū)域的位置和類別進(jìn)行預(yù)測(cè)。將每個(gè)預(yù)測(cè)框看成是一個(gè)樣本,然后再根據(jù)所測(cè)真實(shí)框相對(duì)預(yù)測(cè)框的位置和類別進(jìn)行了標(biāo)注從而獲得標(biāo)簽值,然后再將網(wǎng)絡(luò)預(yù)測(cè)值和標(biāo)簽值進(jìn)行比較,就可以建立起損失函數(shù)。
其關(guān)鍵核心部分包含兩個(gè)方面:
(1)生成錨框,標(biāo)注預(yù)測(cè)框
第一步生成錨框,將原始圖片劃分成m×n 個(gè)區(qū)域,即將每32x32 個(gè)像素區(qū)域歸為一個(gè)小塊,YOLO 以每個(gè)小塊為中心生成一系列錨框。第二部標(biāo)注預(yù)測(cè)框tx,ty,tw,th為調(diào)整錨框的參數(shù),bx,by,bw,bh為真實(shí)框的位置,運(yùn)用以下四個(gè)公式求解出(t*x,t*y,t*w,t*h)。
則(t*x,t*y,t*w,t*h)就為真實(shí)框的位置參數(shù)。
(2)確定網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv4 的骨干網(wǎng)絡(luò)是Darknet53,通過卷積神經(jīng)網(wǎng)絡(luò)逐層提取圖像特征,通過最終的輸出特征圖來表征物體位置和類別等信息。該網(wǎng)絡(luò)結(jié)構(gòu)采用非對(duì)稱卷積,一方面節(jié)約了大量參數(shù)的運(yùn)算時(shí)間,減輕了過擬合,另一方面增加了一層非線性擴(kuò)展模型的表達(dá)能力。這種非對(duì)稱的卷積結(jié)構(gòu)拆分,其結(jié)果與對(duì)稱卷積結(jié)構(gòu)拆分相比,可增加特征的多樣性。
如圖1 所示,除去CSPDarknet53 和Yolo Head 的結(jié)構(gòu)外,都是基于特征金字塔的結(jié)構(gòu)。SPP 結(jié)構(gòu)是在對(duì)CSPdarknet53 的最后的特征層卷積里進(jìn)行三次DarknetConv2D_BN_Leaky 卷積后,再分別利用四個(gè)不同尺度的池化層進(jìn)行處理,最大池化層的池化核大小分別為13*13、9*9、5*5、1*1,它能夠極大地分離出最顯著的上下文特征。PANet 是2018 的一種實(shí)例分割算法,其具體結(jié)構(gòu)由反復(fù)提升特征的意思。
圖1 訓(xùn)練主干網(wǎng)絡(luò)
(3)訓(xùn)練配置
神經(jīng)網(wǎng)絡(luò)訓(xùn)練指對(duì)人工神經(jīng)網(wǎng)絡(luò)訓(xùn)練。向神經(jīng)網(wǎng)絡(luò)訓(xùn)練輸入足夠多的樣本數(shù),通過一定算法對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行一定的調(diào)整(主要是調(diào)節(jié)權(quán)值),使的輸出結(jié)果與預(yù)期值相符。其中調(diào)解權(quán)值的標(biāo)準(zhǔn)是通過損失(loss)來實(shí)現(xiàn)的。在本文中,模型訓(xùn)練過程要通過不斷迭代尋找最優(yōu)參數(shù)a,使得所測(cè)的實(shí)際值與預(yù)測(cè)值更為接近。由于本文是對(duì)摩托車駕駛員頭盔進(jìn)行目標(biāo)檢測(cè),因此優(yōu)化器的選擇十分重要,IoU 是比值的概念,對(duì)目標(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ù)測(cè)框長(zhǎng)寬比擬合目標(biāo)框的長(zhǎng)寬比考慮進(jìn)去。
本文用到的數(shù)據(jù)樣本為6251 不同的含頭盔人物圖片和對(duì)應(yīng)的標(biāo)簽文件。該數(shù)據(jù)樣本主要通過網(wǎng)絡(luò)搜索等途徑獲得。將總數(shù)據(jù)集的80%劃分為訓(xùn)練數(shù)據(jù)集,20%劃分為測(cè)試集,分別訓(xùn)練和檢驗(yàn)?zāi)P?。設(shè)置頭盔檢測(cè)模型的訓(xùn)練步數(shù)為4000,學(xué)習(xí)率為0.015。在整體的訓(xùn)練過程中,每次都會(huì)隨機(jī)選取200 張圖片進(jìn)行訓(xùn)練,并進(jìn)行交叉驗(yàn)證,每次在迭代100 步時(shí)在驗(yàn)證集上獲得正確率,最后通過測(cè)試分類的概率對(duì)頭盔檢測(cè)模型訓(xùn)練情況進(jìn)行評(píng)價(jià)。測(cè)試結(jié)果如圖2 所示。
圖2 測(cè)試結(jié)果折線圖
可見訓(xùn)練結(jié)果在測(cè)試集上的運(yùn)行結(jié)果,每張圖片都有50%以上的置信率。本文的卷積神經(jīng)網(wǎng)絡(luò)模型中,通過行人規(guī)范檢測(cè)系統(tǒng)傳入回來的街口攝像頭拍下的圖像,輸入已經(jīng)搭建和訓(xùn)練完成的模型中,經(jīng)過神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程擬合,輸出此圖像的分類結(jié)果,分類于識(shí)別出人未帶頭盔、人且戴頭盔兩大類型中。
本文采用深度學(xué)習(xí)的方法,結(jié)合YOLOv4 卷積神經(jīng)網(wǎng)絡(luò)特點(diǎn),模擬神經(jīng)元的學(xué)習(xí)功能,對(duì)6251 不同的含頭盔人物圖片和對(duì)應(yīng)的標(biāo)簽文件進(jìn)行訓(xùn)練,(其中將總數(shù)據(jù)集的80%劃分為訓(xùn)練數(shù)據(jù)集,20%劃分為測(cè)試集。)實(shí)現(xiàn)檢測(cè)非機(jī)動(dòng)車駕駛?cè)耸欠翊黝^盔的功能,即實(shí)現(xiàn)頭盔識(shí)別,并保證其較高的精確度。在確定非機(jī)動(dòng)車位置基礎(chǔ)上,結(jié)合YOLOv4 模型的特點(diǎn),已經(jīng)模擬神經(jīng)元的學(xué)習(xí)與訓(xùn)練功能,建立相應(yīng)頭盔檢測(cè)神經(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è)耸欠翊黝^盔檢測(cè)功能,機(jī)動(dòng)車是否闖紅燈監(jiān)測(cè)功能、行人是否闖紅燈監(jiān)測(cè)功能,并保證其較高的精確度。通過有效的懲罰制度對(duì)非機(jī)動(dòng)車和電動(dòng)自行車的監(jiān)管,可以有效減少非機(jī)動(dòng)車和電動(dòng)自行車的交通事故,使人們養(yǎng)成良好的交通習(xí)慣,規(guī)范駕駛員的交通行為