基于Kinect的交警手勢識別方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種手勢識別技術(shù),特別涉及一種基于Kinect的交通警察手勢識別 方法,屬于虛擬仿真技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 目前針對交警指揮手勢的識別技術(shù)的研究更多的還是停留在傳統(tǒng)的圖像識別方 法階段,根據(jù)手勢采集方式的不同可以將其劃分成兩種,第一種便是通過在交警身上佩戴 數(shù)據(jù)衣或者數(shù)據(jù)手套等動(dòng)作捕捉設(shè)備來獲取手勢數(shù)據(jù)的方式。由于動(dòng)作捕捉設(shè)備能獲得精 度很高的數(shù)據(jù),因此采用這種方式的識別效果很好。然而,這類儀器往往價(jià)格也很昂貴,加 上這種方式需要在使用者的身上佩戴一定數(shù)量的傳感器,從而造成使用者的舒適性降低, 甚至?xí)绊憚?dòng)作完成的質(zhì)量。第二種便是通過攝像頭等機(jī)器視覺設(shè)備來獲取交警指揮手勢 數(shù)據(jù)的方式,然后經(jīng)過圖像分割、特征提取、特征識別等操作完成手勢動(dòng)作的識別。這種方 式可以大大減少對交通警察指揮手勢的限制,自然性和便攜性比更好,但是該方法也有其 缺點(diǎn),例如:手勢數(shù)據(jù)量大,處理方法復(fù)雜,并且識別效率、準(zhǔn)確率不夠高。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的上述缺陷,提供一種基于Kinect的高效交警 手勢識別方法。
[0004] 本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的:
[0005] -種基于Kinect的交警手勢識別方法,包括以下步驟:
[0006] 步驟一、使用Kinect采集數(shù)據(jù)并對數(shù)據(jù)進(jìn)行預(yù)處理得到交警手勢數(shù)據(jù);
[0007] 作為優(yōu)選,所述預(yù)處理包括交警手勢分割和數(shù)據(jù)歸一化,具體如下:
[0008] (1)交警手勢分割具體包括以下步驟:
[0009] 步驟1 :獲取人體立正時(shí)兩手的距離Dstanfcd,并設(shè)置距離閾值Dlinilt以及用于標(biāo)記 手勢開始結(jié)束狀態(tài)的變量flag ;
[0010] 步驟2 :循環(huán)處理送達(dá)的數(shù)據(jù)幀,計(jì)算每幀兩手的距離Cl1,如果山彡Dstandard+Dlinut, 則打38設(shè)置為廿1^并把該數(shù)據(jù)幀存入鏈表1^1? 5(11^#中;如果(11〈0;^-+011|^,則把打 &8 設(shè)置為false,由此獲得交警手勢動(dòng)作數(shù)據(jù)LinkedList ;
[0011] (2)數(shù)據(jù)歸一化是通過對交警手勢動(dòng)作數(shù)據(jù)采用下式對該動(dòng)作的數(shù)據(jù)序列元素在 X、y和z方向進(jìn)行歸一化處理:
[0013] 其中,X% /,f為骨骼節(jié)點(diǎn)在數(shù)據(jù)歸一化后的坐標(biāo)值;X _,χ_分別為該動(dòng)作中,X 坐標(biāo)的最大和最小值;ymin,ymax分別為該動(dòng)作中,y坐標(biāo)的最大和最小值;z min,zmax分別為該 動(dòng)作中,z坐標(biāo)的最大和最小值;
[0014] 步驟二、對手勢數(shù)據(jù)進(jìn)行特征提取,得到各骨骼節(jié)點(diǎn)的運(yùn)動(dòng)軌跡T ;
[0015] 作為優(yōu)選,所述骨骼節(jié)點(diǎn)的運(yùn)動(dòng)軌跡T采用下式表述:
[0017] 其中,Θ i表示骨骼節(jié)點(diǎn)i的運(yùn)動(dòng)軌跡;t表示該動(dòng)作的數(shù)據(jù)幀序號;通過下式計(jì) 算:
[0019] 其中,<表示t時(shí)刻,骨骼節(jié)點(diǎn)i到骨骼中肩節(jié)點(diǎn)的向量與豎直向下的單位向量之 間的夾角;?*表示t時(shí)刻,節(jié)點(diǎn)i到中肩節(jié)點(diǎn)〇的向量;_表示豎直向下的單位向量,其值 定義為
[0020] 步驟三、根據(jù)各骨骼節(jié)點(diǎn)的運(yùn)動(dòng)軌跡通過下式計(jì)算該手勢中每個(gè)骨骼節(jié)點(diǎn)的權(quán)重 W :
[0022] 其中,N表示骨骼節(jié)點(diǎn)的個(gè)數(shù),表示在手勢g中,骨骼節(jié)點(diǎn)i的總偏移量,
[0023] Sf通過下式計(jì)算:
[0025] 其中,T表示手勢g的總幀數(shù),COS#表示手勢g中骨骼節(jié)點(diǎn)i在t時(shí)刻偏轉(zhuǎn)角Θ 的余弦值;
[0026] 步驟四、提取預(yù)存的各標(biāo)準(zhǔn)手勢中每個(gè)骨骼節(jié)點(diǎn)對應(yīng)的運(yùn)動(dòng)軌跡S ;
[0027] 步驟五、通過下式采用基于DTW的軌跡比較算法分別計(jì)算待識別手勢中骨骼節(jié)點(diǎn) 的運(yùn)動(dòng)軌跡T = ti, t2,…,ti,…,tm與標(biāo)準(zhǔn)手勢中對應(yīng)骨豁節(jié)點(diǎn)的運(yùn)動(dòng)軌跡S = s u S2,… ,Sy…sn之間的相似度DTW,表不如下:
[0029] 其中,0 = (Us)表示T與S之間的最優(yōu)匹配,
表示T中第i個(gè)元 素和S中第j元素之間的距離I L-Sj I ;
[0030] 步驟六、根據(jù)步驟五得到的DTW值與步驟三得到的待識別手勢中各關(guān)節(jié)點(diǎn)權(quán)重w 通過下式計(jì)算待識別手勢與各標(biāo)準(zhǔn)手勢的近似度S :
[0032] 其中,N表示骨骼節(jié)點(diǎn)的數(shù)目,表示骨骼節(jié)點(diǎn)i在手勢g中的權(quán)重;δ i表示骨 骼節(jié)點(diǎn)i的DTW值,該值通過步驟五獲得;
[0033] 步驟七、將對應(yīng)于所有標(biāo)準(zhǔn)手勢的δ進(jìn)行比較,選出最小δ對應(yīng)的標(biāo)準(zhǔn)手勢作為 最終的識別結(jié)果。
[0034] 作為優(yōu)選,所述Kinect采集數(shù)據(jù)的對象僅包括左手、左肘、右手、右肘4個(gè)骨骼節(jié) 點(diǎn)。
[0035] 作為優(yōu)選,在進(jìn)行步驟五所述DTW值之前,先通過下述加權(quán)偏轉(zhuǎn)抽樣方法縮小手 勢比較范圍:
[0036] (1)根據(jù)下式計(jì)算待識別手勢與各標(biāo)準(zhǔn)手勢的加權(quán)偏移量aw (g),并用Taw (g)和 Saw (g)分別表示待識別、標(biāo)準(zhǔn)手勢的加權(quán)偏移量:
[0038] (2)將各標(biāo)準(zhǔn)手勢的加權(quán)偏移量按從小到大的順序進(jìn)行排列,然后根據(jù)待識別手 勢的加權(quán)偏移量與各標(biāo)準(zhǔn)手勢的加權(quán)偏移量的大小關(guān)系根據(jù)以下原則確定手勢比較的范 圍:
[0039] V當(dāng)待測手勢的加權(quán)偏移量介于兩個(gè)標(biāo)準(zhǔn)手勢的加權(quán)偏移量之間時(shí),即 Saw (k-1)〈Taw (g)〈Saw (k)且2彡k彡K,則待識別手勢只需要和第k-Ι個(gè)和第k個(gè)標(biāo)準(zhǔn)手 勢進(jìn)行比較;其中K表示標(biāo)準(zhǔn)手勢的數(shù)量;
[0040] V當(dāng)待識別手勢的加權(quán)偏移量和標(biāo)準(zhǔn)手勢的加權(quán)偏移量相等時(shí),即Taw(g)= Saw(k),則待識別手勢只需要和第(k-1)、(k)、(k+1)三個(gè)標(biāo)準(zhǔn)手勢進(jìn)行比較;
[0041] V當(dāng)待識別手勢的加權(quán)偏移量大于最大的標(biāo)準(zhǔn)手勢的加權(quán)偏移量時(shí),BP Saw (k)〈Taw (g)且 k = K,如果 Taw (g) -Saw (k) < Saw (k) -Saw (k-Ι),則待識別手勢只需要和 第k-Ι個(gè)和第k個(gè)標(biāo)準(zhǔn)手勢進(jìn)行比較;否則直接認(rèn)定待識別手勢為非法手勢,不做進(jìn)一步識 別;
[0042] V當(dāng)待識別手勢的加權(quán)偏移量小于最小的標(biāo)準(zhǔn)手勢的加權(quán)偏移量時(shí),BP Taw(g)〈Saw(k)且k = 1,如果 Saw(k)-Taw(g) < Saw(k+l)_Saw(k),則待識別手勢只需要和 第k個(gè)和第k+Ι個(gè)標(biāo)準(zhǔn)手勢進(jìn)行比較;否則直接認(rèn)定待識別手勢為非法手勢,不做進(jìn)一步識 別。
[0043] 本發(fā)明的原理如下:
[0044] 整個(gè)方法流程分為數(shù)據(jù)預(yù)處理、測試軌跡生成、軌跡對比和手勢識別四部分。
[0045] 一、數(shù)據(jù)預(yù)處理
[0046] 數(shù)據(jù)預(yù)處理包括基于距離截取的手勢分割和數(shù)據(jù)歸一化:
[0047] 手勢分割
[0048] 通過對交警手勢動(dòng)作要領(lǐng)的分析可以發(fā)現(xiàn)所有的動(dòng)作都存在一個(gè)共同的特點(diǎn),即 立正姿勢是動(dòng)作完成的信號,左手或者右手的運(yùn)動(dòng)是手勢動(dòng)作開始的信號。基于這樣的一 個(gè)特點(diǎn),本發(fā)明通過測量左手與右手之間距離的變化情況來判斷是否存在手勢動(dòng)作,以此 作為手勢分割的依據(jù)。圖2是停止手勢和左轉(zhuǎn)彎待轉(zhuǎn)手勢在完成的過程中所采集到的左右 手之間距離的變化曲線。
[0049] 在圖2所示的變化曲線中,振幅最小也是曲線最為平緩的地方出現(xiàn)在整個(gè)曲線的 A、B、C三個(gè)位置,此時(shí)正好是人體的立正姿勢,而在AB和BC之間