申代友,庫洪安,皮紅英,劉聯(lián)琦,袁克虹
1.清華大學(xué)深圳研究生院生物醫(yī)學(xué)工程中心,廣東深圳518055;2.解放軍總醫(yī)院門診&護(hù)理部,北京100853;3.廣州市老人院,廣東廣州510550
據(jù)2014年全國疾病監(jiān)測系統(tǒng)的死因監(jiān)測結(jié)果顯示,我國65歲及以上的老年人中每10萬人發(fā)生跌倒的死亡人數(shù)約為44人,因跌倒死亡是65歲及以上人群因傷害致死的第一位因素[1]。隨著我國老齡化的加劇,老年人的安全監(jiān)護(hù)問題日益嚴(yán)峻,特別是獨(dú)居老人和子女不能時(shí)刻照顧的老人,如何對(duì)其進(jìn)行有效的安全監(jiān)護(hù)已經(jīng)成為社會(huì)的一大難題。老人跌倒常常伴隨著骨折、軟組織傷害和腦部傷害等癥狀,跌倒后的老人不及時(shí)治療容易造成嚴(yán)重的并發(fā)癥,常常引起中風(fēng)、心肌梗死、肺部感染等,嚴(yán)重者還會(huì)引起呼吸衰竭進(jìn)而導(dǎo)致死亡。及時(shí)對(duì)發(fā)生跌倒的老人進(jìn)行救治,有助于挽救老人生命、減輕因跌倒造成的后遺癥傷害、減輕跌倒造成的子女護(hù)理及經(jīng)濟(jì)壓力等。本研究通過對(duì)老年人的日常行為進(jìn)行監(jiān)測并將跌倒行為從普通生活行為中分離出來,一旦發(fā)生意外能及時(shí)通知子女或社區(qū)護(hù)工盡快送至醫(yī)院,為老年人提供及時(shí)的醫(yī)療救護(hù),減少跌倒造成二次傷害的可能性。
作為一種新興技術(shù),近幾年跌倒檢測受到越來越多的研究者關(guān)注,國內(nèi)外學(xué)者對(duì)此作了大量的有益研究[2]。國內(nèi)方面,秦曉華等[3]設(shè)計(jì)了一種針對(duì)老年人的移動(dòng)監(jiān)護(hù)系統(tǒng),利用多傳感器節(jié)點(diǎn)獲取老人的ECG信號(hào)和加速度信號(hào),采用多指標(biāo)聯(lián)合閾值判斷老人是否跌倒。朱勇等[4]建立了一種基于人體傾角的跌倒算法,通過角度閾值判斷人體位姿狀態(tài)。曹薈強(qiáng)等[5]將人體跌倒的加速度信號(hào)提取為加速度觀測序列,建立跌倒過程的隱馬爾可夫模型概率模型進(jìn)行跌倒檢測。國外方面,Sie等[6]利用智能手機(jī)內(nèi)置的加速度單元將人體運(yùn)動(dòng)的時(shí)域信息編碼成字符串單元,并使用字符串匹配算法檢測跌倒事件。Zigel等[7]使用地板震動(dòng)和環(huán)境聲音相結(jié)合的方法,采用沖擊響應(yīng)譜(SRS)和Mel頻率倒譜系數(shù)作為區(qū)分跌倒事件和其他事件的分類標(biāo)準(zhǔn)。Mercuri等[8]設(shè)計(jì)一種結(jié)合雷達(dá)和無線通信技術(shù)的完全非接觸式室內(nèi)監(jiān)護(hù)系統(tǒng),利用雷達(dá)探測人體的位置并使用leastsquare-SVM對(duì)人體活動(dòng)進(jìn)行分類從而提取跌倒特征。Mirmahboub等[9]利用背景分割算法提取視頻序列中人體輪廓區(qū)域并送入SVM分類器,最終得到二分類的結(jié)果。Ma等[10]提取每一幀的曲率尺度空間特征,使用詞向量表征人體形態(tài),利用極端學(xué)習(xí)機(jī)分類器識(shí)別來自跌倒動(dòng)作的BoCSS。Fan等[11]將卷積神經(jīng)網(wǎng)絡(luò)引入跌倒檢測領(lǐng)域,通過提取多幀間的場景動(dòng)態(tài)特征以此判斷各動(dòng)作類別的概率。Akagunduz等[12]提出了一種基于形狀序列SOV描述子的人體姿態(tài)特征抽取算法,利用K聚類和樸素貝葉斯進(jìn)行人體活動(dòng)分類。
與基于可穿戴式技術(shù)和基于環(huán)境布設(shè)技術(shù)的跌倒檢測相比,基于視頻圖像分析的跌倒檢測不要求監(jiān)測者佩戴或者配備專業(yè)傳感器設(shè)備,且不易受環(huán)境因素和傳感器因素影響,魯棒性較高。然而目前基于視頻圖像的跌倒檢測大多使用傳統(tǒng)的圖像處理技術(shù)并且集中于2D圖像。受2D成像技術(shù)工作原理的限制,傳統(tǒng)相機(jī)沒有尺度信息,只能獲得被測物體的平面信息,深度信息的缺失損失了人眼的雙目特性,不能準(zhǔn)確地反映人體的姿態(tài)變化,無法對(duì)人體進(jìn)行準(zhǔn)確建模,在真實(shí)場景中實(shí)用性和準(zhǔn)確性受到一定影響。
通過計(jì)算機(jī)視覺技術(shù)可以模擬生物的視覺特性并進(jìn)行類腦計(jì)算,而利用深度相機(jī)模擬人眼的雙目特性,通過維度提升不但能獲取常規(guī)相機(jī)所能拍攝的X、Y平面信息,而且能同時(shí)獲取人體的深度信息(Z軸),使得更加精確地對(duì)人體姿態(tài)進(jìn)行3D建模成為可能。
根據(jù)測量原理的不同,深度相機(jī)可分為基于立體視覺的雙目相機(jī)、基于激光編碼的結(jié)構(gòu)光相機(jī)和基于飛行時(shí)間(Time of Flight,TOF)的TOF相機(jī)。相較于雙目相機(jī)和結(jié)構(gòu)光相機(jī),TOF相機(jī)抗干擾性能好、視角更寬、精度較高、體積小且價(jià)格低廉、不受物體表面灰度特征影響。綜合比較各種相機(jī)的特性,本系統(tǒng)采用的深度相機(jī)是微軟公司于2014年推出的人機(jī)交互體感設(shè)備Kinect 2.0。Kinect 2.0的外觀和內(nèi)部結(jié)構(gòu)示意圖如圖1所示,其包括一排麥克風(fēng)陣列、一個(gè)IR紅外線發(fā)射器、一個(gè)IR紅外線接收器和一個(gè)RGB相機(jī)。Kinect 2.0利用飛行時(shí)間原理,將IR紅外線發(fā)射器和IR紅外線接收器共同組成了一個(gè)可以主動(dòng)測量物體深度的IR相機(jī)。由于制造工藝誤差、安裝誤差和材料形變誤差等[13],Kinect的出廠設(shè)計(jì)值與實(shí)際物理世界的真實(shí)值相差較大,不能較好地反應(yīng)彩色圖和深度圖的對(duì)齊關(guān)系。因此要得到彩色成像結(jié)果和深度成像結(jié)果的位置關(guān)系,必須先獲取兩相機(jī)的內(nèi)參,并在實(shí)際中對(duì)兩相機(jī)進(jìn)行立體匹配。
圖1 Kinect 2.0的外觀與內(nèi)部結(jié)構(gòu)示意圖Fig.1 The internal and external structures of Kinect 2.0
2.1.1 RGB相機(jī)和IR相機(jī)的內(nèi)參數(shù)標(biāo)定 相機(jī)拍攝過程是一個(gè)光學(xué)成像的過程,從3D世界中的某一點(diǎn)成像到一張彩色圖片要經(jīng)歷4個(gè)坐標(biāo)系:世界坐標(biāo)系、相機(jī)坐標(biāo)系、圖像坐標(biāo)系和像素坐標(biāo)系。運(yùn)用相機(jī)模型可以簡化光學(xué)成像系統(tǒng)過程,常見的針孔相機(jī)成像模型如圖2所示。
設(shè)空間中某點(diǎn)世界坐標(biāo)系為Pworld(X,Y,Z),相機(jī)坐標(biāo)系為Pcam(x,y,z),圖像像素坐標(biāo)為(u,v),則根據(jù)針孔相機(jī)成像模型可得到:
其中,s是尺度因子,fx和fy是每單位像素表示的焦距長度,cx和cy是相機(jī)成像中心偏移量,R|t為世界坐標(biāo)到相機(jī)坐標(biāo)的旋轉(zhuǎn)和平移矩陣。內(nèi)參矩陣K表示由相機(jī)坐標(biāo)系下空間中某一點(diǎn)投影到圖像像素坐標(biāo)系上的對(duì)應(yīng)關(guān)系,單個(gè)相機(jī)的標(biāo)定即為求解相機(jī)內(nèi)參矩陣。另外由于相機(jī)存在徑向畸變與切向畸變,所以在恢復(fù)相機(jī)模型過程中必須考慮這二者的因素,相機(jī)畸變系數(shù)矩陣可表示為:
圖2 針孔相機(jī)模型Fig.2 Pinhole camera model
為得到RGB相機(jī)和IR相機(jī)的內(nèi)參矩陣,本系統(tǒng)首先制作一張6×8的棋盤格,如圖3所示。每個(gè)棋盤格長度為40 mm,然后從不同角度、不同距離拍攝80~100張含有角點(diǎn)的標(biāo)定圖像,最后利用張氏標(biāo)定算法對(duì)Kinect進(jìn)行標(biāo)定。
圖3 相機(jī)標(biāo)定圖Fig.3 Camera calibration
標(biāo)定結(jié)果如表1和表2所示。表1為標(biāo)定后的RGB相機(jī)內(nèi)參,其標(biāo)定重投影誤差為0.21個(gè)像素,表2是標(biāo)定后的IR相機(jī)內(nèi)參,其標(biāo)定重投影誤差為0.12個(gè)像素,兩者重投影誤差均小于0.5個(gè)像素,說明標(biāo)定結(jié)果優(yōu)異,達(dá)到標(biāo)定預(yù)期目標(biāo)。
表1 RGB相機(jī)內(nèi)參Tab.1 Intrinsic parameters of RGB camera
表2 IR相機(jī)內(nèi)參Tab.2 Intrinsic parameters of IR camera
2.1.2 兩相機(jī)的立體標(biāo)定 得到兩個(gè)相機(jī)的內(nèi)參即可得到空間中某一點(diǎn)分別投影到兩個(gè)像素坐標(biāo)的位置關(guān)系,但如果要得到兩個(gè)像素坐標(biāo)的一一對(duì)應(yīng)關(guān)系,并獲得準(zhǔn)確的深度信息和3D場景的彩色-深度關(guān)系,則需要進(jìn)行兩相機(jī)的立體標(biāo)定并求得相機(jī)外參R和T,其中R為從IR相機(jī)坐標(biāo)系旋轉(zhuǎn)到RGB相機(jī)坐標(biāo)系的3×3旋轉(zhuǎn)矩陣,T為相應(yīng)的3×1平移矩陣。
設(shè)空間中一點(diǎn)在RGB相機(jī)坐標(biāo)系下為Prgb,在IR相機(jī)坐標(biāo)系下為Pir,則兩相機(jī)坐標(biāo)關(guān)系可表示為:
根據(jù)三維空間剛性變換,兩相機(jī)的相對(duì)位置關(guān)系可用下述關(guān)系表示:
為得到RGB相機(jī)和IR相機(jī)的外參矩陣并減小內(nèi)參對(duì)標(biāo)定過程的影響,需再次利用RGB相機(jī)和IR相機(jī)同時(shí)拍攝多張標(biāo)定圖片,設(shè)共拍攝圖片數(shù)量為n,每張圖片含有m個(gè)角點(diǎn),則相機(jī)外參矩陣可通過以下公式最小化重投影誤差Err進(jìn)行求解:
圖4 Kinect 2.0立體標(biāo)定結(jié)果Fig.4 Stereo calibration result of Kinect 2.0
得益于最近幾年深度學(xué)習(xí)的快速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)[14]和全卷積網(wǎng)絡(luò)[15]在圖像識(shí)別、信息抽取、機(jī)器翻譯、自然語言處理等領(lǐng)域取得了極大突破。為利用Kinect 2.0準(zhǔn)確地對(duì)人體進(jìn)行姿態(tài)建模,本系統(tǒng)設(shè)計(jì)了一種利用卷積神經(jīng)網(wǎng)絡(luò)檢測人體關(guān)節(jié)點(diǎn)的算法,主要由3個(gè)部分組成:基于卷積神經(jīng)網(wǎng)絡(luò)的人物二分類算法、基于深度卷積網(wǎng)絡(luò)的人體框輪廓定位算法、基于全卷積網(wǎng)絡(luò)的關(guān)節(jié)點(diǎn)分割算法,檢測流程如圖5所示。
對(duì)于一幅給定的圖片,人物分類部分檢測該圖片的某一特定矩形區(qū)域內(nèi)是否含有人物實(shí)體,人體輪廓框定位部分則是確定包含單個(gè)人物的邊界框位置。經(jīng)過以上兩個(gè)網(wǎng)絡(luò)判斷某一ROI區(qū)域?qū)儆趯?shí)際的人體輪廓框后,使用多級(jí)深度全卷積網(wǎng)絡(luò)生成N×M×M大小的預(yù)測圖,其中N為關(guān)節(jié)點(diǎn)數(shù)量,M為特征圖大小,然后再經(jīng)過線性插值將特征圖映射回原圖,得到關(guān)于每個(gè)關(guān)節(jié)點(diǎn)的空間概率分布圖,最后使用softmax-loss迭代求得每個(gè)關(guān)節(jié)點(diǎn)的最大概率值所在位置。圖6為綜合以上3個(gè)階段對(duì)于典型的站立姿勢的人體,給出的最終定位結(jié)果與相應(yīng)的ROI區(qū)域內(nèi)的概率分布情況,其中灰度值表示歸一化后的概率,為節(jié)省篇幅僅列出人體左側(cè)區(qū)域。
圖5 關(guān)節(jié)點(diǎn)檢測流程Fig.5 Detection of multijoint positions
老人發(fā)生跌倒后,大多數(shù)會(huì)匍匐或者躺在地面上,因此檢測地平面并且結(jié)合關(guān)節(jié)點(diǎn)的運(yùn)動(dòng)特征和空間立體分布能極大地提高整個(gè)系統(tǒng)的檢測精度。根據(jù)歐式幾何,3D場景的地平面可用如下公式表示:
其中A、B、C、D是地平面參數(shù)系數(shù)。利用2.1節(jié)Kinect 2.0獲得的關(guān)于老人生活場景的室內(nèi)3D點(diǎn)云圖后,本系統(tǒng)使用以下算法進(jìn)行隨機(jī)一致性采樣提取平面:
(1)隨機(jī)在腳踝關(guān)節(jié)點(diǎn)附近選擇一組點(diǎn)集Sin并初始化模型參數(shù)A、B、C、D,設(shè)置平面內(nèi)點(diǎn)閾值dmax。
(2)從點(diǎn)云集S中選擇一組子集S′,且S′?Sin=?,計(jì)算P′?S′到腳踝所在平面的距離是否小于dmax,如是加入內(nèi)點(diǎn)集Sin。
(3)計(jì)算內(nèi)點(diǎn)集Sin的法線方程系數(shù)A、B、C、D,并存儲(chǔ)。
(4)重復(fù)迭代步驟(2)、(3),直到最大迭代次數(shù)或者Sin點(diǎn)集數(shù)量達(dá)到臨界值。
(5)選擇包含2個(gè)腳踝關(guān)節(jié)點(diǎn)的平面模型參數(shù)作為地平面參數(shù)。
對(duì)于視頻序列的每一幀使用前述模塊獲得人體位姿的關(guān)節(jié)點(diǎn)并將人體模型抽象為位姿描述后,本系統(tǒng)設(shè)計(jì)了一種基于立體空間場景的跌倒檢測算法。設(shè)關(guān)節(jié)點(diǎn)三維坐標(biāo)為P(xi,yi,zi),地平面法線系數(shù)A、B、C、D,則整個(gè)序列的關(guān)節(jié)點(diǎn)位置模型可表述為:
圖6 人體左側(cè)關(guān)節(jié)點(diǎn)空間概率分布圖Fig.6 Probability distribution of left joints in a standing human
利用上述位姿模型,可計(jì)算各個(gè)關(guān)節(jié)點(diǎn)的運(yùn)動(dòng)特征和靜態(tài)特征。其中關(guān)節(jié)點(diǎn)的運(yùn)動(dòng)特征可用如下公式表示:
靜態(tài)特征中,各個(gè)關(guān)節(jié)點(diǎn)的高度特征可用如下公式表示:
簡化后的人體模型如圖7所示,設(shè)人體的肩部中心為S(x,y,z),臀部中心為H(x,y,z),臀部中心在地面上的投影點(diǎn)為G(x,y,z),兩腳踝中心點(diǎn)為A(x,y,z)。
圖7 人體傾斜角示意圖Fig.7 Schematic diagram of a tilted human body
人體的上肢傾斜角度可用如下公式表示:
人體的下肢傾斜角度可用如下公式表示:
利用公式(8)~(11)得到關(guān)節(jié)點(diǎn)在3D空間中的運(yùn)動(dòng)特征和靜態(tài)特征后,本系統(tǒng)使用以下步驟對(duì)視頻序列進(jìn)行判斷:
(1)首先判斷人體的傾斜角度是否達(dá)到閾值,若達(dá)到閾值則將潛在跌倒CFall計(jì)數(shù)器加1,否則減1。
(2)否則計(jì)算關(guān)節(jié)點(diǎn)的運(yùn)動(dòng)特征和靜態(tài)特征中的關(guān)節(jié)點(diǎn)高度,并將其送入Pose-SVM分類器。
(3)若Pose-SVM分類器判斷老人發(fā)生跌倒,則將潛在跌倒的Fall Frame計(jì)數(shù)器CFall加1,否則減1。
(4)如果CFall計(jì)數(shù)器達(dá)到閾值則觸發(fā)報(bào)警裝置,否則重復(fù)步驟(1)~(3),進(jìn)行長時(shí)間的連續(xù)監(jiān)測。
為判斷跌倒檢測算法的有效性,跌倒檢測的實(shí)驗(yàn)結(jié)果可使用以下4個(gè)指標(biāo)參數(shù)進(jìn)行評(píng)價(jià),分別是靈敏度、特異度、準(zhǔn)確度、錯(cuò)誤率。靈敏度代表整個(gè)系統(tǒng)能正確檢出跌倒行為的能力,特異度代表整個(gè)系統(tǒng)正確檢測出日常行為的能力,準(zhǔn)確度代表整個(gè)系統(tǒng)正確判斷跌倒和日常行為的能力,錯(cuò)誤率代表整個(gè)系統(tǒng)錯(cuò)誤判斷的能力。
為驗(yàn)證本算法的有效性,系統(tǒng)使用Kinect 2.0采集了100個(gè)正常生活片段與100個(gè)跌倒片段,每個(gè)片段包含30~100張圖片序列,并按照訓(xùn)練集train、驗(yàn)證集val、測試集test按照10:2:1比例進(jìn)行分類器的訓(xùn)練,其中閾值Τβ取值為70°,Τα取值為60°,最后利用前述算法流程對(duì)序列中的每一幀進(jìn)行人體姿態(tài)分析,其中每一幀的實(shí)驗(yàn)結(jié)果(即CFall=1)如表3所示。
表3 跌倒檢測系統(tǒng)的實(shí)驗(yàn)結(jié)果(%)Tab.3 Results of fall detection system for Kinect 2.0(%)
為不失一般性,本文還在公開數(shù)據(jù)集UR Fall Detection Dataset[16]做了算法驗(yàn)證,該數(shù)據(jù)集利用Kinect采集了30個(gè)跌倒序列和40個(gè)正常序列,每個(gè)序列包含20~200張圖片。由于該數(shù)據(jù)集沒有進(jìn)行立體相機(jī)標(biāo)定,故實(shí)驗(yàn)中采用人工對(duì)齊的方式,其中每一幀(即CFall=1)的驗(yàn)證結(jié)果如表4所示。
表4 基于UR Fall Dataset的測試結(jié)果(%)Tab.4 Results of fall detection system for UR Fall Dataset(%)
以上兩個(gè)實(shí)驗(yàn)表明本算法均能在CFall=1時(shí)有效地檢測到人體的跌倒行為,相比于可穿戴式技術(shù)和環(huán)境布設(shè)技術(shù)嚴(yán)重依賴于傳感器的瞬時(shí)信號(hào)特征,本算法對(duì)動(dòng)態(tài)特征依賴較少,結(jié)合靜態(tài)特征可以準(zhǔn)確地持續(xù)估計(jì)人體位姿行為,適用范圍大大增加。另外,跌倒檢測系統(tǒng)在實(shí)際使用過程中,可通過設(shè)置不同的CFall閾值來達(dá)到不同的目的。如果要盡可能地檢測到跌倒行為,可將CFall設(shè)置在較小數(shù)值;若要提高整個(gè)系統(tǒng)跌倒檢測的正確率,則可將CFall設(shè)置在較大數(shù)值。
針對(duì)家庭監(jiān)護(hù)領(lǐng)域的老人跌倒行為,本研究設(shè)計(jì)了一種主要面向老年人的跌倒檢測系統(tǒng),該系統(tǒng)利用深度相機(jī)的維度提升特性,通過提取人體關(guān)節(jié)點(diǎn)的三維結(jié)構(gòu)信息對(duì)人體姿態(tài)進(jìn)行準(zhǔn)確描述,并結(jié)合3D場景對(duì)人體活動(dòng)行為進(jìn)行綜合分析,設(shè)計(jì)了一種基于關(guān)節(jié)點(diǎn)運(yùn)動(dòng)特征、靜態(tài)特征和基于SVM分類器的檢測算法。實(shí)驗(yàn)結(jié)果表明該算法能較好地反應(yīng)人體的姿態(tài)變化和生活特征,對(duì)檢測對(duì)象的跌倒行為具有較高準(zhǔn)確性和靈敏性。相比于其他檢測方式,本系統(tǒng)魯棒性強(qiáng)、適用性廣,有助于減輕老齡社會(huì)環(huán)境下的子女和社區(qū)護(hù)理照看壓力。
中國醫(yī)學(xué)物理學(xué)雜志2019年2期