王鵬 王慧 孔凡寧 姚剛
摘要:當(dāng)空巢老人獨(dú)自居住發(fā)生摔倒事件時(shí),如果長(zhǎng)時(shí)間沒有得到救助的話,傷害比較嚴(yán)重。為了快速獲得老人摔倒信息,使其得到及時(shí)救助,設(shè)計(jì)和實(shí)現(xiàn)了結(jié)合家居照明燈并基于現(xiàn)場(chǎng)可編程門陣列(FPGA)的視頻監(jiān)控摔倒檢測(cè)報(bào)警系統(tǒng)。通過(guò)幀間差分法提取出運(yùn)動(dòng)目標(biāo),結(jié)合人體高寬比和有效面積比2個(gè)條件進(jìn)行摔倒判定,最后用人體中心變化對(duì)判定結(jié)果進(jìn)行修正。當(dāng)摔倒發(fā)生時(shí)觸發(fā)聲光報(bào)警定位老人摔倒的房間,并結(jié)合通用分組無(wú)線業(yè)務(wù)(GPRS)通信網(wǎng)絡(luò)通知老人親屬及社區(qū)服務(wù)站,及時(shí)展開救助。經(jīng)試驗(yàn)表明,系統(tǒng)幀處理速度為24.86fps,平均報(bào)警響應(yīng)時(shí)間為0.51s,滿足實(shí)時(shí)性要求;摔倒檢測(cè)準(zhǔn)確率達(dá)到96%,誤報(bào)率低。
關(guān)鍵詞:視頻監(jiān)控;摔倒檢測(cè);現(xiàn)場(chǎng)可編程門陣列;幀間差分法;通用分組無(wú)線業(yè)務(wù)
DoI:10.15938/j.eme.2019.08.015
中圖分類號(hào):TN919.85文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1007-449X(2019)08-0122-07
0引言
隨著中國(guó)老齡化趨勢(shì)的加劇,老年人的安全問題受到社會(huì)各界的廣泛關(guān)注,摔倒對(duì)老年人的安全造成了極大的威脅。尤其是對(duì)于子女均在外工作的空巢老人,摔倒發(fā)生后常導(dǎo)致失去意識(shí)、休克或者死亡等嚴(yán)重后果。因此,及時(shí)發(fā)現(xiàn)并救助摔倒的老人可以大大降低傷殘率和死亡率。
摔倒檢測(cè)技術(shù)大致可以分為3類:基于可穿戴式傳感器的摔倒檢測(cè)技術(shù);基于環(huán)境檢測(cè)的摔倒檢測(cè)技術(shù);基于視頻監(jiān)控的摔倒檢測(cè)技術(shù)。第一類需要老年人隨身佩戴傳感器,老人容易遺忘且易產(chǎn)生不適感;第二類需要在房間內(nèi)安裝復(fù)雜的檢測(cè)設(shè)備,實(shí)現(xiàn)困難;第三類是在房間內(nèi)安裝攝像頭,通過(guò)視頻監(jiān)控實(shí)現(xiàn)摔倒檢測(cè),安裝方便,容易實(shí)現(xiàn),相比前兩類更適宜于對(duì)老年人的摔倒進(jìn)行檢測(cè),是目前主流的摔倒檢測(cè)技術(shù)。
對(duì)于基于視頻監(jiān)控的摔倒檢測(cè)技術(shù),國(guó)內(nèi)外眾多學(xué)者都進(jìn)行了大量的研究。文獻(xiàn)[6]中白云飛等人提出了基于嵌入式視頻監(jiān)控的摔倒檢測(cè)系統(tǒng),通過(guò)將采集到的視頻信號(hào)壓縮傳輸至Pc端,進(jìn)行視頻顯示和姿態(tài)檢測(cè),盡管獲得了較高的摔倒檢測(cè)準(zhǔn)確率,卻沒有考慮到保護(hù)被監(jiān)測(cè)人的隱私,并且系統(tǒng)存在穩(wěn)定性差、易死機(jī)等不足。文獻(xiàn)[7]中Rougier等人提出了標(biāo)定人體最小外接矩形框并通過(guò)人體高寬比來(lái)判斷人體是否摔倒的算法,但無(wú)法準(zhǔn)確地把老人的日常健身動(dòng)作(壓腿、俯臥撐等)和真實(shí)的摔倒事件區(qū)分開,誤報(bào)率高。
近年來(lái),隨著圖像處理技術(shù)和大規(guī)模集成電路的發(fā)展,F(xiàn)PGA(field programmable gate array)的可編程性和強(qiáng)大的處理能力使其可以靈活、高效地應(yīng)用于各種領(lǐng)域。本文提出了一種基于FPGA的視頻監(jiān)控摔倒檢測(cè)報(bào)警系統(tǒng),穩(wěn)定性好,處理速度快,誤報(bào)率低。
1系統(tǒng)組成
本文采用FPGA作為摔倒檢測(cè)報(bào)警系統(tǒng)的核心處理器件,系統(tǒng)組成如圖1所示,包含CMOS數(shù)字圖像傳感器、FPGA摔倒檢測(cè)核心平臺(tái)、GPRS(generalpacket radio service)通信模塊及聲光報(bào)警模塊。
首先通過(guò)CMOS數(shù)字圖像傳感器對(duì)老人的日常生活視頻進(jìn)行采集,然后將獲得的視頻數(shù)據(jù)傳送到FPGA摔倒檢測(cè)核心平臺(tái)進(jìn)行圖像處理和摔倒判定,檢測(cè)到老人摔倒后立即通過(guò)GPRS通信模塊和聲光報(bào)警模塊完成摔倒事件的通知及報(bào)警。GPRS通信模塊將摔倒事件的信息及時(shí)向老人親屬與社區(qū)服務(wù)站發(fā)送,通知醫(yī)療人員對(duì)老人進(jìn)行及時(shí)救助。聲光報(bào)警模塊用于定位老人發(fā)生摔倒的房間,使醫(yī)護(hù)救援人員能迅速地對(duì)老人摔倒位置定位,避免老人因救助延誤導(dǎo)致的休克、失去意識(shí)等嚴(yán)重后果。
2摔倒檢測(cè)算法設(shè)計(jì)
實(shí)現(xiàn)摔倒檢測(cè)的前提先要對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行提取和標(biāo)記,再對(duì)提取到的運(yùn)動(dòng)目標(biāo)進(jìn)行摔倒特征判定。通過(guò)對(duì)現(xiàn)有的摔倒檢測(cè)算法的分析與研究,本文提出了一種改進(jìn)的自動(dòng)摔倒檢測(cè)算法。本文提出的摔倒檢測(cè)算法主要包含2個(gè)步驟:目標(biāo)檢測(cè)和摔倒判定,具體流程如圖2所示。
2.1目標(biāo)檢測(cè)
運(yùn)動(dòng)目標(biāo)檢測(cè)算法主要有背景減除法、幀問差分法和光流法3種。背景減除法是利用當(dāng)前圖像和背景模型圖像進(jìn)行差分來(lái)檢測(cè)運(yùn)動(dòng)目標(biāo),背景模型的選取比較重要,容易受到外界光線的干擾。幀問差分法主要思想是將圖像序列中的連續(xù)兩幀或三幀進(jìn)行差分來(lái)提取出運(yùn)動(dòng)目標(biāo),這種方法的原理簡(jiǎn)單,能快速地實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)檢測(cè),且對(duì)環(huán)境變化不敏感,受外界噪聲干擾較小。光流法是通過(guò)將每幀圖像中的每個(gè)像素點(diǎn)附于一個(gè)速度矢量,形成一個(gè)光流場(chǎng)從而動(dòng)態(tài)分析出運(yùn)動(dòng)目標(biāo),此種方法計(jì)算復(fù)雜、非常耗時(shí)并且抗噪聲的能力差。
通過(guò)比較分析上述3種算法的實(shí)現(xiàn)難度和實(shí)時(shí)性,可以得到:相比較于光流法,幀問差分法更適合應(yīng)用在實(shí)時(shí)性要求高的場(chǎng)合;相比較于背景減除法,幀問差分法計(jì)算簡(jiǎn)單,處理速度快,更利于硬件實(shí)現(xiàn),適用于視頻監(jiān)控中的實(shí)時(shí)目標(biāo)檢測(cè)。因此本文選取幀問差分法實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的檢測(cè)和提取。
2.2摔倒判定
當(dāng)老人正常行走時(shí),人體高度比寬度大得多,如果摔倒,則人體寬度比高度大得多;當(dāng)老人進(jìn)行壓腿、彎腰等健身運(yùn)動(dòng)時(shí),人體有效面積會(huì)比其他情況小。針對(duì)以上摔倒特征分析,本文在提取出人體目標(biāo)后,標(biāo)定出人體目標(biāo)的最小外接矩形框,如圖4所示,通過(guò)式(2)、式(3)進(jìn)行人體高寬比和有效面積比的摔倒判定。
式(2)中日為外接矩形框的高(即人體的高度),W為外接矩形框的寬(即人體的寬度),T1為人體高寬比的判斷閾值;式(3)中s1為人體目標(biāo)的實(shí)際面積,S2為外接矩形框的面積,T2為有效面積比的判斷閾值。根據(jù)式(2)和式(3)可以判定圖4(a)、圖4(b)為正常行為,圖4(c)為摔倒。
由于老人在進(jìn)行下蹲、俯臥撐等動(dòng)作時(shí),如圖5所示,僅通過(guò)人體高寬比與有效面積比2個(gè)判決條件進(jìn)行摔倒判定,容易導(dǎo)致誤報(bào)警。為了提高系統(tǒng)的準(zhǔn)確率,本文引入人體中心變化作為修正條件對(duì)摔倒進(jìn)行判斷。因?yàn)槔先嗽谙露住⒏┡P撐或正常的行走時(shí),動(dòng)作較緩慢,中心變化不明顯,而摔倒是一種劇烈與突變的動(dòng)作,人發(fā)生摔倒時(shí),其人體中心會(huì)突然降低,中心變化會(huì)隨之驟變。
因此在提取出運(yùn)動(dòng)目標(biāo)后,使用最小外接矩形框?qū)ζ錁?biāo)記,如圖5所示,計(jì)算人體中心位置O(X,Y),),利用式(4)修正摔倒判定結(jié)果。
首先比較相鄰的兩幀圖像人體中心坐標(biāo)值OK(X,Y),)和OK-1(X,y)的縱坐標(biāo)值,再計(jì)算兩點(diǎn)的歐氏距離與閾值T3比較,若第K幀圖像的人體中心點(diǎn)縱坐標(biāo)值比第K-1幀圖像低,且兩幅圖像的人體中心點(diǎn)之間的歐式距離大于閾值T3時(shí),則判定為摔倒,反之判定為非摔倒。
通過(guò)式(4)可以修正圖5中2種行為的判定結(jié)果為正常運(yùn)動(dòng),因此系統(tǒng)結(jié)合式(2)、式(3)、式(4)3個(gè)條件進(jìn)行摔倒判定,有效降低了誤報(bào)率,算法實(shí)現(xiàn)簡(jiǎn)單,并且提高了整個(gè)摔倒報(bào)警系統(tǒng)的檢測(cè)精度。
3系統(tǒng)的FPGA實(shí)現(xiàn)
FPGA具有強(qiáng)大的并行處理能力,采取流水線進(jìn)行設(shè)計(jì),能極大提高系統(tǒng)的處理速率,尤其對(duì)于數(shù)據(jù)量巨大的圖像,更能發(fā)揮其快速處理數(shù)據(jù)的能力。另外FPGA不需要操作系統(tǒng)嵌入,使用數(shù)字邏輯即可實(shí)現(xiàn)比較復(fù)雜的算法,這也能解決系統(tǒng)穩(wěn)定性方面的問題。如圖6所示,本文以FPGA作為核心處理器搭建了視頻處理平臺(tái),并使用Verilog HDL對(duì)FPGA內(nèi)部邏輯功能進(jìn)行配置。
FPGA內(nèi)部各模塊的功能描述如下:
1)T2C配置模塊。
系統(tǒng)上電后,F(xiàn)PGA首先要通過(guò)T2C總線對(duì)CMOS圖像傳感器的內(nèi)部寄存器進(jìn)行配置,包括分辨率、內(nèi)部時(shí)鐘、亮度、色差等。
2)視頻流采集模塊。
FPGA將CMOS圖像傳感器配置完畢后開始進(jìn)行視頻流的采集,采集的流程如圖7所示。
3)RGB格式轉(zhuǎn)灰度圖像。
幀問差分法的原理是將相鄰兩幀圖像中像素點(diǎn)的灰度值相減,所以需要將采集到的彩色視頻流圖像進(jìn)行顏色空間的轉(zhuǎn)換,即從RGB轉(zhuǎn)為YCbCr,在ITU-RBT.601標(biāo)準(zhǔn)中給出了RGB與YCbCr的轉(zhuǎn)換關(guān)系,具體公式為:
4)中值濾波。
無(wú)論是直接采集到的灰度圖像,還是由彩色圖像間接轉(zhuǎn)換的灰度圖像,或多或少都會(huì)存在一定的噪聲,而噪聲是影響圖像質(zhì)量存的主要因素。對(duì)圖像中值濾波可以很好地抑制孤立點(diǎn)噪聲,同時(shí)能較好地保護(hù)圖像的邊界特性,圖像也不會(huì)產(chǎn)生顯著的模糊,比較適用于本文幀問差分法的處理。本文采用3×3像素陣列實(shí)現(xiàn)中值濾波,其中快速排序算法實(shí)現(xiàn)過(guò)程如圖8所示。
3×3像素陣列快速排序的步驟如下:
a)首先將3×3像素陣每一行的3個(gè)像素排序;
b)接著對(duì)3行像素取得的排序結(jié)果進(jìn)行處理,提取每行中3個(gè)最大像素值中的最小值,每行中3個(gè)最小像素值中的最大值,以及3個(gè)中值像素的中值;
c)最后將步驟b)得到的3個(gè)像素值再排序后取中值,即得出3×3像素陣中9個(gè)像素的中值。
5)4端口SDRAM控制模塊。
基于數(shù)字視頻監(jiān)控的圖像采集與處理系統(tǒng)中,需要對(duì)實(shí)時(shí)高速的數(shù)據(jù)緩沖處理。由于本文采用幀問差分法實(shí)現(xiàn)人體運(yùn)動(dòng)目標(biāo)的提取,需要對(duì)相鄰的兩幀圖像完成差分操作,為此設(shè)計(jì)了基于FPGA的4端口SDRAM控制模塊(2個(gè)輸入端口和2個(gè)輸出端口),通過(guò)乒乓操作在單片SDRAM中實(shí)現(xiàn)相鄰兩幀圖像數(shù)據(jù)操作,完成圖像數(shù)據(jù)在不同Bank的緩存。讀出兩幀圖像數(shù)據(jù)進(jìn)行差分處理,具體實(shí)現(xiàn)流程如圖9所示。
6)幀差處理與目標(biāo)提取。
對(duì)相鄰兩幀圖像完成讀取和差分,并將差分得到圖像中的像素值與預(yù)設(shè)的像素閾值相比較,大于預(yù)設(shè)閾值的像素點(diǎn)為運(yùn)動(dòng)目標(biāo)并賦值為1,否則賦值0。運(yùn)用圖像腐蝕和膨脹等形態(tài)學(xué)處理去除小的噪聲點(diǎn),得到人體目標(biāo)的二值圖。
7)摔倒判定。
得到人體目標(biāo)的二值圖像后,再對(duì)每幀二值圖像做行掃描,選出像素值為1的像素點(diǎn),計(jì)算這些像素點(diǎn)中最小和最大的橫坐標(biāo)值Xmin和Xmax,同樣地計(jì)算這些像素點(diǎn)中最小和最大的縱坐標(biāo)值Ymin和Ymax,使用(Xmin,Ymin)、(Xmax,Ymin)、(Xmin,Ymax)和(Xmax,Ymax)這4個(gè)坐標(biāo)點(diǎn)標(biāo)定人體的最小外接矩形框,標(biāo)定流程如圖10所示。
8)報(bào)警控制模塊。
當(dāng)檢測(cè)到摔倒事件的發(fā)生即滿足上述3個(gè)摔倒判定條件后,F(xiàn)PGA立即產(chǎn)生報(bào)警信號(hào),觸發(fā)蜂鳴器與LED照明燈進(jìn)行聲光報(bào)警;同時(shí)發(fā)送AT指令到GPRS通信模塊,向老人親屬及社區(qū)服務(wù)站的手機(jī)號(hào)碼發(fā)送摔倒短信。
4實(shí)驗(yàn)結(jié)果及分析
本實(shí)驗(yàn)中CMOS圖像傳感器選用OmniVision公司的OV7725Sensor;FPGA采用Altera公司Cy-clone IV系列的EP4CEl5F17C8N芯片;GPRS模塊選用SIM900a芯片。通過(guò)Verilog HDL實(shí)現(xiàn)FPGA內(nèi)部邏輯功能,使用2012a版本的MATLAB軟件平臺(tái)對(duì)同樣的摔倒檢測(cè)算法進(jìn)行仿真和驗(yàn)證,搭載MATLAB軟件的計(jì)算機(jī)CPU型號(hào)為Intel i3-4170,主頻為3.70GHz,內(nèi)存大小為4G。
4.1系統(tǒng)準(zhǔn)確率分析
由于本實(shí)驗(yàn)對(duì)于老人存在很高的危險(xiǎn),所以選擇青壯年代替老人進(jìn)行實(shí)驗(yàn)。圖11為實(shí)驗(yàn)視頻流中的圖像,分別是在不同的角度,以不同的姿態(tài)進(jìn)行的摔倒實(shí)驗(yàn),同時(shí)也模仿老人的日常健身動(dòng)作,并進(jìn)行摔倒誤報(bào)率的對(duì)比測(cè)試。經(jīng)大量實(shí)驗(yàn)得到:閾值T選10,T1選1.18,T2選0.46,T3選6.5系統(tǒng)性能最佳。
當(dāng)僅用人體高寬比和有效面積比2個(gè)條件判定摔倒時(shí),圖11中的12幀圖像均被判定為摔倒,其中圖11(a)、11(b)、11(c)、11(d)、11(e)、11(f)這六幀分別對(duì)應(yīng)壓腿、踢腿、擴(kuò)胸、彎腰、俯臥撐和扭秧歌的日常健身動(dòng)作,存在較大的誤判。增加人體中心變化率對(duì)判定結(jié)果進(jìn)行修正后,由于圖11(a)、11(b)、11(c)、11(d)、11(e)、11(f)的中心變化均小于閾值6.5,此時(shí)判定結(jié)果為非摔倒,得知通過(guò)中心變化能夠有效地減少系統(tǒng)誤判。同時(shí)分別在FP-GA硬件平臺(tái)與MATLAB軟件平臺(tái)進(jìn)行摔倒準(zhǔn)確率測(cè)試,摔倒檢測(cè)的準(zhǔn)確率對(duì)比如表1所示。
表1中TPR為摔倒檢測(cè)準(zhǔn)確率,F(xiàn)NR為摔倒漏檢率,TNR為正?;顒?dòng)檢測(cè)準(zhǔn)確率,F(xiàn)PR為摔倒誤判率。1)TPR=正確檢測(cè)出摔倒的次數(shù)/實(shí)際摔倒總次數(shù);2)FNR=沒有檢測(cè)出摔倒的次數(shù)/實(shí)際摔倒總次數(shù);3)TNR=檢測(cè)為正?;顒?dòng)的次數(shù)/正?;顒?dòng)總次數(shù);4)FPR=誤判為摔倒的次數(shù)/正?;顒?dòng)總次數(shù)。
由表1得出使用FPGA平臺(tái)摔倒檢測(cè)的準(zhǔn)確率比MATLAB平臺(tái)低1%,造成該結(jié)果的原因應(yīng)該是由于FPGA的處理速度過(guò)快,導(dǎo)致一部分的圖像幀的缺失。
4.2系統(tǒng)實(shí)時(shí)性分析
該實(shí)驗(yàn)使用的CMOS數(shù)字圖像傳感器采集到的圖像分辨率為640×480,輸出的視頻幀率為25fps。FPGA硬件平臺(tái)的幀率通過(guò)測(cè)試系統(tǒng)的算法處理完一幀圖像所需要的時(shí)鐘周期數(shù),從而計(jì)算出處理后的視頻幀速率,同時(shí)使用相同的視頻流在MATLAB軟件平臺(tái)上測(cè)試系統(tǒng)的算法處理圖像的幀速率。表2給出了本文算法分別在FPGA和MATLAB 2個(gè)實(shí)驗(yàn)平臺(tái)上得到的幀處理速率,表3為該系統(tǒng)的報(bào)警響應(yīng)時(shí)間。
表2給出了本文設(shè)計(jì)的系統(tǒng)進(jìn)行視頻流摔倒檢測(cè)時(shí)的幀處理速率為24.86fps,與CMOS數(shù)字圖像傳感器輸出的視頻流幀率基本保持一致,大約為MATLAB軟件平臺(tái)處理速度的2.4倍。表3中得到平均聲光報(bào)警響應(yīng)時(shí)間為0.51s,實(shí)時(shí)性滿足要求;GPRS短信的平均發(fā)送時(shí)間為4.97s,會(huì)受到手機(jī)網(wǎng)絡(luò)信號(hào)或者運(yùn)營(yíng)商的影響。實(shí)驗(yàn)結(jié)果證明了基于FPGA的摔倒檢測(cè)報(bào)警系統(tǒng)的圖像處理速度快,摔倒報(bào)警響應(yīng)及時(shí),有很好的實(shí)時(shí)性。
5結(jié)論
本文設(shè)計(jì)了一種基于FPGA的視頻監(jiān)控摔倒檢測(cè)報(bào)警系統(tǒng),在FPGA平臺(tái)實(shí)現(xiàn)圖像處理與摔倒監(jiān)測(cè),通過(guò)Verilog HDL配置FPGA內(nèi)部邏輯功能,實(shí)現(xiàn)摔倒檢測(cè)并自動(dòng)報(bào)警。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)穩(wěn)定性好,誤報(bào)率低。同時(shí)將摔倒檢測(cè)系統(tǒng)應(yīng)用于家用照明燈,在不增加額外設(shè)備的前提下,能夠完成摔倒后室內(nèi)燈光閃爍、蜂鳴器發(fā)聲與摔倒短信發(fā)送的主動(dòng)報(bào)警,構(gòu)建了一個(gè)成本低、功耗小、誤報(bào)低且滿足實(shí)時(shí)性要求的摔倒檢測(cè)報(bào)警系統(tǒng),符合智能家居市場(chǎng)的潮流趨勢(shì)。