?

基于改進Mask R-CNN的交通監控視頻車輛檢測算法

2021-01-12 09:07沈世斌蘇曉云劉益劍
關鍵詞:分支類別分數

陸 飛,沈世斌,蘇曉云,謝 非,3,章 悅,劉益劍,3

(1.南京師范大學電氣與自動化工程學院,江蘇 南京 210023) (2.江蘇省三維打印裝備與制造重點實驗室,江蘇 南京 210023) (3.南京智能高端裝備產業研究院有限公司,江蘇 南京 210023)

基于深度學習的目標檢測技術在無人駕駛、智能監控、智能交通等領域有著廣泛的應用. 隨著城市道路車輛違反交通法規的事件不斷增加,對監控視頻中的車輛快速精準地檢測已成為城市交通管理的一項重要研究課題. 快速且準確地檢測復雜場景中不同尺度和類型的車輛已成為目前最具挑戰性的課題之一[1-2].

近年來,國內外學者針對基于深度學習的目標檢測方法展開了廣泛而深入的研究. Girshick等[3]首次提出R-CNN模型,通過Selective Search算法[4]提取目標對象的候選框,將候選框的大小調整為一個固定尺寸,然后輸入到卷積神經網絡中提取特征,采用線性回歸策略調整目標的邊界框,使用SVM分類器預測目標的類別,但產生候選框的過程耗時長,且候選框之間存在大量重疊. He等[5]提出了空間金字塔池化網絡(SPPNet),克服了R-CNN冗余的特征計算,在目標檢測時對整張圖像只進行一次特征計算,然后引入空間金字塔池化層通過CNN生成任意感興趣區域. Girshick等[6]提出了Fast R-CNN算法,采用Softmax函數代替原來的SVM分類器,將目標的分類與回歸加入到神經網絡中,減少了運算時間. Ren等[7]在Fast R-CNN的基礎上作了改進,提出了Faster R-CNN模型,Faster R-CNN主要貢獻在于引入區域建議網絡(RPN)[8]代替了原來的選擇性搜索策略,并將對象候選框的提取、區域歸一化以及分類與回歸等操作都集中在端到端框架中. Redmon等[9]提出YOLO算法,首次將目標檢測當作回歸問題來處理,無需產生候選框,直接通過卷積神經網絡預測目標的類別和位置,提高了檢測的速度,但精度卻較低. He等[10]提出了Mask R-CNN模型,結合了經典的目標檢測算法Faster R-CNN和經典的語義分割算法FCN[11],Faster R-CNN 可以既快又準地實現目標檢測功能,FCN可以精準實現語義分割功能,由于發現了ROI Pooling[12]中所存在的像素偏差問題,提出了對應的ROI Align策略,加上FCN精準的像素mask,可獲得高準確率. 江昆鵬等[13]調整了區域建議網絡,在anchor的基礎上增加了兩個尺度,提高了目標的識別精度. 朱有產等[14]優化Mask R-CNN主干網絡的深度,并在卷積操作中加入開運算層,減少圖片的邊緣噪聲. 石杰等[15]在Mask R-CNN的基礎上加入LH R-CNN,提高了運算速度.

由于交通監控視頻中的目標車輛存在目標尺寸和尺度的巨大差異,車輛之間存在相互遮擋問題,導致目標車輛檢測存在誤檢或漏檢. 針對Mask R-CNN在車輛檢測上出現誤檢或漏檢的問題,本文基于改進的Mask R-CNN的交通監控視頻車輛檢測算法,在Mask R-CNN通用結構框架基礎上,設計了基于bottleneck結構的主干網絡、基于預測mask分數的掩碼分支和基于Arcface Loss的目標檢測損失函數,解決視頻監控中部分目標由于存在遮擋而導致漏檢或誤檢的問題,提高了目標的檢測精度和目標特征的判別能力.

1 基于改進Mask R-CNN的交通監控視頻車輛檢測算法

1.1 改進的Mask R-CNN算法的結構框架

Mask R-CNN模型將目標的分類分數作為最終目標分割的分數,即評判分類、邊界框修正以及掩碼分割效果取決于該分類分數. 在背景雜亂、目標相互遮擋等復雜場景下,可能會出現目標被漏檢或誤檢,以及目標掩碼質量低的問題. 針對上述問題,本文在Mask R-CNN結構框架基礎上,設計了基于bottleneck結構的主干網絡、基于預測mask分數的掩碼分支和基于Arcface Loss的目標檢測損失函數,改進后的Mask R-CNN結構框架圖如圖1所示.

1.2 基于bottleneck結構的主干網絡設計

Mask R-CNN采用殘差網絡ResNet[16]作為主干網絡來完成圖像特征的提取. ResNet網絡分為 ResNet50、ResNet101、ResNet152,這3種網絡的主要區別在于層數不同,層數越深,提取圖像的特征就越豐富,越能反映圖像抽象的語義信息,但層數的加深往往會帶來梯度消失或爆炸、不易訓練等問題. 由于 bottleneck 結構能有效減少卷積的參數個數和計算量,深度提取目標特征,為了在性能和運行速度之間保持平衡,本文選用bottleneck作為殘差網絡的主干結構.

基于bottleneck結構的主干網絡結構如圖2所示. ResNet使用bottleneck殘差結構,Batch Normalization層用于加快收斂速度. ResNet共有5組卷積,第一組卷積的輸入大小為224×224,第五組卷積的輸出大小為7×7,總共縮小5次,每次縮小2倍,最終輸入圖像縮小了32倍,減少了參數的數量,從而減少了計算量.

1.3 基于預測mask分數的掩碼分支設計

Mask R-CNN通過掩碼分支對目標車輛進行掩碼分割,會得到一個沿著目標車輛輪廓包圍的閉合區域,閉合區域為目標分割的掩碼. 由于Mask R-CNN 預測掩碼質量的分數和類別分類的分數相同,因此Mask R-CNN不能完全評估目標車輛的掩碼分割質量. 針對該問題,本文在掩碼分支網絡的基礎上增加了基于預測mask分數的掩碼分支,用于單獨評估目標車輛的掩碼質量.

基于預測mask分數的掩碼分支網絡是將目標的分割掩碼與ROI特征圖拼接在一起作為輸入,在拼接之前,需要對目標的分割掩碼進行最大值池化,保持與ROI特征圖的尺寸大小一致. 基于預測mask分數的掩碼分支網絡結構如圖3所示,圖中使用3個卷積層分別為14×14×257,14×14×256,7×7×256;3個全連接層分別為1 024,1 024,1. 對于3個全連接層,遵循Mask R-CNN目標檢測網絡設計原則,將前兩個FC層的輸出設置為1024,最后一個全連接層的輸出設置為類別數目,掩碼分支只對目標車輛的分割掩碼進行評分,即類別數目為1.

基于預測mask分數的掩碼分支通過對掩碼分支網絡輸出的目標掩碼與真實標簽值掩碼重疊面積(IoU)的預測,來精確地評估掩碼的質量. 最終的評分細則定義如下:

Smask=Scls×SIoU,

(1)

式中,Smask為最終的掩碼質量分數;Scls為Mask R-CNN中所預測的類別分類分數;SIoU為預測的IoU. 掩碼分割分支與基于預測mask分數的掩碼分支相互獨立. 在訓練階段,分類正確的目標車輛掩碼才會輸入到基于預測mask分數的掩碼分支,即Scls必須取正值. 然后,基于預測mask分數的掩碼分支對分類正確的目標車輛掩碼預測對應的IoU,不斷減小Smask和SIoU之間的差距,使得Smask接近于SIoU,保證目標類別的掩碼質量與掩碼分數保持一致. 改進后的Mask R-CNN既能確保分類的準確,又能評判掩碼質量的好壞.

1.4 基于Arcface Loss的目標檢測損失函數設計

Softmax Loss作為目標檢測模型中常用的損失函數,用來輸出目標類別的概率,以保證目標類別的可分性,但若兩個類別的特征相似度高時,使用Softmax Loss進行相似度學習,會無法區分出這兩個類別. 在Softmax Loss基礎上提出的A-softmax Loss[17],加入了角度距離,使得特征具有可判別性:

(2)

以這種方式拉近網絡模型類內距離、放大類間距離,使得類別間的特征更具可分性,但由于夾角增加到原來的m倍,網絡模型訓練難度變大,導致損失函數的損失值很難收斂.

本文通過融合A-Softmax Loss和Softmax Loss的特性,設計基于Arcface Loss的目標檢測損失函數,Arcface Loss[18]計算公式為:

(3)

式中,s為固定尺度因子;m為正整數.

圖4所示為Arcface Loss原理示意圖. 首先,對目標特征向量Xi和權重Wyi進行歸一化操作,并使用反余弦函數來計算目標特征向量和權重之間的夾角θyi,將附加的角余量m添加到目標角度上. 然后,使用余弦函數再次獲得余弦距離,并乘上固定尺度因子s,將以上結果輸入到Softmax層中,以完成目標識別工作.

由于A-Softmax Loss計算特征相似度時采用余弦距離,而Arcface Loss計算特征相似度時采用角度距離,計算更加方便. A-Softmax Loss讓對應類別的W和X的夾角增加到原來的m倍,而Arcface Loss只在原來夾角的基礎上增加一個角余量m,不需要借助退火方法,網絡的訓練難度降低.

改進后的Mask R-CNN網絡的損失函數表達式為:

L=Lcls+Lbox+Lmask+Lscore.

(4)

其中,

(5)

式中,Lcls為目標檢測網絡中類別分類的損失值;N為區域候選網絡獲得的候選框個數;cos(θyi)為對應的每個候選框分類正確的概率.

(6)

式中,Lbox為車輛檢測框回歸的損失值;ti為檢測框的4個坐標數據組成的向量;ti*為標準框的4個坐標數據組成的向量.

Lmask=-∑ipilog(yi)+(1-pi)log(1-yi),

(7)

式中,Lmask為掩碼分支網絡的損失值;i為每個ROI的索引數;pi為ROI二分類的概率值;yi為第i個輸出.Lmask僅在ROI的正樣本上定義.

(8)

式中,Lscore為基于預測mask分數的掩碼分支的損失值;m為目標掩碼的總數;y為掩碼分支網絡輸出目標掩碼的類別分數;y*為基于預測mask分數的掩碼分支對相應的目標掩碼預測的IoU.

2 實驗與分析

2.1 車輛標記及訓練參數設置

為了更好地檢測出交通監控視頻圖像中的目標車輛,實驗首先使用構建的數據集對改進后的Mask R-CNN網絡進行多次迭代訓練,再將迭代訓練后的網絡模型應用到實際的交通監控視頻圖像中,以檢測出目標車輛. 實驗從構建的數據集中選取了50 000張目標車輛圖片,使用Labelme軟件對50 000張車輛圖片進行人工標注,標注出每輛車的類別、邊界框及標簽值掩碼. 標注的數據集一共有3類,分別為car、bus、truck. 圖5所示為人工標注結果示意圖. 實驗按4∶1比例劃分訓練集和測試集,其中40 000張為訓練圖像,10 000張為測試圖像.

實驗中網絡訓練參數的設置如表1所示.

表1 改進的Mask R-CNN網絡訓練參數設置Table 1 The training parameter setting of improved Mask R-CNN network

2.2 實驗結果

實驗在構建的數據集上對Mask R-CNN模型和改進后的Mask R-CNN模型分別進行訓練,每次輸入16張圖片,訓練50輪,共迭代36 000次,在迭代20 000次時學習率設置為0.000 1. 改進后的Mask R-CNN網絡模型的損失函數曲線如圖6所示.

圖6顯示,在訓練和測試階段前期,損失值下降速率較快,后期曲線趨向平穩,改進后的Mask R-CNN網絡模型收斂. 將待檢測的交通視頻圖像轉換成800×800尺寸大小,分別輸入到迭代訓練好的Mask R-CNN和改進后的Mask R-CNN中,輸出所有目標車輛的邊界框位置、掩碼及最終的掩碼質量分數.

圖7和圖8分別為交通監控場景1、2的實驗結果圖,其中(a)為Mask R-CNN的處理結果,(b)為改進后的Mask R-CNN的處理結果. 在圖7的交通監控場景1中,車輛數量較少且互相無遮擋,兩種算法均能檢測和分割出所有的運動車輛,最終的掩碼質量分數相差不大,均能反映出真實的掩碼質量. 在圖8的交通監控場景2中,車輛數量較多且互相之間遮擋嚴重,Mask R-CNN不僅漏檢車輛,且部分車輛因相互遮擋導致掩碼分割效果不理想,但最終的掩碼質量分數卻很高,即掩碼質量分數與實際的掩碼質量不一致;改進后的Mask R-CNN不僅能檢測出所有的目標車輛,且最終的掩碼質量分數能真實地反映真實的掩碼質量.

表2 4種模型在構建數據集上的測試結果Table 2 Test results of four models on constructed datasets

可通過計算準確率和召回率來評價網絡模型的檢測性能:

(9)

(10)

式中,TP為正確劃分為正樣本的個數;FP為錯誤劃分為正樣本的個數;FN為錯誤劃分為負樣本的個數.

P-R曲線即以召回率和準確率作為橫、縱坐標的曲線,P-R曲線所圍面積即為類別精度(average precision,AP),mAP就是所有類的 AP平均值,AP和mAP可用于評判目標檢測性能. FPS為每一秒模型檢測的圖片張數,可用于評價網絡模型的檢測速度.

本實驗與Faster R-CNN、YOLO v3及Mask R-CNN模型在測試集上的FPS、mAP測試結果對比如表2所示. 結果表明,改進的Mask R-CNN模型在滿足速度的同時,準確率要高于其余3種模型.

3 結論

針對交通監控視頻中車輛檢測的目標車輛存在遮擋,導致目標車輛存在漏檢或誤檢的問題,提出了一種基于改進的Mask R-CNN的交通監控視頻車輛檢測算法. 實驗結果表明,相比較于Faster R-CNN、YoLo v3和Mask R-CNN網絡模型,本文所提出的改進模型可以更好地提高目標車輛的檢測精度,即使存在車輛目標互相遮擋的情況,依然能精準獲得車輛目標的類別、位置及掩碼,為交通監控視頻中的車輛檢測提供了有效的途徑.

猜你喜歡
分支類別分數
一類離散時間反饋控制系統Hopf分支研究
軟件多分支開發代碼漏合問題及解決途徑①
論陶瓷刻劃花藝術類別與特征
分數的由來
一起去圖書館吧
巧分支與枝
把握物理難點,分數更上一步
……的近似分數的若干美妙性質
奇妙分數與特殊數列自動生成
碩果累累
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合