李 昂,孫士杰,張朝陽,馮明濤,吳成中,李 旺
1.長安大學(xué) 信息工程學(xué)院,西安 710064
2.西安電子科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,西安 710064
3.湖南大學(xué) 機器人視覺感知與控制技術(shù)國家工程實驗室,長沙 410000
4.中車株洲電力機車有限公司,湖南 株洲 412000
隨著社會經(jīng)濟水平的不斷提高,鐵路運輸由于安全便捷、綠色高效、運量大、成本低等特點,已經(jīng)成為貨物運輸和人民出行的首選交通方式。列車的全自動駕駛技術(shù)已經(jīng)成為當下研究的熱點,無人駕駛列車更是未來鐵路運營的重要目標。隨著列車行駛速度以及鐵路線路里程的不斷提高,對列車的行駛安全問題提出了重大要求。其中列車行駛軌道中隨機出現(xiàn)的障礙物對列車運行安全的影響最為嚴重,如果高速行駛的列車與障礙物發(fā)生碰撞,就會造成重大的安全事故,造成嚴重的國民經(jīng)濟損失。對列車軌道障礙物的智能檢測與識別一直是人們研究的重點。
傳統(tǒng)的檢測方法主要有接觸式和非接觸式兩大方法[1]。其中接觸式檢測方法的代表為電網(wǎng)檢測法以及傳感器檢測法,這一檢測技術(shù)雖然趨于成熟,但是安裝步驟復(fù)雜,工程量巨大,且需消耗大量金錢與人力成本,不適合大規(guī)模投入使用。基于圖像和雷達的非接觸式檢測方法近年來發(fā)展迅速,且成本與效率遠大于接觸式檢測方法。郭雙全等[2]提出了一種基于雷達檢測的檢測方法,該方法可以精準定位到軌道障礙物的位置及大小信息,但無法從中判定障礙物的種類信息,使得工作人員無法采取及時有效的應(yīng)對措施,有一定局限性。金炳瑞等[3]提出一種基于圖像處理的障礙物檢測方法,但只考慮了天氣、光照、時段等情況良好的場景,對于大霧、大雪等惡劣天氣以及夜晚時段光照不充分的情況具有很大的局限性。2012 年以來隨著深度學(xué)習理論的迅速發(fā)展,深度卷積神經(jīng)網(wǎng)絡(luò)在目標檢測領(lǐng)域取得了廣泛應(yīng)用,目標檢測的實時性和精確性都獲得了巨大提升。
目前主流的深度學(xué)習檢測網(wǎng)絡(luò)主要分為單階段檢測網(wǎng)絡(luò)和雙階段檢測網(wǎng)絡(luò)兩種。其中以Faster R-CNN[4]為代表的雙階段檢測網(wǎng)絡(luò)需要先用特征提取器生成一系列可能包含物體的預(yù)選框,然后在預(yù)選框上進行進一步的目標檢測,具有較高的檢測精度,但檢測的實時性較差。史紅梅等[5]通過深度學(xué)習方法將異物檢測與分類相結(jié)合,但檢測精度還有待提升。徐巖等[6]提出了一種基于Faster R-CNN 的鐵路異物侵限檢測方法,但模型體積較大,檢測實時性較差,不利于在移動端及嵌入式設(shè)備上部署。以YOLOv4[7]、SSD[8]為代表的單階段檢測網(wǎng)絡(luò)只需一次特征提取就可實現(xiàn)目標檢測,速度相比于雙階段檢測網(wǎng)絡(luò)更快,但檢測精度會有一定的損失。劉力等[9]提出了一種基于YOLOv4 的鐵路障礙物檢測方法,取得了不錯的檢測效果,但該方法對較小目標的障礙物檢測精度較低,無法準確識別距離較遠的障礙物目標。如何平衡檢測速度與檢測精度這兩個指標也是當下研究的重要問題。目前主流單階段檢測網(wǎng)絡(luò)的YOLOv5,在檢測速度及檢測精度上皆有良好的表現(xiàn),在實際工程應(yīng)用中取得了廣泛的關(guān)注。郭磊等[10]提出了一種針對小目標檢測的YOLOv5算法模型,在小目標物體檢測上具有更強的特征提取能力和更高的檢測精度。邱天衡等[11]提出了一種改進特征融合結(jié)構(gòu)的YOLOv5 算法模型,降低了網(wǎng)絡(luò)的參數(shù)量和計算量,在提升模型檢測精度的同時保持了模型的輕量化。楊曉玲等[12]將YOLOv5算法應(yīng)用于路面障礙物目標檢測,在實際的交通場景中取得了良好的效果。本文提出了一種基于改進YOLOv5的列車軌道障礙物檢測模型,通過Mixup數(shù)據(jù)增強技術(shù)對輸入圖像進行預(yù)處理,增強了模型的泛化能力。將YOLOv5 網(wǎng)絡(luò)中的普通卷積層替換為深度可分離卷積GhostConv卷積模塊,并引入了注意力機制,同時進行了模型剪枝操作,有效減少了參數(shù)總量,在大幅提高模型檢測速度的同時提高了檢測精度,在實際應(yīng)用中取得了良好的檢測效果。
YOLOv5 是YOLO 系列發(fā)展至今的第五代檢測算法,它在更加輕量化的同時提供了更高的檢測精度,現(xiàn)已成為該系列中性能最優(yōu)的算法,在工程應(yīng)用中取得了出色的效果。YOLOv5根據(jù)網(wǎng)絡(luò)的深度與寬度可分為四個不同的版本,分別為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,四個版本的檢測精度與模型大小依次提升。本文主要針對高速行駛的列車前方500 m 范圍內(nèi)隨機出現(xiàn)的軌道障礙物進行檢測,為了滿足對檢測實時性的要求,選用更加輕量化的YOLOv5s作為基準模型,方便后續(xù)在嵌入式設(shè)備中的應(yīng)用。YOLOv5s的總體結(jié)構(gòu)如圖1所示,總共由四部分組成。
圖1 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv5 network structure
(1)Mosaic 數(shù)據(jù)增強:Mosaic 數(shù)據(jù)增強使得模型可以一次性讀入四張圖片,并對其中的每張圖片進行隨機裁剪、色域變換、縮放、翻轉(zhuǎn)等操作,最后將這些圖片拼接在一起進行處理。這種操作方式豐富了檢測物體的背景,增強了網(wǎng)絡(luò)的泛化能力和魯棒性。
(2)自適應(yīng)圖片縮放:模型在進行運算時需要將輸入的圖片尺寸變?yōu)楣潭ù笮。绻唵蔚厥褂胷esize,就會造成圖片的失真。YOLOv5 自適應(yīng)地對輸入的圖片兩端填充上最少的黑邊,然后再送入神經(jīng)網(wǎng)絡(luò)模型中進行訓(xùn)練。這種處理方式能夠有效提升模型的運算速度又不會造成過多的信息冗余。
(3)自適應(yīng)錨框計算:YOLOv5 在訓(xùn)練之前會采用k-means 算法和遺傳學(xué)習算法對數(shù)據(jù)集進行解析,預(yù)先設(shè)置固定的Anchor,在網(wǎng)絡(luò)訓(xùn)練中會在初始錨框的基礎(chǔ)上輸出預(yù)測框,并且計算和Ground Truth 的差距,再反向更新,迭代網(wǎng)絡(luò)參數(shù),降低損失函數(shù)。
(1)CBS結(jié)構(gòu):CBS層由Conv+BN+Silu激活函數(shù)組成,輸入的圖像先經(jīng)過卷積層得到輸入的不同特征,然后經(jīng)過BN層對特征數(shù)據(jù)進行歸一化處理,最后再由Silu激活函數(shù)處理輸入到下一層卷積中。
(2)C3 結(jié)構(gòu):YOLOv5_v6.0 在主干網(wǎng)絡(luò)Backbone中使用了C3結(jié)構(gòu)代替了原有的BottleneckCSP結(jié)構(gòu),其結(jié)構(gòu)與CSP結(jié)構(gòu)基本相同,只是在修正單元的選擇上略有不同。C3 結(jié)構(gòu)使得模型更加輕量化,在提高模型學(xué)習能力的同時又不會占用大量計算資源。
(3)SPPF結(jié)構(gòu):SPP結(jié)構(gòu)又被稱為空間金字塔池化,能將任意大小的特征圖轉(zhuǎn)換成固定大小的特征向量,旨在增強特征圖特征表達能力。在YOLOv5_v6.0中使用了SPPF 結(jié)構(gòu)代替了SPP 結(jié)構(gòu)。SPPF 只指定一個卷積核,每次池化后的輸出會成為下一個池化的輸入,速度相較于SPP更快。
Neck部分采用了FPN+PAN結(jié)合的方式,運用自上而下的FPN結(jié)構(gòu)以及自下而上的PAN特征金字塔結(jié)構(gòu)作為網(wǎng)絡(luò)的融合部分。該網(wǎng)絡(luò)主要用于對提取的特征信息進行堆疊處理并傳送到輸出層,加強了網(wǎng)絡(luò)特征融合的能力。
Head 用來完成目標檢測結(jié)果的輸出。YOLOv5 通過非極大值抑制(NMS)來篩選出目標框,同時采用GIOU_Loss作為損失函數(shù),進一步提升了算法的檢測精度。Head中的主體部分是三個Detect檢測器,當輸入為608×608時,三個尺度上的特征圖分別為76×76、38×38、19×19,基于網(wǎng)格的Anchor在不同尺度的特征圖上進行目標檢測。
為提升模型在小樣本情況下的泛化能力,引入一種更加輕量化的Mixup 數(shù)據(jù)增強方式。傳統(tǒng)離線數(shù)據(jù)增強方式可以一次性擴充較多數(shù)據(jù),但是在假定領(lǐng)域內(nèi)樣本都是同一類,沒有對不同類不同樣本之間領(lǐng)域關(guān)系進行建模。而且傳統(tǒng)的數(shù)據(jù)增強方式會有較大的計算開銷,占據(jù)較多的存儲空間。本文采用了Mixup數(shù)據(jù)增強技術(shù)替代了YOLOv5 中的Mosaic 數(shù)據(jù)增強。Mixup 是一種與數(shù)據(jù)本身無關(guān)的數(shù)據(jù)增強策略,以線性插值的方式來構(gòu)建新的訓(xùn)練樣本和標簽,可以大幅提升模型的泛化能力而只需要引入極小的計算開銷,相較于傳統(tǒng)數(shù)據(jù)增強方式有更好的適用性。其原理如下所示:
其中,λ是由參數(shù)α、β的Beta 分布計算出來的混合系數(shù)。batchx1與batchx2分別是兩個batch樣本,batchy1與batchy2是對應(yīng)的標簽,mixed_batchx是混合后的batch樣本,mixed_batchy是對應(yīng)的標簽。圖2 為α、β相同時的Beta分布概率密度曲線。
圖2 不同取值情況下Beta分布Fig.2 Beta distribution under different values
在實際應(yīng)用場景中,深度學(xué)習模型的計算能力通常會受到硬件環(huán)境以及設(shè)備空間布局設(shè)計的影響,從而受到較大限制。為適應(yīng)網(wǎng)絡(luò)模型在列車嵌入式設(shè)備中的應(yīng)用,引入專為移動設(shè)備設(shè)計的GhostNet[13]網(wǎng)絡(luò)結(jié)構(gòu),其核心是利用線性操作來生成豐富的特征圖。在原始的網(wǎng)絡(luò)結(jié)構(gòu)中,提取圖片特征的過程中會生成大量冗余特征圖,極大地占用了硬件存儲空間,降低了運算速度,實時性較差,不符合高速運行的列車進行快速檢測的要求。
為了實現(xiàn)網(wǎng)絡(luò)的輕量化,使用深度可分離卷積GhostConv 模塊替代了原有的普通卷積層,結(jié)構(gòu)如圖3所示。
圖3 GhostConv網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 GhostConv network structure
為了能夠準確獲取特征圖細節(jié)信息,分離出多尺度局部特征信息,首先使用CV1實現(xiàn)更深層特征提取,這是一個1×1 大小的普通卷積層。然后把輸出的數(shù)據(jù)分成若干組特征,經(jīng)由5×5 大小的卷積核進行線性變換,對特征進行更深層次的提取,最終將變換結(jié)果進行堆疊操作,合并輸出。網(wǎng)絡(luò)通過分組卷積的方式來平衡分組效果和卷積數(shù)量,大大降低了模型的復(fù)雜度,減少了網(wǎng)絡(luò)參數(shù)數(shù)量,提升了模型運算速度。
注意力機制是在網(wǎng)絡(luò)模型計算能力有限的情況下,為了解決信息超載問題,將計算資源分配給更重要的任務(wù)而添加進來的一種增強移動網(wǎng)絡(luò)特征表達能力的計算單元,它可以告訴模型需要關(guān)注哪些位置和內(nèi)容,目前已被廣泛使用來加強模型的計算能力??紤]到輕量級網(wǎng)絡(luò)受硬件環(huán)境的約束以及計算能力有限的問題,目前最廣泛使用的是SE(squeeze-and-excitation)通道注意力機制[14],它的出現(xiàn)是為了解決在卷積池化過程中Feature Map的不同通道所占的重要性不同帶來的損失問題,并且可以在消耗少量計算資源的情況下大幅提升模型的性能。
但是SE 模塊僅僅考慮了通道信息編碼,在后續(xù)的稀疏訓(xùn)練及通道剪枝操作中容易丟失重要的位置信息,為此運用了CA(coordinate attention)空間注意力機制[15]來解決上述問題,在特征編碼的同時還保留了位置信息。SE模塊和CA模塊結(jié)構(gòu)如圖4所示。
圖4 SE模塊與CA模塊結(jié)構(gòu)圖Fig.4 SE module structure and CA module structure
在CA模塊中,使用尺寸為(H,1) 和(1,W)的池化核,沿著水平坐標方向和垂直坐標方向?qū)斎氲臄?shù)據(jù)進行通道編碼。因此高度為h以及寬度為w的第c個通道分別表示為:
通過該變換可以將輸入特征圖分為寬度和高度兩個方向分別進行全局平均池化,獲得在寬度和高度兩個方向的特征圖,對該特征圖進行編碼操作可以生成兩個注意力圖,將生成的注意力圖與特征圖相乘以增強目標表達能力。其公式表示為:
其中,δ表示對提取的特征進行下采樣操作,f表示通過下采樣操作得到的中間特征圖,F(xiàn)1表示1×1 卷積。特征圖沿空間維度切分后可得到兩個單獨張量fh和fw,再利用1×1卷積Fh和Fw進行σ變換,經(jīng)過Sigmoid激活函數(shù)后分別得到特征圖在高度和寬度上的注意力權(quán)重gh和在寬度方向的注意力權(quán)重gw,將注意力權(quán)重加到輸入上,得到最終輸出yc。
與SE模塊只產(chǎn)生一個特征向量不同,CA獲取圖像寬度和高度上的注意力并對精確位置信息進行編碼,既可以獲得沿著一個方向的長程依賴,也可以將位置信息沿著另一個方向保存。本文在網(wǎng)絡(luò)結(jié)構(gòu)的最后加入了CA 模塊,不需要過多的計算開銷就可以對目標進行更加精確的定位,彌補了SE 模塊的缺陷。改進后的結(jié)構(gòu)由圖5所示。
圖5 改進后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Improved YOLOv5 network structure
突觸修剪(synaptic pruning)是許多哺乳動物幼年期和青春期的必經(jīng)過程,是指軸突和樹突完全衰變和死亡。受啟發(fā)于人腦中的突觸修剪,提出了人工神經(jīng)網(wǎng)絡(luò)中的模型剪枝技術(shù),如圖6所示。
圖6 稀疏化神經(jīng)網(wǎng)絡(luò)Fig.6 Sparse neural network
模型剪枝[16-17]可以用來減小模型復(fù)雜度,去除多余參數(shù),提升模型泛化性能,從不同剪枝粒度上可分為通道級、權(quán)重級或?qū)蛹?,是?fù)雜模型輕量化的一種廣泛使用的方法。粗粒度剪枝只有當網(wǎng)絡(luò)層數(shù)足夠深時剪枝才有效果,并且要對整層進行修剪,使用非常不靈活。細粒度剪枝如權(quán)重級剪枝率較高,且相比于粗粒度剪枝更加靈活,但對硬件設(shè)備要求較高,不符合嵌入式設(shè)備及移動設(shè)備項目的使用需求。通道級別的剪枝[18-22]能夠很好地權(quán)衡實現(xiàn)難易程度以及靈活性,能夠應(yīng)用于任何全連接的網(wǎng)絡(luò),使得傳統(tǒng)CNN 在大部分平臺上快速有效運行。
稀疏訓(xùn)練利用深層模型的通道稀疏性,獲得重要性較低的通道數(shù)量,有利于通道剪枝。首先每個通道引入一個縮放因子γ并與該通道相乘,縮放因子的絕對值即表示通道重要性。將γ正則項與權(quán)重損失函數(shù)進行稀疏正則化訓(xùn)練,對網(wǎng)絡(luò)本身重要性較低的通道進行剪除,同時不影響其泛化性能。微調(diào)剪枝后的模型進行性能評估,再進行修剪迭代,最后實現(xiàn)網(wǎng)絡(luò)模型的輕量化。具體實現(xiàn)流程如圖7所示。
圖7 通道剪枝流程Fig.7 Channel pruning process
在細粒度目標檢測任務(wù)中,如果模型修剪比例較高,會導(dǎo)致模型一些通道的缺失,降低模型檢測精度。模型微調(diào)的過程即對剪枝后模型的再訓(xùn)練,通過模型微調(diào)來彌補精度損失。如式(13)所示,對剪枝后的模型權(quán)重參數(shù)W1進行微調(diào),在微調(diào)過程中設(shè)置的學(xué)習率learning_rate和迭代次數(shù)epoch均比預(yù)訓(xùn)練時小,最后得到更加輕量化的權(quán)重參數(shù)W2,其中argmin表示使目標函數(shù)取最小值時的變量值。
在實際軌道交通場景下,軌道障礙物檢測會存在很多問題,最常見的有如下幾類:
(1)場景變化:由于列車在運行過程中地形、坡度及視野的變化,安裝在火車頭部的攝像機設(shè)備所采集到的圖像視角也會存在差異,這種差異會導(dǎo)致圖像中障礙物發(fā)生形變,出現(xiàn)大量障礙物目標誤檢,嚴重影響模型檢測的準確率。
(2)時段變化:同一場景在不同時段也存在較大差異,場景受光照影響可見度不同,尤其是夜晚期間的障礙物目標難以獲取,誤檢率較高。本文考慮到此種情況,將夜晚數(shù)據(jù)集包含在構(gòu)建過程中,在訓(xùn)練過程中增強模型的泛化性能。
(3)實際軌道交通中障礙物目標存在隨機性大、交通情況復(fù)雜等因素,易存在物體遮擋現(xiàn)象,將多個目標檢測為一個目標,導(dǎo)致漏檢與誤檢。
以上問題的存在使得現(xiàn)有公開數(shù)據(jù)集如COCO、VOC 等不適用于軌道交通中攝像機所采集到的圖像,容易造成障礙物目標的漏檢和誤檢。
為了提高網(wǎng)絡(luò)模型的泛化能力,需要制作場景豐富有效的數(shù)據(jù)集。本文視頻于2021年11月遠程采集于某集團試驗場地,運用OpenCV來讀取視頻并將視頻進行逐幀保存,幀率選定為5 FPS。本文采集了多種場景下不同時段的軌道列車運行視頻,樣本數(shù)據(jù)豐富,為建立多樣化數(shù)據(jù)集奠定了良好基礎(chǔ)。
為解決不同軌道交通場景下目標數(shù)據(jù)集不匹配導(dǎo)致檢測率低下的問題,本文根據(jù)采集到的視頻構(gòu)建了一個涵蓋多種交通場景及不同時段的多樣化數(shù)據(jù)集,共20 024張圖片,主要可以劃分為4個子數(shù)據(jù)集,這4個數(shù)據(jù)集根據(jù)不同應(yīng)用場景進行劃分。根據(jù)光照條件不同分為白天應(yīng)用數(shù)據(jù)集、夜晚應(yīng)用數(shù)據(jù)集、隧道應(yīng)用數(shù)據(jù)集,根據(jù)天氣狀況不同分為極端天氣應(yīng)用數(shù)據(jù)集,其中包含了大霧、雨雪等極端天氣。構(gòu)建的數(shù)據(jù)集如圖8所示。樣本情況如表1所示。
表1 數(shù)據(jù)集樣本情況Table 1 Dataset sample situation
圖8 多樣化數(shù)據(jù)集示意圖Fig.8 Schematic diagram of diverse datasets
數(shù)據(jù)集使用LabelImg標注工具進行標注。LabelImg是一款常見的深度學(xué)習圖像標注軟件,將每張圖片上的障礙物用最小的矩形框標注,使用障礙物名稱作為目標類別,如圖9 所示。將標注好的數(shù)據(jù)集按照訓(xùn)練集、測試集、驗證集以8∶1∶1的比例分類。
圖9 自建數(shù)據(jù)集標注示意圖Fig.9 Schematic diagram of self-built dataset annotation
將標注好的圖片加載進模型并進行Mixup 數(shù)據(jù)增強,將兩張圖片按比例進行差值來混合數(shù)據(jù),為訓(xùn)練提供不同數(shù)據(jù)類別之間的連續(xù)數(shù)據(jù)樣本,并因此直接擴大了給定訓(xùn)練集的分布,從而使網(wǎng)絡(luò)在測試階段更加強大。Mixup相比于傳統(tǒng)的數(shù)據(jù)增強技術(shù)更加輕量化,只需占據(jù)極小的計算開銷,能顯著提升模型的運算速度。經(jīng)過數(shù)據(jù)增強的圖片如圖10所示。
圖10 Mixup數(shù)據(jù)增強Fig.10 Mixup data enhancement
本文實驗環(huán)境為ubuntu20.04系統(tǒng),硬件配置為Intel?CoreTMi5-10500H CPU@2.50 GHz 2.50 GHz,NVIDIA GeForce RTX3060 顯卡,系統(tǒng)內(nèi)存為16 GB,CUDA 版本為11.1,利用的深度學(xué)習框架為Pytorch1.9.0。
實驗采用準確率(precision,P)、召回率(recall,R)、多個類別平均精度(mean average precision,mAP)、占用存儲空間大小、每秒檢測幀數(shù)(frames per second,F(xiàn)PS)幾項性能指標評判算法的性能。其中精度P、召回率R和mAP分別表示為:
其中,TP(true positives)表示被正確檢測出的目標數(shù),F(xiàn)P(false positives)表示被錯誤檢測出的目標數(shù),F(xiàn)N(false negatives)表示未被檢測出的目標數(shù),n表示需要分類的類別數(shù),AP(average precision)表示某個目標類的平均精度。
4.3.1 改進Mixup數(shù)據(jù)增強的實驗結(jié)果分析
為了驗證Mixup數(shù)據(jù)增強方式的有效性,以YOLOv5s為基礎(chǔ),將算法中原始的Mosaic 數(shù)據(jù)增強方式改為Mixup 數(shù)據(jù)增強方式,其余部分不做改動,改動后的算法稱為YOLOv5s-M。將兩種數(shù)據(jù)增強方式進行實驗對比,實驗結(jié)果如表2所示。
表2 改進Mixup數(shù)據(jù)增強驗證實驗Table 2 Improved Mixup data enhancement validation experiment
從表2 中可以看出,引入Mixup 數(shù)據(jù)增強方式使得模型檢測精度提升了1.4 個百分點,模型體積減小了2.3 MB,并小幅提升了檢測速度,證明了改進方法的有效性。
4.3.2 改進GhostNet結(jié)構(gòu)的實驗結(jié)果分析
為了驗證改進GhostNet 結(jié)構(gòu)的有效性,將原始YOLOv5s 模型中特征提取網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)中的普通卷積層替換為深度可分離卷積GhostConv,其余部分不做改動,改動后的算法稱為YOLOv5s-G。將改進后的網(wǎng)絡(luò)結(jié)構(gòu)和原有網(wǎng)絡(luò)結(jié)構(gòu)進行實驗對比,實驗結(jié)果如表3所示。
表3 改進GhostNet結(jié)構(gòu)驗證實驗Table 3 Improved GhostNet structure validation experiment
從表3中可以看出,改進后的網(wǎng)絡(luò)模型極大減小了模型體積,檢測速度上也有很大提升,但檢測精度降低了1.6 個百分點,有較大損失。證明GhostNet 結(jié)構(gòu)雖然能夠有效實現(xiàn)模型輕量化,但是會大大降低模型檢測精度,單純的GhostNet網(wǎng)絡(luò)結(jié)構(gòu)不符合使用需求。
4.3.3 改進CA注意力機制的實驗結(jié)果分析
為了驗證引入空間注意力模塊的有效性,現(xiàn)以經(jīng)過上述兩種改進方法的模型為基礎(chǔ),引入空間注意力機制CA,并與其他常見注意力機制模塊進行對比實驗。現(xiàn)將CA 注意力模塊與SE 注意力模塊、CBAM 注意力模塊[23]、ECA注意力模塊[24]分別嵌入至模型的特征提取網(wǎng)絡(luò)中,實驗結(jié)果如表4所示。
表4 改進CA注意力機制驗證實驗Table 4 Improved CA attention mechanism validation experiment
從表4中可以看出,四種注意力機制都會帶來一定的檢測速度損失,并且會不同程度增大模型體積。四種注意力機制對檢測精度分別提升了0.7個百分點、0.6個百分點、1.0個百分點、0.6個百分點,其中CBAM注意力機制帶來的精度提升效果最為明顯,但是使得模型檢測速度損失較大。其余三種注意力機制對模型精度提升相差不大,但CA注意力機制帶來的檢測速度損失最小。綜上所述,本文引入的CA注意力機制在本模型中的應(yīng)用更具有優(yōu)越性。改動后的算法稱為YOLOv5s-MGC。
4.3.4 稀疏訓(xùn)練與通道剪枝
通過常規(guī)訓(xùn)練得到權(quán)重模型后,將權(quán)重文件輸入到模型中進行稀疏訓(xùn)練,稀疏訓(xùn)練批次與常規(guī)訓(xùn)練保持一致設(shè)置為300,設(shè)置尺度稀疏率為0.002,聚合模型中的參數(shù),使得模型便于剪枝。
將經(jīng)過稀疏訓(xùn)練的模型進行通道剪枝,為保證模型在修剪過程中不會被過度修剪,分別設(shè)置全局通道修剪率為50%,60%,70%,80%,輸入圖像尺寸為608×608,分別測試四種通道剪枝后的模型,以尋求最為合適的剪枝率。現(xiàn)調(diào)整剪枝率對改進后的模型進行通道剪枝,剪枝結(jié)果如表5。
表5 通道剪枝驗證實驗Table 5 Channel pruning validation experiment
由表5可得,經(jīng)過通道剪枝操作后模型檢測精度會出現(xiàn)不同程度的下降。當剪枝率為50%時,由于剪枝率最小,有較多對模型精度影響不大的通道仍然被保留,對模型大小及檢測速度的提升有限,但檢測精度損失最小,下降了0.6個百分點。當剪枝率為80%時,由于剪枝率最大,其模型大小達到了3.1 MB,檢測速度也達到了107 FPS,但剪去了模型中較為重要的通道和卷積層,使得模型檢測精度損失較大,下降了14.1個百分點。綜上所述,當剪枝率為60%時,能在較大程度壓縮模型大小的同時又能保持原有檢測精度,使得模型便于部署,檢測效果更好,性價比更高。
最后微調(diào)剪枝后的模型,并采用知識蒸餾的方式重新訓(xùn)練剪枝后的模型,設(shè)置訓(xùn)練批次為300,提升剪枝后模型的檢測精度。微調(diào)后的模型訓(xùn)練得到的Loss 曲線如圖11 所示,并與原始YOLOv5s 模型進行對比。改進后的算法稱為YOLOv5s-MGCT。
圖11 Loss曲線圖Fig.11 Loss curves
4.3.5 消融實驗
本文提出的四種改進方法分別為M(Mixup數(shù)據(jù)增強)、G(GhostNet)、C(CA 注意力機制)、T(通道剪枝處理)。為了驗證四種不同改進方法的有效性,在所應(yīng)用數(shù)據(jù)集上設(shè)計了消融實驗。為了驗證四種不同改進方法的有效性,從以下兩方面設(shè)計消融實驗:(1)以原始YOLOv5s算法為基礎(chǔ),分別只增加一種改進方法,以驗證每種改進方法對原算法的改進效果;(2)以最終YOLOv5s-MGCT 算法為基礎(chǔ),分別只消除一種改進方法,以驗證每種改進方法對最終算法的影響程度。
“√”表示引入該方法,從表6 中可以看出,相比于原始YOLOv5s算法,引入CA注意力機制對檢測精度的提升最為明顯,檢測精度提升了1.5個百分點,但對檢測速度有較大影響,模型體積增大了3.2 MB,檢測速度降低了31 FPS。引入GhostNet結(jié)構(gòu)對檢測速度提升最為明顯,模型大小減小了7.3 MB,檢測速度提高了11 FPS,但對檢測精度有較大影響,檢測精度降低了1.6 個百分點。而相比于最終YOLOv5s-MGCT 算法,消除CA 注意力機制對檢測精度影響最大,檢測精度降低了4.4 個百分點。消除通道剪枝處理對檢測速度影響最大,模型體積增大了6 MB,檢測速度降低了15 FPS。同時,本文提出的最終YOLOv5s-MGCT算法相較于原始YOLOv5s,在所應(yīng)用數(shù)據(jù)集上檢測精度提升了1.0 個百分點,模型體積減小了9.7 MB,檢測速度提高了14 FPS,能夠在保持算法實時性的同時有著更高的檢測精度。
表6 消融實驗結(jié)果Table 6 Ablation experiment results
4.3.6 場景對比實驗
為了驗證所提出算法在不同場景數(shù)據(jù)集上的泛化性和適用性,現(xiàn)將本文算法模型與原始YOLOv5算法模型在不同場景數(shù)據(jù)集上進行對比實驗,比較在不同交通場景下的檢測性能,結(jié)果如表7與表8所示。
表7 YOLOv5s在不同場景數(shù)據(jù)集上的檢測結(jié)果Table 7 Detection results of YOLOv5s on different scene datasets
對比表7和表8中實驗結(jié)果可得,原始YOLOv5s算法與本文所提出的YOLOv5s-MGCT算法均在白天場景數(shù)據(jù)集上的檢測精度最高,分別為95.2%與95.5%,在極端天氣場景數(shù)據(jù)集上的檢測精度最低,分別為92.7%與94.1%??傮w來說,在四種不同場景數(shù)據(jù)集上本文所提出的YOLOv5s-MGCT 算法在檢測精度上均高于原始YOLOv5s算法,證明本文算法具有一定的泛化性,能夠適應(yīng)在不同交通場景下的障礙物檢測。
表8 YOLOv5s-MGCT在不同場景數(shù)據(jù)集上的檢測結(jié)果Table 8 Detection results of YOLOv5s-MGCT on different scene datasets
4.3.7 方法對比實驗
為了進一步證實本文算法的有效性和優(yōu)越性,現(xiàn)將本文算法模型與當前主流算法模型在同一場景下進行對比實驗。本文算法與YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x、Faster R-CNN、SSD、YOLOX-tiny、YOLOXs、YOLOv4-tiny[25]、YOLOv4 算法進行實驗對比,結(jié)果如表9所示。
表9 與當前主流方法的對比實驗Table 9 Comparative experiment with current mainstream methods
對比表9中實驗結(jié)果可得,本文算法相比于其他主流檢測模型,有最小的模型體積,同時保持了較高的檢測精度。相比于原始YOLOv5s 模型檢測精度提高了1.0個百分點,比YOLOv5m高0.9個百分點,比YOLOv5l高0.4 個百分點,比YOLOv5x 高0.1 個百分點。與傳統(tǒng)的two-stage算法Faster R-CNN相比具有較大的檢測速度優(yōu)勢,檢測精度也有極大提升,精度提升了10.6個百分點,模型體積減小了104.2 MB,檢測速度提升了78 FPS。改進后的模型相比于SSD、YOLOX-tiny、YOLOXs、YOLOv4-tiny、YOLOv4 算法在檢測精度上也有較大提升。綜上所述,本文提出的YOLOv5s-MGCT 算法在保持輕量化的同時,有著最高的檢測精度,保持了較好實時性,整體表現(xiàn)較為突出,證明了本文算法的可行性與優(yōu)越性。本文對改進后算法的效果在不同光照條件的場景下進行了對比展示,如圖12所示。
圖12 不同光照條件下檢測結(jié)果Fig.12 Detection results under different lighting conditions
同時對改進后的算法效果在不同種類的極端天氣場景下進行了對比展示,如大霧、大雪天氣等,如圖13所示。
圖13 不同天氣條件下檢測結(jié)果Fig.13 Detection results under different weather conditions
針對復(fù)雜軌道交通環(huán)境下傳統(tǒng)目標檢測算法檢測精度不足、檢測實時性較差等特點,本文通過引入Mixup數(shù)據(jù)增強方式、改進GhostNet 網(wǎng)絡(luò)結(jié)構(gòu)、增加CA 空間注意力機制、稀疏訓(xùn)練和通道剪枝等方法的集成,來優(yōu)化YOLOv5這一典型的one-stage檢測算法。
實驗結(jié)果表明,改進后的YOLOv5s-MGCT 算法在自制的軌道交通數(shù)據(jù)集上相較于原始YOLOv5s算法檢測精度提高了1.0 個百分點,模型體積減小了9.7 MB,檢測速度提高了14 FPS,在保持輕量化的同時小幅提高了檢測精度。相比于其他主流檢測算法,在具有一定的速度和體量優(yōu)勢的同時保持了較高的檢測精度。綜上所述,本文提出的算法適合復(fù)雜軌道交通環(huán)境下的目標檢測,具有一定的可行性與優(yōu)越性。