丁家益,周躍進(jìn)
(安徽理工大學(xué) 數(shù)學(xué)與大數(shù)據(jù)學(xué)院,安徽 淮南 232001)
隨著汽車的普及程度越來越高,汽車駕駛的安全性越來越受到人們的關(guān)注,而汽車安全帶能在車輛事故中有效降低駕乘人員的受傷程度.國家道路交通安全法明確規(guī)定了駕駛?cè)?、乘坐人員在機(jī)動(dòng)車行駛時(shí)需要佩戴安全帶.現(xiàn)階段人臉識(shí)別技術(shù)的發(fā)展已經(jīng)相當(dāng)成熟,但除人臉識(shí)別外的目標(biāo)檢測(cè)的精準(zhǔn)度和速度仍有很大的提升空間[1].
近年來,隨著深度學(xué)習(xí)特別是卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,目標(biāo)檢測(cè)技術(shù)已經(jīng)取得了巨大的進(jìn)步[2].目前相對(duì)成熟的卷積神經(jīng)網(wǎng)絡(luò)有很多,包括Krizhevsky等(2012)提出AlexNet[3],首次提出了激活函數(shù)ReLu并引入了隨機(jī)失活(Dropout)的概念.Simonyan等(2015)提出VGGNet[4],將卷積層中尺寸較大的卷積核替換為多個(gè)小尺寸的卷積核以此來減少網(wǎng)絡(luò)的計(jì)算量和提升網(wǎng)絡(luò)的非線性表達(dá)能力.Szegedy等(2016)提出InceptionNetV3[5],通過卷積核分解和正則化提高了網(wǎng)絡(luò)的計(jì)算效率.Kaiming等(2016)提出ResNet[6],使用殘差網(wǎng)絡(luò)結(jié)構(gòu)大幅提高了網(wǎng)絡(luò)的擬合能力.Huang等(2017)提出DenseNet[7],在網(wǎng)絡(luò)前饋過程中,將每一個(gè)網(wǎng)絡(luò)層都與其他網(wǎng)絡(luò)層連接起來以達(dá)到對(duì)特征的重復(fù)使用.在實(shí)際應(yīng)用中,上述卷積神經(jīng)網(wǎng)絡(luò)在準(zhǔn)確率、訓(xùn)練時(shí)間、訓(xùn)練次數(shù)、功耗、內(nèi)存占用率等方面都取得了優(yōu)異的成績(jī)[8].
卷積神經(jīng)網(wǎng)絡(luò)可以有效地進(jìn)行數(shù)據(jù)處理和圖像的特征提取.[9]為了進(jìn)一步提升卷積神經(jīng)網(wǎng)絡(luò)在實(shí)現(xiàn)目標(biāo)檢測(cè)時(shí)的準(zhǔn)確率,本文提出了一種新穎的卷積神經(jīng)網(wǎng)絡(luò)RIVNet,并通過改進(jìn)AdamW優(yōu)化算法對(duì)網(wǎng)絡(luò)的參數(shù)進(jìn)行優(yōu)化和訓(xùn)練后得到RIVNet模型.為了探究RIVNet模型的性能,與AlexNet模型、孫麗萍[10]等提出的模型相比較.實(shí)驗(yàn)結(jié)果表明,RIVNet模型對(duì)駕駛?cè)?、乘坐人員佩戴安全帶情況的識(shí)別準(zhǔn)確率最高,可以有效地對(duì)車內(nèi)人員佩戴安全帶情況進(jìn)行實(shí)時(shí)監(jiān)測(cè).
(1)
卷積層輸出圖片的張量的計(jì)算公式為:
(2)
其中:O是輸出圖片的張量,I是輸入圖片的張量,Kc是卷積核的尺寸,P是填充數(shù),S是卷積核移動(dòng)的步長.
(3)
池化層輸出圖片的張量的計(jì)算公式為:
(4)
其中:O是輸出圖片的張量,I是輸入圖片的張量,Kp是池化核的尺寸,P是填充數(shù),S是池化步長.
在卷積神經(jīng)網(wǎng)絡(luò)RIVNet中,全局平均池化層通過全局平均池化操作把多維矩陣轉(zhuǎn)化為特征向量以代替全連接層.相比于全連接層,全局平均池化層可以大幅度減少參數(shù)量以防止網(wǎng)絡(luò)過擬合,使得特征圖與最終分類之間的轉(zhuǎn)換變得更加自然[11].
RIVNet使用了Sigmoid函數(shù)對(duì)駕駛?cè)?、乘坐人員佩戴安全帶情況進(jìn)行分類.本層有兩個(gè)神經(jīng)元,一個(gè)神經(jīng)元代表車內(nèi)人員佩戴了安全帶的情況,另一個(gè)神經(jīng)元代表車內(nèi)人員未佩戴安全帶的情況,通過比較這兩個(gè)神經(jīng)元的輸出概率大小,選擇輸出概率大的神經(jīng)元對(duì)應(yīng)的情況作為最優(yōu)結(jié)果.Sigmoid函數(shù)的計(jì)算公式為:
(5)
卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間很長,需要學(xué)習(xí)的參數(shù)巨大.如果網(wǎng)絡(luò)的參數(shù)過多,訓(xùn)練樣本相對(duì)較少,則網(wǎng)絡(luò)容易過擬合.隨機(jī)失活操作是在網(wǎng)絡(luò)訓(xùn)練過程中按照一定比例隨機(jī)忽略或屏蔽一些神經(jīng)元,可以有效地緩解網(wǎng)絡(luò)過擬合,起到正則化的作用.
RIVNet由4個(gè)卷積層(Conv)、2個(gè)最大池化層(MaxPooling)、1個(gè)平均池化層(AveragePooling)、1個(gè)全局平均池化層(GlobalAveragePooling)、2種網(wǎng)絡(luò)模塊(如圖1)和1個(gè)Sigmoid層組成.為了進(jìn)一步增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)處理圖像問題的能力和提升目標(biāo)檢測(cè)的準(zhǔn)確率.RIVNet在卷積層中將尺寸較大的卷積核替換為多個(gè)小尺寸的卷積核,利用不同大小的卷積核并行卷積后特征融合,嘗試在池化層前增加一個(gè)1×1的卷積層以減少池化操作造成的信息丟失,使用全局平均池化層代替全連接層以防止網(wǎng)絡(luò)過擬合,使用激活函數(shù)(ReLu)將非線性特性引入到網(wǎng)絡(luò)層中以強(qiáng)化網(wǎng)絡(luò)層的學(xué)習(xí)能力,并對(duì)網(wǎng)絡(luò)層進(jìn)行了批量歸一化(BN)處理以提升網(wǎng)絡(luò)的訓(xùn)練速度.受到了ResNet的啟發(fā),網(wǎng)絡(luò)層之間使用殘差連接的網(wǎng)絡(luò)結(jié)構(gòu),使得網(wǎng)絡(luò)更容易優(yōu)化和收斂,也解決了網(wǎng)絡(luò)梯度消失的問題.網(wǎng)絡(luò)的結(jié)構(gòu)如圖2所示,每個(gè)網(wǎng)絡(luò)層的具體參數(shù)值如表1所示.
表1 網(wǎng)絡(luò)層的具體參數(shù)Table 1 Parameters of the network layer
圖1 本文使用的兩種網(wǎng)絡(luò)模塊Figure 1 The two network modules used in this article
圖2 RIVNet的結(jié)構(gòu)圖Figure 2 Structure diagram of the RIVNet
基于卷積神經(jīng)網(wǎng)絡(luò)RIVNet,提出了一種新的優(yōu)化算法AWM(AdamW with momentum)對(duì)網(wǎng)絡(luò)的參數(shù)進(jìn)行優(yōu)化和訓(xùn)練.優(yōu)化算法AWM是將經(jīng)典動(dòng)量的思想融入到AdamW優(yōu)化算法中,將AdamW算法的歷史迭代點(diǎn)處的搜索方向與當(dāng)前迭代點(diǎn)處的搜索方向加權(quán)求和作為下一個(gè)迭代點(diǎn)處的搜索方向,與AlexNet等網(wǎng)絡(luò)使用的隨機(jī)梯度下降優(yōu)化算法(SGD)相比,AWM算法的優(yōu)點(diǎn)在于其能夠自動(dòng)調(diào)整參數(shù)的學(xué)習(xí)率、大幅提升網(wǎng)絡(luò)的訓(xùn)練速度且具有很好的穩(wěn)定性.AWM算法的參數(shù)更新過程如下:
AWM算法當(dāng)前迭代步等于其上一個(gè)迭代步與算法AdamW當(dāng)前迭代步的加權(quán)之和,其中上一個(gè)迭代步所占的權(quán)重為l.
(6)
其中:R(k)是對(duì)在線預(yù)測(cè)值ft(θt)與歷史迭代值中的最小值ft(θ*)進(jìn)行作差求和,即:
(7)
記gt=θft(θ),gt,i為梯度向量gt的第i個(gè)元素,當(dāng)學(xué)習(xí)率αt以t-1/2的速率衰減時(shí),定理1成立.此外,指數(shù)移動(dòng)平均衰減系數(shù)滿足β1,t=β1λt-1,λ∈(0,1)且接近于1.
(8)
證明:由凸函數(shù)ft(x)可得
(9)
根據(jù)算法1給出的更新規(guī)則可得
(10)
(11)
由楊氏不等式ab≤a2/2+b2/2以及β1,t≤β1可得
(12)
于是,有
(13)
(14)
將引理1應(yīng)用到不等式(13),使得
(15)
(16)
最后一項(xiàng)由等比數(shù)列上界的性質(zhì)可得
(17)
因此,
(18)
(19)
再證明AWM算法收斂.
(20)
從而
(21)
(22)
綜上所述,將AWM算法在每一次迭代中生成的點(diǎn)與歷史迭代點(diǎn)中的最小值點(diǎn)進(jìn)行作差求和,得到的結(jié)果足夠小,表明AWM算法的收斂效果很好.
為了探究AWM優(yōu)化算法的性能,將其與SGD和AdamW優(yōu)化算法在AlexNet下基于Pascal Voc數(shù)據(jù)集進(jìn)行比較,結(jié)果如圖3所示.
圖3 AWM優(yōu)化算法與SGD、AdamW優(yōu)化算法的損失函數(shù)值的比較Figure 3 Comparison of loss function values of AWM optimization algorithm with SGD and AdamW optimization algorithm
由圖3可知,AWM優(yōu)化算法的損失函數(shù)值的收斂速度明顯快于SGD和AdamW優(yōu)化算法.其次,AWM優(yōu)化算法有效地降低了網(wǎng)絡(luò)在訓(xùn)練時(shí)出現(xiàn)的迭代震蕩次數(shù).在epoch=40時(shí),AWM優(yōu)化算法就已經(jīng)趨于穩(wěn)定,達(dá)到最小值點(diǎn).
本研究使用的圖像數(shù)據(jù)集來源于Kaggle官網(wǎng),圖像的類別及數(shù)量如表2所示.
表2 圖像的類別及數(shù)量Table 2 Category and quantity of images
本實(shí)驗(yàn)采用的顯卡為AMD RX 6900XT,顯存為16GB.在這項(xiàng)研究中,模型的訓(xùn)練是基于Python語言環(huán)境下的TensorFlow深度學(xué)習(xí)框架上進(jìn)行.
為了提高模型的識(shí)別準(zhǔn)確率和泛化能力,本研究通過數(shù)據(jù)增強(qiáng)的方法生成了更多的訓(xùn)練樣本,如圖4所示.
圖4 數(shù)據(jù)增強(qiáng)Figure 4 Data enhancement
本研究從兩類圖像數(shù)據(jù)集中各隨機(jī)選取80%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,其余20%的數(shù)據(jù)作為測(cè)試數(shù)據(jù)集.訓(xùn)練數(shù)據(jù)集用來習(xí)得一個(gè)模型,測(cè)試數(shù)據(jù)集用來測(cè)試模型的準(zhǔn)確性和可靠性.
本研究使用的損失函數(shù)是二元交叉熵?fù)p失函數(shù)(Binary Cross Entropy Loss),見式(23),
(23)
其中:yi是二元標(biāo)簽0或1,p(yi)是標(biāo)簽yi的概率,N是樣本的數(shù)量.
為了更好地評(píng)估基于AWM優(yōu)化算法進(jìn)行優(yōu)化和訓(xùn)練后的RIVNet模型的性能,使用了同樣的數(shù)據(jù)集與AlexNet模型、孫麗萍等提出的模型的識(shí)別準(zhǔn)確率和損失函數(shù)值進(jìn)行了比較,比較結(jié)果如圖5、6所示.表3展示了各模型經(jīng)過100次迭代后最終的識(shí)別準(zhǔn)確率和損失函數(shù)值.
表3 各模型最終的識(shí)別準(zhǔn)確率和損失函數(shù)值Table 3 Final recognition accuracy and loss function values of each model
圖5 各模型識(shí)別準(zhǔn)確率的比較Figure 5 Comparison of recognition accuracy of each model
從圖5可知,RIVNet模型的識(shí)別準(zhǔn)確率和穩(wěn)定性要明顯高于AlexNet模型和孫麗萍等提出的模型.孫麗萍等提出的模型的識(shí)別準(zhǔn)確率在epochs<50的時(shí)候出現(xiàn)了大幅動(dòng)震蕩.AlexNet模型在識(shí)別過程中雖然表現(xiàn)出了極高的穩(wěn)定性,但其識(shí)別準(zhǔn)確率明顯不足.結(jié)果表明RIVNet模型在識(shí)別準(zhǔn)確率和穩(wěn)定性方面具有良好的性能.
從圖6可知,RIVNet模型具有更低的損失函數(shù)值.在識(shí)別過程中,RIVNet模型的損失函數(shù)值也一直保持穩(wěn)定下降趨勢(shì),并且在epochs=60左右達(dá)到最小值.結(jié)果表明RIVNet模型具有良好的魯棒性.
圖6 各模型損失函數(shù)值的比較Figure 6 Comparison of the loss function values of each model
從表3可以得出,在Kaggle圖像數(shù)據(jù)集中,RIVNet模型的識(shí)別準(zhǔn)確率最高,且損失函數(shù)值最低.與AlexNet模型相比較,RIVNet模型的識(shí)別準(zhǔn)確率提高了1.56%,損失函數(shù)值降低了0.036 2.通過實(shí)驗(yàn)數(shù)據(jù),表明了RIVNet模型的高效性.
在實(shí)現(xiàn)汽車安全帶佩戴識(shí)別時(shí),需要借助攝像機(jī)拍攝照片,將獲取的圖片輸入到以RIVNet為主干特征提取網(wǎng)絡(luò)(backbone)的目標(biāo)檢測(cè)算法Faster R-CNN中,判斷駕駛員、乘坐人員是否佩戴了安全帶.
汽車安全帶佩戴識(shí)別的具體流程如圖7所示.
圖7 汽車安全帶佩戴識(shí)別的具體流程Figure 7 The specific process of vehicle seat belt wearing identification
步驟1:借助攝像機(jī)等設(shè)備對(duì)汽車中駕駛員、乘坐人員的圖片進(jìn)行采集;
步驟2:將采集的圖像輸入到backbone中得到相應(yīng)的特征圖;
步驟3:利用區(qū)域候選網(wǎng)絡(luò)(RPN)結(jié)構(gòu)生成候選框,并將生成的候選框投影到特征圖上獲得相應(yīng)的特征矩陣;
步驟4:將每個(gè)特征矩陣通過感興趣區(qū)域池化層(ROI pooling)縮放成7×7大小的特征圖,接著將特征圖展平并通過一系列全連接層得到預(yù)測(cè)結(jié)果[16].
為了進(jìn)一步提升卷積神經(jīng)網(wǎng)絡(luò)在實(shí)現(xiàn)目標(biāo)檢測(cè)時(shí)的準(zhǔn)確率,本文改進(jìn)了卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu),并通過AWM優(yōu)化算法對(duì)網(wǎng)絡(luò)的參數(shù)進(jìn)行優(yōu)化和訓(xùn)練后得到RIVNet模型.以RIVNet為特征提取網(wǎng)絡(luò),基于目標(biāo)檢測(cè)算法Faster R-CNN開發(fā)出了一款汽車安全帶佩戴識(shí)別系統(tǒng).實(shí)驗(yàn)結(jié)果表明,本文系統(tǒng)具有識(shí)別準(zhǔn)確率高、效率高、成本低等優(yōu)點(diǎn),可以有效地對(duì)駕駛?cè)?、乘坐人員佩戴安全帶的情況進(jìn)行實(shí)時(shí)監(jiān)測(cè),對(duì)加強(qiáng)我國現(xiàn)階段的道路安全有著一定的意義.
同時(shí),在深度學(xué)習(xí)中,利用合理的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)圖像數(shù)據(jù)進(jìn)行特征提取,并繼續(xù)改進(jìn)優(yōu)化算法對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化和訓(xùn)練,使得優(yōu)化和訓(xùn)練后的模型在進(jìn)行目標(biāo)檢測(cè)時(shí)更加高效,為今后研究指明了方向.