孫盼盼,丁學(xué)文,3,常黎玫,蔡鑫楠,董國軍
(1 天津職業(yè)技術(shù)師范大學(xué) 電子工程學(xué)院,天津 300222;2 天津市高速鐵路無線通信企業(yè)重點實驗室,天津 300350;3 天津云智通科技有限公司,天津 300350)
目標檢測作為計算機視覺的研究熱點之一,引起了各國學(xué)者的關(guān)注。近年來深度學(xué)習(xí)的目標檢測算法得到了快速發(fā)展,識別精度和速度也在不斷提升?;谏疃葘W(xué)習(xí)的目標檢測算法分為2 類:一階段和兩階段。其中,SSD[1-2]和YOLO(You Only Look Once)系列[3-6]是一階段檢測算法,R-CNN[7]、Fast R-CNN[8]和Faster R-CNN[9]是兩階段檢測算法。與兩階段識別相比,一階段識別準確率略低,但識別速度要快上數(shù)百倍。在單階段算法中,YOLOv5比SSD 快2~3 倍,所以YOLOv5 在開發(fā)人員中更受歡迎。目前,YOLOv5 已然廣泛應(yīng)用在對實時性要求較高的各種目標識別領(lǐng)域中。雖然YOLOv5 具有良好的目標檢測性能,但對無人機影像這類小目標的識別率卻較低。與其他目標相比,容易發(fā)生漏檢和誤檢,這在一定程度上限制了YOLOv5 的使用。在實際應(yīng)用場景中,會有相當(dāng)多的對象都是小目標,小目標在圖像中面積小、特征也不明顯,采用多層卷積神經(jīng)網(wǎng)絡(luò)后,可能出現(xiàn)部分特征丟失的問題,從而導(dǎo)致識別率的下降。針對以上問題,本文提出改進的YOLOv5 目標檢測算法,該算法增加了有利于小目標的處理,從而提高了精確率、召回率和平均精確率。
YOLOv5 按照網(wǎng)絡(luò)深度和網(wǎng)絡(luò)寬度的大小,可以分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)最為小巧,同時圖像推理速度最快達0.007 s,故本文使用YOLOv5s模型。YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。由圖1 可知,YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)主要由輸入端、基準網(wǎng)絡(luò)、Neck 網(wǎng)絡(luò)以及Head 輸出端四部分組成。對此將展開研究分述如下。
圖1 YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)Fig. 1 Network structure of YOLOv5s
(1)輸入端。表示輸入的圖片的部分。YOLOv5s 輸入大小為608*608 的圖像,該階段會把輸入圖像進行縮放,直至與網(wǎng)絡(luò)的輸入大小相等,再對圖像進行歸一化處理。在網(wǎng)絡(luò)訓(xùn)練階段,YOLOv5s 為了提高網(wǎng)絡(luò)模型的訓(xùn)練速度和網(wǎng)絡(luò)精度,在網(wǎng)絡(luò)模型中增加了Mosaic 數(shù)據(jù)增強操作;為了使數(shù)據(jù)集多樣化以及減少GPU 的占用,在網(wǎng)絡(luò)模型中增加了自適應(yīng)錨框的計算以及自適應(yīng)圖片縮放。
(2)基準網(wǎng)絡(luò)。通常是提取一些通用的特征。YOLOv5s 中使用了CSPDarknet53 和Focus 網(wǎng)絡(luò)結(jié)構(gòu)作為基準網(wǎng)絡(luò),CSP 結(jié)構(gòu)是用來進行下采樣的,但和傳統(tǒng)卷積的下采樣不太相同,CSP 結(jié)構(gòu)可以對Focus 的計算量和普通卷積的下采樣計算量進行比較。
(3)Neck 網(wǎng)絡(luò)。通常位于基準網(wǎng)絡(luò)和輸入端之間的位置,利用Neck 網(wǎng)絡(luò)可以使提取的特征具有多樣性及更好的穩(wěn)定性。YOLOv5s 用到了FPN+PAN模塊,F(xiàn)PN 層是自頂向下的特征卷積用于傳達強語義特征,而特征金字塔是自底向上的特征卷積用于傳達強定位特征,兩兩聯(lián)合,從不同的主干層對不同的檢測層進行參數(shù)聚合,進而達到很好的效果。
(4)Head 輸出端。用來完成目標檢測結(jié)果的輸出。YOLOv5s 主要是GIoU_Loss代替IoU作為bounding box 回歸的損失,IoU的缺點是不重合或者重合面積相等,而YOLOv5s 的GIoU在計算時,不同位置的預(yù)測框都會對GIoU產(chǎn)生影響,從而彌補了IoU的不足,并進一步提升算法的檢測精度。
不同版本的YOLOv5 檢測算法在COCO2017 驗證集與測試集上的檢測效果如圖2 所示。
圖2 YOLOv5 效果展示Fig. 2 YOLOv5 effect display
圖2 中,橫軸表示YOLOv5 算法在GPU 上推理出每張圖片需要的毫秒數(shù),距原點越近、效果越好;縱軸表示YOLOv5 算法在COCO2017 的測試集上測試出的AP值,距離原點越遠、效果越好。通過觀察分析可以看出,相較于EfficientDet,YOLOv5s 的AP值更高,而且推理速度更快;相較于YOLOv5m、YOLOv5l、YOLOv5x,YOLOv5s 具有更高的速度,但AP值并不高,不過也在可接受范圍內(nèi)。
YOLOv5 的整體效果展示見表1。由表1 可知,YOLOv5s 的輸入圖片分辨率為640*640,在COCO測試集與驗證集上的AP指標為36.8,AP50 指標為55.6。該算法在V100 GPU 上的推理速度僅僅需要2.2 ms,幀率為455 FPS,該網(wǎng)絡(luò)的模型大小僅為7.3 M。相對YOLOv5m、YOLOv5l 及YOLOv5x 模型來說,YOLOv5s 的速度更快、模型較小、且精度也較高。故而,在本文中擬選擇YOLOv5s 模型進行研究。
表1 YOLOv5 效果展示Tab.1 YOLOv5 effect display
考慮到Y(jié)OLOv5s 對傳統(tǒng)目標檢測較好,但對小目標經(jīng)常出現(xiàn)誤檢、漏檢,從而造成精度較低的問題,本文提出了改進的YOLOv5s。改進的YOLOv5s主要是在第17 層后,對特征圖增加上采樣操作,使特征圖繼續(xù)擴大,如此一來就改善了小目標淺層語義信息不足的缺陷。
本文實驗采用無人機影像VisDrone 數(shù)據(jù)集。VisDrone 數(shù)據(jù)集由中國天津大學(xué)機器學(xué)習(xí)和數(shù)據(jù)挖掘?qū)嶒炇业腁ISKYEYE 團隊收集并且標注的[10]。該數(shù)據(jù)集在采集時把攝像機架設(shè)在無人機上,在中國14 個不同地區(qū)的城市和村莊以及不同的天氣和光照下,采集稀疏程度不同的行人、小汽車、三輪車、自行車等不同的物體。VisDrone 目標檢測數(shù)據(jù)集中包 括 pedestrian、people、bicycle、car、van、truck、tricycle、awning-tricycle、bus、motor 共10 類被標注的物體。其中,pedestrian 為直立姿勢或者行走的人,除pedestrian 以外的人定義為people。通過對數(shù)據(jù)集進行分析,得到可視化結(jié)果,如圖3 所示。
圖3 數(shù)據(jù)集可視化結(jié)果Fig. 3 Visualization results of the dataset
由圖3(a)中可以看出,圖像中的大多數(shù)都是較小的標記框。由圖3(b)中可以看出,物體中心點位置在x軸方向大多數(shù)分布在0.4~0.6 之間,在y軸方向大多數(shù)分布在0~0.6 之間。在圖3(c)中,橫坐標表示物體的寬,縱坐標表示物體的高。綜合圖3(b)和圖3(c)的分析可知,該數(shù)據(jù)集中小物體較多,并且存在一定程度的遮擋。
本文實驗采用的電腦硬件配置及Pycharm 軟件設(shè)置情況見表2。
表2 實驗環(huán)境參數(shù)Tab.2 Experimental environmental parameters
預(yù)測值為正例,記為P(Positive);預(yù)測值為反例,記為N(Negative);預(yù)測值與真實值相同,記為T(True);預(yù)測值與真實值相反,記為F(False)。改進的 YOLOv5s 采用平均精度(mean average precision,mAP)來驗證所提模型相較于YOLOv5s模型的優(yōu)越性。mAP在計算時需用到Precision、Recall、AP,對此可做闡釋表述如下。
(1)精度。具體計算公式為:
(2)召回率(Recall)。具體計算公式為:
(3)AP和mAP。具體計算公式為:
本實驗選用數(shù)據(jù)集中的6 471 張圖片作為訓(xùn)練集,548 張圖片作為驗證集訓(xùn)練300 次,YOLOv5s 和改進YOLOv5s 的VisDrone 數(shù)據(jù)集的評估結(jié)果見表3。
表3 VisDrone 數(shù)據(jù)集結(jié)果評估Tab.3 Results evaluation of VisDrone data set
從仿真實驗結(jié)果可以看出,改進YOLOv5s 各個類別的AP值都有10%~15%的提升,mAP值提升了14.9%,由此可見改進的YOLOv5s 確實對小目標有了很好的改善。
訓(xùn)練結(jié)束后,本文采用無人機重新捕獲圖片進行測試,運行的效果如圖4 所示。
圖4 測試結(jié)果Fig. 4 Test results
為方便查看無人機影像的檢測結(jié)果,從圖像中選取圖4(a)的局部區(qū)域①、②、③,如圖5(a)~(c)所示,選取圖4(b)的局部區(qū)域①、②、③,如圖6(a)~(c)所示。
圖5(a)中把井蓋誤檢為bicycle,圖6(a)中此井蓋沒有被認為是標簽中的物體;圖5(b)中漏檢多輛被樹木遮擋的car,圖6(b)中被樹木遮擋的car 均被正確檢出;圖5(c)中把tricycle 誤檢為car,漏檢pedestrian 和people,car 的概率為39%;圖6(c)改進YOLOv5 測試結(jié)果中將該car 的概率提升為72%,pedestrian 和people 均被正確檢出,但此圖卻把tricycle 誤檢為motor。因此改進的YOLOv5s 改善了漏檢、誤檢以及檢測效果不佳的問題,也仍有待進一步擴充數(shù)據(jù)集,并且進行更多訓(xùn)練來優(yōu)化模型。總之,改進的YOLOv5s 算法在小目標檢測方面已經(jīng)具有較好的檢測性能。
圖5 YOLOv5s 測試結(jié)果Fig. 5 YOLOv5s test results
圖6 改進YOLOv5s 測試結(jié)果Fig. 6 Improved YOLOv5s test results
針對自然環(huán)境使用YOLOv5s 檢測無人機影像時出現(xiàn)的漏檢、誤檢以及檢測效果欠佳等問題,本文提出了一種基于YOLOv5s 模型改進的無人機影像檢測模型。研究中,在17 層后增加上采樣模塊,來彌補淺層特征語義信息的不足,從而提高了模型的特征提取能力,模型的檢測精度也得以提升。改進后的YOLOv5s 與原網(wǎng)絡(luò)的無人機影像檢測模型對比,獲得了很好的檢測結(jié)果,然而整體的平均精度稍微偏低。在今后的研究當(dāng)中,將會在這一方向做更加深入的探討,以利于有效提升最終效果。