[0013] 基于此,有必要發(fā)明一種全新的運(yùn)動(dòng)捕捉方法,以解決現(xiàn)有運(yùn)動(dòng)捕捉系統(tǒng)數(shù)據(jù)處 理算法復(fù)雜、計(jì)算量大、當(dāng)標(biāo)記點(diǎn)混淆或被遮擋時(shí)無法工作、無法進(jìn)行人體定位和累計(jì)誤差 控制的問題。
【發(fā)明內(nèi)容】
[0014] 本發(fā)明為了解決現(xiàn)有運(yùn)動(dòng)捕捉系統(tǒng)數(shù)據(jù)處理算法復(fù)雜、計(jì)算量大、當(dāng)標(biāo)記點(diǎn)混淆 或被遮擋時(shí)無法工作、無法進(jìn)行人體定位和累計(jì)誤差控制的問題,提供了一種光學(xué)和慣性 體感數(shù)據(jù)融合的變電仿真人體運(yùn)動(dòng)捕捉方法。
[0015] 本發(fā)明是采用如下技術(shù)方案實(shí)現(xiàn)的:光學(xué)和慣性體感數(shù)據(jù)融合的變電仿真人體運(yùn) 動(dòng)捕捉方法,該方法包括如下步驟:
[0016] 1)通過Kinect體感設(shè)備和慣性傳感器各獲取一組人體運(yùn)動(dòng)數(shù)據(jù);
[0017] 2)對(duì)獲取的兩組人體運(yùn)動(dòng)數(shù)據(jù)進(jìn)行時(shí)間對(duì)準(zhǔn)和空間重投影,并利用卡爾曼濾波算 法對(duì)兩組人體運(yùn)動(dòng)數(shù)據(jù)進(jìn)行數(shù)據(jù)融合,由此得到高質(zhì)量的人體骨架模型;
[0018] 3)基于得到的人體骨架模型,計(jì)算關(guān)節(jié)相對(duì)角度、相對(duì)位置和運(yùn)動(dòng)速度,并提取人 體運(yùn)動(dòng)特征識(shí)別動(dòng)作,然后驅(qū)動(dòng)變電仿真虛擬環(huán)境中的虛擬人完成相應(yīng)的動(dòng)作。
[0019] 與現(xiàn)有運(yùn)動(dòng)捕捉系統(tǒng)相比,本發(fā)明所述的光學(xué)和慣性體感數(shù)據(jù)融合的變電仿真人 體運(yùn)動(dòng)捕捉方法通過對(duì)Kinect體感設(shè)備和慣性傳感器獲取的人體運(yùn)動(dòng)數(shù)據(jù)進(jìn)行數(shù)據(jù)融合, 并通過在融合數(shù)據(jù)中提取人體關(guān)節(jié)運(yùn)動(dòng)特征,實(shí)現(xiàn)了驅(qū)動(dòng)虛擬人實(shí)現(xiàn)變電仿真培訓(xùn),由此 其具備了如下優(yōu)點(diǎn):其一,本發(fā)明實(shí)現(xiàn)了變電仿真虛擬環(huán)境中低成本、高精度的人體運(yùn)動(dòng)捕 捉,在設(shè)備造價(jià)、跟蹤范圍、定位精度、誤差控制等方面兼具兩類運(yùn)動(dòng)捕捉系統(tǒng)(光學(xué)跟蹤系 統(tǒng)和慣性傳感器運(yùn)動(dòng)捕捉系統(tǒng))的優(yōu)勢。其二,本發(fā)明在統(tǒng)一框架下實(shí)現(xiàn)了基于慣性傳感器 的慣性人體捕捉系統(tǒng)和基于Kinect體感設(shè)備的人體運(yùn)動(dòng)數(shù)據(jù)采集方法。其三,本發(fā)明設(shè)計(jì) 了 Kinect體感設(shè)備和慣性傳感器的統(tǒng)一坐標(biāo)變換方法,并在統(tǒng)一坐標(biāo)系統(tǒng)下進(jìn)行數(shù)據(jù)融 合,得到人體統(tǒng)一骨架模型。其四,本發(fā)明面向變電站典型操作,實(shí)現(xiàn)了人體動(dòng)作的語義映 射和精細(xì)動(dòng)作識(shí)別,能夠?qū)崟r(shí)驅(qū)動(dòng)虛擬人模型進(jìn)行虛擬操作仿真。綜上所述,本發(fā)明有效解 決了現(xiàn)有運(yùn)動(dòng)捕捉系統(tǒng)數(shù)據(jù)處理算法復(fù)雜、計(jì)算量大、當(dāng)標(biāo)記點(diǎn)混淆或被遮擋時(shí)無法工作、 無法進(jìn)行人體定位和累計(jì)誤差控制的問題。
[0020] 本發(fā)明有效解決了現(xiàn)有運(yùn)動(dòng)捕捉系統(tǒng)數(shù)據(jù)處理算法復(fù)雜、計(jì)算量大、當(dāng)標(biāo)記點(diǎn)混 淆或被遮擋時(shí)無法工作、無法進(jìn)行人體定位和累計(jì)誤差控制的問題,適用于變電站仿真培 訓(xùn)。
【具體實(shí)施方式】
[0021] 光學(xué)和慣性體感數(shù)據(jù)融合的變電仿真人體運(yùn)動(dòng)捕捉方法,該方法包括如下步驟:
[0022] 1)通過Kinect體感設(shè)備和慣性傳感器各獲取一組人體運(yùn)動(dòng)數(shù)據(jù);
[0023] 2)對(duì)獲取的兩組人體運(yùn)動(dòng)數(shù)據(jù)進(jìn)行時(shí)間對(duì)準(zhǔn)和空間重投影,并利用卡爾曼濾波算 法對(duì)兩組人體運(yùn)動(dòng)數(shù)據(jù)進(jìn)行數(shù)據(jù)融合,由此得到高質(zhì)量的人體骨架模型;
[0024] 3)基于得到的人體骨架模型,計(jì)算關(guān)節(jié)相對(duì)角度、相對(duì)位置和運(yùn)動(dòng)速度,并提取人 體運(yùn)動(dòng)特征識(shí)別動(dòng)作,然后驅(qū)動(dòng)變電仿真虛擬環(huán)境中的虛擬人完成相應(yīng)的動(dòng)作。
[0025] 所述步驟1)包括如下步驟:
[0026] l.l)Kinect體感設(shè)備從深度數(shù)據(jù)流中識(shí)別人體輪廓,并將人體輪廓從深度圖像中 分咼出來;
[0027] 1.2)Kinect體感設(shè)備使用機(jī)器學(xué)習(xí)算法,用特征值記錄并識(shí)別人體的各種行為, 并通過特征值來快速分類定位人體的部位;
[0028] 1.3)Kinect體感設(shè)備利用自身提供的SDK中的骨骼跟蹤功能,獲取人體20個(gè)關(guān)節(jié) 點(diǎn)的位置數(shù)據(jù);
[0029] 1.4)Kinect體感設(shè)備根據(jù)自身內(nèi)置的算法對(duì)每個(gè)關(guān)節(jié)點(diǎn)的位置數(shù)據(jù)提供判斷標(biāo) 識(shí),并對(duì)每個(gè)關(guān)節(jié)點(diǎn)的跟蹤狀態(tài)進(jìn)行可信度判斷,由此對(duì)可信度低或者沒有識(shí)別的關(guān)節(jié)點(diǎn) 進(jìn)行標(biāo)記;
[0030] 1.5)在人體17個(gè)關(guān)節(jié)點(diǎn)佩戴慣性傳感器,并通過慣性傳感器獲取人體17個(gè)關(guān)節(jié)點(diǎn) 的姿態(tài)數(shù)據(jù);
[0031] 1.6)慣性傳感器通過無線通信將獲取的姿態(tài)數(shù)據(jù)發(fā)送至DSP處理板,DSP處理板繼 而通過RS232串口將姿態(tài)數(shù)據(jù)發(fā)送至計(jì)算機(jī)。
[0032] 所述步驟2)包括如下步驟:
[0033] 2.1)根據(jù)Kinect體感設(shè)備和慣性傳感器之間的空間關(guān)系得到空間轉(zhuǎn)換矩陣,并根 據(jù)空間轉(zhuǎn)換矩陣對(duì)獲取的兩組人體運(yùn)動(dòng)數(shù)據(jù)進(jìn)行空間轉(zhuǎn)換,由此將兩組人體運(yùn)動(dòng)數(shù)據(jù)統(tǒng)一 到人體空間坐標(biāo)系下;
[0034] 2.2)采用人體骨架模型的生理與運(yùn)動(dòng)約束條件,對(duì)人體空間坐標(biāo)系下的兩組人體 運(yùn)動(dòng)數(shù)據(jù)進(jìn)行檢驗(yàn),由此將不符合人體運(yùn)動(dòng)規(guī)則的錯(cuò)誤數(shù)據(jù)排除;
[0035] 2.3)采用基于關(guān)節(jié)點(diǎn)變權(quán)重計(jì)算的數(shù)據(jù)融合算法,對(duì)兩組人體運(yùn)動(dòng)數(shù)據(jù)進(jìn)行數(shù)據(jù) 融合,由此得到人體骨架模型;
[0036] 2.4)檢查人體骨架模型是否存在關(guān)節(jié)點(diǎn)的缺失;若存在關(guān)節(jié)點(diǎn)的缺失,則采用基 于改進(jìn)的卡爾曼濾波器預(yù)測缺失關(guān)節(jié)點(diǎn)的三維空間坐標(biāo)位置,由此將人體骨架模型補(bǔ)全; [0037] 2.5)采用人體骨架模型的生理與運(yùn)動(dòng)約束條件,對(duì)人體骨架模型進(jìn)行檢驗(yàn),由此 驗(yàn)證兩組人體運(yùn)動(dòng)數(shù)據(jù)的可靠性。
[0038] 所述步驟3)包括如下步驟:
[0039] 3.1)基于時(shí)空連續(xù)性的人體運(yùn)動(dòng)數(shù)據(jù)預(yù)處理;
[0040] 3.2)基于主成分分析方法的人體運(yùn)動(dòng)數(shù)據(jù)特征提取;
[0041] 3.3)基于統(tǒng)計(jì)學(xué)習(xí)方法的人體運(yùn)動(dòng)行為識(shí)別;
[0042 ] 3.4)變電站典型操作過程中的人體動(dòng)作的語義映射;
[0043] 3.5)實(shí)時(shí)人體運(yùn)動(dòng)捕捉數(shù)據(jù)驅(qū)動(dòng)的變電站虛擬操作。
[0044] 所述步驟1.5)中,慣性傳感器為MPU9150運(yùn)動(dòng)傳感器。
[0045] 所述步驟2.1)中,所述人體空間坐標(biāo)系包括16個(gè)肢體段,且16個(gè)肢體段由15個(gè)關(guān) 節(jié)相連;該人體空間坐標(biāo)系還設(shè)置有一個(gè)理論上的人體根關(guān)節(jié)Root joint,其包括3個(gè)平移 自由度和3個(gè)旋轉(zhuǎn)自由度,用于確定虛擬人的空間位置和朝向;
[0046] 所述步驟2.2)中,對(duì)兩組人體運(yùn)動(dòng)數(shù)據(jù)的檢驗(yàn)包括如下步驟:對(duì)每個(gè)關(guān)節(jié)點(diǎn)的兩 組人體運(yùn)動(dòng)數(shù)據(jù)進(jìn)行歐拉角計(jì)算,并判斷每個(gè)關(guān)節(jié)點(diǎn)的兩組人體運(yùn)動(dòng)數(shù)據(jù)的歐拉角是否超 出對(duì)應(yīng)的取值范圍;若超出對(duì)應(yīng)的取值范圍,則認(rèn)為該關(guān)節(jié)點(diǎn)的兩組人體運(yùn)動(dòng)數(shù)據(jù)錯(cuò)誤;具 體的取值范圍如表1所示:
[0047] 表1關(guān)節(jié)點(diǎn)歐拉角取值范圍
[0049] ;
[0050]所述步驟2.3)中,所述基于關(guān)節(jié)點(diǎn)變權(quán)重計(jì)算的數(shù)據(jù)融合算法包括如下步驟:首 先,為每個(gè)關(guān)節(jié)點(diǎn)設(shè)置一個(gè)大小為60的滑動(dòng)窗口,用于存放一段時(shí)間內(nèi)的跟蹤狀態(tài);當(dāng)新的 一幀人體運(yùn)動(dòng)數(shù)據(jù)到來時(shí),判斷各個(gè)關(guān)節(jié)點(diǎn)的跟蹤狀態(tài),并更新滑動(dòng)窗口,由此獲取各個(gè)關(guān) 節(jié)點(diǎn)在滑動(dòng)窗口中的數(shù)據(jù)可用性情況,并根據(jù)數(shù)據(jù)可用性情況計(jì)算出數(shù)據(jù)融合時(shí)各個(gè)關(guān)節(jié) 點(diǎn)所擁有的權(quán)重;具體計(jì)算公式如下:
[0052] 上式中:m為調(diào)節(jié)因子,用于調(diào)節(jié)權(quán)重的變化速度;r為關(guān)節(jié)點(diǎn)在滑動(dòng)窗口中的可用 數(shù)據(jù)幀數(shù);
[0053] 所述步驟2.4)中,所述基于改進(jìn)的卡爾曼濾波器包括如下步驟:首先,將關(guān)節(jié)點(diǎn)的 運(yùn)動(dòng)狀態(tài)參數(shù)設(shè)為某一時(shí)刻關(guān)節(jié)點(diǎn)所在的位置和運(yùn)動(dòng)速度,將系統(tǒng)狀態(tài)向量Xk表示為(Skx, Sky,Skz,Vkx,Vky,Vkz),將觀測狀態(tài)向量Yk表不為(aia,aKY,aKZ);然后,將系統(tǒng)狀態(tài)向量Xk和觀 測狀態(tài)向量Yk解耦到X軸、y軸和Z軸三個(gè)子系統(tǒng)上,并分別進(jìn)行濾波跟蹤,由此預(yù)測缺失關(guān) 節(jié)點(diǎn)的三維空間坐標(biāo)位置。
[0054] 所述步驟3.1)包括如下步驟:首先,當(dāng)有多個(gè)人體運(yùn)動(dòng)需要捕捉時(shí),采用冒泡排序 方法對(duì)每個(gè)人頭部的Z值進(jìn)行排序,并取頭部Z值最小的人作為操作者,然后對(duì)其進(jìn)行手勢 識(shí)別;手勢識(shí)別設(shè)定一個(gè)滑動(dòng)窗口,并保存連續(xù)20幀的人體運(yùn)動(dòng)數(shù)據(jù),然后提取手部的三維 坐標(biāo)進(jìn)行分析;而后,將滑動(dòng)窗口向后滑動(dòng),并將下一幀人體運(yùn)動(dòng)數(shù)據(jù)插入滑動(dòng)窗口的尾 部,由此將最前面一幀人體運(yùn)動(dòng)數(shù)據(jù)剔除,從而達(dá)到手勢識(shí)別的時(shí)空連續(xù)性;
[0055] 所述步驟3.2)包括如下步驟:
[0056] 3.2.1)設(shè)一幀人體運(yùn)動(dòng)數(shù)據(jù)有P維,并將其表示為X= (XI,X2,…,χρ)';總共收集η 幀數(shù)據(jù),并將