劉 琛,王江濤
(淮北師范大學(xué) 物理與電子信息學(xué)院,安徽 淮北 235000)
持續(xù)的交通機(jī)動(dòng)化導(dǎo)致全球道路相關(guān)傷亡人數(shù)持續(xù)增加。為了應(yīng)對(duì)這種局面,各國(guó)政府正把重點(diǎn)放在安全和安全方面在交通中遵守行為。然而,對(duì)于摩托車的安全駕駛規(guī)范,安全的全面的頭盔使用的標(biāo)準(zhǔn)十分重要。我國(guó)城市道路阡陌交通,在許多城市若路途較近,人們多會(huì)選擇摩托車作為代步工具上下班以及接送孩子上下學(xué)。同時(shí),如今的外賣產(chǎn)業(yè)新起,外賣員多是駕駛摩托車進(jìn)行配送。在這些情況下摩托車駕駛?cè)伺宕黝^盔對(duì)預(yù)防傷害,保護(hù)他人和自身安全至關(guān)重要。因此,將人工智能應(yīng)用于道路安全中來檢測(cè)摩托車手是否佩戴頭盔有十分重要的意義。
與傳統(tǒng)的機(jī)器學(xué)習(xí)和圖像處理方法相比,基于深度學(xué)習(xí)的物體檢測(cè)網(wǎng)絡(luò)通常具有更加精準(zhǔn)的識(shí)別率和更快的識(shí)別速度,近年來,目標(biāo)檢測(cè)方向的深度學(xué)習(xí)算法可以大體上劃分為兩階段(two-stage)算法和單階段(one-stage)算法。Faster R-CNN[1]是兩階段算法的代表網(wǎng)絡(luò)。此網(wǎng)絡(luò)先通過一些預(yù)處理方法在預(yù)測(cè)圖片上生成若干目標(biāo)候選框,再使用一些常用的卷積神經(jīng)網(wǎng)絡(luò)如VGG-16[2]訓(xùn)練參數(shù)進(jìn)行樣本的分類。一般使用兩階段算法的網(wǎng)絡(luò)進(jìn)行訓(xùn)練準(zhǔn)確率更高,但計(jì)算成本較大,所以影響了網(wǎng)絡(luò)的訓(xùn)練速度。后來推出的如YOLO[3],SSD[4]等單階算法目標(biāo)檢測(cè)方法是直接將目標(biāo)邊框定位的問題轉(zhuǎn)化為回歸問題處理能進(jìn)行端到端檢測(cè),沒有候選框,速度快,實(shí)時(shí)性好,但是犧牲了一定的準(zhǔn)確率。因此成為當(dāng)下目標(biāo)檢測(cè)的主流方法。RFB(Receptive Field Block)Net[5]就是一種以SSD為基礎(chǔ)網(wǎng)絡(luò)進(jìn)行改進(jìn)的目標(biāo)檢測(cè)模型。該模型在SSD的基礎(chǔ)網(wǎng)絡(luò)構(gòu)架中引入RFB模塊,這一模塊模擬了人類視覺的感受野模型,增強(qiáng)了網(wǎng)絡(luò)對(duì)特征的提取能力。
本文以RFB Net模型為基礎(chǔ),用VGG-16為基礎(chǔ)網(wǎng)絡(luò)的RFB網(wǎng)絡(luò)檢測(cè)視頻中的摩托車手佩戴頭盔情況,在RFB Net中使用了余弦衰減學(xué)習(xí)率來優(yōu)化網(wǎng)絡(luò)的學(xué)習(xí)能力。通過對(duì)自行拍攝收集數(shù)據(jù)集進(jìn)行測(cè)試,可以發(fā)現(xiàn)本文RFB Net對(duì)摩托車手佩戴頭盔的檢測(cè)效果在保證速度的前提下,準(zhǔn)確率得到了有效的增高[6]。
SSD網(wǎng)絡(luò)使用了尺寸大小逐層遞減的特征提取層,可以產(chǎn)生不同尺度下檢測(cè)的預(yù)測(cè)值結(jié)果,使用這些尺度下的檢測(cè)結(jié)果來預(yù)測(cè)目標(biāo)的類別以及物體與默認(rèn)邊界框的偏移量,并且通過NMS的方法來產(chǎn)生最終的檢測(cè)框。SSD網(wǎng)絡(luò)會(huì)將輸入的圖像歸一化為300*300,基礎(chǔ)的訓(xùn)練網(wǎng)絡(luò)一般使用VGG-16 Net,基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)有六個(gè)特征層依次為Conv4_3、Fc7、Conv6_2、Conv7_2、 Conv8_2、Conv9_2[7].網(wǎng)絡(luò)在訓(xùn)練過程中會(huì)在每一特征層上檢測(cè)特定尺寸的預(yù)測(cè)目標(biāo)。如圖所示為SSD網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖1 SSD網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 SSD network structur
SSD中的默認(rèn)框類似于兩階段網(wǎng)絡(luò)中的錨點(diǎn)機(jī)制,而且在網(wǎng)絡(luò)的不同層中都存在著相應(yīng)尺度的默認(rèn)框。對(duì)于SSD中的m個(gè)特征圖的默認(rèn)框尺寸gi如公式(1)所示:
(1)
(2)
通過上述機(jī)制,對(duì)于每個(gè)特征單元就 都會(huì)產(chǎn)生不同形狀和尺寸的默認(rèn)框[8]。
RFB Net的基本網(wǎng)絡(luò)框架是SSD網(wǎng)絡(luò),并在網(wǎng)絡(luò)中加入了RFB模塊,RFB Net的結(jié)構(gòu)圖如圖2所示。
圖2 RFB Net結(jié)構(gòu)圖Fig.2 RFB net structure
群體感受野是人類視覺研究學(xué)中的一種概念,有研究發(fā)現(xiàn)它的范圍大小與離心率在視網(wǎng)膜的定位圖中呈正比關(guān)系。這中機(jī)制突出了在視網(wǎng)膜中心區(qū)域目標(biāo)的重要性。RFB模塊模擬了人類視網(wǎng)膜的這一能力,加強(qiáng)了輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)深層特征的能力。
RFB Net結(jié)構(gòu)繼承了原始的SSD中尺度遞減的卷積層。并用新設(shè)計(jì)的RFB模塊將SSD額外增加層中的兩層替換。RFB模塊主要由多分支卷積層和空洞卷積層構(gòu)成[9]。
(1)多分支卷積層
RFB模塊采用了多分支的結(jié)構(gòu),在每個(gè)分支中分別采用不同大小的卷積核卷積。并通過瓶頸(bottle- neck)結(jié)構(gòu)減少了訓(xùn)練參數(shù),使網(wǎng)絡(luò)更輕量化。模塊中還運(yùn)用了Res-Net[10]中的直連結(jié)構(gòu),解決了網(wǎng)絡(luò)層數(shù)過深時(shí)可能導(dǎo)致的梯度發(fā)散問題。而RFB-S模塊的分支更多而且卷積核尺寸更小,類似于視網(wǎng)膜中較小的感受野,使模塊更接近人類的淺層視網(wǎng)膜模型。兩個(gè)網(wǎng)絡(luò)模塊的結(jié)構(gòu)如圖3中(a)和(b)所示。
圖3 RFB和RFB-S結(jié)構(gòu)圖Fig.3 structure of RFB and rfb-s
(2)空洞卷積
空洞卷積本質(zhì)上是在普通卷積運(yùn)算上的一種推廣。在空洞卷積中有一個(gè)參數(shù),可通過此參數(shù)來擴(kuò)張卷積核并用0填充卷積核中多出的部分[11]。這個(gè)參數(shù)代表卷積核的膨脹系數(shù)。空洞卷積實(shí)際卷積核大小如公式(3)所示:
N=n+(n-1)(r-1)
(3)
式中n為原始的卷積核大小,r為空洞卷積參數(shù)及膨脹系數(shù)。空洞卷積的運(yùn)算方法是通過卷積核與設(shè)定間隔的像素點(diǎn)做相應(yīng)的乘法運(yùn)算。這種卷積方法在沒有增加過多復(fù)雜設(shè)計(jì)的情況下提高了感受野的范圍,RFB模塊正是通過空洞卷積層來模擬實(shí)現(xiàn)了人類視覺皮質(zhì)中離心率的效果。
在卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,學(xué)習(xí)率的設(shè)定是一個(gè)十分重要的因素[12]。原始的RFB網(wǎng)絡(luò)使用的是階段下降的學(xué)習(xí)率,訓(xùn)練效果較為一般,本文通過改進(jìn)使用了余弦衰減的學(xué)習(xí)率進(jìn)行訓(xùn)練,使得學(xué)習(xí)率下降更加平緩和均勻,取得了不錯(cuò)的訓(xùn)練效果。余弦衰減就是通過余弦的相關(guān)形式對(duì)學(xué)習(xí)率進(jìn)行衰減,此種學(xué)習(xí)率的衰減圖和余弦函數(shù)相似。學(xué)習(xí)率的更新機(jī)制如公式(4)所示:
(4)
式中l(wèi)_rate是初始設(shè)定的學(xué)習(xí)率的。g_step表示衰減計(jì)算過程中的全局步數(shù)。d_steps為衰減步數(shù)。l_min為設(shè)定的最小學(xué)習(xí)率。如圖4所示,圖中曲線便是一條標(biāo)準(zhǔn)的余弦衰減曲線,學(xué)習(xí)率從初始值光滑下降到最低的學(xué)習(xí)率后維持不變。余弦衰減的學(xué)習(xí)率的下降十分平緩,不會(huì)產(chǎn)生較大的波動(dòng),對(duì)于一些網(wǎng)絡(luò)的訓(xùn)練有意想不到的提升。
圖4 余弦衰減曲線Fig.4 Cosine attenuation curve
實(shí)驗(yàn)使用Ubuntu16.04操作系統(tǒng),GPU為NVIDIA GTX 1070,運(yùn)行內(nèi)存為8G,選擇Pytorch1.1.0為深度學(xué)習(xí)框架。實(shí)驗(yàn)中使用的數(shù)據(jù)集是自行拍攝收集的,內(nèi)容為安徽省淮北市市區(qū)道路上的一些行駛的摩托車輛,車輛為不同類型的電瓶車和摩托車,拍攝的圖像像素大小為1 280*720,輸入網(wǎng)絡(luò)訓(xùn)練時(shí)統(tǒng)一歸一化為300*300.實(shí)驗(yàn)中選取的樣本包括了較遠(yuǎn)車輛、部分遮擋和車輛行駛較快圖像模糊以及各角度的情況。并收集了多云以及小雨下的天氣環(huán)境,為本研究中的算法訓(xùn)練、驗(yàn)證和測(cè)試奠定了基礎(chǔ)[13]。部分角度下收集的圖像如圖5所示,圖(a)為本側(cè)車道行進(jìn)車輛,(b)為對(duì)側(cè)車道行駛車輛,(c)為本側(cè)車道使出車輛。
圖5 數(shù)據(jù)集實(shí)例Fig.5 Data set example
在訓(xùn)練網(wǎng)絡(luò)的過程中,對(duì)訓(xùn)練集進(jìn)行了圖像旋轉(zhuǎn)變換和增加噪聲等數(shù)據(jù)增廣的預(yù)處理方法,來解決訓(xùn)練集的樣本數(shù)據(jù)不足和測(cè)試時(shí)可能產(chǎn)生的過擬合情況,如圖6所示。
圖6 數(shù)據(jù)集增廣Fig.6 Data set expansion
本文任務(wù)實(shí)為分類任務(wù),本次實(shí)驗(yàn)分別標(biāo)注了摩托車、佩戴頭盔的摩托車手頭部以及未佩戴頭盔的車手頭部。通過對(duì)這三種目標(biāo)的預(yù)測(cè)可以大大降低路邊停放車輛以及行人對(duì)訓(xùn)練的干擾。提高了網(wǎng)絡(luò)的實(shí)用性。使用 VGG16 作為基礎(chǔ)網(wǎng)絡(luò),并載入SSD網(wǎng)絡(luò)的預(yù)訓(xùn)練參數(shù)進(jìn)行訓(xùn)練。訓(xùn)練完成后分別使用原始的RFB Net和本文改進(jìn)后的RFB Net的訓(xùn)練參數(shù)進(jìn)行驗(yàn)證和測(cè)試。實(shí)驗(yàn)中的訓(xùn)練圖片數(shù)量為500張,測(cè)試圖片為50張,訓(xùn)練數(shù)據(jù)不參與測(cè)試。圖7是修改學(xué)習(xí)率后訓(xùn)練迭代8 700次的訓(xùn)練損失曲線。
圖7 訓(xùn)練損失曲線Fig.7 Training loss curve
訓(xùn)練完畢后對(duì)網(wǎng)絡(luò)進(jìn)行測(cè)試得出三種目標(biāo)的AP值和MAP值并與原始的SSD Net和RFB Net的上述指標(biāo)進(jìn)行記錄對(duì)比,并將修改后的網(wǎng)絡(luò)稱為COS-RFB Net,其結(jié)果如表1所示。通過表1可以觀察到對(duì)檢測(cè)摩托車手是否佩戴了盔的AP值都有明顯提高,對(duì)摩托車的檢測(cè)也有輕微提高。整體而言,本文改進(jìn)的RFB模型相比原始RFB網(wǎng)絡(luò)模型在MAP上有4%~5%的提升。
表1 不同識(shí)別算法性能對(duì)比
為了更清晰的展示改進(jìn)后的訓(xùn)練效果,圖8給出了部分?jǐn)?shù)據(jù)集在改進(jìn)前后的測(cè)試結(jié)果對(duì)比。檢測(cè)目標(biāo)過程中摩托車使用藍(lán)色框進(jìn)行標(biāo)注、佩戴頭盔的摩托車手頭部使用綠色框進(jìn)行標(biāo)注以及未佩戴頭盔的車手頭部使用紅色框進(jìn)行標(biāo)注。通過圖8對(duì)比可看出,在原始的RFB-Net訓(xùn)練結(jié)果下測(cè)試(a)左側(cè)較遠(yuǎn)處的摩托車手的頭、(b)中的未佩戴頭盔的車手和(c)中較遠(yuǎn)目標(biāo)的車輛都有一定程度的漏檢。通過改進(jìn)后的RFB-Net結(jié)果都成功的檢測(cè)出了目標(biāo)物體。其中圖(c)目標(biāo)較小,在圖片右上方給出放大目標(biāo)。可見,使用余弦衰減學(xué)習(xí)率對(duì)網(wǎng)絡(luò)進(jìn)行改進(jìn),取得了比較明顯的效果,有效減少了漏檢的情況,體現(xiàn)出了改進(jìn)網(wǎng)絡(luò)的優(yōu)越性。
圖8 兩種網(wǎng)絡(luò)的測(cè)試結(jié)果對(duì)比Fig.8 Comparison of test results of two networks
針對(duì)道路摩托車手佩戴頭盔規(guī)范行駛問題,為了通過深度學(xué)習(xí)來輔助道路安全。本文采用RFB檢測(cè)算法實(shí)現(xiàn)了摩托車手是否佩戴頭盔的檢測(cè),并通過使用余弦衰減的學(xué)習(xí)率進(jìn)行改進(jìn),取得了更高的檢測(cè)準(zhǔn)確率,基本滿足了對(duì)道路摩托車手佩戴頭盔情況的檢測(cè)要求。