鄭偉彬
(福州福大自動(dòng)化科技有限公司,福建 福州 350008)
隨著社會(huì)的發(fā)展,智慧城市成為未來城市的發(fā)展方向[1]。智慧交通系統(tǒng)作為智慧城市的關(guān)鍵一環(huán),具有重要的研究價(jià)值。智能交通系統(tǒng)可以有效地感知城市中各個(gè)街道的車流情況,有效提升道路利用效率,減少交通堵塞情況的發(fā)生[2]。智慧交通系統(tǒng)的核心是對(duì)于道路車輛的檢測(cè)。相較于傳統(tǒng)傳感器的感知方法,通過視頻圖像對(duì)車輛進(jìn)行檢測(cè),具有成本低、靈活性高以及可以同時(shí)檢測(cè)多條道路等特點(diǎn),因此得到了廣泛的關(guān)注。
車輛檢測(cè)的主要模型有基于運(yùn)動(dòng)的模型、基于特征的模型以及基于卷積神經(jīng)網(wǎng)絡(luò)的模型[3]。近些年來,深度學(xué)習(xí)技術(shù)高速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)在與圖像目標(biāo)識(shí)別領(lǐng)域具有優(yōu)秀的表現(xiàn)。YOLO 作為一種優(yōu)秀的一階段(one-stage)目標(biāo)檢測(cè)算法,在各個(gè)目標(biāo)檢測(cè)領(lǐng)域得到廣泛應(yīng)用,且取得良好的效果[4-5]。相比于Faster R-CNN 這種兩階段(two-stage)目標(biāo)檢測(cè)算法[6],YOLO 具有更快的檢測(cè)速度。進(jìn)行車輛檢測(cè)時(shí),需要對(duì)拍攝到的車輛視頻進(jìn)行檢測(cè),一旦檢測(cè)速度過慢,就會(huì)造成車輛的漏檢,因此YOLO 比Faster-RCNN更適合用于車輛檢測(cè)任務(wù)。
YOLO 將待檢測(cè)圖片劃分為S×S個(gè)網(wǎng)格,對(duì)網(wǎng)格進(jìn)行檢測(cè),判斷網(wǎng)格內(nèi)是否是目標(biāo)物體。YOLO 網(wǎng)絡(luò)輸出的值為預(yù)測(cè)目標(biāo)的中心點(diǎn)、錨框?qū)捀吲c類別[7]。YOLO 算法最早在2016 年由REDMON 等人提出,經(jīng)過近些年的更新與優(yōu)化,已經(jīng)升級(jí)到了YOLOv4。YOLOv4 網(wǎng)絡(luò)采用CSPDarknet-53 作為主干特征提取網(wǎng)絡(luò),使用空間金字塔池化提升感受野,使用路徑聚合網(wǎng)絡(luò)(PANet)融合了多個(gè)主干輸出的特征圖,有效提升模型對(duì)特征的提取能力。但在精度提升的同時(shí),更加復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)使得模型的參數(shù)量變得更大,對(duì)設(shè)備性能的要求也變得更高。因此,需要對(duì)原始的YOLOv4網(wǎng)絡(luò)進(jìn)行改進(jìn),降低其參數(shù)量,壓縮模型體積。
MobileNetV2 是一種輕量化的卷積神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)的關(guān)鍵結(jié)構(gòu)有逆殘差結(jié)構(gòu)與線性瓶頸結(jié)構(gòu)。ResNet 的殘差結(jié)構(gòu)是對(duì)特征圖進(jìn)行降維后再升維,而MobileNetV2 的逆殘差結(jié)構(gòu)是先將特征圖進(jìn)行升維,再進(jìn)行降維,故稱之為逆殘差[8],如圖1 所示。
圖1 MobileNetV2 逆殘差結(jié)構(gòu)
同時(shí),為了減少模型的參數(shù)量,沿用了MobileNetV1的深度可分離卷積。深度可分離卷積在特征圖的輸入層使用了1×1 的逐點(diǎn)卷積(Pointwise Convolution,PW)進(jìn)行升維,再經(jīng)過3×3 的深度卷積(Depthwise Convolution,DW)。由于深度卷積的每個(gè)卷積核只對(duì)一個(gè)通道進(jìn)行卷積,因此計(jì)算量大幅減小。經(jīng)過深度卷積后,再使用1×1 的逐點(diǎn)卷積,將各個(gè)特征圖之間的信息聚合,得到與標(biāo)準(zhǔn)卷積相同的輸出。
深度可分離卷積與逆殘差結(jié)構(gòu)雖然大幅減少了數(shù)據(jù)量,但是可能會(huì)造成低維特征的丟失。因此,MobieNetV2 在完成降維后,不使用ReLu6 激活函數(shù),而是用線性層作為代替,稱之為線性瓶頸結(jié)構(gòu)[9],如圖2 所示。
圖2 MobileNetV2 線性瓶頸結(jié)構(gòu)
激活函數(shù)使用ReLu6 激活函數(shù),可以緩解激活后權(quán)值相差過大的問題,如式(1)所示:
式中:IOU為預(yù)測(cè)框與真實(shí)框的交疊率,c為能夠同時(shí)包含預(yù)測(cè)框與真實(shí)框的矩形的對(duì)角線距離;v是真實(shí)邊界框與預(yù)測(cè)邊界框的寬高相似比,如式(3)所示;α是v的影響因素,其計(jì)算如式(4)所示;d為預(yù)測(cè)框與真實(shí)框的中心點(diǎn)距離,d的計(jì)算如式(5)所示。
為了減小YOLOv4 模型的參數(shù)量,壓縮YOLOv4模型的大小,本文對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行改進(jìn),使用MobieNetv2 網(wǎng)絡(luò)替換YOLOv4 原本的CSPDarkNet53主干特征提取網(wǎng)絡(luò)。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。替換掉主干特征網(wǎng)絡(luò)后,同時(shí)將YOLO 的特征金字塔與特征融合部分的卷積模塊也替換為深度可分離卷積,可以進(jìn)一步壓縮模型大小。
圖3 MobileNet-YOLOv4 模型網(wǎng)絡(luò)結(jié)構(gòu)
YOLO 算法中,每個(gè)YOLO Head 都有對(duì)應(yīng)預(yù)先設(shè)置好的3 個(gè)預(yù)選錨框,用來檢測(cè)不同大小、不同比例的目標(biāo)。預(yù)選錨框的初始尺寸會(huì)對(duì)模型的檢測(cè)效果有一定影響,如果錨框的初始值更加貼近帶檢測(cè)的目標(biāo)物體,模型的檢測(cè)精度就能更高。因此,本研究中使用K-Means++聚類算法,對(duì)訓(xùn)練集樣本的標(biāo)注框進(jìn)行聚類,得到9 類初始錨框尺寸。聚類完成后,得到的錨 框 大 小 為[12,18],[20,26],[29,35],[45,40],[36,58],[66,58],[52,87],[84,93],[133,177]。將聚類得到的9 個(gè)錨框大小作為本研究的初始錨框。
本研究所用的數(shù)據(jù)集為UA-DETRAC 數(shù)據(jù)集[11]。該數(shù)據(jù)集中的圖像拍攝于北京與天津的過街天橋。由于UA-DETRAC 中原始數(shù)據(jù)為視頻圖像,數(shù)據(jù)集中的圖片每秒有24 張圖片,出現(xiàn)的車輛重復(fù)較多,過大的數(shù)據(jù)集會(huì)導(dǎo)致網(wǎng)絡(luò)訓(xùn)練速度過慢。為了提升網(wǎng)絡(luò)訓(xùn)練效率,需要對(duì)數(shù)據(jù)集進(jìn)行精簡,從每個(gè)視頻轉(zhuǎn)為圖像的文件夾中每間隔500 張圖片抽取一張圖,重構(gòu)數(shù)據(jù)集,可以有效減少重復(fù)出現(xiàn)的車輛圖片數(shù)。同時(shí),將數(shù)據(jù)集中所有類別的車統(tǒng)一記為類別car。
實(shí)驗(yàn)所用的硬件設(shè)備如下:CPU 為i7-9750H,GPU 為GTX1660,內(nèi)存16 GB。實(shí)驗(yàn)所用操作系統(tǒng)為Windows,編譯環(huán)境為Pycharm,編程語言為Python,搭建模型的深度學(xué)習(xí)框架為Pytorch,Pytorch 版本為1.6.0。
模型訓(xùn)練的Epoch 設(shè)置為200,Batch 設(shè)置為16,模型初始學(xué)習(xí)率為0.01,采用Adam 算法優(yōu)化模型訓(xùn)練過程,動(dòng)量參數(shù)為0.94。訓(xùn)練時(shí)采用馬賽克數(shù)據(jù)增強(qiáng)方法,對(duì)輸入圖像進(jìn)行反轉(zhuǎn)、拼接等操作,可以有效增強(qiáng)模型的魯棒性。
對(duì)于目標(biāo)檢測(cè)任務(wù),常用的檢測(cè)指標(biāo)為AP,mAP。AP 表示某類檢測(cè)目標(biāo)的平均精度,mAP 表示所有類別的AP 均值。由于本研究是單分類任務(wù),因此AP 與mAP 相同。選取模型收斂后保存的權(quán)重文件,對(duì)測(cè)試集圖像進(jìn)行檢測(cè),得到模型檢測(cè)的平均精度與檢測(cè)速度,同時(shí)計(jì)算整個(gè)模型的大小,實(shí)驗(yàn)結(jié)果如表1 所示。
表1 實(shí)驗(yàn)結(jié)果對(duì)比
從實(shí)驗(yàn)結(jié)果可以看出,對(duì)比原始的YOLOv4 模型,MobileNet-YOLOv4 模型的AP 值僅減少了0.77%,模型的檢測(cè)精度并沒有發(fā)生明顯的下降。模型檢測(cè)速度從28.35 f·s-1提升到了47.31 f·s-1,提升了66.9%,對(duì)于路面車輛檢測(cè)研究來說,更高的檢測(cè)速度意味著能檢測(cè)到以較快速度行駛的車輛。與此同時(shí),輕量化改進(jìn)后的YOLOv4 模型的大小從64.36 Mb 下降到了11.73 Mb,模型壓縮了81.77%。從實(shí)驗(yàn)結(jié)果可以看出,MobileNet-YOLOv4 模型在犧牲了較小檢測(cè)精度的情況下,有效提升了模型的檢測(cè)速度,同時(shí)壓縮了模型的體積,使得模型可以適應(yīng)計(jì)算力較低的運(yùn)行設(shè)備。從測(cè)試集中挑選若干圖片進(jìn)行檢測(cè),展示檢測(cè)結(jié)果如圖4 所示。從圖4 可以看出,改進(jìn)后的模型仍然可以較好地檢測(cè)出路面車輛,檢測(cè)框也都具有較高的置信度。
圖4 檢測(cè)結(jié)果展示圖
本文使用了MobileNetV2 網(wǎng)絡(luò)來替換YOLOv4 的主干特征提取網(wǎng)絡(luò),同時(shí)將網(wǎng)絡(luò)中的卷積替換為深度可分離卷積,實(shí)現(xiàn)了在不過多影響模型檢測(cè)精度的前提下,有效壓縮了模型的體積,同時(shí)也提升了模型的檢測(cè)速度。實(shí)驗(yàn)結(jié)果表明,在不同光線、不同天氣、不同角度及不同遠(yuǎn)近程度下,所設(shè)計(jì)的模型均能有效地對(duì)路面車輛進(jìn)行準(zhǔn)確的檢測(cè),驗(yàn)證了模型的有效性。