本發(fā)明涉及圖像處理技術領域,特別是一種基于視頻序列深度學習的人物行為語義識別方法。
背景技術:
圖像處理技術是指用計算機對圖像進行分析,以達到所需結果的技術,一般指數(shù)字圖像處理。數(shù)字圖像指用拍攝設備經(jīng)過拍攝得到的一個大的二維數(shù)組,該數(shù)組的元素稱為像素,其值稱為灰度值。利用圖像壓縮技術能將二維像素陣列以一維的特征向量來表示,從而大大的減少了對圖像運算所需的時間。
rbf神經(jīng)網(wǎng)絡是人工神經(jīng)網(wǎng)絡的一種,是一種對人腦神經(jīng)元進行抽象的運算模型,有大量的結點(神經(jīng)元)之間相互連接構成。每個節(jié)點代表一個特定的輸出函數(shù),稱為激勵函數(shù)。每兩個節(jié)點間的連接都代表一個對于通過該連接的加權值,稱為權重,這相當于神經(jīng)網(wǎng)絡的記憶。rbf神經(jīng)網(wǎng)絡通過訓練來修改權值等參數(shù),使目標函數(shù)不斷逼近最小或最大值,從而達到識別的效果。
目前的計算機視覺技術很難準確地從視頻中提取出人的運動特征,如何尋找到人物動作的特征值成為識別正確性的關鍵。人物輪廓特征比較容易獲得且對紋理變化不敏感,是作為神經(jīng)網(wǎng)絡訓練的一個不錯的選擇,但目前基于質心-邊界距離描述方法,星型骨架發(fā)等方法提取到的輪廓特征對質心依賴性較高,導致其對遮擋、數(shù)據(jù)丟失以及形變等情況魯棒性交差。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是克服現(xiàn)有技術的不足而提供一種基于視頻序列深度學習的人物行為語義識別方法,利用人物輪廓的特征對rbf神經(jīng)網(wǎng)絡進行訓練和檢測,對檢測結果進行編碼并將關鍵姿態(tài)串聯(lián)成編碼序列與動作庫作比對,從而對人物行為語義進行識別。
本發(fā)明為解決上述技術問題采用以下技術方案:
根據(jù)本發(fā)明提出的一種基于視頻序列深度學習的人物行為語義識別方法,包括以下步驟:
步驟1、定義視頻鏡頭s={f1,f2,...,fn},s為集合,fi為第i個鏡頭幀,fi用大小為r*l的二維矩陣表示,其中,i=1,2,...,n,n為鏡頭幀總數(shù),r為矩陣行數(shù),l為矩陣列數(shù);
建立運動分析模型,提取s中的子集k={k1,k2,...,km},kq為k中第q個元素,q=1,2,...,m,m為k的元素個數(shù)且m<n,提取k的具體步驟如下:
步驟11)定義d(fi)為矩陣fi中不為0的元素的個數(shù),令k=k1=f1,q=i=2,k為臨時變量;
步驟12)計算fi與k之間的差異值o=d(k-fi)/(r*l)*100%,若o>δ,δ為差異閾值,則k=kq=fi,q=q+1,i=i+1;若o≤δ,則i=i+1;
步驟13)重復步驟12)直到q=m或i=n為止;
步驟2、對子集k進行預處理獲得運動前景,具體步驟如下:
定義背景模型為μ,當前畫面為x,對x中的每個像素點j,計算d(j)=x(j)-μ(j);若d(j)≥λε(j),則判定j為前景點;若d(j)<λε(j),則判定j為背景點,其中,x(j)為當前畫面x第j個像素點的色彩值,μ(j)為背景模型μ第j個點的像素值,λ為調節(jié)參數(shù),ε(j)為色差閾值;
步驟3、對步驟2得到的運動前景進行邊緣檢測,得到只含人物外輪廓的圖像;
步驟4、采用傅里葉描述子提取輪廓特征,用一維特征表示二維輪廓;具體步驟如下:
步驟41)將人物外輪廓的圖像上的有序點集(xt,yt)轉換到復平面上,形成一維序列zt=xt+vyt,t=1,2,...,n,t代表人物外輪廓上第t個像素點,(xt,yt)為該像素點的橫坐標和縱坐標,n為輪廓像素總個數(shù),v為虛數(shù)單位;
步驟42)計算離散傅里葉變換:
步驟5、預定義期望輸出值d,將步驟4)計算出的特征向量ft和d作為rbf神經(jīng)網(wǎng)絡的輸入值對網(wǎng)絡進行訓練;構建rbf神經(jīng)網(wǎng)絡的具體步驟如下:
步驟51)用隨機函數(shù)隨機初始化徑向基函數(shù)中心cg,方差σg和隱含層到輸出層的權值wg,計算輸出值
步驟52)計算步驟51)中的輸出值yd和預定義期望輸出值d的均方誤差
其中,f為高斯核函數(shù);η為神經(jīng)網(wǎng)絡學習速率;yii代表第ii個神經(jīng)元的輸出值;
步驟53)重復步驟52)直到e≤γ,rbf神經(jīng)網(wǎng)絡訓練結束,該網(wǎng)絡包含確定的參數(shù)cg,方差σg和權值wg;
步驟6、對視頻序列識別出的結果進行編碼,利用rbf神經(jīng)網(wǎng)絡進行人物行為識別,具體步驟如下:
步驟61)結合步驟1-4,得到集合k′={f1′,f2′,...,fm′},fq′為kq對應的特征向量,利用步驟5)訓練得到的rbf神經(jīng)網(wǎng)絡對k′進行識別并得到編碼序列t={t1,t2,...,tm},tq為fq′經(jīng)過rbf神經(jīng)網(wǎng)絡預測得到的編碼;
步驟62)利用步驟61)得到的編碼序列t對動作庫中已存在的編碼作比對,找到序列t所對應的動作即為識別結果。
作為本發(fā)明所述的一種基于視頻序列深度學習的人物行為語義識別方法進一步優(yōu)化方案,所述步驟3具體步驟如下:
步驟31)定義f(x,y)為通過步驟2獲得的運動前景在點(x,y)處的灰度值,對于給定的二維高斯濾波函數(shù)
步驟32)計算g中像素點(x,y)的梯度值
步驟33)定義中間變量w,g1,g2,g3,g4,對步驟32)得到的梯度值進行判斷:如果|dx(x,y)|<|dy(x,y)|且dx(x,y)與dy(x,y)同號,則w=|dx(x,y)|÷|dy(x,y)|,g1=d(x-1,y-1),g2=d(x-1,y),g3=d(x+1,y+1),g4=d(x+1,y);如果|dx(x,y)|<|dy(x,y)|且dx(x,y)與dy(x,y)異號,則w=|dy(x,y)|÷|dx(x,y)|,g1=d(x-1,y+1),g2=d(x,y-1),g3=d(x+1,y-1)g4=d(x,y+1);如果|dx(x,y)|>=|dy(x,y)|且dx(x,y)與dy(x,y)同號,則w=|dx(x,y)|÷|dx(x,y)|,g1=d(x+1,y+1),g2=d(x,y-1),g3=d(x-1,y-1),g4=d(x,y+1);如果|dx(x,y)|>=|dy(x,y)|且dx(x,y)與dy(x,y)異號,則w=|dy(x,y)|÷|dx(x,y)|,g1=d(x-1,y+1),g2=d(x,y-1),g3=d(x+1,y-1),g4=d(x,y+1);
步驟34)利用步驟33)得到的w,g1,g2,g3,g4,計算gtmp1=w*g1+(1-w)*g2,gtmp2=w*g3+(1-w)*g4,若d(x,y)>=gtmp1且d(x,y)>=gtmp2,則g(x,y)=d(x,y),否則g(x,y)=0,gtmp1,gtmp2為中間變量。
作為本發(fā)明所述的一種基于視頻序列深度學習的人物行為語義識別方法進一步優(yōu)化方案,步驟4中傅里葉描述子是假定物體的形狀是一條封閉的曲線,沿邊界曲線上一個動點的坐標變化是一個以形狀為邊界的周期函數(shù),這個周期函數(shù)用傅里葉級數(shù)展開表示,傅里葉級數(shù)中的一系列系數(shù)是直接與邊界曲線的形狀有關,稱為傅里葉描述子。
作為本發(fā)明所述的一種基于視頻序列深度學習的人物行為語義識別方法進一步優(yōu)化方案,步驟2中調節(jié)參數(shù)λ取0.4。
作為本發(fā)明所述的一種基于視頻序列深度學習的人物行為語義識別方法進一步優(yōu)化方案,步驟3中α=0.6。
作為本發(fā)明所述的一種基于視頻序列深度學習的人物行為語義識別方法進一步優(yōu)化方案,步驟6)中對視頻序列識別出的結果以字符編碼表示。
本發(fā)明采用以上技術方案與現(xiàn)有技術相比,具有以下技術效果:
(1)本發(fā)明利用人物輪廓的特征對rbf神經(jīng)網(wǎng)絡進行訓練和檢測,對檢測結果進行編碼并將關鍵姿態(tài)串聯(lián)成編碼序列與動作庫作比對,從而對人物行為語義進行識別;
(2)本發(fā)明通過圖像二值化處理和canny邊緣檢測等技術對圖像進行預處理,提取出需要識別的關鍵信息,減少光照,陰影,顏色等無關因素的干擾,提高識別的準確度;
(3)本發(fā)明提出了用傅里葉描述子提取輪廓特征,將二維的輪廓轉換為一維的向量,減少運算的時間和空間復雜性;
(4)本發(fā)明通過構建rbf神經(jīng)網(wǎng)絡對人物的輪廓特征進行學習與識別,以一定的學習速率不斷逼近目標函數(shù)最優(yōu)值,起到較好的識別效果。
附圖說明
圖1是基于視屏序列深度學習的人物行為識別方法流程。
圖2是構建的rbf神經(jīng)網(wǎng)絡示例圖。
具體實施方式
下面對本發(fā)明使用的基于視頻序列深度學習的人物行為識別具體實施例作更詳細的描述。
根據(jù)附圖1所示基于視頻序列深度學習的人物行為識別方法對應的流程圖,附圖2所示rbf神經(jīng)網(wǎng)絡對應的示例圖,本發(fā)明具體實施方式為:
1)輸入一個視頻序列s={f1,f2,...,f30},fi為第i個鏡頭幀,用大小為30*30的二維矩陣表示,建立運動分析模型,提取s中的子集k={k1,k2,...,k7},計算fi與臨時變量k之間的差異值o,計算o的具體步驟如下:
11)令k=k1=f1,q=i=2,設差異閾值δ為0.3,從f2開始遍歷序列s,假設當前幀為f2,計算差異值
13)重復步驟12)直到q=7或i=30為止。
2)用背景減除法對集合k預處理獲得運動前景,具體步驟如下:
21)假設通過步驟1)得到的關鍵幀序列k={f1,f5,f9,f14,f19,f24,f29},視頻背景模型為μ,以當前畫面x=f1為例,計算x中的像素點與μ中像素點的色彩差異值d(j)=x(j)-μ(j),當d(j)滿足判定方程:
d(j)≥λε(j),判定j為前景點;
d(j)<λε(j),判定j為背景點。對k中其余元素做同樣處理。
3)用步驟2得到的運動前景進行邊緣檢測,得到只含人物外輪廓的圖像,具體步驟如下:
31)以關鍵幀f1為例對f1做高斯濾波,對f1中的每個像素點(x,y)計算,
32)利用步驟31)得到的圖像g,計算g中像素點(x,y)的梯度值。這里以像素點(3,4)為例,設g(3,4)=1,g(3,5)=2,g(4,4)=3,由公式dx(x,y)=g(x,y+1)-g(x,y),dy(x,y)=g(x+1,y)-g(x,y)計算可得dx(3,4)=1,dy(3,4)=2;由公式
33)定義中間變量w,g1,g2,g3,g4。對步驟32)得到的梯度值進行判斷。以像素點(3,4)為例,假設d(2,3)=5,d(2,4)=6,d(4,5)=7,d4,4)=8。因為dx(3,4)<dy(3,4)且dx(3,4)與dy(3,4)同號號,所以
34)利用步驟33)得到的中間變量w,g1,g2,g3,g4,計算gtmp1=w*g1+(1-w)*g2,gtmp2=w*g3+(1-w)*g4,以像素點(3,4)為例,計算得gtmp1=5.5,gtmp2=7.5。因為d(3,4)=1<gtmp1d所以g(x,y)=0。
4)采用傅里葉描述子提取輪廓特征,用一維特征表示二維輪廓;具體步驟如下:
41)把步驟3)中得到的輪廓圖像k的輪廓曲線上的有序點集(xt,yt)轉換到復平面上,并設輪廓像素數(shù)為10,形成一維序列zt=xt+vyt,t=1,2,...,n。
42)計算離散傅里葉變換:
5)構造rbf神經(jīng)網(wǎng)絡如圖2所示,假設由步驟4)得到的ft1的輪廓特征為ft1={0.43,0.36,0.25,0.71,0.59,0.54,0.38,0.26,0.55},預定義期望輸出值d。
51)隨機初始化徑向基中心cg,方差σg和隱含層到輸出層的權值wg,隨機得到的結果為:cg=0.8,σg=1,wg={0.4,0.6,0.5,0.8,0.3}。由公式
52)計算步驟51)中的輸出值yd和期望輸出值d的均方誤差
53)重復步驟52)直到e≤γ,進過19次迭代,算出最終cg=0.46,σg=0.78,wg={0.28,0.48,0.38,0.68,0.18},rbf神經(jīng)網(wǎng)絡訓練結束。
6)對視頻中的關鍵幀識別出的姿態(tài)進行編碼,利用rbf神經(jīng)網(wǎng)絡進行人物行為識別,具體步驟如下:
61)由步驟4)得到視頻序列表示如下:
由步驟5)訓練得到的rbf神經(jīng)網(wǎng)絡對k進行訓練得到識別結果:t=[1145567]。
61)利用步驟61)得到的編碼序列t對動作庫中已存在的編碼作比對,找到序列t所對應的動作為“起立”,即為識別結果。