王艷芬,朱緒冉,云 霄,孫彥景,石韞開(kāi),王賽楠
(中國(guó)礦業(yè)大學(xué) 信息與控制工程學(xué)院,江蘇 徐州 221116)
車輛重識(shí)別(Re-IDentification, Re-ID)旨在跨越不同的監(jiān)控?cái)z像機(jī)場(chǎng)景識(shí)別出目標(biāo)車輛,對(duì)社會(huì)公共安全的維護(hù)起到至關(guān)重要的作用,如尋找可疑車輛、跨攝像頭車輛跟蹤以及駕駛軌跡分析等。 由于交通場(chǎng)景復(fù)雜、攝像機(jī)視點(diǎn)有限、光照變化等約束的影響,車輛重識(shí)別仍是個(gè)極具挑戰(zhàn)的問(wèn)題。
現(xiàn)有的車輛重識(shí)別方法[1-5]僅在已裁剪好的車輛圖像之間實(shí)現(xiàn)識(shí)別,而在真實(shí)監(jiān)控場(chǎng)景中,車輛重識(shí)別任務(wù)要先從視頻中檢測(cè)并獲取車輛邊界框。 傳統(tǒng)的車輛識(shí)別方法主要采用顏色[6]、紋理[7]和灰度梯度直方圖[8]等人工特征,但此類特征在環(huán)境變化時(shí)魯棒性較差。 隨著卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)在計(jì)算機(jī)視覺(jué)領(lǐng)域的快速發(fā)展,眾多基于卷積神經(jīng)網(wǎng)絡(luò)的車輛識(shí)別方法被提出。 文獻(xiàn)[3]中提出一種基于深度學(xué)習(xí)的漸進(jìn)式車輛重識(shí)別方法,但此方法從圖像中獲取車牌區(qū)域時(shí)計(jì)算復(fù)雜度較高,因此實(shí)時(shí)性較差。 文獻(xiàn)[4-5]在車輛細(xì)粒度識(shí)別中采用先進(jìn)的三元損失模型,但該模型收斂緩慢,較softmax分類損失模型更易過(guò)擬合。
為解決以上問(wèn)題,筆者針對(duì)公共安全視頻監(jiān)控領(lǐng)域提出一種結(jié)合車輛檢測(cè)與識(shí)別的多攝像機(jī)無(wú)標(biāo)注車輛重識(shí)別方法。 首先,在檢測(cè)階段設(shè)計(jì)出基于二值-單點(diǎn)多盒檢測(cè)(Binary-Single Shot multibox Detector, B-SSD)的車輛檢測(cè)網(wǎng)絡(luò),先從視頻中檢測(cè)出所有車輛區(qū)域并在線生成候選車輛數(shù)據(jù)庫(kù),以解決原始視頻中無(wú)標(biāo)注問(wèn)題;在車輛識(shí)別階段提出一種多任務(wù)孿生(Multi-Task Siamese, MT-S)車輛識(shí)別網(wǎng)絡(luò),該網(wǎng)絡(luò)結(jié)合分類和驗(yàn)證兩種模型,充分利用監(jiān)督信息學(xué)習(xí)更具判別性的車輛特征,從而提高重識(shí)別精度;最后組建“VeRi-1501”數(shù)據(jù)集,該數(shù)據(jù)集在現(xiàn)有數(shù)據(jù)集[1,4]上擴(kuò)充車輛標(biāo)識(shí)數(shù)量,并均衡每個(gè)標(biāo)識(shí)在不同攝像機(jī)下的圖像數(shù)量。 在VeRi-1501數(shù)據(jù)集和實(shí)際交通場(chǎng)景中對(duì)所提方法進(jìn)行了驗(yàn)證。
筆者提出面向公共安全監(jiān)控的多攝像機(jī)車輛重識(shí)別方法,流程圖如圖1所示。 對(duì)于給定的無(wú)標(biāo)注原始視頻流,先用二值-單點(diǎn)多盒檢測(cè)車輛檢測(cè)網(wǎng)絡(luò)從視頻中獲取車輛區(qū)域,并在線生成候選車輛數(shù)據(jù)庫(kù);然后利用多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)提取目標(biāo)車輛與候選數(shù)據(jù)庫(kù)中車輛的特征,并計(jì)算相似度;最終匹配到目標(biāo)車輛。
圖1 面向公共安全監(jiān)控的多攝像機(jī)車輛重識(shí)別流程圖
單點(diǎn)多盒檢測(cè)(SSD)[9]較其他檢測(cè)框架[10-11]具有更快的運(yùn)行速度和更高的精度。 在車輛重識(shí)別問(wèn)題中,區(qū)分車輛和背景是檢測(cè)階段的核心任務(wù)。 因此,筆者設(shè)計(jì)了一種二值-單點(diǎn)多盒檢測(cè)車輛檢測(cè)網(wǎng)絡(luò),將單點(diǎn)多盒檢測(cè)算法用于二值車輛檢測(cè)問(wèn)題。 如圖2所示,二值-單點(diǎn)多盒檢測(cè)的架構(gòu)主要由兩部分組成:一部分是位于前端的深度卷積神經(jīng)網(wǎng)絡(luò),采用的是VGG-16[12]圖像分類網(wǎng)絡(luò),用于初步提取目標(biāo)特征;另一部分是位于后端的多尺度特征檢測(cè)網(wǎng)絡(luò),其作用是對(duì)前端產(chǎn)生的特征層進(jìn)行不同尺度條件下的特征提取。
圖2 二值-單點(diǎn)多盒檢測(cè)車輛檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)圖
在網(wǎng)絡(luò)訓(xùn)練期間,其目標(biāo)損失函數(shù)為置信損失和位置損失的加權(quán)和:
(1)
(2)
(3)
多任務(wù)孿生(MT-S)車輛識(shí)別網(wǎng)絡(luò)由兩個(gè)分類模型和一個(gè)驗(yàn)證模型組成,如圖3所示,分類模型和驗(yàn)證模型相互關(guān)聯(lián)。分類模型得到的車輛判別表達(dá)特征作為驗(yàn)證模型的輸入,驗(yàn)證模型預(yù)測(cè)的結(jié)果在下一批中對(duì)分類模型的參數(shù)進(jìn)行修正。 上下兩個(gè)分類模型通過(guò)兩個(gè)相同的ResNet-50網(wǎng)絡(luò)共享權(quán)值。 網(wǎng)絡(luò)參數(shù)在優(yōu)化中受到這兩類模型損失函數(shù)的共同約束,充分利用監(jiān)督信息,從而使網(wǎng)絡(luò)學(xué)習(xí)到的特征具有更強(qiáng)的判別性。
該網(wǎng)絡(luò)受分類標(biāo)簽t和驗(yàn)證標(biāo)簽s的共同監(jiān)督。 輸入尺寸為224×224的圖像對(duì)(正樣本對(duì)或負(fù)樣本對(duì)),用兩個(gè)完全相同的ResNet-50[14]網(wǎng)絡(luò)提取車輛特征,并輸出1×1×2 048維的特征向量f1和f2。f1和f2分別用于預(yù)測(cè)兩輸入圖像的車輛身份t。 同時(shí)計(jì)算f1和f2的歐氏距離,進(jìn)行相似度判斷,f1和f2共同預(yù)測(cè)驗(yàn)證類別s。
圖3 多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)圖
分類模型包含2個(gè)ImageNet[15]預(yù)訓(xùn)練的ResNet-50網(wǎng)絡(luò)、兩個(gè)卷積層和兩個(gè)分類損失函數(shù)。其中,ResNet-50去掉最后一層全連接層,平均池化層輸出1×1×2 048維的特征向量f1、f2作為車輛判別表達(dá)。 由于數(shù)據(jù)集中有751個(gè)訓(xùn)練標(biāo)識(shí),因此用751個(gè)1×1×2 048的卷積核對(duì)其進(jìn)行卷積,得到1×1×751維的車輛身份表達(dá)f。 最后使用softmax函數(shù)和交叉熵?fù)p失進(jìn)行身份預(yù)測(cè),即
(4)
(5)
驗(yàn)證模型包含一個(gè)無(wú)參的歐幾里得層、一個(gè)卷積層和一個(gè)驗(yàn)證損失函數(shù)。 其中歐幾里得層定義為El=(f1-f2)2,El是歐幾里得層的輸出張量。 驗(yàn)證模型通過(guò)歐幾里得層將相同標(biāo)識(shí)的車輛特征映射到歐幾里得空間中相近的點(diǎn),將不同標(biāo)識(shí)的車輛特征映射到歐幾里得空間中相隔較遠(yuǎn)的點(diǎn)。筆者沒(méi)有采用對(duì)比損失函數(shù)[16],而是將車輛驗(yàn)證視為二元分類問(wèn)題,這是因?yàn)橹苯邮褂脤?duì)比損失函數(shù)容易造成網(wǎng)絡(luò)參數(shù)過(guò)擬合。 因此,用2個(gè)1×1×2 048的卷積核對(duì)El進(jìn)行卷積,得到1×1×2維的相似度表達(dá)E。 最終驗(yàn)證損失函數(shù)的表達(dá)式為
(6)
(7)
這里s是驗(yàn)證類別(不同/相同),
是預(yù)測(cè)概率,Ej是目標(biāo)概率。 如果輸入的一對(duì)圖像屬于同一標(biāo)識(shí),則Ej= 0;否則,Ej=1。
在網(wǎng)絡(luò)訓(xùn)練期間,整體損失函數(shù)為分類損失和驗(yàn)證損失的加權(quán)和:
(8)
權(quán)重系數(shù)α通過(guò)交叉驗(yàn)證設(shè)置為0.5。在識(shí)別標(biāo)簽t和驗(yàn)證標(biāo)簽s的共同監(jiān)督下,網(wǎng)絡(luò)學(xué)習(xí)到的特征具有更強(qiáng)的判別性。
在車輛重識(shí)別任務(wù)中,經(jīng)常使用的兩個(gè)數(shù)據(jù)集是VehicleID[4]和VeRI-776[1]。 其中,VehicleID數(shù)據(jù)集僅考慮了車輛的前后兩種視角,無(wú)法滿足復(fù)雜環(huán)境下的需求。每種車輛僅包含8.4張圖像,無(wú)法滿足查詢要求。VeRI-776數(shù)據(jù)集只包含776個(gè)標(biāo)識(shí),樣本標(biāo)識(shí)數(shù)量不充分,嚴(yán)重影響模型的準(zhǔn)確率。
圖4 VeRi-1501數(shù)據(jù)集中的樣本
針對(duì)以上不足,在VehicleID和VeRi-776數(shù)據(jù)集的基礎(chǔ)上構(gòu)建一個(gè)新的數(shù)據(jù)集——VeRi-1501。其具有以下3個(gè)特性:①圖像均在真實(shí)復(fù)雜的交通場(chǎng)景中捕獲,具有車牌信息和時(shí)空關(guān)系信息;②包含由6個(gè)分辨率為1 280×1 080高清圖像的監(jiān)控?cái)z像頭捕獲的1 501輛車的37 491張圖像,其中訓(xùn)練集包含751輛車的17 190張圖像,測(cè)試集包含750輛車以及干擾物,共計(jì)17 178張圖像,查詢集包含750輛車的2 915張圖像;③每個(gè)標(biāo)識(shí)最多可被6個(gè)攝像機(jī)以不同角度、不同光照以及在遮擋情況下捕獲,確保每個(gè)標(biāo)識(shí)車輛至少在兩個(gè)攝像機(jī)中出現(xiàn)過(guò),以便可以執(zhí)行跨攝像機(jī)搜索。
圖4給出了VeRi-1501數(shù)據(jù)集中的樣本,以“0001_c1s1_102004103.jpg”為例,圖像命名遵循以下規(guī)則:①“0001”表示車輛的標(biāo)識(shí)編碼;②“c1”表示1號(hào)攝像機(jī);③“s1”表示攝像機(jī)中的第一時(shí)間序列,“c1s1”和“c2s1”處于同一時(shí)期;④“102004103”表示用視頻軟件截取視頻幀生成的默認(rèn)名。
(1)圖像預(yù)處理。將所有訓(xùn)練圖像的大小調(diào)整為256×256,并采用去均值操作進(jìn)行數(shù)據(jù)歸一化處理。 在訓(xùn)練期間,所有圖像被隨機(jī)裁剪為224×224大小,亂序排列并按隨機(jī)順序抽取圖像組成正負(fù)樣本對(duì)。 由于正樣本對(duì)的數(shù)量有限,為防止過(guò)擬合,將正樣本對(duì)和負(fù)樣本對(duì)之間的初始比率設(shè)置為1∶1。每個(gè)歷元之后正樣本對(duì)以1.01倍的比率增加,直到正負(fù)樣本對(duì)的比率達(dá)到1∶4。
(2)訓(xùn)練。在Caffe深度學(xué)習(xí)框架中實(shí)現(xiàn)多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)。 實(shí)驗(yàn)環(huán)境為配有NVIDIA Quadro M2000和2.2 GHz Intel Xeon E5-2650 CPU的設(shè)備。 歷元設(shè)置為155,批次設(shè)置為4。 學(xué)習(xí)率初始化為0.001,然后在最后5個(gè)歷元后設(shè)置為0.000 1。采用小批量隨機(jī)梯度下降(SGD)來(lái)更新網(wǎng)絡(luò)參數(shù)。
在實(shí)驗(yàn)中采用兩個(gè)評(píng)估指標(biāo):平均精度和Rank系列精度[17]。 平均精度用來(lái)度量重識(shí)別方法的整體性能, rank-1精度表示識(shí)別結(jié)果中排名第1的圖像是正確的概率。 rank-5精度表示識(shí)別結(jié)果排名前5的圖像中包含正確圖像的概率。 表1給出了筆者所提的多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)與其他先進(jìn)網(wǎng)絡(luò)在VeRi-1501上的性能對(duì)比。 從表1數(shù)據(jù)可以看出,多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)在平均精度、rank-1、rank-5中均性能最優(yōu),說(shuō)明該網(wǎng)絡(luò)可以準(zhǔn)確地進(jìn)行車輛重識(shí)別。
表1 多任務(wù)孿生與其他先進(jìn)算法的對(duì)比
為了進(jìn)一步評(píng)估多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)的性能,提供了圖5中所有相機(jī)對(duì)之間的重識(shí)別結(jié)果。共放置了6個(gè)攝像機(jī),相機(jī)分辨率為1 920×1 080。 圖5的水平軸和垂直軸分別代表目標(biāo)車輛所在的初始相機(jī)位置和待檢索的相機(jī)位置。 從表1中可以看出,交叉相機(jī)的平均精度和平均rank-1精度分別為81.16%和83.56%。 筆者提出的方法在很大程度上改善了重識(shí)別性能,并且觀察到相機(jī)之間的標(biāo)準(zhǔn)偏差較小。 這表明多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)能夠在不同視角下進(jìn)行高效的車輛重識(shí)別。
圖5 多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)在攝像機(jī)對(duì)之間的識(shí)別性能
為進(jìn)一步驗(yàn)證筆者提出的面向公共安全監(jiān)控的車輛重識(shí)別方法在實(shí)際場(chǎng)景中的有效性,在校園內(nèi)拍攝若干組監(jiān)控視頻用于驗(yàn)證,如圖6所示。 目標(biāo)車輛從校園北門(mén)(攝像機(jī)1)進(jìn)入,沿北京路—天津路順時(shí)針繞行,途經(jīng)圖中所示的6個(gè)攝像頭,攝像頭的分辨率為1 920×1 080。 算法實(shí)時(shí)性可達(dá)25幀/秒。 具體步驟如下:
(1)獲取無(wú)標(biāo)注視頻流v0,v1,…,vi;
(2)在給定無(wú)標(biāo)注視頻序列v0的當(dāng)前幀中標(biāo)定目標(biāo)車輛;
(3)利用B-SSD車輛檢測(cè)網(wǎng)絡(luò)讀取此后的每一幀圖像,提取圖像中所有的車輛邊界框ID0,ID1,…,IDi,并在線生成候選車輛數(shù)據(jù)庫(kù);
(4)利用多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)提取ID0與ID0,ID1,…,IDi的車輛判別特征,并依次計(jì)算ID0與ID0,ID1,…,IDi之間的相似度得分;
(5)相似度得分最高的即為目標(biāo)車輛;
(6)在視頻序列v1,…,vi中重復(fù)步驟(3)到步驟(5)。
實(shí)驗(yàn)結(jié)果如圖6所示,實(shí)線框代表目標(biāo)車輛, 灰色框代表檢測(cè)出的候選車輛,黑色框代表在不同攝像機(jī)下用筆者所提出的方法定位到的目標(biāo)車輛。
圖6 面向公共安全監(jiān)控的多攝像機(jī)車輛重識(shí)別在公共安全監(jiān)控場(chǎng)景下的應(yīng)用
針對(duì)公共安全視頻監(jiān)控領(lǐng)域中無(wú)標(biāo)注的原始監(jiān)控視頻,提出一種結(jié)合車輛檢測(cè)與識(shí)別的多攝像機(jī)無(wú)標(biāo)注車輛重識(shí)別方法。 首先提出二值-單點(diǎn)多盒檢測(cè)車輛檢測(cè)網(wǎng)絡(luò),獲取車輛邊界框并在線生成候選數(shù)據(jù)庫(kù);其次設(shè)計(jì)一個(gè)多任務(wù)孿生車輛識(shí)別網(wǎng)絡(luò)以提高重識(shí)別精度;最后組建“VeRi-1501”車輛數(shù)據(jù)集,其在現(xiàn)有數(shù)據(jù)集上擴(kuò)充車輛標(biāo)識(shí)數(shù)量,并均衡每個(gè)標(biāo)識(shí)在不同攝像機(jī)下的圖像數(shù)量。 筆者在VeRi-1501數(shù)據(jù)集和實(shí)際交通場(chǎng)景中對(duì)該方法進(jìn)行驗(yàn)證,結(jié)果表明該方法識(shí)別準(zhǔn)確且精度高。
致謝
感謝中國(guó)礦業(yè)大學(xué)保衛(wèi)處對(duì)此課題研究的無(wú)償支持;感謝滕躍同學(xué)對(duì)此次課題研究的幫助。