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