一種基于動作元的體感姿勢識別方法
【專利摘要】本發(fā)明公開了一種基于動作元的體感姿勢識別方法,采用對象映射生成技術(shù)、元動作分割技術(shù)、動作自動組合技術(shù)、頂級動作消缺技術(shù),兼顧Kinect?For?Windows的馬達(dá)以及語音識別,使用Kinect?For?Windows?SDK實(shí)現(xiàn)一種依靠Kinect?For?Windows?SDK骨骼信息生成基礎(chǔ)元動作,根據(jù)元動作生成出復(fù)雜動作姿勢的姿勢識別方法。本發(fā)明增加了姿勢識別的重用性,避免了每一次的動作邏輯都要與骨骼信息進(jìn)行交互,提高了姿勢識別的準(zhǔn)確度和效率,并且可以對所需識別的姿勢進(jìn)行擴(kuò)充,有效解決了Kinect?For?Windows?SDK缺少姿勢識別模塊帶來的不便。
【專利說明】一種基于動作元的體感姿勢識別方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及到對象映射生成技術(shù)、元動作分割技術(shù)、動作自動組合技術(shù)、頂級動作消缺【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]隨著Kinect For Windows體感識別設(shè)備的出現(xiàn),以體感操作計(jì)算機(jī)的設(shè)想變成了現(xiàn)實(shí),越來越多的項(xiàng)目結(jié)合Kinect進(jìn)行開發(fā)。微軟,作為Kinect的制作商,為Kinect ForWindows提供了一套SDK開發(fā)包,也有很多其他軟件公司為Kinect For Windows開發(fā)相應(yīng)的組件。除了 Kinect For Windows SDK以外,OpenNI提供了另一套SDK開發(fā)組件,OpenNI與Kinect For Windows SDK相比最大的特點(diǎn)在于具有姿勢識別模塊,支持全身追蹤,包含手部追蹤框架以及手勢識別框架,開發(fā)者不用編寫動作姿勢識別模塊;Kinect For WindowsSDK同樣具備全身追蹤但是不具備姿勢識別模塊,動作姿勢識別模塊需開發(fā)者自行實(shí)現(xiàn)。但是,Kinect For Windows SDK擁有內(nèi)置馬達(dá)操作專利,通過馬達(dá)操作模塊可以很方便的操作Kinect的角度,使Kinect增加更多的擺放選擇,同時內(nèi)置馬達(dá)操作模塊具有自動對焦功能能夠?qū)崟r聚焦在操作者身上;Kinect For Windows SDK具備強(qiáng)勁的語音識別模塊可以與微軟自己的語音識別庫實(shí)現(xiàn)無縫對接,更加凸顯Kinect的效能。
[0003]為了兼顧Kinect的馬達(dá)以及語音識別功能,使用Kinect For Windows SDK必須要實(shí)現(xiàn)一套面向Kinect For Windows SDK的姿勢識別方法,避免每次單一動作都要去實(shí)現(xiàn)動作姿勢識別邏輯,增加姿勢識別的重用性,解決Kinect For Windows SDK缺少姿勢識別模塊帶來的不便。
[0004]一種基于動作元的姿勢識別方法為了解決Kinect For Windows SDK缺少姿勢識別模塊造成每個單一動作都要進(jìn)行邏輯實(shí)現(xiàn)的弊端,同時為了增加姿勢識別的可重用性,在基于對象映射生成技術(shù)、元動作分割技術(shù)、動作自動組合技術(shù)、頂級動作消缺技術(shù)之上提供了一種依靠Kinect For Windows SDK骨骼信息生成基礎(chǔ)元動作,根據(jù)元動作生成復(fù)雜動作姿勢的姿勢識別方法,避免了每次動作邏輯與骨骼信息進(jìn)行交互的計(jì)算復(fù)雜度。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是為了克服Kinect For Windows SDK現(xiàn)有技術(shù)存在的缺陷和不足,提供一種增加姿勢識別可重用性,避免每次動作邏輯與骨骼信息進(jìn)行交互的計(jì)算復(fù)雜度,提高姿勢識別的準(zhǔn)確度和效率,并且支持對所需識別姿勢進(jìn)行擴(kuò)充的姿勢識別方法。
[0006]本發(fā)明通過使用對象映射生成技術(shù)、元動作分割技術(shù)、動作自動組合技術(shù)、頂級動作消缺技術(shù)等,兼顧Kinect For Windows的馬達(dá)以及語音識別,使用Kinect For WindowsSDK實(shí)現(xiàn)了一種依靠Kinect For Windows SDK骨骼信息生成基礎(chǔ)元動作,根據(jù)元動作生成出復(fù)雜動作姿勢的姿勢識別方法,避免每次單一動作都要去實(shí)現(xiàn)動作姿勢識別邏輯,增加姿勢識別的重用性,解決了 Kinect For Windows SDK缺少姿勢識別模塊帶來的不便,避免了每次動作邏輯與骨骼信息進(jìn)行交互的計(jì)算復(fù)雜度。[0007]—種基于動作元的體感姿勢識別方法,本發(fā)明特征是,
采用對象映射生成技術(shù)、元動作分割技術(shù)、動作自動組合技術(shù)、頂級動作消缺技術(shù),兼顧Kinect For Windows的馬達(dá)以及語音識別,使用Kinect For Windows SDK實(shí)現(xiàn)一種依靠Kinect For Windows SDK骨骼信息生成基礎(chǔ)元動作,根據(jù)元動作生成出復(fù)雜動作姿勢的姿勢識別方法;其中:
由Kinect骨骼信息接口、骨骼深度信息轉(zhuǎn)化模塊、基礎(chǔ)元動作生成模塊、復(fù)雜動作擴(kuò)展模塊組成,其中基礎(chǔ)元動作生成模塊包括動作匹配工廠、元動作庫組成,復(fù)雜動作擴(kuò)展模塊包括頂級動作消缺模塊、時序分析模塊、擴(kuò)展模板組成;
在Kinect骨骼信息接口中,通過Kinect體感識別設(shè)備捕捉人體的20個骨骼點(diǎn),人體20個骨骼點(diǎn)分別是頭、左/右肩、肩部中心點(diǎn)、左/右肘關(guān)節(jié)、左/右腕關(guān)節(jié)、左/右手掌、脊柱、左/右臀、臀部中心點(diǎn)、左/右膝關(guān)節(jié)、左/右踝關(guān)節(jié)、左/右腳掌;將捕捉到的20個骨骼點(diǎn)傳遞到骨骼深度信息轉(zhuǎn)化模塊,進(jìn)行進(jìn)一步的骨骼信息解析;
骨骼深度信息轉(zhuǎn)化模塊將骨骼對象映射為對應(yīng)的屏幕坐標(biāo)信息(X,y, z),其中X為水平方向上的坐標(biāo),y為豎直方向上的坐標(biāo),z為垂直于屏幕的深度坐標(biāo),最后將得到的骨骼點(diǎn)的坐標(biāo)信息整合為深度圖像數(shù)據(jù);骨骼深度信息轉(zhuǎn)化模塊將骨骼深度圖像數(shù)據(jù)傳遞到基礎(chǔ)元動作生成模塊,解析元動作;
元動作為人體日常活動中理論上手、腿、頭、軀干等可以達(dá)到的所有單一基本動作,分割出人體手和腿部在X-Y平面內(nèi),即沿水平和豎直兩個方向上的所有元動作;并分割出人體手和腿部涉及沿Z軸方向,即會與Kinect設(shè)備距離發(fā)生變化方向的所有元動作;通過基礎(chǔ)元動作生成模塊可以確切的得到每一條骨架信息產(chǎn)生的所有元動作,并且保證每一部分動作體有且只有一條元動作與之對應(yīng);
基礎(chǔ)元動作生成模塊接收到骨骼深度信息,通過骨骼動作匹配工廠、元動作庫,生成此次骨架信息對應(yīng)的各種元動作鏈表,并將元動作鏈表傳遞到復(fù)雜動作擴(kuò)展模塊,完成所需要的復(fù)雜動作識別;
復(fù)雜動作擴(kuò)展模塊可以通過擴(kuò)展模板由用戶自行擴(kuò)展所需要的復(fù)雜動作,擴(kuò)展模板包含每一部分動作體的元動作列表,既擴(kuò)展模板中的動作體與元動作是一對多的關(guān)系;復(fù)雜動作擴(kuò)展模塊中的動作識別由頂級動作消缺模塊對用戶自行擴(kuò)展的擴(kuò)展模板進(jìn)行第一步識別動作;
在復(fù)雜動作擴(kuò)展模塊接收到元動作列表信息以后,頂級動作消缺模塊開始對用戶自行擴(kuò)展的擴(kuò)展模板進(jìn)行分析,并消去此次識別的用戶所設(shè)置的最頂級動作子動作集合,保留最頂級動作作為此次的復(fù)雜動作識別結(jié)果,并將結(jié)果傳遞到時序分析模塊中,進(jìn)行時序分析,在操作人員動作完成的時間范圍內(nèi)完成此套動作的識別;
在時序分析模塊中,根據(jù)Kinect的骨骼識別頻率30幀/秒來設(shè)定計(jì)時器,即通過對骨骼幀的計(jì)數(shù)來計(jì)算出相對應(yīng)的時間,每一次復(fù)雜動作的識別時間為1/30F秒,通過用戶自行設(shè)定此套復(fù)雜動作所跨越的時間段。
[0008]本發(fā)明的有益效果:基于本發(fā)明,增加了姿勢識別的重用性,避免了每一次的動作邏輯都要與骨骼信息進(jìn)行交互,提高了姿勢識別的準(zhǔn)確度和效率,并且可以對所需識別的姿勢進(jìn)行擴(kuò)充,有效解決了 Kinect For Windows SDK缺少姿勢識別模塊帶來的不便?!緦@綀D】
【附圖說明】
[0009]圖1是本發(fā)明的結(jié)構(gòu)示意圖;
圖2是通過Kinect體感識別設(shè)備捕捉人體的20個骨骼點(diǎn)的分布圖;
圖3是分割出了人體手和腿部在X-Y平面內(nèi),即沿水平和豎直兩個方向上的所有元動作示意圖;
圖4是以右手/腿動作為例,左手/腿動作類同,分割出了人體手和腿部涉及沿Z軸方向,即會與Kinect設(shè)備距離發(fā)生變化方向的所有元動作示意圖。
【具體實(shí)施方式】
[0010]一種基于動作元的體感姿勢識別方法,本發(fā)明技術(shù)方案如圖1所示,由Kinect骨骼信息接口 1、骨骼深度信息轉(zhuǎn)化模塊2、基礎(chǔ)元動作生成模塊3、復(fù)雜動作擴(kuò)展模塊4組成,其中基礎(chǔ)元動作生成模塊包括動作匹配工廠31、元動作庫32組成,復(fù)雜動作擴(kuò)展模塊包括頂級動作消缺模塊41、時序分析模塊42、擴(kuò)展模板43組成;
在Kinect骨骼信息接口 I中,通過Kinect體感識別設(shè)備捕捉人體的20個骨骼點(diǎn),人體20個骨骼點(diǎn)如圖2所示,分別是頭、左/右肩、肩部中心點(diǎn)、左/右肘關(guān)節(jié)、左/右腕關(guān)節(jié)、左/右手掌、脊柱、左/右臀、臀部中心點(diǎn)、左/右膝關(guān)節(jié)、左/右踝關(guān)節(jié)、左/右腳掌;將捕捉到的20個骨骼點(diǎn)傳遞到骨骼深度信息轉(zhuǎn)化模塊2,進(jìn)行進(jìn)一步的骨骼信息解析;
骨骼深度信息轉(zhuǎn)化模塊2將骨骼對象映射為對應(yīng)的屏幕坐標(biāo)信息U,y,z),其中X為水平方向上的坐標(biāo),y為豎直方向上的坐標(biāo),z為垂直于屏幕的深度坐標(biāo)(即與Kinect設(shè)備的距離),最后將得到的骨骼點(diǎn)的坐標(biāo)信息整合為深度圖像數(shù)據(jù);骨骼深度信息轉(zhuǎn)化模塊2將骨骼深度圖像數(shù)據(jù)傳遞到基礎(chǔ)元動作生成模塊3,解析元動作;
元動作為人體日常活動中理論上手、腿、頭、軀干等可以達(dá)到的所有單一基本動作,如圖3和圖4所示。圖3中,分割出了人體手和腿部在X-Y平面內(nèi),即沿水平和豎直兩個方向上的所有元動作;圖4中(以右手/腿動作為例,左手/腿動作類同),分割出了人體手和腿部涉及沿Z軸方向,即會與Kinect設(shè)備距離發(fā)生變化方向的所有元動作;圖3和圖4分別包含了各自角度內(nèi)的軀干以及頭部所能達(dá)到的所有元動作;通過基礎(chǔ)元動作生成模塊可以確切的得到每一條骨架信息產(chǎn)生的所有元動作,并且保證每一部分動作體(手、腿、頭、軀干等)有且只有一條元動作與之對應(yīng);
基礎(chǔ)元動作生成模塊3接收到骨骼深度信息,通過骨骼動作匹配工廠31、元動作庫32,生成此次骨架信息對應(yīng)的各種元動作鏈表,并將元動作鏈表傳遞到復(fù)雜動作擴(kuò)展模塊4,完成所需要的復(fù)雜動作識別;
復(fù)雜動作擴(kuò)展模塊4可以通過擴(kuò)展模板43由用戶自行擴(kuò)展所需要的復(fù)雜動作,擴(kuò)展模板43包含每一部分動作體(手、腿、頭、軀干)的元動作列表,既擴(kuò)展模板43中的動作體與元動作是一對多的關(guān)系,這樣有助于實(shí)現(xiàn)大幅度動作的識別;復(fù)雜動作擴(kuò)展模塊4中的動作識別由頂級動作消缺模塊41對用戶自行擴(kuò)展的擴(kuò)展模板43進(jìn)行第一步識別動作;
在復(fù)雜動作擴(kuò)展模塊4接收到元動作列表信息以后,頂級動作消缺模塊41就開始對用戶自行擴(kuò)展的擴(kuò)展模板43進(jìn)行分析,并消去此次識別的用戶所設(shè)置的最頂級動作子動作集合,保留最頂級動作作為此次的復(fù)雜動作識別結(jié)果,并將結(jié)果傳遞到時序分析模塊42中,進(jìn)行時序分析,在操作人員動作完成的時間范圍內(nèi)完成此套動作的識別; 在時序分析模塊42中,根據(jù)Kinect的骨骼識別頻率30幀/秒來設(shè)定計(jì)時器,即通過對骨骼幀的計(jì)數(shù)來計(jì)算出相對應(yīng)的時間,每一次復(fù)雜動作的識別時間為1/30F秒,通過用戶自行設(shè)定此套復(fù)雜動作所跨越的時間段。
【權(quán)利要求】
1.一種基于動作元的體感姿勢識別方法,其特征是, 采用對象映射生成技術(shù)、元動作分割技術(shù)、動作自動組合技術(shù)、頂級動作消缺技術(shù),兼顧Kinect For Windows的馬達(dá)以及語音識別,使用Kinect For Windows SDK實(shí)現(xiàn)一種依靠Kinect For Windows SDK骨骼信息生成基礎(chǔ)元動作,根據(jù)元動作生成出復(fù)雜動作姿勢的姿勢識別方法;其中: 由Kinect骨骼信息接口(I)、骨骼深度信息轉(zhuǎn)化模塊(2)、基礎(chǔ)元動作生成模塊(3)、復(fù)雜動作擴(kuò)展模塊(4)組成,其中基礎(chǔ)元動作生成模塊包括動作匹配工廠(31)、元動作庫(32)組成,復(fù)雜動作擴(kuò)展模塊包括頂級動作消缺模塊(41)、時序分析模塊(42)、擴(kuò)展模板(43)組成; 在Kinect骨骼信息接口( I)中,通過Kinect體感識別設(shè)備捕捉人體的20個骨骼點(diǎn),人體20個骨骼點(diǎn)分別是頭、左/右肩、肩部中心點(diǎn)、左/右肘關(guān)節(jié)、左/右腕關(guān)節(jié)、左/右手掌、脊柱、左/右臀、臀部中心點(diǎn)、左/右膝關(guān)節(jié)、左/右踝關(guān)節(jié)、左/右腳掌;將捕捉到的20個骨骼點(diǎn)傳遞到骨骼深度信息轉(zhuǎn)化模塊(2),進(jìn)行進(jìn)一步的骨骼信息解析; 骨骼深度信息轉(zhuǎn)化模塊(2)將骨骼對象映射為對應(yīng)的屏幕坐標(biāo)信息(X,y, z),其中X為水平方向上的坐標(biāo),y為豎直方向上的坐標(biāo),z為垂直于屏幕的深度坐標(biāo),最后將得到的骨骼點(diǎn)的坐標(biāo)信息整合為深度圖像數(shù)據(jù);骨骼深度信息轉(zhuǎn)化模塊(2)將骨骼深度圖像數(shù)據(jù)傳遞到基礎(chǔ)元動作生成模塊(3),解析元動作; 元動作為人體日?;顒又欣碚撋鲜?、腿、頭、軀干等可以達(dá)到的所有單一基本動作,分割出人體手和腿部在X-Y平面內(nèi),即沿水平和豎直兩個方向上的所有元動作;并分割出人體手和腿部涉及沿Z軸方向,即會與Kinect設(shè)備距離發(fā)生變化方向的所有元動作;通過基礎(chǔ)元動作生成模塊可以確切的得到每一條骨架信息產(chǎn)生的所有元動作,并且保證每一部分動作體有且只有一條元動作與之對應(yīng); 基礎(chǔ)元動作生成模塊(3)接收到骨骼深度信息,通過骨骼動作匹配工廠(31)、元動作庫(32),生成此次骨架信息對應(yīng)的各種元動作鏈表,并將元動作鏈表傳遞到復(fù)雜動作擴(kuò)展模塊(4),完成所需要的復(fù)雜動作識別; 復(fù)雜動作擴(kuò)展模塊(4)可以通過擴(kuò)展模板(43)由用戶自行擴(kuò)展所需要的復(fù)雜動作,擴(kuò)展模板(43)包含每一部分動作體的元動作列表,既擴(kuò)展模板(43)中的動作體與元動作是一對多的關(guān)系;復(fù)雜動作擴(kuò)展模塊(4)中的動作識別由頂級動作消缺模塊(41)對用戶自行擴(kuò)展的擴(kuò)展模板(43)進(jìn)行第一步識別動作; 在復(fù)雜動作擴(kuò)展模塊(4)接收到元動作列表信息以后,頂級動作消缺模塊(41)開始對用戶自行擴(kuò)展的擴(kuò)展模板(43)進(jìn)行分析,并消去此次識別的用戶所設(shè)置的最頂級動作子動作集合,保留最頂級動作作為此次的復(fù)雜動作識別結(jié)果,并將結(jié)果傳遞到時序分析模塊(42)中,進(jìn)行時序分析,在操作人員動作完成的時間范圍內(nèi)完成此套動作的識別; 在時序分析模塊(42)中,根據(jù)Kinect的骨骼識別頻率30幀/秒來設(shè)定計(jì)時器,即通過對骨骼幀的計(jì)數(shù)來計(jì)算出相對應(yīng)的時間,每一次復(fù)雜動作的識別時間為1/30F秒,通過用戶自行設(shè)定此套復(fù)雜動作所跨越的時間段。
【文檔編號】G06F3/01GK103941869SQ201410159749
【公開日】2014年7月23日 申請日期:2014年4月21日 優(yōu)先權(quán)日:2014年4月21日
【發(fā)明者】白彪, 桂丹, 楊堂華, 羅慶兵, 朱興柯, 李文亮, 李長生, 吳秋玫, 丁東, 車勇波, 楊鷗, 姚莉 申請人:云南電網(wǎng)公司普洱供電局, 昆明能訊科技有限責(zé)任公司