高 宇, 楊洪臣, 蔡能斌
(1.中國刑事警察學院, 遼寧沈陽 110035; 2.上海市刑事科學技術(shù)研究院, 上海 200083)
步態(tài)識別是一種非接觸性的生物識別技術(shù),它通過人在行走狀態(tài)下各骨骼肌肉之間穩(wěn)定相互作用進行識別,在遠距離的身份識別中,步態(tài)識別因其不需要特定對象的配合以及其難偽裝性的特點而具有獨特優(yōu)勢。Kinect v2是2014年微軟發(fā)布的一臺體感游戲外設,因其搭載了ToF(Time of Flight)技術(shù)的深度相機而被廣泛運用于三維現(xiàn)場重建、物體三維模型重建、虛擬現(xiàn)實等項目的開發(fā)中。
根據(jù)信息獲取的維度,步態(tài)識別技術(shù)可以分為基于二維視頻圖像的步態(tài)識別以及基于可穿戴設備和深度相機的步態(tài)識別?;诙S視頻圖像的步態(tài)識別方法與深度學習技術(shù)的結(jié)合一定程度上解決了步態(tài)識別領域中視角不變性和特征提取的問題,Wu等[1]第一次提出了基于深度卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNNs)以解決交叉視角和交叉行走模式的問題,Lin等[2]提出基于多時間尺度的三維卷積神經(jīng)網(wǎng)絡(3D Convolutional Neural Network,3D CNN),在CASIA- B公共數(shù)據(jù)集上取得了最好的性能,Chao等[3]提出基于融合神經(jīng)網(wǎng)絡(Fused Deep Neural Network,F(xiàn)used DNN)的深度集(Deep set)的概念,可以自然的整合不同行走模式下的視頻幀用來步態(tài)識別。近年來,消費級深度相機的興起使得人體步態(tài)識別進入三維數(shù)據(jù)獲取階段,數(shù)據(jù)維度的增加從原理上解決了視角不變性和數(shù)據(jù)估計的問題,目前使用深度相機進行步態(tài)識別的方法主要分為基于人體骨骼點信息的步態(tài)識別方法和基于行走序列深度信息的步態(tài)識別方法。Sivapalan等[4]首次提出基于深度圖像的步態(tài)能量體積圖(Gait Energy Volumes,GEV)用來改進傳統(tǒng)二維圖像的步態(tài)能量圖(Gait Engery Image,GEI),Chattopadhyay等[5]提出姿勢深度體積(Pose Depth Volume,PDV)的新型步態(tài)特性,該特征考慮了個體在一個步態(tài)周期的每個關鍵姿勢形狀和深度變化。Yang等[6]提出基于骨骼點相對距離的步態(tài)特征,可以有效地進行步態(tài)識別工作,并與人體測量特征相結(jié)合達到了95%識別精度。深度相機在步態(tài)識別領域取得良好的進展,但Kinect等深度相機在公安領域應用潛力尚未被充分發(fā)掘,步態(tài)識別在視頻偵查同一認定中更是處于起步階段,有著極大的發(fā)展利用空間。
本文基于Python語言和Kinect SDK 2.0開發(fā)包,運用Kinect v2對人體行走時的21個骨骼點的三維坐標進行實時提取,并將每次行走的動態(tài)骨骼點坐標進行繪制,即每個骨骼點的三維運動軌跡?;谀P偷牟綉B(tài)識別方法,通過對部分骨骼點在行走時的空間振動軌跡曲線分析,由此提出了一種新的步態(tài)識別特征,通過對比分析不同行走模式、不同相機位姿、不同運動個體的骨骼點的三維運動軌跡,結(jié)合基于歐氏距離的動態(tài)時間規(guī)整算法(Dynamic Time Warping algorithm,DTW)對空間曲線相似度進行評價,驗證了這種新型步態(tài)特征的穩(wěn)定性,為公安工作提供了一種可行的步態(tài)數(shù)據(jù)提取方法以及一種基于模型的步態(tài)識別特征。
深度相機(RGB- D Camera)也稱作3D相機,是通過特定光學傳感器或多鏡頭視差來測量物到相機距離的拍攝設備?;陲w行時間技術(shù)(Time of Flight,ToF)的Kinect v2相較于第一代產(chǎn)品,其在追蹤準確度、近距離精度有顯著提高,其內(nèi)部結(jié)構(gòu)如圖1所示。使用Kinect對人體行走時骨骼點坐標實時提取的實現(xiàn)過程可以簡單描述為:紅外相機獲取深度數(shù)據(jù)流后,通過USB3.0端口進行傳輸,將深度數(shù)據(jù)中出現(xiàn)的人體與背景圖像進行分割,通過機器學習的結(jié)果,快速對人體的部位進行分類,并從識別出的部位上進一步識別出各骨骼點,將21個骨骼點的空間坐標實時寫入預先建好的csv文件中,方法流程如圖2所示。
圖1 Kinect V2內(nèi)部結(jié)構(gòu)
圖2 方法流程圖
Kinect v2深度傳感器基于間接飛行時間(indirect ToF)算法原理,通過持續(xù)頻閃的紅外光照亮檢測范圍,紅外光遇到障礙物后反射,并由紅外接收器記錄每個像素的飛行時間,在相機內(nèi)部使用連續(xù)波調(diào)制和相位檢測來估計到障礙物的距離。以連續(xù)正弦波調(diào)制(圖3)推導測量的原理:假設發(fā)射的正弦信號s(t)振幅是a,調(diào)制頻率是f,s(t)可以表示為:
圖3 正弦調(diào)制波
s(t)=a(1+sin(2πft))
(1)
經(jīng)過時延Δt后接收到的信號為接收r(t),衰減后的振幅為A,強度偏移為B,可以將r(t)表示為:
r(t)=A(1+sin(2πf(t-Δt)))+B
(2)
=A(1+sin(2πft-Δφ))+B
(3)
四個采樣時間間隔相等,均為T/4,根據(jù)上述采樣時間可以列出方程組從而計算出發(fā)射和接收的正弦信號的相位偏移Δφ:
(4)
(5)
Δφ=2πfΔt=atan(r2-r0,r1-r3)
(6)
據(jù)此可以根據(jù)(4)中公式計算物體和深度相機的距離d:
(7)
Shotton等[7]人提出基于每幅深度圖像快速準確地進行人體區(qū)域劃分,而無需依賴于先前幀中的信息,這大大增強了系統(tǒng)從跟蹤錯誤中恢復的能力。Kinect獲得深度圖像流后,通過當前的物體識別策略分辨人體,根據(jù)約定的字節(jié)編碼,系統(tǒng)為每個被追蹤的人體進行背景剔除,并在后續(xù)的處理中僅傳輸人體這部分深度數(shù)據(jù),從而降低計算壓力。然后根據(jù)機器學習的成果,將追蹤到的人體劃分成31個密集部位,判斷每個像素所屬部位以確定骨骼點,利用這種在識別身體部位設計的中間表示將困難的姿勢估計問題轉(zhuǎn)化為簡單的像素聚類問題。Kinect v2可以實時追蹤6人并分別提取每個個體25個骨骼點,本文運用除左手指尖、右手指尖、左手拇指、右手拇指以外的21個骨骼點對人體的步態(tài)信息進行提取分析,各骨骼點分布及名稱如圖4所示。
圖4 人體骨骼點分布及名稱
步態(tài)特征是指人體在正常行走時,人體通過髖、膝、踝、足趾等關節(jié)的一系列連續(xù)活動使身體沿著一定方向移動的過程。對于正常步態(tài)來說,其具有穩(wěn)定性、協(xié)調(diào)性以及個體差異性。骨骼點的三維軌跡特征是指人在正常行走過程中,由于重心的遷移,人體在三維空間所呈現(xiàn)出的周期性振動,進而體現(xiàn)在各骨骼點軌跡在空間中規(guī)律性的變化。使用深度相機對個體進行骨骼點捕獲,實驗所獲得骨骼點坐標直接定位在攝像機坐標系,在對相機位姿進行固定或者后期對相機位姿進行求解可以將不同角度拍攝的軌跡曲線納入到同一坐標系中,并保留其空間位置特征。受身體重心遷移影響的曲線振動幅度特征、受步長影響的曲線周期頻率特征以及由人體身高等靜態(tài)特征決定的曲線空間位置特征,共同構(gòu)成了骨骼點三維軌跡特征。
動態(tài)時間規(guī)整算法(DTW)基于動態(tài)規(guī)劃(Dynamic Programming,DP)的思想,是語音識別中出現(xiàn)較早、較為經(jīng)典的一種算法。傳統(tǒng)的歐氏距離計算是兩個序列對應點之間的距離計算,這對于特征在時間上有先后順序的兩個序列評價的適應性較差,而DTW算法可以很好的適用于全局或局部擴展、壓縮或變形的模式匹配,解決了動態(tài)模式的相似度量和分類問題,其基本原理如下:
兩個時間序列Q和C,其長度分別是n和m,Q序列為測試模板,C序列為參考模板:
Q=[q1,q2,…,qi,…,qn]
(8)
Q=[q1,q2,…,qi,…,qn]
(9)
為了計算兩個序列之間的相似性,現(xiàn)構(gòu)造一個n×m的匹配距離矩陣d:
(10)
矩陣中的元素d(i,j)表示兩個時間序列數(shù)據(jù)點qi和cj之間的距離值,距離值可以看作是序列Q和序列C之間對應點的匹配度。
通過構(gòu)建序列之間對應點之間的距離矩陣,采用局部最優(yōu)解進行迭代計算,找尋一條代價最小的路徑W,使得這條路徑上累加值最小,并構(gòu)造累計距離矩陣D:
(11)
D(i,j)為累計距離:
(12)
累計距離D(i,j)是對兩條空間曲線進行相似度評價的依據(jù),累計距離越小,說明兩條曲線相似度越高。
深度相機:Microsoft Kinect for Windows v2;PC:Lenovo ThinkPad X13;操作系統(tǒng):Windows10家庭中文版。配置:AMD Ryzen 7 PRO 4750U處理器16 GB+512 GB;集成開發(fā)環(huán)境:PyCharm Professional 2020.3 x64。
首先對深度相機骨骼點有效檢測范圍進行測量,并根據(jù)實際距離和Kinect的測量距離的差值對深度相機的深度信息進行校準,同時設計空白對照組排除深度相機內(nèi)部連續(xù)波調(diào)制對骨骼點坐標記錄的影響,然后對同一個體的行走骨骼點三維軌跡進行捕獲,選取3個拍攝角度(與相機光軸方向呈0°、與相機光軸方向呈30°、與相機光軸方向呈45°),兩種拍攝高度(距離地面1.25 m、距離地面0.85 m),3種運動模式(快走、適中、慢走)進行18組實驗,并在固定拍攝高度1.25 m、行走方向沿光軸方向、行走速度正常的條件下,對10個不同個體的步態(tài)骨骼點軌跡進行捕獲,最后將各組所得數(shù)據(jù)繪制三維曲線,在同一坐標下進行展示。
2.2.1 有效范圍測量
在檢測距離方面,Kinect v2深度相機可以捕獲的范圍在0.50~4.50 m。經(jīng)過實驗驗證,在相機高度為1.25 m,深度相機鏡頭光軸方向與地面平行的條件下,人體完整骨骼點檢測的有效范圍為2.00~4.50 m,Kinect v2在對目標持續(xù)追蹤過程中,具有較好的魯棒性,對于上半身人體骨骼點檢測的有效距離為1.20~4.50 m。
圖5 Kinect視場角
2.2.2 深度相機校準
Kinect v2具有RGB攝像頭和深度攝像頭,需要對深度相機的深度信息進行校準。Kinect v2所使用的ToF技術(shù)可以從原理上避免深度信息精度隨距離的增加而驟減的情況,對于上半身的骨骼點的有效追蹤距離為1.20~4.50 m,將實際距離作為標準與捕獲到的骨骼點的三維坐標的測量距離進行比較,計算出深度相機的精度隨距離變化的關系。以脊椎中部骨骼點的Z軸坐標作為深度相機測量的距離,在骨骼點檢測的有效范圍內(nèi),每隔0.30 m進行一次記錄,計算數(shù)據(jù)如表1,誤差分析如圖6所示。
表1 測量距離數(shù)值
圖6 測量距離誤差分析
通過對深度相機精度的測量, Kinect v2在其骨骼點識別范圍內(nèi)具有較好的精度,誤差在0.04%~1.10%范圍內(nèi),且測量誤差不會隨著距離的增加而驟增,這對后期數(shù)據(jù)的分析和修正提供了重要參考。
2.2.3 骨骼點三維坐標提取
Kinect SDK中包含彩色圖像二維坐標、深度圖像空間坐標、骨骼點空間坐標,對于在Kinect視野范圍內(nèi)的同一點,在3個坐標系中的坐標和度量并不一致。實驗采用的的是骨骼點空間坐標系,Z軸表示紅外攝像頭光軸方向,與圖像平面垂直,Y軸垂直與地面,X軸與Y軸、Z軸相垂直,Kinect空間坐標軸如圖7所示。
圖7 Kinect空間坐標軸
為排除相機自身發(fā)射調(diào)制波對骨骼點記錄所產(chǎn)生的影響,使用空白對照組實驗:將相機光軸方向與人體垂直,相機拍攝的人體與地面呈直立狀,實驗對象直立靜止站在推車上,推動推車沿相機光軸方向前進,并記錄實驗骨骼數(shù)據(jù),通過與相同條件下的正常行走骨骼點軌跡比對,空白組骨骼軌跡曲線基本呈直線,與正常行走時呈周期性的軌跡曲線差距明顯,符合實驗預期,空間坐標曲線對比如圖8所示。
圖8 推車滑行(a)與正常行走(b)骨骼點軌跡對比
為驗證骨骼點三維軌跡特征的穩(wěn)定性,對同一對象從不同拍攝角度,不同運動狀態(tài)進行驗證實驗。選取3個拍攝角度(與相機光軸平呈0°、與相機光軸呈30°、與相機光軸呈45°),兩種拍攝高度(距離地面1.25 m、距離地面0.85 m),3種運動模式(快走、適中、慢走)進行18組實驗,記錄數(shù)據(jù)并分析骨骼點軌跡空間振動的穩(wěn)定性。對每張三維軌跡圖從兩個角度進行展示,具體結(jié)果如表2。為進一步驗證個體骨骼點軌跡特征的穩(wěn)定性,將拍攝高度1.25 m、行走方向與光軸方向呈0°、行走速度正常作為固定條件,對同一個體進行5次實驗記錄。最后為驗證骨骼點三維軌跡特征的廣泛性并為同一人的骨骼點軌跡曲線的相似度提供對比參考,選取10個實驗對象在同種實驗條件下進行骨骼點數(shù)據(jù)記錄提取。
表2 不同相機位姿、不同行走模式實驗結(jié)果
續(xù)表2
通過對比同一個體在不同相機位姿下、不同運動狀態(tài)的骨骼點三維運動軌跡曲線,結(jié)果顯示,在人體行走時提取的21個骨骼點的三維軌跡中,頭部、頸部、肩部(肩部中心、左肩、右肩)、脊椎中心、髖部(髖部中心、左髖、右髖)的骨骼點因重心的遷移而使得其空間振動呈周期性變化,并且這種特征不會隨著運動模式、觀察角度的改變而消失,具有較好的可觀察性與穩(wěn)定性;肘部(左肘、右肘)、腕部(左腕、右腕)、手部(左手、右手)、膝部(左膝、右膝)、踝部(左踝、右踝)、腳部(左腳、右腳)骨骼點因有前后擺動動作,其軌跡曲線有往返重合現(xiàn)象且較復雜,不再作為曲線評價的對象。對于同一運動個體相同條件下行走的5條運動軌跡,選取頸部、左肩、左髖3個骨骼點在同一個空間坐標下進行比對,實驗結(jié)果顯示同一個體的骨骼點軌跡在同一運動模式下具有較好的穩(wěn)定性。對3個骨骼點軌跡選取兩個空間坐標角度進行展示,如圖9所示。
圖9 同一個體左髖(a)、頸部(b)、左肩(c)多次行走骨骼點軌跡
為客觀評價曲線之間的相似度,以三維空間歐氏距離公式作為距離計算公式,并運用動態(tài)時間規(guī)整算法(DTW),對曲線之間的累計距離進行計算,累計距離越小,相似度越高。三維空間中兩個點a(x1,y1,z1),b(x2,y2,z2)之間的真實距離計算公式為:
(13)
對同一個體的頸部、左肩、左髖3個骨骼點軌跡曲線運用基于歐氏距離的動態(tài)時間規(guī)整算法進行相似度匹配,所得累計距離結(jié)果如表3所示。
表3 同一個體3個骨骼點曲線累計距離
為客觀衡量同一人相同運動模式下的骨骼點三維軌跡特征累計距離參數(shù),將提取到相同運動條件下的10人運動軌跡與前者做相似度分析,將10人頸部骨骼點運動軌跡在同一坐標下繪制如圖10所示,并將骨骼點軌跡曲線累計距離進行對比排序,結(jié)果如表4所示。
圖10 不同個體頸部骨骼點三維軌跡
表4 不同個體頸部、左肩、左髖骨骼點曲線間累計距離
結(jié)果表明,在選取的頸部、左肩、左髖3個骨骼點的14條曲線相似度計算中,同一個體的軌跡曲線之間累計距離值在1.3~4.6范圍內(nèi),不同個體之間的累計距離值在4.8~118.9范圍內(nèi),個體之間的骨骼點軌跡存在較大差異,實驗結(jié)果客觀評價了同一個體的骨骼點軌跡曲線具有較好的穩(wěn)定性,可以作為步態(tài)識別的重要特征。
對于步態(tài)識別這種常見的生物特征,鑒于行走數(shù)據(jù)的難以提取、模式的難以匹配而未能在廣泛性上取得良好進展。步態(tài)識別作為非接觸性的生物特征,對于公安偵查工作卻有著十分重要的意義以及獨特的優(yōu)勢。在本文中,通過借助消費級的ToF相機Kinect v2作為三維信息獲取的有力工具,進行了全面的實驗評估,發(fā)現(xiàn)并驗證了骨骼點三維運動軌跡特征在步態(tài)識別中穩(wěn)定性,為后續(xù)的研究奠定了基礎。深度相機和步態(tài)識別在公安工作中均處于起步階段,為了取得更好更快的步態(tài)識別模型,也為了更好地服務于公安工作,需要將兩者進行有機結(jié)合,從而在實戰(zhàn)中做到警之于前,察之于后。