本發(fā)明涉及人體行為識(shí)別領(lǐng)域,特別涉及一種基于自反饋基因表達(dá)式編程的人體行為識(shí)別方法。
背景技術(shù):
近幾年,人體行為識(shí)別研究是國(guó)際上計(jì)算機(jī)學(xué)科最熱門(mén)的前沿研究課題之一,具有重要的理論研究?jī)r(jià)值,研究課題內(nèi)容豐富,涉及到圖像處理與分析、機(jī)器視覺(jué)、人體生理學(xué)、人體運(yùn)動(dòng)學(xué)、模式識(shí)別和人工智能等多學(xué)科領(lǐng)域知識(shí)。人體行為識(shí)別研究不但拓寬了學(xué)科間的研究方向,而且?guī)?dòng)相關(guān)學(xué)科的發(fā)展,同時(shí)也是智慧城市與公共安全迫切需要解決的關(guān)鍵技術(shù),其廣泛應(yīng)用于人機(jī)智能交互、智能視覺(jué)監(jiān)控、基于內(nèi)容的視頻檢索、虛擬現(xiàn)實(shí)等領(lǐng)域。目前人體識(shí)別的大部的研究還只停止在靜態(tài)的識(shí)別,人體運(yùn)動(dòng)的復(fù)雜性和易變性使得識(shí)別的準(zhǔn)確性和高效性無(wú)法滿足相關(guān)行業(yè)的實(shí)用要求。
目前,現(xiàn)有技術(shù)中對(duì)人體行為的識(shí)別主要是采用關(guān)節(jié)點(diǎn)佩戴傳感器或者是采用多攝像頭進(jìn)行多視角監(jiān)視,關(guān)節(jié)點(diǎn)佩戴傳感器是指在人體的某個(gè)部位放上傳感器,這種方式識(shí)別人體的行為種類有限,且識(shí)別準(zhǔn)確度不高、識(shí)別速度慢、識(shí)別行為單一且可擴(kuò)展性差;采用多攝像頭進(jìn)行多視角監(jiān)視是指在各個(gè)視角位置安裝攝像頭,通過(guò)各個(gè)視角的攝像頭拍攝到的圖片判定人體的行為,這種方式存在成本高、數(shù)據(jù)精度低、使用不便、受環(huán)境因素影響大等缺陷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于自反饋基因表達(dá)式編程的人體行為識(shí)別方法,該方法利用自反饋基因表達(dá)式(SGEP)建立人體運(yùn)動(dòng)模型,然后將人體運(yùn)動(dòng)模型的梯度信息作為人體運(yùn)動(dòng)模型特征對(duì)各類人體行為進(jìn)行精確刻畫(huà),最后通過(guò)神經(jīng)網(wǎng)絡(luò)對(duì)人體行為進(jìn)行識(shí)別,具有人體行為識(shí)別準(zhǔn)確度高以及識(shí)別速度快的優(yōu)點(diǎn)。
本發(fā)明的目的通過(guò)下述技術(shù)方案實(shí)現(xiàn):一種基于自反饋基因表達(dá)式編程的人體行為識(shí)別方法,其特征在于,步驟如下:
S1、獲取人體行為深度圖像,然后從人體行為深度圖像中分別提取出人體N個(gè)關(guān)節(jié)點(diǎn)各自對(duì)應(yīng)的三維時(shí)間序列數(shù)據(jù),作為一個(gè)樣本;
S2、利用自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模,獲取到樣本對(duì)應(yīng)的各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列,從而得到各樣本基于關(guān)節(jié)點(diǎn)的人體運(yùn)動(dòng)模型;其中所述自反饋基因表達(dá)式編程由基因表達(dá)式編程在交叉、變異操作后再加入TIS插串操作構(gòu)造得到,其中TIS插串操作指的是在關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部插入函數(shù)符串,用于增加關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效位的長(zhǎng)度增長(zhǎng);
S3、提取人體運(yùn)動(dòng)模型的梯度信息作為模型特征;
S4、通過(guò)步驟S1獲取到訓(xùn)練樣本集,并且各訓(xùn)練樣本通過(guò)步驟S2的方式獲取到各訓(xùn)練樣本的人體運(yùn)動(dòng)模型,然后通過(guò)步驟S3的方式提取各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征;
S5、各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征作為神經(jīng)網(wǎng)絡(luò)的輸入,對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,將訓(xùn)練得到的神經(jīng)網(wǎng)絡(luò)模型,作為最終的人體行為分類器;
S6、通過(guò)步驟S1獲取到測(cè)試樣本,并且測(cè)試樣本通過(guò)步驟S2的方式獲取到測(cè)試樣本的人體運(yùn)動(dòng)模型,然后通過(guò)步驟S3的方式提取測(cè)試樣本的人體運(yùn)動(dòng)模型的模型特征;
S7、將測(cè)試樣本的人體運(yùn)動(dòng)模型的模型特征輸入至步驟S5中獲取到的人體行為分類器中,通過(guò)該人體行為分類器得到人體行為識(shí)別結(jié)果。
優(yōu)選的,所述步驟S1中使用微軟體感設(shè)備Kinect結(jié)合第二代SDK以及OpenCV計(jì)算機(jī)視覺(jué)庫(kù)獲取人體行為深度圖像;其中利用TOF(Time Of Flight,飛行時(shí)間)技術(shù),計(jì)算微軟Kinect傳感器中紅外傳感器發(fā)射的紅外光線到達(dá)人體后反射的相位差,得到基于人體的人體行為深度圖像;
各個(gè)關(guān)節(jié)點(diǎn)對(duì)應(yīng)的三維時(shí)間序列數(shù)據(jù)是以微軟體感設(shè)備Kinect的紅外傳感器為原點(diǎn)所建立的空間直角坐標(biāo)系得到的,該空間直角坐標(biāo)系包括x軸、y軸和z軸,其中x軸正方向?yàn)槠叫杏谖④涹w感設(shè)備Kinect水平方向向左,y軸正方向?yàn)榇怪庇谖④涹w感設(shè)備Kinect傾斜方向向上,z軸正方向?yàn)槲④涹w感設(shè)備Kinect朝向方向。
優(yōu)選的,所述步驟S1中N為25以上。
優(yōu)選的,所述步驟S1中在獲取到人體行為深度圖像后,將人體行為深度圖像中的人體與背景進(jìn)行分割,然后轉(zhuǎn)化為骨架追蹤系統(tǒng),從而獲取人體的多個(gè)關(guān)節(jié)點(diǎn)三維時(shí)間序列數(shù)據(jù)。
優(yōu)選的,所述步驟S2中自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模,得到基于關(guān)節(jié)點(diǎn)的人體運(yùn)動(dòng)模型的具體過(guò)程如下:
S21、確定人體運(yùn)動(dòng)模型所需的函數(shù)符集和終結(jié)符集以及終結(jié)符個(gè)數(shù),并設(shè)定循環(huán)終止條件;
S22、創(chuàng)建隨機(jī)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列初始種群,將各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列表達(dá)為基因表達(dá)式樹(shù);關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列由函數(shù)符集和終結(jié)符集構(gòu)成,終結(jié)符集中包括關(guān)節(jié)點(diǎn)三維時(shí)間序列數(shù)據(jù)中時(shí)間t以及關(guān)節(jié)點(diǎn)三維時(shí)間序列數(shù)據(jù)的坐標(biāo)分量;
S23、計(jì)算種群中各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的適應(yīng)值,然后通過(guò)相對(duì)誤差估計(jì)模型或絕對(duì)誤差模型對(duì)種群中各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列對(duì)環(huán)境的適應(yīng)能力進(jìn)行評(píng)估,在評(píng)估結(jié)果符合條件的情況下,從種群選擇出一定數(shù)量的個(gè)體作為父體;并且判斷是否滿足循環(huán)終止條件,若滿足,則跳轉(zhuǎn)到S26,否則進(jìn)入步驟S24;
S24、根據(jù)步驟S23選擇出的父體,對(duì)種群中的關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列進(jìn)行基因表達(dá)式編程的交叉、變異操作;
S25、對(duì)種群的關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列進(jìn)行TIS插串操作,得到下一代種群個(gè)體,回到步驟S23;
S26、輸出模型,得到最優(yōu)染色體所表示的函數(shù)表達(dá)式,即關(guān)節(jié)點(diǎn)的人體運(yùn)動(dòng)模型。
更進(jìn)一步的,步驟S21中函數(shù)符集F為:
F={S,C,T,I,R,N,P,Q,E,A,G,L,B,D,F(xiàn),H}
其中函數(shù)符集F中的各元素代表含義如下:
S表示正弦函數(shù)Sin,C表示余弦函數(shù)cos,T表示正切函數(shù)tan,I表示反正弦函數(shù)asin,R表示反余弦函數(shù)acos,N表示反正切函數(shù)atan,P表示冪函數(shù)pow,Q表示平方根函數(shù)sqrt,E表示自然數(shù)為底的指數(shù)函數(shù)exp,A表示絕對(duì)值函數(shù)abs,G表示符號(hào)函數(shù)sign,L表示自然對(duì)數(shù)函數(shù)ln,B表示以10為底的對(duì)數(shù)函數(shù)lg,D表示雙曲正弦函數(shù)sinh,F(xiàn)表示雙曲余弦函數(shù)cosh,H表示雙曲正切函數(shù)tanh;
步驟S21中所述終結(jié)符集包括多維終結(jié)字符以及常數(shù)終結(jié)字符集;
其中多維終結(jié)字符T為:
T={a,b,c,d,e,f,g,h,i};
其中多維終結(jié)符集T中的各元素分別代表多維變量中每個(gè)自變量,在檢驗(yàn)人體運(yùn)動(dòng)模型時(shí)將各變量所對(duì)應(yīng)的實(shí)際值代入人體運(yùn)動(dòng)模型中;
其中常數(shù)終結(jié)符集C為:C={1000,-1000}。
優(yōu)選的,其特征在于,TIS插串操作的過(guò)程如下:
當(dāng)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效長(zhǎng)度m=1時(shí),即關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的根位置是一個(gè)常數(shù),此時(shí),從關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列根位置開(kāi)始到第[L/4]位變異為隨機(jī)得來(lái)的函數(shù)符串;其中[L/4]表示L/4取整數(shù)部分,L為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的長(zhǎng)度;同時(shí)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部的其它字符依次后移,超出頭部長(zhǎng)度的字符串刪除;其中L為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的長(zhǎng)度,h為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部的長(zhǎng)度;
當(dāng)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列效長(zhǎng)度1<m<h時(shí),在關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效位的最后一個(gè)函數(shù)符后面插入h-m個(gè)隨機(jī)得來(lái)的函數(shù)符串,關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部插入點(diǎn)后的其他字符依次后移,超出頭部長(zhǎng)度的字符串刪除。
優(yōu)選的,所述步驟S3中,對(duì)于各關(guān)節(jié)點(diǎn)Ji(i=1,2...,N),N為樣本中關(guān)節(jié)點(diǎn)的總數(shù),記得到的人體運(yùn)動(dòng)模型為zi=Fi(x,y,t);步驟S3中提取人體運(yùn)動(dòng)模型的模型特征具體過(guò)程如下:
等距地取k個(gè)時(shí)刻記為tj,j=1,2,…,k;
計(jì)算各關(guān)節(jié)點(diǎn)的梯度信息和i=1,2,…,N;j=1,2,…,k;其中分別表示第i個(gè)關(guān)節(jié)點(diǎn)在第tj時(shí)刻對(duì)應(yīng)的x,y坐標(biāo)值;
將上述計(jì)算得到的各關(guān)節(jié)點(diǎn)梯度信息和i=1,2,…,N;j=1,2,…,k作為人體運(yùn)動(dòng)模型為zi=Fi(x,y,t)的模型特征。
更進(jìn)一步的,所述步驟S5中通過(guò)各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征訓(xùn)練得到神經(jīng)網(wǎng)絡(luò)模型的具體過(guò)程如下:
S51、首先建立單隱層神經(jīng)網(wǎng)絡(luò)框架,將步驟S4中得到各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征i=1,2,…,N;j=1,2,…,k作為神經(jīng)網(wǎng)絡(luò)的輸入訓(xùn)練樣本集,其中設(shè)置N×2k個(gè)輸入神經(jīng)網(wǎng)絡(luò),設(shè)置隱層神經(jīng)元個(gè)數(shù)為N×4k+1個(gè);根據(jù)人體行為包括的類別數(shù)M設(shè)置輸出神經(jīng)元個(gè)數(shù)為M個(gè),即輸出向量為{c1,c2,…,cs,…,cM},其中cs∈R,且取值區(qū)間為[0,1],當(dāng)cs=max{c1,c2,…,cM}時(shí),cs取為1,即神經(jīng)網(wǎng)絡(luò)輸出向量為{0,0,…,1,…,0},表示人體行為屬于第s類行為;
S52、設(shè)置神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率η為0~1之間的隨機(jī)數(shù),且神經(jīng)網(wǎng)絡(luò)變換函數(shù)f(x)設(shè)置為Sigmoid函數(shù),學(xué)習(xí)規(guī)則為連續(xù)感知器學(xué)習(xí)規(guī)則,利用誤差反向傳播算法訓(xùn)練神經(jīng)網(wǎng)絡(luò),得到神經(jīng)網(wǎng)絡(luò)模型。
優(yōu)選的,其特征在于,所述步驟S5中,針對(duì)于各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征,作為神經(jīng)網(wǎng)絡(luò)的輸入,通過(guò)十拆交叉驗(yàn)證法訓(xùn)練得到神經(jīng)網(wǎng)絡(luò)模型,作為最終的人體行為分類器。
本發(fā)明相對(duì)于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:
(1)本發(fā)明人體行為識(shí)別方法針對(duì)獲取到的人體行為深度圖像,從中分別提取出人體多個(gè)關(guān)節(jié)點(diǎn)各自對(duì)應(yīng)的三維時(shí)間序列數(shù)據(jù)作為一個(gè)樣本,然后利用自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模,得到各樣本基于關(guān)節(jié)點(diǎn)的人體運(yùn)動(dòng)模型,并且提取人體運(yùn)動(dòng)模型的梯度信息作為模型特征。獲取到訓(xùn)練樣本集后,將訓(xùn)練樣本集中訓(xùn)練樣本對(duì)應(yīng)的人體運(yùn)動(dòng)模型的模型特征輸入至神經(jīng)網(wǎng)絡(luò),將訓(xùn)練得到神經(jīng)網(wǎng)絡(luò)模型作為人體行為分類器;獲取到測(cè)試樣本后,將測(cè)試樣本對(duì)應(yīng)的人體運(yùn)動(dòng)模型的模型特征輸入至上述獲取的人體行為分類器中,通過(guò)該人體行為分類器得到人體行為識(shí)別結(jié)果。本發(fā)明采用由現(xiàn)有技術(shù)中的基因表達(dá)式編程(GEP)在交叉、變異操作后再加入TIS插串操作構(gòu)造得到自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模,其中TIS插串操作指的是在關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部插入函數(shù)符串,用于增加關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效位的長(zhǎng)度,從而可以以增加種群個(gè)體的均勻性,使其更能快速的收斂到問(wèn)題的全局最優(yōu)解,避免陷入局部最優(yōu)解。因此本發(fā)明中采用自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模能夠有效提高人體行為識(shí)別的準(zhǔn)確度以及識(shí)別的速度。
(2)本發(fā)明中將對(duì)于特定行為具有代表性的梯度信息作為人體運(yùn)動(dòng)模型中的模型特征,相比現(xiàn)有技術(shù)中采用全局或者局部運(yùn)動(dòng)特征作為模型特征,本發(fā)明的模型特征能夠更準(zhǔn)確的反映出人體行為運(yùn)動(dòng),大大減少特征復(fù)雜度,提高特征代表性以及識(shí)別正確率。
(3)本發(fā)明使用微軟體感設(shè)備Kinect結(jié)合第二代SDK以及OpenCV計(jì)算機(jī)視覺(jué)庫(kù)獲取人體行為深度圖像,能有效提高數(shù)據(jù)精度,在一定程度上解決現(xiàn)有技術(shù)中使用傳統(tǒng)攝像設(shè)備識(shí)別效率低、識(shí)別效果受環(huán)境因素影響大以及佩戴關(guān)節(jié)傳感器成本高、使用不方便等技術(shù)問(wèn)題;
附圖說(shuō)明
圖1是本發(fā)明方法流程圖。
圖2是本發(fā)明方法中自反饋基因表達(dá)式編程建立人體運(yùn)動(dòng)模型流程圖。
圖3是本發(fā)明方法中自反饋基因表達(dá)式編程建立人體運(yùn)動(dòng)模型過(guò)程中建立的表達(dá)式樹(shù)圖。
圖4是圖3中表達(dá)式樹(shù)圖的生成過(guò)程。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
實(shí)施例
本實(shí)施例公開(kāi)了一種基于自反饋基因表達(dá)式編程的人體行為識(shí)別方法,其特征在于,如圖1所示,步驟如下:
S1、獲取人體行為深度圖像,然后從人體行為深度圖像中分別提取出人體N個(gè)關(guān)節(jié)點(diǎn)各自對(duì)應(yīng)的三維時(shí)間序列數(shù)據(jù),作為一個(gè)樣本,即一個(gè)樣本中包括人體N個(gè)關(guān)節(jié)點(diǎn)的三維時(shí)間序列數(shù)據(jù);其中在本實(shí)施例中使用微軟體感設(shè)備Kinect結(jié)合第二代SDK以及OpenCV計(jì)算機(jī)視覺(jué)庫(kù)獲取人體行為深度圖像,利用TOF(Time Of Flight,飛行時(shí)間)技術(shù),計(jì)算微軟Kinect傳感器中紅外傳感器發(fā)射的紅外光線到達(dá)人體后反射的相位差,得到基于關(guān)節(jié)點(diǎn)的人體行為深度圖像。各個(gè)關(guān)節(jié)點(diǎn)對(duì)應(yīng)的三維時(shí)間序列數(shù)據(jù)是以微軟體感設(shè)備Kinect的紅外傳感器為原點(diǎn)所建立的空間直角坐標(biāo)系得到的,該空間直角坐標(biāo)系包括x軸、y軸和z軸,其中x軸正方向?yàn)槠叫杏谖④涹w感設(shè)備Kinect水平方向向左,y軸正方向?yàn)榇怪庇谖④涹w感設(shè)備Kinect傾斜方向向上,z軸正方向?yàn)槲④涹w感設(shè)備Kinect朝向方向。本步驟中在獲取到人體行為深度圖像后,將人體行為深度圖像中的人體與背景進(jìn)行分割,然后轉(zhuǎn)化為骨架追蹤系統(tǒng),從而獲取人體的多個(gè)關(guān)節(jié)點(diǎn)三維時(shí)間序列數(shù)據(jù)在本實(shí)施例中N為25,即從人體行為深度圖像中分別提取出人體25個(gè)關(guān)節(jié)點(diǎn)對(duì)應(yīng)的三維時(shí)間序列數(shù)據(jù)。
S2、利用自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模,獲取到樣本對(duì)應(yīng)的各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列,從而得到各樣本基于關(guān)節(jié)點(diǎn)的人體運(yùn)動(dòng)模型;其中所述自反饋基因表達(dá)式編程(SGEP)由基因表達(dá)式編程(GEP)在交叉、變異操作后再加入TIS插串操作構(gòu)造得到,其中TIS插串操作指的是在關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部插入函數(shù)符串,用于增加關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效位的長(zhǎng)度增長(zhǎng)。
S3、提取人體運(yùn)動(dòng)模型的梯度信息作為模型特征;對(duì)于各關(guān)節(jié)點(diǎn)Ji(i=1,2...,N),記得到的人體運(yùn)動(dòng)模型為zi=Fi(x,y,t);步驟S3中提取人體運(yùn)動(dòng)模型的模型特征具體過(guò)程如下:
等距地取k個(gè)時(shí)刻記為tj,j=1,2,…,k;
計(jì)算各關(guān)節(jié)點(diǎn)的梯度信息和i=1,2,…,N;j=1,2,…,k;其中分別表示第i個(gè)關(guān)節(jié)點(diǎn)在第tj時(shí)刻對(duì)應(yīng)的x,y坐標(biāo)值;
將上述計(jì)算得到的各關(guān)節(jié)點(diǎn)梯度信息和i=1,2,…,N;j=1,2,…,k作為人體運(yùn)動(dòng)模型為zi=Fi(x,y,t)的模型特征。
S4、通過(guò)步驟S1獲取到訓(xùn)練樣本集,并且各訓(xùn)練樣本通過(guò)步驟S2的方式獲取到各訓(xùn)練樣本的人體運(yùn)動(dòng)模型,然后通過(guò)步驟S3的方式提取各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征。
S5、將各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征作為神經(jīng)網(wǎng)絡(luò)的輸入,通過(guò)設(shè)置神經(jīng)網(wǎng)絡(luò)的層數(shù)、神經(jīng)元的個(gè)數(shù)、初始化權(quán)值參數(shù)以及選擇梯度下降優(yōu)化算法,對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,將訓(xùn)練得到神經(jīng)網(wǎng)絡(luò)模型作為最終的人體行為分類器;具體過(guò)程如下:
S51、首先建立單隱層神經(jīng)網(wǎng)絡(luò)框架,將步驟S4中得到各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征i=1,2,…,N;j=1,2,…,k輸入至神經(jīng)網(wǎng)絡(luò),其中設(shè)置N×2k個(gè)輸入神經(jīng)網(wǎng)絡(luò),設(shè)置隱層神經(jīng)元個(gè)數(shù)為N×4k+1個(gè);根據(jù)人體行為包括的類別總數(shù)M設(shè)置輸出神經(jīng)元個(gè)數(shù)為M個(gè),即輸出向量為{c1,c2,…,cs,…,cM},其中cs∈R,1,2,…,s,…,M分別表示人體行為所屬類別,且取值區(qū)間為[0,1],當(dāng)cs=max{c1,c2,…,cM}時(shí),cs取為1,即神經(jīng)網(wǎng)絡(luò)輸出向量為{0,0,…,1,…,0},表示人體行為屬于第s類行為;
S52、設(shè)置神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率η為0~1之間的隨機(jī)數(shù),且神經(jīng)網(wǎng)絡(luò)變換函數(shù)f(x)設(shè)置為Sigmoid函數(shù),即f(x)=1/(1+e-x),學(xué)習(xí)規(guī)則為連續(xù)感知器學(xué)習(xí)規(guī)則,利用誤差反向傳播算法訓(xùn)練神經(jīng)網(wǎng)絡(luò),得到神經(jīng)網(wǎng)絡(luò)模型。
在本步驟中,對(duì)于各訓(xùn)練樣本的人體運(yùn)動(dòng)模型的模型特征,作為神經(jīng)網(wǎng)絡(luò)的輸入,通過(guò)十拆交叉驗(yàn)證法訓(xùn)練得到神經(jīng)網(wǎng)絡(luò)模型,作為最終的人體行為分類器。
S6、通過(guò)步驟S1獲取到測(cè)試樣本,并且測(cè)試樣本通過(guò)步驟S2的方式獲取到測(cè)試樣本的人體運(yùn)動(dòng)模型,然后通過(guò)步驟S3的方式提取測(cè)試樣本的人體運(yùn)動(dòng)模型的模型特征。
S7、將測(cè)試樣本的人體運(yùn)動(dòng)模型的模型特征輸入至步驟S5中獲取到的人體行為分類器中,通過(guò)該人體行為分類器得到人體行為識(shí)別結(jié)果。
本實(shí)施例上述步驟S2中,如圖2所示,自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模,得到各樣本基于關(guān)節(jié)點(diǎn)的人體運(yùn)動(dòng)模型的具體過(guò)程如下:
S21、確定人體運(yùn)動(dòng)模型所需的函數(shù)符集和終結(jié)符集以及終結(jié)符個(gè)數(shù),并設(shè)定循環(huán)終止條件,然后進(jìn)入步驟S22;其中本步驟中函數(shù)符集F為:
F={S,C,T,I,R,N,P,Q,E,A,G,L,B,D,F(xiàn),H}
其中函數(shù)符集F中的各元素代表含義如下:
S表示正弦函數(shù)Sin,C表示余弦函數(shù)cos,T表示正切函數(shù)tan,I表示反正弦函數(shù)asin,R表示反余弦函數(shù)acos,N表示反正切函數(shù)atan,P表示冪函數(shù)pow,Q表示平方根函數(shù)sqrt,E表示自然數(shù)為底的指數(shù)函數(shù)exp,A表示絕對(duì)值函數(shù)abs,G表示符號(hào)函數(shù)sign,L表示自然對(duì)數(shù)函數(shù)ln,B表示以10為底的對(duì)數(shù)函數(shù)lg,D表示雙曲正弦函數(shù)sinh,F(xiàn)表示雙曲余弦函數(shù)cosh,H表示雙曲正切函數(shù)tanh;
即函數(shù)符集F為:F={Sin,cos,tan,asin,acos,atan,pow,sqrt,exp,abs,
sign,ln,lg,sinh,cosh,tanh}
本步驟中終結(jié)符集包括多維終結(jié)字符以及常數(shù)終結(jié)字符集;
其中多維終結(jié)字符T為:
T={a,b,c,d,e,f,g,h,i};
其中多維終結(jié)符集T中的各元素分別代表多維變量中每個(gè)自變量,在檢驗(yàn)人體運(yùn)動(dòng)模型時(shí)將各變量所對(duì)應(yīng)的實(shí)際值代入人體運(yùn)動(dòng)模型中;其中常數(shù)終結(jié)符集C為:C={1000,-1000}。
本步驟中循環(huán)終止條件通常設(shè)置為以下條件之一:
(1)代表構(gòu)造整個(gè)人體運(yùn)動(dòng)運(yùn)動(dòng)模型的種群的演化次數(shù)達(dá)到了一定值;
(2)代表整個(gè)人體運(yùn)動(dòng)運(yùn)動(dòng)模型的種群最優(yōu)個(gè)體的適應(yīng)值達(dá)到預(yù)先設(shè)定的值,或在一定演化次數(shù)內(nèi)沒(méi)有變化。
S22、創(chuàng)建隨機(jī)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列初始種群,將種群中各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列為基因表達(dá)式樹(shù),即ET樹(shù);其中初始種群即為初始的人體運(yùn)動(dòng)模型,由各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列構(gòu)成,而關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列又是由函數(shù)符集和終結(jié)符集組成;其中終結(jié)符集中包括關(guān)節(jié)點(diǎn)三維時(shí)間序列數(shù)據(jù)中時(shí)間t,關(guān)節(jié)點(diǎn)三維時(shí)間序列數(shù)據(jù)坐標(biāo)分量等;
本步驟中將各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列表達(dá)式轉(zhuǎn)變?yōu)榛虮磉_(dá)式樹(shù)的過(guò)程如下:
將隨機(jī)生成的關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的首個(gè)符號(hào)作為表達(dá)式的根節(jié)點(diǎn);
按順序依次將關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的字符通過(guò)廣度遍歷的方法為每個(gè)元素集函數(shù)符或終結(jié)符生成樹(shù)結(jié)點(diǎn),其中,子結(jié)點(diǎn)的數(shù)目即為該結(jié)點(diǎn)應(yīng)含參數(shù)的個(gè)數(shù)(終結(jié)符及無(wú)參函數(shù)所需參數(shù)個(gè)數(shù)即為0,子結(jié)點(diǎn)的代表值依照序列中符號(hào)順序填充補(bǔ)齊。
本實(shí)施例中的關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列代表演化算法中的基因,比如第i個(gè)關(guān)節(jié)點(diǎn)為Ji,某個(gè)行為下在某一時(shí)刻t該關(guān)節(jié)點(diǎn)的坐標(biāo)數(shù)據(jù)為通過(guò)第i個(gè)關(guān)節(jié)點(diǎn)的三維時(shí)間序列數(shù)據(jù)可以獲取到,如是一個(gè)合法的序列,其中Q表示函數(shù)符開(kāi)方,帶下劃線的部分為基因尾部,不帶下劃線的部分為基因頭部。圖3與之對(duì)應(yīng)的表達(dá)式樹(shù)。其中圖4A至4G所示為圖3的表達(dá)式樹(shù)的生成過(guò)程。
S23、計(jì)算種群中各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的適應(yīng)值,然后通過(guò)相對(duì)誤差估計(jì)模型或絕對(duì)誤差模型對(duì)種群中各關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列對(duì)環(huán)境的適應(yīng)能力進(jìn)行評(píng)估,在評(píng)估結(jié)果符合條件的情況下,從種群選擇出一定數(shù)量的個(gè)體作為父體;并且判斷是否滿足循環(huán)終止條件,若滿足,則跳轉(zhuǎn)到S26,否則進(jìn)入步驟S24;
其中本步驟中所使用的相對(duì)誤差估計(jì)模型為:
其中本步驟中所使用的絕對(duì)誤差估計(jì)模型為:
其中n為種群中提取的關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列驗(yàn)證樣本的總數(shù),fi表示關(guān)節(jié)點(diǎn)Ji運(yùn)動(dòng)序列的適應(yīng)度值,R為一常數(shù),(0,R)為適應(yīng)度值控制的范圍;P(i,j′)是利用關(guān)節(jié)點(diǎn)Ji對(duì)應(yīng)的運(yùn)動(dòng)序列所求出的第j′個(gè)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列驗(yàn)證樣本的函數(shù)值,Yj′是第j′個(gè)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列驗(yàn)證樣本的真實(shí)值;
采用二范數(shù)(是指空間上兩個(gè)向量矩陣的直線距離),形如:來(lái)評(píng)價(jià)當(dāng)前模型的好壞,其中是預(yù)測(cè)向量,Y是實(shí)際值向量。在本步驟中當(dāng)fi無(wú)限趨近于n*R時(shí),即相對(duì)誤差估計(jì)模型和絕對(duì)誤差估計(jì)模型中|P(i,j′)-Yj′|無(wú)限趨近于0時(shí)的情況下,則在本步驟中判斷評(píng)估結(jié)果符合條件。
S24、根據(jù)步驟S23選擇出的父體,對(duì)種群中的個(gè)體進(jìn)行基因表達(dá)式編程的交叉、變異操作;
S25、對(duì)種群個(gè)體進(jìn)行TIS插串操作,得到下一代種群個(gè)體,回到步驟S23;
S26、輸出模型,得到最優(yōu)染色體所表示的函數(shù)表達(dá)式,即關(guān)節(jié)點(diǎn)的人體運(yùn)動(dòng)模型。
關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列由頭部和尾部組成,關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的長(zhǎng)度是指頭部和尾部的長(zhǎng)度之和,關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列中有效長(zhǎng)度一般小于關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的長(zhǎng)度。設(shè)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部的長(zhǎng)度是h,尾部的長(zhǎng)度為I,則關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部的長(zhǎng)度h和關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列尾部的長(zhǎng)度I之間的關(guān)系可以定義為:
I=h(n-1)+1;
其中,上式中,n表示函數(shù)符集合中所含參數(shù)目數(shù)最多的函數(shù)符的參數(shù)目數(shù)數(shù)量。如此規(guī)定是為了保證關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的長(zhǎng)度足夠且序列不會(huì)由于長(zhǎng)度原因?qū)е路欠ǖ默F(xiàn)象。
其中關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列中有效長(zhǎng)度的計(jì)算步驟如下:
1)建立兩個(gè)指針p、q指向關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的第一個(gè)符號(hào);
2)如果指針p指向的是函數(shù)符,則指針q后移,后移的位數(shù)為該函數(shù)符所需參數(shù)個(gè)數(shù);
3)指針p后移1位;
4)如果指針p不在指針q之后,返回第2)步;
5)計(jì)算關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的有效長(zhǎng)度位數(shù),從關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列第一個(gè)符號(hào)位起到指針q所指向的符號(hào)位止即為有效序列,其長(zhǎng)度即為序列的有效長(zhǎng)度;
在本實(shí)施例中上述TIS插串操作過(guò)程包括如下:
當(dāng)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效長(zhǎng)度m=1時(shí),即關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的根位置是一個(gè)常數(shù),此時(shí),從關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列根位置開(kāi)始到第[L/4]位變異為隨機(jī)得來(lái)的函數(shù)符串;其中[L/4]表示L/4取整數(shù)部分;同時(shí)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部的其它字符依次后移,超出頭部長(zhǎng)度的字符串刪除;其中L為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的長(zhǎng)度,h為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部的長(zhǎng)度。
例如某關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列為:ab*/aba+*aababbbbbaba,其中帶橫線部分為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的尾部,而未帶橫線部分為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的頭部,a、b、c分別代表關(guān)節(jié)點(diǎn)Ji的坐標(biāo)數(shù)據(jù)該關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的長(zhǎng)度L=21,其頭部長(zhǎng)度h=10,尾部長(zhǎng)度I=11,通過(guò)該序列可以得出其有效長(zhǎng)度m=1,滿足m=1,根據(jù)上述TIS插串操作,從根位置開(kāi)始到第[L/4]位變異為隨機(jī)得來(lái)的函數(shù)符串,即將關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的第一個(gè)位置開(kāi)始至第五個(gè)位置變異為隨機(jī)得到的函數(shù)字符串,若隨機(jī)得到的函數(shù)字符串為*-+QS,則進(jìn)行TIS插串操作后,該關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列變?yōu)?-+QS ab*/aababbbbbaba,其中關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的第一個(gè)位置開(kāi)始至第五個(gè)位置變異為*_*SQ的同時(shí),其頭部的ab*/aba+*后移,后移后超出頭部長(zhǎng)度的字符串ba+*被刪除。由TIS插串操作后的該關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列*-+QS ab*/aababbbbbaba,可以得知該關(guān)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的有效位變?yōu)榱?3。
當(dāng)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列效長(zhǎng)度1<m<h時(shí),在關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效位的最后一個(gè)函數(shù)符后面插入h-m個(gè)隨機(jī)得來(lái)的函數(shù)符串,關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列頭部插入點(diǎn)后的其他字符依次后移,超出頭部長(zhǎng)度的字符串刪除;
例如某關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列為:+b/ababa+*ababbbbaba,其中帶橫線部分為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的尾部,而未帶橫線部分為關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的頭部,該關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的長(zhǎng)度L=21,其頭部長(zhǎng)度h=11,尾部長(zhǎng)度I=10,通過(guò)該序列可以得出其有效長(zhǎng)度m=5,有效位為+b/ab,滿足1<m<h,根據(jù)上述TIS插串操作,在有效位的最后一個(gè)函數(shù)符/后插入h-m=5各隨機(jī)得到的函數(shù)字符串,若隨機(jī)得到的函數(shù)字符串為*_*SQ,則進(jìn)行TIS插串操作后,該關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列變?yōu)?b/*_*SQ abababbbbaba,其中*_*SQ插入后,頭部的ababa+*后移,后移后超出頭部長(zhǎng)度的字符串a(chǎn)ba+*被刪除。由TIS插串操作后的該關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列為+b/*_*SQ abababbbbaba,可以得知該關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列的有效位變?yōu)?4,有效長(zhǎng)度越長(zhǎng)就越能保證種群個(gè)體分布的均勻性,能更好的避免算法吸入局部最優(yōu)解。
當(dāng)關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效長(zhǎng)度為m>=h,不做任何操作;
由上述可見(jiàn),本實(shí)施例采用由現(xiàn)有技術(shù)中的基因表達(dá)式編程(GEP)在交叉、變異操作后再加入TIS插串操作構(gòu)造得到自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模,在建模過(guò)程中通過(guò)TIS插串操作增加關(guān)節(jié)點(diǎn)運(yùn)動(dòng)序列有效位的長(zhǎng)度,從而可以以增加種群個(gè)體的均勻性,使其更能快速的收斂到問(wèn)題的全局最優(yōu)解,避免陷入局部最優(yōu)解。因此本實(shí)施例方法采用自反饋基因表達(dá)式編程對(duì)樣本進(jìn)行建模能夠有效提高人體行為識(shí)別的準(zhǔn)確度以及識(shí)別的速度。同時(shí),本實(shí)施例對(duì)于特定行為具有代表性的梯度信息作為人體運(yùn)動(dòng)模型中的模型特征,相比現(xiàn)有技術(shù)中采用全局或者局部運(yùn)動(dòng)特征作為模型特征,本實(shí)施例提取的模型特征能夠更準(zhǔn)確的反映出人體行為運(yùn)動(dòng),大大減少特征復(fù)雜度,提高特征代表性以及識(shí)別正確率。
上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。