張少巍 殷榮網(wǎng)
(1 安徽文達(dá)信息工程學(xué)院,安徽 合肥 231201)
(2 合肥學(xué)院,安徽 合肥 230601)
隨著智能交通系統(tǒng)(Intelligent Transportation System,ITS)在智能城市的推廣,智能交通應(yīng)用的核心技術(shù)迅速發(fā)展并不斷更新。20世紀(jì)70年代,只有磁線圈被用來(lái)檢測(cè)車輛,但現(xiàn)在,諸多技術(shù)如雷達(dá)、超聲波、紅外線和視頻圖像等在實(shí)踐中非常流行[1]。隨著越來(lái)越多的數(shù)字視頻監(jiān)控裝備到交通道路,視覺(jué)車輛檢測(cè)方法已成為計(jì)算機(jī)視覺(jué)科學(xué)家最近的研究課題[2]。
作為目標(biāo)檢測(cè)的一個(gè)應(yīng)用領(lǐng)域,車輛檢測(cè)在ITS、無(wú)人駕駛智能車和公共安全中發(fā)揮著重要作用[3]。經(jīng)過(guò)檢測(cè)后,可以進(jìn)一步對(duì)它們進(jìn)行更詳細(xì)的分類。如果在公共安全領(lǐng)域,根據(jù)汽車制造、型號(hào)、顏色和車牌號(hào)碼,可以啟動(dòng)城市中的所有攝像頭,它們可以自動(dòng)檢測(cè)、識(shí)別和定位汽車。在這個(gè)場(chǎng)景中,車輛的分類是必不可少的。但事實(shí)上,車輛內(nèi)部以及車輛之間的差異非常細(xì)微[4-5],因此研究課題非常具有挑戰(zhàn)性,可以極大促進(jìn)車輛檢測(cè)、動(dòng)作識(shí)別和自動(dòng)場(chǎng)景描述[6-8]等的發(fā)展。
如果在交通和公共安全中應(yīng)用車輛分類,就可以獲得更多的關(guān)于車輛的元數(shù)據(jù)或元信息,如車輛制造商、車輛型號(hào)、車輛標(biāo)識(shí)、生產(chǎn)年份、最大速度和加速度等。通過(guò)動(dòng)態(tài)獲取這些信息,可以建立一個(gè)監(jiān)控整個(gè)城市道路的大型智能交通系統(tǒng)。此外,在不同時(shí)間段分析道路上的車輛,以發(fā)現(xiàn)人們外出的規(guī)律,就可以相應(yīng)地安排運(yùn)輸規(guī)則,這將使城市管理變得更加便捷化和智能化。
在本文中,研究的問(wèn)題主要有三個(gè),即如何構(gòu)建大型車輛數(shù)據(jù)集;如何檢測(cè)自然圖像中的車輛;如何對(duì)車輛進(jìn)行分類。下面將對(duì)這三個(gè)問(wèn)題分別進(jìn)行討論。
隨著大規(guī)模訓(xùn)練數(shù)據(jù)集的可用性,基于深度卷積神經(jīng)網(wǎng)絡(luò)的方法近來(lái)被廣泛應(yīng)用于圖像分類,物體檢測(cè)以及許多其他識(shí)別任務(wù)[9-15]。但在早期,由于數(shù)據(jù)集的規(guī)模較小以及CPU的計(jì)算能力有限,CNN只能應(yīng)用于像數(shù)字手寫(xiě)數(shù)字識(shí)別這樣的小問(wèn)題領(lǐng)域。由此,大規(guī)模的訓(xùn)練數(shù)據(jù)集對(duì)于CNN模型是必不可少的。現(xiàn)在有許多公開(kāi)的不同規(guī)模的數(shù)據(jù)集可以提供給研究人員使用。例如,小型圖像數(shù)據(jù)集如Caltech-256是一個(gè)圖像物體識(shí)別數(shù)據(jù)集,包含30608張圖片,256個(gè)物體類別,每類圖片最少80張,最多827張。PASCAL VOC挑戰(zhàn)賽是視覺(jué)對(duì)象的分類識(shí)別和檢測(cè)的一個(gè)基準(zhǔn)測(cè)試,提供了檢測(cè)算法和學(xué)習(xí)性能的標(biāo)準(zhǔn)圖像注釋數(shù)據(jù)集和標(biāo)準(zhǔn)的評(píng)估系統(tǒng)。PASCAL VOC圖片集包括20個(gè)目錄:人類、動(dòng)物、交通工具等。PASCAL VOC數(shù)據(jù)集圖像質(zhì)量好,標(biāo)注完備,非常適合用來(lái)測(cè)試算法性能。隨著計(jì)算機(jī)視覺(jué)研究的進(jìn)一步發(fā)展,需要更大的數(shù)據(jù)集。例如,TinyImage這樣的數(shù)據(jù)集有8千萬(wàn)個(gè)圖像,所有這些圖像都是通過(guò)使用關(guān)鍵字從Google、百度、Bing等圖像搜索引擎中獲取的。其他較大的數(shù)據(jù)集如LableMe和ImageNet分別提供30萬(wàn)和5千萬(wàn)個(gè)標(biāo)注和分割圖片,需要大量人員進(jìn)行注釋。盡管有大量的圖像,但對(duì)于深度學(xué)習(xí)模型還是不夠的。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)通常具有數(shù)百萬(wàn)個(gè)參數(shù),但現(xiàn)有數(shù)據(jù)集不足以學(xué)習(xí)如此多的參數(shù)而沒(méi)有顯著的過(guò)擬合。所以研究人員采用一些技術(shù)方法,如裁剪,調(diào)整大小,鏡像反射以擴(kuò)充現(xiàn)有的數(shù)據(jù)集。因此,要想建立一個(gè)大規(guī)模的數(shù)據(jù)集,第一步應(yīng)該通過(guò)互聯(lián)網(wǎng)搜索引擎收集海量圖像,然后雇傭大量的人力對(duì)它們進(jìn)行注釋,最后通過(guò)技術(shù)人員采用一些諸如圖像增強(qiáng)技術(shù)等手段來(lái)擴(kuò)充數(shù)據(jù)集。
隨著計(jì)算機(jī)圖像處理技術(shù)的發(fā)展,車輛檢測(cè)技術(shù)發(fā)展迅速。在整車檢測(cè)的情況下,取得了很好的結(jié)果,Girshick R在VOC2007中在復(fù)雜背景下的檢測(cè)精度達(dá)到了49.1%[16]。He K改進(jìn)了Girshick R的工作,在不降低檢測(cè)精度的情況下,將速度提升了20—60倍[17]?;贖e的工作,Girshick R將檢測(cè)精度進(jìn)一步提高到了66%,檢測(cè)速度提高了10倍,處理速度可以達(dá)到每秒3幅圖像[18]。再次,He K將處理速度提高到每秒5張圖像[19]。盡管這些研究在車輛檢測(cè)方面做了大量工作,但是他們主要針對(duì)的是對(duì)通用物體的檢測(cè)問(wèn)題,而不是專門用于進(jìn)行車輛檢測(cè),在工程應(yīng)用中,檢測(cè)精度遠(yuǎn)遠(yuǎn)低于每秒3幅圖像,準(zhǔn)確度也遠(yuǎn)遠(yuǎn)不能滿足要求。
目前為止,專門針對(duì)車輛檢測(cè)問(wèn)題進(jìn)行的研究比較少。通過(guò)手動(dòng)收集161個(gè)車型和136727幅圖像,Yang L等構(gòu)建了數(shù)據(jù)集CompCars,并展示了一些利用數(shù)據(jù)集的重要應(yīng)用,即汽車模型分類,汽車模型驗(yàn)證和屬性預(yù)測(cè)。通過(guò)CNN模型,他們能夠獲得76.7%的分類精度[20]。但對(duì)于深度學(xué)習(xí)網(wǎng)絡(luò)來(lái)說(shuō),這樣的圖像數(shù)量還不夠,而且我們注意到模型中輸入的圖像只包含單個(gè)車輛,而實(shí)際上圖像通常具有復(fù)雜的背景并且車輛的數(shù)量也有很大的不確定性。因此,要獲得這個(gè)理想的數(shù)據(jù)集既費(fèi)時(shí)又費(fèi)力。
通過(guò)對(duì)以往研究的分析總結(jié),提出了一種解決以上問(wèn)題的新方法。首先,我們使用網(wǎng)絡(luò)協(xié)作注釋機(jī)制來(lái)生成可以構(gòu)建不斷增長(zhǎng)的數(shù)據(jù)集的大規(guī)模注釋車輛圖像。其次,我們使用更快的基于R-CNN的模型來(lái)檢測(cè)現(xiàn)有數(shù)據(jù)集中的車輛,然后生成圖像。最后,使用聯(lián)合貝葉斯網(wǎng)絡(luò)對(duì)車輛進(jìn)行分類。
自然交通圖像通常包含不確定數(shù)量的車輛。如果想對(duì)這些圖像進(jìn)行的分類,必須首先提取所有的車輛。然后,對(duì)于這些提取的圖像,使用CNN模型來(lái)計(jì)算特征,可以輕松地對(duì)車輛進(jìn)行分類。整體架構(gòu)如圖1所示。這種車輛分類模型以復(fù)雜背景的原始圖像作為輸入,首先將其輸入到車輛檢測(cè)模型中,然后通過(guò)檢測(cè)模型生成僅包含單個(gè)車輛的一系列子圖像。然后將所有子圖像轉(zhuǎn)移到下一個(gè)分類模型中,最后獲取車輛的所有元信息,如車牌、車型等。
圖1 整體框架
為了通過(guò)深度學(xué)習(xí)方法來(lái)實(shí)現(xiàn)有效的車輛分類,需要解決以下三個(gè)問(wèn)題:(1)如何構(gòu)建適合車輛分類的大規(guī)模數(shù)據(jù)集;(2)如何在雜亂背景的圖像中獲得檢測(cè)車輛,然后提取它們以提供干凈的輸入給后續(xù)的分類模型;(3)如何識(shí)別不同的車輛關(guān)鍵部件,然后將所有部件連接在一起進(jìn)行分類。
有效的車輛數(shù)據(jù)集是網(wǎng)絡(luò)模型的知識(shí)獲取來(lái)源,為了收集更精確的數(shù)據(jù)集,本文采用自動(dòng)數(shù)據(jù)集合和網(wǎng)絡(luò)協(xié)作注釋機(jī)制。在本文中,首先使用基于Java的開(kāi)源搜索引擎Nutch從互聯(lián)網(wǎng)自動(dòng)獲取車輛圖像,然后將圖像存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶可以通過(guò)網(wǎng)頁(yè)瀏覽器訪問(wèn)該數(shù)據(jù)庫(kù)平臺(tái),該平臺(tái)將為用戶提供一些未注釋的圖像用于注釋,如前擋風(fēng)玻璃、后擋風(fēng)玻璃、天花板、側(cè)面、徽標(biāo)、前大燈、尾燈、霧燈以及進(jìn)氣口等將被標(biāo)記。如果圖像不包含車輛,則該圖像將被標(biāo)注為負(fù)樣本。不同地區(qū)的不同顏色,平臺(tái)將為每個(gè)地區(qū)存儲(chǔ)坐標(biāo)和標(biāo)簽。此外,用戶還可以上傳圖像進(jìn)行注釋。這樣,可以得到一個(gè)連續(xù)增加的數(shù)據(jù)集。在這項(xiàng)工作中,還提出了一種可以自動(dòng)生成大量圖像的新方法,這些生成的圖像不需要注釋。對(duì)于車輛檢測(cè),使用指定品牌和型號(hào)的汽車的AutoCAD 3D模型,然后將模型導(dǎo)入到系統(tǒng)中,最后生成不同視圖的圖像。這些圖像可以描述汽車的所有細(xì)節(jié)。通過(guò)改變攝像機(jī)的距離,方向角度和角度,可以獲得數(shù)萬(wàn)張不同外觀的汽車圖像。這種圖像不需要注釋,這樣就可以大大節(jié)省工作量。
車輛檢測(cè)模型可以檢測(cè)復(fù)雜背景圖像中的所有車輛,然后將其作為子圖像提取出來(lái)。具體步驟包括:首先將對(duì)原始圖像導(dǎo)入到VGG16網(wǎng)絡(luò)結(jié)構(gòu)的卷積網(wǎng)絡(luò)中,然后生成原始圖像的特征圖,在該特征圖上應(yīng)用區(qū)域推薦網(wǎng)絡(luò) (Region Proposal Network,RPN)來(lái)獲取區(qū)域提議。之后,使用ROI Pooling(Region of Interest Pooling)層,獲取原始圖像上的區(qū)域提案,然后將其送入到車輛SVM分類器以判斷這些區(qū)域提案是否為車輛。這個(gè)模型的執(zhí)行過(guò)程如圖2所示。
圖2 車輛檢測(cè)模型的過(guò)程
車輛分類模型使用僅包含單個(gè)車輛的圖像作為CNN模型的輸入來(lái)獲得分類特征,然后利用聯(lián)合貝葉斯網(wǎng)絡(luò)將包含的車輛進(jìn)行分類,執(zhí)行過(guò)程如圖3所示。CNN模型和聯(lián)合貝葉斯網(wǎng)絡(luò)已經(jīng)在人臉識(shí)別中被證明是有效的方法。在本文中,將車輛識(shí)別分為兩部分,一部分是不同車型之間的差異,另一部分是同一車型的內(nèi)部差異,例如從不同視角拍攝的車輛圖像。特征x被表示為兩個(gè)高斯變量的總和。
在方程(1)中,μ ~ N(0,Sμ),ε ~ N(0,Sε),第一個(gè)變量 μ 表示不同車型的差值,第二個(gè)變量 ε 表示相同車型的差值。給定差異間和差異內(nèi)的高斯假設(shè),可以使用聯(lián)合貝葉斯網(wǎng)絡(luò)來(lái)計(jì)算也遵循高斯分布的這兩個(gè)特征的聯(lián)合概率。
Sμ和 Sε可通過(guò)最大期望算法(Expectation Maximization Algorithm,EM算法)來(lái)計(jì)算。
通過(guò)使用上述公式,可以通過(guò)計(jì)算兩幅圖像的相似度來(lái)判斷它們是否屬于相同的車輛類別。
圖3 車輛分類過(guò)程
本文使用的數(shù)據(jù)集包括三部分:整車數(shù)據(jù)集、零部件數(shù)據(jù)集和非車輛數(shù)據(jù)集。整車數(shù)據(jù)集包含由50家廠商生產(chǎn)的共198種型號(hào)的車輛,總共183124張圖像,用于訓(xùn)練R-CNN模型,以建立車輛檢測(cè)模型。采用車輛零件數(shù)據(jù)集訓(xùn)練可對(duì)不同車型進(jìn)行分類的分類網(wǎng)絡(luò),該數(shù)據(jù)集共包含52364張前照燈、尾燈、霧燈、標(biāo)識(shí)和進(jìn)氣口圖像。非車輛數(shù)據(jù)集包含從互聯(lián)網(wǎng)上下載的632145幅圖像。
車輛檢測(cè)實(shí)驗(yàn)數(shù)據(jù)集主要由整車數(shù)據(jù)集和非車輛數(shù)據(jù)集組成。對(duì)于整車數(shù)據(jù)集,我們將其分為兩部分,其中132000作為訓(xùn)練數(shù)據(jù)集,其中51124是正面測(cè)試數(shù)據(jù)集。非車輛數(shù)據(jù)集也分為兩個(gè)子集,其中545145個(gè)被視為訓(xùn)練數(shù)據(jù)集,87000為測(cè)試數(shù)據(jù)集。因此,我們共有219000個(gè)訓(xùn)練數(shù)據(jù)集的圖像和596269個(gè)測(cè)試數(shù)據(jù)集的圖像。實(shí)驗(yàn)平臺(tái)采用的是基于GTX TITAN X的GPU,采用ImageNet圖像分類大賽評(píng)價(jià)標(biāo)準(zhǔn)的TOP-1的車輛檢測(cè)精度為87%,TOP-5的車輛檢測(cè)精度達(dá)到92%。此外,訓(xùn)練圖像的數(shù)量對(duì)訓(xùn)練結(jié)果的精度也有影響,如圖4所示。
圖4 檢測(cè)精度圖
從檢測(cè)模型生成的圖像中,每幅圖像只包含一輛車,我們選擇基本覆蓋所有198款車型的230000張圖像,然后將其中的190000張作為訓(xùn)練數(shù)據(jù),其中40000張作為測(cè)試數(shù)據(jù),再加上43101張車輛部件圖像作為訓(xùn)練數(shù)據(jù),進(jìn)行了分類實(shí)驗(yàn),最終得到了89%的分類準(zhǔn)確率,分類精度如圖5所示。
圖5 分類精度圖
本文首先利用基于R-CNN的快速車輛檢測(cè)模型對(duì)背景復(fù)雜的圖像中的車輛進(jìn)行檢測(cè),然后將檢測(cè)結(jié)果輸入車輛分類模型中,對(duì)車輛進(jìn)行更詳細(xì)的分類,最終得到了89%的分類準(zhǔn)確率。R-CNN是一個(gè)針對(duì)通用對(duì)象檢測(cè)的模型,為了提高檢測(cè)的準(zhǔn)確性和速度,可以考慮改善網(wǎng)絡(luò)結(jié)構(gòu),或者將特征分類器添加到分類模型中。所有這些問(wèn)題都是未來(lái)研究中需要重點(diǎn)關(guān)注的問(wèn)題。