本發(fā)明涉及一種動(dòng)作的識(shí)別,屬于圖像識(shí)別與人機(jī)交互技術(shù)領(lǐng)域,具體的說(shuō),是指一種基于養(yǎng)老機(jī)器人平臺(tái)的摔倒動(dòng)作檢測(cè)方法。
背景技術(shù):
隨著科技進(jìn)步和醫(yī)療水平的提高,世界人口人均壽命不斷延長(zhǎng),而生育率卻持續(xù)走低,人口老齡化已經(jīng)成為一個(gè)全球性問(wèn)題。據(jù)民政部門(mén)數(shù)據(jù)顯示,截至2015年底,中國(guó)60歲以上的老人已經(jīng)超過(guò)2億,且正以每年3%以上的速度快速增長(zhǎng),中國(guó)社會(huì)人口老齡化已經(jīng)步入快速發(fā)展階段。目前,應(yīng)對(duì)養(yǎng)老問(wèn)題已上升為國(guó)家戰(zhàn)略,“智慧養(yǎng)老”成為國(guó)家重點(diǎn)鼓勵(lì)的養(yǎng)老產(chǎn)業(yè)之一,通過(guò)智能養(yǎng)老機(jī)器人照顧老年人成為未來(lái)的發(fā)展趨勢(shì)。人的摔倒動(dòng)作檢測(cè)是智能養(yǎng)老機(jī)器人的一個(gè)核心技術(shù)。據(jù)統(tǒng)計(jì),我國(guó)每年有4000萬(wàn)老人發(fā)生不同程度的摔倒,摔倒嚴(yán)重威脅著老年人的身體健康,已成為60歲以上老人傷害死亡的頭號(hào)殺手。養(yǎng)老機(jī)器人通過(guò)摔倒檢測(cè)算法實(shí)時(shí)評(píng)估老人的狀態(tài),對(duì)摔倒的老人及時(shí)干預(yù)并向家人和急救中心求助。目前市場(chǎng)上基于機(jī)器人平臺(tái)的摔倒動(dòng)作檢測(cè)方法主要分為兩類:基于傳感器的摔倒檢測(cè)方法和基于視覺(jué)的摔倒檢測(cè)算法。
基于傳感器的摔倒檢測(cè)方法一般需要被看護(hù)者在不同部位穿戴加速度感應(yīng)器、陀螺儀等器件,通過(guò)這些可穿戴的傳感器檢測(cè)人體的運(yùn)動(dòng)和姿態(tài)信息,并以此為依據(jù)來(lái)判斷人是否摔倒。雖然可穿戴設(shè)備可以較準(zhǔn)確地采集到人的姿態(tài)和運(yùn)動(dòng)信息,但是這類方法要求老年人時(shí)刻在特定位置穿戴一些傳感器,這對(duì)于行動(dòng)不便的老年人會(huì)造成一定的記憶和行動(dòng)負(fù)擔(dān)。
基于視覺(jué)的摔倒動(dòng)作檢測(cè)方法不需要對(duì)老年人施加任何約束,具有成本低、非接觸式的特點(diǎn),受到了越來(lái)越多的關(guān)注。根據(jù)所用攝像機(jī)的不同,基于視覺(jué)的摔倒動(dòng)作檢測(cè)方法可以分為兩類:基于三維(rgb-d)視頻數(shù)據(jù)的摔倒檢測(cè)方法和基于二維(rgb)視頻數(shù)據(jù)的摔倒檢測(cè)方法。第一類方法使用kinect等深度攝像機(jī)來(lái)獲取rgb-d視頻數(shù)據(jù),或利用多攝像機(jī)對(duì)場(chǎng)景進(jìn)行三維重建來(lái)獲取人的深度信息。然而,目前市場(chǎng)上的深度相機(jī)價(jià)格較高、體積較大,普適性不好;利用多攝像機(jī)進(jìn)行三維重建的方法對(duì)攝像機(jī)的位置要求嚴(yán)格,需要進(jìn)行精確的攝像機(jī)標(biāo)定和多攝像機(jī)同步,并且算法復(fù)雜、實(shí)時(shí)性較差,不適用于移動(dòng)機(jī)器人平臺(tái)。另一類方法利用單一攝像頭獲取場(chǎng)景的視頻數(shù)據(jù),通過(guò)無(wú)運(yùn)動(dòng)檢測(cè)、人體形狀變化分析等技術(shù)來(lái)判斷場(chǎng)景中是否有人摔倒。無(wú)運(yùn)動(dòng)檢測(cè)方法認(rèn)為人在摔倒后會(huì)長(zhǎng)時(shí)間靜止在地面上,如果在視頻中檢測(cè)到人在一段時(shí)間內(nèi)處于靜止,即認(rèn)為他摔倒了。顯然,這種強(qiáng)制假設(shè)與真實(shí)情況有較大出入,檢測(cè)準(zhǔn)確率較低。分析人體形狀變化的方法根據(jù)由站立到摔倒過(guò)程中人體的形狀變化提取特征,并用分類器評(píng)估是否有人摔倒。為了獲取準(zhǔn)確的人體形狀,這類方法需要額外的人體檢測(cè)或跟蹤方法來(lái)提取包含目標(biāo)人體的邊界框,摔倒檢測(cè)的效果嚴(yán)重依賴于人體檢測(cè)算法和目標(biāo)跟蹤算法的準(zhǔn)確性。
技術(shù)實(shí)現(xiàn)要素:
步驟1、訓(xùn)練階段,根據(jù)一些有標(biāo)注的視頻訓(xùn)練模型。
步驟1.1、收集一組包含摔倒動(dòng)作的視頻和一組包含其它動(dòng)作(如走路、跳舞等)的視頻。對(duì)于包含摔倒動(dòng)作的視頻,在每一幀圖像中標(biāo)注摔倒動(dòng)作發(fā)生的位置,即:用一個(gè)矩形窗口將摔倒的人框起來(lái),記錄矩形窗口的左上角位置和右下角位置。在實(shí)際場(chǎng)景中,人與攝像機(jī)的距離是未知的,人在視頻畫(huà)面中所占的比例是不確定的,因此我們定義了多種尺度的窗口,并選擇最適合的尺度的窗口來(lái)標(biāo)注摔倒動(dòng)作在圖像幀中的位置。
步驟1.2、假設(shè)定義了n種尺度的窗口,并為每一種尺度的窗口訓(xùn)練相應(yīng)的svm分類器。對(duì)于第i個(gè)尺度si={wi,hi},其中wi表示窗口的寬度,hi表示窗口的高度,wi和hi的單位是像素,下面介紹如何訓(xùn)練針對(duì)該尺度窗口的二分類線性svm分類器。首先,收集包含摔倒動(dòng)作的窗口集合(正樣本)和不包含摔倒動(dòng)作的窗口集合(負(fù)樣本)。為了收集正樣本,從摔倒動(dòng)作訓(xùn)練視頻的每幀圖像中提取已標(biāo)注的摔倒動(dòng)作窗口,如果該窗口的尺度是si,則將其加入到正樣本集。為了收集負(fù)樣本,從不包含摔倒動(dòng)作的訓(xùn)練視頻的圖像幀中隨機(jī)采樣尺度為si的窗口,并將其加入負(fù)樣本集;這些窗口可能捕捉了人的其它動(dòng)作,也可能僅包含無(wú)關(guān)的背景內(nèi)容。然后,在每個(gè)正樣本和負(fù)樣本中提取方向梯度直方圖(histogramoforientedgradient,hog)特征和光流(opticalflow)特征。方向梯度直方圖刻畫(huà)了表觀和結(jié)構(gòu)信息,光流特征捕獲了運(yùn)動(dòng)信息,靜態(tài)的表觀信息和動(dòng)態(tài)的運(yùn)動(dòng)信息能夠從不同的角度對(duì)視頻中人的摔倒動(dòng)作進(jìn)行描述。最后,用正類樣本和負(fù)樣本的特征及相應(yīng)的類別標(biāo)簽訓(xùn)練二分類線性svm分類器。對(duì)于一個(gè)新的樣本x,svm分類器對(duì)它的打分為f(x)=ω·x+b,通過(guò)訓(xùn)練,可以得到模型的參數(shù){ω;b}。
步驟1.3、統(tǒng)計(jì)訓(xùn)練視頻中不同尺度窗口之間的轉(zhuǎn)移概率。首先,統(tǒng)計(jì)所有訓(xùn)練視頻中前一幀圖像標(biāo)注的摔倒動(dòng)作窗口尺度為si={wi,hi}且后一幀圖像標(biāo)注的摔倒動(dòng)作窗口尺度為sj={wj,hj}的頻次aij,得到不同尺度窗口之間轉(zhuǎn)移的頻次矩陣
步驟2、對(duì)于一個(gè)新的視頻,模型能夠自動(dòng)檢測(cè)多個(gè)人的摔倒動(dòng)作,輸出視頻中是否有人摔倒、有幾個(gè)摔倒動(dòng)作以及每個(gè)摔倒動(dòng)作在圖像幀中的位置。
步驟2.1、在每幀圖像中稠密采樣一些中心點(diǎn),在每個(gè)中心點(diǎn)周圍采樣n種尺度的窗口,在窗口中提取方向梯度直方圖特征和光流特征。將每個(gè)窗口的特征向量輸入到相應(yīng)尺度的線性svm分類器中,得到窗口的打分。
步驟2.2、利用動(dòng)態(tài)規(guī)劃算法提取視頻中包含摔倒動(dòng)作的窗口序列。
輸入:所有采樣窗口的svm打分{m(u,t,j)},其中(u,t,i)代表一個(gè)窗口,u=(x,y)表示窗口的中心點(diǎn)坐標(biāo),t表示圖像幀的序號(hào),j∈{1,2,...,n}表示窗口的尺度;
不同尺度窗口之間轉(zhuǎn)移的頻率矩陣
輸出:視頻中包含的摔倒動(dòng)作個(gè)數(shù)q,以及每個(gè)摔倒動(dòng)作在圖像幀中的位置,即包含摔倒動(dòng)作的窗口序列集合
變量說(shuō)明:s(u,t,j)是以窗口(u,t,j)為結(jié)束的最優(yōu)路徑的得分;
s*是整個(gè)視頻所有可能路徑中最優(yōu)路徑的得分;
l*是整個(gè)視頻所有可能路徑中最優(yōu)路徑的最后一個(gè)窗口;
p(u,t,j)是以窗口(u,t,j)為結(jié)束的最優(yōu)路徑所包含的第t-1幀中的窗口;
d是稠密采樣中心點(diǎn)的步長(zhǎng),一幀圖像中相鄰兩個(gè)窗口的中心點(diǎn)相差d個(gè)像素;
t是視頻的總幀數(shù);
δ是包含不同摔倒動(dòng)作的窗口之間的最大重疊率。
(1)算法初始化,令摔倒動(dòng)作的個(gè)數(shù)置為0:q=0。
(2)對(duì)于第一幀圖像中的所有窗口(u,1,j),令p(u,1,j)=null,如果m(u,1,j)>0,令s(u,1,j)=m(u,1,j);如果m(u,1,j)<0,令s(u,1,j)=-∞。設(shè)置s*=0,l*=null,t=2。
(3)遍歷第t幀圖像中的任意一個(gè)窗口(u,t,j),
如果它的svm打分為負(fù)(m(u,t,j)<0),令s(u,t,j)=maxv∈l(u),i(s(v,t-1,i)+m(u,t,j)),這里l(u)表示到u距離小于等于
如果它的svm打分為正(m(u,t,j)≥0),令s(u,t,j)=maxv∈l(u),i(s(v,t-1,i)+m(u,t,j)×pij),這里l(u)表示到u距離小于等于
(4)如果t<t,令t=t+1,重復(fù)第(3)步;否則,進(jìn)入第(5)步。
(5)如果s*=0,那么視頻中沒(méi)有檢測(cè)到摔倒動(dòng)作,進(jìn)入第(9)步。如果s*>0,視頻中存在摔倒動(dòng)作;最優(yōu)路徑的最后一個(gè)窗口是
(6)如果p(lt)≠null,那么最優(yōu)路徑在第t-1幀中的窗口為:lt-1=p(lt),令t=t-1,重復(fù)第(6)步;否則,進(jìn)入第(7)步。
(7)令tstart=t,得到包含一個(gè)摔倒動(dòng)作的窗口序列
(8)將與
(9)返回摔倒動(dòng)作個(gè)數(shù)q和包含摔倒動(dòng)作的窗口序列集合{υq}q=1:q,算法結(jié)束。
本發(fā)明提出了一種養(yǎng)老機(jī)器人平臺(tái)下的摔倒動(dòng)作檢測(cè)算法,與現(xiàn)有的基于單目視覺(jué)的摔倒動(dòng)作檢測(cè)方法相比,我們提出的方法不需要預(yù)先采用人體檢測(cè)或跟蹤算法來(lái)提取包含目標(biāo)人體的邊界,能夠直接從單攝像機(jī)獲取的視頻中檢測(cè)出有沒(méi)有摔倒動(dòng)作、有幾個(gè)摔倒動(dòng)作以及摔倒動(dòng)作發(fā)生的位置。另外,與現(xiàn)有的動(dòng)作檢測(cè)方法不同,我們的算法考慮了摔倒動(dòng)作中人體形狀變化的特點(diǎn),設(shè)置了多個(gè)尺度的圖像窗口,并采用馬爾科夫模型來(lái)表達(dá)多個(gè)尺度窗口之間的轉(zhuǎn)移概率,建模了視頻中相鄰圖像幀之間的局部上下文信息,因而可以取得更好的摔倒動(dòng)作檢測(cè)結(jié)果。
附圖說(shuō)明
圖1為本發(fā)明基于養(yǎng)老機(jī)器人平臺(tái)的摔倒動(dòng)作檢測(cè)方法;
具體實(shí)施方式:
下面進(jìn)一步詳細(xì)說(shuō)明本專利的具體實(shí)施方式:
步驟1、采集一些正例圖像窗口和負(fù)例圖像窗口用于模型訓(xùn)練。
(1)在一個(gè)大約4米見(jiàn)方的房間的四面墻上架設(shè)四個(gè)攝像頭,每個(gè)攝像頭離地高度大約1.2米。攝像頭從4個(gè)不同的角度拍攝了10個(gè)人的摔倒動(dòng)作和其他動(dòng)作(如走路,跳舞等),每個(gè)視頻中包含一個(gè)人的動(dòng)作。
(2)定義了9種尺度的窗口{si=(wi,hi)}i=1:9,其中wi表示窗口的寬度,hi表示窗口的高度。對(duì)于包含摔倒動(dòng)作的視頻,在每一幀圖像中標(biāo)注是否有摔倒動(dòng)作以及摔倒動(dòng)作發(fā)生的位置,從9種尺度的窗口中選擇一個(gè)最合適的將發(fā)生摔倒動(dòng)作的人框起來(lái),記錄矩形窗口的左上角位置和右下角位置。
(3)在每個(gè)尺度下收集大約300~1000張正例圖像窗口。從摔倒動(dòng)作視頻中提取已標(biāo)注的摔倒動(dòng)作窗口,如果該窗口的尺度與當(dāng)前尺度一致,則將其加入到正樣本集。
(4)在每個(gè)尺度下收集負(fù)例圖像窗口,數(shù)量大約為相應(yīng)正例圖像窗口的1.2~1.5倍。從不包含摔倒動(dòng)作的視頻中隨機(jī)采樣相應(yīng)尺度的窗口,并將其加入負(fù)樣本集。約30%的負(fù)例圖像窗口捕捉了人的其它動(dòng)作,約70%的負(fù)例圖像窗口是包含無(wú)關(guān)內(nèi)容的背景窗口。
步驟a2、在正例圖像窗口和負(fù)例圖像窗口中提取方向梯度直方圖特征。
(1)為了降低特征維度、加快運(yùn)算速度,在保持寬高比基本不變的條件下對(duì)每個(gè)尺度的圖像窗口進(jìn)行壓縮,壓縮后窗口的寬度和高度均為8個(gè)像素的倍數(shù)。
(2)對(duì)壓縮后的圖像窗口進(jìn)行灰度化,將其轉(zhuǎn)換為灰度圖像。采用gamma校正法對(duì)圖像進(jìn)行顏色空間的歸一化,來(lái)調(diào)整圖像的對(duì)比度、降低光照變化造成的影響、抑制噪聲干擾。
(3)計(jì)算圖像中每個(gè)像素的梯度大小和方向。
(4)將每個(gè)圖像窗口劃分成許多8*8像素的單元格,將梯度方向(0-360°)劃分為9個(gè)區(qū)間,統(tǒng)計(jì)每個(gè)單元格在不同梯度方向上的梯度直方圖,每個(gè)單元格得到一個(gè)9維的描述符向量;
(5)將每2*2個(gè)單元格組成一個(gè)塊,一個(gè)塊內(nèi)所有單元格的特征描述符串聯(lián)起來(lái)構(gòu)成這個(gè)塊的hog特征向量。
(6)將圖像窗口內(nèi)的所有塊的hog特征向量串聯(lián)起來(lái),得到該圖像窗口的hog特征向量。
步驟a3、在正例圖像窗口和負(fù)例圖像窗口中提取光流特征。
(1)對(duì)于一個(gè)圖像窗口,在原始視頻中下一幀圖像的相同位置提取相同大小的窗口,利用lucas-kanade算法計(jì)算窗口中每個(gè)像素點(diǎn)的光流。
(2)光流場(chǎng)的水平方向數(shù)據(jù)組成水平光流場(chǎng)fx,垂直方向數(shù)據(jù)組成垂直光流場(chǎng)fy,用半波校正將其分解為四個(gè)非負(fù)通道:
(3)對(duì)四個(gè)通道的數(shù)據(jù)進(jìn)行高斯濾波和歸一化,得到非負(fù)且稀疏的四通道
步驟a4、對(duì)于每個(gè)尺度的窗口,用相應(yīng)的正例圖像窗口集合和負(fù)例圖像窗口集合訓(xùn)練一個(gè)二分類線性svm分類器。9種尺度的窗口所對(duì)應(yīng)的svm模型的參數(shù)為{ωi;bi}i=1:9。
步驟a5、統(tǒng)計(jì)不同尺度窗口之間的轉(zhuǎn)移概率。
(1)統(tǒng)計(jì)所有訓(xùn)練視頻中前一幀圖像標(biāo)注的摔倒動(dòng)作窗口尺度為si且后一幀圖像標(biāo)注的摔倒動(dòng)作窗口尺度為sj的頻次aij,得到不同尺度窗口之間轉(zhuǎn)移的頻次矩陣
(2)對(duì)頻次矩陣a的每一行根據(jù)以下公式做歸一化:
得到不同尺度窗口之間轉(zhuǎn)移的頻率矩陣
步驟b1、對(duì)于一個(gè)新的視頻,在每幀圖像中稠密采樣一組中心點(diǎn),在每個(gè)中心點(diǎn)周圍提取9種尺度的圖像窗口。
步驟b2、提取新視頻的所有圖像窗口的hog特征表示,具體方案見(jiàn)步驟a2中(1)-(6)步。
步驟b3、將每個(gè)窗口的特征表示輸入到相應(yīng)尺度的svm分類器中。用x(u,t,j)表示圖像窗口(u,t,j)的hog特征向量,u=(x,y)表示窗口的中心點(diǎn)坐標(biāo),t表示圖像幀的序號(hào),窗口尺度是sj,根據(jù)下式計(jì)算相應(yīng)svm分類器對(duì)它的打分:
m(u,t,j)=ωj·x(u,t,j)+bj。
步驟b4、利用我們提出的動(dòng)態(tài)規(guī)劃算法檢測(cè)視頻中是否包含摔倒動(dòng)作、有幾個(gè)摔倒動(dòng)作,并提取視頻中包含摔倒動(dòng)作的窗口序列,對(duì)一個(gè)或多個(gè)摔倒動(dòng)作進(jìn)行空間和時(shí)間定位。