陳 墾 ,歐 鷗 ,楊長志 ,龔 帥 ,歐陽飛 ,向東升
(1.東南大學(xué)信息科學(xué)與工程學(xué)院 毫米波國家重點(diǎn)實(shí)驗(yàn)室,南京 211189;2.四川數(shù)字交通科技股份有限公司,成都 610218;3.成都理工大學(xué) 計(jì)算機(jī)與網(wǎng)絡(luò)安全學(xué)院(牛津布魯克斯學(xué)院),成都 610059;4.成理智源科技(成都)有限公司,成都 610059)
我國幅員遼闊,地大物博,同時(shí)也地形復(fù)雜,有風(fēng)景秀美的山川,還有大量的丘陵地帶。部分城市靠山而建,山坡區(qū)域的地質(zhì)情況不穩(wěn)定,易受烈日與雨水的侵蝕,發(fā)生崩塌、滑坡和落石的情況[1]。落石的危害程度不一,輕者阻斷交通,落石災(zāi)害發(fā)生在國道與隧道洞口[2],使行人和車輛不能正常通行;重者落石災(zāi)害發(fā)生在行人經(jīng)過的區(qū)域,危及人群的生命安全,或發(fā)生在輸油管道區(qū)域,對油氣運(yùn)輸造成巨大影響[3]。而落石的發(fā)生,很可能是一些更具危害的災(zāi)害如:崩塌、泥石流災(zāi)害的前兆。修建于山坡附近的小區(qū)和公園等人流量大的場所,一旦發(fā)生落石等情況,容易造成人員受傷。為了保證人民群眾的生命和財(cái)產(chǎn)安全,防止落石災(zāi)害帶來的巨大損失,通過實(shí)時(shí)的落石檢測的方法及時(shí)提醒民眾避難的重要性不言而喻。落石發(fā)生時(shí),人們往往無法及時(shí)發(fā)現(xiàn),而自動(dòng)檢測識別和告警的方法,可以及時(shí)通知人們避難[4-6]。具體步驟為:通過山坡附近的攝像頭對落石現(xiàn)象進(jìn)行監(jiān)測,一旦發(fā)生落石,可以及時(shí)發(fā)出警告,提醒人民及時(shí)避難,防止人員受到危害。因此,如何利用目標(biāo)檢測方法實(shí)時(shí)、高效并準(zhǔn)確地檢測出落石現(xiàn)象,具有一定的研究價(jià)值。
傳統(tǒng)的落石檢測系統(tǒng),是通過幀差法,檢測物體是否產(chǎn)生了移動(dòng),再根據(jù)移動(dòng)物體的幾何特征判斷是否為落石[7],其檢測速度較慢、檢測精度不高,比較容易出現(xiàn)錯(cuò)誤預(yù)報(bào)、漏報(bào)等現(xiàn)象,因此本文將深度學(xué)習(xí)的目標(biāo)檢測算法融入落石檢測系統(tǒng)中,提高落石檢測效率、檢測精度。
目標(biāo)檢測算法可分為Two-Stage和One-Stage模型。Two-Stage模型包含R-CNN、Fast R-CNN和Faster R-CNN等[8-10],整個(gè)檢測流程分為兩大步,即先產(chǎn)生候選框,再進(jìn)行分類與回歸,Two-Stage模型的識別正確率較高,但實(shí)時(shí)性能較低,適用對檢測速度要求不高的場景。One-Stage模型包含YOLO系列[11-13]和SSD系列[13-16]等,整個(gè)檢測流程只需一個(gè)步驟,經(jīng)過單次檢測得出目標(biāo)位置以及置信度得分,其相比于Two-Stage模型,準(zhǔn)確度稍低,但實(shí)時(shí)檢測性能較高,更適用需要快速檢測目標(biāo)的場景。在YOLO系列的版本迭代中,YOLOX相比于YOLOv3、YOLOv4和YOLOv5,檢測幀率和準(zhǔn)確率更高,并提供了強(qiáng)大的數(shù)據(jù)增強(qiáng),在數(shù)據(jù)集容量較小的時(shí)候更能取得更好的學(xué)習(xí)效果,意味著更好的檢測效果?;谏疃葘W(xué)習(xí)的落石檢測系統(tǒng)中,Two-Stage模型需要經(jīng)過產(chǎn)生候選區(qū)域-提取特征框-分類與回歸的流程,在動(dòng)態(tài)場景下,若目標(biāo)移動(dòng)速度較快,可能出現(xiàn)還沒來得及檢測目標(biāo)就消失的情況;One-Stage模型中SSD系列和YOLO系列檢測速度都較快,但是YOLO系列版本迭代快,檢測效果更好,適合落石檢測的性能要求。
本文開展的實(shí)驗(yàn)基于YOLOX模型,在落石的目標(biāo)檢測問題上,由于落石的大小和形狀差異較大,背景環(huán)境復(fù)雜,為了得到更好的檢測和訓(xùn)練效果,首先對主干網(wǎng)絡(luò)中的空間金字塔結(jié)構(gòu)進(jìn)行優(yōu)化,以獲得更多的語義信息,其次在骨干網(wǎng)絡(luò)引入ECA-Net注意力機(jī)制[17],使網(wǎng)絡(luò)更關(guān)注落石目標(biāo)本身的特征,降低周遭環(huán)境的干擾,且該注意力機(jī)制參數(shù)量少,幾乎不增加模型的復(fù)雜度,在不損失檢測性能的情況下,提高對落石目標(biāo)的特征提取能力,并加強(qiáng)各層特征間的信息傳播。最后對損失函數(shù)進(jìn)行改進(jìn),降低因樣本不均衡帶來的訓(xùn)練效果較差的問題通過自制落石數(shù)據(jù)集,訓(xùn)練出的網(wǎng)絡(luò)可以準(zhǔn)確地檢測運(yùn)動(dòng)中的落石。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的YOLOX落石檢測方法相比原算法,對于落石情況發(fā)生的檢測更加靈敏,并且降低了落石檢測的誤報(bào)率,檢測性能與原始網(wǎng)絡(luò)無異。同一檢測場景下,平均精度更高,符合實(shí)時(shí)目標(biāo)檢測的要求。
YOLOX算法結(jié)構(gòu)如圖1所示,分為Backbone、Neck和Head三大部分。
圖1 YOLOX算法結(jié)構(gòu)
YOLOX的骨干網(wǎng)絡(luò)采用CSPDarknet,該網(wǎng)絡(luò)基于ResNet實(shí)現(xiàn),其中主要模塊的功能分別如下。
Focus模塊用于增加特征圖的通道維度,輸入圖片進(jìn)入后,按照縱橫兩個(gè)方向?qū)⑻卣鲌D切割為像素點(diǎn),之后再間隔選取像素點(diǎn),進(jìn)行拼接與堆疊,將原始的單層特征圖變?yōu)樗膶犹卣鲌D,特征圖的通道長寬變?yōu)樵瓉淼囊话?,深度擴(kuò)充為原來的四倍。借此模塊可以減少特征圖參數(shù)量,提升正向傳播和反向傳播的速度,并且不減少圖像的特征信息。Conv模塊是網(wǎng)絡(luò)中的基本卷積單元,輸入特征圖進(jìn)入Conv模塊后,其中Conv2D層進(jìn)行二維卷積操作,BN(批量歸一化)層進(jìn)行正則化操作,而激活函數(shù)層則使用SiLU函數(shù)進(jìn)行激活操作。CSPLayer采用了ResNet的殘差結(jié)構(gòu),將CSPLayer模塊劃分為兩個(gè)不同部分:其中一部分作為殘差主干結(jié)構(gòu),對殘差塊進(jìn)行堆疊,增加神經(jīng)網(wǎng)絡(luò)的深度;另一部分作為原始結(jié)構(gòu)保留,最后將兩部分拼接,構(gòu)建跳躍連接。這種方法相當(dāng)于在殘差塊之間增加了一個(gè)捷徑,可以重復(fù)利用梯度信息,利于增加網(wǎng)絡(luò)的深度,緩解梯度消失等問題。SPPBottleneck模塊中,除了使用基本卷積單元Conv執(zhí)行卷積操作以外,還有池化層進(jìn)行池化和拼接操作,該層采用最大池化的方法,通過改變核的大小來提高感受野。骨干網(wǎng)絡(luò)的各模塊圖如圖2所示。
圖2 骨干網(wǎng)絡(luò)的模塊框架
YOLOX網(wǎng)絡(luò)的Neck部分由FPN(feature pyramid networks,特征金字塔)[18]和PAN(path aggregation network,路徑聚合網(wǎng)絡(luò))[15]構(gòu)成,其結(jié)構(gòu)如圖3所示。FPN用于自頂向下傳播語義特征,而PAN則是自底向上傳播語義特征,F(xiàn)PN與PAN兩者結(jié)合,可以構(gòu)建高層語義特征圖以及底層特征圖,并利用PAN的路徑增強(qiáng)方法提高特征信號,從而加快高低層特征之間的信息傳播速度,實(shí)現(xiàn)特征融合。
圖3 FPN與PAN結(jié)構(gòu)
YOLOX網(wǎng)絡(luò)的Head部分為檢測結(jié)構(gòu),也稱為檢測頭。原始特征圖經(jīng)過上一層結(jié)構(gòu)處理后,生成三個(gè)不同尺寸的特征圖,應(yīng)對不同尺寸目標(biāo)的學(xué)習(xí)或預(yù)測。如圖4所示,YOLOX使用了Decoupled Head(解耦頭)結(jié)構(gòu),相比以往模型中的Coupled Head(耦合頭)結(jié)構(gòu),耦合頭用一個(gè)1×1卷積涵蓋了分類和回歸步驟,而解耦頭則將分類和回歸步驟解耦,先使用卷積對輸出進(jìn)行降維,在分類和回歸兩個(gè)流程中,各使用兩個(gè)3×3 卷積。將檢測頭替換為解耦頭后,預(yù)測的精度提高且網(wǎng)絡(luò)的收斂速度更快。
圖4 耦合頭與解耦頭的結(jié)構(gòu)圖
激活函數(shù)對于網(wǎng)絡(luò)模型學(xué)習(xí)非線性特征具有非常重要的作用,可以解決線性模型解決問題的有限性。YOLOX模型采用了SiLU激活函數(shù),函數(shù)如公式(1)所示。
f(x)=x·σ(x);f′(x)=f(x)+σ(x)(1-f(x))
(1)
SiLU是Sigmoid和ReLU的改進(jìn)版,SiLU激活函數(shù)具備無上界、有下界、平滑、非單調(diào)的特性,相較于ReLU更平滑,其在深層模型上的效果優(yōu)于ReLU激活函數(shù)。
空間金字塔池化結(jié)構(gòu)廣泛運(yùn)用于YOLO系列網(wǎng)絡(luò)中,在YOLOX網(wǎng)絡(luò)中使用SPPBottleneck進(jìn)行特征提取,它首先使用一個(gè)卷積層和3個(gè)池化層對輸入的特征圖進(jìn)行處理,將輸入通道縮減為原來的一半,然后將所得結(jié)果和上一步輸出的結(jié)果進(jìn)行疊加處理,此時(shí)得到新的特征圖的通道數(shù)是最開始輸入特征圖的通道數(shù)的兩倍。最后,再進(jìn)行卷積處理通道數(shù)減半,此時(shí)得到的特征圖大小和輸入特征圖大小保持一致,其結(jié)構(gòu)如圖5(a)所示。
SPPCSPC結(jié)構(gòu)在SPPBottleneck基礎(chǔ)上加深了網(wǎng)絡(luò),采用殘差結(jié)構(gòu),其結(jié)構(gòu)如圖5(b)所示。
圖5 金字塔池化結(jié)構(gòu)改進(jìn)
在落石檢測中,由于背景和目標(biāo)相似,背景與目標(biāo)難以完全區(qū)分,通過SPPBottleneck提取到的語義信息較少,不能完全提取出落石目標(biāo)的特征,而SPPCSPC加深了網(wǎng)絡(luò),通過不同層次網(wǎng)絡(luò)所提取到的信息將會(huì)更多,獲得的語義信息和特征信息更加明顯。神經(jīng)網(wǎng)絡(luò)的加深容易導(dǎo)致梯度消失和梯度爆炸問題,學(xué)界之前常用數(shù)據(jù)的初始化和正則化解決梯度問題,而這種方法并不能解決網(wǎng)絡(luò)性能退化問題,而后殘差結(jié)構(gòu)的提出能同時(shí)解決隨著網(wǎng)絡(luò)加深出現(xiàn)的梯度問題和網(wǎng)絡(luò)性能退化問題。因此SPPCSPC同時(shí)采用了殘差結(jié)構(gòu),提高網(wǎng)絡(luò)的檢測效率。本文通過將SPPBottleneck替換為SPPCSPC結(jié)構(gòu),在落石檢測中,可以將紋理、顏色等外形相似的落石與山坡背景區(qū)分開來,此外也可以減少數(shù)據(jù)訓(xùn)練產(chǎn)生的誤差。
為了提取目標(biāo)更精確的特征,增加特征信息的傳播能力,引入通道注意力模塊,可以使網(wǎng)絡(luò)更關(guān)注檢測物體本身而不是背景,因此在YOLOX中將ECA-Net注意力模塊引入到骨干網(wǎng)絡(luò)最后一個(gè)殘差塊,作為特征融合層,命名為ECALayer。改進(jìn)后的主干網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 改進(jìn)后的骨干網(wǎng)絡(luò)結(jié)構(gòu)
ECA-Net(有效通道注意力)基于SENet(擠壓激勵(lì)網(wǎng)絡(luò))[19]改進(jìn)而來,它避免了SENet中因維數(shù)降低對通道注意預(yù)測帶來的不利影響,使用適當(dāng)?shù)木植靠缤ǖ澜换ィ瑫r(shí)保持輕量化,ECA-Net可以在幾乎不增加網(wǎng)絡(luò)模型參數(shù)量的情況下,帶來明顯的性能提升。
如圖7所示,SENet(squeeze-and-excitation networks)通過兩個(gè)非線性的全連接層和一個(gè)激活層計(jì)算網(wǎng)絡(luò)通道的權(quán)值,而ECA-Net將局部信息進(jìn)行了跨通道交互,提高特征信息的利用率。該結(jié)構(gòu)采用核大小為k的快速一維卷積計(jì)算通道權(quán)值,k的取值范圍受通道維度C的影響,其映射關(guān)系如公式(2)所示:
(2)
k與C采用指數(shù)函數(shù)進(jìn)行映射,C通常取值為2的整數(shù)冪。公式最后的odd代表取值最近的奇數(shù)。通過映射關(guān)系對內(nèi)核大小k調(diào)優(yōu)的方法,可以避免消耗過多的計(jì)算資源。
圖7 SENet和ECA-Net模塊結(jié)構(gòu)
深度學(xué)習(xí)中的損失類型由回歸損失和分類損失組成,其函數(shù)分別用于衡量各個(gè)框之間的位置信息以及減少樣本類別不均衡的問題。
YOLOX中的回歸損失函數(shù)分別采用IOU損失函數(shù)和GIOU損失函數(shù),IOU損失函數(shù)無法準(zhǔn)確反應(yīng)真實(shí)框與目標(biāo)框的重合度,而GIOU損失函數(shù)改進(jìn)了預(yù)測框和真實(shí)框的相交問題,但當(dāng)預(yù)測框與真實(shí)框處于包含關(guān)系時(shí),該函數(shù)也難以劃分兩個(gè)框的位置關(guān)系,降低算法的回歸效果。為了改進(jìn)以上缺點(diǎn),CIOU函數(shù)直接計(jì)算回歸預(yù)測框和真實(shí)框的歐幾里得距離來加速收斂,并解決各個(gè)框位置不理想的問題,因此在本實(shí)驗(yàn)中采用CIOU回歸損失函數(shù)替換IOU與GIOU損失函數(shù),以降低預(yù)測框和真實(shí)框位置關(guān)系不理想導(dǎo)致的誤差。CIOU損失函數(shù)如式(3)所示:
(3)
(4)
(5)
CIOU損失函數(shù)相比上兩種損失函數(shù),考慮了框的相交面積、歐幾里得距離和框的長寬比等,預(yù)測框的回歸更快且更準(zhǔn)確。
YOLOX中的原始分類損失函數(shù)采用二元交叉熵,該方法會(huì)產(chǎn)生大量的預(yù)選框來保證框能夠覆蓋檢測目標(biāo),而其中只有小部分能準(zhǔn)確涵蓋目標(biāo),產(chǎn)生大量冗余框,導(dǎo)致沒有檢測目標(biāo)的負(fù)樣本數(shù)量過多,無法為算法網(wǎng)絡(luò)的訓(xùn)練提供作用,導(dǎo)致算法學(xué)習(xí)無目標(biāo)的背景,而無法分辨檢測目標(biāo),減緩函數(shù)的迭代過程,并且可能無法優(yōu)化至最優(yōu)。因此將二元交叉熵?fù)p失函數(shù)替換為Focal Loss損失函數(shù),如式(6)所示:
FL(pt)=-αt(1-pt)γlog(pt)
(6)
其中:αt用于平衡正負(fù)樣本的重要性,取值范圍在0到1之間,取值在區(qū)間范圍內(nèi)越大則更關(guān)注正樣本,反正則更關(guān)注負(fù)樣本。γ用于衡量簡單樣本和困難樣本的重要性,取值范圍在0到5之間,取值在區(qū)間范圍內(nèi)越大則越關(guān)注困難樣本,反正則更關(guān)注簡單樣本,pt是sigmoid函數(shù)輸出的預(yù)測值。為降低函數(shù)的參數(shù)量,提出一種輕量的Focal Loss損失函數(shù),其公式如式(7)所示:
FL(pt)=-(1-pt)2log(pt)
(7)
因此考慮將變量αt設(shè)為常量1,將第變量γ設(shè)為2,提高正樣本與簡單樣本的重要性,使該損失函數(shù)在本實(shí)驗(yàn)中發(fā)揮最好作用。
為了保證本次實(shí)驗(yàn)的樣本數(shù)量飽和,防止訓(xùn)練效果不好的情況發(fā)生,引入Mosaic[20]和Mixup[21]數(shù)據(jù)增強(qiáng)方式。Mosaic數(shù)據(jù)增強(qiáng)方式首先選擇四張圖片,再分別進(jìn)行圖片的隨機(jī)變換,如使用裁剪或縮放的方式,最后將這四張圖片進(jìn)行拼接。Mixup數(shù)據(jù)增強(qiáng)方式則是隨機(jī)選擇兩張圖片進(jìn)行拼接,主要通過填充和融合的方式變換圖片。擴(kuò)充后的數(shù)據(jù)集能一定程度上提高算法訓(xùn)練效果,但是經(jīng)過以上兩種數(shù)據(jù)增強(qiáng)生成的圖片與真實(shí)圖片有一定區(qū)別,生成的數(shù)據(jù)量過多,可能會(huì)帶來不準(zhǔn)確的標(biāo)注框,導(dǎo)致檢測的結(jié)果脫離實(shí)際應(yīng)用。因此本文實(shí)驗(yàn)僅在前90%的訓(xùn)練流程中采用數(shù)據(jù)增強(qiáng)。
本文的實(shí)驗(yàn)環(huán)境為一臺(tái)筆記本電腦,使用的操作系統(tǒng)為Linux,CPU型號為i7-10750H,GPU型號為GTX 2070,顯存大小為8 GB,內(nèi)存大小為32 GB。使用的所有模型基于Pytorch1.9.1,cuda版本為10.1,cudnn版本為7.6.5。
在實(shí)際的應(yīng)用環(huán)境中,在可能發(fā)生落石的區(qū)域布置攝像頭,作為前端,使用攝像頭二十四小時(shí)監(jiān)測,遠(yuǎn)程的監(jiān)測中心作為后端,實(shí)時(shí)地對攝像頭捕捉到的畫面使用本文落石檢測方法檢測,一旦檢測到有落石發(fā)生的情況,就通過攝像頭監(jiān)測區(qū)域附近的警示器向民眾發(fā)出警告。實(shí)際應(yīng)用環(huán)境下的整個(gè)系統(tǒng)的檢測流程如圖8所示。
圖8 系統(tǒng)的檢測流程圖
本文的實(shí)驗(yàn)采用從網(wǎng)上收集的圖片以及自己拍攝的真實(shí)環(huán)境的圖片作為數(shù)據(jù),篩選后使用labelimg軟件標(biāo)注,一共得到了518個(gè)樣本,每份樣本包含一張圖片和一個(gè)xml文件,作為訓(xùn)練所用的數(shù)據(jù)集。經(jīng)過Mixup數(shù)據(jù)增強(qiáng)后,共得到數(shù)據(jù)集5 439個(gè),將所收集數(shù)據(jù)的80%作為訓(xùn)練集,剩余20%均分為驗(yàn)證集和測試集,最終得到訓(xùn)練集、驗(yàn)證集和測試集的數(shù)量分別為4351、 544和 544。數(shù)據(jù)集的標(biāo)注過程如圖9所示。
圖9 使用labelimg標(biāo)注數(shù)據(jù)
本實(shí)驗(yàn)使用的輸入圖片分辨率大小設(shè)置為640×640,選擇較高輸入圖片分辨率可以增強(qiáng)網(wǎng)絡(luò)對細(xì)節(jié)的學(xué)習(xí)效果。本文模型基于YOLOXs預(yù)訓(xùn)練權(quán)重,避免從零訓(xùn)練網(wǎng)絡(luò),可以提高網(wǎng)絡(luò)訓(xùn)練速度,縮短網(wǎng)絡(luò)訓(xùn)練時(shí)間,保證特征提取效果并減少權(quán)值隨機(jī)等問題。
模型的訓(xùn)練分為兩個(gè)階段,經(jīng)過多次嘗試,決定采用以下模型的訓(xùn)練參數(shù)。設(shè)定訓(xùn)練的總共次數(shù)為150個(gè)epoch,其中:0~50個(gè)epoch采用凍結(jié)訓(xùn)練,凍結(jié)用于圖像特征提取的主干網(wǎng)絡(luò),特征提取網(wǎng)絡(luò)不發(fā)生改變,僅對網(wǎng)絡(luò)進(jìn)行微調(diào),防止權(quán)值被破壞,設(shè)置凍結(jié)訓(xùn)練的batch size為8,學(xué)習(xí)率為默認(rèn)為0.001;51~150個(gè)epoch采用解凍訓(xùn)練,更新圖像特征提取的主干網(wǎng)絡(luò)中的全部參數(shù),占用顯存較大,為防止顯存壓力過大導(dǎo)致訓(xùn)練失敗,因此設(shè)置解凍訓(xùn)練的batch size為4,學(xué)習(xí)率設(shè)為默認(rèn)的0.000 1。
模型訓(xùn)練的迭代如圖10所示,在第50個(gè)epoch時(shí),由凍結(jié)訓(xùn)練到解凍訓(xùn)練的轉(zhuǎn)換,導(dǎo)致誤差值發(fā)生波動(dòng),在第100個(gè)epoch之后,訓(xùn)練誤差和驗(yàn)證誤差的值保持穩(wěn)定不變,趨近于收斂。此時(shí)若選取第150個(gè)epoch作為預(yù)測權(quán)重,可能出現(xiàn)過擬合的情況,為防止過擬合情況的發(fā)生,本文實(shí)驗(yàn)選用第100個(gè)epoch的權(quán)重作為預(yù)測權(quán)重。
圖10 訓(xùn)練誤差與驗(yàn)證誤差的迭代
本文采用每秒幀率FPS(frames per second)、均值平均精度mAP(mean average precision),作為模型的評估指標(biāo),其中mAP@0.5為主要指標(biāo),mAP@0.75為輔助指標(biāo)。
mAP的計(jì)算基于AP的值,計(jì)算所有類別的AP@0.5并求平均值即得mAP@0.5,mAP@0.75同理。計(jì)算公式分別如式(8)和式(9)所示:
(8)
(9)
其中:P代表網(wǎng)絡(luò)檢測精確度,R代表網(wǎng)絡(luò)檢測召回率,T代表類別數(shù)量,由于本實(shí)驗(yàn)中只有石頭1種類別的樣本,故T的值為1。
本文實(shí)驗(yàn)首先對比了YOLOv3、YOLOv4、YOLOv5和YOLOX的檢測效果,用mAP@0.5作為評估指標(biāo)。同時(shí)本文也采用YOLOX算法和改進(jìn)后的YOLOX算法應(yīng)用于落石檢測,作對比實(shí)驗(yàn)。
1)對比實(shí)驗(yàn):
所有實(shí)驗(yàn)均采用相同的數(shù)據(jù)集進(jìn)行訓(xùn)練、測試和驗(yàn)證。進(jìn)行模型對比實(shí)驗(yàn),結(jié)果如圖11所示。
圖11 YOLO系列模型精度對比
通過算法自帶FPS性能檢測,對同一張圖反復(fù)檢測,測得每秒可以檢測的幀數(shù),得到Y(jié)OLO系列模型的對比實(shí)驗(yàn)結(jié)果如表1所示。
表1 YOLO系列模型性能對比
由實(shí)驗(yàn)結(jié)果可以看出,隨著YOLO版本的迭代,檢測精度在不斷提升,其中YOLOX在mAP@0.5的指標(biāo)上相比以往版本有較大的提升,證明其性能較好,檢測精度高,在檢測結(jié)果上具有更高的準(zhǔn)確率。
2)消融實(shí)驗(yàn):
如圖12(a)和12(b)所示,分別使用YOLOX算法和改進(jìn)后的YOLOX算法對測試集544個(gè)樣本進(jìn)行預(yù)測并評估,圖12(a)中,原生YOLOX的評估結(jié)果mAP@0.5為89.05%,圖12(b)中,在原生YOLOX上增加了ECA注意力機(jī)制、SPPCSPC結(jié)構(gòu)改進(jìn)和損失函數(shù)替換,最終mAP@0.5為92.50%。
圖12 測試集評估結(jié)果對比
采用模型改進(jìn)的消融實(shí)驗(yàn),YOLOX改進(jìn)前后的對比實(shí)驗(yàn)結(jié)果如表2所示。
表2 YOLOX改進(jìn)前后性能對比
由實(shí)驗(yàn)數(shù)據(jù)可知,改進(jìn)YOLOX算法在mAP@0.5與mAP@0.75在指標(biāo)上取得了較大提升。相較于YOLOX算法,改進(jìn)YOLOX算法的mAP@0.5提升3.45%,mAP@0.75提升2.51%,對于形狀不規(guī)則的石頭識別準(zhǔn)確率提升較大;FPS保持穩(wěn)定,性能損耗較小,改進(jìn)后的模型依然滿足實(shí)時(shí)檢測的要求。
對比結(jié)果表明,改進(jìn)的YOLOX落石檢測方法的檢測精度提升較大。引入空間金字塔池化、通道注意力和損失函數(shù)的改進(jìn)提高網(wǎng)絡(luò)對目標(biāo)本身的關(guān)注程度,減少復(fù)雜背景信息帶來的影響。
本實(shí)驗(yàn)首先選用圖片作為檢測對象,如圖13所示,將落石放置于復(fù)雜環(huán)境下以模擬落石發(fā)生的場景,有樹枝、草地、落葉以及遮擋物的干擾,模型仍然能很好地對落石進(jìn)行檢測,且具有較高的置信度。
圖13 圖片檢測結(jié)果
本實(shí)驗(yàn)最終落實(shí)到視頻流的檢測上,將輸入視頻轉(zhuǎn)化為幀,對每一幀進(jìn)行檢測。如圖14所示,截取了落石視頻中的部分圖片,以展示改進(jìn)YOLOX模型在視頻檢測中的效果。
圖14 視頻檢測結(jié)果
用作落石視頻檢測的實(shí)驗(yàn)素材的視頻幀率為30FPS,視頻分辨率為640×360,改進(jìn)YOLOX的視頻檢測幀率相比于原視頻幀率,性能損失小,且對于視頻中形狀不一的落石有較高的檢測率。
本文提出了一種基于YOLOX的落石檢測方法,為了提高檢測準(zhǔn)確率和檢測效果,設(shè)計(jì)了一種改進(jìn)的YOLOX模型,在模型中對金字塔池化結(jié)構(gòu)進(jìn)行改進(jìn),引入ECA-Net注意力模塊,對Focal Loss損失函數(shù)進(jìn)行調(diào)整并替換原有函數(shù),此外采用了數(shù)據(jù)增強(qiáng)方法,擴(kuò)充數(shù)據(jù)集,提升網(wǎng)絡(luò)的學(xué)習(xí)效果,訓(xùn)練網(wǎng)絡(luò)時(shí)基于YOLOXs預(yù)訓(xùn)練模型,采用凍結(jié)和解凍訓(xùn)練的方式,避免網(wǎng)絡(luò)的權(quán)值被破壞和特征提取不明顯等問題。改進(jìn)后的落石檢測算法與原算法相比,mAP@0.5提高了3.45%,達(dá)到了92.50%,每秒檢測幀率提升0.3,驗(yàn)證了改進(jìn)后的算法具有較高的識別精度與較快識別速度,提升了圖像與視頻落石檢測的檢測效果。
因主要采取自拍攝圖片、自收集數(shù)據(jù)的原因,目前數(shù)據(jù)集中石頭相關(guān)的樣本較少,訓(xùn)練后的網(wǎng)絡(luò)可能在某些背景下的落石檢測精度較低,且有時(shí)會(huì)出現(xiàn)漏檢或檢測錯(cuò)誤的情況,發(fā)生誤報(bào),我們后續(xù)工作將繼續(xù)擴(kuò)充數(shù)據(jù)集,推進(jìn)本方法的實(shí)際應(yīng)用。YOLOX作為較新提出的模型,我們后續(xù)將探究YOLOX的更多的改進(jìn)方法,以滿足更高標(biāo)準(zhǔn)的實(shí)際應(yīng)用需求。