劉 穎,倪天宇,王富平,劉衛(wèi)華,艾 達
(1.西安郵電大學 圖像與信息處理研究所,陜西 西安 710121;2.西安郵電大學 電子信息現(xiàn)場勘驗應(yīng)用技術(shù)公安部重點實驗室,陜西 西安 710121)
現(xiàn)勘圖像數(shù)據(jù)是公安現(xiàn)場勘驗信息的重要組成部分,犯罪現(xiàn)勘圖像分類 (crime scene investigation image classification,CSIC) 可以給刑偵破案提供重要線索,并且為案件串并研判提供關(guān)鍵信息。隨著先進公安刑偵現(xiàn)勘視頻圖像采集設(shè)備技術(shù)的革新和功能完善,使得公安現(xiàn)勘系統(tǒng)中圖像數(shù)據(jù)的數(shù)量急速增長,且種類眾多。傳統(tǒng)人工分類和標注的方式已經(jīng)難以滿足海量數(shù)據(jù)處理的需求。為了節(jié)省人力物力及進一步提高公安機關(guān)的工作效率,研究高效的現(xiàn)勘圖像分類算法尤為重要[1-2]。
現(xiàn)有的現(xiàn)勘圖像分類方法主要通過對整幅圖像提取全局視覺特征,如顏色、紋理和形狀等特征[3-4],然后將這些全局特征輸入到分類器中進行分類。如基于紋理與形狀特征融合的刑偵圖像檢索算法,通過雙樹復小波變換和多參數(shù)灰度共生矩陣提取現(xiàn)勘圖像紋理特征,并將提取的Hu不變矩形狀特征與紋理特征進行融合實現(xiàn)分類任務(wù)[3]。基于模糊K最近鄰(k-nearest neighbor,KNN)的現(xiàn)勘圖像場景分類算法將提取的局部二值模式(local binary patterns,LBP)特征和基于小波變換提取的紋理特征進行融合,利用模糊KNN方法對圖像進行分類[4]。但是,全局視覺特征缺乏圖像局部信息,而且對光照變化、尺度縮放等圖像變換的魯棒性較差。尺度不變特征變化 (scale-invariant features transform,SIFT)[5]特征可彌補全局特征的不足,其在圖像旋轉(zhuǎn)、尺度縮放、亮度變化下能保持較好不變性。為了獲得精確和稀疏的圖像特征,可將局部特征通過特征編碼技術(shù)進行編碼量化,如詞袋模型 (bag of words,BOW)[6]、空間金字塔匹配 (spatial pyramid matching,SPM)[6]、稀疏編碼的空間金字塔匹配 (sparse coding spatial pyramid matching,SCSPM)[7]和局部約束線性編碼 (local-constrained linear coding,LLC)[8]等方法。BOW是通過投票方式把特征量化為與它最近鄰的視覺單詞,存在特征的空間信息損失和量化損失兩點不足。SPM通過多尺度匹配技術(shù)實現(xiàn)了特征的空間分布信息編碼,而SCSPM算法在SPM基礎(chǔ)上加入稀疏正則項,將每個特征量化到多個視覺單詞上,從而減少量化損失,但SCSPM算法選擇的視覺單詞彼此之間關(guān)聯(lián)度不大,其中被廣泛使用的l1正則化函數(shù)不是平滑的,且算法計算復雜度較高。將LLC在選擇用多個最近鄰視覺單詞對局部特征進行線性表示的基礎(chǔ)上,使不同局部特征之間共享視覺單詞,可同時滿足稀疏性和局部性,實現(xiàn)圖像局部信息的更精細表示[8]。文獻[9]將LLC與GIST特征進行串聯(lián)融合,實現(xiàn)了靜態(tài)人體行為的分類?;诙喑叨瓤臻gLLC的圖像語義分類算法[10]對圖像密集SIFT描述子進行LLC編碼,并通過概率潛在語義模型(probabilistic latent semantic analysis,PLSA)對圖像進行分類。但是,上述特征編碼方法普遍利用圖像的SIFT等低級視覺特征,使得目標區(qū)域的內(nèi)容信息提取不夠精確[5]。
近年來,深度學習技術(shù)在計算機視覺等相關(guān)領(lǐng)域應(yīng)用中取得很好的效果。與傳統(tǒng)的低層特征相比,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)[11]能從復雜的數(shù)據(jù)中學習到更加抽象的特征表示,并且其在圖像分類和檢索等任務(wù)中都表現(xiàn)出相當優(yōu)越的性能。因此,針對現(xiàn)勘圖像場景多變、背景復雜、拍攝時光照及角度不同因素影響下導致分類準確率不高的問題,本文提出一種基于深度卷積特征與近似LLC編碼的現(xiàn)勘圖像分類算法。采用滑動窗口的方式對圖像進行裁剪,獲取密集的圖像塊;然后采用卷積神經(jīng)網(wǎng)絡(luò)提取圖像塊特征,并通過近似LLC算法對圖像密集CNN特征進行編碼;最后,通過最大池化和多尺度空間金字塔匹配將編碼后的特征拼接成單一向量作為圖像整體特征表示。將訓練好的卷積神經(jīng)網(wǎng)絡(luò)提取圖像深層特征,代替?zhèn)鹘y(tǒng)的低層特征,以期提高特征的魯棒性和表示能力。
基于深度卷積特征與近似LLC編碼的現(xiàn)勘圖像分類算法的框架如圖1所示。利用滑動窗口法將圖像分割為N個圖像塊,將圖像塊依次輸入訓練好的CNN中,提取圖像密集CNN特征 (黑色圓點),并進行主成分分析(principal component analysis,PCA)降維和白化處理以降低計算復雜度和提升特征魯棒性;采用近似LLC編碼將密集CNN特征編碼為M維特征向量(灰色圓點);結(jié)合最大池化和SPM方法將空間信息融入多尺度特征中,得到最終特征向量,其中L=∑l2l×2l為多尺度金字塔分層的圖像塊個數(shù),l為金字塔層數(shù)。最后,基于支持向量機(support vector machine,SVM) 分類器實現(xiàn)圖像分類。
圖1 基于深度卷積特征與近似LLC編碼的現(xiàn)勘圖像分類框架
采用視覺幾何組(visual geometry group,VGG)[12]網(wǎng)絡(luò)模型提取圖像特征,其中VGG19網(wǎng)絡(luò)模型包括16層卷積層、3層全連接層和最后一層soft-max分類層。直接利用CNN提取的圖像全局特征缺乏幾何不變性,魯棒性較差[13-15],將卷積神經(jīng)網(wǎng)絡(luò)與滑動窗口方法相結(jié)合,利用深度卷積神經(jīng)網(wǎng)絡(luò)提取局部圖像塊特征,可提高局部特征的魯棒性和識別能力。具體方法是先將圖像尺寸規(guī)格化為512×512像素,然后以窗口大小224×224像素、步長為8像素將圖像分割為1 296個圖像塊,并利用VGG19深度網(wǎng)絡(luò)提取每個圖像塊的4 096維特征向量,得到1 296×4 096維的圖像特征矩陣。
運用無監(jiān)督聚類算法K-means對所有訓練圖像塊的描述子進行聚類,獲得視覺中心。從訓練圖像提取密集CNN特征,隨機挑選M個作為初始聚類中心;根據(jù)歐式距離計算所有描述子所屬的聚類中心,然后計算屬于同一聚類中心的所有描述子的均值以更新聚類中心。重復上述過程,直到相鄰兩次迭代類中心基本不發(fā)生變化則停止迭代,得到最終的視覺詞典。
特征編碼方法主要包括矢量量化編碼[16]、稀疏編碼[7]和局部約束線性編碼[8]。為了降低空間金字塔模型SPM方法中矢量量化的重構(gòu)誤差,稀疏編碼將矢量量化的約束條件‖ci‖l0=1進行松弛,獲得l1范式正規(guī)化的稀疏編碼。假設(shè)X是D維特征描述子,X=[x1,…,xN]∈RD×N;字典B=[b1,…,bM]∈RD×M是由M個超完備基構(gòu)成,則優(yōu)化模型[7]可表示為
,
(1)
其中,C=[c1,…,cN]是對X的編碼特征,λ是正則化參數(shù)。
稀疏編碼提取的超完備基可以降低重構(gòu)誤差,有助于從稀疏編碼向量中獲取描述子的顯著信息[17]。另外,局部坐標編碼(local coordinate coding,LCC)理論認為局部性比稀疏性更有必要,局部性可以保證稀疏性[18]。因此,LLC方法將式(1)中的稀疏約束項替換為局部限制項,使得優(yōu)化目標函數(shù)變?yōu)?/p>
(2)
其中:A是數(shù)值全為1的向量;ci表示LLC編碼系數(shù);⊙表示對應(yīng)元素相乘;di是局部調(diào)節(jié)系數(shù),它根據(jù)特征與視覺字典基向量之間的相似性自適應(yīng)地對LLC編碼系數(shù)進行加權(quán),表達式為
(3)
式中,dist(xi,B)=[dist(xi,b1),…,dist(xi,bM)]T,dist(xi,bj)是xi和bj的歐氏距離,σ是調(diào)節(jié)下降速度的因子。
在求解式(2)優(yōu)化目標函數(shù)時,通常將di規(guī)范到(0,1],并添加約束條件ATci=1以保證編碼的平移不變性。為更好地使式(2)得到閉合解,按照
(4)
式(4)可保證LLC存在解析解,模型編碼效率明顯高于SCSPM。圖2描述了稀疏編碼(sparse coding,SC)以及LLC編碼映射方法之間的差異。不同于SC方法中選擇不同的原子作為線性組合的基向量,LLC方法中距離相近的描述子會共享多個相同視覺單詞,使得相近描述子具有相似的特征編碼,從而同時保證稀疏性和局部性。
圖2 特征編碼過程示意圖
對式(2)優(yōu)化模型進行求解時,待重構(gòu)的特征描述子傾向于選擇字典中距其較近的部分視覺單詞,從而形成一個局部坐標系統(tǒng)。因此,使用近似LLC編碼方式加速編碼過程,仍然可保留特征編碼的局部性和稀疏性。
近似LLC編碼過程主要包括字典學習、K近鄰搜索和特征編碼等3個階段。
1) 字典學習
從訓練數(shù)據(jù)集中提取的特征描述子集合中隨機抽取一部分,使用K-means算法進行視覺字典的聚類學習B=[b1,b2,…,bM]∈RD×M。
2)K近鄰搜索
對于任意待編碼的特征描述子xi,設(shè)定近鄰個數(shù)K,并選取視覺字典B中距離其最近的K個視覺單詞,形成子字典Bi=[b[1],b[2],…,b[k]]。
3) 特征編碼
使用子字典Bi對特征描述子xi進行重構(gòu),通過求解優(yōu)化目標函數(shù)
(5)
圖像描述子的編碼特征具有很強的稀疏性,每個描述子的信息可以用與其相關(guān)程度最大的K< 為了充分利用描述子的空間位置信息以提升特征向量的表征能力,通過空間金字塔匹配方法將空間信息嵌入到特征描述子中。金字塔分割是對圖像第l層(l=0,…,L-1)劃分出2l×2l個局部塊,通過對多層局部塊特征進行融合獲得最終編碼特征。以L=3層的空間金字塔模型為例,第0層為原圖,第1層對圖像進行2×2均勻分塊,第2層對圖像進行4×4均勻分塊。設(shè)置多層特征的加權(quán)拼接權(quán)值,其中第0層系數(shù)為1/2L-1,第l層系數(shù)為1/2L-l-1,則3層金字塔結(jié)構(gòu)的權(quán)值系數(shù)則為[0.25,0.5,1.0]。最后,對圖像每塊編碼特征進行最大池化,將池化后的特征按分塊進行串聯(lián),得到維度為(1+4+16)M= 21M的最終圖像特征。 采用Liblinear[19]線性分類器。該分類器支持多種l1l2規(guī)范的線性SVM,能夠提升分類算法效率,其參數(shù)可以通過交叉驗證的方法確定并設(shè)置。每次實驗隨機挑選圖像訓練集和測試集,將10次實驗的平均分類準確率和標準差作為評價標準。 實驗軟硬件環(huán)境分別為Intel (R) Core (TM) i5-8400H @ 2.8 GHz四核CPU,16 GB RAM,MATLAB 2016a平臺。選取現(xiàn)勘5K數(shù)據(jù)集[20]和Corel 1K數(shù)據(jù)集進行分類性能測試,現(xiàn)勘5K圖像數(shù)據(jù)集包含10個類別共5 000幅圖像,分別為血跡、車輛、指紋、平面圖、鞋印、皮膚、紋身、兇器、輪胎和窗戶,部分示例如圖3所示。Corel 1K數(shù)據(jù)集包含10個類別共1 000幅圖像,分別為大象、非洲、公共汽車、海灘、建筑、恐龍、馬、山、食物和鮮花。 圖3 現(xiàn)勘5K數(shù)據(jù)集示例圖像 2.2.1 現(xiàn)勘5K數(shù)據(jù)集圖像分類結(jié)果 為了充分分析本文算法的分類性能,分別針對局部特征維度、視覺單詞個數(shù)、近鄰個數(shù)和SPM層數(shù),在現(xiàn)勘5K數(shù)據(jù)集上統(tǒng)計各算法分類結(jié)果,并比較算法時間復雜度。 當設(shè)置近鄰個數(shù)K=5,視覺單詞個數(shù)為1 024時,局部特征維度變化對本文算法的平均分類準確率的影響,如圖4所示。 從圖4可以看出,當局部特征維度為500時,平均分類準確率最高。當局部特征維度小于500維時,隨著維度增加,平均分類準確率呈上升趨勢。當局部特征維度大于500維時,隨著維度增加,平均分類準確率呈下降趨勢,主要原因是高維度特征對同類圖像個體間的差異比較敏感。 圖4 特征維度的大小對分類結(jié)果的影響 視覺單詞個數(shù)M分別取值128、256、512和1 024時,對比不同視覺單詞個數(shù)對分類準確率的影響,分類結(jié)果如圖5所示。可以看出,視覺單詞個數(shù)越大,分類準確率越高,當視覺單詞個數(shù)為1 024時,分類準確率達到最優(yōu)。 圖5 視覺單詞個數(shù)對分類結(jié)果的影響 當近鄰個數(shù)K分別取值 2、5、10、20和40時,對比K變化時本文算法的分類性能,結(jié)果如圖6所示。 圖6 LLC編碼的近鄰個數(shù)對分類準確率的影響 從圖6中可以看出,較小的近鄰個數(shù)往往會產(chǎn)生更好的分類精度。當K< 5時,性能開始下降。此外,近鄰個數(shù)越小,算法運行效率越高,消耗的內(nèi)存越少。綜合考慮分類精度和算法運行效率,K=5為最優(yōu)近鄰個數(shù)。 為了進一步證明多尺度SPM[21]中層數(shù)對本文算法分類精度的影響,分別與SCSPM和LLC算法在單尺度和多尺度空間情況下進行分類對比實驗。實驗結(jié)果如表1所示。 表1 尺度空間對分類準確率的影響 由表1對比結(jié)果可知,圖像的多尺度劃分粒度越細,3種算法的分類精度越高,且本文算法的分類精度優(yōu)于SCSPM和LLC算法。 綜上實驗結(jié)果,本文算法的最優(yōu)參數(shù)設(shè)置為局部特征維度F=500,視覺單詞個數(shù)M=1 024,近鄰個數(shù)K=5,金字塔層數(shù)L=3。在最優(yōu)參數(shù)設(shè)置下,本文算法在現(xiàn)勘5K數(shù)據(jù)集分類的混淆矩陣如圖7所示。 圖7 現(xiàn)勘5K數(shù)據(jù)集上分類的混淆矩陣 通過混淆矩陣可以看出,血跡、指紋、平面圖、鞋印、紋身、兇器和輪胎等獲得很好的分類效果,而窗戶、紋身類識別精度不夠理想,其主要原因是這兩類圖像的部分內(nèi)容與其他類別容易混淆。比如,個別窗戶圖像容易被分類為車輛圖像,主要源于窗戶玻璃區(qū)域與車輛前擋風玻璃區(qū)域視覺上十分相似;此外,紋身圖像中存在大量皮膚區(qū)域,使得其極易被判定為皮膚圖像,導致分類錯誤。 SCSPM編碼的時間復雜度為O(M×K),其中K為非零元素個數(shù)[8]。近似LLC編碼的時間復雜度為O(M+K2),其中M>>K,K為優(yōu)化算法中近鄰個數(shù)。SCSPM與近似LLC算法的圖像特征編碼時間對比如表2所示,可以看出,近似LLC明顯低于SCSPM,證明了LLC算法的高效性。 表2 SCSPM與近似LLC平均編碼時間 為了驗證本文算法的優(yōu)越性,分別對比本文算法與SPM、SCSPM、LLC和CNN+SVM算法的分類精度,結(jié)果如表3所示。 表3 現(xiàn)勘5K數(shù)據(jù)集上的分類準確率 由表3可以看出,本文算法的分類精度高于SPM、SCSPM、LLC和SVM+CNN等算法,說明通過滑動窗口對圖像進行分塊并提取CNN特征能有效提高圖像內(nèi)容信息的精確描述,并與特征編碼技術(shù)進一步結(jié)合,能提高圖像分類準確率。 2.2.2 Corel 1K數(shù)據(jù)集圖像分類結(jié)果 為了進一步驗證本文方法的有效性,在Corel 1K數(shù)據(jù)集上任意挑選70幅圖像作為訓練樣本,剩下的30幅圖像作為測試樣本。實驗結(jié)果的混淆矩陣如圖8所示。 圖8 Corel 1K數(shù)據(jù)集上分類的混淆矩陣 在Corel 1K數(shù)據(jù)集上,分別對比本文算法與SPM、SCSPM、LLC和CNN+SVM算法的各類上的分類準確率與平均分類準確率,結(jié)果如表4所示。 表4 Corel 1K數(shù)據(jù)集上的分類準確率 從表4可以看出,本文算法雖然在某些類別中分類精度低于比較算法,但平均分類準確率達到最高。 基于深度卷積特征與近似LLC編碼的現(xiàn)勘圖像分類算法,使用滑動窗口法對圖像分塊,并利用CNN網(wǎng)絡(luò)提取分塊圖像的深度特征,進而進行PCA降維和白化處理;將局部圖像深度特征進行近似LLC編碼,并進行最大池化和空間金字塔匹配處理;最后,采用線性分類器實現(xiàn)現(xiàn)勘圖像分類。實驗結(jié)果表明,本文算法的分類準確率高于SPM、SCSPM、LLC和CNN+SVM等分類算法。1.6 分類器選擇
2 實驗
2.1 實驗設(shè)置及數(shù)據(jù)集選取
2.2 實驗結(jié)果分析
3 結(jié)語