劉洪龍,李向陽*,徐正華,盧朝暉
(1.南華大學(xué) 資源環(huán)境與安全工程學(xué)院,湖南 衡陽 421001;2.浙江力嘉電子科技有限公司,浙江 紹興 311800)
圖像視頻處理是當(dāng)今計(jì)算機(jī)應(yīng)用的重要領(lǐng)域,在交通安全監(jiān)管領(lǐng)域有著重要應(yīng)用。交通管理部門的非現(xiàn)場執(zhí)法系統(tǒng),針對不同的交通違法行為,識別原理各不相同,有些是基于視覺進(jìn)行預(yù)識別,如不系安全帶、駕車打電話等違法行為。
由于大量高清監(jiān)控設(shè)備所監(jiān)控的區(qū)域較大,一張針對特定車輛抓拍的照片中,往往存在多輛無關(guān)的車輛。在數(shù)據(jù)審核中,僅根據(jù)照片中特定目標(biāo)區(qū)域圖像質(zhì)量,來決定該照片可否作為車輛的違法證據(jù)。如針對不系安全帶、駕車打電話的違法行為,前排駕駛員所在區(qū)域的圖像質(zhì)量,決定了違法證據(jù)的可靠性。
圖像質(zhì)量評價一般分為兩大類,主觀評價方法和客觀評價方法??陀^評價方法一般分為,全參考、半?yún)⒖己蜔o參考三類。全參考和半?yún)⒖夹杞柚鷧⒖紙D像進(jìn)行對比,無參考評價方法采用提取統(tǒng)計(jì)特征并利用分類器判斷失真類型,然后利用對應(yīng)回歸模型估算圖像質(zhì)量[1-5]。
客觀評價方法在交通違法證據(jù)分類評價中面對整幅圖像,關(guān)鍵區(qū)域?yàn)轳{駛員所在小尺度區(qū)域,同時缺乏參考圖像,實(shí)際測試不能得到很好的評價效果。主觀評價方法的決策者是人,該種評價方法最準(zhǔn)確可靠。近年來隨著深度學(xué)習(xí)在圖像識別領(lǐng)域技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)AlexNet[6]、GoogleNet[7]、ResNet[8]、SqueezeNet等在圖像分類任務(wù)中取得了較好的成果,目標(biāo)檢測算法以R-CNN、Fast R-CNN[9]、Faster-RCNN、YOLO各類方法在車輛檢測中得到廣泛應(yīng)用。YOLO算法經(jīng)過多次迭代從YOLOv1[10]、YOLO9000[11]、YOLOv3、YOLOv4到Y(jié)OLOv5,YOLO算法在靈敏度和處理時間上得到了較好平衡。
機(jī)器學(xué)習(xí)應(yīng)用于實(shí)際場景時面臨無法獲得該領(lǐng)域大量訓(xùn)練數(shù)據(jù)的主要障礙,除此之外還面臨場景數(shù)據(jù)量小、模型需要強(qiáng)魯棒性、個性化定制、數(shù)據(jù)隱私安全等一系列問題[1]。遷移學(xué)習(xí)是一種新的機(jī)器學(xué)習(xí)范式,即使在沒有太多標(biāo)簽數(shù)據(jù)的場景下,也能夠幫助提升模型性能[1]。
本文數(shù)據(jù)來源于某市公安局交警警察大隊(duì),主要針對基于機(jī)器視覺的交通違法預(yù)判圖像,根據(jù)不同的違法行為,針對性地提取交通違法預(yù)判圖像中的關(guān)鍵區(qū)域,再對圖像關(guān)鍵區(qū)域做出質(zhì)量評價。本文設(shè)計(jì)了一種SqueezeNet與YOLOv2結(jié)合的目標(biāo)檢測網(wǎng)絡(luò),提出了一種基于SqueezeNet網(wǎng)絡(luò)的圖像質(zhì)量主觀評價方法。本方法對交警非現(xiàn)場執(zhí)法系統(tǒng)所抓拍的圖像進(jìn)行預(yù)處理,在剔除其中不符合質(zhì)量要求的違法圖像后,再遞交工作人員審核,提高違法數(shù)據(jù)的錄用率。
YOLO是一個端到端的目標(biāo)檢測網(wǎng)絡(luò)[12],能夠達(dá)到實(shí)時的檢測效果[12]。YOLOv2網(wǎng)絡(luò)由輸入層、卷積層、池化層、全連接層和輸出層組成[13]。YOLOv2借鑒了GoogLeNet思想,采用固定框來預(yù)測邊界框,引入批量標(biāo)準(zhǔn)化處理,保證了穩(wěn)定訓(xùn)練與加速收斂[14]。
YOLOv2可檢測出目標(biāo)物體在圖像中的矩形邊界位置,識別物體類別、給出物體分類與物體位置的置信度[15]。輸入圖像寬為W,高為H,將其劃分為w×h個網(wǎng)格,其中n=W/w=H/h,n為特征檢測層分辨率縮放倍數(shù)。每個網(wǎng)格中設(shè)置B個錨框(包圍檢測物體的邊界框)來檢測不同大小的物體,每個錨框預(yù)測5個參數(shù),(tx,ty)代表物體中心坐標(biāo),(tw,th)表示物體的寬和高,to代表物體的置信度。錨框參數(shù)以及置信度計(jì)算方式為
bx=σ(tx)+cx,
(1)
by=σ(ty)+cy,
(2)
bw=pw×etw
(3)
bh=ph×eth
(4)
pR(object)×IOU(b,object)=σ(to),
(5)
上式中σ()為sigmoid函數(shù);cx,cy為錨框所在網(wǎng)格左上角坐標(biāo);pw,ph為框?qū)捄涂蚋?;bx,by,bw,bh為錨框參數(shù),乘特征檢測層縮放倍數(shù)n可得到檢測物體在輸入圖片中的像素坐標(biāo)(見圖1)。
圖1 檢測物體預(yù)測位置Fig.1 Predicted position of detected object
式(5)為檢測物體置信度,pR(object)為物體在錨框中的概率,IOU(b,object)為錨框與物體的重合度,即
(6)
本文只檢測機(jī)動車1類,先利用公式(1)~(6)求出每個檢測物體包圍邊界框參數(shù)和置信度。通過pR(object)×IOU(b,object)對所有結(jié)果排序,并使用非極大值抑制篩選檢測目標(biāo)獲得檢測結(jié)果。
在訓(xùn)練期間,YOLOv2對象檢測網(wǎng)絡(luò)優(yōu)化了預(yù)測邊界框和訓(xùn)練標(biāo)簽之間的MSE(mean-square error)損失[10]。損失函數(shù)Loss定義為
SqueezeNet由F.N.Iandola等人提出的一種輕量且高效的CNN模型,可以在保證不損失精度的條件下,將原始AlexNet壓縮至原來的1/510(<0.5 MB)[16]。SqueezeNet具有模型參數(shù)少,對于分布式平行數(shù)據(jù)訓(xùn)練更加有效[17]等優(yōu)點(diǎn)。
SqueezeNet的核心是Fire模塊,包括squeeze和expand兩部分。squeeze采用1×1的卷積核對上一層feature map進(jìn)行卷積,降低feature map維數(shù)。expand包括1×1和3×3的卷積核且expand層卷積核(1×1和3×3卷積核的總數(shù))數(shù)量大于squeeze層卷積核數(shù)量。SqueezeNet主要包含8個Fire模塊,且以卷積層結(jié)束(見圖2)。
圖2 SqueezeNet Fire模塊Fig.2 SqueezeNet Fire module
模型準(zhǔn)確率的提高對訓(xùn)練樣本標(biāo)簽數(shù)量有極大依賴性,較少的訓(xùn)練樣本會導(dǎo)致模型過擬合。ImageNet數(shù)據(jù)集遠(yuǎn)大于交通違法圖片樣本集,采用遷移學(xué)習(xí)的方法將ImageNet訓(xùn)練過能識別1 000類物體的SqueezeNet應(yīng)用到交通違法車輛識別與圖像評價中,能夠提高模型的泛化能力和防止模型過擬合。深度模型遷移學(xué)習(xí)有兩種為基于特征和基于模型的方法,本文采用一起使用的方式,通過參數(shù)共享和微調(diào),再次訓(xùn)練模型以更好地適應(yīng)目標(biāo)域。
本文訓(xùn)練標(biāo)簽數(shù)據(jù)集為4 000張交通違法預(yù)判圖像,由于訓(xùn)練集樣本數(shù)量較少,既要保證機(jī)動車檢測準(zhǔn)確率,也要盡可能加快檢測速度,故采用預(yù)訓(xùn)練后的輕量級網(wǎng)絡(luò)模型SqueezeNet來增強(qiáng)特征提取能力。SqueezenNet初始網(wǎng)絡(luò)深度為18層,通過ImageNet數(shù)據(jù)庫的100多萬張圖像進(jìn)行訓(xùn)練,可以將圖像分類為1 000個對象類別,具有較強(qiáng)的特征識別能力。
改進(jìn)后的YOLOv2目標(biāo)檢測網(wǎng)絡(luò)采用在ImageNet數(shù)據(jù)庫訓(xùn)練后的SqueezeNet網(wǎng)絡(luò)替換YOLOv2原有骨干網(wǎng)絡(luò)Darknet-19。該網(wǎng)絡(luò)在SqueezeNet第2個Fire模塊后的最大池化層后增加一個步長為2×2的通道轉(zhuǎn)換層,在SqueezeNet最后一個卷積層(conv10)后的ReLU層融合特征后連接到檢測子網(wǎng)。檢測子網(wǎng)由兩組卷積層、ReLU層、BN層,再加一個卷積層,YOLOv2預(yù)測邊框轉(zhuǎn)換層和輸出層構(gòu)成。該網(wǎng)絡(luò)將28×28×128特征轉(zhuǎn)換為14×14×512,和conv10后的ReLU層特征融合為14×14×1 512。該網(wǎng)絡(luò)融合了高分辨率特征,從而增強(qiáng)了對小尺度目標(biāo)的檢測準(zhǔn)確率。此處借鑒YOLOv2 passthrough layer[13]的設(shè)計(jì)思路,將網(wǎng)絡(luò)識別準(zhǔn)確率提升1%。本文使用改進(jìn)后的網(wǎng)絡(luò)檢測交通違法車輛,檢測違法車輛車窗區(qū)域,改進(jìn)后的YOLOv2網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 改進(jìn)后的YOLOv2網(wǎng)絡(luò)Fig.3 Improved YOLOv2 network
模型遷移過程如圖4所示,交通違法圖像分類模型,選取SqueezeNet為骨干網(wǎng)絡(luò):1)在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練SqueezeNet,其最終分類器輸出1 000類中的一類;2)預(yù)訓(xùn)練之后,之前的最終分類器被另一個隨機(jī)初始化的Softmax分類器替換以預(yù)測2類圖像質(zhì)量,而分類器之前的層保持不變;3)之前的卷積層都被凍結(jié),繼續(xù)微調(diào)模型最后幾個全連接層。
圖4 SqueezeNet遷移學(xué)習(xí)流程Fig.4 SqueezeNet migration learning process
當(dāng)駕駛員在駕駛過程中撥打接聽電話或未按規(guī)定使用安全帶時,駕駛員所在圖像區(qū)域?yàn)榻煌ㄟ`法證據(jù)審核的關(guān)鍵區(qū)域,本文采用Softmax分類器對交通違法預(yù)判圖像關(guān)鍵區(qū)域進(jìn)行圖像質(zhì)量分類。SqueezeNetYOLOv2v1為訓(xùn)練后的機(jī)動車檢測網(wǎng)絡(luò),SqueezeNetYOLOv2v2為訓(xùn)練后的交通違法車輛車窗檢測網(wǎng)絡(luò),SqueezeNet網(wǎng)絡(luò)為訓(xùn)練后的圖像質(zhì)量分類模型,交通違法證據(jù)評價過程包括下列步驟:
1)輸入原始圖像,使用改進(jìn)的YOLOv2檢測算法(SqueezeNetYOLOv2v1網(wǎng)絡(luò))檢測機(jī)動車;
2)判斷是否檢測到機(jī)動車,若檢測到則下一步,若未檢測到則算法停止;
3)對所有檢測到的機(jī)動車錨框參數(shù)ty+th進(jìn)行排序,找出ty+th的最大值所在錨框,并從輸入圖像中裁剪該錨框,即為唯一違法車輛;
4)使用SqueezeNetYOLOv2v2網(wǎng)絡(luò)對3)中唯一違法車輛檢測車窗,并裁剪出車窗;
5)對4)中違法車輛車窗區(qū)域提取駕駛員所在關(guān)鍵區(qū)域;
6)使用SqueezeNet網(wǎng)絡(luò)對5)中駕駛員所在關(guān)鍵區(qū)域進(jìn)行圖像質(zhì)量分類,給出圖像質(zhì)量分類結(jié)果和預(yù)測準(zhǔn)確率。
交通違法車輛數(shù)據(jù)采用交通監(jiān)控反向抓拍得到,經(jīng)過交通違法服務(wù)器進(jìn)行一次判別,圖像分辨率從4 096×2 208到8 192×2 208。本文取4 000張預(yù)判圖像進(jìn)行標(biāo)簽標(biāo)注,標(biāo)注內(nèi)容為違法機(jī)動車、非違法機(jī)動車、違法機(jī)動車駕駛員所在區(qū)域和違法機(jī)動車牌照(見圖5)。
圖5 數(shù)據(jù)集樣本標(biāo)注Fig.5 Data set sample annotation
根據(jù)駕駛員所在區(qū)域圖像篩選評價,將該區(qū)域圖像成像質(zhì)量進(jìn)行質(zhì)量好和差二分類標(biāo)注。成像質(zhì)量差的分類定義為人眼不能清晰地分辨出駕駛員所系安全帶特征,不能分辨駕駛員是否在打手機(jī),此類圖像不能作為交通違法證據(jù)。圖像成像質(zhì)量差的分類主要包括,圖像亮度過暗,亮度過曝,駕駛員所在區(qū)域有炫彩遮擋和成像模糊等情況,反之則認(rèn)為圖像質(zhì)量好,可作為交通違法證據(jù)。
模型訓(xùn)練在i5-10400@2.9GHz,16 G內(nèi)存,GTX1660Ti 6 GB平臺上對網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和測試。操作系統(tǒng)為win10,測試環(huán)境為CUDA development 11.0。機(jī)動車檢測網(wǎng)絡(luò)SqueezeNetYOLOv2v1和車窗檢測網(wǎng)絡(luò)SqueezeNetYOLOv2v2網(wǎng)絡(luò)訓(xùn)練參數(shù),輸入圖像分辨率為227×227×3,初始學(xué)習(xí)率為0.001,隨機(jī)小批量Mini Batch為16,最大迭代數(shù)Max Epochs為30。駕駛員所在區(qū)域圖像篩選評價SqueezeNet網(wǎng)絡(luò)訓(xùn)練參數(shù),輸入圖像分辨率為227×227×3,初始學(xué)習(xí)率為0.000 1,隨機(jī)小批量Mini Batch為30,最大迭代數(shù)Max Epochs為70。
4個模型使用訓(xùn)練迭代損失函數(shù)來提高模型的訓(xùn)練進(jìn)度和訓(xùn)練效果,4個模型的迭代訓(xùn)練損失函數(shù)整體呈下降趨勢(圖6為4個模型經(jīng)過平滑處理的迭代訓(xùn)練函數(shù)曲線),前半段下降速度較快,后半段趨于平緩,在迭代800次后趨于穩(wěn)定,趨向于極小值0。訓(xùn)練結(jié)果表明隨著訓(xùn)練迭代次數(shù)的增加,識別效果越來越準(zhǔn)確并趨于最優(yōu)。
圖6 4個模型迭代訓(xùn)練損失函數(shù)Fig.6 4 model iterative training loss function
本文選取了4 000張方向抓拍交通違法圖像作為YOLOv2、SqueezeNetYOLOv2v1、SqueezeNetYOLOv2v2、SqueezeNet網(wǎng)絡(luò)的訓(xùn)練集與測試集。本文模型運(yùn)行環(huán)境為i5-10400@2.9GHz,16 G內(nèi)存,GTX1660Ti 6 GB的臺式機(jī)。
使用4組不同的標(biāo)注樣本總計(jì)4 000個,分別對4個模型進(jìn)行檢驗(yàn),設(shè)置IOU置信閾值為0.8,繪制精度-召回曲線(圖7)與平均漏檢-誤報率曲線(圖8)并計(jì)算平均精度。如圖7、圖8所示4個模型都經(jīng)過ImageNet預(yù)訓(xùn)練后參數(shù)共享與微調(diào),傳統(tǒng)的YOLOv2模型平均精度值為0.85,替換原有Darknet-19采用SqueezeNet骨干網(wǎng)絡(luò)的模型平均精度分別為0.966與1,平均精度提升明顯。當(dāng)訓(xùn)練樣本較少時,采用ImageNet數(shù)據(jù)集微調(diào)方法比從零學(xué)習(xí)模型或純監(jiān)督學(xué)習(xí)方法能夠達(dá)到更高的檢測精度。
圖7 精度-召回曲線Fig.7 Data set sample annotation
圖8 平均漏檢-誤報曲線Fig.8 Average missed-false positive curve
測試結(jié)果(見表1)表明,傳統(tǒng)的YOLOv2網(wǎng)絡(luò)經(jīng)過訓(xùn)練對交通違法圖像中機(jī)動車的識別準(zhǔn)確率為84.4%,識別速度為97.2幀/s。使用SqueezeNetYOLOv2v1結(jié)合的目標(biāo)檢測網(wǎng)絡(luò),對交通違法圖像中機(jī)動車的識別準(zhǔn)確率為99.3%,識別速度為49.8幀/s。SqueezeNetYOLOv2v2網(wǎng)絡(luò)對違法車輛駕駛員區(qū)域識別的準(zhǔn)確率為96.3%,識別速度為57.2幀/s。SqueezeNet駕駛員中心區(qū)域圖像質(zhì)量分類評價模型的分類準(zhǔn)確率為92.6%,分類速度為28.7幀/s。
表1 4 000個樣本集/1 000個測試集結(jié)果Table 1 4 000 sample set/1 000 test set results
由此可以看出,SqueezeNetYOLOv2v2結(jié)合的目標(biāo)檢測網(wǎng)絡(luò)相較于傳統(tǒng)YOLOv2網(wǎng)絡(luò),隨著模型深度和參數(shù)的增加,識別準(zhǔn)確率提升了14.9%。雖然駕駛員所在區(qū)域檢測模型SqueezeNetYOLOv2v2與違法車輛SqueezeNet YOLOv2v1檢測網(wǎng)絡(luò)結(jié)構(gòu)相同,但模型的輸入圖像分辨率不同。SqueezeNetYOLOv2v1的輸入為整幅圖像,SqueezeNetYOLOv2v2的輸入為SqueezeNetYOLOv2v1檢測到的唯一違法車輛,輸入圖像分辨率尺度變小從而導(dǎo)致SqueezeNetYOLOv2v2比SqueezeNetYOLOv2v1檢測速度有所提升。
本文為查看SqueezeNet網(wǎng)絡(luò)對駕駛員所在中心區(qū)域的圖像質(zhì)量分類效果引入類激活映射(class activation maps,CAM)[18],生成駕駛員所在區(qū)域熱力圖,突出了圖像類的特定區(qū)域。本文選取4張交通違法圖像進(jìn)行展示(如圖9),通過熱力圖所在范圍發(fā)現(xiàn),SqueezeNet網(wǎng)絡(luò)類激活映射區(qū)域都集中在駕駛員區(qū)域,從側(cè)面驗(yàn)證了模型的準(zhǔn)確性。圖9也展示了4張交通違法圖像機(jī)動車檢測、違法車輛檢測和圖像質(zhì)量評價的結(jié)果和置信度。
圖9 多尺度交通違法證據(jù)篩選結(jié)果Fig.9 Multi-scale traffic violation evidence screening results
本文為提高駕駛員開車打手機(jī)、開車不系安全帶兩種違法行為的預(yù)判準(zhǔn)確率,減少交通違法證據(jù)審核無關(guān)區(qū)域,只對駕駛員所在關(guān)鍵區(qū)域進(jìn)行判斷的方法來提高模型運(yùn)行速度和準(zhǔn)確性。使用遷移學(xué)習(xí)的方式重新訓(xùn)練SqueezeNet與YOLOv2結(jié)合的模型對交通違法車輛和駕駛員所在區(qū)域進(jìn)行目標(biāo)檢測,使用重新訓(xùn)練的SqueezeNet網(wǎng)絡(luò)對駕駛員所在區(qū)域進(jìn)行圖像質(zhì)量分類評價,提升了YOLOv2網(wǎng)絡(luò)對機(jī)動車檢測的準(zhǔn)確率。使用Squeezenet為目標(biāo)特征提取網(wǎng)絡(luò),減少了模型參數(shù),既提高了模型的檢測能力又保證了模型檢測速度。通過改進(jìn)后的YOLOv2模型,通過融合高分辨率細(xì)粒度特征提高了傳統(tǒng)YOLOv2對小尺寸目標(biāo)的檢測敏感度。