陳旭鳳 趙彥偉 王菲菲 曹學文 楊一哲



關鍵詞:計算機視覺技術;姿態檢測;人體骨骼關鍵點;跌倒檢測
為了降低老年人因為跌倒而受到的傷害,可以設計出一種跌倒檢測報警系統,實時檢測老年人的人體姿態。目前的跌倒檢測系統可大概分為三種類別:(1)以穿戴式傳感器為基礎的跌倒檢測系統;(2)以計算機視覺等相關技術為基礎的跌倒檢測系統;(3)以音頻分析為基礎的跌倒檢測系統。
本文針對基于可穿戴設備傳感器、視頻分析和環境傳感器的跌倒檢測方法儲存資源受限、計算資源消耗大和精度低的缺點,結合室內服務機器人的計算機視覺技術平臺,提出一種基于靜態圖像姿態估計的服務機器人跌倒檢測報警系統,本文所設計的系統主要包括三個組成部分:助老機器人平臺、人體骨骼關鍵點檢測、跌倒檢測算法。
1助老機器人平臺
本文基于ROS服務機器人操作系統來進行研究。ROS機器人操作系統是一個機器人軟件平臺,它提供了操作系統應有的服務,包括硬件抽象、底層設備控制、進程間消息傳遞等。其系統架構及主要性能如下:(1)視覺傳感器:高分辨率彩色攝像頭(1920×1080、32bit、30fps)、低分辨率深度攝像頭(512×424、16bit、30fps);(2)行走速度:最大60cm/s;(3)爬坡能力:5度;(4)電機:12V 146RPM帶編碼器直流減速電機;(5)驅動機構:2個主動輪、1個從動輪(90mm全鋁全向輪X3)。
本文的研究主要基于ROS服務機器人(如圖1)系統的視覺傳感器。通過視覺傳感器獲取含有服務機器人所跟隨目標的數字圖像。
2人體骨骼關鍵點檢測
本文采用檢測人體骨骼檢測點的方法來進行跌倒檢測設計實驗。
目前的多人人體骨骼關鍵點檢測有兩個研究方向,自上而下和自下而上。其中自下而上的方法主要包含兩個部分:關鍵點檢測和聚類。首先檢測出圖像中的關鍵點,然后通過相關技術手段將關鍵點聚成不同的個體,其中代表性算法有PAF、Part Segmentation等。目前人體關鍵點檢測的數據集大致可以分為兩類,即2D人體關鍵點和3D人體關鍵點。
本文擬采用基于PAF(Part Affinity Fields)的姿態檢測算法。該方法使用非參數表示,叫作部分親和域(PAFs),PAF能夠聯系人體身體部位與目標圖像中被檢測到的人體圖像,進行編碼,可以使用自底向上的貪婪解析,不論被檢測目標圖像中有多少個人體圖像,都能高精確度地實現性能。
通過姿態估計算法PAF對靜態圖像中的人體姿態進行檢測,得到一組人體骨骼關鍵點的坐標,用于下一步的跌倒檢測判別。
3跌倒檢測算法
在一個靜態的圖像中,當人體在處于正常狀態和處于跌倒狀態時的人體姿態會有所不同。本文設計的跌倒檢測算法就是通過設置人體骨骼關鍵檢測點之間一系列的角度閾值,對檢測到的目標圖像進行逐層分析判斷,以此來最終判斷人體是否為跌倒狀態。
3.1多閾值控制設計
第一,參考坐標系選取。識別目標圖像時,以移動機器人的視覺傳感器坐標系為參考坐標系。
第二,目標圖像T1和T2設定。移動機器人通過間隔固定時間TH(單位為秒)進行跟蹤目標的圖像獲取,在Tl時刻獲取到的圖像命名為T1_image,在Tl+TH時刻獲取到的圖像命名為T2_image。本文僅以T1_image和T2_image為例對跌倒檢測報警方案進行說明。
第三,跌倒檢測算法所依據檢測點如圖2所示,關鍵判斷條件包括七條內容:(1)條件一:判斷目標圖像rI2一image的檢測點2相對于T1_image是否產生向下的位移;(2)條件二:判斷目標圖像T2_image中,檢測點1與檢測點2的連線和縱軸的夾角,是否大于閾值30度;(3)條件三:判斷目標圖像rl2_image中,檢測點4與檢測點3的連線和縱軸夾角,是否大于閾值45度;(4)條件四:判斷目標圖像T2_jmage中,檢測點4與檢測點6的連線和縱軸夾角,是否大于閾值70度;(5)條件五:判斷目標圖像T2_image中,檢測點4與檢測點3的連線和檢測點4與檢測點5的連線夾角,是否大于閾值90度;(6)條件六:判斷目標圖像T2_jmage中,檢測點5與檢測點4的連線和檢測點5與檢測點6的連線夾角,是否大于閾值35度;(7)條件七:判斷目標圖像T2_jmage中,檢測點6與檢測點5的連線和縱軸夾角,是否大于閾值40度。
以上涉及點3、4、5、6的檢測點對,均為左右兩側分別判斷,對結果取邏輯或的關系;以上提到的縱軸指的是世界坐標系下的Z軸而非Y軸;以上涉及的夾角值,范圍為0~180度。
3.2跌倒檢測判定流程
跌倒檢測具體判定流程可詳細描述為:(1)若依次滿足條件一、條件二、條件三、條件五,再來看是否滿足條件四,若滿足條件四,判斷為跌倒狀態,報警;反之,若不滿足條件四,則判斷為未跌倒狀態,不報警。(2)當依次滿足條件一、條件二、條件三,但是不滿足條件五時,再看條件七,若滿足條件七,則判斷為跌倒狀態,報警;反之,若不滿足條件七,則判斷為未跌倒狀態,不報警。(3)當依次滿足條件一、條件二,不滿足條件三時,再看條件四,若滿足條件四,則判斷為跌倒狀態,報警;反之,若不滿足條件四,則判斷為未跌倒狀態,不報警。(4)當滿足條件一,不滿足條件二時,若不滿足條件四,則判斷為未跌倒狀態,不報警。(5)當滿足條件一,不滿足條件二時,若滿足條件四,再看條件六,若滿足條件六,則判斷為跌倒狀態;反之,若不滿足條件六,則判斷為未跌倒狀態,不報警。
通過以上工作流程,服務機器人可完成跟蹤目標是否跌倒的檢測與判定,再根據系統功能設定完成跌倒報警。
4方案驗證與改進措施
4.1數據采集與關鍵點識別
數據采集。根據上文提出的設計思路,設計多種人體姿態類型,對每個人體姿態下采集多張人體圖片作為測試用的數據,對應標簽設置為二分類,包括跌倒狀態和未跌倒狀態兩種情況。人體的站立、下蹲、坐下、彎腰等這些人體姿態屬于人體正常姿態,在老人跌倒報警系統中判定為未跌倒狀態,不報警。人體跌坐在地(發生跌倒行為后人自行撐起上身,但是也無法自行起身情況)和跌倒在地(完全跌落在地,無法撐起身體)這兩種情況在老人跌倒報警系統中便被判定為跌倒狀態,報警。作為負樣本,采集了人們在躺椅上休息時的人體姿態以及癱坐在沙發上的人體姿態進行數據的測試,這些人體姿態在老人跌倒報警系統中被判定為未跌倒狀態,不報警。將這些圖片采集完成后進行跌倒檢測判別。
本文設計的跌倒檢測報警系統采用基于Par Affinity Fields的姿態檢測方法,能夠輸出21個骨骼檢測點的人體姿態圖片,即輸出目標圖像中所有人體的2D人體檢測點坐標,實驗數據截取部分如圖3所示。
從左到右、從上到下的順序:(a)躺椅.1;(b)躺椅-2;(c)彎腰-1;(d)彎腰-2;(e)休閑躺-1;(f)休閑躺-2;(g)高坐-1;(h)高坐-2;(i)蹲下-l;(j)蹲下-2;(k)低坐-1;(l)低坐-2;(m)跌坐-1;(n)站立-1;(o)跌倒-1;(p)跌倒-2。
4.2跌倒檢測算法驗證
通過多輪測試確定參數后,進行上述跌倒檢測算法的準確性驗證。使用圖3骨骼檢測點結果作為輸入圖片,檢測老人跌倒報警方案的判別效果,下表數據證明我們的檢測方案是簡易并且有效的。
4.3改進措施
針對目前老人跌倒報警方案的設計,還可以結合助老移動機器人的移動功能進行功能改進:對老人跌倒報警系統判定為疑似跌倒圖像進行多方位的檢測。
具體實施方案:在跌倒檢測系統第一次判定輸出的結果為“跌倒、報警”信號時,在合理的短時間內(結合移動機器人性能以最快的移動速度)以服務對象老人為中心,進行一個單向的繞行。在180度內完成3次再獲取靜態目標圖像(角度差為60度),進行跌倒檢測——如果在這4次檢測結果中有大于等于2次結果的均為“跌倒、報警”信號,則此報警系統判定老人為“跌倒,報警”;否則則判定老人為“未跌倒,不報警”。
結語
本文所設計的老人跌倒檢測報警系統,是針對靜態圖像的姿態估計結果進行跌倒檢測,從一定程度上能夠降低計算量消耗;針對姿態估計算法所得人體骨骼關鍵點坐標,進行人體關鍵骨骼檢測點之間的幾何關系與本專利設定的多個閾值相比,判定最終跌倒與否,降低老人處于蹲下、坐下或是斜躺休息等類似于跌倒動作的誤判概率。多閾值控制提高了判定準確率,無須再次使用其他網絡模型等技術手段進行誤判結果的排除,大大降低了計算復雜度,提升了系統檢測的時效性。
作者簡介:陳旭鳳(1991—),女,漢族,河北定州人,碩士研究生,講師,研究方向:人工智能、機器視覺。
*通訊作者:趙彥偉。