本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別是涉及一種運(yùn)動(dòng)輔助訓(xùn)練方法、裝置及存儲(chǔ)裝置。
背景技術(shù):
深度相機(jī)捕獲場景的深度圖像中每一像素具有的深度信息為場景表面到深度相機(jī)的距離,從而根據(jù)深度圖像可以獲取場景目標(biāo)的位置信息。
在球類運(yùn)動(dòng)、田徑運(yùn)動(dòng)等運(yùn)動(dòng)的訓(xùn)練中,捕捉整體身體姿態(tài)、動(dòng)作以及身體各部位的運(yùn)動(dòng)軌跡形成電子數(shù)據(jù),對(duì)這些數(shù)據(jù)的分析,對(duì)提高運(yùn)動(dòng)訓(xùn)練效果具有重要意義?,F(xiàn)有技術(shù)通過佩戴可追蹤運(yùn)動(dòng)軌跡的電子設(shè)備來獲得數(shù)據(jù)。對(duì)現(xiàn)有技術(shù)的研究和實(shí)踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn)采用可追蹤運(yùn)動(dòng)軌跡的可穿戴電子設(shè)備采集數(shù)據(jù)并不全面,僅限于佩戴該電子設(shè)備的區(qū)域的運(yùn)動(dòng)數(shù)據(jù),而當(dāng)身體各部位均佩戴上該電子設(shè)備,則必然會(huì)影響運(yùn)動(dòng)的動(dòng)作,這均會(huì)導(dǎo)致分析結(jié)果不準(zhǔn)確,難以提高運(yùn)動(dòng)訓(xùn)練效果。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種運(yùn)動(dòng)輔助訓(xùn)練方法、裝置及存儲(chǔ)裝置,能夠解決現(xiàn)有技術(shù)存在分析結(jié)果不準(zhǔn)確的問題。
為解決上述技術(shù)問題,本發(fā)明采用的一個(gè)技術(shù)方案是:提供一種運(yùn)動(dòng)輔助訓(xùn)練方法,該方法包括以下步驟:獲取包含待分析人體運(yùn)動(dòng)動(dòng)作的深度圖像序列;根據(jù)所述深度圖像序列對(duì)所述待分析人體的身體各部位進(jìn)行標(biāo)記;根據(jù)所述深度圖像序列記錄運(yùn)動(dòng)中所述身體各部位的軌跡信息;將所述軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息進(jìn)行比較,其中,所述標(biāo)準(zhǔn)軌跡信息為做標(biāo)準(zhǔn)動(dòng)作時(shí)的人體的身體各部位的軌跡信息;輸出比較結(jié)果。
為解決上述技術(shù)問題,本發(fā)明采用的另一個(gè)技術(shù)方案是:提供一種運(yùn)動(dòng)輔助訓(xùn)練裝置,該裝置包括深度相機(jī)和處理器,所述深度相機(jī)與所述處理器連接;所述深度相機(jī)用于獲取包含待分析人體運(yùn)動(dòng)動(dòng)作的深度圖像序列;所述處理器用于根據(jù)所述深度圖像序列對(duì)所述待分析人體的身體各部位進(jìn)行標(biāo)記;根據(jù)所述深度圖像序列記錄運(yùn)動(dòng)中所述身體各部位的軌跡信息;將所述軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息進(jìn)行比較,其中,所述標(biāo)準(zhǔn)軌跡信息為做標(biāo)準(zhǔn)動(dòng)作時(shí)的人體的身體各部位的軌跡信息;輸出比較結(jié)果。
為解決上述技術(shù)問題,本發(fā)明采用的又一個(gè)技術(shù)方案是:一種存儲(chǔ)裝置,該存儲(chǔ)裝置存儲(chǔ)有程序數(shù)據(jù),所述程序數(shù)據(jù)能夠被執(zhí)行以實(shí)現(xiàn)上述方法。
本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明通過深度圖像序列進(jìn)行處理,跟蹤待分析人體的身體各部位的運(yùn)動(dòng)軌跡以獲取該軌跡信息,并將該軌跡信息與標(biāo)準(zhǔn)軌跡信息進(jìn)行比較之后,即將待分析的動(dòng)作模式與標(biāo)準(zhǔn)動(dòng)作模式比較之后,提出運(yùn)動(dòng)動(dòng)作的調(diào)整建議,能夠獲取人體的全面的信息,使得對(duì)該運(yùn)動(dòng)的分析更加全面、準(zhǔn)確,同時(shí)還不影響待分析人體的動(dòng)作,提高了運(yùn)動(dòng)訓(xùn)練效果。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明提供的一種運(yùn)動(dòng)輔助訓(xùn)練方法實(shí)施例的流程示意圖;
圖2是本發(fā)明提供的一種運(yùn)動(dòng)輔助訓(xùn)練方法另一實(shí)施例的流程示意圖;
圖3是圖2中步驟s22的流程示意圖;
圖4是本發(fā)明提供的一種運(yùn)動(dòng)輔助訓(xùn)練方法又一實(shí)施例中的步驟s23’-s25’流程示意圖;
圖5是圖4中步驟s23’的流程示意圖;
圖6是本發(fā)明提供的一種運(yùn)動(dòng)輔助訓(xùn)練方法又一實(shí)施例性中膝蓋關(guān)節(jié)的質(zhì)心與人體中心的空間位置關(guān)系的示意圖;
圖7是圖4中步驟s26’的流程示意圖;
圖8是本發(fā)明運(yùn)動(dòng)輔助訓(xùn)練裝置實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參閱圖1,圖1是本發(fā)明提供的一種運(yùn)動(dòng)輔助訓(xùn)練方法實(shí)施例的流程示意圖。圖1所示的運(yùn)動(dòng)輔助訓(xùn)練方法包括步驟:
s11、獲取包含待分析人體運(yùn)動(dòng)動(dòng)作的深度圖像序列。
其中,待分析人體運(yùn)動(dòng)動(dòng)作即該人體運(yùn)動(dòng)中的某個(gè)動(dòng)作,該動(dòng)作需要被分析以使用戶知道該動(dòng)作是否符合標(biāo)準(zhǔn)動(dòng)作的要求。例如,可以是深蹲運(yùn)動(dòng)的動(dòng)作、俯臥撐的動(dòng)作、仰臥起坐的動(dòng)作等等。深度圖像不僅包括空間物體的像素信息,還包括每一像素信息的深度信息,即空間內(nèi)物體到深度相機(jī)之間的距離信息。深度圖像序列可以通過深度相機(jī)來獲取,深度圖像序列則是指在一個(gè)時(shí)間段內(nèi)的連續(xù)的深度圖像,即采用深度相機(jī)追蹤拍攝該人體進(jìn)行整個(gè)動(dòng)作的過程。
s12、根據(jù)深度圖像序列對(duì)待分析人體的身體各部位進(jìn)行標(biāo)記。
具體地,待分析人體的身體各部位可以是頭部、肩頸、軀干、四肢、手部、足部等部位,以及膝、肘、腕、踝、髖關(guān)節(jié)等關(guān)節(jié)。通過對(duì)深度圖像序列的分析,在深度圖像序列中識(shí)別出待分析人體的身體各部位,并對(duì)該身體各部位進(jìn)行標(biāo)記。
s13、根據(jù)深度圖像序列記錄運(yùn)動(dòng)中身體各部位的軌跡信息。
步驟s13中,在深度圖像序列中跟蹤標(biāo)記好的身體各部位,從而獲取該身體各部位的軌跡信息,并記錄該軌跡信息。
s14、將軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息進(jìn)行比較,其中,標(biāo)準(zhǔn)軌跡信息為做標(biāo)準(zhǔn)動(dòng)作時(shí)的人體的身體各部位的軌跡信息。
標(biāo)準(zhǔn)軌跡信息的獲取方式可以與步驟s11-s13中待分析人體的身體各部位的軌跡信息的獲取方式相同。本發(fā)明中,可以在初次使用該運(yùn)動(dòng)輔助訓(xùn)練方法前,獲取標(biāo)準(zhǔn)軌跡信息并保存,以在步驟s14中調(diào)用來進(jìn)行比較。
s15、輸出比較結(jié)果。
步驟s15中,比較結(jié)果包括該待分析人體的動(dòng)作為標(biāo)準(zhǔn)動(dòng)作,或者該待分析人體的動(dòng)作不是標(biāo)準(zhǔn)動(dòng)作,在一些實(shí)施例中,還可以進(jìn)一步輸出調(diào)整建議,包括調(diào)整的部位和調(diào)整方向,例如,左手需要再向下移動(dòng),雙足部間距調(diào)小,雙膝位置不超過足尖等等,在另一些實(shí)施例中,還可以進(jìn)一步明確提出移動(dòng)的距離,例如,左手向下移動(dòng)5cm等等。
其中,比較結(jié)果可以通過語音或者顯示屏顯示的方式輸出,顯示屏顯示可以通過文字或者圖像的方式顯示,當(dāng)然,還可以結(jié)合上述各方式進(jìn)行輸出。從而提示用戶調(diào)整其姿態(tài)。
區(qū)別于現(xiàn)有技術(shù),本發(fā)明通過深度圖像序列進(jìn)行處理,跟蹤待分析人體的身體各部位的運(yùn)動(dòng)軌跡以獲取該軌跡信息,并將該軌跡信息與標(biāo)準(zhǔn)軌跡信息進(jìn)行比較之后,即將待分析的動(dòng)作模式與標(biāo)準(zhǔn)動(dòng)作模式比較之后,提出運(yùn)動(dòng)動(dòng)作的調(diào)整建議,能夠獲取人體的全面的信息,使得對(duì)該運(yùn)動(dòng)的分析更加全面、準(zhǔn)確,同時(shí)還不影響待分析人體的動(dòng)作,提高了運(yùn)動(dòng)訓(xùn)練效果。
請(qǐng)參閱圖2,圖2是本發(fā)明提供的一種運(yùn)動(dòng)輔助訓(xùn)練方法另一實(shí)施例的流程示意圖。
s21、獲取包含待分析人體運(yùn)動(dòng)動(dòng)作的深度圖像序列。
s22、根據(jù)深度圖像序列對(duì)待分析人體的身體各部位進(jìn)行標(biāo)記。
具體地,如圖3所示,圖3是圖2中步驟s22的流程示意圖。步驟s22包括:
s221、去除深度圖像系列中的背景。
例如,可以在深度圖中初步確定一個(gè)斑塊(blob,即,具有相似值的像素的連接組)作為對(duì)象的身體,然后從該斑塊中去除具有明顯不同深度值的其它斑塊。以這種方式初步確定的斑塊通常必須具有某個(gè)最小尺寸。然而,為此,斑塊邊緣處的像素坐標(biāo)之間的簡單的歐幾里德距離不給出該尺寸的準(zhǔn)確測量。該不準(zhǔn)確的原因是,與具有給定實(shí)際尺寸的物體相對(duì)應(yīng)的斑塊的尺寸(以像素為單位)隨著該物體與設(shè)備的距離的變化而增加或減小。
因此,為了確定物體的實(shí)際尺寸,首先使用下面的公式將物體的(x,y,深度)坐標(biāo)變換為“現(xiàn)實(shí)世界”坐標(biāo)(xr,yr,深度):
xr=(x-fovx/2)*像素尺寸*深度/參考深度
yr=(y-fovy/2)*像素尺寸*深度/參考深度
這里,fovx和fovy為x和y方向上的深度圖的視野(以像素為單位)。像素尺寸為,在離繪圖設(shè)備給定距離(參考深度)處像素所對(duì)著的長度。然后,斑塊的尺寸可以通過求該斑塊邊緣的現(xiàn)實(shí)世界坐標(biāo)之間的歐幾里德距離來實(shí)際確定。
因此,可以通過識(shí)別具有所要求的最小尺寸的斑塊來除去深度圖像中的背景,其中,該斑塊在場景中的各斑塊中間具有最小平均深度值??梢约僭O(shè),距離深度相機(jī)最近的斑塊為人體,深度比該平均深度值大了至少某個(gè)閾值的所有像素都被假定屬于背景物體,并將這些像素的深度值設(shè)置為零值。其中,上述閾值可以根據(jù)實(shí)際需要來確定。此外,在一些實(shí)施例中,還可以將具有明顯小于斑塊的平均深度值的深度值的各像素置零。另外,還可以預(yù)先設(shè)定一個(gè)最大深度,從而忽略超過該最大深度的物體。
在一些實(shí)施例中,還可以動(dòng)態(tài)地確定深度值,超過該深度值的話,物體就從深度圖中去除。為此,假設(shè)場景中的物體正在移動(dòng)。因此,在某最小數(shù)目個(gè)幀中深度沒有變化的任何像素都被假設(shè)是背景物體。深度值大于該靜態(tài)深度值的像素被認(rèn)為是屬于背景物體的,因此都被置零。開始,場景中的所有像素可以都被定義為靜態(tài),或者場景中的所有像素可以都被定義為非靜態(tài)的。在這兩種情形中,一旦對(duì)象開始運(yùn)動(dòng),就可以動(dòng)態(tài)生成實(shí)際的深度過濾器。
當(dāng)然,還可以通過現(xiàn)有技術(shù)中已知的其它方法來除去深度圖像中的背景。
s222、獲取深度圖像序列中的待分析人體的輪廓。
在除去背景之后,可以通過邊緣檢測方法在深度圖中找出身體的外部輪廓。本實(shí)施例中,采用兩步閾值化機(jī)制來找出人體的輪廓:
首先,遍歷深度圖像中與人形相對(duì)應(yīng)的斑塊中的所有像素,并且,如果任何給定像素具有有效深度值,并且如果該像素與其四個(gè)相連的鄰近像素(右、左、上和下)中的至少一個(gè)像素之間的深度值之差大于第一閾值,則將其標(biāo)記為輪廓位置。(其中,有效深度值和零值之間的差被認(rèn)為是無窮大)。
然后,在完成了上一步驟之后,再次遍歷該斑塊,并且如果在任何像素(該像素還沒有被標(biāo)記為輪廓位置)的八個(gè)相連的鄰近像素之中有輪廓像素,并且如果當(dāng)前像素和剩下的相連鄰近位置中的至少一個(gè)像素之間的深度值之差大于第二閾值(低于第一閾值),則將其標(biāo)記為輪廓位置。
s223、根據(jù)輪廓識(shí)別待分析人體的軀干。
在找出人體的外輪廓之后,再識(shí)別身體的各個(gè)部位,例如,頭部、軀干和四肢。
先旋轉(zhuǎn)深度圖像,使得身體輪廓處于豎直位置。該轉(zhuǎn)動(dòng)的目的是為了通過將身體的縱軸與y坐標(biāo)(垂直)軸對(duì)齊來簡化下述步驟中的計(jì)算。可選擇地,下述計(jì)算可以相對(duì)于身體的縱軸來執(zhí)行,而不需要進(jìn)行該轉(zhuǎn)動(dòng),如本領(lǐng)域技術(shù)人員所了解的。
在識(shí)別身體的各個(gè)部位之前,可以先找出身體的3d軸。具體地,找出身體的3d軸可以采用以下方法:
將原始深度圖像下采樣(down-sample)為節(jié)點(diǎn)柵格,其中,在x方向和y方向上隔n個(gè)像素取一個(gè)節(jié)點(diǎn)?;谝怨?jié)點(diǎn)為中心的n×n方塊中的深度值來計(jì)算每個(gè)節(jié)點(diǎn)的深度值。如果方塊中多于半數(shù)像素具有零值,則將相應(yīng)節(jié)點(diǎn)設(shè)置為零值。否則,將該節(jié)點(diǎn)設(shè)置為n×n方塊中的有效深度值的平均值。
然后,可以基于鄰近節(jié)點(diǎn)的值來進(jìn)一步“清理”該下采樣的深度圖像:如果給定節(jié)點(diǎn)的大部分相鄰節(jié)點(diǎn)具有零值,則將該節(jié)點(diǎn)也設(shè)置為零值(即使在前述步驟之后它具有有效的深度值)。
在上述步驟完成時(shí),找出下采樣的圖中所剩節(jié)點(diǎn)的縱軸。為此,可以進(jìn)行線性最小二乘擬合來找出最擬合各節(jié)點(diǎn)的線??蛇x擇地,可以擬合圍繞各節(jié)點(diǎn)的一個(gè)橢圓并找出其主軸。
在找出身體的3d軸之后,通過在平行和垂直于縱軸的方向上測量身體輪廓的厚度來識(shí)別身體的軀干。為此,可以在身體輪廓的周圍限定約束框,然后可以對(duì)該框中的像素值進(jìn)行二值化:將具有零深度值的像素設(shè)為0,而將具有非零深度值的像素設(shè)為1。
然后,通過沿著相應(yīng)的垂直線對(duì)二進(jìn)制像素值進(jìn)行相加,對(duì)框內(nèi)的每個(gè)x值計(jì)算縱向厚度值,并通過沿著相應(yīng)的水平線對(duì)二進(jìn)制像素值進(jìn)行加和,對(duì)每個(gè)y值計(jì)算橫向厚度值。對(duì)所得到的值應(yīng)用閾值,以便識(shí)別沿著哪些條垂直線和水平線輪廓相對(duì)厚。
當(dāng)輪廓某一水平區(qū)域的橫向厚度超過x閾值,某一垂直區(qū)域的縱向厚度超過y閾值時(shí),該水平區(qū)域和垂直區(qū)域的交集可以確定為軀干。
s224、根據(jù)軀干識(shí)別待分析人體的身體各部位。
在確定了軀干之后,可以基于幾何考慮來識(shí)別身體的頭部和四肢。手部手臂是連接到軀干區(qū)域的左側(cè)和右側(cè)的區(qū)域;頭部是軀干區(qū)域上方的連接區(qū)域;腿部是軀干區(qū)域下方的連接區(qū)域。還可以將軀干區(qū)域的左上角和右上角初步識(shí)別為肩膀。
s225、對(duì)身體各部位進(jìn)行標(biāo)記。
對(duì)身體各部位進(jìn)行標(biāo)記以便于對(duì)該身體各部位的運(yùn)動(dòng)軌跡進(jìn)行跟蹤。
在另一個(gè)實(shí)施例中,識(shí)別待分析人體的身體各部位還可以通過以下三個(gè)步驟實(shí)現(xiàn):
(一)人體分割。本實(shí)施例采用幀間差分和背景差分相結(jié)合起來的方法來分割運(yùn)動(dòng)人體,預(yù)先選取rgbd圖像中的一幀作為背景幀,建立各像素點(diǎn)的高斯模型,再運(yùn)用幀間差分法對(duì)相鄰兩幀圖像進(jìn)行差分處理,區(qū)分出背景點(diǎn)和變化的區(qū)域(在當(dāng)前幀中變化的區(qū)域包括顯露區(qū)和運(yùn)動(dòng)物體),然后將變化區(qū)域與背景幀的對(duì)應(yīng)區(qū)域進(jìn)行模型擬合區(qū)分出顯露區(qū)和運(yùn)動(dòng)物體,最后在運(yùn)動(dòng)物體中去除陰影,這樣將不帶陰影的運(yùn)動(dòng)物體分割出來。背景更新時(shí)將幀間差分確定為是背景的點(diǎn),則以一定的規(guī)則進(jìn)行更新;背景差分時(shí)確定為是顯露區(qū)的點(diǎn),則以較大的更新率更新背景幀,運(yùn)動(dòng)物體對(duì)應(yīng)的區(qū)域不進(jìn)行更新。該法可以得到較理想的分割目標(biāo)。
(二)輪廓提取和分析。在獲取二值化后的圖像以后,利用一些經(jīng)典的邊緣檢測算法來獲取輪廓。例如采用canny算法,canny邊緣檢測算子充分反映了最優(yōu)邊緣檢測器的數(shù)學(xué)特性,對(duì)于不同類型的邊緣,均具有良好的信噪比,優(yōu)異的定位性能,對(duì)單一邊緣產(chǎn)生多個(gè)響應(yīng)的低概率性和對(duì)虛假邊緣響應(yīng)的最大抑制能力,利用分割算法獲得光流分割場后,在這些分割區(qū)域里包含所有我們所關(guān)心的運(yùn)動(dòng)目標(biāo)。因此,將在這些分割區(qū)域里利用canny算子提取邊緣,一方面可以大大限制背景干擾,另一方面可以有效地提高運(yùn)行的速度。
(三)關(guān)節(jié)點(diǎn)自動(dòng)標(biāo)記。通過差分法得到了分割出運(yùn)動(dòng)目標(biāo),canny邊緣檢測算子提取輪廓后,借助maylork.leungandyee-hongyang的2d帶狀模型(ribbonmodel)對(duì)人體目標(biāo)進(jìn)一步分析。該模型將人體正面劃分成不同的區(qū)域,例如,用5個(gè)u形區(qū)域來構(gòu)造人體,該5個(gè)u形區(qū)域分別表示人體的頭部以及四肢。
這樣,通過尋找5個(gè)u形狀的身體端點(diǎn),就可確定身體的大致位置,在已提取的輪廓的基礎(chǔ)上,通過矢量輪廓壓縮,來提取需要的信息,保留最主要的人體四肢的特征,將人體輪廓壓縮成一個(gè)固定的形狀,例如,使得輪廓具有固定的8個(gè)端點(diǎn)和5個(gè)u形點(diǎn)和3個(gè)倒u形點(diǎn),這樣明顯的特征能方便計(jì)算輪廓。這里可以使用輪廓上相鄰端點(diǎn)的距離算法來壓縮輪廓,通過迭代處理使得輪廓壓縮為8個(gè)端點(diǎn)。
在獲取了壓縮輪廓后采用如下算法就可以對(duì)身體各部位進(jìn)行自動(dòng)標(biāo)注:
(1)確定u形狀的身體端點(diǎn)。設(shè)定某一個(gè)參考長度m,大于m的矢量可以認(rèn)為它是身體輪廓的一部分,小于它則忽略。按照矢量化后的輪廓從某一點(diǎn)開始尋找,找到一個(gè)大于m的矢量記為mi,找到下一個(gè)的矢量記為mj,比較mi到mj的夾角,如果夾角在某一范圍內(nèi)(0~90°)(注意這里角度為正,表示它是凸的),則認(rèn)為它們是u端點(diǎn),記錄這兩個(gè)矢量,找到一個(gè)u端點(diǎn)。如此直到找出5個(gè)u端點(diǎn)。
(2)確定三個(gè)倒u形狀的端點(diǎn)。同步驟(1),只要把夾角條件正換為負(fù)。
(3)根據(jù)u及倒u的端點(diǎn)很容易獲得頭部,手,腳的位置。根據(jù)身體的生理形狀,就可以確定各個(gè)關(guān)節(jié)點(diǎn),利用手臂與身體交角部分、頭部與腿部交角部分,可以分別確定軀干的寬度和長度;然后利用脖子、腰位置分別占軀干比率0.75、0.3,肘部位于肩膀與手的中點(diǎn),膝蓋位于腰部與腳的中點(diǎn)。這樣身體各部位大致位置可以定義出來。
s23、根據(jù)深度圖像序列記錄運(yùn)動(dòng)中身體各部位的軌跡信息。
記錄身體各部位的運(yùn)動(dòng)軌跡的方法有多種,例如,oghms(orthogonalgaussian-hermitemoments)檢測法,其基本原理是:通過比較在時(shí)間上連續(xù)的圖像幀之間對(duì)應(yīng)象素值的變化程度來判斷該像素點(diǎn)是否屬于前景運(yùn)動(dòng)區(qū)域。
用{f(x,y,t)|t=0,1,2…}表示輸入的一組圖像序列,f(x,y,t)代表t時(shí)刻的圖像,x,y代表了圖像上像素點(diǎn)的坐標(biāo),設(shè)gaussian函數(shù)為g(x,σ),bn(t)為g(x,σ)與hermite多項(xiàng)式的乘積,則n階oghms可表示為:
其中ai由gaussian函數(shù)的標(biāo)準(zhǔn)偏差σ確定。根據(jù)卷積運(yùn)算的性質(zhì),n階oghms可看成是圖像序列函數(shù)在時(shí)間上的各階導(dǎo)數(shù)之和與gaussian函數(shù)的卷積。某點(diǎn)導(dǎo)數(shù)值越大,則表示隨時(shí)間變化該點(diǎn)位置上的像素值變化也越大,說明該點(diǎn)應(yīng)該屬于運(yùn)動(dòng)區(qū)域塊,這為oghms方法能檢測出運(yùn)動(dòng)物體提供了理論依據(jù)。另外,從式(1)中可看出,oghms的基函數(shù)為
又如,時(shí)間差分法,時(shí)間差分法(temporaldifference)是利用時(shí)間上連續(xù)的圖像序列前后幾個(gè)相鄰幀,基于像素的時(shí)間差分,通過閾值化提取圖像中的運(yùn)動(dòng)區(qū)域。早期的方法是利用相鄰兩幀差分獲得運(yùn)動(dòng)物體,如設(shè)fk是圖像序列中第k幀圖像灰度值數(shù)據(jù),fk+1表示圖像序列中第k+1幀圖像灰度值數(shù)據(jù),則時(shí)間相鄰兩幀圖像的差分圖像定義為:
其中t為閾值。如果差值大于t,則說明該區(qū)域的灰度變化較大,即需要檢測出的運(yùn)動(dòng)目標(biāo)區(qū)域。
又如,光流法(opticalflow),光流法基于以下假設(shè):圖像灰度的變化完全是由于目標(biāo)或背景的運(yùn)動(dòng)引起的。即,目標(biāo)和背景的灰度不隨時(shí)間變化?;诠饬鞣椒ǖ倪\(yùn)動(dòng)檢測,就是利用運(yùn)動(dòng)物體隨時(shí)間變化在圖像中表現(xiàn)為速度場的特性,根據(jù)一定的約束條件估算出運(yùn)動(dòng)所對(duì)應(yīng)的光流,其優(yōu)點(diǎn)是對(duì)目標(biāo)的幀間運(yùn)動(dòng)限制較少,可處理較大的幀間位移。
再如,背景減除法(backgroundsubtraction),其基本原理是首先構(gòu)建一個(gè)背景模型圖像,然后用當(dāng)前幀圖像與背景幀圖像做差分,通過閾值化差分結(jié)果檢測出運(yùn)動(dòng)目標(biāo)。假設(shè)t時(shí)刻背景幀圖像為f0,對(duì)應(yīng)當(dāng)前幀圖像為ft,則當(dāng)前幀和背景幀的差分可表示為:
假設(shè)當(dāng)前幀圖像與背景幀圖像相應(yīng)像素的灰度值差分大于閾值,則所得到的二值圖像中對(duì)應(yīng)的值為1,即認(rèn)定該區(qū)域?qū)儆谶\(yùn)動(dòng)目標(biāo)。
在其它一些實(shí)施例中,還可以通過hog-hof描述子對(duì)待分析人體的身體各部位的運(yùn)動(dòng)軌跡進(jìn)行描述而得到軌跡信息。
s24、獲取做標(biāo)準(zhǔn)動(dòng)作時(shí)的人體的身體各部位的標(biāo)準(zhǔn)軌跡信息。
可以采用類似于步驟s23的方法來獲取標(biāo)準(zhǔn)動(dòng)作時(shí)人體的身體各部位的標(biāo)準(zhǔn)軌跡信息。
s25、保存標(biāo)準(zhǔn)軌跡信息。
保存該標(biāo)準(zhǔn)軌跡信息以便于步驟s26調(diào)用來進(jìn)行比較。
其中,步驟s24-s25可以在步驟s21-s23之前或之后,或者也可以在步驟s21-s23任意兩個(gè)步驟之間,只有在s26前即可。
s26、將軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息進(jìn)行比較,其中,標(biāo)準(zhǔn)軌跡信息為做標(biāo)準(zhǔn)動(dòng)作時(shí)的人體的身體各部位的軌跡信息。
步驟s26是將待分析人體的運(yùn)動(dòng)模式與標(biāo)準(zhǔn)運(yùn)動(dòng)模式進(jìn)行比較,數(shù)據(jù)化之后表現(xiàn)為待分析人體的身體各部位的軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息進(jìn)行比較。
比較的方法也有多種,例如:通過計(jì)算mahalanobis距離來進(jìn)行比較。mahalanobis距離的計(jì)算公式如下:γ2=f-μrtc-1(f-μr)
其中γ是mahalanobis距離,f是肢體動(dòng)作運(yùn)動(dòng)歷史圖像的不變矩特征向量,μr是已訓(xùn)練的特征向量的均值向量,c是已訓(xùn)練的特征向量集的協(xié)方差矩陣。
識(shí)別過程中,可以利用經(jīng)典的adaboost算法根據(jù)每個(gè)不變矩的階數(shù)確定一個(gè)閾值,然后通過mhalanobis距離來衡量新輸入的肢體動(dòng)作和已訓(xùn)練得到的肢體動(dòng)作模板之間的相似性,只要計(jì)算出的mahalanobis距離在規(guī)定的預(yù)設(shè)閾值范圍之內(nèi)都可以認(rèn)為是匹配成功。
若軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息的差別在預(yù)設(shè)閾值的范圍內(nèi),則判斷軌跡信息為標(biāo)準(zhǔn)軌跡信息。
若軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息的差別不在預(yù)設(shè)閾值的范圍內(nèi),則判斷軌跡信息不是標(biāo)準(zhǔn)軌跡信息。
s27、輸出比較結(jié)果。
本實(shí)施例中,不管待分析人體的動(dòng)作是否達(dá)到標(biāo)準(zhǔn)動(dòng)作的要求,均會(huì)輸出結(jié)果以提示用戶。
當(dāng)待分析人體的動(dòng)作達(dá)到標(biāo)準(zhǔn)動(dòng)作的要求時(shí),提示用戶其動(dòng)作為標(biāo)準(zhǔn)動(dòng)作。當(dāng)待分析人體的動(dòng)作未達(dá)到標(biāo)準(zhǔn)動(dòng)作的要求時(shí),提示用戶其動(dòng)作不是標(biāo)準(zhǔn)動(dòng)作,同時(shí),提示用戶關(guān)于如何將動(dòng)作調(diào)整為標(biāo)準(zhǔn)動(dòng)作的調(diào)整建議。例如,待分析人體的深蹲動(dòng)作過程中,雙膝的運(yùn)動(dòng)軌跡過大,導(dǎo)致雙膝位置超出了足尖,則提示用戶控制雙膝的運(yùn)動(dòng),使得雙膝的位置不超過足尖,等等。
如圖4所示,圖4是本發(fā)明提供的一種運(yùn)動(dòng)輔助訓(xùn)練方法又一實(shí)施例中的步驟s23’-s25’流程示意圖。其中,s23’為在步驟s23內(nèi)新增的方法,步驟s24’為在步驟s24內(nèi)新增的方法,步驟s25’為在步驟s25內(nèi)新增的方法。
具體地,上述步驟s23還包括:
s23’、記錄運(yùn)動(dòng)中重復(fù)動(dòng)作開始和結(jié)束時(shí)待分析人體的人體姿態(tài)信息。
在一個(gè)實(shí)施例中,人體姿態(tài)信息可以是身體各部位與人體參考點(diǎn)之間的相對(duì)位置關(guān)系。具體地,是身體各部位的質(zhì)心與人體中心之間的相對(duì)位置關(guān)系,更具體地,包括身體各部位的質(zhì)心到人體中心的歐式距離和余弦距離。
具體地,在上述步驟s22中,識(shí)別出人體的軀干和身體各部位之后,即可結(jié)合軀干和身體各部位獲取人體中心。
人體中心為深度圖像中人體的幾何中心。當(dāng)軀干和人體的身體各部位均識(shí)別出來之后,即可通過深度圖像的整個(gè)人體的輪廓,即三維人體邊緣的外邊緣值的中值來確定人體中心。
請(qǐng)參閱圖5,圖5是圖4中步驟s23’的流程示意圖。步驟s23’包括:
s231’、獲取人體中心的第一坐標(biāo)值。
本實(shí)施例中,人體中心的第一坐標(biāo)值為人體中心在深度相機(jī)的相機(jī)坐標(biāo)系中的坐標(biāo)值。
例如,深蹲動(dòng)作的結(jié)束姿態(tài)中,人體中心點(diǎn)a的第一坐標(biāo)值為(x1,y1,z1)。
s232’、獲取身體各部位的質(zhì)心及身體各部位的質(zhì)心的第二坐標(biāo)值。
具體而言,當(dāng)身體各部位均識(shí)別出來之后,可以確定身體每個(gè)區(qū)域的質(zhì)心。其中,區(qū)域的質(zhì)心指該區(qū)域的代表深度或位置。為此,例如,可以生成區(qū)域內(nèi)深度值的直方圖,并將具有最高頻率的深度值(或具有最高頻率的兩個(gè)或多個(gè)深度值的平均值)設(shè)為該區(qū)域的質(zhì)心。確定了身體各部位的質(zhì)心之后,即可確定身體各部位的質(zhì)心在相機(jī)坐標(biāo)系中的坐標(biāo)。
值得一提的是,本發(fā)明中的質(zhì)心是指通過深度圖像處理所獲取的質(zhì)心,而并非物理質(zhì)心。本發(fā)明的質(zhì)心可以通過質(zhì)心法獲取,也可以通過其它方法獲取,本發(fā)明不做限定。
舉例而言,深蹲動(dòng)作的結(jié)束姿態(tài)中,膝蓋關(guān)節(jié)的質(zhì)心b的第二坐標(biāo)值為(x2,y2,z2)。
s233、根據(jù)第一坐標(biāo)值和第二坐標(biāo)值計(jì)算身體各部位的質(zhì)心與人體中心的歐式距離和余弦距離,以形成該人體的身體姿態(tài)的待分析向量。
余弦距離,也稱為余弦相似度,是用向量空間中兩個(gè)向量夾角的余弦值作為衡量兩個(gè)個(gè)體間差異的大小的度量。機(jī)器學(xué)習(xí)中借用這一概念來衡量樣本向量之間的差異。其中,兩個(gè)向量的余弦距離可以用它們之間夾角的余弦值來表示。
舉例而言,如圖6所示,圖6是本發(fā)明提供的一種運(yùn)動(dòng)輔助訓(xùn)練方法又一實(shí)施例性中膝蓋關(guān)節(jié)的質(zhì)心與人體中心的空間位置關(guān)系的示意圖。在獲取第一坐標(biāo)值和第二坐標(biāo)值之后,可以得出人體中心的向量
其中,歐式距離衡量的是空間各點(diǎn)的絕對(duì)距離,例如,dab衡量點(diǎn)a和點(diǎn)b之間的絕對(duì)距離,跟各個(gè)點(diǎn)所在的位置坐標(biāo)直接相關(guān);而余弦距離衡量的是空間向量的夾角,更加體現(xiàn)在方向上的差異,而不是位置。
具體地,余弦距離取值范圍為[-1,1]。夾角余弦越大表示兩個(gè)向量的夾角越小,夾角余弦越小表示兩向量的夾角越大。當(dāng)兩個(gè)向量的方向重合時(shí)夾角余弦取最大值1,當(dāng)兩個(gè)向量的方向完全相反夾角余弦取最小值-1。
當(dāng)然,在人體姿態(tài)評(píng)估過程中,通常還會(huì)計(jì)算手部、足部等等其他身體部位的質(zhì)心到人體中心的歐式距離和余弦距離。最終,所有所需的身體部位的質(zhì)心到人體中心的歐式距離和余弦距離所得的值與各身體部位一一對(duì)應(yīng),并整合形成該待分析人體姿態(tài)的待分析向量x。
上述步驟s24和步驟s25還分別包括:
s24’、獲取做標(biāo)準(zhǔn)動(dòng)作時(shí),重復(fù)動(dòng)作開始和結(jié)束時(shí)的人體的標(biāo)準(zhǔn)姿態(tài)信息。
可以采用類似于步驟s22和步驟s23’的方法識(shí)別標(biāo)準(zhǔn)姿態(tài)的人體的身體各部位的質(zhì)心與人體中心,并獲取標(biāo)準(zhǔn)姿態(tài)的人體的身體各部位的質(zhì)心的第三坐標(biāo)和人體中心的第四坐標(biāo),再通過第三坐標(biāo)和第四坐標(biāo)計(jì)算標(biāo)準(zhǔn)姿態(tài)的人體的身體各部位的質(zhì)心與人體中心的歐式距離和余弦距離,以形成該標(biāo)準(zhǔn)身體姿態(tài)的標(biāo)準(zhǔn)向量a。
值得一提的是,標(biāo)準(zhǔn)相對(duì)位置關(guān)系的獲取需與待分析人體的相對(duì)位置關(guān)系的獲取方式保持一致。例如,由于待分析人體姿態(tài)選擇了人體中心作為人體參考點(diǎn),標(biāo)準(zhǔn)姿態(tài)下的人體參考點(diǎn)也需要是人體中心。
s25’、保存標(biāo)準(zhǔn)姿態(tài)信息。
上述步驟s26還包括:
s26’、將人體姿態(tài)信息與預(yù)存的標(biāo)準(zhǔn)人體姿態(tài)信息進(jìn)行比較,其中,標(biāo)準(zhǔn)人體姿態(tài)信息為做標(biāo)準(zhǔn)動(dòng)作時(shí),重復(fù)動(dòng)作開始和結(jié)束時(shí)的人體姿態(tài)信息。
步驟s26’是將待分析的人體姿態(tài)與預(yù)存的標(biāo)準(zhǔn)姿態(tài)進(jìn)行比較,數(shù)據(jù)化之后則表現(xiàn)為待分析人體姿態(tài)的身體各部位與人體中心之間的相對(duì)位置關(guān)系與標(biāo)準(zhǔn)姿態(tài)時(shí)人體的身體各部位與人體中心之間的標(biāo)準(zhǔn)相對(duì)位置關(guān)系之間的比較。
例如,標(biāo)準(zhǔn)姿態(tài)的膝蓋關(guān)節(jié)的質(zhì)心與人體中心的歐式距離為dab’,余弦距離為cosθ’。將dab與dab’,cosθ與cosθ’進(jìn)行比較。
如圖7所示,圖7是圖4中步驟s26’的流程示意圖。具體地,步驟s26’包括:
s261’、計(jì)算待分析向量和標(biāo)準(zhǔn)向量的差值。
步驟s261’中,計(jì)算r=x-a,其中,r的各項(xiàng)為對(duì)應(yīng)的身體部位與標(biāo)準(zhǔn)姿態(tài)下的身體部位之間的歐式距離和余弦距離的偏差。
例如,r中包含了dab與dab’之間的偏差,cosθ與cosθ’之間的偏差,也包括了其它身體各部位的質(zhì)心與人體中心之間的歐式距離與標(biāo)準(zhǔn)姿態(tài)下的身體各部位的質(zhì)心與人體中心之間的歐式距離的偏差,以及其它身體各部位的質(zhì)心與人體中心之間的余弦距離與標(biāo)準(zhǔn)姿態(tài)下的身體各部位的質(zhì)心與人體中心之間的余弦距離的偏差。
s262’、將差值與預(yù)設(shè)閾值比較,并判斷差值是否小于預(yù)設(shè)閾值。
具體地,步驟s262’中,可以計(jì)算出r的向量本征值,并將該向量本征值與預(yù)先設(shè)置好的預(yù)設(shè)閾值進(jìn)行比較。
本實(shí)施例中,若差值的本征值小于預(yù)設(shè)閾值,表明該待分析人體姿態(tài)與標(biāo)準(zhǔn)姿態(tài)相似或一致,或者已經(jīng)達(dá)到標(biāo)準(zhǔn)姿態(tài)的要求,則進(jìn)入步驟s263’。若差值的本征值大于或等于預(yù)設(shè)閾值,標(biāo)準(zhǔn)該待分析人體姿態(tài)與標(biāo)準(zhǔn)姿態(tài)相差較大,因而進(jìn)入步驟s264’。
s263’、判斷比較結(jié)果為身體姿態(tài)為標(biāo)準(zhǔn)姿態(tài),并進(jìn)入步驟s27。
s264’、判斷比較結(jié)果為身體姿態(tài)不是標(biāo)準(zhǔn)姿態(tài),并進(jìn)入步驟s27。
上述步驟s27在輸出運(yùn)動(dòng)軌跡的比較結(jié)果的同時(shí),也輸出動(dòng)作開始或結(jié)束時(shí)的人體姿態(tài)的比較結(jié)果。
請(qǐng)參閱圖8,圖8是本發(fā)明運(yùn)動(dòng)輔助訓(xùn)練裝置實(shí)施例的結(jié)構(gòu)示意圖。
本發(fā)明的運(yùn)動(dòng)輔助訓(xùn)練裝置包括深度相機(jī)10、處理器11和存儲(chǔ)器12。深度相機(jī)10和存儲(chǔ)器12均與處理器11連接。
深度相機(jī)10用于獲取包含待分析人體運(yùn)動(dòng)動(dòng)作的深度圖像序列。其中,可以通過一個(gè)深度相機(jī)10來拍攝待分析人體的深度圖像序列,也可以通過多個(gè)深度相機(jī)10從不同角度拍攝待分析人體的深度圖像序列。
處理器11用于根據(jù)深度圖像序列對(duì)待分析人體的身體各部位進(jìn)行標(biāo)記;根據(jù)深度圖像序列記錄運(yùn)動(dòng)中身體各部位的軌跡信息;將軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息進(jìn)行比較,其中,標(biāo)準(zhǔn)軌跡信息為做標(biāo)準(zhǔn)動(dòng)作時(shí)的人體的身體各部位的軌跡信息;輸出比較結(jié)果。
處理器11用于獲取做標(biāo)準(zhǔn)動(dòng)作時(shí)的人體的身體各部位的標(biāo)準(zhǔn)軌跡信息。
存儲(chǔ)器12用于保存標(biāo)準(zhǔn)軌跡信息。
處理器11用于記錄運(yùn)動(dòng)中重復(fù)動(dòng)作開始和結(jié)束時(shí)待分析人體的人體姿態(tài)信息;將人體姿態(tài)信息與預(yù)存的標(biāo)準(zhǔn)人體姿態(tài)信息進(jìn)行比較,其中,標(biāo)準(zhǔn)人體姿態(tài)信息為做標(biāo)準(zhǔn)動(dòng)作時(shí),重復(fù)動(dòng)作開始和結(jié)束時(shí)的人體姿態(tài)信息。
處理器11還用于獲取做標(biāo)準(zhǔn)動(dòng)作時(shí),重復(fù)動(dòng)作開始和結(jié)束時(shí)的人體的標(biāo)準(zhǔn)姿態(tài)信息;
存儲(chǔ)器12還用于保存標(biāo)準(zhǔn)姿態(tài)信息。
處理器11還用于在軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息的差別在預(yù)設(shè)閾值的范圍內(nèi)時(shí),判斷軌跡信息為標(biāo)準(zhǔn)軌跡信息;在軌跡信息與預(yù)存的標(biāo)準(zhǔn)軌跡信息的差別不在預(yù)設(shè)閾值的范圍內(nèi)時(shí),判斷軌跡信息不是標(biāo)準(zhǔn)軌跡信息;并輸出調(diào)整建議。
處理器11還用于去除深度圖像系列中的背景;獲取深度圖像序列中的待分析人體的輪廓;根據(jù)輪廓識(shí)別待分析人體的軀干;根據(jù)軀干識(shí)別待分析人體的身體各部位;對(duì)身體各部位進(jìn)行標(biāo)記。
本發(fā)明還提供了一種存儲(chǔ)裝置,該存儲(chǔ)裝置存儲(chǔ)有程序數(shù)據(jù),該程序數(shù)據(jù)能夠被執(zhí)行以實(shí)現(xiàn)上述任一實(shí)施例的運(yùn)動(dòng)輔助訓(xùn)練方法。
舉例而言,該存儲(chǔ)裝置可以是便攜式存儲(chǔ)介質(zhì),例如u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等??梢岳斫獾?,存儲(chǔ)裝置還可以是服務(wù)器等各種可以存儲(chǔ)程序代碼的介質(zhì)。
綜上所述,本發(fā)明能夠獲取人體的全面的信息,使得對(duì)該運(yùn)動(dòng)的分析更加全面、準(zhǔn)確,同時(shí)還不影響待分析人體的動(dòng)作,提高了運(yùn)動(dòng)訓(xùn)練效果。
以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。