胡馨月,謝 非,3,王 軍,馬 磊,黃懿涵,劉益劍,3
(1.南京師范大學 電氣與自動化工程學院,南京 210023;2.南京三萬物聯網科技有限公司,南京 210000;3.江蘇省三維打印裝備與制造重點實驗室,南京 210042)
無論是計算機視覺領域或是深度學習領域,大量的數據集必不可少。目前,已經存在大量被廣泛應用的數據集例如coco、Labelme等,然而仍有大部分特定領域缺少足夠的數據集,例如在智慧交通領域車型識別和檢測[1],車輛數據集的分類與標定對于研究車輛的各類特征具有重大意義,例如對車輛的目標檢測、車輛分類、車牌識別、車輛測速和車色識別等[2-5]。目前與車輛相關的數據集有:KITTI、UA-DETRAC BDD100K數據集等[3-6]。但是這些數據集中多為正向的車輛,并不適合全部實際交通情況下的車輛識別任務。因此針對特定領域的數據集制作非常重要。通過人工方式對多目標數據集進行標注,不僅耗時耗力,并且疲勞狀態下標記的數據質量較低。這種方法難以快捷方便的獲取質量高、數量多且滿足要求的多目標數據集。
本文結合Mask Scoring R-CNN網絡框架與遷移學習和深度殘差網絡,并建立多目標數據質量評分機制,并且以車輛數據集為例,通過基于Mask Scoring R-CNN的高質量數據集快速自動標定方法,對遮擋、目標小、種類多和環境復雜情況下的車輛目標進行實例分割并生成對應標簽文件,最終得到高質量車輛標定數據集。
隨著深度學習方法的廣泛應用,研究人員針對車輛目標檢測方法和實例分割的不足也在不斷拓展研究[7-17]。彭博等通過改進的Faster R-CNN對道路中車輛進行分類和識別[7];陳辰等通過級聯Adaboost算法針對各個子問題分別訓練檢測模型,提高車輛目標檢測精度[8];袁功霖等人利用遷移學習和圖像增強,使得小規模數據即可訓練出有效的識別網絡[9]。Yebes等采用兩階段目標檢測網絡實現城市道路中的車輛檢測與目標分類[10-14],但是均側重于車輛檢測中分類精度、掩膜標定精度或訓練時間其中某一方面,沒有對三方面進行綜合考慮。Kim等采用輕量級神經網絡進行車輛檢測,提高了車輛檢測的實時性[15-16]。以上方法雖然可以實現圖像的檢測與定位,但是在遮擋的環境下目標圖像分割精度較低。不適用于實時交通下的車輛識別任務及車輛數據集制作。
本文針對人工標定多目標數據集時間冗長,訓練實例分割模型需要大量數據和較長訓練時間,且傳統實例分割算法中評價目標掩膜分割質量方法不準確的問題,開展基于Mask Scoring R-CNN的高質量數據集快速標定方法研究,該方法可以自動對大量無標簽數據進行自動標注,生成大量的車輛實例分割圖像。然后,為了篩選出高質量的標簽文件,提出了基于MaskIoU Head的質量判別方法,并以此建立了網絡評分機制,篩選出高質量的數據集。本文方法具有以下優點:
1)傳統多目標實例分割方法僅僅針對識別分類精度、識別速度某一方面開展研究,本文結合遷移學習、3種深度殘差神經網絡和優化網絡中各項超參數有效的提高了實例分割精度并大幅度降低訓練時間和減少訓練樣本,為后續的數據集標定奠定了基礎。
2)Mask R-CNN方法采用掩膜重疊像素點的方法衡量掩膜質量,但是掩膜是不規則圖像。這種方法并不準確。本文結合Mask Scoring R-CNN中的MaskIoU Head分支,建立多目標標定圖像評分機制,對網絡進行監督訓練,可以在遮擋、目標小、種類多和環境復雜的情況下提高實例分割精度,并對掩膜標定質量進行準確衡量[17]。在相同數量的圖像輸入下,相較于需要四小時左右的人工標定,本文方法僅需7分56秒,實現了大量高質量數據集快速標定。
本文以高質量車輛數據集標定方法為例,總體框架如圖1所示,下面針對此方法的兩部分分別展開說明。

圖1 高質量數據集自動標定方法
1)車輛數據自動標定模型訓練部分:利用采集的車輛視頻每秒提取一幀圖像,取出少量圖像進行人工標定(約每個類別80張圖像),將這些圖像輸入到車型實例分割網絡中,結合coco數據集的80分類預訓練模型進行遷移學習,減少訓練時間和防止網絡過擬合。得到車型分類、位置回歸和輪廓標定模型[18]。
2)搭建車輛分類與標定系統:搭建基于Mask Scoring R-CNN的車輛分類與圖像標定系統,采集與第一部分類似場景下較長的一段車輛視頻,輸入車輛分類與標定系統,每秒提取兩幀圖像,輸入到第一部分得到的車型分類、位置回歸和輪廓標定模型中,得到每幅圖中的車輛類別、邊界框和車輛掩膜,然后,得到標定后車輛圖像中每輛車的分數,即Smask,如果一幅圖像中全部車輛的Smask都大于90,則這幅圖像為高質量車輛圖像,反之為低質量圖像,保留高質量車輛圖像與對應的標簽文件,生成車輛高質量數據集。
本文提出的高質量數據自動標定方法是基于Mask Scoring R-CNN網絡框架,標定網絡如圖2所示。包括主干網絡(Backbone network)、圖像金字塔網絡(FPN,feature pyramid networks)、區域建議網絡(RPN,region proposal network)、分類與回歸分支(R-CNN Head)、掩膜分支(mask head)以及掩膜評分分支(MaskIoU head)組成。此網絡不僅能輸出具體類別和目標框,還能對物體目標輪廓進行精準分類和標定。

圖2 車輛圖像標定網絡
本文車輛數據自動標定網絡可分為4個部分:第一部分為車輛圖像特征提取,先通過主干網絡(backbone network)提取圖片特征,再通過FPN網絡形成圖像特征金字塔。第二部分為區域生成網絡(RPN),該部分使用RoIAlign從每個候選區域(proposal)提取特征,篩選出目標車輛所在區域。第三部分通過R-CNN Head對候選區域進行目標區域分類、邊界框的回歸,同時通過Mask Head將車輛從復雜環境分離出來并對其輪廓進行預測、標定。第四部分為車輛掩膜質量評分部分。本文利用MaskIoU Head建立標定的車輛圖像評分機制,對第三部分中車輛掩膜標定質量進行打分,通過分數衡量預測車輛掩膜與真實車輛區域的一致性,同時對車輛圖像進行取舍。經歷4個部分后,得到車輛圖像標定模型[19]。
2.2.1 基于殘差網絡的多目標特征提取
通過主干網絡從無標簽的車輛圖像中提取特征,并通過FPN(特征金字塔)形成多尺度的特征層,增強網絡對小目標的識別能力。
主干網絡:用來特征提取的CNN網絡,主要檢測圖像中的高級特征,其中,主干網絡可以是任意的卷積層進行組合構成的特征提取網絡,或者是常用的高精度卷積神經網絡(如:ResNet 50、ResNet101、VGG19等)。利用主干網絡,通過卷積操作將圖像從1980*1080*3(RGB)轉變為32×32×2048的特征圖。這個特征圖將作為特征金字塔網絡的輸入[20]。
特征金字塔網絡:使得feature map包含的特征更全面。此特征金字塔一共有五層,從第一個層提取特征后逐層傳遞到第五層,但尺度逐層下降一倍,生成不同尺度的feature maps,再將相鄰feature maps相減,得到新的feature map。使得新的特征圖既保留了低層次中包含原圖更多信息的特點,又包含高層次特征圖像中更深層次特征。本文選擇第四層特征圖作為后續網絡的輸入。
2.2.2 遷移學習和生成目標候選區域
遷移學習:遷移學習是給網絡中的權值一個初始值,coco數據集的80分類預訓練模型與本文需要訓練的車輛數據標定模型均為圖像識別模型,可以有效防止過擬合與減少訓練數據量,降低訓練時間。且coco數據集中圖像拍攝于城市道路,含有非車輛圖像的類別,可以提高車輛圖像的背景與前景分類精度。因此引入遷移學習。
建議區域網絡(RPN):用于生成建議區域(region proposals)作用于特征金字塔提取的feature map中,利用滑動窗口在feature map中進行掃描,找到包含目標的區域,RPN掃描過的區域稱為錨點,錨點越多精度越高,相應訓練速度會降低。為了在精度與速度之間保持平衡,本文的實驗中每張圖像大約有10萬個不同大小和高寬比的錨點,以此覆蓋圖像中更多的面積,提高檢測精度。
RoI分類器:作用于RPN網絡產生的建議區域中,可將屬于背景還是目標的區域進行分類,屬于目標物體的建議區域稱為正區域,屬于背景的建議區域稱為負區域。保留正區域,丟棄負區域。
2.2.3 目標位置回歸、分類和輪廓提取
R-CNN Head:位置回歸與目標分類。通過此分支將目標分類,在feature map上對邊界框進行回歸。同時對第二部分的正區域進行合并,并判別目標的類別。采用IoU方法對預測的邊界框進行評估。
邊界框IoU如圖3所示。虛線框為目標的真實邊界框(Ground truth),黑色填充部分為R-CNN Head預測的Bbox(邊界回歸框),圖3中從左到右Bbox與Ground truth之間重疊越多,說明此網絡邊界框預測效果越好,如圖3最右側圖形所示。

圖3 邊界框IoU
Mask Head:由全卷積神經網絡(FCN,fully convolutional networks)構成,在RoI分類器篩選后的正區域上生成目標的掩膜,這層掩膜可以準確地包圍目標物體,再通過反卷積放大到原圖,得到目標圖像的輪廓,并將每個圖像中目標輪廓上的像素點坐標保存,生成對應的標簽文件,也是多目標數據集標定的關鍵之一。
但是,主干網絡中進行的卷積操作會導致原圖信息有所丟失,在Mask Head中,將feature map反卷積到原圖后會出現預測掩膜與真實掩膜有一定偏差。因此需要一種方法去衡量預測掩膜的質量。在傳統方法Mask R-CNN中用二者交叉面積與二者累加面積的比值方式計算MaskIoU,來衡量預測掩膜質量,但是需要保證二者有相同的高和寬。可是這種方法計算的MaskIoU與預測掩膜并不為線性關系,因此這種方法是不準確的。
2.2.4 基于MaskIoU Head的多目標掩膜標定質量評價
MaskIoU Head:利用卷積神經網絡中回歸原理,精準地評定目標的mask質量,并在網絡訓練中進行監督,很好地解決了Mask R-CNN對目標mask質量評分不準的問題。卷積神經網絡常常用來回歸兩個相似圖像,本文利用這個卷積神經網絡分支對真實掩膜(Truth-mask)與預測掩膜(predict-mask)進行回歸,并計算出每個目標mask的MaskIoU值,得到的MaskIoU值為SIoU,也是對每個目標蒙版質量的評價分數。該質量評價方法用于評定標簽文件的質量,評估的內容主要包括包圍目標輪廓的精度和目標分類精度。然后通過設置質量閾值,將質量低于閾值的標簽丟棄,保留質量高于閾值的標簽。最后,將高于閾值的標簽和對應的車輛圖像數據共同構成車輛語義分割數據集,這也是該網絡的數據增強結果。
MaskIoU Head輸入結構:本文將Truth-mask和predict-mask一起作為Mask Head的輸入。其中Truth-mask存在于RoI feature中,predict-mask為Mask Head 輸出的目標預測掩膜。由于predict-mask與RoI feature尺寸不同,因此設計了兩種輸入結構。MaskIoU Head 的兩種輸入結構如圖4所示。

圖4 MaskIoU Head 的輸入結構
具體說明如下:圖4中左圖設計的輸入結構是將所有的mask經過kernel size為2,stride為2的max pooing,然后與RoI輸出的RoI feature相乘。右圖設計的輸入結構為目標mask不經過最大池化直接與高分辨率的RoI feature相加。兩種結構均可作為Mask Head的輸入。
MaskIoU Head網絡結構設計:由 4個卷積層和3個全連接層組成。對于4個卷積層,本文將所有卷積層的核大小和濾波器個數分別設置為3和256。對于3個全連接層,本文結合R-CNN Head設計原理,將前兩個FC層輸出設置為1 024以連接所有神經元,最后一個FC層的C為需要分類的類別數,輸出屬于不同類別的蒙版分數SIoU.MaskIoU Head結構圖如5所示。

圖5 MaskIoU Head結構圖
設計完網絡4個部分后,需要通過損失函數來度量網絡的性能,以及設計評分機制來評價目標分割效果。
網絡損失函數設計:本文網絡結構主要由R-CNN Head、RPN、Mask Head 和MaskIoU Head等各個分支組成,因此本文損失函數公式為:
L=Lclass+Lbbox+Lp+Lr+Liou
(1)
其中:Lclass為目標檢測分類的損失,Lbbox是回歸目標檢測框的損失,Lmask為目標mask分割的損失,Lp為RPN網絡損失,Lr為權重正則化損失。LIoU為MaskIoU Head損失函數。
網絡評分機制:本文目標車輛只屬于一個類別,這就要求本文方法在兩方面必須同時表現良好:1)需要對不同車型進行精確的分類;2)預測的車輛Mask和真實車輛Mask之間需要有較高的重合度,用一個目標函數來表達這兩個任務較為困難。因此,本文將mask質量評判標準分解成目標分類和掩膜回歸評分,公式為:
Smask=Scls×SIoU
(2)
其中:Smask為評定目標檢測質量的分數,Scls為RNN Head中對目標分類效果評定的分數,SIoU表示predict-mask與Truth-mask之間重合程度的分數。如果一張圖像中所有目標的Smask均高于90分,那么這張圖像即為高質量的目標圖像,將這些圖像及對應標簽文件存儲作為相關數據集。
為了自動生成大量車輛高質量數據,首先需要訓練一個車輛數據標定模型。訓練數據為親自采集的車輛視頻,每秒提取兩幀車輛圖像,取出少量車輛圖像,使用Labelme軟件進行人工標注。
其中Labelme標記六種車型如圖6所示,圖像數據中含有800張含多種車輛的圖像。并將其劃分為680張訓練圖像,120張驗證圖像。本文設計了6種車型進行實驗:Bus(巴士)、Car(小轎車)、MircoBus(面包車)、SUV(運動型多用途汽車)、Truck(卡車)、SprotsCar(跑車)。

圖6 Labelme標記六種車型
網絡中不同參數對神經網絡訓練的結果影響很大,降低迭代次數、學習率等會導致網絡性能的降低。本文網絡結構與Mask Scoring R-CNN結構相近,因此選擇與Mask Scoring R-CNN一致的固定訓練參數。網絡中固定訓練參數如表1所示。

表1 網絡中固定訓練參數
為了設計出最佳的車輛數據集自動標定模型,本文在同一主干網絡ResNet50下,總共進行了共10組對比試驗,選擇合適的網絡參數以及觀察引入遷移學習對本方法在訓練時間、準確度和訓練數據量方面的影響,如表2所示。

表2 超參數選擇與遷移學習對照試驗
mIoU和mAP為實例分割神經網絡中常用的評價指標,用于評判網絡模型性能高低。為了嚴格評估方法性能,在IoU分別為0.5和0.7下用mAP衡量實例分割效果,大于閾值是真陽性,小于閾值則為假陽性。每個實驗的mIoU和mAP指標顯示在表的最后三行。下面對實驗內容和結果進行詳細的分析。
試驗1到試驗2使用了同樣的NMS閾值、基礎學習率等經驗參數,但是使用了不同數量的完全迭代次數。完全迭代次數的增加使得試驗1的mAP (IoU>0.5)值從0.569提高到試驗2中的0.586,提升效果較低,且在迭代100次的情況下依然容易收斂,表明本文設計的網絡收斂效果良好。在試驗3至試驗6中使用了更多數據的圖像用于訓練和測試,由于完全迭代次數與之前的一樣,結果顯示試驗3中準確度下降,后來在試驗4中,通過增加完全迭代次數來改進這一點,使得mAP(IoU>0.5)到達0.565。在試驗5中,本文評估了圖像寬度和高度的影響,將訓練圖像的尺寸從1 024×800提高到1 920×1 080,其余參數和試驗4一樣的情況下,算法的性能較差(mAP(IoU>0.5)=0.185)。說明高分辨率圖像在當前網絡參數下,準確度較低。在試驗6中,將最小蒙版尺寸從56×56縮小到28×28,與試驗4進行對比,網絡性能得到提升。在試驗7中,本文降低了Anchor的比例大小,輸入圖像分辨率提升到1 920*1 080,將最小蒙版依然設置為28×28,發現將高分辨率圖像作為輸入時,網絡的性能接近于試驗6,維持穩定。在試驗8中使用了與試驗7一樣的配置,并且進一步的降低了Anchor的比例大小,發現網絡的性能有了較大的提升,于是將(8,16,32,64)作為網絡的最佳Anchor比例大小。
選擇了最佳完全迭代次數和圖像分辨率、Anchor的比例大小等最優超參數后,為了減少訓練時間、防止網絡過擬合,在試驗9中削減了一半的訓練數據量,發現網絡性能大幅度降低。因此,在試驗10中利用預訓練的COCO數據集的80分類模型在試驗9基礎上進行遷移學習。發現網絡性能與試驗8幾乎一致,達到較高水平,可以對車輛目標進行準確實例分割與標定,但是訓練時間僅為試驗8實驗的一半。
通過10組對照實驗,分析結果表明,訓練數據量越大,圖像分辨越高,掩膜越小,RPN錨的尺度越小,網絡性能越好,且100個完全迭代次數就足夠實現收斂。同時,結合遷移學習可以大幅度減少本方法的訓練數據、訓練時間和提高檢測精度。
主干網絡對比試驗:ResNet50、ResNet101、MobileNet V1這些神經網絡由殘差塊構成,以殘差學習簡化了網絡架構,減少了計算開銷,很好的解決了梯度消失問題。為了進一步優化網絡,在識別速度和準確度之間達到一個平衡,表3為主干網絡性能對比表,在Test10的網絡配置參數下,分別在網絡訓練時間、每秒圖像檢測時間、網絡模型大小、準確度(S>90表示分數大于90的車輛為實例分割準確)4個方面對其性能做了評估。

表3 主干網絡性能對比
從表格中可以看出,采用ResNet50作為主干網絡,訓練時間為12.65小時,時間最短;這3種網絡的標定測試速度分別為每秒2.4張,每秒1.6張,每秒2.2張,采用ResNet50作為主干網絡,標定車輛圖像速度最快;在模型大小對比實驗中,采用ResNet50作為主干網絡,車輛標定模型大小最小;一張圖像中車輛Smask均大于90的圖像為準確圖像,準確圖像占全部圖像的比例為準確度,采用ResNe50、ResNet101和MobileNet V1為主干網絡,車輛圖像標定準確度分別為93.4%、93.8%、84.5%。
從上述實驗中發現ResNet101精度最高、ResNet50次之、MobileNet V1最低。但是ResNet101網絡層數更多,訓練時間更長,ResNet50訓練時間和檢測時間適中,MobileNetV1訓練時間最短,雖然ResNet50與ResNet101在車輛識別精度上準確度都很高,但是ResNet50在識別速度、訓練時間、網絡模型大小方面均優于ResNet101。ResNet50由于層數適中,在數據量少的情況下,既可以保證網絡精度又可以防止了過擬合。更深層次的網絡如ResNet101等需要訓練數據更多的圖像,反而加重了研究人員繁重的工作量。因此本方法采用ResNet50作為車輛標定網絡中的主干網絡。
經過上述試驗1到試驗10以及主干網絡性能評估共13組對比試驗,本文選擇了合適本網絡的超參數,將ResNet50作為主干網絡,并結合了coco數據集的80分類預訓練模型進行遷移學習。
由于本文中網絡是在Mask R-CNN基礎上增加了MaskIoU Head來對車型圖像數據標定網絡進行優化,且Faster R-CNN是車輛檢測中最常用識別網絡框架。 為了驗證所研究方法的效果,將本文方法與傳統的Mask R-CNN框架和Faster R-CNN框架在相同測試圖像下進行對比實驗。

圖7 多種方法的車輛實例分割對比圖
車輛實例分割對比如圖7所示。圖(a)為Faster R-CNN目標車輛分割圖像,圖(b)為Mask R-CNN車輛分割圖像,(c)圖為本文算法實例分割圖像. 從圖中可以看出,Faster R-CNN不能對車輛輪廓進行標記。 Mask R-CNN將左邊的護欄誤判成了車輛,且在圖像右上方有很多車輛未被識別出來,精度不夠。本文算法不僅將車輛從復雜環境與重疊車輛中精確區分出來,且對于車型種類幾乎沒有誤判,車輛輪廓標定更清晰. 因此,本文方法分類準確度和實例分割精度均優于其他方法。
為了驗證本文方法的標定速度與標定質量,進一步進行了實驗測試,采集一段的4分59秒車流視頻,每秒提取一幀圖像作為輸入,共358張圖像。這些車輛圖像手動打標簽需要4小時左右,本文方法標定僅需要7分56秒即可完成高質量車輛圖像的篩選和標定。
輸入視頻截圖如圖8所示。圖9為車輛數據標定方法的輸出結果。同時為了驗證本方法在車輛聚集、重疊車輛環境中分類與檢測效果,本文增加了多車輛實驗,如圖10所示為輸出的多車輛標定圖像。通過圖8~10的實驗可以看到,本方法可以精確區分出車型,并清晰的標定出車輛輪廓,準確性與人工標定相近,但標定速度遠超過人工標記。因此本方法在充分考慮車輛遮擋、環境復雜、目標小、種類多等因素后,本方法依然有較高的準確性及抗環境干擾能力。

圖8 輸入視頻截圖

圖9 車輛數據標定圖像

圖10 多車輛標定圖像
最后輸入一段2小時4分鐘的車輛視頻,本文方法僅需要3小時23分鐘即可生成14 880張車輛標定圖像,人工標定需要80小時左右時間,標定速度相較人工標定提升95.77%。本文方法在保證精度的同時,大幅度減少了標定時間。
針對目前現有人工標定方法時間冗長、效率低下且容易出錯的問題,本文提出一種基于Mask Scoring R-CNN的高質量數據集快速自動標定方法。通過與ResNet50網絡相結合、調整了不同超參數并與遷移學習結合,在保證目標識別精度的同時降低了一半的訓練時間;然后,建立了一種數據集評分機制,在遮擋、環境復雜、目標小、種類多環境下依然提高了目標掩膜標定精度;最后,提出了高質量多目標數據標定方法,保證數據集質量的同時大幅度降低了標定時間。從實驗結果可以看出,本文方法具有精度高、訓練數據量少、環境適應性強和標定時間短的優點。