王乃洲 金連文 趙清利 梁添才
(1.華南理工大學(xué) 廣東省廣州市 510640 2.廣電智能安全研究院 廣東省廣州市 510656)
隨著我國城鎮(zhèn)化的加速發(fā)展,城市人口流動頻繁,交通擁擠,安全監(jiān)管難度大等問題日益嚴(yán)峻。為解決城市發(fā)展難題,智慧城市建設(shè)已成為當(dāng)今世界城市發(fā)展不可逆轉(zhuǎn)的歷史潮流。近幾年,在政策的引導(dǎo)下,城市安全主動防控體系的建設(shè)如火如荼,其核心在于人、車的管控:通過智能監(jiān)控設(shè)備,實(shí)現(xiàn)人、車的實(shí)時檢測、跟蹤與識別,將非結(jié)構(gòu)化的視頻數(shù)據(jù)轉(zhuǎn)化為人和機(jī)器可理解的結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù),并進(jìn)一步轉(zhuǎn)化為警務(wù)實(shí)戰(zhàn)所需的情報數(shù)據(jù),從而視頻數(shù)據(jù)向信息化、情報化的方向的轉(zhuǎn)化,達(dá)到視頻感知世界的智慧應(yīng)用。
實(shí)際應(yīng)用中,車型檢測易受尺寸、光照、角度、遮擋等因素影響。評價車型檢測效果的一個重要的性能指標(biāo)是mAP(mean Average Precision)。如何提高檢測模型mAP成為車型檢測的一項(xiàng)重要研究內(nèi)容。
傳統(tǒng)的檢測方法,主要采用邊緣特征、 形狀特征、統(tǒng)計特征或者變換特征等圖像的各類靜態(tài)特征來描述車輛等目標(biāo),其中,代表性的特征包括Haar小波特征[1]、HOG 特征[2]、Edgelet特征[3]等。隨著深度學(xué)習(xí)技術(shù)的發(fā)展以及GPU等智能硬件性能的提升,基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)特征提取方法在目標(biāo)檢測方面取得了重大突破,主流方法可大致分為two-stage和one-stage兩類方法。Two-stage方法主要是指基于Region Proposal的算法,如R-CNN[4]、Fast-R-CNN[5]、Faster-R-CNN[6]等,該類算法首先在圖片上生成若干個Region Proposal,然后,通過CNN在Region Proposal上進(jìn)行候選框分類和回歸。目前,該類方法精度最高,但檢測速度慢,實(shí)際應(yīng)用中無法達(dá)到實(shí)時效果;one-stage方法使用一個CNN直接預(yù)測不同目標(biāo)的類別與位置,屬于End-to-End方法,如工程中常用的SSD[7]、YOLO系列[8,10,11]等。
本文基于Diou loss[9]提出兩種基于Yolov3[10]框架的車型檢測方法。Diou考慮了預(yù)測框與ground-truth中心之間的距離,有效規(guī)避了IoU loss存在的收斂速度慢,特定情況下回歸精度低等問題,在不增加模型大小以及推理速度的情況下,提升車型檢測精度。最后,通過實(shí)驗(yàn)證明所提技術(shù)的有效性。
Yolov3在Yolov1和Yolov2[11]上作了較大的改進(jìn):
(1)采用Darknet-53的前52層作為基礎(chǔ)網(wǎng)絡(luò),其中,Darknet-53較ResNet-152精度不變的情況下,速度上有明顯的提升;
(2)提出分級預(yù)測策略,具體地,通過三級預(yù)測,改進(jìn)了小目標(biāo)的檢測效果,如圖1, 2 所示。三級預(yù)測依次針對大、中、小三類目標(biāo)進(jìn)行檢測,以第一級為例,針對大目標(biāo)檢測,輸出feature map大小為13×13,(以輸入圖片大小416×416為例,32倍下采樣結(jié)果),每個cell分配三個anchor box,共九個。對于之后兩級檢測,利用Up Sampling并Concatenate基礎(chǔ)網(wǎng)絡(luò)中的相應(yīng)的feature map實(shí)現(xiàn)對中、小目標(biāo)檢測,其中,anchor box可通過訓(xùn)練樣本聚類獲得(注:通過實(shí)驗(yàn)發(fā)現(xiàn),以聚類獲得anchor box訓(xùn)練效果可能欠佳,可通過對部分anchor依AP結(jié)果進(jìn)行微調(diào))。將為定值,若二者不相交時,IoU loss 恒為0,如圖4(a)所示。此時,從IoU loss計算結(jié)果,無法看出優(yōu)化方向,從而影響檢測效果。 在2020年AAAI大會上,Zheng等人[9]提出了Diou loss (Distance IoU loss):
圖1:Yolov3網(wǎng)絡(luò)結(jié)構(gòu)圖
圖2:Convolutional Set網(wǎng)絡(luò)結(jié)構(gòu)圖
圖3:Tiny Yolov3網(wǎng)絡(luò)結(jié)構(gòu)圖
表1:檢測數(shù)據(jù)集類別描述
表2:四種模型性能測試結(jié)果對比
在獲得預(yù)測框bbox, Yolov3利用NMS(非最大化抑制)來過濾掉多余的預(yù)測框。在此過程中,對于獲得最大分?jǐn)?shù)預(yù)測框M,我們采用Diou-NMS進(jìn)行多余預(yù)測框過濾:
圖4:IoU與Diou示意圖
圖5:車型檢測數(shù)據(jù)集樣例
Yolov3重點(diǎn)提升的是目標(biāo)檢測精度,尤其是小目標(biāo),而速度上略有下降。Tiny-Yolov3,是Yolov3的替代方案,如圖3所示。Tiny-Yolov3速度較Yolov3有極大的提升,一方面,其對骨架網(wǎng)絡(luò)進(jìn)行了瘦身;另一方面,采用了兩級預(yù)測策略。mAP精度指標(biāo)較Yolov3有明顯下降,在實(shí)際應(yīng)用中,可通過場景需求選擇模型種類。
Yolov3是一種End-to-End目標(biāo)檢測算法,其Loss函數(shù)由三部分組成:坐標(biāo)誤差項(xiàng),IoU誤差項(xiàng)和分類誤差項(xiàng)。IoU即是預(yù)測框bbox與ground-truth之間的交并比,如下式所示:
則,IoU loss 可表示為:LIoU=1-IoU。由IoU及IoU loss 定義可以看出,當(dāng)預(yù)測框bbox與ground-truth呈現(xiàn)包含關(guān)系時,IoU loss
其中,ε是閾值,訓(xùn)練與測試過程中均取為0.5,si分類得分。
實(shí)驗(yàn)數(shù)據(jù)來源于路邊、岔口等攝像機(jī)實(shí)際采集的視頻數(shù)據(jù)。將視頻數(shù)據(jù)按幀抽取,并通過labelImg進(jìn)行手工標(biāo)注,共獲得29847張標(biāo)注好的圖像,如圖5所示,其中2985張圖像作為測試集,其他26862圖像作為訓(xùn)練集,測試集與訓(xùn)練集圖像數(shù)量之比約為1:9。各類車型名稱與標(biāo)簽名稱如表1所示。
在實(shí)際系統(tǒng)中,檢測模塊主要用于目標(biāo)定位于初分類,因此,這里將容易混淆的車型進(jìn)行了合并,如:Car, MPV, SUV統(tǒng)一用Car表示。
本文中,模型訓(xùn)練與測試在Ubuntu16.0.4環(huán)境下進(jìn)行,所使用的服務(wù)器安裝有4塊NVIDIA GTX 1080Ti顯卡。采用Darknet[11]框架進(jìn)行訓(xùn)練,網(wǎng)絡(luò)的訓(xùn)練參數(shù)設(shè)置如下:采用Multistep學(xué)習(xí)策略,初始學(xué)習(xí)率為 0.001,max_batches設(shè)為12萬次,steps=30000,60000,80000,10000, decay為0.0005,訓(xùn)練時batch size為32,測試時batch size為1,采用SGD學(xué)習(xí)策略,momentum為0.9。
實(shí)驗(yàn)比較了四種網(wǎng)絡(luò)模型,分別為:Diou-Yolov3, Yolov3, Diou-Tiny-Yolov3和Tiny-Yolov3,實(shí)驗(yàn)結(jié)果如圖6及表2所示。從實(shí)驗(yàn)結(jié)果可以看出,Diou-Yolov3以及Diou-Tiny-Yolov3分別較Yolov3以及Tiny-Yolov3在Map都略有提示,分別提升0.06和0.2個百分點(diǎn),而在平均精度avg_loss上也略有減小,分別減小了0.34和0.13個百分點(diǎn)。重要的是,Diou的引入并不會增加模型大小以及推理速度,是一種有效的提升模型性能的改進(jìn)方案。圖7中對Diou-Yolov3和Diou-Tiny-Yolov3進(jìn)行了驗(yàn)證,可以看出,實(shí)測效果達(dá)到了預(yù)期目標(biāo)。
本文研究了基于Diou-Yolov3及Diou-Tiny-Yolov3的車型檢測方法。該方法考慮了預(yù)測框與ground-truth中心之間的距離,有效規(guī)避了IoU loss存在的缺點(diǎn),在不增加模型大小以及推理速度的情況下,提升了車型檢測精度。
圖6:檢測模型訓(xùn)練曲線
圖7:模型測試效果展示