//Logo Image
作者:陳延暐(2011-07-25);推薦:徐業良(2011-07-26)
附註:本文為九十九學年度元智大學機械工程研究所陳延暐碩士論文「基於體感互動科技發展互動式溝通與情緒感知平台」第章。

第三章 Kinect人體骨架辨識技術進行活動力監測

本章敘述以Kinect人體骨架辨識技術進行活動力監測,包括活動頻率與幅度,以及跌倒等異常活動偵測,並說明其判斷方式以及程式撰寫內容。

3.1 日常生活活動監測

日常生活活動(Activities of Daily Living, ADL)的定義為維持個人基本生活的主要活動,包括吃飯、換衣服、起身、行走、淋浴洗澡及如廁等[Katz et al., 1963]。目前已有許多相關研究顯示,一個人的ADL表現能力和健康狀況有密切的關係,如Skumlien等人[2005]指出當ADL表現呈現低能量時,則代表某一病徵的潛在或身體機能的衰退,另外ADL的表現也可作為判讀與評估生活品質(quality of life, QoL)的重要指標,如觀察到日常生活活動改變時,可能代表了潛在著疾病或生理機能退化的早期徵兆[Kenneth 2000]

傳統的評估方式是用日記或是問卷調查,以獲得受測者的生活作息資料,如ADL Scales [Katz et al., 1970, 1983; Katz and Akpom, 1976]、巴氏量表(Barthel Index, BI) [Mahoney et al., 1965]以及功能獨立量表(Functional Independence Measure Scales, FIM)  [Tinetti, 1986],但此種方式需要受測者主觀的認知,且測試地點多數都在實驗室內進行,與實際的作息環境有落差。

最早澳洲新南威爾斯大學(University of New South Wales)的研究團隊,提出以簡易的感應器搭配遠端通訊平台,達到遠端監測以及即時的傳輸數據[Celler et al., 1994, 1995],在家庭環境中進行ADL觀察,可得到更準確的生活作息資訊,感應器設計也儘量減少對高齡者日常生活的影響。Ogawa等人[2002]將多個紅外線感測器分佈於居家環境中,並搭配機械式、電磁式及光電式的感測器,偵測受測者在居家中的位置。另外Noury等人[2003]則是使用上述之感應器並結合生理訊號與環境類的感測器,提出「智慧健康屋(Health Smart Homes)」的概念,蒐集受測者在環境中的活動資料。

活動力(mobility)監測是ADL監測的基礎,本研究規劃以Kinect攝影機作為感測器,以人體骨架辨識技術進行活動力監測,包括活動頻率與活動幅度。除了活動力監測之外,本研究也嘗試使用Kinect人體骨架辨識技術進行跌倒等異常活動偵測。

跌倒是高齡者經常發生之意外事件。目前的跌倒偵測方式可分為攜帶式和固定式,攜帶式跌倒偵測是將感測器配戴在使用者身上,雖然感測器的體積較小方便使用者配戴,且不需額外的監視設備,不過當使用者在某些場所(如浴室、廁所)較不方便配戴。固定式跌倒偵測是將感應裝置設置於使用者的活動環境中,使用者不需配戴其他設備,雖然在某些角度會有偵測死角,不過此種偵測方式對高齡者的負擔較小,較適合觀察高齡者在特定空間中的活動。多數的固定式跌倒偵測研究也是使用動作擷取技術,其中Bromiley等人[2002]將攝影機擷取到的影像作影像處理,並搭配紅外線深度影像及演算法求得受測者的移動速度,將移動速度作為判斷跌倒的依據。

目前常見的跌倒偵測部位有腰部、大腿、手、胸部以及頭部,其中胸部與頭部在日常生活中較不會有劇烈的運動,且發生跌倒時,兩者的轉動慣量變化最明顯。在攜帶式的跌倒偵測中也常將胸部與頭部作為偵測部位,不過耳掛式及胸掛式的感測器常會因使用者的活動導致掉落,且感測器放置於頭部對使用者是種負擔。本研究所使用的固定式的跌倒偵測,針對頭部或胸部動作進行偵測。

3.2 Kinect人體骨架辨識技術取得人體關節座標

在第二章中本研究使用FAAST作為按鍵模擬器,只能將動作轉換為特殊按鍵,無法得到更詳細的關節座標資訊。在活動力監測、以及跌倒偵測方面,多數都以使用者肢體的位置作為判斷的依據,因此在本節將說明如何以Visual Studio程式撰寫,得到使用者的人體關節座標。

第二章中提到PrimeSense已可透過Kinect取得深度影像,並且從影像中分辨出人體的輪廓,而PrimeSense也推出NITE作為中介軟體,以達到更進階的分析,目前NITE已能偵測關節位置和角度、追蹤手部位置、偵測手勢以及辨識場景。本研究則是以NITE的範例程式當作參考,讀取NITE分析到的骨架資訊。

辨識人體骨架之流程主要程式如圖3-1所示。當使用者進入Kinect的視野內時,NITE會以辨識場景的功能將使用者的輪廓獨立出來,並以偵測到的順序將使用者標號,在此會顯示「偵測到移動物體」提醒使用者已進入偵測範圍;當使用者擺出NITE預先定義的骨架辨識姿勢「Psi」時(如圖3-2所示),NITE可偵測到使用者已擺出姿勢,並顯示開始進行骨架辨識訊息;當辨識完成後,則會顯示辨識是否成功,提醒使用者目前辨識的狀態,圖3-3為完成辨識後之訊息。當使用者離開Kinect的視野範圍,或是距離Kinect太近導致骨架遺失時,也會出現一提醒字串。

3-1. 辨識程式

3-2. NITE預先定義的骨架辨識姿勢「Psi

3-3. 顯示辨識成功訊息

在前一章提到辨識軟體可偵測到24個人體關節,但目前NITE只能針對其中15個關節進行分析(如圖3-4所示),而每個關節都具有座標和方向兩種資訊。其中NITE擷取到的畫面與實際位置方向相反,如同照鏡子一般,當使用者面向Kinect擺動右手時,NITE卻是擷取到左手的座標變化;在NITE的定義中,各關節的座標及方向的原點都來自同一個世界座標系統,且原點為Kinect攝影機,平行Kinect的方向為X軸,且越向左值越大;垂直地面的方向為Y軸,越往上升值越大;另外Kinect拍攝的方向為Z軸,越遠離Kinect值越大,另外NITE所擷取到的關節座標單位為公釐,其各軸方向及畫面的左右方向如圖4所示。

另外NITE辨識的關節方向是由一個3×3的旋轉矩陣所表示,其代表關節的世界座標與本地座標之間的旋轉角度,而NITE預設的姿勢為T字型(如圖3-4所示),當使用者擺出此姿勢時各關節的方向皆與世界座標方向一致,此時的旋轉矩陣為單位矩陣,

3-4. 15個可分析之關節

NITE範例程式中以有建立人體關節座標之程式,而本研究主要是以編輯程式進行關節資料讀取,並撰寫判斷式以達到不同之功能,其基本的讀取程式寫法如圖3-5所示。首先要進行更新以持續獲得使用者的關節資訊,而更新的語法也分為以下四種:

Ÿ             WaitAnyUpdateAll是當任意一個關節座標有變化就進行更新;

Ÿ             WaitOneUpdateAll則是可以指定特定關節有移動時才進行更新;

Ÿ             WaitNoneUpdateAll是不管是否有新的關節資訊就強迫更新;

Ÿ             WaitAndUpdateAll則是等到全部關節都有新的資訊時才更新。

當有新的關節資訊更新時,即可開始進行讀取,其中讀取關節資訊種類分為三種寫法,GetSkeletonJoint是同時讀取座標以及角度資訊,GetSkeletonJointOrientation則是讀取角度資訊,GetSkeletonJointPostion是只能讀取座標值。由於本研究需要關節座標及角度作為情緒的判斷,因此選擇GetSkeletonJoint作讀取,在圖5下方也顯示實際執行此程式之效果。

3-5. 基本讀取關節資訊程式

本研究將以此種程式寫法擷取關節座標,並希望透過同時擷取多個關節座標,再搭配判斷式的撰寫達到更進階的功能。

3.3 Kinect人體骨架辨識技術進行活動力監測

3.3.1 活動力監測判斷流程

活動力的監測如圖3-6所示,當受測者以「Psi」姿勢完成骨架辨識後,開始每6秒擷取一次關節座標(如果受測者不在畫面中,則全身的關節座標設為零),並計算各關節平均移動距離。當發生各關節平均移動距離大於預設值的狀況時,就會開始累加總移動次數,並且累加各關節平均移動距離。持續觀察一段時間後,輸出總移動次數,並將各關節平均移動距離之總和除以總移動次數,取得每次關節平均移動距離。

3-6. 活動力觀察流程

3.3.2 活動力監測程式撰寫

在活動力監測中主要是觀察固定時間內的關節移動距離,本研究中活動力監測主要是針對頭部、頸部、左右手掌、左右手肘、左右肩、左右臀以及腹部等11個關節的活動,其主要程式寫法如圖3-7所示。擷取到第一筆關節座標後,需要延遲6秒鐘並再擷取一次關節座標,以將兩筆資料作比較,而本程式是以迴圈的方式,取代直接延遲6秒,主要是因為使用者的活動為連續的動作,若是使用者在延遲的時間內進行大幅度的移動,當延遲時間結束且辨識軟體要繼續擷取座標時,較無法快速的擷取到使用者的關節,因此較好的方式為在延遲時間中持續的更新關節的座標,並且每6秒顯示一次座標值,此方式可獲得較精確的座標值,且減少辨識軟體及程式的錯誤率。

3-7. 擷取第一筆關節座標並以迴圈的方式將程式延遲6

延遲6秒後再次擷取關節座標,並將此時的座標與6秒前的座標相減,獲得關節在XYZ方向之移動量,並且計算出在空間中的移動量,其程式寫法如圖3-8、圖3-9所示。

3-8. 計算各關節XYZ方向之變化量

3-9. 計算關節在空間中的移動距離

以數學式求得各關節在6秒內的移動距離後,將各關節移動距離取平均,得到各關節平均移動距離,接下來將判斷此距離是否有超過預設值。本研究以100公厘作為移動的範圍,只要各關節平均移動距離超過此數值,就會開始累加總移動次數以及各關節平均移動距離(程式寫法如圖3-10所示),並且將資訊儲存至指定的筆記本中,記錄關節移動的時間點以及總移動距離,在每次偵測到移動時,也會顯示到目前為止各關節的移動距離及總次數(程式寫法如圖3-11所示)。

3-10. 判斷關節使否移動並儲存當次移動的時間點

3-11. 累加移動次數並顯示關節總移動距離

在觀察一段時間後,除了顯示總移動次數,也會將各關節平均移動距離之總和除以總移動次數,獲得每次各關節移動平均距離,使用者可以此數據了解在不同活動時的活動力,以作為ADL的根據,其程式寫法如圖3-12所示。

3-12. 顯示總移動次數及各關節平均移動值

3.4 Kinect人體骨架辨識技術進行跌倒偵測

3.4.1 跌倒偵測判斷流程

跌倒偵測的判斷流程如圖3-13所示,當使用者的頭部位置下降幅度過大時,會先等待5秒鐘並觀察使用者的動作,如果5秒過後使用者頭部位置已恢復至預設的高度時,則判定此事件為安全,並無跌倒發生;若是頭部位置依然低於預設高度,則判定為跌倒。

3-13. 跌倒偵測判斷流程.

3.4.2 跌倒偵測程式撰寫

跌倒偵測需要偵測短時間內的位置變化,因此本研究設定每次更新座標的時間間隔為0.2秒,以得到即時的座標變化,並且將兩次擷取的座標高度相減,獲得移動的距離,其程式寫法如圖3-14所示。

3-14.讀取短時間內頭部位置變化

判斷跌倒的程式如圖18所示,當頭部移動的距離超過200公厘時,會顯示頭部異常移動的字串,並且開始進行計時,在計時的5秒鐘內,也會每秒更新並顯示頭部的高度變化;經過5秒之後,再次讀取頭部位置,若是此時的頭部位置低於預設值-50,則顯示發生跌倒的字串,若是此時的頭部位置已經高於預設值,則顯示狀態安全的字串。

3-15. 偵測頭部位置即顯示目前使否有跌倒發生

3.5 實際測試結果

3.5.1 各細部關節活動量監測測試

為驗證本研究活動力監測演算法所得結果是否合理,本節首先目前針對三種居家活動進行觀察,包含看電視、使用電腦以及打掃,觀察在哪一種活動中總移動次數最多,以及在活動中哪一個關節移動的幅度最大、移動最頻繁,並透過統計數據了解各活動中肢體活動的特徵。由於NITE所擷取到的影像與實際的左右相反,因此以下顯示的數據都需左右對調,譬如圖示上的右手平均移動值事實上是左手的平均移動值。

(1)   使用電腦

從圖3-16的統計數據可發現,在使用電腦時右手及左手臂的移動量最大,且一些手部的移動數值明顯比其他的數值高,這表示手部是最主要的操作部位;另外在手部動作中,右肩與左肩的數據比其他手部動作的數據少很多,這也說明受測者在使用電腦時,主要是以手臂前端在操作電腦。頭部及脖子雖然有移動的數據,但是數值都相當小,主要是受測者在操作電腦時,是以眼球轉動觀看電腦螢幕,因此較無頭部移動的情形;由圖3-17的統計數據也可發現在使用電腦時,受測者的臀部及腹部較無移動的情形,這也顯示受測者是以固定的狀態使用電腦,譬如固定站姿或坐姿。

3-16. 使用電腦時各關節之移動距離

3-17. 使用電腦時各關節移動距離與時間分佈圖

(2)   看電視

從圖3-18的統計中可發現看電視的移動次數比使用電腦少,但手部動作的平均移動值比使用電腦高;由圖3-19中也可發現多數的數據集中在前三分鐘;譬如受測者在前三分鐘,腹部以及臀部都有明顯的移動,但過了三分鐘後只剩下手部有活動的情形,這表示受測者有可能在3分鐘前還未找到較佳的坐姿,直到三分鐘後才固定好觀看的姿勢;另外在4分鐘過後,受測者的移動次數相當少,而且都是間隔一段時間後才有移動的情形,這表示受測者可能在觀看電視到一個段落後,有轉台或是拿東西的情形發生。

3-18. 看電視時各關節之移動距離

3-19. 看電視時各關節移動距離與時間分佈圖

(3)   打掃

由圖3-20的統計數據可發現,打掃的移動次數最多,且每個部位的平均移動值都比使用電腦及看電視高許多,其中數值較高的為左手、右手以及左手臂,這也顯示打掃時此三個部位的動作幅度最大。由圖3-21中也可發現,三種活動中打掃的動作移動最頻繁,但不同於使用電腦的活動,在打掃中除了手部的動作次數較多之外,左臀、右臀以及腹部都有明顯且密集的移動,這也表示受測者可能有走動的情形。

3-20. 打掃時各關節之移動距離

3-21. 打掃時各關節移動距離與時間分佈圖

3.5.2 活動力與跌倒偵測測試

第二階段測試針對在工作桌前的活動進行觀察,並觀察1小時內的或動力指標。如圖3-22所示,橘色線所表示的為該分鐘各關節平均移動距離,而藍線則是該分鐘的總移動次數。受測者在前25分鐘內的活動多半都是小幅度的移動,移動次數有達到46次,各關節平均移動距離也有達到500公厘,但持續時間都相當短暫,因此整體而言前25分鐘主要都是靜態的活動;直到29分鐘時,受測者才出現大幅度的移動,且維持了3分鐘;觀察時間到40分鐘時,各關節平均移動距離的值為0,表示受測者已不在觀察的範圍內,且一直維持到46分時受測者的關節移動距離數值才出現變化,表示受測者已回到觀察範圍內,並持續進行活動。

3-22. ㄧ小時內各關節平均移動距離以及總移動次數之變化

跌倒偵測的測試中,主要針對系統靈敏度(sensitivity)進行初步的測試。由於本延就跌倒的判斷主要是以頭部高度變化為依據,因此靈敏度的測試是以100次移動頭部的高度,並將實際擷取到的次數與頭部移動次數作統計,得到的靈敏度為91%


 

參考資料

Bromiley, P. A., Courtney, P., and Thacker, N. A., “Design of a visual system for detecting natural events by the use of an independent visual estimate: A human fall detector,” In Empirical Evaluation Methods in Computer Vision, H. I. Christensen and P. J. Philips (eds.), World Scientific Publishing, 2002.

Celler, B. G., Hesketh, T., Earnshaw, W., Ilsar, E., 1994. “An instrumentation system for the remote monitoring of changes in functional status of the elderly at home,” Proceedings of the 16th Annual International Conference of the IEEE EMBS, Vol. 2, pp. 908-909.

Celler B.G., Lovell, B.G., Earnshaw W. A., Ilsar E. D., Betbeder-Matibet L., 1994. “Development of an integrated system for remote monitoring of health status of the elderly at home,” Biomedical Engineering, Application, Basis, Communications, Vol. 6:6, pp. 919-926.

Celler, B.G., Earnshaw, W., Ilsar, E.D., Betbeder-Matibet, L., Harris, M.F., Clark, R., Hesketh, T., Lovell, N. H., 1995. “Remote monitoring of health status if the elderly at home. A multidisciplinary project on aging at the University of New South Wales,” International Journal of Bio-medical Computing, Vol. 40, pp. 147-155.

Hughes, M. A., Schenkman, M. L., Chandler, J. M. and Studenski, S. A., "Postural responses to platform perturbation: kinematics and electromyography." Clinical Biomechanics, 10(6), 318-322, (1995).

Katz, S., Ford, A. B., Moskowitz, R. W., Jackson, B. A., Jaffe, M. W., 1963. “Studies of illness in the aged: The index of ADL, a standardized measure of biological and psychosocial function”, Journal of the American Medical Association, vol. 185, pp. 914-919.

Katz, S., Akpom, C., 1976. “A measure of primary sociobiological functions”, International Journal of Health Service, vol. 6, no. 3, pp. 493-508.

Kaushik A., Celler B.G., 2006. “Use of infrared sensors for extimation of energy expenditure by elderly people living alone at home,” Proceedings of the 28th IEEE EMBS Annual International Conference, NY, USA.

Kenneth, B., Daniel, B., Mark, L., 2000. “Clinical Investigation – Nursing Assistants Detect Behavior Changes in Nursing Home Residents That Precede Acute Illness: Development and Validation of an Illness Warning Instrument,” Journal of the American Geriatrics Society, v 48, n 9, p 1086-1091. no.5. 85-97.

Lawton M. P., Brody, E. M., 1969. “Assessment of older people: Self-maintaining and instrumental activities of daily living”, The Gerontologist, vol. 9, no. 3, pp. 179-186.

Mahoney F. I, Barthel D., 1965. “Functional evaluation: the Barthel Index,” Maryland State Med Journal no. 14, pp. 56-61.

Noury N. Virone G., Barralon P., Ye J., Rialle V. and Demongeot J., 2003. “New trends in health smart homes,” Proceedings of 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry. pp. 118–127.

Ogawa M., Togawa T., “Monitoring daily activities and behaviors at home by using brief sensors,” 1st Annual International IEEE-EMBS Special Topic Conference on Microtechnologies in Medicine & Biology, Oct. 12-14, Lyon, France, 2002.

Suzuki R., Ogawa M., Otake S., Izutsu T., Tobimatsu Y., Iwaya T., Izumi S-I., 2006. “Rhythm of daily living and detection of atypical days for elderly people living alone as determined with a monitoring system,” Journal of Telemedicine and Telecare, Vol. 12, pp. 208-214.

Suzuki R., Otake S., Izutsu T., Yoshida M., Iwaya T.,        2006. “Monitoring daily living activities of elderly people in a nursing home using an infrared motion detection system,” Telemedicine and e-health, Vol. 12, No. 2, pp. 146-155.

Skumlien, S., Hagelund, T., Bjørtuft, Ø., Ryg, M.S., 2005. “A field test of functional status as performance of activities of daily living in COPD patients”, Respiratory Medicine, Vol. 100, Iss. 2, p 316-323.

Tinetti M. E., 1986. “Performance-oriented assessment of mobility problems in elderly patients,” J Am Geriatr Soc., no. 34, pp. 119–126.