本發明屬于模式識別與身份認證技術領域,更具體地說,涉及一種基于Kinect傳感器的隔空動態手勢用戶身份認證方法及裝置。
背景技術:
身份認證是身份安全識別系統確認操作者的真實身份與其聲明的身份是否相符的過程。也就是首先事先錄入所有合法用戶信息。然后進入測試階段,當一個新用戶進入系統時,他需要先聲明其身份,然后進行認證匹配,如果匹配結果表明他不屬于其聲明用戶,則提示“該用戶為入侵用戶”。
目前,身份認證的主要方式分為基于用戶名/密碼、IC卡認證、動態口令、傳統生物特征等。基于用戶名/密碼方式的身份認證在目前任然大量被使用,它是一種事先給識別裝置設置一個密碼,當需要進行身份識別時,我們就輸入設定的密碼即可完成身份的認證,該方式的身份認證主要用在電腦解鎖,QQ密碼登陸等。但是基于用戶名/密碼用戶身份認證的最大缺點是密碼極易丟失,為了密碼的安全性,往往會不斷的更換密碼,對于不同的需要身份認證的情景,我們往往會設置不同的密碼,這對于密碼的記憶以及維護是十分不便的。常用的基于IC卡的身份識別是給用戶一張IC卡,該卡可以用來身份認證以及購物消費,主要使用場所是學校的學生卡,購物卡。該方法最大的缺點是易丟失,與此同時,將會面臨著極大地安全隱患。常用的基于動態口令方式的身份認證是一種基于用戶名/密碼方式的完善,主要目的是增強安全性和幫助記憶,它的工作原理是讓用戶的密碼按照時間或使用次數不斷動態變化,每個密碼只使用一次的方式進行身份認證,但是如果客戶端硬件與服務器端程序的時間或次數不能保持良好的同步,就可能發生合法用戶無法登陸的問題,并且用戶每次登錄時還需要通過鍵盤輸入一長串無規律的密碼,一旦看錯或輸錯就要重新來過,用戶的使用非常不方便。
基于傳統生物特征的方式是一種使用如:人臉、指紋、虹膜等進行身份認證的方式。生物特征是目前最為方便、安全的身份識別技術,它辨識的是人身的固有特征,不需要身外的其他標識物。然而基于這些生物特征的用戶身份認證仍存在一些問題:人臉屬于一種公開信息,人們很容易獲取,加上目前3D人臉制作技術被提出,基于人臉識別的安全問題不斷被質疑。指紋識別在手機上大量使用,受到廣大用戶的青睞,但是由于指紋極易保留在物體表面,竊取指紋信息極其容易,所以安全隱患很大,另外,指紋識別是一個觸碰時識別,如果錄入指紋的手指皮膚出現破損,識別基本很難實現。虹膜識別是一個安全系數高的身份認證方式,但是繁瑣的識別過程限制了該方式的推廣,識別時,我們需要將自己的眼睛對著攝像頭,讓其捕獲黑眼珠,捕獲黑眼珠是個極其復雜的過程,在一些需要反復進行身份認證的場景下,很顯然虹膜識別是不可取的。
用戶動態手勢包含兩種類型的信息:一種是用手勢本身所表達的含義(GMI);另一種是隱藏的動態生物特征信息(DBCI)。對于不同的用戶,執行同一個手勢動作,GMI基本上是相同的,但是DBCI是不同的。使用動態手勢中蘊含的獨特的、不可模仿的信息來進行身份認證,具有安全,方便,無觸碰等優勢。考慮到基于傳統生物特征進行身份認證所存在的安全隱患和繁瑣的識別過程,使用動態手勢進行用戶身份認證成為了近幾年的研究熱點。
經檢索,中國專利號ZL201310358968.7,專利名稱:一種基于動態手勢的身份認證方法;該申請案利用智能手機加速度傳感器獲取手勢執行時的動態信息,采用結合放寬端點限制和提前終止的DTW方法對手勢動態信息進行匹配認證。解決了手勢序列間因端點不對齊而引起的認證失敗問題,同時也利用彎折斜率限制和提前終止策略減少了計算量。該申請案的核心思想是使用手機自身攜帶的傳感器獲取用戶執行時的加速度,通過將預處理的樣本輸入改善的DTW算法進行匹配并進行身份認證,其認證過程是一個觸碰式的過程,旨在使用智能手機手勢的加速度動態信息進行身份認證,該申請案的數據采集方式、獲取的數據信息和技術實施方案均適用于手機,在安全驗證、醫學防塵、游戲安全登錄等領域中應用有其局限性。
技術實現要素:
1.發明要解決的技術問題
本發明的目的在于克服基于傳統生物特征的身份識別技術存在安全隱患和識別繁瑣的不足,提供了一種隔空動態手勢用戶身份認證方法及裝置;本發明使用Kinect隔空采集動態手勢運動的軌跡信息并完成身份認證,采用合成超級匹配模板和對匹配結果均值化DTW高效算法,首先對測試數據樣本進行預處理,對每個動態手勢制作3個超級匹配模板,身份匹配時將這3個超級模板同測試樣本的DTW匹配結果均值作為該手勢最終匹配結果,本發明能夠有效的提高身份認證精度,獲得理想的身份認證效果。
2.技術方案
為達到上述目的,本發明提供的技術方案為:
本發明的一種隔空動態手勢用戶身份認證方法,其步驟為:
步驟一、通過訓練確定用戶動態手勢視頻的開始幀與結束幀;
步驟二、采集用戶動態手勢樣本,每個手勢采集9個樣本,對采集樣本數據進行預處理,然后,將每個手勢的9個樣本以3個為一組合成一個超級模板,獲得的超級模板構成模板數據庫;
步驟三、采集用戶測試樣本并進行預處理,然后將測試樣本同模板數據庫中超級模板運用DTW算法進行匹配,依據匹配結果進行用戶身份認證。
更進一步地,使用Kinect傳感器采集用戶動態手勢視頻數據,捕獲用戶全身的骨架,并對骨架25個節點進行標號,所述25個節點為:脊底、脊中、脖子、頭蓋、左肩、左肘、左手腕、左手、右肩、右肘、右手腕、右手、左臀、左膝、左腳踝、左腳、右臀、右膝、右腳踝、右腳、肩膀、左指尖、左拇指、右指尖、右拇指。
更進一步地,步驟一中將采集的動態手勢視頻以幀為單位將圖片和節點位置數據保存起來,分別給左手、右手、雙手設置參數,參數設置規則為:如果當前幀為靜止,即將該幀標記為“0 0 0”,如果當前幀為左手運動,當前幀被標記為“1 0 0”,如果當前幀為右手運動,當前幀被標記為“0 1 0”,如果當前幀為雙手運動,則標記為“1 1 1”,將標記好的樣本放入神經網絡中進行訓練,判斷當前幀是運動幀還是靜止幀;在此基礎上,以前30幀有25幀為靜止幀作為運動開始標志,并開始采集數據,同時設置運動過程中出現連續10幀為靜止幀作為結束標志。
更進一步地,步驟二和步驟三所述的對采集視頻數據進行預處理,包括歸一化和平滑去噪;其中,數據歸一化的具體處理方法如下:
骨架結構的每個節點都有一個3維位置坐標(x,y,z),設定變量表示某個動態手勢g在時間幀為t第i個節點位置的坐標信息,表示如下:
將每個節點的位置數據減去脊椎節點的位置坐標,得到節點相對位置坐標,表示如下:
最后獲取脖子到脊椎的距離,用上述所有的節點相對位置除以該脖子到脊椎的距離,作為歸一化的樣本數據,設變量表示某個動態手勢g在時間幀為t第i個節點位置的歸一化坐標,表示如下:
更進一步地,數據歸一化后,再進行光滑去躁處理,光滑去躁以幀為單位,前2幀和最后2幀的數據保持不變,其他幀的數據作如下處理:
設定變量Pt表示第t幀的歸一化數據,從第三幀開始選取連續5幀節點(Pt-2,Pt-1,Pt,Pt+1,Pt+2),得到方差:
δ=max(∑(||pt-1-pt||+||pt-2-pt-1||),∑(||pt+1-pt||+||pt+2-pt+1||))
然后,設定一個變量dt表示第t幀與第t-1幀歸一化數據的歐式距離:
接著,引進高斯公式,對dt進行處理,高斯公式如下:
平滑去噪處理公式如下:
更進一步地,合成超級模板的具體過程為:將單個動態手勢的其中2個樣本模板通過DTW匹配,獲取最優路徑:
wr=(i,j)
其中,i,j分別表示2個樣本模板序列的幀數;
然后將2個樣本模板在最優路徑上取均值,設變量xi表示其中一個樣本模板第i幀的25個節點的位置數據,yj表示另一個樣本模板第j幀的25個節點的位置數據,sgr表示超級模板第r幀的25個節點的位置數據:
最后,將合成的sgr數據再和第3個樣本模板運用上述方法合成最終的超級模板。
更進一步地,步驟三中將測試樣本與單個手勢的3個超級模板匹配結果的均值作為該手勢的匹配結果,再將所有動態手勢匹配結果的最小值作為該測試樣本的最終匹配結果D[i];判斷D[i]與標準閾值的大小關系,如果D[i]>標準閾值,提示此用戶為未授權用戶,認證結束;如果D[i]<標準閾值,則判斷D[i]與設定閾值的大小關系,如果D[i]<設定閾值,輸出認證的用戶名,匹配成功,如果D[i]>設定閾值,則認證失敗,結束該次認證。
更進一步地,所述的標準閾值,即讓所有已注冊用戶對一個手勢做10遍動作,將所有的匹配結果的均值作為已注冊用戶動態手勢的標準閾值。
更進一步地,所述的設定閾值,即對每個注冊用戶的同一個動態手勢采集10個樣本數據,并將10個樣本數據分別同模板數據庫中該手勢的3個超級模板進行匹配,取匹配距離的最大值作為該用戶動態手勢的設定閾值。
本發明的一種隔空動態手勢用戶身份認證裝置,包括采集模塊、數據預處理模塊、超級模板合成模塊和用戶身份認證模塊,其中:
采集模塊,用于采集用戶動態手勢執行時每一幀全身25個骨節位置數據,將采集數據作為樣本數據;
數據預處理模塊:用于對采集數據進行預處理,包括歸一化和平滑去噪處理;
超級模板合成模塊:用于通過超級模板方法將每個動態手勢的9個普通模板合成3個超級模板;
用戶身份認證模塊:將測試樣本與超級模板進行DTW匹配,對匹配結果進行認證。
3.有益效果
采用本發明提供的技術方案,與已有的公知技術相比,具有如下顯著效果:
(1)本發明一種隔空動態手勢用戶身份認證方法,使用Kinect隔空采集動態手勢執行時全身25個節點的骨架位置的軌跡信息,引進在DTW最小路徑的基礎上合成超級匹配模板,給每個動態手勢生成3個超級匹配模板,最終取3個超級匹配模板的均值作為該手勢的最終匹配結果,并進行認證判斷,該身份認證方法一方面可以簡化認證過程,另一面可以減少污染,甚至降低裝置的耗損速度,適用范圍廣,只需要用一個Kinect即可,成本較低;
(2)本發明一種隔空動態手勢用戶身份認證方法,使用Kinect獲取骨架信息,和用戶的穿戴沒有任何關系,隔空采集數據并完成身份認證,適用于無法或難于采集到生物特征的場景下,如能滿足無菌室中,醫護人員穿戴無菌服后的不觸碰任何細菌源的使用要求,對日益流行的體感游戲,隔空動態手勢身份認證與體感游戲可以無縫連接,在安全驗證、醫學防塵、游戲安全登錄等領域中有著廣泛的應用前景;
(3)本發明一種隔空動態手勢用戶身份認證方法,采集骨架節點數據增加到25個,且每個手勢采集9個樣本,將每組3個樣本數據使用超級模板方法合成一個超級模板,能夠精確的描述動態手勢的位置信息,不受用戶穿戴的干擾,引入均值的方法能夠避免極限值的干擾,增強系統的穩定性;
(4)本發明一種隔空動態手勢用戶身份認證方法,經實驗驗證,在100個樣本以內,左手畫“V”,右手畫“0”的FAR為0,FRR為3%,系統的認證時間為2S。
附圖說明
圖1是本發明通過訓練確定開始幀與結束幀的流程圖;
圖2是本發明制作模板數據庫的流程圖;
圖3是本發明中用戶身份認證流程圖;
圖4是本發明中Kinect獲取的全身骨架結構圖;
圖5是本發明中超級模板與普通模板性能對比圖;
圖6是本發明的隔空動態手勢用戶身份認證裝置的結構框圖。
具體實施方式
目前的身份認證主要是基于口令和生物特征的方式,而這些認證過程繁瑣,大多數需要在觸碰的情況下進行,當出現遮擋會影響認證結果,本發明針對上述問題,提出了一種基于Kinect傳感器的隔空動態手勢用戶身份認證方法及裝置,既可以保證認證過程的安全性,而且是在無觸碰條件下完成認證,不會受到遮擋等因素的影響。為進一步了解本發明的內容,結合附圖和實施例對本發明作詳細描述。
實施例1
本實施例進行隔空動態手勢用戶身份認證的具體過程包括以下步驟:
步驟一、通過訓練確定用戶動態手勢視頻的開始幀與結束幀(參看圖1),具體為:
1-1、系統顯示提示界面,使用Kinect傳感器自動采集用戶動態手勢視頻數據用于訓練,該Kinect傳感器是通過IColorFrameSource傳感器獲取彩色信息,使用IBodyFrameSource傳感器獲取骨架信息,并最終獲取每個節點的三維位置數據(x,y,z)。Kinect傳感器默認的采集頻率為每秒30幀。
1-2、運用神經網絡確定動態手勢開始幀與結束幀的位置,當系統能夠精準的區分所有用戶的運動幀和靜止幀時,訓練結束,否則,繼續執行步驟1-1。
1-3、在精準區分運動幀與靜止幀的基礎上,采集某動態手勢運動幀與靜止幀之間的數據作為該動態手勢的樣本數據。
首先,使用Kinect捕獲用戶全身的骨架(如圖4所示),將圖4所示的25個節點標號為0-24,依次為:脊底、脊中、脖子、頭蓋、左肩、左肘、左手腕、左手、右肩、右肘、右手腕、右手、左臀、左膝、左腳踝、左腳、右臀、右膝、右腳踝、右腳、肩膀、左指尖、左拇指、右指尖、右拇指。將錄制的用戶動態手勢視頻,以幀為單位將圖片和節點位置數據都保存起來,分別給左手、右手、雙手設置參數,參數設置規則為:如果當前幀為靜止,即將該幀標記為“0 0 0”,如果當前幀為左手運動,當前幀被標記為“1 0 0”,如果當前幀為右手運動,當前幀被標記為“0 1 0”,如果當前幀雙手運動,則標記為“1 1 1”,將標記好的樣本放入神經網絡中進行訓練,能夠判斷當前幀是運動幀還是靜止幀。在此基礎上,以前30幀有25幀為靜止幀作為運動開始標志,并開始采集數據,同時設置運動過程中出現連續10幀為靜止幀作為結束標志。然后,使用Kinect獲取某個動態手勢25個節點的軌跡位置數據(即動態手勢運動幀與靜止幀之間的數據),數據格式為每幀75列的數據,若動態手勢的軌跡信息由M幀組成,那么該軌跡信息可以表示為M*75的矩陣,該矩陣數據即為一個樣本數據。
步驟二、建立模板數據庫(參看圖2),具體為:
2-1、系統顯示提示界面,自動采集用戶單個動態手勢樣本(每個手勢采集9個樣本,每3個為一組,共分為3組)。
2-2、對動態手勢樣本數據進行預處理,包括歸一化和平滑去噪。由于每個測試者的體型、所處的位置,做手勢的幅度大小的差異,因此需要歸一化處理樣本數據;又因為樣本數據在采集過程中受到抖動和傳感器自身精度的影響,不可避免有噪聲所以需要平滑去噪解決抖動問題。
數據歸一化的具體處理方法如下:
傳感器獲取的骨架結構是由25個節點組成,每個節點都有一個3維位置坐標(x,y,z),設定一個變量表示某個動態手勢g在時間幀為t第i個節點位置的坐標信息,變量表示如公式1:
為了減小不同測試者體型和做動作所處位置的差異對實驗結果的干擾,增強數據的魯棒性,對數據進行歸一化處理,將每個節點的位置數據減去脊椎節點的位置坐標,得到的位置坐標稱為“節點相對位置”,此時其他節點的位置只是相對于脊椎節點的位置,忽視空間的影響,避免了因做動作所處的位置不同對實驗結果的干擾,具體操作如公式2所示:
最后獲取脖子到脊椎的距離,用上述所有的節點相對位置除以該脖子到脊椎的距離,作為歸一化的樣本數據,設變量表示某個動態手勢g在時間幀為t第i個節點位置的歸一化坐標信息,此時的位置對自身的骨骼長度進行歸一化處理,最大程度的減少體型的影響,避免了測試者體型不同對實驗結果的干擾。具體操作如公式3所示:
歸一化處理后,再對樣本數據進行光滑去躁處理,的每一幀數據由25個節點的三維位置坐標組成的,光滑去躁是以幀為單位,對所有的歸一化數據進行處理。前2幀和最后2幀的數據保持不變,其他幀的數據作如下處理:
設定變量Pt表示第t幀的歸一化數據,從第三幀開始選取連續5幀節點(Pt-2,Pt-1,Pt,Pt+1,Pt+2),得到方差如公式4:
δ=max(∑(||pt-1-pt||+||pt-2-pt-1||),Σ(||pt+1-pt||+||pt+2-pt+1||))(公式4)
然后,設定一個變量dt表示第t幀與第t-1幀的位置數據的歐式距離,如公式5:
接著,引進高斯公式,對數據dt進行處理,高斯公式如公式6所示:
結合公式4、5、6,使用公式7完成平滑去噪處理,公式7如下:
2-3、將步驟2-2處理后的每組3個樣本數據合成一個超級模板,每個動態手勢制作3個超級模板,獲得的超級模板構成模板數據庫。模板數據庫中的模板數據不是普通的動態手勢模板,而是使用超級模板方法合成的超級模板。由于同一個測試者在重復手勢時,時間幀可能存在或大或小的改變,如果我們選取的幀數較小或較大的模板作為匹配模板,都會干擾最終的匹配結果。鑒于此,本實施例采用了一種新的超級模板的技術,在最優路徑上加長模板長度,合成最佳的超級匹配模板。原理為:
假定模板A含有m幀,模板B含有n幀,現將A作為X軸,B作為Y軸,i表示A的當前幀,j表示B的當前幀。將2個模板進行匹配獲取最優路徑,即(1,1).......(i,j).........(m,n)表示最優路徑,在合成超級模板時,順序的從(1,1)開始將最優路徑上的每一點A和B的均值作為超級模板的幀數據,直至(m,n)結束,此時即獲取模板A和B的超級模板。超級模板方法是利用DTW匹配算法得到的最優路徑重新合成新的加強模板,增強每個人隱含的獨特信息,也使得超級模板的長度得到一定的提高。
本實施例的具體合成過程如下:
首先將步驟2-2處理后的用戶單個動態手勢的其中2個動態手勢序列(即樣本數據)通過DTW匹配,獲取最優路徑并記錄,如公式8所示:
wr=(i,j)(公式8)
其中,i,j表示2個動態手勢序列的幀數,如Wr=(1,2)表示此處最優路徑的位置為樣本模板第1幀和另一樣本模板第2幀。
然后,將2個動態手勢序列在最優路徑上取均值,設變量xi表示樣本模板第i幀的25個節點的位置數據,yj表示另一樣本模板第j幀的25個節點的位置數據,sgr表示超級模板第r幀的25個節點的位置數據,如公式9所示:
最后,將上文合成的sgr數據再和第三個樣本模板運用上述方法合成最終的超級模板,在步驟2-1中提到:每個動態手勢采集9個樣本,每三個為一組,即對每個手勢合成3個超級模板。
圖5是本實施例的超級模板與普通模板性能對比圖,由圖5可以看出,三條虛線線段表示普通模板,這些數據長度參差不齊,即使是同一個人做同一個手勢,軌跡也有較大的偏差。實線線段是使用超級模板方法合成的超級模板,可以看出:超級模板在3個普通模板軌跡中間穿過,具有普通模板的一般性,而且超級模板的長度比普通模板長,就普通模板而言,提高了用戶身份認證率。
步驟三、進行用戶身份認證(參看圖3),具體為:
3-1、系統顯示提示界面,自動采集用戶測試樣本。
3-2、對用戶測試樣本進行預處理,所述的預處理包括歸一化和光滑去噪,處理過程同上文所述,此處不在贅述。
3-3、對經過步驟3-2預處理的測試樣本同模板數據庫中超級模板運用DTW算法進行匹配,假定測試樣本包含m幀而超級模板數據包含n幀,DTW算法運用DP(動態規劃)算法思想,找到從(1,1)至(m,n)的最小路徑,將測試樣本與模板數據庫中所有動態手勢的3個超級模板都進行DTW算法匹配一次,將測試樣本與某手勢3個超級模板的匹配結果的均值作為該手勢的匹配結果,再將所有動態手勢匹配結果的最小值作為該測試樣本的最終匹配結果D[i]。
3-4、判斷D[i]與標準閾值的大小關系,如果D[i]>標準閾值,提示此用戶為未授權用戶,認證結束;如果D[i]<標準閾值,執行步驟3-5。所謂標準閾值,即讓所有已注冊用戶對一個手勢做10遍動作,將所有的匹配結果的均值作為已注冊用戶動態手勢的標準閾值。通過比較當前用戶動態手勢匹配距離與此閾值的大小,以確定當前用戶是否屬于已注冊用戶。
3-5、判斷D[i]與設定閾值的大小關系,如果D[i]<設定閾值,輸出認證的用戶名,匹配成功,如果D[i]>設定閾值,則認證失敗,結束該次認證。所謂設定閾值,對每個注冊用戶的同一個動態手勢采集10個樣本數據,并將這10個樣本分別同模板數據庫中的該手勢的3個超級模板進行匹配,取匹配距離的最大值作為該用戶動態手勢的設定閾值。通過比較當前動態手勢匹配距離與此設定閾值的大小,以排除該用戶異常的動態手勢動作。
本實施例的進行隔空動態手勢用戶身份認證的方法,使用Kinect傳感器獲取數據,相比傳統生物特征的身份認證而言,具有以下優勢:首先本實施例獲取的是全身骨架節點,和人的穿戴,遮擋無關;其次,本實施例在無觸碰的情況完成認證,過程方便,減少污染,降低耗材;在安全性上,使用動態手勢中隱含的信息進行身份認證,安全高效。尤其在特定的環境下,例如:醫學的無菌室的身份驗證、半導體生產場地的身份識別以及體感游戲的身份識別等等。在這些環境下,身份識別需要無菌的狀態下,顯然隔空的方式能夠有效地減少細菌污染,體感游戲中主要是動作,所以基于動態手勢的身份認證不僅可以快速、安全的驗證用戶身份,而且可以增加用戶的游戲體驗。實驗證明,在100個樣本以內,左手畫“V”,右手畫“0”的FAR為0,FRR為3%,系統的認證時間為2S。
本實施例進行隔空動態手勢用戶身份認證裝置的結構框圖如圖6所示,該裝置包括以下模塊:
采集模塊,用于采集用戶動態手勢執行時每一幀全身25個骨節位置數據,將這個數據作為樣本數據;
數據預處理模塊:對測試樣本進行預處理,包括歸一化、平滑去噪處理;
超級模板合成模塊:每個手勢輸入9個普通模板,通過超級模板方法合成一個超級模板并且每個手勢最終合成3個超級模板;
用戶身份認證模塊:將測試樣本與超級模板進行DTW匹配,對匹配結果進行認證。
以上示意性的對本發明及其實施方式進行了描述,該描述沒有限制性,附圖中所示的也只是本發明的實施方式之一,實際的結構并不局限于此。所以,如果本領域的普通技術人員受其啟示,在不脫離本發明創造宗旨的情況下,不經創造性的設計出與該技術方案相似的結構方式及實施例,均應屬于本發明的保護范圍。