董振江+高燕+吳文熙
摘要:提出采用一種基于深度學習的識別方法,來輔助獲取訓練模型中所需要的車輛屬性標簽。該方法首先利用海報圖像構(gòu)建大規(guī)模車輛屬性數(shù)據(jù)集(SYSU-ZTE-CARS),訓練基于卷積神經(jīng)網(wǎng)絡(CNN)的識別模型,再將模型遷移到監(jiān)測控制場景中進行標注測試,間接獲取屬性標簽。采用CNN+softmax分類器的結(jié)構(gòu)作為基本框架,引入細粒度識別技術(shù)以進一步優(yōu)化識別性能。利用5種常用車輛屬性進行測試,實驗結(jié)果表明:所提出的方案不僅在SYSU-ZTE-CARS數(shù)據(jù)集上的識別精度高,而且在監(jiān)測控制場景下的標注結(jié)果也很可靠。
關(guān)鍵詞: 精細化屬性識別;CNN;深度學習;計算機視覺
智能交通[1-2]領(lǐng)域中牽涉到很多計算機視覺的任務,需要對海量的視頻、圖像數(shù)據(jù)進行處理、分析。在基于車輛視頻圖像的分析任務中,傳統(tǒng)技術(shù)不僅效率較低,耗費巨大的人力、物力、財力,而且欠缺對數(shù)據(jù)的感知表達能力,沒有充分利用數(shù)據(jù)、挖掘數(shù)據(jù)特性,以致分析精度不夠高。引入車輛屬性識別的方法,可以增強算法對目標車輛特征的理解和表達能力,大大提高分析任務的可靠性和效率。
隨著計算機視覺和機器學習技術(shù)的發(fā)展,以它們?yōu)榧夹g(shù)基礎(chǔ)的新一代智能分析技術(shù),在目標檢測、識別、檢索等任務中表現(xiàn)優(yōu)越,能夠極大地減少人力成本,提高監(jiān)測控制的效率,有巨大的應用潛力。
自2012年ImageNet[3]國際大規(guī)模視覺識別比賽以來,業(yè)界掀起了一波基于計算機視覺和深度學習的識別技術(shù)研究和應用熱潮。深度學習是一門大數(shù)據(jù)驅(qū)動的技術(shù),我們通常認為:提供訓練的數(shù)據(jù)量越大,所訓練得到的模型性能越好;而在視頻監(jiān)測控制的應用場景下,海量的視頻圖像數(shù)據(jù)會源源不斷地產(chǎn)生,因此將深度學習技術(shù)應用在視頻監(jiān)測控制領(lǐng)域,恰能發(fā)揮其先天優(yōu)勢以及視頻數(shù)據(jù)的作用。
基于深度學習的屬性識別技術(shù),通常以卷積神經(jīng)網(wǎng)絡(CNN)為基本工具。CNN模型參數(shù)的學習,目前使用最廣泛也是最穩(wěn)定的方法是有監(jiān)督的訓練策略。這種策略需要使用大量車輛圖片及其屬性標簽作為訓練樣本。目前面臨最大的挑戰(zhàn)是:在現(xiàn)實監(jiān)測控制場景下的車輛屬性標簽很難獲取。雖然有些屬性標簽可以通過人工標注的方式獲取,如顏色、視角、車類型、品牌等,但是這種方式同時也帶來了新的問題,如:顏色易受光照影響,在極端光照環(huán)境下,人眼無法正確判別車輛顏色;品牌往往需要通過車標來確定,一旦車標模糊、被遮擋、不可見,則需要通過人眼來判別車輛品牌。
另一方面,我們注意到:在互聯(lián)網(wǎng)上有大量帶有屬性標簽的車輛海報圖片。為了獲取監(jiān)測控制場景下的車輛屬性標簽,我們考慮了一種跨場景自動標注的技術(shù)方案。該方案中,我們先利用帶有屬性標簽的車輛海報圖片訓練屬性識別模型,再將此模型遷移到現(xiàn)實的監(jiān)測控制場景中,自動標注出車輛屬性。
1 車輛屬性識別的相關(guān)工作
1.1 車輛屬性識別的研究
目前,對于車輛屬性的研究工作和應用都已經(jīng)相當廣泛,主要集中于視角識別、顏色識別、車類型識別、品牌識別等幾個方面。
在視角識別方面,學術(shù)界主要在KITTI基準測試平臺[4]上進行。KITTI上的研究絕大部分是基于CNN的,其識別效果精度都非常高,有些優(yōu)秀的工作如多尺度CNN(MSCNN)[5]、循環(huán)滾動卷積(RRC)[6]等,以及一些利用三維信息的工作,能夠在直接預測車輛偏轉(zhuǎn)角度的具體數(shù)值的任務上有可靠的性能表現(xiàn)。
在顏色識別方面,研究難點在于:光照影響對顏色判斷的干擾特別嚴重。目前主要的研究多是基于強判別性區(qū)域輔助的方式,具體實現(xiàn)手段主要包括利用關(guān)鍵點、利用局部分割等。在顏色特征表達上,主要有基于閾值分割、顏色直方圖和CNN等。
在車類型識別方面,可以分成兩大類:基于非視覺的方法和基于視覺的方法?;诜且曈X的方法,業(yè)界通常采用如雷達、超聲波、紅外線等傳感器信號開展研究應用;基于視覺的方法則通過通用攝像頭采集視頻圖像數(shù)據(jù),再通過計算機視覺技術(shù)進行識別。目前的研究主要有基于直方圖特征、低維投影特征和稀疏表示特征等傳統(tǒng)方法。
在品牌與子品牌識別方面,研究成果同樣也可以分為傳統(tǒng)方法和深度學習方法兩大類。傳統(tǒng)方法主要是通過傳統(tǒng)特征工程的手段人工設(shè)計特征,如Curvelet變換、方向梯度直方圖(HOG)特征、分層梯度直方圖(PHOG)特征、邊緣方向直方圖(EOH)特征、Gabor小波等,也有基于融合特征進行稀疏編碼的解決方案。深度學習方法,主要是基于CNN特征對屬性進行判別的,也有一些針對細粒度識別的工作,如Part-based R-CNN 模型、基于分割圖輔助的CNN模型、雙線性CNN模型等。
總體來說,基于傳統(tǒng)方法的車輛識別技術(shù)都有特征設(shè)計過程反復、特征表達能力魯棒性差、模型泛化能力差的缺點;而基于深度學習的車輛屬性識別技術(shù),則具有強大的數(shù)據(jù)描述能力,且在泛化性、識別精度、穩(wěn)定性上都比傳統(tǒng)方法更勝一籌。
1.2 CNN網(wǎng)絡的研究
屬性識別往往通過分類技術(shù)實現(xiàn),而分類問題是作為基于CNN的視覺識別中一項最基本任務,其性能最主要體現(xiàn)在CNN網(wǎng)絡結(jié)構(gòu)之上,CNN網(wǎng)絡的發(fā)展直接就能夠反映分類精度變化。
在大規(guī)模視覺識別挑戰(zhàn)(ILSVRC)2012比賽中,AlexNet的成功再次掀起了學者們對CNN的研究熱潮。CNN結(jié)構(gòu)上的發(fā)展體現(xiàn)在兩個主要的維度上——深度和廣度。在深度上,從8層的AlexNet,到16層的VGG[7]、24層的GoogLeNet,再到152層的ResNet。在Cifar數(shù)據(jù)集上,ResNet還成功實現(xiàn)了極深網(wǎng)絡,層數(shù)達到1 001層。在2016年的ImageNet比賽中,商湯科技-香港中文大學團隊更是使用了1 200層的極深網(wǎng)絡。在廣度上,GoogLeNet[8]首先設(shè)計出Inception模塊,在同一層網(wǎng)絡里使用了更多子網(wǎng)絡。
研究表明:CNN的層數(shù)越深,網(wǎng)絡表達能力越強。文章中,我們基于ResNet系列的網(wǎng)絡結(jié)構(gòu)開展實驗,同時考慮到任務難度,也采用了輕量級網(wǎng)絡,如AlexNet;兼顧精度和測試效率,我們也采用了中等深度網(wǎng)絡,如VGG16。
1.3 相關(guān)數(shù)據(jù)集的情況
關(guān)于車輛屬性圖片數(shù)據(jù)集,目前比較有代表性的主要有CompCars[9]、BoxCars[10]、城鎮(zhèn)交通運輸監(jiān)測控制系統(tǒng)數(shù)據(jù)集(UTS)[11]。
CompCars數(shù)據(jù)集由香港中文大學所提出,是目前學術(shù)界規(guī)模最大的車輛精細化屬性數(shù)據(jù)集。數(shù)據(jù)集分為兩部分:一部分來自于各大汽車門戶網(wǎng)站中的圖片;另一部分來自于道路監(jiān)測控制視頻截取出的圖片。第1部分收集161個汽車品牌、1 687個子品牌汽車,子品牌下還細分了汽車的生產(chǎn)年份,其中整車圖片有136 727張,汽車部分細節(jié)圖片有27 618張,這些圖片涵蓋車輛的5種視角、12種類型;第2部分有50 000張汽車正面的監(jiān)測控制圖像,同樣標注了車類型、品牌和子品牌,除此之外,第2部分數(shù)據(jù)還標注了10種顏色。BoxCars數(shù)據(jù)集也是汽車海報圖片,標注內(nèi)容和方式與CompCars相似,但其規(guī)模遠不如CompCars。UTS數(shù)據(jù)集收集的是監(jiān)測控制場景下的原始圖片,是目前在該場景下標注內(nèi)容最豐富、最貼近現(xiàn)實應用場景的圖片。UTS數(shù)據(jù)集共3 600張圖片,涵蓋了6種場景,在每種場景內(nèi)包含多輛車,它的標注內(nèi)容包括車輛位置、5種視角、9種顏色和6種常見車類型。
雖然UTS數(shù)據(jù)集非常貼近現(xiàn)實應用場景,但是由于標注量較小、屬性豐富性欠缺等原因,使得無法訓練得到泛化能力較強的屬性識別模型。然而,CompCars的屬性標簽也未與現(xiàn)實場景完全吻合,如CompCars并沒有覆蓋到如“貨車”“公交車”等常見車類型,其第2部分數(shù)據(jù)雖然來自于卡口監(jiān)測控制場景,但視角單一。為了彌補CompCars和UTS數(shù)據(jù)集的不足,文中我們自行構(gòu)建了大規(guī)模的車輛屬性數(shù)據(jù)集SYSU-ZTE-CARS。
2 基于深度學習的車輛屬性識別方案
2.1 基于CNN的基本技術(shù)框架
基于深度學習的車輛屬性識別方案,主要以CNN作為基本工具。CNN是一種參數(shù)可學習的模型,通常是利用反向傳播(BP)算法對網(wǎng)絡參數(shù)進行微調(diào)更新,有著數(shù)據(jù)擬合能力強,訓練簡便,支持端到端的訓練和測試的特點。在屬性識別技術(shù)方案(如圖1所示)中,CNN的作用是作為特征提取器,對輸入的圖片/視頻幀進行特征表達,得到其具有較強判別性的特征向量;再利用分類器對特征向量進行分類,以此實現(xiàn)對圖片/視頻幀中車輛屬性的識別。
文中所提出的方案選用了AlexNet[12]、VGG16[7]、ResNet[13]等經(jīng)典CNN模型,利用有監(jiān)督學習的方法,訓練了多種屬性識別網(wǎng)絡模型,對不同屬性的識別性能進行了測試評估和分析。
2.2 基于細粒度的識別優(yōu)化方案
屬性識別,本質(zhì)上是類內(nèi)區(qū)分。對于類內(nèi)判別性較強的屬性,如視角、顏色、車類型,直接采用“CNN+分類器”的方法已能夠獲得比較好的識別效果;但對于類內(nèi)區(qū)分度不明顯的屬性,如品牌和子品牌,我們通常需要使用基于細粒度的識別技術(shù)來提高識別的精確度。文中,我們采用雙線性CNN(B-CNN)[14]的方法,使用B-CNN網(wǎng)絡框架(如圖2所示),增強特征向量對于細粒度分類識別的表達能力。
B-CNN延續(xù)了一般物體分類的做法,即通過CNN提取特征,然后用向量表示特征,最后用分類器分類向量。一般物體分類的做法是用全連接層將特征圖轉(zhuǎn)化為一條特征向量,作者認為這種做法導致特征向量的辨別程度不高,難以辨識相似度高的物體。在工作中,使用的是雙流CNN,它分別提取了兩個特征圖,并且將在這兩個特征圖每個位置算外積,然后用sum-pooling池化,最后再拉直成一條特征向量[14]。用這個特征向量進行細粒度的分類識別,效果有顯著提升。
假設(shè)圖I某個區(qū)域i經(jīng)過兩個CNN對應的特征圖分別是矩陣A(維)和B(維),其中M和N是兩個特征圖的深度,C可以是兩位的數(shù)對,代表寬和高。
那么此時兩矩陣相乘AT×B 的結(jié)果是矩陣Pi(維),則
將Φ(I )拉直成一條向量L(維),即圖2中的雙線性特征向量。對這個特征向量做標準化處理后便可用作分類。在對細粒度屬性表達能力上,該方法所得到的特征向量比全連接層輸出的特征向量的更強。
2.3 車輛屬性識別演示系統(tǒng)
文中,我們研究并實現(xiàn)了一個車輛屬性識別演示系統(tǒng),此原型系統(tǒng)的設(shè)計主要參考MVC框架,將界面、業(yè)務邏輯、數(shù)據(jù)三者分層,在修改業(yè)務邏輯時只需要修改控制層的部件,在修改用戶界面(UI)時,只需要對定義UI的xml文件做出修改,不需要改變控制層的代碼,降低了代碼的耦合性,增加重用性。系統(tǒng)的總體架構(gòu)如圖3所示:最上層是UI層,中間是業(yè)務邏輯層,下面是數(shù)據(jù)資源層,而右邊則是該系統(tǒng)的技術(shù)支持層。
演示系統(tǒng)使用python+pyqt4開發(fā),界面簡潔。系統(tǒng)主要功能是對輸入的圖像和視頻做車輛檢測和屬性識別處理,并輸出結(jié)果。系統(tǒng)的深度學習框架采用Caffe[15],Caffe是采用C++語言開發(fā)的高清晰、高可讀性、高效的深度學習框架,支持多語言接口。
3 車輛屬性識別實驗結(jié)果與分析
3.1 SYSU-ZTE-CARS數(shù)據(jù)集
我們使用有監(jiān)督的訓練方法訓練屬性識別模型,該方法需要訓練樣本,即圖片及其屬性類別標簽。因此,我們參考CompCars數(shù)據(jù)集的構(gòu)建方式和經(jīng)驗,利用網(wǎng)絡爬蟲技術(shù),從互聯(lián)網(wǎng)獲取了大量車輛圖片,并對所有圖片進行了屬性標注,構(gòu)建了用于訓練屬性識別模型的大規(guī)模數(shù)據(jù)集SYSU-ZTE-CARS,圖4是該數(shù)據(jù)集的樣例圖片。
SYSU-ZTE-CARS數(shù)據(jù)集共有169 610張的車輛圖片,共標注了5種常用車輛屬性,其屬性標簽標注情況如表1所示。其中,屬性標簽包括正前、正后、正側(cè)、前側(cè)和后側(cè)共5種車輛視角;包括黑、白、紅、藍、黃、綠、紫、棕、灰、銀共10種顏色;包括“MPV”“SUV”“掀背車”“轎車”等15種類型,以及215種品牌和1 609種子品牌。
3.2 車輛屬性識別實驗結(jié)果
在算法的性能測試實驗中,我們初步采用單任務學習框架,在SYSU-ZTE-CARS數(shù)據(jù)集上對屬性識別算法性能進行評估,如表2所示。所謂的單任務學習框架,即對每一種屬性,分別訓練一個CNN模型,各屬性識別模型之間的參數(shù)不共享。
評測指標我們采用Top-1精度評價策略,即把模型預測結(jié)果按置信度從高到低排序,只考慮置信度最高的預測結(jié)果是否正確。
實驗結(jié)果表明:對于簡單的屬性,如視角、顏色、車類型,采用輕量級網(wǎng)絡(AlexNet)或中等深度網(wǎng)絡(VGG16),已經(jīng)有比較可靠的識別精度。采用極深網(wǎng)絡(ResNet系列)雖然對識別精度有小幅提升,但同時也增加了模型的參數(shù)規(guī)模,增大了計算量。細粒度識別技術(shù)對于簡單屬性的識別精度提升不但幫助不大,反而增加了模型運算開銷。對于較困難的屬性,如品牌,輕量級網(wǎng)絡的特征判別性表達能力不足,增加網(wǎng)絡深度,可以明顯提高識別精度。采用細粒度識別優(yōu)化后,其識別精度有小幅上升。對于困難的屬性,如子品牌,僅僅增加網(wǎng)絡深度并不能獲得較好的識別性能,而須要通過細粒度的識別技術(shù)來增強特征的可判別性,才能達到可靠的識別精度。
圖5是算法識別效果樣例,上面兩行分別是SYSU-ZTE-CARS數(shù)據(jù)集上的樣例圖片和算法預測的屬性標簽,下面兩行分別是在現(xiàn)實應用場景中的測試樣例圖片和算法預測的屬性標簽。預測標簽中,黑色字體表示正確預測,紅色字體表示預測錯誤。SYSU-ZTE-CARS上正確屬性通過構(gòu)建數(shù)據(jù)集的時候標注獲得,由于現(xiàn)實場景中沒有預標注的屬性標簽,我們將預測結(jié)果與網(wǎng)上搜索結(jié)果進行比對來判斷預測的正確性。我們抽取了1 000張真實場景的圖片作為測試樣例,人工評估的結(jié)論是:這種跨場景自動標注的方法在非極端條件下的識別精確度較度,比較可靠;在極端條件下,則仍須要人工檢驗。
4 結(jié)束語
基于跨場景標注的思路,通過構(gòu)建大規(guī)模車輛屬性數(shù)據(jù)集,在車輛海報圖片場景中訓練屬性識別模型,再將模型遷移到現(xiàn)實監(jiān)測控制場景中進行自動標注,以此方式間接獲得檢測控制場景下的車輛屬性標簽。通過初步的實驗測試評估,該思路可行性較高。
參考文獻
[1] 潘秋菱, 許曉杰, 肖乾友. CNGI上的一種電信新業(yè)務:智能交通[J]. 中興通訊技術(shù), 2005, 11(5):16-19
[2] 王滌宇, 付超賢. 交通2.0——智慧交通的關(guān)鍵[J]. 中興通訊技術(shù), 2014, 20(4):11-15. DOI: 10.3969/j.issn.1009-6868.2014.04.003
[3] RUSSAKOVSKY O, DENG J, SU H, et al. Imagenet Large Scale Visual Recognition Challenge[J]. International Journal of Computer Vision, 2015, 115(3): 211-252
[4] GEIGER A, LENZ P, URSTASUN R. Are We Ready for Autonomous Driving? The Kitti Vision Benchmark Suite[C]// 2012 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). USA: IEEE, 2012: 3354-3361
[5] CAI Z, FAN Q, FERIS R S, et al. A Unified Multi-Scale Deep Convolutional Neural Network for Fast Object Detection[C]//European Conference on Computer Vision. Germany: Springer International Publishing, 2016: 354-370
[6] REN J, CHEN X, LIU J, et al. Accurate Single Stage Detector Using Recurrent Rolling Convolution[EB/OL].[2017-04-27] .https://arxiv.org/abs/1704.05776
[7] SIMONYAN K, ZISSERMAN A. Very Deep Convolutional Networks for Large-Scale Image Recognition[EB/OL].[2017-04-27]. https://arxiv.org/abs/1409.1556
[8] SZEGEDY C, LIU W, JIA Y, et al. Going Deeper with Convolutions[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. USA: IEEE, 2015: 1-9. DOI: 10.1109/CVPR.2015.7298594
[9] YANG L, LUO P, CHANGELOY C, et al. A Large-Scale Car Dataset for Fine-Grained Categorization and Verification[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. USA:IEEE, 2015: 3973-3981. DOI: 10.1109/CVPR.2015.7299023
[10] SOCHOR J, HEROUT A, HAVEL J. BoxCars: 3D Boxes as CNN Input for Improved Fine-Grained Vehicle Recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. USA:IEEE, 2016: 3006-3015. DOI: 10.1109/CVPR.2016.328
[11] ZHOU Y, LIU L, SHAO L, et al. DAVE: A Unified Framework for Fast Vehicle Detection and Annotation[C]//European Conference on Computer Vision. Germany: Springer International Publishing, 2016: 278-293
[12] KRIZHEVSKY A, SUSKEVER I, HINTON G E. Imagenet Classification with Deep Convolutional Neural Networks[C]//Advances in Neural Information Processing Systems. USA:IEEE, 2012: 1097-1105
[13] HE K, ZHANG X, REN S, et al. Deep Residual Learning for Image Recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. USA: IEEE, 2016: 770-778. DOI: 10.1109/CVPR.2016.90
[14] LIN T Y, ROYCHOWDHURY A, MAJI S. Bilinear CNN Models for Fine-Grained Visual Recognition[C]//Proceedings of the IEEE International Conference on Computer Vision. USA:IEEE, 2015: 1449-1457
[15] JIA Y, SHELHAMER E, DONAHUE J, et al. Caffe: Convolutional Architecture for Fast Feature Embedding[C]//Proceedings of the 22nd ACM international conference on Multimedia. USA:ACM, 2014: 675-678