齊永康
(華南師范大學(xué) 計算機學(xué)院,廣州 510631)
隨著移動網(wǎng)絡(luò)和智能設(shè)備的不斷發(fā)展,越來越多的年輕人喜歡邊行走邊玩手機.這導(dǎo)致了他們的注意力分散,進而遇到路面障礙發(fā)生危險[1].
因此,我們設(shè)計了一個希望能在智能手機上應(yīng)用的基于深度學(xué)習(xí)方法的路面障礙實時檢測模型,用來及時提醒行人在行走時遇到的障礙,這樣可以有效減少邊走邊使用手機帶來的危險.其中智能手機能夠?qū)崟r識別路面障礙的本質(zhì)要求是在保證檢測路障圖像高精度值的前提下,檢測速度也要足夠快.對比傳統(tǒng)的移動端路障檢測方法,本文提出的基于深度學(xué)習(xí)的Mobile-YOLOv3 模型在提高了精度值的前提下,也能達到實時檢測的最低要求[2].
傳統(tǒng)的目標檢測方法和近年來使用深度學(xué)習(xí)來進行目標檢測的方法大相徑庭.傳統(tǒng)的目標檢測方法典型代表有AdaBoost和Cascaded 人臉檢測算法[3],HOG和SVM 行人檢測算法[4],DPM 檢測算法[5].傳統(tǒng)的目標檢測方法大致可分為3 個步驟,包括選定目標區(qū)域、特征提取和特征分類.傳統(tǒng)方法先將目標圖像區(qū)域像素遍歷一遍,然后使用人工設(shè)計好的特征提取器來分析這些特征區(qū)域提取特征,最后利用類別分類器對這些目標特征區(qū)域分類,已獲得預(yù)期的分類結(jié)果.傳統(tǒng)的目標檢測方法存在較多的局限性,例如像素窗口冗余,以及檢測結(jié)果的不穩(wěn)定性.隨著復(fù)雜神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的出現(xiàn),這些局限性得到了一定程度上的解決.因此,以深度學(xué)習(xí)為基礎(chǔ)的目標檢測技術(shù)逐漸代替了傳統(tǒng)的目標檢測方式.以深度學(xué)習(xí)為基礎(chǔ)的目標檢測網(wǎng)絡(luò)分為兩種,one-stage 網(wǎng)絡(luò)和two-stage 網(wǎng)絡(luò).Onestage 網(wǎng)絡(luò)以SSD[6],YOLO[7]系列算法為代表,twostage 網(wǎng)絡(luò)常見的有RCNN[8],Faster-RCNN[9],RFCN[10].Two-stage 類算法輸入圖像后首先會生成目標對象候選區(qū)域,然后會將生成的目標對象候選區(qū)域輸入到卷積神經(jīng)網(wǎng)絡(luò)進行分類和回歸.而one-stage 類算法輸入圖像后會直接利用卷積神經(jīng)網(wǎng)絡(luò)提取特征進行分類和回歸.兩種算法的流程不同導(dǎo)致的結(jié)果就是onestage 類網(wǎng)絡(luò)的檢測速度要比two-stage 類網(wǎng)絡(luò)快很多,而檢測的準確性要比two-stage 類網(wǎng)絡(luò)低.
One-stage 類網(wǎng)絡(luò)YOLOv3 提取特征的骨干網(wǎng)絡(luò)Darknet53 是為在VOC 等目標種類多的大型數(shù)據(jù)集上訓(xùn)練而設(shè)計的深層卷積神經(jīng)網(wǎng)絡(luò),而本文應(yīng)用的路面障礙檢測場景目標種類并沒有那么復(fù)雜,淺層特征提取網(wǎng)絡(luò)MobileNetv1 已經(jīng)足夠適用,使用YOLOv3 原始的骨干網(wǎng)絡(luò)Darknet53 訓(xùn)練反而增加了參數(shù)優(yōu)化空間的復(fù)雜度,降低了訓(xùn)練效果.所以在本文中,我們基于one-stage 網(wǎng)絡(luò)YOLOv3 網(wǎng)絡(luò)和MobileNetv1 網(wǎng)絡(luò)提出了一個精確率較高且具有一定實時性的輕量級道路障礙檢測模型:
1)拍攝制作了所需要的路面障礙數(shù)據(jù)集,因為路面障礙種類多樣化,且需要使用特定的手持角度拍攝,因此無法通過網(wǎng)絡(luò)爬蟲進行搜集,需要在現(xiàn)實生活中實地拍攝.數(shù)據(jù)集圖片由作者在廣州市各街道,公園等地拍攝,路面障礙數(shù)據(jù)集分類有井蓋,減速帶,樓梯臺階3 類.
2)將YOLOv3的骨干網(wǎng)絡(luò)Darknet53 替換為了MobileNetv1,提出了輕量級網(wǎng)絡(luò)Mobile-YOLOv3.
3)使用了4 個改進訓(xùn)練速度和提高訓(xùn)練精度的方法.首先是訓(xùn)練時的改進,通過對IOU 局限性的分析,利用回歸損失函數(shù)CIOU 更全面地學(xué)習(xí)了真實框與預(yù)測框之間的位置及形狀關(guān)系,提升了模型的訓(xùn)練深度,速度及檢測精度.之后使用類別損失函數(shù)Focal 替換了交叉熵損失函數(shù)使得訓(xùn)練更關(guān)注于難分類樣本,并在一定程度上解決了正負樣本不均衡的問題.最后,通過加入不包含目標路障的負樣本背景圖片進行訓(xùn)練,進一步提升了模型的精度.而對于檢測時的改進,利用Soft-NMS 算法替換NMS 算法,更加科學(xué)合理地處理冗余預(yù)測框,減少了對密集目標的漏測誤刪情況.
本文實地拍攝制作了一個路障數(shù)據(jù)集,將YOLOv3骨干網(wǎng)絡(luò)替換為MobileNetv1,設(shè)計和實現(xiàn)了一個道路障礙檢測模型Mobile-YOLOv3,并使用了4 個改進方法來提升模型的檢測性能.最終模型在路面障礙數(shù)據(jù)集上取得了98.84%的檢測精度,相比于YOLO3 在路面障礙數(shù)據(jù)集上所取得的91.98%的檢測精度,提升了約7%.而且模型規(guī)模較YOLOv3 訓(xùn)練出來的模型減小了約2.5 倍,使用CPU 進行檢測的速度提升了1.8 倍,使用GPU 進行檢測的速度提升了1.3 倍.
YOLO (you only look once),是Redmon 等于2016年提出的一種one-stage 目標檢測算法[7].在YOLO 算法出現(xiàn)之前,目標檢測算法通常都是將檢測問題轉(zhuǎn)化為分類問題,而YOLO 算法將目標檢測問題轉(zhuǎn)化成為了回歸問題,用一個卷積神經(jīng)網(wǎng)絡(luò)就可以直接從輸入圖像上預(yù)測目標對象所在位置和概率,實現(xiàn)了從端到端(end-to-end)的目標檢測算法.本文使用的網(wǎng)絡(luò)以YOLO 系列第3 代算法YOLOv3為基礎(chǔ)構(gòu)建,YOLOv3在YOLOv1和YOLOv2的基礎(chǔ)上主要改進了骨干網(wǎng)絡(luò)結(jié)構(gòu),損失函數(shù)的計算方式,以及使用了多尺度預(yù)測融合特征的檢測方法[11].
為了讓神經(jīng)網(wǎng)絡(luò)模型在小型移動和嵌入式設(shè)備上快速實時地運行,Google 公司減小了神經(jīng)網(wǎng)絡(luò)模型規(guī)模并設(shè)計出了模型MobileNetv1.它在保證了模型的精確性和檢測速度的基礎(chǔ)上,極大地減小了模型的規(guī)模和計算量[12].MobileNetv1 是專門為移動和嵌入式設(shè)備提出的高效輕量級模型,它基于流線型架構(gòu),使用深度可分離卷積來替代普通的卷積方式來構(gòu)建輕量級神經(jīng)網(wǎng)絡(luò).深度可分離卷積方式和傳統(tǒng)的卷積方式不同的地方在于它將傳統(tǒng)的卷積方式分為了深度卷積和點卷積,通過這種方式能夠在一定程度上達到和傳統(tǒng)的卷積方式一樣的卷積效果,同時,參數(shù)量會大幅減少.
本節(jié)從YOLOv3 特征提取網(wǎng)絡(luò)骨干網(wǎng)絡(luò)的替換,CIOU和Focal 損失函數(shù),預(yù)測框篩選算法Soft-NMS和負樣本訓(xùn)練4 個方面來詳細地闡述改進的網(wǎng)絡(luò)模型.
本文最終的目的是設(shè)計出一個能夠落地于便攜設(shè)備上的輕量級路面障礙檢測算法.YOLOv3 雖然是目前最常用的one-stage 目標檢測算法之一,在很多場景下也能夠精確的檢測出目標物體,但是其網(wǎng)絡(luò)結(jié)構(gòu)過于龐大,計算參數(shù)也十分巨大,最終導(dǎo)致訓(xùn)練出來的網(wǎng)絡(luò)模型規(guī)模太大,不適用于在運算能力和內(nèi)存容量不夠充足的移動設(shè)備上運行.
MobileNetv1 是一個輕量級神經(jīng)網(wǎng)絡(luò),它基于一個可深度分離的卷積方法,將標準卷積分解為深度卷積和卷積核大小為1×1的點卷積.深度卷積將每個卷積應(yīng)用于輸入圖像的每個通道,而點卷積用于組合通道卷積輸出[12].這種深度可分離卷積方法可以有效地減少計算量,減少模型的規(guī)模.
因此,為了結(jié)合YOLOv3的目標檢測結(jié)構(gòu)和MobileNetv1 網(wǎng)絡(luò)輕量化的特點,我們將YOLOv3的骨干網(wǎng)絡(luò)Darknet53 替換為MobileNetv1.這樣,新的目標檢測網(wǎng)絡(luò)的參數(shù)量和運算量都將大大降低,使得該網(wǎng)絡(luò)可以在移動設(shè)備上運行.本文改進后的網(wǎng)絡(luò)結(jié)構(gòu)Mobile-YOLOv3 如圖1所示.其中,y1,y2,y3為3 個不同圖像尺寸的輸出矩陣.DBL 塊是YOLOv3的基本組件,由標準卷積層(Conv)、批標準化層(Batchnormalization)、激活函數(shù)Leaky_ReLU 層組成.Concat是向量拼接操作,用于將MobileNetv1的中間層和深層網(wǎng)絡(luò)的上采樣特征向量進行拼接.MPWBR 塊是MobileNetv1的基本組件之一,由卷積核大小為1×1的點卷積層、批標準化層、激活函數(shù)ReLU 層組成.MDWBR/S1 塊是MobileNetv1的基本組件之一,由步長為1的深度卷積層、批標準化層、ReLU 層組成.MDWBR/S2 塊是MobileNetv1的基本組件之一,由步長為2的深度卷積層、批標準化層、ReLU 層組成,用于縮放圖像尺寸.MBR/S2 塊由步長為2的標準卷積層、批標準化層、ReLU 層組成.MDWS/S2 塊由零填充層(zeropadding)、MDWBR/S2 塊、MPWBR 塊組成.MDWS/S1 塊由MDWBR/S1塊、MPWBR 塊組成.
圖1 Mobile-YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3 算法中使用交并比損失函數(shù)IOU_Loss(intersection over union)作為邊框回歸損失函數(shù),IOU是為了評價預(yù)測框?qū)δ繕宋矬w的預(yù)測效果而定義的一個指標.假設(shè)預(yù)測框為A,真實框為B,則對于圖2所示的預(yù)測框A和B的IOU_Loss運算公式如式(1)所示:
圖2 交并比IOU
IOU有兩個缺陷,一是當預(yù)測框和真實框不相交時,IOU的值等于0,無論兩個框之間的位置如何,都不可能知道預(yù)測框和真實框之間的相對位置關(guān)系.第二點是,當真實框包含預(yù)測框時,若不同的預(yù)測框大小相同,但此時IOU值相等,IOU值無法反映不同的預(yù)測框和真實框之間相對位置的不同.針對IOU存在的問題,我們使用CIOU(complete intersection over union)函數(shù)替換了IOU作為本文模型的回歸損失函數(shù).
歐氏距離交并比DIOU(distance intersection over union)被提出用來解決IOU存在的兩個問題[13],如圖3,圖4所示.DIOU添加了一個同時包含真實框和預(yù)測框的最小外接矩形C,并且DIOU還考慮了兩個框的重疊面積和中心點距離,DIOU_Loss的運算公式如式(2)所示,DIOU引入了一個懲罰項,用來最小化真實框和預(yù)測框之間的距離.這樣無論是當預(yù)測框和真實框不相交時,還是真實框包含預(yù)測框時,DIOU的值都可以反映出預(yù)測框和真實框之間的相對位置關(guān)系.
圖3 真實框包含預(yù)測框DIOU 圖
圖4 真實框與預(yù)測框不相交DIOU 圖
雖然上述方法已經(jīng)解決了IOU存在的兩個問題,但是當真實框包含預(yù)測框時,如圖3,圖5所示,若預(yù)測框的長寬大小不一定但面積和中心點位置不變時,也無法確定不同的預(yù)測框與真實框的相對位置.針對這個問題,完整交并比CIOU和DIOU被同步提出用來解決這個問題[13],CIOU在保留了DIOU懲罰項的前提下,選擇添加了一個反映預(yù)測框與真實框的長寬比關(guān)系的參數(shù)項來進一步解決這個問題,CIOU_Loss的運算公式如式(3)–式(5)所示.
圖5 預(yù)測框被真實框包含時長寬比不一致DIOU 圖
其中,ɑ是用來平衡比例的參數(shù),v用來衡量預(yù)測框和真實框之間長寬比例一致性的參數(shù),wgt,hgt是真實框的長度和寬度,wp,hp是預(yù)測框的長度和寬度.
在YOLOv3 算法中,使用的是二分類交叉熵(binary cross entropy)作為模型的分類損失函數(shù).然而,交叉熵損失函數(shù)并沒有對模型訓(xùn)練時的難易樣本進行區(qū)分,這導(dǎo)致了模型的訓(xùn)練效果不太理想.因此為了解決這個問題,我們使用Focal 損失函數(shù)替代了YOLOv3 中的二分類交叉熵函數(shù)作為本文模型的分類損失函數(shù).
在二分類問題中,y表示目標的類別標簽值,取值為{0,1},0為負樣本,1為正樣本.y′是輸入樣本經(jīng)過激活函數(shù)后預(yù)測屬于正樣本的概率,取值在0–1之間.二分類交叉熵損失函數(shù)如式(6)所示.若目標為正樣本,則當預(yù)測概率y′越接近1 時越容易分類,損失值越小,若目標為負樣本,則預(yù)測概率y′越接近0 時越容易分類,損失值越小,說明在二分類交叉熵損失函數(shù)中易分類樣本對損失函數(shù)的數(shù)值影響不大.而在實際訓(xùn)練過程中,訓(xùn)練樣本主要由大量易分類樣本組成,若采用交叉熵損失函數(shù)進行訓(xùn)練,會導(dǎo)致?lián)p失函數(shù)在訓(xùn)練過程中迭代較慢,且可能無法得到最優(yōu)的結(jié)果.
針對這個問題,Focal 損失函數(shù)[14]在交叉熵損失函數(shù)的基礎(chǔ)上引入了一個權(quán)重系數(shù),通過控制易分類樣本和難分類樣本的權(quán)重,使得模型在訓(xùn)練時更加專注于困難樣本.Focal 損失函數(shù)如式(7)所示:
Focal 損失函數(shù)首先在二分類交叉熵的基礎(chǔ)上加了一個因子γ,其中γ>0.若目標為正樣本,則當預(yù)測概率y′越接近1 越容易分類時,(1–y′)γ的值會逐漸減小接近0,Focal 損失函數(shù)的值相比二分類交叉熵損失也會大量減少.同樣若目標為負樣本,則當預(yù)測概率y′越接近0 越容易分類時,(y′)γ的值也會逐漸減小接近0,Focal 損失函數(shù)的值相比于二分類交叉熵損失也會大量減少.這樣Focal 損失函數(shù)通過添加了一個干擾因子γ,使得模型可以降低易分類樣本的權(quán)重,更加關(guān)注于難以分類的樣本,此外還加入了平衡因子ɑ,用來平衡數(shù)據(jù)集中正負樣本的比例.在本文經(jīng)過對比實驗得出當ɑ=0.75,γ=2 時實驗效果最優(yōu).
YOLOv3 算法中使用非最大值抑制NMS (nonmaximum suppression)來刪除檢測時的冗余框,NMS的本質(zhì)是尋找局部最大值,去除非極大值元素,找到最接近真實框的預(yù)測框位置,NMS 流程如算法1 所示.NMS 算法先對所有可能包含了同一個檢測對象的預(yù)測框B的檢測得分S進行排序,然后將得分最高的預(yù)測框作為目標真實框M,并計算該框和其他預(yù)測框的IOU 值,如果該值高于預(yù)先設(shè)置的閾值Nt,則刪除此預(yù)測框并重復(fù)此過程,直到所有預(yù)測框都被選中或被刪除.NMS 處理結(jié)果如圖6所示.
圖6 NMS 處理結(jié)果
根據(jù)NMS 算法設(shè)計,如果兩個目標對象都處于預(yù)先設(shè)置的重疊閾值中,則NMS 算法可能會無法檢測到所有的目標對象.當兩個目標對象的預(yù)測框靠的太近時,如果重疊區(qū)域的IOU 值高于預(yù)先設(shè)置的閾值,那么檢測得分低的目標對象預(yù)測框就會被刪除,這樣就導(dǎo)致了一些目標對象的預(yù)測框被誤刪從而無法被檢測出來.針對誤檢的問題,我們使用Soft-NMS 函數(shù)替代了NMS 作為本文模型的目標框篩選算法.
為了解決NMS 會誤刪距離太近,重疊區(qū)域過大的目標物體預(yù)測框的問題,Bodla 等人提出了軟化非極大值限制Soft-NMS[15].Soft-NMS 處理流程如算法2,對于初始預(yù)測框列表B中的某一預(yù)測框bi也是先計算其和檢測得分最高框M的IOU 值,但Soft-NMS 不是像NMS 一樣當IOU 值高于預(yù)設(shè)閾值Nt,在預(yù)測框列表B和檢測得分列表S中直接暴力刪除該預(yù)測框bi及其得分si.而是將該預(yù)測框bi和目標真實框M的IOU 值和預(yù)測框bi的檢測得分si相乘重新作為該預(yù)測框bi的檢測得分進行檢測.通過這種方式可以降低改該預(yù)測框bi的檢測得分,不會像NMS 中直接被刪除.
一是要在設(shè)計、工藝、生產(chǎn)環(huán)節(jié)深耕細作,優(yōu)化設(shè)計、生產(chǎn)流程,改變傳統(tǒng)的作坊式生產(chǎn)為自動化、智能化流水線生產(chǎn);改變傳統(tǒng)的二維圖紙設(shè)計為三維設(shè)計、數(shù)字化設(shè)計;改變傳統(tǒng)的工藝聯(lián)系單為標準作業(yè)。
算法1.NMS 處理步驟Input:B={b1,…,bn},S={s1,…,sn},Nt B 是初始預(yù)測框的表S 列表包含預(yù)測框列表B 對應(yīng)的檢測得分Nt 是 NMS 預(yù)設(shè)閾值begin D ← {}While B≠empty do m ← argmax S M ← bm D ← D ∪ M;B ← B? M for bi in B do if IOU(M,bi) ≥ Nt then B ← B? bi;S ← S? si end end end return D,S end算法2.Soft-NMS 處理步驟Input:B={b1,…,bn},S={s1,…,sn},Nt B 是初始預(yù)測框的列表S 列表包含預(yù)測框列表B 對應(yīng)的檢測得分Nt 是 NMS 預(yù)設(shè)閾值begin D ← {}While B≠empty do m ← argmax S M ← bm D ← D ∪ M;B ← B? M for bi in B do si← sif(IOU(M,bi))end end end return D,S end
傳統(tǒng)的NMS 計算公式如式(8)所示:
在圖像上具有連續(xù)性的高斯加權(quán)的Soft-NMS 計算公式如式(9)所示:
其中,σ是n個預(yù)測框的計算復(fù)雜度.
負樣本是一種不包含識別目標的圖像,負樣本訓(xùn)練的意義是為了減少模型錯誤檢測的概率.我們通過對原始訓(xùn)練集圖像的研究,發(fā)現(xiàn)了一個可能會導(dǎo)致模型誤檢的負樣本場景,該場景包括具有直線特征的背景如斑馬線、直線等.另外,在對正樣本進行標注的時候,難免會有一部分路面和目標路面障礙同時被標記,而這些路面的特征也會被模型學(xué)習(xí)到.所以,我們在收集負樣本時側(cè)重收集了具有直線特征的非典型路面障礙背景圖像.通過在訓(xùn)練數(shù)據(jù)集中添加負樣本,模型檢測的錯誤率將會得到一定程度的緩解.
本文以原始模型訓(xùn)練中常見誤測的對象為重點,在廣州所有地區(qū)的街道上隨機收集和篩選了500 張負樣本,再結(jié)合1 500 張正樣本,一共得到了包含2 000張樣本的數(shù)據(jù)集A.我們將Mobile-YOLOv3 網(wǎng)絡(luò)分別在數(shù)據(jù)集A 與只有2 000 張正樣本的數(shù)據(jù)集B 上進行了訓(xùn)練,得到的檢測精度對比如表1所示,實驗結(jié)果證明在數(shù)據(jù)集中添加負樣本可以提升模型訓(xùn)練的效果.
表1 添加負樣本測試精度對比
實驗的模型訓(xùn)練和檢測的軟硬件環(huán)境為Intel(R)Xeon(R) CPU E5-2620 v4 @ 2.10 GHz,128 GB 內(nèi)存,Nvdia GeForce GTX 1080ti 顯卡.操作系統(tǒng)為Ubuntu 16.04.6 LTS.開發(fā)環(huán)境為Python 3.6.10,TensorFlow 1.10.0,CUDA9.0,CUDNN7.6.4,IDE 平臺為Visual Studio Code,數(shù)據(jù)標注軟件為labelImg.
由于本文應(yīng)用的場景是行人在行走時低頭使用手機所遇到的道路障礙,因此對數(shù)據(jù)集的拍攝角度和形狀等方面存在特殊性要求,而現(xiàn)有的開源數(shù)據(jù)集沒有此類型的圖像.路面障礙數(shù)據(jù)集是一個模擬行人低頭使用手機角度所拍攝的照片,我們拍攝了廣州各區(qū)具有代表性的道路障礙,這些圖片可以用來代表在日常生活中許多場景可能遇到的路面障礙.在拍攝了一系列的路障圖像,我們進行篩選并去除了難以用肉眼識別的圖像之后,總共收集了2 000 張路面障礙數(shù)據(jù)集,路面障礙分類有井蓋,減速帶,樓梯臺階3 類各500 張,為了降低誤檢率,還拍攝了不含目標障礙的負樣本500 張.我們將路障圖像批量標號,并使用labelImg 軟件進行標注,生成了對應(yīng)的XML 文件.本文將數(shù)據(jù)集劃分為1 620 張訓(xùn)練集,180 張驗證集,200 張測試集.部分數(shù)據(jù)集如圖7所示.
圖7 部分數(shù)據(jù)集示例
在目標檢測中,如果預(yù)測框與真實框的交并比IOU大于預(yù)設(shè)的閾值,則認為此預(yù)測框預(yù)測正確,否則認為此預(yù)測框預(yù)測錯誤.假如給定一張A類別的圖像,則此圖的預(yù)測精度PA如式(10)所示:
即一個A類圖像預(yù)測的平均精度等于測試集上A類圖像的預(yù)測精度值之和除以A類圖像的總數(shù)量.而一個數(shù)據(jù)集中會有多個類別的圖像,因此需要一個統(tǒng)一的概念來衡量一個網(wǎng)絡(luò)在此數(shù)據(jù)集上訓(xùn)練最后得到的模型表現(xiàn)如何,則均值平均精度MAP(mean average precison)定義如式(12)所示:
∑
即MAP等于數(shù)據(jù)集中所有類別圖像預(yù)測的平均精度值之和除以該數(shù)據(jù)集中類別的總數(shù)量.MAP值越高,代表模型在此數(shù)據(jù)集上訓(xùn)練的效果越好.
在對收集到的圖片進行預(yù)處理并標注生成數(shù)據(jù)集之后,將數(shù)據(jù)集放入Mobile-YOLOv3 模型中進行訓(xùn)練,其中重要的參數(shù)設(shè)置如表2所示.
表2 訓(xùn)練參數(shù)設(shè)置
ReduceLRONPlateau 參數(shù)設(shè)置為如果訓(xùn)練持續(xù)5 個epoch 后,驗證損失沒有下降,則將學(xué)習(xí)率調(diào)小0.1倍.EarlyStopping 參數(shù)設(shè)置為如果訓(xùn)練持續(xù)10 個epoch 后,驗證損失沒有下降,則提前結(jié)束訓(xùn)練.
本實驗使用了遷移學(xué)習(xí),深度學(xué)習(xí)中的遷移學(xué)習(xí)是將已經(jīng)訓(xùn)練好學(xué)習(xí)完數(shù)據(jù)集特征的模型參數(shù)遷移到新模型中,幫助新模型進行訓(xùn)練的一種方法.因為幾乎所有的數(shù)據(jù)和特征基本上都是有相關(guān)關(guān)系的,所以通過遷移學(xué)習(xí)的方式,新模型可以直接學(xué)習(xí)已經(jīng)訓(xùn)練好的模型參數(shù),從而加快模型的學(xué)習(xí)效率,加速模型優(yōu)化速度,不需要像大多數(shù)網(wǎng)絡(luò)一樣重新開始學(xué)習(xí).
本文訓(xùn)練分為兩個階段進行,第1 階段采用了遷移學(xué)習(xí)的方式,凍結(jié)了MobileNetv1 模型的前160 層,并使用在ImageNet 數(shù)據(jù)集上預(yù)訓(xùn)練的MobileNetv1 模型進行遷移學(xué)習(xí),訓(xùn)練次數(shù)為300 個epoch.第2 階段將第1 階段凍結(jié)的所有卷積層解封進行訓(xùn)練,訓(xùn)練次數(shù)為150 個epoch.訓(xùn)練過程中設(shè)置了早停和學(xué)習(xí)率自動衰減參數(shù),防止無效訓(xùn)練.Mobile-YOLOv3的訓(xùn)練過程如圖8,圖9所示,檢測精度如圖10所示,其中,SpeedBump,WellLid,Stairs為路面障礙數(shù)據(jù)集中的3 類路障標簽.
圖8 Mobile-YOLOv3 第一階段訓(xùn)練圖像
圖9 Mobile-YOLOv3 第二階段訓(xùn)練圖像
圖10 Mobile-YOLOv3 訓(xùn)練檢測精度圖
本文對YOLOv3,YOLOv3 網(wǎng)絡(luò)的精簡版Tiny-YOLOv3和Mobile-YOLOv3 網(wǎng)絡(luò)分別進行了訓(xùn)練,訓(xùn)練參數(shù)設(shè)置和數(shù)據(jù)集預(yù)處理均和第4.3 節(jié)一致,訓(xùn)練結(jié)果如表3所示.由表3可以看到,雖然Tiny-YOLOv3訓(xùn)練出來的模型規(guī)模只有YOLOv3 原模型的1/7 左右,但是MAP下降了將近11%.對比之下,Mobile-YOLOv3訓(xùn)練出來的網(wǎng)絡(luò)模型規(guī)模為原來的0.4 倍,使用CPU檢測圖像的速度比YOLOv3 提升了將近一倍,使用GPU 檢測圖像的速度也比YOLOv3 提升了26%,而且MAP也提升了將近3%,我們考慮到可能是因為YOLOv3是針對大型數(shù)據(jù)集檢測而設(shè)計的目標檢測模型,對于具有直線,圓形等平面特征的小型路障數(shù)據(jù)集沒有很好的效果.實驗結(jié)果證明Mobile-YOLOv3 網(wǎng)絡(luò)更適用于基于移動設(shè)備的路障檢測問題.
表3 各網(wǎng)絡(luò)性能對比
本文將Mobile-YOLOv3 模型的邊框回歸損失函數(shù)替換為了CIOU,分類損失函數(shù)替換為了Focal,目標框篩選算法替換為了Soft-NMS,數(shù)據(jù)集添加了負樣本進行訓(xùn)練.作為對照組分別將Mobile-YOLOv3的邊框回歸損失函數(shù),分類損失函數(shù),目標檢測框篩選算法替換為YOLOv3 原來的算法,數(shù)據(jù)集添加負樣本訓(xùn)練,最后訓(xùn)練得到的結(jié)果如表4所示.由表4可以看出,本文改進的3 種優(yōu)化算法都可以提升Mobile-YOLOv3 模型對路面障礙數(shù)據(jù)集的檢測速度和精度,最終使用了3 種優(yōu)化算法和增加了負樣本訓(xùn)練機制的模型Mobile-YOLOv3 檢測精度為98.84%,MAP相比原始Mobile-YOLOv3 模型的94.77% 提升了約4.1%.改進后的Mobile-YOLOv3 模型相比于YOLOv3 模型,均值平均精度MAP提升了約7%,模型規(guī)模也縮小了約2.5 倍,使用CPU 檢測圖像的速度提升了80%,使用GPU 檢測圖像的速度也提升了30%.
表4 各優(yōu)化方法消融實驗
本文自行設(shè)計標注了一個包含各類道路障礙特征的數(shù)據(jù)集,用于模型效果的性能評估.我們在基于YOLOv3的基礎(chǔ)上分別對其骨干網(wǎng)絡(luò)和邊框回歸損失函數(shù),分類損失函數(shù),預(yù)測框篩選算法進行了改進,并在數(shù)據(jù)集中添加了負樣本訓(xùn)練,提出了一種針對行人使用便攜移動設(shè)備走路時遇到路面障礙的目標檢測算法.實驗結(jié)果表明,本文提出的Mobile-YOLOv3道路障礙檢測輕量化算法對日常生活場景經(jīng)常遇到的具有樓梯,井蓋,減速帶等幾何特征的道路障礙的檢測,具有良好的實時性和精確度,且模型性能相比于YOLOv3 網(wǎng)絡(luò),模型規(guī)??s減了約2.5 倍,平均均值精度MAP提升了約7%,識別的精度值達98.84%.