本發(fā)明屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,具體涉及一種虛擬舞蹈系統(tǒng)的學(xué)員動(dòng)作實(shí)時(shí)、自動(dòng)化、精準(zhǔn)的對(duì)比評(píng)價(jià)方法。
背景技術(shù):
虛擬舞蹈系統(tǒng)是為學(xué)員模仿虛擬教練動(dòng)作進(jìn)行舞蹈訓(xùn)練的裝置,一般包括基于標(biāo)準(zhǔn)動(dòng)作庫(kù)的虛擬教練系統(tǒng)、學(xué)員模仿舞蹈動(dòng)作的學(xué)習(xí)系統(tǒng)。模仿舞蹈動(dòng)作是否準(zhǔn)確、標(biāo)準(zhǔn)與一致等,需要結(jié)合動(dòng)作特征和裝置性能進(jìn)行比對(duì)分析。已有的舞蹈動(dòng)作評(píng)價(jià)方法主要包括專家評(píng)價(jià)法、自我評(píng)估法和錄像帶分析法等。其中,專家評(píng)價(jià)法是利用舞蹈動(dòng)作評(píng)價(jià)量表對(duì)學(xué)員的舞蹈動(dòng)作進(jìn)行打分,缺乏客觀性。自我評(píng)估法是學(xué)員利用舞蹈室鏡子或視頻對(duì)自己舞蹈動(dòng)作進(jìn)行評(píng)估的方法。因個(gè)人水平和能力限制,評(píng)價(jià)結(jié)果具有主觀性、局限性。錄像帶分析方法是評(píng)價(jià)者(一般是專家)利用動(dòng)作編碼表對(duì)舞蹈動(dòng)作行為進(jìn)行編碼、分析與評(píng)估的方法,具有一定客觀性、可觀測(cè)性。該方法在自動(dòng)評(píng)估、評(píng)價(jià)一致性和實(shí)時(shí)性等尚需要提高。
綜上,相關(guān)的評(píng)價(jià)方法難以滿足舞蹈動(dòng)作評(píng)價(jià)的自動(dòng)化、實(shí)時(shí)性和一致性等需求,尤其是難以解決因?qū)W員的身高不等、體型不同、身體特征各異等帶來(lái)的虛擬舞蹈動(dòng)作評(píng)價(jià)的精度問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種虛擬舞蹈系統(tǒng)的學(xué)員動(dòng)作實(shí)時(shí)、自動(dòng)化、精準(zhǔn)的對(duì)比評(píng)價(jià)方法。
本發(fā)明所采用的技術(shù)方案是:一種虛擬舞蹈系統(tǒng)的動(dòng)作評(píng)價(jià)方法,其特征在于,包括以下步驟:
步驟1:構(gòu)建舞蹈標(biāo)準(zhǔn)動(dòng)作庫(kù);
步驟2:構(gòu)建虛擬教練;
步驟3:舞蹈學(xué)員動(dòng)作實(shí)時(shí)捕捉與數(shù)字化;
步驟4:對(duì)比動(dòng)作幀定位對(duì)齊;
步驟5:舞蹈動(dòng)作評(píng)價(jià)得分。
本發(fā)明的有益效果是,本發(fā)明能對(duì)舞蹈學(xué)員的肢體動(dòng)作進(jìn)行實(shí)時(shí)識(shí)別和捕捉,并根據(jù)教練動(dòng)作庫(kù)的標(biāo)準(zhǔn)動(dòng)作,來(lái)對(duì)學(xué)員的學(xué)習(xí)情況進(jìn)行自動(dòng)化評(píng)價(jià),讓學(xué)員在自主學(xué)習(xí)條件下進(jìn)行有專業(yè)指導(dǎo)的舞蹈學(xué)習(xí)。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例的原理圖;
圖2為本發(fā)明實(shí)施例中舞蹈教學(xué)原理圖;
圖3為本發(fā)明實(shí)施例中定義的xml結(jié)構(gòu)描述結(jié)構(gòu)圖;
圖4為本發(fā)明實(shí)施例中標(biāo)準(zhǔn)動(dòng)作庫(kù)支持下的基于kinect的學(xué)員舞蹈動(dòng)作評(píng)價(jià)原理圖;
圖5為本發(fā)明實(shí)施例中kinect提供的人體骨骼結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例的滑動(dòng)窗口對(duì)比幀對(duì)齊示意圖;
圖7為本發(fā)明實(shí)施例的虛擬舞蹈動(dòng)作評(píng)價(jià)系統(tǒng)原理圖。
具體實(shí)施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及土家擺手舞動(dòng)作評(píng)價(jià)系統(tǒng)實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
請(qǐng)見(jiàn)圖1,本發(fā)明提供的一種虛擬舞蹈系統(tǒng)的動(dòng)作評(píng)價(jià)方法,包括以下步驟:
步驟1:構(gòu)建舞蹈標(biāo)準(zhǔn)動(dòng)作庫(kù);
根據(jù)舞蹈特點(diǎn),本發(fā)明采取了有標(biāo)記式的光學(xué)動(dòng)作捕捉系統(tǒng)phasespace。該系統(tǒng)屬于主動(dòng)式系統(tǒng),即系統(tǒng)的marker點(diǎn)由led組成,led粘貼于人體各個(gè)關(guān)節(jié)部位,包括頭部、右肩、右肘、右腕、右手、左肩、左肘、左腕、左手、肩關(guān)節(jié)中心、脊、髖關(guān)節(jié)中心、右髖、右膝蓋、右踝、右腳、左髖、左膝蓋、左踝、左腳等,led之間通過(guò)線纜連接,由綁在人體表面的電源裝置供電。光學(xué)動(dòng)捕后數(shù)據(jù)保存為dae格式,進(jìn)入motionbuilder,本發(fā)明的光學(xué)動(dòng)作捕捉系統(tǒng)phasespace能夠捕捉到的每個(gè)人物關(guān)節(jié)點(diǎn)有49個(gè)。為了便于舞蹈評(píng)價(jià),根據(jù)骨骼點(diǎn)的位置對(duì)應(yīng)關(guān)系,將捕捉的每幀49個(gè)光點(diǎn)與kinect捕捉的20個(gè)骨骼關(guān)節(jié)點(diǎn)相對(duì)應(yīng),將phasespace的49個(gè)光點(diǎn)對(duì)應(yīng)到kinect的20個(gè)骨骼點(diǎn)時(shí),從49個(gè)光點(diǎn)中取得對(duì)應(yīng)部位點(diǎn)或者臨近部位點(diǎn),與kinect捕捉到的20個(gè)關(guān)節(jié)點(diǎn)相對(duì)應(yīng),另外的關(guān)節(jié)點(diǎn)用于校正標(biāo)準(zhǔn)動(dòng)作。計(jì)算其19個(gè)骨骼向量的位置和余弦特征值信息,以xml的形式存儲(chǔ)于動(dòng)作庫(kù)中,形成舞蹈的標(biāo)準(zhǔn)動(dòng)作庫(kù)。
步驟2:構(gòu)建虛擬教練;
在舞蹈標(biāo)準(zhǔn)動(dòng)作庫(kù)基礎(chǔ)上,利用unity3d軟件建模虛擬教練,并將動(dòng)作綁定到虛擬教練模型上,形成虛擬教練。包括以下步驟:
步驟2.1:運(yùn)用光學(xué)動(dòng)作捕捉系統(tǒng)捕捉專業(yè)教練的專業(yè)舞蹈動(dòng)作數(shù)據(jù);
步驟2.2:對(duì)動(dòng)作捕捉數(shù)據(jù)進(jìn)行去噪優(yōu)化處理,刪除一些因設(shè)備問(wèn)題造成的跳幀數(shù)據(jù),調(diào)整不標(biāo)準(zhǔn)的動(dòng)作數(shù)據(jù);
步驟2.3:運(yùn)用自定義的xml格式對(duì)動(dòng)作捕捉數(shù)據(jù)進(jìn)行統(tǒng)一編碼表征,其中包括每一幀的20個(gè)骨骼關(guān)節(jié)點(diǎn)構(gòu)成的19段骨骼向量相對(duì)于unity世界坐標(biāo)系構(gòu)成的向量坐標(biāo)信息,和相對(duì)于世界坐標(biāo)系x,y,z軸的余弦特征值信息。
步驟2.4:構(gòu)建虛擬教練模型,進(jìn)行動(dòng)作綁定,形成虛擬教練。
步驟3:舞蹈學(xué)員動(dòng)作實(shí)時(shí)捕捉與數(shù)字化;
所述學(xué)員動(dòng)作實(shí)時(shí)捕捉模塊是運(yùn)用基于kinect動(dòng)作捕捉系統(tǒng)對(duì)學(xué)員動(dòng)作進(jìn)行捕捉和編碼;捕捉人體對(duì)應(yīng)的20個(gè)骨骼關(guān)節(jié)點(diǎn),根據(jù)20個(gè)相鄰骨骼關(guān)節(jié)點(diǎn)構(gòu)成19段骨骼向量。以1號(hào)骨骼向量,即頭部-肩關(guān)節(jié)中心向量為例,頭部坐標(biāo)為(x1,y1,z1)肩關(guān)節(jié)中心坐標(biāo)為(x2,y2,z2),頭部-肩關(guān)節(jié)中心向量則為(x2-x1,y2-y1,z2-z1),該向量參照kinect坐標(biāo)系的x、y、z軸的三個(gè)夾角分別為α、β和γ,對(duì)應(yīng)的余弦值為(cosα,cosβ,cosγ)。計(jì)算公式為:
每個(gè)骨骼向量的余弦特征值(cosα,cosβ,cosγ)作為特征向量存入一個(gè)1*3的矩陣中;一幀數(shù)據(jù)包含19處骨骼向量,可得一個(gè)19*3的特征向量矩陣;
步驟4:對(duì)比動(dòng)作幀定位對(duì)齊;
學(xué)員動(dòng)作的自動(dòng)化評(píng)價(jià)需要對(duì)學(xué)員動(dòng)作與教練動(dòng)作幀對(duì)齊。動(dòng)作幀對(duì)齊主要采用滑動(dòng)窗口法。其基本過(guò)程包括:
首先在教練標(biāo)準(zhǔn)動(dòng)作的幀序列和學(xué)員動(dòng)作的幀序列上分別建立大小為n和n的窗口,其中比對(duì)窗口是以當(dāng)前對(duì)比的教練幀為關(guān)聯(lián)幀,向前后各取(n-1)/2幀,構(gòu)成長(zhǎng)度為n的比對(duì)窗口;學(xué)員動(dòng)作窗口是以當(dāng)前學(xué)員動(dòng)作幀為末幀,向前取n-1幀,構(gòu)成長(zhǎng)度為n的學(xué)員動(dòng)作窗口;本實(shí)施例的幀率是30幀/s,對(duì)比頻率是6次/s,每次對(duì)比5幀;考慮學(xué)員動(dòng)作的滯后效應(yīng),學(xué)員動(dòng)作窗口的起始幀與比對(duì)窗口起始幀對(duì)齊,來(lái)計(jì)算學(xué)員動(dòng)作幀與教練動(dòng)作幀的差異度。并且,每滑動(dòng)一幀,就計(jì)算一次學(xué)員動(dòng)作幀與教練動(dòng)作幀的差異度。統(tǒng)計(jì)學(xué)員動(dòng)作窗口幀(n幀)的差異度累計(jì)平均值。最后,選擇整個(gè)滑動(dòng)過(guò)程中n-n個(gè)累計(jì)差異度值的最小值作為定位同步幀依據(jù)。
公式4-1中,dv(u,c)指學(xué)員與教練對(duì)應(yīng)幀中某一個(gè)骨骼向量的差異度,u(user)指的是用戶,c(choreographer)指的是教練,學(xué)員某段骨骼特征向量(cosα1,cosβ1,cosγ1),對(duì)應(yīng)教練某段骨骼特征向量(cosα2,cosβ2,cosγ2);公式4-2中,dfk定義為一幀的差異度,指學(xué)員與教練對(duì)應(yīng)幀的19段骨骼的加權(quán)差異度,其中加權(quán)系數(shù)wp在區(qū)間(0,1],可根據(jù)具體舞蹈的骨骼運(yùn)動(dòng)頻率統(tǒng)計(jì)得出;公式4-3中,dfi指學(xué)員窗口對(duì)應(yīng)的n幀差異度累計(jì)平均值。本發(fā)明取n-n次窗口移動(dòng)計(jì)算出的dfi數(shù)據(jù)的最小值作為定標(biāo)點(diǎn),確定對(duì)應(yīng)的幀為同步幀。
步驟5:舞蹈動(dòng)作評(píng)價(jià)得分;
確定同步幀后,進(jìn)一步計(jì)算對(duì)應(yīng)幀的學(xué)員動(dòng)作與教練動(dòng)作的差異度,并進(jìn)行得分判斷。
首先依據(jù)公式4-1,4-2計(jì)算出定位同步幀中學(xué)員與教練每個(gè)骨骼向量的差異度dv(u,c)和幀動(dòng)作的差異度dfk。
其次,依據(jù)骨骼向量的差異度dv(u,c)與門限值τ比較,判定學(xué)員的每幀的細(xì)微動(dòng)作是否標(biāo)準(zhǔn)。門限值τ可以經(jīng)驗(yàn)值取得,一般是平均差異度的60%來(lái)計(jì)算。如大于門限值,則動(dòng)作不標(biāo)準(zhǔn),需要給出提醒,如公式4-4所示。
dv(u,c)<τ4-4
最后,計(jì)算每個(gè)同步幀中學(xué)員動(dòng)作得分。其計(jì)算方法如公式4-5。選擇所有幀n總的差異量,統(tǒng)計(jì)其中的最大差異量dfmax(零分參照)和最小差異量dfmin(滿分參照);計(jì)算每幀的得分scorek后,計(jì)算n總幀得分的統(tǒng)計(jì)平均值作為最后得分score。
以下結(jié)合附圖和具體實(shí)施對(duì)本發(fā)明做進(jìn)一步的闡述。
本實(shí)施例在具體實(shí)施中,首選需要搭建虛擬舞蹈系統(tǒng);
參見(jiàn)圖2,本實(shí)施例的基本原理是舞蹈動(dòng)作教學(xué)中的演示-練習(xí)法,教練角色是在專業(yè)舞蹈教練動(dòng)作庫(kù)數(shù)據(jù)的驅(qū)動(dòng)下實(shí)現(xiàn)的,用以進(jìn)行動(dòng)作的展示、讓學(xué)員以此為參考,進(jìn)行舞蹈動(dòng)作的練習(xí)。本實(shí)施例的專業(yè)舞蹈教練的動(dòng)作庫(kù)xml存儲(chǔ)格式包括幀數(shù)、幀號(hào)、骨骼向量編號(hào)、骨骼向量的三維坐標(biāo)和余弦特征值,具體結(jié)構(gòu)如下圖3所示;與此同時(shí),該舞蹈動(dòng)作評(píng)價(jià)系統(tǒng)還應(yīng)具有教練的糾正反饋?zhàn)饔?,?duì)學(xué)員的舞蹈動(dòng)作進(jìn)行實(shí)時(shí)的動(dòng)作識(shí)別、捕捉、分析、評(píng)價(jià)與反饋,幫助學(xué)員進(jìn)行擺手舞練習(xí),其運(yùn)行分析的流程如圖4。
在搭建虛擬舞蹈系統(tǒng)后,就可以進(jìn)行獲取舞蹈學(xué)員的實(shí)時(shí)動(dòng)作數(shù)據(jù)和處理;
kinect用于對(duì)學(xué)員動(dòng)作進(jìn)行實(shí)時(shí)捕捉,kinect感應(yīng)器采用深度感應(yīng)技術(shù),內(nèi)置紅外(ir)發(fā)射器,彩色攝像機(jī)和一個(gè)麥克風(fēng)陣列,能夠感知人類的位置、動(dòng)作和聲音。kinect提供的人體對(duì)應(yīng)的骨骼向量位置如圖5所示,具體每個(gè)骨骼編號(hào)對(duì)應(yīng)的骨骼如表1所示,圖5的人體圖是后視模型,它的左右是與人眼看到的左右一致。
以土家音樂(lè)舞蹈為例,本實(shí)施例的處理方法如下:
1)運(yùn)用kinect實(shí)時(shí)獲取學(xué)員的每幀的每一個(gè)關(guān)節(jié)點(diǎn)坐標(biāo)數(shù)據(jù)。如第3幀的頭部關(guān)節(jié)點(diǎn)世界坐標(biāo)為(1.7,5.8,-1.2),肩關(guān)節(jié)中心點(diǎn)坐標(biāo)為(1.7,5.1,-1.2);
2)實(shí)時(shí)計(jì)算學(xué)員相鄰關(guān)節(jié)點(diǎn)的骨骼向量。如頭部-頸椎骨骼向量是(0,0.7,0);
3)計(jì)算每一段骨骼的夾角余弦特征值(cosα,cosβ,cosγ)作為特征向量存入一個(gè)1*3的矩陣中。如計(jì)算出頭部與肩關(guān)節(jié)中心的特征向量(1,cos0.7,1);
4)形成19處骨骼向量可得一個(gè)19*3的特征向量矩陣。
接著進(jìn)行舞蹈學(xué)員實(shí)時(shí)動(dòng)作幀在標(biāo)準(zhǔn)動(dòng)作庫(kù)中定位;
虛擬舞蹈系統(tǒng)中學(xué)員觀察教練動(dòng)作,并模仿進(jìn)行舞蹈學(xué)習(xí)。以一幀的19段骨骼向量為舞蹈動(dòng)作的基本單元,本實(shí)例的幀率為30幀/秒,由于人的視覺(jué)反應(yīng)時(shí)間為0.1-0.4秒,設(shè)定以5幀為一個(gè)動(dòng)作計(jì)算窗口,在25幀的教練標(biāo)準(zhǔn)動(dòng)作比對(duì)窗口中滑動(dòng),計(jì)算學(xué)員實(shí)時(shí)動(dòng)作幀在標(biāo)準(zhǔn)庫(kù)中對(duì)應(yīng)的對(duì)比幀,如圖6所示。例如,土家舞蹈系統(tǒng)中,以展翅舞蹈為例,根據(jù)該舞蹈各關(guān)節(jié)的使用頻率統(tǒng)計(jì)結(jié)果,其19段骨骼的權(quán)重如下表1所示,因?yàn)檎钩崾且环N典型的擺手舞,因此它的大部分動(dòng)作都涉及到了右肘-右腕,左肘-左腕和右膝蓋-右踝,左膝蓋-左踝的運(yùn)動(dòng),所以這四個(gè)骨骼向量的權(quán)重最大。本實(shí)施例利用上述公式4-1計(jì)算每一段骨骼向量對(duì)應(yīng)教練幀的差異度,運(yùn)用公式4-2,結(jié)合表1所示權(quán)重,計(jì)算滑動(dòng)窗口每一幀對(duì)應(yīng)的差異度,再運(yùn)用公式4-3,計(jì)算5幀的滑動(dòng)窗口20次滑動(dòng)對(duì)應(yīng)的平均差異度dfi分別是0.94,0.91,0.82,0.37,0.14,0.06,0.07,0.09,0.05,0.04,0.31,0.40,0.48,0.51,0.50,0.68,0.67,0.73,0.82,1.03;最后確定最佳匹配是差異度最小的0.04,也就是比對(duì)窗口的第10幀。即運(yùn)用比對(duì)窗口的第10幀作為當(dāng)前幀的比對(duì)幀,進(jìn)行動(dòng)作對(duì)比評(píng)價(jià)。到下一幀,再重復(fù)這一流程,找到對(duì)應(yīng)幀。
表1骨骼權(quán)重表
最后,結(jié)合已有擺手舞標(biāo)準(zhǔn)動(dòng)作庫(kù)計(jì)算舞蹈學(xué)員動(dòng)作的得分;
請(qǐng)見(jiàn)圖7,在學(xué)員實(shí)時(shí)動(dòng)作幀在標(biāo)準(zhǔn)動(dòng)作庫(kù)中定位的基礎(chǔ)上,對(duì)學(xué)員的每一幀動(dòng)作進(jìn)行實(shí)時(shí)定位與評(píng)價(jià),運(yùn)用公式4-4,計(jì)算每一段骨骼向量的差異度是否在規(guī)定的門限值內(nèi)。在該實(shí)例中,根據(jù)平均差異度的60%,dv(u,c)平均值為1.57,得出門限值τ=0.94,當(dāng)dv(u,c)>τ就提醒學(xué)員該部位不標(biāo)準(zhǔn),需要進(jìn)行調(diào)整。例如,d7(u,c)=1.07>0.94,系統(tǒng)界面會(huì)出現(xiàn)“左肘-左腕關(guān)節(jié)不標(biāo)準(zhǔn),請(qǐng)及時(shí)調(diào)整”的提醒。最后運(yùn)用公式4-5計(jì)算整段舞蹈的平均得分,如學(xué)員這段舞蹈的dfmin=0,dfmax=2,n總=417,運(yùn)用公式
本發(fā)明通過(guò)kinect體感交互設(shè)備,獲取學(xué)員在舞蹈過(guò)程中的20個(gè)骨骼關(guān)節(jié)點(diǎn)信息,運(yùn)用xml表征這20個(gè)骨骼關(guān)節(jié)點(diǎn)構(gòu)成的19段骨骼向量的向量坐標(biāo)值和余弦特征值信息;再運(yùn)用滑動(dòng)窗口方法實(shí)現(xiàn)學(xué)員與虛擬教練(基于標(biāo)準(zhǔn)動(dòng)作庫(kù))的舞蹈動(dòng)作幀同步,并利用余弦特征相似度實(shí)時(shí)分析學(xué)員動(dòng)作的準(zhǔn)確性。
應(yīng)當(dāng)理解的是,本說(shuō)明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。
應(yīng)當(dāng)理解的是,上述針對(duì)較佳實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn)為是對(duì)本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請(qǐng)求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。