亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于深度圖像的非接觸式體能測(cè)試系統(tǒng)及測(cè)試方法與流程

文檔序號(hào):12826252閱讀:330來(lái)源:國(guó)知局
一種基于深度圖像的非接觸式體能測(cè)試系統(tǒng)及測(cè)試方法與流程

本發(fā)明涉及一種基于深度圖像的非接觸式體能測(cè)試系統(tǒng),是一種用于無(wú)穿戴的體感交互體能測(cè)試系統(tǒng),屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域。



背景技術(shù):

隨著生活品質(zhì)的提高,人們?cè)絹?lái)越注重對(duì)身體素質(zhì)的改善練習(xí)。其中,力量訓(xùn)練類運(yùn)動(dòng)對(duì)于人體的減脂塑形有著極其重要的作用。目前,力量訓(xùn)練絕大部分是以穿戴設(shè)備為基礎(chǔ)進(jìn)行測(cè)量。這類器材中包括:電磁感應(yīng)類型、gps測(cè)量類型等。電磁感應(yīng)器材是在測(cè)試者身上穿戴接收或發(fā)射裝置,利用電腦等測(cè)量?jī)x器發(fā)射或接收信號(hào)并通過(guò)信號(hào)的有無(wú)來(lái)進(jìn)行計(jì)數(shù)。此類器材存在信號(hào)易受干擾、發(fā)射功率受限、測(cè)量范圍過(guò)大不精確等弊端。gps測(cè)量類型是以全球定位系統(tǒng)為基礎(chǔ),通過(guò)人體位移軌跡記錄運(yùn)動(dòng)軌跡,只適合長(zhǎng)跑類項(xiàng)目的低精確度測(cè)量,無(wú)法測(cè)量原地運(yùn)動(dòng)以及需要精確值的項(xiàng)目。

隨著體感交互技術(shù)與計(jì)算機(jī)視覺(jué)技術(shù)的發(fā)展,含有深度信息的圖像能夠在極大的程度上區(qū)分所監(jiān)測(cè)區(qū)域的前景與背景信息,從而提高了身份識(shí)別、體感交互的精度。硬件方面,由于kinect體感交互設(shè)備能夠提供深度圖像數(shù)據(jù),就為通過(guò)兩者信息融合的方法來(lái)檢測(cè)運(yùn)動(dòng)人體提供了前提條件。軟件方面,opencv等視覺(jué)信息處理算法庫(kù)也為圖像的處理提供了極大的方便。

目前國(guó)內(nèi)對(duì)于力量訓(xùn)練類非接觸式系統(tǒng)研究較少,已有的一些監(jiān)測(cè)系統(tǒng)通常會(huì)對(duì)被測(cè)者所處的環(huán)境有所限制,如需要在顏色單一的環(huán)境中穿著特定顏色的衣服才能進(jìn)行檢測(cè)。這些限制使得體能檢測(cè)不能隨時(shí)隨地為普通人所服務(wù)。kinect體感交互設(shè)備能夠通過(guò)紅外攝像頭獲取被測(cè)圖像中的深度信息,使得體能檢測(cè)擺脫了已有方法對(duì)環(huán)境的限制。目前,基于kinect體感交互設(shè)備的體能測(cè)試系統(tǒng),通常直接使用kinect體感交互設(shè)備自帶的sdk對(duì)人體進(jìn)行檢測(cè)與識(shí)別,對(duì)站姿運(yùn)動(dòng)檢測(cè)效果較好,而無(wú)法識(shí)別臥姿等非站立姿勢(shì)。

本發(fā)明可提供非接觸式體能訓(xùn)練的自動(dòng)監(jiān)測(cè),可為進(jìn)行體能測(cè)試的團(tuán)體或個(gè)人提供更科學(xué)、精確的測(cè)試數(shù)據(jù),減少了人眼主觀判定帶來(lái)的誤差,節(jié)省了人力資源,為體育訓(xùn)練提供了新的測(cè)量手段,為全民健身運(yùn)動(dòng)在科學(xué)指導(dǎo)與運(yùn)動(dòng)檢測(cè)方面提供了新思路。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明技術(shù)解決問(wèn)題:克服現(xiàn)有技術(shù)的不足,提供一種基于深度圖像的非接觸式體能測(cè)試系統(tǒng)及測(cè)試方法,能夠讓用戶通過(guò)不在身上捆綁各種儀器而進(jìn)行的體能測(cè)試,提高測(cè)試的準(zhǔn)確度。

本發(fā)明技術(shù)解決方案:一種基于深度圖像的非接觸式體能測(cè)試系統(tǒng),包括:體能測(cè)試控制模塊、仰臥起坐測(cè)試模塊、俯臥撐測(cè)試模塊、語(yǔ)音識(shí)別模塊和測(cè)試反饋模塊;

體能測(cè)試控制模塊:?jiǎn)?dòng)kinect體感交互設(shè)備的紅外攝像頭并通過(guò)kinect體感交互設(shè)備自帶sdk捕捉現(xiàn)實(shí)場(chǎng)景中的深度圖像;根據(jù)設(shè)定的閾值將獲取到的深度圖像進(jìn)行二值化處理,得到黑白二值圖像;調(diào)用opencv自帶輪廓檢測(cè)算子提取黑白二值圖像的邊緣輪廓,獲得被測(cè)人體輪廓;將被測(cè)人體輪廓區(qū)域儲(chǔ)存起來(lái)作為仰臥起坐測(cè)試模塊、俯臥撐測(cè)試模塊判定區(qū)域;當(dāng)體能測(cè)試控制模塊中選擇待測(cè)試項(xiàng)目為仰臥起坐時(shí),調(diào)用仰臥起坐測(cè)試模塊;當(dāng)體能測(cè)試模塊中選測(cè)待測(cè)試項(xiàng)目為跪姿俯臥撐或標(biāo)準(zhǔn)俯臥撐時(shí),調(diào)用俯臥撐測(cè)試模塊;同時(shí)開(kāi)啟語(yǔ)音識(shí)別模塊,等待語(yǔ)音指令;

仰臥起坐測(cè)試模塊:當(dāng)體能測(cè)試控制模塊中選擇待測(cè)試的項(xiàng)目為仰臥起坐時(shí),仰臥起坐測(cè)試模塊啟動(dòng);將有限狀態(tài)機(jī)作為判定仰臥起坐的計(jì)算模型,定義仰臥起坐中被測(cè)人體的狀態(tài)為有限狀態(tài),將被測(cè)人體在完成仰臥起坐過(guò)程中可能出現(xiàn)的狀態(tài)定義為四種:“準(zhǔn)備狀態(tài)”、“中間狀態(tài)”、“完成狀態(tài)”以及“其他狀態(tài)”,其中“準(zhǔn)備狀態(tài)”為被測(cè)人體屈膝仰臥于地面,雙手扶于耳部;“中間狀態(tài)”為被測(cè)人體完成一個(gè)仰臥起坐動(dòng)作時(shí),上半身從仰臥到坐起的前屈過(guò)程;“完成狀態(tài)”為被測(cè)人體完成一個(gè)仰臥起坐動(dòng)作時(shí),前屈過(guò)程中雙肘碰及膝蓋瞬間;“其他狀態(tài)”為以上“準(zhǔn)備狀態(tài)”、“中間狀態(tài)”、“完成狀態(tài)”三種狀態(tài)以外的所有其他非仰臥起坐過(guò)程中出現(xiàn)的干擾動(dòng)作,并且定義一個(gè)完整仰臥起坐動(dòng)作的狀態(tài)序列為一個(gè)連續(xù)且有序的狀態(tài)轉(zhuǎn)換過(guò)程:“準(zhǔn)備狀態(tài)”至“中間狀態(tài)”再至“完成狀態(tài)”,期間不出現(xiàn)“其他狀態(tài)”;獲取人體輪廓凹點(diǎn)和凸點(diǎn),凹點(diǎn)為人體上半身與大腿之間的夾角的頂點(diǎn),凸點(diǎn)為人體頭頂點(diǎn);計(jì)算凹點(diǎn)和凸點(diǎn)之間連線與水平方向的夾角,也稱為起身角度;當(dāng)起身角度小于預(yù)設(shè)閾值時(shí),認(rèn)為被測(cè)人體處于“準(zhǔn)備狀態(tài)”,即屈膝平躺姿勢(shì);當(dāng)被測(cè)人體已處于“準(zhǔn)備狀態(tài)”時(shí),循環(huán)檢測(cè)被測(cè)人體輪廓的凸包和凸缺陷狀態(tài),以判定被測(cè)人體是否處于“中間狀態(tài)”或“完成狀態(tài)”,所述凸缺陷是指輪廓與凸包之間的部分;當(dāng)狀態(tài)轉(zhuǎn)換完成了一個(gè)完整的狀態(tài)轉(zhuǎn)移序列時(shí),認(rèn)為被測(cè)人體完成了一個(gè)完整的仰臥起坐,仰臥起坐測(cè)試模塊計(jì)數(shù)加一;當(dāng)仰臥起坐測(cè)試模塊收到語(yǔ)音識(shí)別模塊的傳來(lái)的啟動(dòng)計(jì)數(shù)指令后,仰臥起坐測(cè)試模塊開(kāi)始檢測(cè)被測(cè)人體所處的狀態(tài),并開(kāi)始計(jì)數(shù);當(dāng)仰臥起坐測(cè)試模塊收到語(yǔ)音識(shí)別模塊傳來(lái)的結(jié)束計(jì)數(shù)指令后,仰臥起坐測(cè)試模塊結(jié)束計(jì)數(shù),并將計(jì)數(shù)信息傳遞給測(cè)試反饋模塊;

俯臥撐測(cè)試模塊:當(dāng)體能測(cè)試控制模塊中選擇待測(cè)試的項(xiàng)目為跪姿俯臥撐或標(biāo)準(zhǔn)俯臥撐時(shí),俯臥撐測(cè)試模塊被調(diào)用;將有限狀態(tài)機(jī)作為判定俯臥撐的計(jì)算模型,定義俯臥撐中被測(cè)人體的狀態(tài)為有限狀態(tài);將被測(cè)人體在完成跪姿俯臥撐或標(biāo)準(zhǔn)俯臥撐中可能出現(xiàn)的狀態(tài)定義為四種:“準(zhǔn)備狀態(tài)”、“中間狀態(tài)”、“完成狀態(tài)”以及“其他狀態(tài)”,其中,“準(zhǔn)備狀態(tài)”為雙臂位于胸前,兩手支撐地面,兩手間距較肩膀稍寬,肘關(guān)節(jié)伸直,軀干成直線,兩腿并攏,跪姿俯臥撐以雙膝著地支撐,標(biāo)準(zhǔn)俯臥撐以腳趾點(diǎn)地支撐;“中間狀態(tài)”為用戶完成一個(gè)俯臥撐動(dòng)作時(shí),肩關(guān)節(jié)伸肘關(guān)節(jié)屈,軀干逐漸接近地面,以及還原過(guò)程中肩關(guān)節(jié)屈肘關(guān)節(jié)伸軀干遠(yuǎn)離地面的過(guò)程;“完成狀態(tài)”為用戶完成一個(gè)俯臥撐動(dòng)作,還原到初始準(zhǔn)備狀態(tài)的瞬間;“其他狀態(tài)”為以上“準(zhǔn)備狀態(tài)”、“中間狀態(tài)”、“完成狀態(tài)”三種狀態(tài)以外的所有其他非俯臥撐過(guò)程中出現(xiàn)的干擾動(dòng)作;并且定義一個(gè)完整俯臥撐動(dòng)作的狀態(tài)序列為一個(gè)連續(xù)且有序的狀態(tài)轉(zhuǎn)換過(guò)程:“準(zhǔn)備狀態(tài)”至“中間狀態(tài)”再至“完成狀態(tài)”,期間不出現(xiàn)“其他狀態(tài)”;根據(jù)體能測(cè)試控制模塊中所獲取的被測(cè)人體輪廓構(gòu)建人體輪廓外接矩形,不同的矩形長(zhǎng)寬比匹配不同的狀態(tài),計(jì)算當(dāng)前被測(cè)人體外接矩陣的長(zhǎng)寬比,將此比值與預(yù)先設(shè)定的閾值進(jìn)行匹配;當(dāng)狀態(tài)轉(zhuǎn)換完成了一個(gè)完整的狀態(tài)轉(zhuǎn)移序列時(shí),認(rèn)為被測(cè)人體完成了一個(gè)完整的跪姿俯臥撐或標(biāo)準(zhǔn)俯臥撐,俯臥撐測(cè)試模塊計(jì)數(shù)加一;當(dāng)俯臥撐測(cè)試模塊收到語(yǔ)音識(shí)別模塊的傳來(lái)的啟動(dòng)計(jì)數(shù)指令后,俯臥撐測(cè)試模塊檢測(cè)被測(cè)人體所處的狀態(tài),并開(kāi)始計(jì)數(shù);當(dāng)俯臥撐測(cè)試模塊收到語(yǔ)音識(shí)別模塊的傳來(lái)的結(jié)束計(jì)數(shù)指令后,俯臥撐測(cè)試模塊結(jié)束計(jì)數(shù),并將計(jì)數(shù)信息傳遞給測(cè)試反饋模塊;

語(yǔ)音識(shí)別模塊:用戶第一次使用時(shí),會(huì)提示用戶記錄下開(kāi)始和結(jié)束的指令語(yǔ)音信息,用戶發(fā)出語(yǔ)音指令后,利用kinect體感交互設(shè)備的sdk語(yǔ)音包進(jìn)行錄音,并生成該錄音音頻的波形圖,從而對(duì)語(yǔ)音信號(hào)進(jìn)行預(yù)處理和特征提取,將提取到的音頻信息存入語(yǔ)音識(shí)別模塊中,實(shí)現(xiàn)對(duì)用戶語(yǔ)音特征的學(xué)習(xí),建立用戶命令模型,作為該用戶語(yǔ)音指令待匹配模板;當(dāng)用戶再次使用并發(fā)出指令時(shí),首先采集用戶的指令語(yǔ)音信號(hào)并提取語(yǔ)音信號(hào)中的相應(yīng)特征,然后在之前存放的語(yǔ)音指令中尋找待匹配模版,如果找到,則認(rèn)為匹配成功;如果用戶發(fā)出語(yǔ)音指令與語(yǔ)音識(shí)別模塊中的開(kāi)始指令相匹配,則向仰臥起坐測(cè)試模塊或俯臥撐測(cè)試模塊傳遞啟動(dòng)計(jì)數(shù)指令,開(kāi)始計(jì)數(shù)同時(shí)調(diào)用測(cè)試反饋模塊開(kāi)始計(jì)時(shí);如果用戶發(fā)出指令與語(yǔ)音識(shí)別模塊中的結(jié)束指令相匹配,則向仰臥起坐測(cè)試模塊或俯臥撐測(cè)試模塊傳遞結(jié)束計(jì)數(shù)指令同時(shí)測(cè)試反饋模塊停止計(jì)時(shí);

測(cè)試反饋模塊:接受到語(yǔ)音識(shí)別模塊傳遞的啟動(dòng)計(jì)數(shù)指令后,開(kāi)始計(jì)時(shí);測(cè)試反饋模塊收到語(yǔ)音識(shí)別模塊傳遞的結(jié)束計(jì)數(shù)指令后,測(cè)試反饋模塊停止計(jì)時(shí),讀取仰臥起坐測(cè)試或俯臥撐測(cè)試模塊傳遞過(guò)來(lái)的計(jì)數(shù)信息,同時(shí)計(jì)算用戶發(fā)出開(kāi)始指令到發(fā)出結(jié)束指令之間的時(shí)間間隔作為用戶該次運(yùn)動(dòng)的耗時(shí),再根據(jù)設(shè)定的計(jì)算公式,以圖形化界面向用戶反饋該次測(cè)試完成動(dòng)作個(gè)數(shù),耗時(shí),耗能以及體能測(cè)試分?jǐn)?shù)。

所述仰臥起坐測(cè)試模塊中,設(shè)定起身角度預(yù)設(shè)閾值為20。

所述仰臥起坐測(cè)試模塊中,當(dāng)被測(cè)人體已處于“準(zhǔn)備狀態(tài)”后,根據(jù)被測(cè)人體輪廓獲得當(dāng)前幀凸包,檢測(cè)凸包中所有的凸缺陷;當(dāng)單個(gè)凸缺陷的距離特征量大于設(shè)定閾值5.0時(shí),將該凸缺陷視為待檢測(cè)凸缺陷區(qū)域d。

所述仰臥起坐測(cè)試模塊中,對(duì)凸缺陷狀態(tài)的檢測(cè)方法為,計(jì)算待檢測(cè)凸缺陷區(qū)域d中,計(jì)算缺陷結(jié)束點(diǎn)與起始點(diǎn)連線的斜率,當(dāng)斜率處于20-70之間時(shí),當(dāng)前狀態(tài)置為“中間狀態(tài)”,并匹配當(dāng)前幀中的凸缺陷與上一幀中的凸缺陷集合,當(dāng)兩個(gè)凸缺陷匹配,并且該凸缺陷的深度特征小于之前深度特征三分之一時(shí),當(dāng)前狀態(tài)置為“完成狀態(tài)”,若無(wú)匹配或凸缺陷深度特征差值均大于三分之一時(shí),狀態(tài)置為“其他狀態(tài)”。

所述俯臥撐測(cè)試模塊中,閾值根據(jù)人體俯臥時(shí)所構(gòu)成的外接矩形的寬高比通過(guò)實(shí)驗(yàn)測(cè)試數(shù)據(jù)經(jīng)驗(yàn)設(shè)定給出;所述跪姿俯臥撐狀態(tài)下人體外接矩形寬高比大于1.2,標(biāo)準(zhǔn)俯臥撐狀態(tài)下人體外接矩形寬高比大于1.5,認(rèn)為被測(cè)人體俯臥于地面。

所述俯臥撐測(cè)試模塊中,當(dāng)被測(cè)人體輪廓外接矩形寬高比在設(shè)定的閾值1.9-2.5時(shí),設(shè)置當(dāng)前狀態(tài)為“準(zhǔn)備狀態(tài)”,在2.5-3.31范圍時(shí),設(shè)置當(dāng)前狀態(tài)為“中間狀態(tài)”;當(dāng)寬高比大于3.31時(shí),設(shè)置當(dāng)前狀態(tài)為“完成狀態(tài)”,當(dāng)寬高比不處于以上任意區(qū)間時(shí),設(shè)置當(dāng)前狀態(tài)為“其他狀態(tài)”。

所述語(yǔ)音識(shí)別模塊實(shí)現(xiàn)如下:

(1)第一次使用時(shí),會(huì)提示用戶記錄下開(kāi)始和結(jié)束的指令語(yǔ)音信息,在此使用時(shí),根據(jù)體能測(cè)試控制模塊控制,用戶分別發(fā)出“開(kāi)始”和“結(jié)束”語(yǔ)音指令后,利用kinect體感交互設(shè)備的sdk語(yǔ)音包進(jìn)行錄音,并生成該錄音音頻的波形圖,并進(jìn)行以下處理:

(1.1)使用短時(shí)能量參數(shù)來(lái)進(jìn)行語(yǔ)音端點(diǎn)檢測(cè),定義n時(shí)刻語(yǔ)音信號(hào)的短時(shí)平均能量為:

n為分幀語(yǔ)音窗長(zhǎng),m為幀序號(hào)。

求出所有幀中最大短時(shí)能量en_max,將0.03×en_max作為端點(diǎn)檢測(cè)的閾值,同時(shí),將0.01×en_max認(rèn)為環(huán)境噪聲作為在命令段內(nèi)不計(jì)入運(yùn)算的幀的閾值,這樣將短時(shí)能量大于端點(diǎn)閾值的數(shù)據(jù)幀進(jìn)行編號(hào)后計(jì)算出每幀的平均幅差函數(shù);

(1.2)將計(jì)算得到的語(yǔ)音指令信號(hào)的平均幅差特征作為語(yǔ)音特征參數(shù)存儲(chǔ)于模板中,進(jìn)而建立用戶命令模型,作為該用戶語(yǔ)音指令待匹配模板;

(2)用戶在體能測(cè)試控制模塊中選擇了需要測(cè)試的項(xiàng)目,包括仰臥起坐、跪姿俯臥撐或標(biāo)準(zhǔn)俯臥撐后,語(yǔ)音識(shí)別模塊進(jìn)入等待狀態(tài),調(diào)用kinect體感交互設(shè)備的sdk打開(kāi)內(nèi)置麥克風(fēng)采集語(yǔ)音信號(hào);

(3)對(duì)用戶發(fā)出的語(yǔ)音信號(hào)提取完成后,將語(yǔ)音信號(hào)的特征參數(shù)與語(yǔ)音識(shí)別模塊中的待匹配模板中的兩個(gè)指令進(jìn)行匹配,若與開(kāi)始指令匹配,則仰臥起坐測(cè)試模塊或俯臥撐測(cè)試模塊開(kāi)始檢測(cè)計(jì)數(shù)同時(shí)測(cè)試反饋模塊開(kāi)始計(jì)時(shí),若與結(jié)束指令匹配,則停止計(jì)數(shù)同時(shí)測(cè)試反饋模塊結(jié)束計(jì)時(shí),并將計(jì)數(shù)數(shù)據(jù)傳遞給運(yùn)動(dòng)測(cè)試反饋模塊;若與開(kāi)始指令和結(jié)束指令均不匹配,則不執(zhí)行任何操作。

所述測(cè)試反饋模塊中:

(1)對(duì)于仰臥起坐運(yùn)動(dòng)檢測(cè),運(yùn)動(dòng)所消耗的能量=10*(m/60)*動(dòng)作個(gè)數(shù),其中m為被測(cè)人體體重,單位kg,計(jì)算運(yùn)動(dòng)強(qiáng)度系數(shù)=完成仰臥起坐個(gè)數(shù)/耗時(shí),單位為秒,根據(jù)運(yùn)動(dòng)強(qiáng)度系數(shù)將被測(cè)人體的運(yùn)動(dòng)狀態(tài)進(jìn)行分級(jí),以幫助客觀評(píng)估本次測(cè)試中的體能情況,以便后續(xù)進(jìn)行針對(duì)性的訓(xùn)練,強(qiáng)度系數(shù)大于1為s級(jí),0.7-1為a級(jí),0.5-0.7為b級(jí),0.3-0.5為c級(jí),0.3以下為d級(jí);

(2)對(duì)于俯臥撐運(yùn)動(dòng)檢測(cè),標(biāo)準(zhǔn)俯臥撐所消耗的能量=g*m*h,其中g(shù)為10n/kg,m為被測(cè)人體體重,單位kg,h為被測(cè)人體前臂的長(zhǎng)度,單位為m,跪姿俯臥撐所消耗的能量=(2/3)*g*m*h,計(jì)算運(yùn)動(dòng)強(qiáng)度系數(shù)=完成俯臥撐個(gè)數(shù)/耗時(shí),單位為秒;根據(jù)運(yùn)動(dòng)強(qiáng)度系數(shù)將該次被測(cè)人體的運(yùn)動(dòng)狀態(tài)進(jìn)行分級(jí),以幫助客觀評(píng)估本次測(cè)試中的體能情況,以便后續(xù)進(jìn)行針對(duì)性的訓(xùn)練,強(qiáng)度系數(shù)大于0.8為s級(jí),0.7-0.8為a級(jí),0.4-0.7為b級(jí),0.2-0.4為c級(jí),0.2以下為d級(jí)。

一種基于深度圖像的非接觸式體能測(cè)試方法,所述實(shí)現(xiàn)步驟如下:

(1)當(dāng)用戶第一次使用時(shí),引導(dǎo)用戶對(duì)指令聲音進(jìn)行提取錄入,用戶錄入指令包含兩種:開(kāi)始指令和結(jié)束指令;利用kinect體感交互設(shè)備自帶sdk打開(kāi)內(nèi)置麥克風(fēng)進(jìn)行錄音,生成wave文件,并生成其波形圖,從而對(duì)語(yǔ)音信號(hào)進(jìn)行預(yù)處理和特征提取,生成用戶指令模板;當(dāng)用戶再次使用系統(tǒng)時(shí),會(huì)采集用戶指令語(yǔ)音信號(hào)并提取信號(hào)中的特征參數(shù),與預(yù)存用戶指令模板;

(2)用戶在運(yùn)動(dòng)測(cè)試控制模塊中選擇需要進(jìn)行測(cè)試的動(dòng)作后,初始化攝像機(jī)參數(shù),啟動(dòng)kinect體感交互設(shè)備的紅外攝像頭捕捉現(xiàn)實(shí)場(chǎng)景中的深度信息,對(duì)深度圖像進(jìn)行二值化處理,轉(zhuǎn)化為黑白二值圖像;根據(jù)黑白二值圖像,獲取被測(cè)人體輪廓;同時(shí),kinect體感交互設(shè)備內(nèi)置麥克風(fēng)打開(kāi)等待獲取語(yǔ)音信號(hào);

(3)被測(cè)人體位于kinect體感交互設(shè)備前1-2米處,做好仰臥起坐或俯臥撐測(cè)試準(zhǔn)備,并發(fā)出語(yǔ)音指令,當(dāng)獲取到的語(yǔ)音信號(hào)與開(kāi)始指令匹配時(shí),根據(jù)步驟(2)中選擇的項(xiàng)目,進(jìn)行仰臥起坐或俯臥撐計(jì)數(shù),同時(shí)進(jìn)行測(cè)試反饋計(jì)時(shí);在仰臥起坐測(cè)試中對(duì)人體輪廓凸包進(jìn)行檢測(cè),在俯臥撐測(cè)試中對(duì)人體輪廓外接矩形進(jìn)行長(zhǎng)寬比判定,循環(huán)檢測(cè)每一幀中被測(cè)人體所處的狀態(tài),當(dāng)被測(cè)人體完成一次完整且有序的有限狀態(tài)轉(zhuǎn)換序列“準(zhǔn)備狀態(tài)”至“中間狀態(tài)”再至“完成狀態(tài)”時(shí),被測(cè)人體動(dòng)作計(jì)數(shù)加一;

(4)當(dāng)用戶希望結(jié)束當(dāng)前運(yùn)動(dòng)時(shí),發(fā)出結(jié)束語(yǔ)音指令,獲取語(yǔ)音信號(hào)并與所存儲(chǔ)的匹配模板進(jìn)行匹配,當(dāng)獲取到的語(yǔ)音信號(hào)與結(jié)束指令匹配時(shí),則結(jié)束計(jì)數(shù);

(5)測(cè)試反饋過(guò)程停止計(jì)時(shí)后,從仰臥起坐測(cè)試或俯臥撐測(cè)試過(guò)程中讀取計(jì)數(shù)信息,并計(jì)算用戶發(fā)出開(kāi)始指令和結(jié)束指令的時(shí)間間隔作為完成該次測(cè)試所消耗的時(shí)間,以圖形化界面展示該次測(cè)試過(guò)程中完成動(dòng)作個(gè)數(shù),消耗的時(shí)間,運(yùn)動(dòng)過(guò)程中所消耗的能量以及該被測(cè)人體運(yùn)動(dòng)能力強(qiáng)度評(píng)價(jià)。

本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:

(1)用戶無(wú)需穿戴任何儀器即可獲得體能訓(xùn)練的相關(guān)數(shù)據(jù),減少了穿戴儀器對(duì)用戶體能訓(xùn)練帶來(lái)的干擾;基于圖像的處理方式可獲取用戶信息更為全面和豐富,為進(jìn)一步的挖掘提供了更好的數(shù)據(jù)基礎(chǔ)。

(2)相較于現(xiàn)有的非穿戴式體能測(cè)試系統(tǒng)對(duì)于環(huán)境背景的限制,本發(fā)明通過(guò)使用kinect體感交互設(shè)備對(duì)于深度圖像進(jìn)行判讀,能夠在極大程度上減少訓(xùn)練過(guò)程中對(duì)于環(huán)境的依賴。

(3)通過(guò)使用有限狀態(tài)機(jī)算法模型,運(yùn)動(dòng)檢測(cè)過(guò)程中對(duì)于運(yùn)動(dòng)數(shù)據(jù)的測(cè)量準(zhǔn)確,對(duì)于所測(cè)試動(dòng)作以外的其他干擾動(dòng)作具有較好的容錯(cuò)性。

(4)由于該系統(tǒng)提供了體能測(cè)試控制與測(cè)試反饋圖形化界面,一方面把平臺(tái)的可維護(hù)性和可移植性提高了;另外一方面為產(chǎn)品的批量生產(chǎn)提供了便利。

附圖說(shuō)明

圖1為本發(fā)明系統(tǒng)的結(jié)構(gòu)組成框圖;

圖2為本發(fā)明中的有限狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換示意圖。

具體實(shí)施方式

下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明

如圖1所示,本發(fā)明基于深度圖像的非接觸式體能測(cè)試系統(tǒng)由體能測(cè)試控制模塊、仰臥起坐測(cè)試模塊、俯臥撐測(cè)試模塊、語(yǔ)音識(shí)別模塊和測(cè)試反饋模塊構(gòu)成。

整個(gè)實(shí)現(xiàn)過(guò)程如下:

(1)當(dāng)用戶第一次使用時(shí),引導(dǎo)用戶對(duì)指令聲音進(jìn)行提取錄入,用戶錄入指令包含兩種:開(kāi)始指令和結(jié)束指令;利用kinect體感交互設(shè)備自帶sdk打開(kāi)內(nèi)置麥克風(fēng)進(jìn)行錄音,生成wave文件,并生成其波形圖,從而對(duì)語(yǔ)音信號(hào)進(jìn)行預(yù)處理和特征提取,生成用戶指令模板;當(dāng)用戶再次使用系統(tǒng)時(shí),會(huì)采集用戶指令語(yǔ)音信號(hào)并提取信號(hào)中的特征參數(shù),與預(yù)存用戶指令模板;

(2)用戶在運(yùn)動(dòng)測(cè)試控制模塊中選擇需要進(jìn)行測(cè)試的動(dòng)作后,初始化攝像機(jī)參數(shù),啟動(dòng)kinect體感交互設(shè)備的紅外攝像頭捕捉現(xiàn)實(shí)場(chǎng)景中的深度信息,對(duì)深度圖像進(jìn)行二值化處理,轉(zhuǎn)化為黑白二值圖像;根據(jù)黑白二值圖像,獲取被測(cè)人體輪廓;同時(shí),kinect體感交互設(shè)備內(nèi)置麥克風(fēng)打開(kāi)等待獲取語(yǔ)音信號(hào);

(3)被測(cè)人體位于kinect體感交互設(shè)備前1-2米處,做好仰臥起坐或俯臥撐測(cè)試準(zhǔn)備,并發(fā)出語(yǔ)音指令,當(dāng)獲取到的語(yǔ)音信號(hào)與開(kāi)始指令匹配時(shí),根據(jù)步驟(2)中選擇的項(xiàng)目,進(jìn)行仰臥起坐或俯臥撐計(jì)數(shù),同時(shí)進(jìn)行測(cè)試反饋計(jì)時(shí);在仰臥起坐測(cè)試中對(duì)人體輪廓凸包進(jìn)行檢測(cè),在俯臥撐測(cè)試中對(duì)人體輪廓外接矩形進(jìn)行長(zhǎng)寬比判定,循環(huán)檢測(cè)每一幀中被測(cè)人體所處的狀態(tài),當(dāng)被測(cè)人體完成一次完整且有序的有限狀態(tài)轉(zhuǎn)換序列“準(zhǔn)備狀態(tài)”至“中間狀態(tài)”再至“完成狀態(tài)”時(shí),被測(cè)人體動(dòng)作計(jì)數(shù)加一;

(4)當(dāng)用戶希望結(jié)束當(dāng)前運(yùn)動(dòng)時(shí),發(fā)出結(jié)束語(yǔ)音指令,獲取語(yǔ)音信號(hào)并與所存儲(chǔ)的匹配模板進(jìn)行匹配,當(dāng)獲取到的語(yǔ)音信號(hào)與結(jié)束指令匹配時(shí),則結(jié)束計(jì)數(shù);

(5)測(cè)試反饋過(guò)程停止計(jì)時(shí)后,從仰臥起坐測(cè)試或俯臥撐測(cè)試過(guò)程中讀取計(jì)數(shù)信息,并計(jì)算用戶發(fā)出開(kāi)始指令和結(jié)束指令的時(shí)間間隔作為完成該次測(cè)試所消耗的時(shí)間,以圖形化界面展示該次測(cè)試過(guò)程中完成動(dòng)作個(gè)數(shù),消耗的時(shí)間,運(yùn)動(dòng)過(guò)程中所消耗的能量以及該被測(cè)人體運(yùn)動(dòng)能力強(qiáng)度評(píng)價(jià)。

各模塊的具體實(shí)現(xiàn)過(guò)程如下:

1.體能測(cè)試控制模塊

(1)程序打開(kāi)kinect體感交互設(shè)備,并將其深度圖像流儲(chǔ)存在opencv的庫(kù)包含的一個(gè)數(shù)據(jù)結(jié)構(gòu)mat中,通過(guò)顯示圖像函數(shù)(imshow)生成一個(gè)二值圖像流。

(2)當(dāng)kinect體感交互設(shè)備的sdk檢測(cè)到被測(cè)人體時(shí),檢測(cè)二值圖像流中的被測(cè)人體輪廓。

(3)將被測(cè)人體輪廓區(qū)域儲(chǔ)存起來(lái)作為仰臥起坐測(cè)試模塊、俯臥撐測(cè)試模塊判定區(qū)域。

(4)當(dāng)體能測(cè)試控制模塊中選擇待測(cè)試項(xiàng)目為仰臥起坐時(shí),調(diào)用仰臥起坐測(cè)試模塊。

(5)當(dāng)體能測(cè)試模塊中選擇待測(cè)試項(xiàng)目為跪姿俯臥撐或標(biāo)準(zhǔn)俯臥撐時(shí),調(diào)用俯臥撐測(cè)試模塊。

(6)開(kāi)啟語(yǔ)音識(shí)別模塊,等待語(yǔ)音指令。

2.仰臥起坐測(cè)試模塊

(1)根據(jù)體能測(cè)試控制模塊中獲取到的被測(cè)圖像輪廓,確定被測(cè)人體的凹點(diǎn)和被測(cè)人體凸點(diǎn)位置。計(jì)算當(dāng)凹點(diǎn)與凸點(diǎn)間連線與水平軸正方向的夾角小于設(shè)定閾值(20)時(shí),認(rèn)定被測(cè)人體上身處于“準(zhǔn)備狀態(tài)”,即屈膝平躺姿勢(shì)。

(2)循環(huán)對(duì)kinect捕獲到的視頻幀進(jìn)行檢測(cè),調(diào)用opencv函數(shù)檢測(cè)凸包中的凸缺陷,并用cvpoint結(jié)構(gòu)體記錄這些凸缺陷的特征量(起始點(diǎn),結(jié)束點(diǎn),距離和最遠(yuǎn)點(diǎn))根據(jù)被測(cè)圖像的輪廓獲得當(dāng)前幀凸包,檢測(cè)凸包中所有的凸缺陷。當(dāng)單個(gè)凸缺陷的距離特征量大于設(shè)定閾值5.0時(shí),將該凸缺視為待檢測(cè)凸缺陷區(qū)域d。

(3)計(jì)算待檢測(cè)凸缺陷區(qū)域d中,計(jì)算缺陷結(jié)束點(diǎn)與起始點(diǎn)連線的斜率。當(dāng)斜率處于[20-70]之間時(shí),當(dāng)前狀態(tài)置為“中間狀態(tài)”并匹配當(dāng)前幀中的凸缺陷與上一幀中的凸缺陷集合。當(dāng)兩個(gè)凸缺陷匹配,并且該凸缺陷的深度特征小于之前深度特征三分之一時(shí),當(dāng)前狀態(tài)置為“完成狀態(tài)”。若無(wú)匹配或凸缺陷深度特征差值均大于三分之一時(shí),狀態(tài)置為“其他狀態(tài)”。

(4)狀態(tài)轉(zhuǎn)移條件如圖2所示:q0為起始狀態(tài),q3狀態(tài)出現(xiàn)視為一次完整的仰臥起坐動(dòng)作,計(jì)數(shù)加1。當(dāng)使用者動(dòng)作滿足該動(dòng)作“準(zhǔn)備狀態(tài)”時(shí),狀態(tài)置為q1;當(dāng)使用者的動(dòng)作處于“中間狀態(tài)”時(shí),狀態(tài)置為q2;當(dāng)使用者動(dòng)作處于“完成狀態(tài)”時(shí),狀態(tài)置為q3,計(jì)數(shù)+1;若使用者完成后保持狀態(tài),狀態(tài)置為q4,直到被測(cè)人體回到起始準(zhǔn)備狀態(tài)時(shí)狀態(tài)置為q1。若被測(cè)人體中途的動(dòng)作使圖像不滿足以上4中判斷,狀態(tài)置為q0,處于“其他狀態(tài)”,直到被測(cè)人體達(dá)成“準(zhǔn)備狀態(tài)”,狀態(tài)置為q1。如果被測(cè)人體直接從“準(zhǔn)備狀態(tài)”變?yōu)椤巴瓿蔂顟B(tài)”,狀態(tài)置為q3,但是計(jì)數(shù)不會(huì)增加。

3.俯臥撐測(cè)試模塊

(1)根據(jù)模塊1中獲取到的被測(cè)人體輪廓,構(gòu)建被測(cè)人體外接矩形。默認(rèn)當(dāng)前狀態(tài)為“其他狀態(tài)”。計(jì)算矩形的寬度與高度的比值,若大于預(yù)設(shè)閾值(跪姿俯臥撐為1.2,標(biāo)準(zhǔn)俯臥撐為1.5),則認(rèn)為被測(cè)人體處于俯臥狀態(tài)。

(2)在確認(rèn)俯臥狀態(tài)后,進(jìn)一步判斷外接矩形的寬高比,當(dāng)其落與閾值范圍[1.9-2.5]之間設(shè)置當(dāng)前狀態(tài)值為“準(zhǔn)備狀態(tài)”;落與[2.5-3.31]區(qū)間時(shí)設(shè)置當(dāng)前狀態(tài)為“中間狀態(tài)”;當(dāng)寬高比大于3.31時(shí),設(shè)置當(dāng)前狀態(tài)為“完成狀態(tài)”。當(dāng)寬高比不處于以上任意區(qū)間時(shí),設(shè)置當(dāng)前狀態(tài)為“其他狀態(tài)”。

(3)狀態(tài)轉(zhuǎn)移條件如圖2所示:q0為起始狀態(tài),q3狀態(tài)出現(xiàn)視為一次完整的俯臥撐動(dòng)作,計(jì)數(shù)加1。當(dāng)被測(cè)人體動(dòng)作滿足該動(dòng)作“準(zhǔn)備狀態(tài)”時(shí),狀態(tài)置為q1;當(dāng)被測(cè)人體的動(dòng)作處于“中間狀態(tài)”時(shí),狀態(tài)置為q2;當(dāng)使用者動(dòng)作處于“完成狀態(tài)”時(shí),狀態(tài)置為q3,計(jì)數(shù)+1;若被測(cè)人體完成后保持狀態(tài),狀態(tài)置為q4,直到被測(cè)人體回到起始準(zhǔn)備狀態(tài)時(shí)狀態(tài)置為q1。若被測(cè)人體中途的動(dòng)作使圖像不滿足以上4中判斷,狀態(tài)置為q0,處于“其他狀態(tài)”,直到被測(cè)人體達(dá)成“準(zhǔn)備狀態(tài)”,狀態(tài)置為q1。如果被測(cè)人體直接從“準(zhǔn)備狀態(tài)”變?yōu)椤巴瓿蔂顟B(tài)”,狀態(tài)置為q3,但是計(jì)數(shù)不會(huì)增加。

4.語(yǔ)音識(shí)別模塊

(1)用戶第一次使用時(shí),會(huì)提示用戶記錄下開(kāi)始和結(jié)束的指令語(yǔ)音信息,在此使用時(shí),根據(jù)體能測(cè)試控制模塊控制,用戶分別發(fā)出“開(kāi)始”和“結(jié)束”語(yǔ)音指令后,利用kinect的sdk語(yǔ)音包進(jìn)行錄音,并生成該錄音音頻的波形圖。

(2)對(duì)錄制的音頻使用短時(shí)能量參數(shù)來(lái)進(jìn)行語(yǔ)音端點(diǎn)檢測(cè),求出所有幀中最大短時(shí)能量en_max,將0.03×en_max作為端點(diǎn)檢測(cè)的閾值,同時(shí),將0.01×en_max認(rèn)為環(huán)境噪聲作為在命令段內(nèi)不計(jì)入運(yùn)算的幀的閾值,這樣將短時(shí)能量大于端點(diǎn)閾值的數(shù)據(jù)幀進(jìn)行編號(hào)后計(jì)算出每幀的平均幅差函數(shù);

(3)將計(jì)算得到的語(yǔ)音指令信號(hào)的平均幅差特征作為語(yǔ)音特征參數(shù)存儲(chǔ)于模板中,進(jìn)而建立用戶命令模型,作為該用戶語(yǔ)音指令待匹配模板;

(4)用戶在體能測(cè)試控制模塊中選擇了需要測(cè)試的項(xiàng)目,包括仰臥起坐、跪姿俯臥撐或標(biāo)準(zhǔn)俯臥撐后,語(yǔ)音識(shí)別模塊進(jìn)入等待狀態(tài),調(diào)用kinect體感交互設(shè)備的sdk打開(kāi)內(nèi)置麥克風(fēng)采集語(yǔ)音信號(hào);

(5)對(duì)用戶發(fā)出的語(yǔ)音信號(hào)提取完成后,將語(yǔ)音信號(hào)的特征參數(shù)與語(yǔ)音識(shí)別模塊中的待匹配模板中的兩個(gè)指令進(jìn)行匹配,若與開(kāi)始指令匹配,則仰臥起坐測(cè)試模塊或俯臥撐測(cè)試模塊開(kāi)始檢測(cè)計(jì)數(shù)同時(shí)測(cè)試反饋模塊開(kāi)始計(jì)時(shí),若與結(jié)束指令匹配,則停止計(jì)數(shù)同時(shí)測(cè)試反饋模塊結(jié)束計(jì)時(shí),并將計(jì)數(shù)數(shù)據(jù)傳遞給運(yùn)動(dòng)測(cè)試反饋模塊;若與開(kāi)始指令和結(jié)束指令均不匹配,則不執(zhí)行任何操作。

5.測(cè)試反饋模塊

(1)當(dāng)用戶發(fā)出開(kāi)始指令時(shí),測(cè)試反饋模塊開(kāi)始計(jì)時(shí);當(dāng)用戶發(fā)出結(jié)束指令時(shí),測(cè)試反饋模塊停止計(jì)時(shí),計(jì)算用戶發(fā)出指令和結(jié)束指令的時(shí)間間隔,計(jì)算該次測(cè)試所消耗的時(shí)間。讀取運(yùn)動(dòng)測(cè)試模塊中所記錄的用戶完成動(dòng)作個(gè)數(shù)。測(cè)試反饋模塊以圖形化界面展示該次測(cè)試過(guò)程中完成動(dòng)作個(gè)數(shù),消耗的時(shí)間,運(yùn)動(dòng)過(guò)程中所消耗的能量以及該被測(cè)人體運(yùn)動(dòng)能力強(qiáng)度評(píng)價(jià)。

(2)對(duì)于仰臥起坐運(yùn)動(dòng)檢測(cè),該次運(yùn)動(dòng)所消耗的能量=10*(m/60)*動(dòng)作個(gè)數(shù),其中m為被測(cè)人體體重(單位kg)。計(jì)算運(yùn)動(dòng)強(qiáng)度系數(shù)=完成仰臥起坐個(gè)數(shù)/耗時(shí)(單位:秒)。強(qiáng)度系數(shù)大于1為s級(jí),0.7-1為a級(jí),0.5-0.7為b級(jí),0.3-0.5為c級(jí),0.3以下為d級(jí)。

(3)對(duì)于俯臥撐運(yùn)動(dòng)檢測(cè),標(biāo)準(zhǔn)俯臥撐所消耗的能量=g*m*h。其中g(shù)為10n/kg,m為被測(cè)人體體重(單位為kg),h為被測(cè)人體前臂的長(zhǎng)度(單位為m)。跪姿俯臥撐所消耗的能量=(2/3)*g*m*h。計(jì)算運(yùn)動(dòng)強(qiáng)度系數(shù)=完成俯臥撐個(gè)數(shù)/耗時(shí)(單位:秒)。強(qiáng)度系數(shù)大于0.8為s級(jí),0.7-0.8為a級(jí),0.4-0.7為b級(jí),0.2-0.4為c級(jí),0.2以下為d級(jí)。

測(cè)試方法:

(1)本系統(tǒng)測(cè)試硬件環(huán)境為kinect1.0以及硬件配置為內(nèi)存容量為2g以上,硬盤容量為256g,軟件環(huán)境為opencv3.0,windows10,kinect1.0,visualstudio2010以上版本。

(2)仰臥起坐測(cè)試方法為:被測(cè)人體仰臥于距離kinect攝像頭1-2米處。屈膝仰臥于地面,雙手扶于耳部時(shí)即進(jìn)入準(zhǔn)備狀態(tài)。用戶根據(jù)自己預(yù)先存入系統(tǒng)中的語(yǔ)音指令,向系統(tǒng)發(fā)出語(yǔ)音提示信號(hào),語(yǔ)音匹配成功后系統(tǒng)進(jìn)入體能記錄狀態(tài)。

(3)俯臥撐測(cè)試方法為:被測(cè)人體俯臥于距離kinect攝像頭1-2米處。選擇跪姿俯臥撐時(shí),被測(cè)人體在雙膝著地小腿抬起,髖關(guān)節(jié)與大腿呈一條直線,頭部抬起,雙手撐地時(shí)即進(jìn)入準(zhǔn)備狀態(tài)。選擇標(biāo)準(zhǔn)俯臥撐時(shí),被測(cè)人體在雙腳著地,背部與腿部呈一條直線,頭部抬起,雙手撐地時(shí)即進(jìn)入準(zhǔn)備狀態(tài)。用戶根據(jù)自己預(yù)先存入系統(tǒng)中的語(yǔ)音指令,向系統(tǒng)發(fā)出語(yǔ)音提示信號(hào),語(yǔ)音匹配成功后系統(tǒng)進(jìn)入體能記錄狀態(tài)。

(4)當(dāng)用戶希望結(jié)束本次訓(xùn)練或測(cè)試時(shí),根據(jù)預(yù)先存入系統(tǒng)中的語(yǔ)音指令,向系統(tǒng)發(fā)出語(yǔ)音提示信號(hào),語(yǔ)音匹配成功后系統(tǒng)結(jié)束體能記錄,并向用戶反饋體能測(cè)試結(jié)果。

本發(fā)明未詳細(xì)描述的部分屬于本領(lǐng)域公知技術(shù)。

以上所述,僅為本發(fā)明部分具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本領(lǐng)域的人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1