靳海偉, 彭 力 , 盧曉龍
(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無(wú)錫214122)
截止2013 年底,我國(guó)60 周歲及其以上人口約20 243 萬(wàn)人,占總?cè)丝诘?4.9%,人口老齡化情況嚴(yán)重。目前許多家庭的子女由于在外工作等原因,無(wú)暇照顧老人,老人的健康維護(hù)顯得十分重要。對(duì)于大多數(shù)老年人來(lái)說(shuō),摔倒是造成嚴(yán)重受傷的原因之一[1]。研究表明,20% ~30% 的老年人不同程度經(jīng)受由摔倒引起的病痛[2],因此快速而準(zhǔn)確地獲取摔倒信息為傷者提供及時(shí)救助,可以大大提高醫(yī)療效率,降低由摔倒延遲發(fā)現(xiàn)而引起的進(jìn)一步傷害。
目前摔倒檢測(cè)的相關(guān)算法可以分為兩類(lèi):基于可穿戴式設(shè)備的摔倒檢測(cè)算法和基于視頻的摔倒檢測(cè)算法?;诳纱┐魇皆O(shè)備的摔倒檢測(cè),根據(jù)設(shè)備監(jiān)測(cè)到的數(shù)據(jù)來(lái)反映人體活動(dòng)變化。文獻(xiàn)[3]運(yùn)用三軸加速度傳感器采集數(shù)據(jù),通過(guò)確定三軸與重力加速度的夾角來(lái)確定姿態(tài)變化。文獻(xiàn)[4]運(yùn)用多種傳感器和摔倒前后心率變化進(jìn)行檢測(cè)。文獻(xiàn)[5]提出一種基于統(tǒng)計(jì)學(xué)判別分析的摔倒檢測(cè)算法,由采集到的加速度傳感器進(jìn)行處理得到摔倒特征向量空間進(jìn)行判別。但是可穿戴式設(shè)備容易受到外界噪聲干擾,例如人體的自然伸縮,其正確判別率低?;谝曨l的摔倒檢測(cè),通過(guò)布置在高危區(qū)域的攝像頭捕捉人體活動(dòng),運(yùn)用動(dòng)作跟蹤技術(shù)來(lái)識(shí)別摔倒事件。文獻(xiàn)[6]利用外接方框來(lái)代表人體,通過(guò)人體寬高比特征進(jìn)行摔倒判斷,算法簡(jiǎn)單但容易產(chǎn)生誤判。文獻(xiàn)[7]在人體寬高比特征的基礎(chǔ)上采用有效面積比和中心變化率兩個(gè)特征來(lái)進(jìn)行結(jié)果修正,能有效防止誤判。文獻(xiàn)[8]通過(guò)提取視頻圖像序列中人體形狀特征積累似然率和設(shè)置閾值來(lái)進(jìn)行摔倒動(dòng)作匹配,其算法復(fù)雜,實(shí)時(shí)性較差。
文中提出一種基于輪廓跟蹤的摔倒檢測(cè)算法,通過(guò)提取視頻中的運(yùn)動(dòng)目標(biāo)(老人)進(jìn)行輪廓跟蹤,生成邊界鏈碼,并對(duì)實(shí)際邊界鏈碼進(jìn)行插值長(zhǎng)度調(diào)整,然后通過(guò)與摔倒模型進(jìn)行歐氏空間距離比較判別是否摔倒。最終通過(guò)實(shí)驗(yàn)證明該算法計(jì)算復(fù)雜度低,易于實(shí)現(xiàn),提高了摔倒檢測(cè)結(jié)果的正確率。
由于處于視頻監(jiān)控的老人危險(xiǎn)區(qū)域較為集中,例如走廊、樓道拐角等,所以視頻監(jiān)控中的背景部分較為固定,相對(duì)變化較小,因此采用背景減除法來(lái)提取運(yùn)動(dòng)目標(biāo)(老人)。為了減小提取運(yùn)動(dòng)目標(biāo)的邊緣存在的椒鹽噪聲對(duì)邊界跟蹤的影響,采用中值濾波來(lái)消除這部分噪聲,以便得到清晰的邊緣。由于提取的目標(biāo)內(nèi)部可能存在小孔,利用形態(tài)學(xué)中膨脹和腐蝕來(lái)填充這些小孔,以便得到完整的目標(biāo)。
背景減除法[9]的原理是從視頻序列中依次采集圖像fk(x,y),將其與背景圖像bk(x,y)進(jìn)行差分得到差分圖像Dk(x,y)。表示如下:
對(duì)差分結(jié)果進(jìn)行二值化處理:
得到目標(biāo)圖像Rk(x,y)。當(dāng)Dk(x,y)中像素點(diǎn)的值大于閾值T 時(shí),被判定為前景,否則被判定為是背景。過(guò)程如圖1 所示。
圖1 背景減除法Fig.1 Background subtraction
中值濾波是基于排序統(tǒng)計(jì)理論的一種能有效抑制噪聲的非線(xiàn)性信號(hào)處理技術(shù)。中值濾波的基本原理是把數(shù)字圖像或數(shù)字序列中一點(diǎn)的值用該點(diǎn)的一個(gè)鄰域中各點(diǎn)值的中值代替,讓周?chē)南袼刂到咏鎸?shí)值,從而消除孤立的噪聲點(diǎn)。方法是用某種結(jié)構(gòu)的二維滑動(dòng)模板,將板內(nèi)像素按照像素值的大小進(jìn)行排序,生成單調(diào)上升(或下降)的二維數(shù)據(jù)序列,結(jié)果如圖2 所示。
圖2 中值濾波Fig.2 Median filter
膨脹和腐蝕是圖形形態(tài)學(xué)中最基本的兩種算子。腐蝕的作用是消除物體邊界點(diǎn),使目標(biāo)縮小,可以消除小于結(jié)構(gòu)元素的噪聲點(diǎn);膨脹的作用是將與物體接觸的所有背景點(diǎn)合并到物體中,使目標(biāo)增大,可添補(bǔ)目標(biāo)中的空洞。運(yùn)算時(shí)先膨脹后腐蝕,可以填充物體內(nèi)細(xì)小的空洞,并平滑物體邊界。
結(jié)果如圖3 所示。
圖3 膨脹腐蝕Fig.3 Expansion of corrosion
輪廓跟蹤的目的是為了獲取目標(biāo)區(qū)域的外部輪廓特征。輪廓跟蹤就是順序找出邊界點(diǎn),不僅可以跟蹤出邊界,還可以同時(shí)記錄邊界信息,生成邊界鏈碼,為形狀分析和目標(biāo)識(shí)別做準(zhǔn)備。輪廓跟蹤可以基于4 方向碼和8 方向碼分別跟蹤出4 連通的輪廓和8 連通的輪廓。但對(duì)于大多數(shù)區(qū)域,不一定存在封閉的4 連通輪廓,會(huì)導(dǎo)致基于4 方向碼的輪廓跟蹤失敗。因此,文中采用8 方向碼的輪廓跟蹤,方向碼的定義如圖4 所示。
圖4 8 連通方向碼Fig.4 8 connected direction code
假設(shè)要處理的圖像為二值圖像,而且圖像中只有一個(gè)連通的目標(biāo)區(qū)域,則輪廓跟蹤算法步驟如下:
1)從上到下、從左到右順序掃描圖形,尋找第一個(gè)目標(biāo)點(diǎn)作為邊界跟蹤的起始點(diǎn),記為A。A 點(diǎn)一定是最左上角的邊界點(diǎn),其相鄰的邊界點(diǎn)只有可能出現(xiàn)在它的左下、下、右下、右4 個(gè)鄰點(diǎn)中。定義一個(gè)搜索方向dir = 5,即從方向5 開(kāi)始搜索與A 相鄰的下一個(gè)邊界點(diǎn),用于記錄從當(dāng)前邊界點(diǎn)搜索下一個(gè)相鄰邊界點(diǎn)所用的搜索方向碼。
如果當(dāng)前搜索方向dir 上的鄰點(diǎn)不是邊界點(diǎn),則依次使搜索方向逆時(shí)針旋轉(zhuǎn)一個(gè)方向,更新dir,直到搜索到一個(gè)邊界點(diǎn)為止。如果所有方向都沒(méi)有找到相鄰的邊界點(diǎn),則該點(diǎn)是一個(gè)孤立點(diǎn)。dir 的更新公式表示為:dir = dir +1。
2)把上一次搜索到的邊界點(diǎn)作為當(dāng)前邊界點(diǎn),在其3 ×3 鄰域內(nèi)按逆時(shí)針?lè)较蛩阉餍碌倪吔琰c(diǎn),它的起始搜索方向設(shè)定:若上次搜索到邊界點(diǎn)的方向dir 為奇數(shù),則使dir = dir +6,即將上次的搜索方向順時(shí)針旋轉(zhuǎn)兩個(gè)方向;若dir 為偶數(shù),則使dir =dir +7,即將上次的搜索方向順時(shí)針旋轉(zhuǎn)一個(gè)方向。
如果起始搜索方向沒(méi)有找到邊界點(diǎn),則依次使搜索方向逆時(shí)針旋轉(zhuǎn)一個(gè)方向,更新dir,直到搜索到一個(gè)新的邊界點(diǎn)為止。
3)如果搜索到的邊界點(diǎn)就是第一個(gè)邊界點(diǎn)A,則停止搜索,結(jié)束跟蹤,否則重復(fù)上一步驟繼續(xù)搜索。
由依次搜索到的邊界點(diǎn)系列就構(gòu)成了被跟蹤的邊界,即邊界鏈碼。步驟1)中所采用的準(zhǔn)則稱(chēng)為“探測(cè)準(zhǔn)則”,目的是找出第一個(gè)邊界點(diǎn);步驟2)中所采用的準(zhǔn)則稱(chēng)為“跟蹤準(zhǔn)則”,其作用時(shí)找出所有邊界點(diǎn)。圖5 為基于8 方向的輪廓跟蹤示例,圖中黑色表示邊界像素。從最左上角A 點(diǎn)沿逆時(shí)針?lè)较蜷_(kāi)始編碼,得到邊界鏈碼為566711077123335533。
圖5 8 方向碼的輪廓跟蹤Fig.5 Outline of 8 direction code tracing
通過(guò)將一組未知的邊界鏈碼與摔倒模板鏈碼進(jìn)行比較來(lái)判斷老人是否摔倒。圖6 為用來(lái)作比較的摔倒模板,包括在地上不同方向躺著、趴著、坐著,圖中列出不同姿勢(shì)的3 種情況為例。實(shí)驗(yàn)中采用的模板為每種姿勢(shì)8 種情況(包括多角度、側(cè)身、抱手、屈腿等情況),基本上模擬出老人摔倒的各種姿勢(shì)情況。
根據(jù)輪廓跟蹤算法可以得到它們的邊界鏈碼。由于實(shí)際老人的體型大小有差別以及老人與攝像頭的距離存在不同造成實(shí)際鏈碼與模板鏈碼長(zhǎng)度不一致,這將引起較大的比較誤差。文中通過(guò)從相同起點(diǎn)開(kāi)始編碼和將較短的鏈碼擴(kuò)展到與較長(zhǎng)鏈碼相同的長(zhǎng)度來(lái)解決這個(gè)問(wèn)題。
約定從最上角的像素點(diǎn)開(kāi)始沿相同的方向(如逆時(shí)針)生成鏈碼。在擴(kuò)展鏈碼上采用插值技術(shù),假設(shè)有兩組鏈碼A 和B,A = {ai| 1 ≤i ≤m}代表較短的一組,其中ai代表鏈碼A 中的一點(diǎn),m 代表A 的長(zhǎng)度,同理B = {bi| 1 ≤i ≤n}代表較長(zhǎng)的一組。C ={ci| 1 ≤i ≤n}代表A 經(jīng)過(guò)插值后的鏈碼,通過(guò)以下兩步定義ci:
1)根據(jù)ai原來(lái)在A 的位置成比例地分布在C上。令c1= a1,當(dāng)2 ≤i ≤m,= ai。例如,設(shè)A =2 536。如果設(shè)n/m = 2,則A 的長(zhǎng)度擴(kuò)大2 倍后C =2__5_3_6,因?yàn)樵贏 上1,2,3,4 位置的編碼在C 上的分別對(duì)應(yīng)位置為1,4,6,8。
2)在C 上插入新編碼。在原來(lái)鏈碼序列的基礎(chǔ)上插入新值必然引起誤差,因此在原來(lái)序列中兩個(gè)編碼間插入新值必須符合原值的變化趨勢(shì)。這里考慮3 種插值情況:
第1 種情況為在相同的兩個(gè)編碼值間插值。這表明原來(lái)的邊界沿著相同的方向變化。例如鏈碼“...22...”,這組鏈碼表明至少3 個(gè)相鄰像素在垂直方向上。如果要擴(kuò)大2 倍及其更多倍數(shù)時(shí),應(yīng)該在這兩個(gè)相同的編碼間復(fù)制這個(gè)值,則新的鏈碼變?yōu)椤?..2222...”。
第2 種情況為在不同的編碼值間插值。為了防止不可預(yù)知的誤差,將新增的前一半編碼取值為原來(lái)鏈碼左邊的編碼值,后一半取值為原來(lái)鏈碼右邊的編碼值。例如“...03...”,則變化后的鏈表示為“...000333...”。
第3 種情況為在原來(lái)鏈碼的最后一個(gè)編碼后面插值。在這種情況下,可以參考原來(lái)鏈碼的第一個(gè)編碼和最后一個(gè)編碼來(lái)決定插值。
圖6 摔倒模板Fig.6 Fall template image
歐氏距離常用來(lái)衡量信號(hào)的相似程度,所以采用歐氏空間距離來(lái)衡量經(jīng)過(guò)調(diào)整后的模板邊界鏈碼和實(shí)際邊界鏈碼來(lái)比較兩組鏈碼的差別大小,即未知人形與摔倒模型的相似程度。歐氏空間距離定義如下:
其中i = 1,2,…,n,這里x1i,x2i表示經(jīng)過(guò)調(diào)整后的兩組鏈碼中對(duì)應(yīng)位置的碼值。
如果歐氏空間距離D 小于預(yù)設(shè)的閾值(其大小根據(jù)實(shí)際系統(tǒng)的精確度而定),并且這個(gè)狀態(tài)持續(xù)一段時(shí)間,判斷其為摔倒事件。
為了檢驗(yàn)文中所提出算法的有效性,對(duì)摔倒事件進(jìn)行測(cè)試。由于本實(shí)驗(yàn)具有一定的危險(xiǎn)性,因此選取普通人而非老人為實(shí)驗(yàn)對(duì)象。實(shí)驗(yàn)地點(diǎn)選擇為老人易發(fā)生摔倒的危險(xiǎn)區(qū)域走廊和樓道口。圖7 展示了實(shí)驗(yàn)者在以上實(shí)驗(yàn)地點(diǎn)的摔倒示例。文中選取5 男5 女共10 個(gè)實(shí)驗(yàn)者進(jìn)行模擬,實(shí)驗(yàn)者在測(cè)試中做出摔倒或者非摔倒動(dòng)作,其中摔倒60 次,非摔倒40 次,并且要求摔倒動(dòng)作持續(xù)10 s 以上時(shí)間,防止老人正常的動(dòng)作被視為摔倒。
在摔倒檢測(cè)實(shí)驗(yàn)中,有4 種可能情況:第1 種摔倒事件發(fā)生算法正確檢測(cè)摔倒;第2 種摔倒事件未發(fā)生算法誤判摔倒;第3 種摔倒事件發(fā)生算法判斷為未摔倒;第4 種摔倒事件未發(fā)生算法判斷未摔倒。以上4 種情況,定義靈敏度、正確率、誤判率3 個(gè)指標(biāo)來(lái)評(píng)價(jià)算法。
表1 給出樓梯口和走廊3 個(gè)指標(biāo)(靈敏度、正確率、誤判率)結(jié)果。
圖7 摔倒示例圖像以及跟蹤邊界Fig.7 Fall image and boundary markers
表1 算法結(jié)果指標(biāo)Tab.1 Algorithm results'index
由表1 可得文中算法在2 種場(chǎng)合中均可以取得88% 以上的靈敏度和90% 以上的正確率,以及10% 以下的誤判率。通過(guò)比較可以看出,算法效果在樓梯口要好于走廊,主要因?yàn)闃堑揽诹炼认鄬?duì)變化較小(白天有陽(yáng)光,晚上有燈照明),而走廊亮度相對(duì)變化較大(受光源位置影響較大),影響目標(biāo)提取,給后續(xù)處理造成困難。
在摔倒判定中,規(guī)定當(dāng)老人開(kāi)始出現(xiàn)摔倒?fàn)顩r并且持續(xù)至少10 s 時(shí)判定為摔倒事件進(jìn)行報(bào)警。為了測(cè)試系統(tǒng)的實(shí)時(shí)性,表2 給出樓梯口和走廊的平均反應(yīng)時(shí)間。
表2 樓梯口和走廊的平均反應(yīng)時(shí)間Tab.2 Average response time
表3 給出文中算法和其他摔倒檢測(cè)算法的比較結(jié)果。由表3 可以看出,文中算法在摔倒檢測(cè)效果評(píng)價(jià)指標(biāo)上優(yōu)于文獻(xiàn)[7-8]算法,具有更高的靈敏度和正確率,而且文中算法采用的摔倒標(biāo)準(zhǔn)模板和模板中某種姿勢(shì)的個(gè)數(shù)有限。隨著模板個(gè)數(shù)的增加,算法的各項(xiàng)指標(biāo)會(huì)得到提升,但是處理時(shí)間延遲會(huì)增加。
表3 算法比較結(jié)果Tab.3 Result of the comparison
文中算法對(duì)提取的老人進(jìn)行邊界跟蹤,而不需要像算法文獻(xiàn)[7-8]持續(xù)關(guān)注老人的動(dòng)作變化。邊界鏈碼對(duì)于邊界上的每一個(gè)點(diǎn)只需要一個(gè)方向數(shù)就可以代替兩個(gè)坐標(biāo)值,由于一個(gè)方向數(shù)比表示一個(gè)坐標(biāo)值簡(jiǎn)單,因此鏈碼表示可以大大減少表示邊界的數(shù)據(jù)量。邊界鏈碼的處理不僅使判斷模型得到簡(jiǎn)化,而且結(jié)果更加精確。
文中主要介紹了基于輪廓跟蹤的摔倒檢測(cè)算法,該算法在提取運(yùn)動(dòng)目標(biāo)老人的基礎(chǔ)上,采用輪廓跟蹤算法獲取邊界鏈碼,提出模型匹配識(shí)別技術(shù)來(lái)判斷老人摔倒事件。實(shí)驗(yàn)結(jié)果表明,該算法復(fù)雜度低、易于實(shí)現(xiàn),具有較高的判別正確率,可以被應(yīng)用于實(shí)際視頻監(jiān)控系統(tǒng)中。
[1]Rougier C,Meunier J,St-Arnaud A,et al. Fall detection from human shape and motion history using video surveillance[C]//Advanced Information Networking and Applications Workshops,21st International Conference on. [s. l.]:IEEE,2007,2:875-880.
[2]Wilding M J,Seegert L,Rupcic S,et al. F-alling short:recruiting elderly individuals for a fall study[J]. Ageing Research Reviews,2013,12(2):552-560.
[3]王榮,章韻,陳建新.基于三軸加速度傳感器的人體跌倒檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2012,32(5):1450-1453.
WANG Rong,ZHANG Yun,CHEN Jianxin.Design and implementation of fall detection system using tri-axis accelerometer[J].Journal of Computer Applications,2012,32(5):1450-1453.(in Chinese)
[4]薛源,高向陽(yáng).基于多傳感器信息融合的跌倒監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2011,33(5):712-716.
XUE Yuan,GAO Xianyang.A design for fall detection monitoring system based on information fusion of mutil-sensor[J].Journal of Wut Information and Management Engineering,2011,33(5):712-716.(in Chinese)
[5]金純,伊遠(yuǎn)陽(yáng).一種基于統(tǒng)計(jì)學(xué)判別分析的老人摔倒檢測(cè)算法的研究[J].計(jì)算機(jī)應(yīng)用研究,2014,31(1):89-94.
JIN Chun,YI Yuanyang. Old man fall detection algorithm research based on discriminant analysis of statical[J]. Application Research of Computers,2014,31(1):89-94.(in Chinese)
[6]Vaidehi V,Ganapathy K,Mohan K,et al. Video based automatic fall detection in indoor environment[C]//International Conference on Recent Trends in Information Technology.Tamil Nadu,India:[s.n.],2011:1016 -1020.
[7]劉紅,左常玲,黃江林.一種改進(jìn)的自動(dòng)摔倒檢測(cè)算法[J].安徽大學(xué)學(xué)報(bào):自然科學(xué)版,2012,36(6):57-61.
LIU Hong,ZUO Changling,HUANG Jianglin.An improved algorithm of automatic fall detection[J].Journal of Anhui University:Natural Science Edition,2012,36(6):57-61.(in Chinese)
[8]TAO J,Turjo M,WONG M F,et al.Fall inci-dents detection for intelligent video survei-llance[C]//Information,Communications and Signal Processing,2005 Fifth Interna-Tional Conference on.[s.l.]:IEEE,2005:1590-1594.
[9]Maddalena L,Petrosino A.A self-organizing approach to background subtraction for visual surveillance applications[J].Image Processing IEEE Transactions on,2008,17(7):1168-1177.