姜 衡, 楊孟京, 糜忠良, 唐云祁*
(1.中國人民公安大學(xué)刑事科學(xué)技術(shù)學(xué)院,北京 100038;2.上海市現(xiàn)場物證重點實驗室,上海 200083)
根據(jù)洛卡德的物質(zhì)交換與轉(zhuǎn)移原理,觸物必留痕,相應(yīng)的,如果嫌疑人在現(xiàn)場,他將留下腳印。足跡發(fā)揮了越來越重要的作用,這是因為依據(jù)嫌疑人留下的足跡可以推斷出嫌疑人所穿鞋的鞋型,再到犯罪現(xiàn)場周圍的視頻監(jiān)控中排查是否有人穿此鞋型從而實現(xiàn)對犯罪嫌疑人的追蹤溯源[1]。然而現(xiàn)實案件中的監(jiān)控視頻大多是比較模糊的,并不能直接判斷出鞋型,且人工完成費時費力。此時我們就可以借助計算機自動對視頻監(jiān)控下的鞋進行初分類,只需判斷鞋的類別,如判斷其是皮鞋還是運動鞋,初步確定嫌疑人的范圍,為下一步鎖定嫌疑人奠定基礎(chǔ)。
鞋類的自動分類本質(zhì)上是計算機圖像分類的問題,是計算機視覺領(lǐng)域的主要研究方向。 如果能將圖像分類引入上述視頻監(jiān)控下鞋類的判別,那么將大大減少技術(shù)人員的工作量, 并且能盡快的縮小和確定偵察范圍,從而使案件在短時間內(nèi)破獲。 近年來,卷積神經(jīng)網(wǎng)絡(luò)逐漸成為圖像分類領(lǐng)域的熱點,不同于傳統(tǒng)基于特征的匹配技術(shù)的識別方法,因其能自動提取更抽象、更本質(zhì)的特征,卷積神經(jīng)網(wǎng)絡(luò)的性能遠遠優(yōu)于傳統(tǒng)的手動或半自動提取功能。由于這種性能,卷積神經(jīng)網(wǎng)絡(luò)在人臉識別,指紋識別和圖像處理方面做出了突出貢獻?,F(xiàn)將基于卷積神經(jīng)網(wǎng)絡(luò)設(shè)計鞋類自動分類模型,結(jié)合犯罪現(xiàn)場的特點、國家制鞋標準技術(shù)委員會制定的鞋類分類標準,將鞋分為兩類,分別是皮鞋和運動鞋,將休閑鞋歸納為運動鞋中的一般運動鞋類;建立低分辨率鞋類數(shù)據(jù)庫,包括59 853幅皮鞋和47 878幅運動鞋圖像;選擇合適的框架結(jié)構(gòu)和網(wǎng)絡(luò),調(diào)整網(wǎng)絡(luò)深度、網(wǎng)絡(luò)權(quán)值參數(shù)、根據(jù)模型選擇合適的損失函數(shù),設(shè)計適合鞋類自動分類的網(wǎng)絡(luò)模型,實現(xiàn)對低分辨率下鞋類的自動分類。
圖像分類有很多種方法,2012年以前主要是用尺度不變特征變換(scale invariant feature transformation,SIFT)、局部二值模式(local binary mode,LBM)[2]等算法來手動提取特征,再將提取的特征用來訓(xùn)練,最后用支持向量機等分類器進行分類,精度低,工作量大[3];2012年,Krizhevsky等[4]提出的AlexNet首次提出了應(yīng)用深度學(xué)習(xí)對圖像進行分類,精度達到了83.6%;2014年Google團隊所提出的GoogleNet[5]同樣也應(yīng)用了深度學(xué)習(xí)的思想,精度達到了93.3%。
2015年初,微軟提出了PReLU-Nets(參數(shù)修正線性單元)[6],在ILSVRC(大規(guī)模圖像視覺識別挑戰(zhàn)賽)數(shù)據(jù)集中首次超過人眼識別。不久之后,Google在訓(xùn)練網(wǎng)絡(luò)時對每個mini-batch進行正規(guī)化,并稱其為Batch normalization,將該訓(xùn)練方法運用于GoogleNet,在ILSVRC2012的數(shù)據(jù)集上達到了4.82%的top-5錯誤率[7]。因此,Google將歸一化用到激活函數(shù)中,對傳輸數(shù)據(jù)進行標準化處理。由于訓(xùn)練期間使用隨機梯度下降法,因此這種歸一化只能在每個小批量中進行,因此稱為批量歸一化。 該方法可以在訓(xùn)練期間實現(xiàn)更高的學(xué)習(xí)率并減少訓(xùn)練時間;同時減少過擬合,提高準確率。
盡管卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)具有強大的圖像學(xué)習(xí)能力,但是這種模型缺乏對圖像空間不變性的學(xué)習(xí),特別是缺乏圖像旋轉(zhuǎn)的不變性[8]。Google DeepMind提出的空間變換[9]旨在通過提高卷積神經(jīng)網(wǎng)絡(luò)對圖像空間不變性的學(xué)習(xí)能力來提高圖像分類的準確性。
對鞋類進行自動分類的前提是必須先對鞋類有個明確的分類標準和定義,在制鞋工藝越來越發(fā)達,鞋子種類越來越豐富的今天,分類的方式也多種多樣,這是不利于本研究的,為此參考了全國制鞋標準化技術(shù)委員會2017年制定的制鞋標準[10],其中“日常穿用”按照功能劃分為“休閑鞋”“正裝鞋”和“其他”三大類,“功能類”按照不同的功能劃分為“職業(yè)鞋” “康復(fù)鞋”“專業(yè)運動鞋”和“其他”四大類,由此可見,鞋類標準體系按照功能進行分類已被廣為接受和采納,并將在使用的過程中根據(jù)實際情況加以完善,目前中國推行的鞋的分類方式[11]同樣也驗證了這一點。
本文中研究的鞋類自動分類屬于一個二分類問題,鞋類圖像被分為兩類,一類是皮鞋圖像,另一類是運動鞋圖像。設(shè)計的鞋類識別網(wǎng)絡(luò)(footwear identification network,FINet)有5層,包含3個卷積層和2個全連接層,每一個卷積層后是1個Relu激活層和1個最大池化層。下面將詳細介紹本文所提出的鞋類的自動分類模型。具體網(wǎng)絡(luò)模型設(shè)計及參數(shù)配置如圖1和表1所示。
圖1 FINet結(jié)構(gòu)圖
表1 FINet的網(wǎng)絡(luò)參數(shù)設(shè)置
網(wǎng)絡(luò)的輸入尺寸是60×60×3的三通道鞋類圖像。第1層卷積層使用20個5×5×3的卷積核對輸入圖像進行卷積,移動步長為1個像素。因此輸出的特征圖尺寸為(60-5)/1+1=56個像素。由于有20個卷積核,所以最后生成的特征圖的規(guī)模為56×56×20。這些特征圖由Relu激活函數(shù)處理后,然后由最大池化層處理,大小為2×2,移動步長為2,則池化后圖像的寬高都為(56-2)/2+1=28個像素,數(shù)量為20個。
第2層卷積層的輸入是28×28×20尺寸的特征圖,通過50個3×3×20的卷積核處理, 移動步長為1,輸出的特征圖尺寸為(28-3)/1+ l=26。 輸出的結(jié)果經(jīng)過 Relu激活后再經(jīng)過一個最大池化層的處理,池化核的大小是2×2, 移動步長是2,得到輸出的特征圖規(guī)模為13×13×50。
第3層卷積層使用3×3大小的卷積核,其移動步長為1,填補輸入圖像周圍的像素,使得輸出跟輸入匹配。該層中的卷積核數(shù)量是100,卷積輸出特征大小是13×13×100。輸出的結(jié)果經(jīng)過Relu激活后再經(jīng)過一個最大池化層的處理,池化核的大小是3×3,移動步長是2,得到的輸出的特征圖規(guī)模為6×6×100。
第1層全連接層的輸入尺寸為6×6×100,采用 6×6×100尺寸的濾波器對輸入進行卷積運算,每個濾波器都會生成一個一維的運算結(jié)果。共有500個這樣規(guī)模的濾波器,所以最后的輸出為500維的向量,再通過Relu激活函數(shù)操作后,得到本層最后500維的輸出值。該層的參數(shù)總數(shù)為6×6×100×500=1 800 000。
第2層全連接層的神經(jīng)元共有2個,所以最后的輸出為2個數(shù)據(jù)。該層的參數(shù)總數(shù)為500×2=1 000。
模型訓(xùn)練時的具體參數(shù)和說明如下:
(1)數(shù)據(jù)集總共有122 302張彩色鞋圖像,包括皮鞋圖像43 941張、運動鞋圖像78 361張。
(2)為評估模型的性能,引入了LeNet-5和AlexNet兩個網(wǎng)絡(luò)模型與所設(shè)計的鞋類分類模型做對比,在3個網(wǎng)絡(luò)模型中均對原始圖片進行不同大小的歸一化,LeNet-5網(wǎng)絡(luò)模型中的大小為60×60、AlexNet網(wǎng)絡(luò)模型中的大小為227×227、所設(shè)計的FINet模型中的大小為60×60。
(3)設(shè)置的學(xué)習(xí)率為0.000 1。
(4)訓(xùn)練過程采用GPU(圖形處理器)的訓(xùn)練方式。
(5)使用relu激活函數(shù)。
實驗的硬件配置為Intel(R)Pentium(R)CPU G4600 @3.6 GHz,內(nèi)存8 GB,GPU為NVIDIA GeForce GTX950 m。軟件配置為Windows10,CUDA9.1 GPU并行計算庫,開源深度學(xué)習(xí)框架Caffe。
為了驗證實驗結(jié)果的可靠性以及所設(shè)計網(wǎng)絡(luò)模型的泛化能力,選擇的評價指標有:精度(ACC)、錯誤率(ER)、真正例率(TPR)、假正例率(FPR)、查準率(Pr)、查全率(Re),計算公式分別為
(1)
ER=1-ACC
(2)
(3)
(4)
(5)
式中:TN、TP、FP、FN分別表示皮鞋識別成皮鞋、運動鞋識別成運動鞋、運動鞋識別成皮鞋、皮鞋識別成運動鞋的數(shù)量。
接下來從以下幾方面對本實驗結(jié)果進行展示:鞋類數(shù)據(jù)庫的構(gòu)建、數(shù)據(jù)預(yù)處理和結(jié)果分析。結(jié)果分析包括不同網(wǎng)絡(luò)結(jié)構(gòu)對結(jié)果的影響、加入中心損失函數(shù)對結(jié)果的影響、不同批尺寸對結(jié)果的影響以及分類錯誤原因分析。
收集犯罪現(xiàn)場出現(xiàn)率較高的47雙不同的鞋(共122 302幅鞋圖像),其中皮鞋24雙(共43 941幅鞋圖像)、運動鞋23雙(共78 361幅鞋圖像)。運動鞋都是選擇顏色與皮鞋相同或相近的鞋,在視頻監(jiān)控下容易與皮鞋發(fā)生混淆導(dǎo)致刑事技術(shù)人員的判斷錯誤。皮鞋包括普通皮鞋、休閑皮鞋、高跟鞋、靴子;運動鞋包括休閑鞋和專業(yè)運動鞋,休閑鞋有布鞋、板鞋和拖鞋,專業(yè)運動鞋有跑步鞋、登山鞋、籃球鞋和羽毛球鞋。各鞋類示例圖如圖2所示。
圖2 鞋類示例圖
3.2.1 視頻采集
征集5名志愿者,收集了47雙不同的鞋,然后志愿者模擬犯罪嫌疑人或行人穿著這些鞋在離攝像頭較遠的地方分別以0°、15°和30°的角度在攝像頭下行走,創(chuàng)造模糊監(jiān)控畫面的條件。視頻采集路線如圖3所示。
圖3 視頻采集路線
3.2.2 視頻分幀、圖像裁剪、圖像尺寸歸一化處理
由于所獲取的是視頻,實驗數(shù)據(jù)輸入要求的是圖像,所以需要對視頻進行分幀,把視頻分成一張張的視頻幀,利用的是MATLAB(R2016a)軟件對采集好的視頻進行分幀;分幀后所得到的圖像包含行人的所有特征,由于只對圖像中的鞋子部分感興趣,為了消除其他無關(guān)區(qū)域?qū)D像分類的干擾并減少數(shù)據(jù)量,需要對圖像中的有效區(qū)域進行提取,提取的方法是手動分割圖像中鞋子的部分;為了加速神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和測試,所有圖像最終尺寸標準化,尺寸為60×60。
本實驗采用了122 302張鞋圖像,其中4/5用于訓(xùn)練網(wǎng)絡(luò)模型、1/5用于測試網(wǎng)絡(luò)模型的泛化能力,結(jié)果見表2。經(jīng)訓(xùn)練和測試后,在測試錯誤率上,所設(shè)計的FINet只有4.3%,低于LeNet-5網(wǎng)絡(luò)模型和AlexNet網(wǎng)絡(luò)模型; 在速度上, batch size都設(shè)128的情況下,所設(shè)計的網(wǎng)絡(luò)模型訓(xùn)練階段每遍歷一次訓(xùn)練數(shù)據(jù)的迭代時間約為44.73 s, 測試階段遍歷一次測試數(shù)據(jù)耗時約4.22 s,而 AlexNet網(wǎng)絡(luò)訓(xùn)練時每遍歷一次訓(xùn)練數(shù)據(jù)的迭代時間約為666.43 s, 測試階段遍歷一次測試數(shù)據(jù)耗時約48.36 s, LeNet-5網(wǎng)絡(luò)耗時最低,但其錯誤率較高。 綜合測試的錯誤率、訓(xùn)練時間和成本,最終選擇使用了所設(shè)計的5層網(wǎng)絡(luò)結(jié)構(gòu)進行訓(xùn)練和分類。
表2 不同網(wǎng)絡(luò)模型測試錯誤率、訓(xùn)練時間和測試時間對比
在鞋類識別中,精度表示皮鞋或運動鞋被識別正確的概率,錯誤率表示皮鞋或運動鞋被識別錯誤的概率,但是在一些案件中更關(guān)心被識別成皮鞋里面有多少比例是真正的皮鞋,或者在皮鞋中有多少比例被錯誤識別成運動鞋了,精度和錯誤率顯然就不能滿足上述任務(wù)需求,這時就需要引入其他的指標來評價我們所設(shè)計的模型了,圖4和圖5是不同網(wǎng)絡(luò)模型的ROC曲線(接受者操作特性曲線)和P-R曲線, FINet模型的性能優(yōu)于其他兩種網(wǎng)絡(luò)模型。
圖4 不同網(wǎng)絡(luò)模型的ROC曲線
圖5 不同網(wǎng)絡(luò)模型的P-R曲線
圖6 中心損失函數(shù)結(jié)構(gòu)
3.3.1 加入中心損失函數(shù)對實驗結(jié)果的影響
中心損失函數(shù)(center loss function)能使相同類型的樣本更緊湊,不同類型樣本更分散。本文所研究的鞋類分類問題中無論是皮鞋還是運動鞋類,都包含了二十幾雙不同的鞋,類內(nèi)差距較大,中心損失函數(shù)正好能解決這一問題。其結(jié)構(gòu)如圖6所示,softmax損失函數(shù)是常見的分類函數(shù),其輸出結(jié)果表示正確分類的概率,當(dāng)概率值越高的時候,對應(yīng)其損失函數(shù)也就越小。加了中心損失(center loss)之后,損失值變小,正確分類的概率即精度比原來提高了0.7%,結(jié)果如圖7所示。
3.3.2 批尺寸對實驗結(jié)果的影響
選取一個合適的批尺寸(batch size)將數(shù)據(jù)分批次輸入給機器學(xué)習(xí)對于最終的分類結(jié)果也是非常重要的,選取5個常用的批尺寸,對比實驗中控制迭代次數(shù)等其他參數(shù)不變,最終結(jié)果如表3所示:批尺寸在區(qū)間[16,128]的測試精度呈上升趨勢,批尺寸在128時達到最高值,精度達到最高值后又呈下降趨勢,表明當(dāng)批尺寸設(shè)128左右能使網(wǎng)絡(luò)達到最優(yōu)化。
圖7 中心損失函數(shù)實驗效果
表3 不同批尺寸下的精度對比
綜合以上分析,最終選擇使用所設(shè)計的5層并加上中心損失函數(shù),批尺寸為128的網(wǎng)絡(luò)結(jié)構(gòu)對實驗中的鞋類圖片進行訓(xùn)練和分類,分類錯誤率不到5%。最后將識別錯誤圖片導(dǎo)出進行分析,部分圖片如圖8所示。識別錯誤的主要原因有:①人在行走時太快而形成的運動模糊[圖8(a)];②亮度太低而產(chǎn)生的模糊,以至于機器提取不到鞋的特征[圖8(b)];③背景因素的干擾以至于機器不能準確識別[圖8(c)],本實驗數(shù)據(jù)中有白色、黑色和藍色三種背景,甚至有的圖像中背景中出現(xiàn)了多種顏色的背景。
圖8 部分識別錯誤的代表性圖片
在現(xiàn)實案件中低分辨率監(jiān)控視頻大量存在,并且亮度低,場景模糊,導(dǎo)致視頻圖片質(zhì)量較差,很容易產(chǎn)生主觀判斷錯誤,針對這種情況使用深度學(xué)習(xí)的方法,鞋類的自動分類是一個基本二分類的問題,首次利用卷積神經(jīng)網(wǎng)絡(luò)用于鞋類的自動分類,測試準確率達到了95%以上,驗證了該網(wǎng)絡(luò)模型的有效性。然而,本文方法還存在不足,重心放在了鞋類的識別上,對于鞋類的自動檢測部分還沒涉及,提取監(jiān)控視頻中的鞋圖像只能手工截取的方式,耗費了大量時間和精力;本實驗所用數(shù)據(jù)庫種類還不夠齊全,只分了皮鞋和運動鞋兩類。下一步研究工作將是視頻中行人鞋的自動檢測、增加實驗盡可能補全數(shù)據(jù)庫,盡可能覆蓋犯罪現(xiàn)場可能出現(xiàn)的鞋。