本發(fā)明涉及一種動作識別方法。特別是涉及一種基于張量量化技術的動作識別方法.
背景技術:
隨著可以獲得的視頻數(shù)量的急劇增加,基于內容的視頻分析已經(jīng)在視頻檢索、動作識別、視頻摘要等領域引起了極大的關注。與其他人體部位相比較,由于手勢其手和手指具有很高的靈巧度,因此它是最有效的和通用的與外界交互的方式。作為人類動作語義分析中的重要組成部分,手勢識別已經(jīng)獲得了廣泛的應用。例如在醫(yī)院就診中一個手勢識別系統(tǒng)可以使醫(yī)生通過手勢去操縱數(shù)字圖像。
手勢識別的目的可以看做是對視頻序列進行分類。在最近幾年,出現(xiàn)了一些有關于手勢識別的工作,但是對于現(xiàn)實的應用領域設計一個強有力的手勢識別算法仍然是一個極具挑戰(zhàn)性的問題,尤其是對于那些非常復雜的動作。為了去更好的解決這個問題,多重線性代數(shù)作為分析多維數(shù)據(jù)類型(張量)的一個強有力的工具已經(jīng)應用到了手勢識別問題當中。既然人體動作隨時間的變化可以表示為一個視頻幀序列,那么張量就可以很自然的將動作序列表征為一個三階張量的形式?;趶埩糠纸獾募夹g,已經(jīng)提出了許多的手勢識別算法;他們都是通過將視頻序列轉化為張量的形式而不是傳統(tǒng)的向量或者矩陣的形式去測量視頻序列之間的相似度。將視頻轉換為向量或矩陣的形式不僅會造成視頻中所包含的原始數(shù)據(jù)信息丟失,而且還會破壞視頻幀與幀之間的相關性。同時原始視頻序列中會伴有各種各樣的噪聲,傳統(tǒng)的將其轉換為向量或矩陣的方式并不能夠去除冗余。因此本發(fā)明提出了用張量去建模視頻序列,并且用張量分解技術對建模后的張量視頻序列進行處理。
兩種非常值得注意的張量分解方式為CP分解和Tucker分解。這兩種分解方式的主要不同點在于CP分解是將一個張量分解為許多的一秩張量之和的形式,Tucker是主成分分析的一種高階的形式。然而在這些基于張量分解去對視頻進行分類的方法中,存在一個基本的然而卻被忽視的問題:所有的視頻序列在時間維度上都需要有統(tǒng)一的視頻序列長度。當前用一個確定時間軸長度去標準化視頻序列的最普遍的方式是從視頻序列中挑選中間的一些幀去建立一個新的視頻序列,使這些視頻序列的的長度統(tǒng)一。然而這種操作方式會導致以下的不足之處:1)新構建的視頻序列不能夠全面的表征手勢;2)不能夠依靠手勢動作中速度的變化去自動的捕獲視頻序列中的關鍵幀。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是,提供一種能夠將視頻序列處理為統(tǒng)一的長度-時空域迭代張量的基于張量量化的動作識別方法。
本發(fā)明所采用的技術方案是:一種基于張量量化的動作識別方法,包括如下步驟:
1)將原始的視頻序列表征為一個三階視頻序列張量其中I1,I2和K分別表示為一個視頻序列的寬度、高度和時間軸的長度;
2)對視頻序列張量A進行Tucker-2分解獲得空域維度減少的核張量,包括:
將視頻序列張量表示成一個低階的核張量J1<I1,J2<I2,
找到兩個映射矩陣和將最初的視頻序列張量A展開為用Tucker-2分解的視頻序列張量A=G×1U(1)×2U(2)+ε,G是核張量也就是所要求的新張量,ε是誤差,最小化以下的目標函數(shù),求解出所要尋找的維度減少的核張量G和映射矩陣U(1)和U(2):
3)應用張量量化技術將空域維度減少的核張量編碼到統(tǒng)一的長度;
4)動態(tài)學習以上的步驟更新結果直到算法收斂結果達到最優(yōu)。
步驟2)具體包括:
(1)輸入最初的視頻序列張量和新的視頻序列核張量G在空域上的維度J1和J2,需滿足J1<I1,J2<I2;
(2)將視頻序列張量Α按時間維度展開為時間切片的形式,計算出所有的時間切片的平均矩陣
式中,K為視頻序列張量的時間維度,也就是視頻序列張量時間切片的個數(shù),Ai表示第i個時間切片;
(3)求解平均矩陣第一階和第二階的協(xié)方差矩陣C1和C2,求解方式如下:
是轉置矩陣;
(4)將得到的兩個協(xié)方差矩陣C1和C2進行特征值分解得到對應的映射矩陣U(1)和U(2):
λ1,λ2是分解后所得到的特征值,LM'是固定的參數(shù)用來選擇分解的最大維度,經(jīng)過特征值分解得到的映射矩陣U(1)和U(2)分別包含了協(xié)方差矩陣的J1和J2維主要信息,去除了不重要的信息。
(5)將視頻序列張量A結合得到的映射矩陣U(1)和U(2)進行Tucker-2分解得到維數(shù)減少的核張量:
式中,J1<I1,J2<I2。
步驟3)包括:
將任意長度K的核張量G都編碼為一個統(tǒng)一的長度為的新的視頻序列張量同時滿足對于一個給定的核張量G產(chǎn)生一個大小為的碼書;
假設核張量G被分割為w個子張量其中i=1,2,…,w,式中gi是第i個子張量,l是碼字的長度;
在張量量化中一個碼字用來表示一些相似的子張量,一個張量量化器Q就是一個從歐幾里得空間的子張量到一個有限集的映射:H是一個含有長度為的碼書叫做碼字,與一個含有長度為的碼字的張量量化器相聯(lián)系,最初的空間被分割成長度為個子空間該式中
為了得到最主要的子張量去建立碼書,引入了兩個限制條件:最近鄰條件和重心條件,首先用一個隨機的碼書進行初始化,然后根據(jù)最近鄰條件找到最佳的分割空間最后依據(jù)重心條件循環(huán)的更新碼書,其中,
最近鄰條件
對于一個給定的碼書,最佳的分割應滿足:
該式中d(·)是歐幾里得測度;
重心條件
對一個給定的分割區(qū)域其中最佳的重構碼字意味著hi=Cent(Ci),式中Cent(·)定義為:
除此之外,我們也引入了平均扭曲度去測量重構的碼字的質量,平均扭曲度定義如下:
步驟4)包括:
動態(tài)的循環(huán)迭代步驟2)和步驟3)直到算法收斂,每循環(huán)迭代一次會更新一次映射矩陣U1、映射矩陣U2和新的視頻序列張量經(jīng)過動態(tài)的循環(huán)迭代過程,最終得到的新的視頻序列張量是在空域上對最初的視頻序列張量A進行了空間降維去噪處理獲得的,在時域上進行降維后仍然可以體現(xiàn)最初的視頻序列張量A的時序信息同時保留了新的視頻序列張量在時域上的連續(xù)性;在得到新的視頻序列張量后,采用積流行的方法對最初的視頻序列張量A進行分類,是每一個張量在積流行中映射為一個點,計算每兩個點的測地線距離來對最初的視頻序列張量A進行分類。
本發(fā)明的基于張量量化的動作識別方法,能夠將視頻序列處理為統(tǒng)一的長度,通過在張量分解的框架中適應性挑選出信息量最多的幀去構建出具有統(tǒng)一視頻序列長度的新的視頻序列。本發(fā)明的方法降低手勢識別的難度,提高了手勢識別的準確性,為后續(xù)的視頻序列分類提供了良好的條件,提升視頻序列分類的準確率。
附圖說明
圖1是本發(fā)明基于張量量化的動作識別方法的流程圖。
具體實施方式
下面結合實施例和附圖對本發(fā)明的基于張量量化的動作識別方法做出詳細說明。
如圖1所示,本發(fā)明的基于張量量化的動作識別方法,包括如下步驟:
1)將原始的視頻序列表征為一個三階視頻序列張量其中I1,I2和K分別表示為一個視頻序列的寬度、高度和時間軸的長度;相對于傳統(tǒng)的將視頻中的每一幀提取特征然后用這些特征去進行識別分類的方法相比,將一個視頻序列整體構建為一個三階張量的形式可以保留視頻中的全部信息不造成信息的丟失,而且張量及張量分解技術當今已非常成熟,也為后續(xù)的算法設計奠定了良好的基礎。
2)對視頻序列張量A進行Tucker-2分解獲得空域維度減少的核張量,在對三階視頻序列張量A進行Tucker-2過程中我們要得到一個經(jīng)過提煉的新張量,該張量在空域上的方差最大,同時在空域上對原始的視頻序列張量進行了降維去噪處理消除了大部分的冗余信息。包括:
將視頻序列張量表示成一個低階的核張量J1<I1,J2<I2,
找到兩個映射矩陣和將最初的視頻序列張量A展開為用Tucker-2分解的視頻序列張量A=G×1U(1)×2U(2)+ε,G是核張量也就是所要求的新張量,ε是誤差,最小化以下的目標函數(shù),求解出所要尋找的維度減少的核張量G和映射矩陣U(1)和U(2):
具體包括:
(1)輸入最初的視頻序列張量和新的視頻序列核張量G在空域上的維度J1和J2,需滿足J1<I1,J2<I2;
(2)將視頻序列張量Α按時間維度展開為時間切片的形式,計算出所有的時間切片的平均矩陣
式中,K為視頻序列張量的時間維度,也就是視頻序列張量時間切片的個數(shù),Ai表示第i個時間切片;
(3)求解平均矩陣第一階和第二階的協(xié)方差矩陣C1和C2,求解方式如下:
是轉置矩陣;
(4)將得到的兩個協(xié)方差矩陣C1和C2進行特征值分解得到對應的映射矩陣U(1)和U(2):
λ1,λ2是分解后所得到的特征值,LM'是固定的參數(shù)用來選擇分解的最大維度。經(jīng)過特征值分解得到的映射矩陣U(1)和U(2)分別包含了協(xié)方差矩陣的J1和J2維主要信息,去除了不重要的信息。
(5)將視頻序列張量A結合得到的映射矩陣U(1)和U(2)進行Tucker-2分解得到維數(shù)減少的核張量:
式中,J1<I1,J2<I2。
3)應用張量量化技術將空域維度減少的核張量編碼到統(tǒng)一的長度;包括:
將任意長度K的核張量G都編碼為一個統(tǒng)一的長度為的新的視頻序列張量同時滿足對于一個給定的核張量G產(chǎn)生一個大小為的碼書;
假設核張量G被分割為w個子張量其中i=1,2,…,w,式中gi是第i個子張量,l是碼字的長度;
在張量量化中一個碼字用來表示一些相似的子張量,一個張量量化器Q就是一個從歐幾里得空間的子張量到一個有限集的映射:H是一個含有長度為的碼書叫做碼字,與一個含有長度為的碼字的張量量化器相聯(lián)系,最初的空間被分割成個子空間該式中
為了得到最主要的子張量去建立碼書,引入了兩個限制條件:最近鄰條件和重心條件,首先用一個隨機的碼書進行初始化,然后根據(jù)最近鄰條件找到最佳的分割空間最后依據(jù)重心條件循環(huán)的更新碼書,其中,
最近鄰條件
對于一個給定的碼書,最佳的分割應滿足:
該式中d(·)是歐幾里得測度;
重心條件
對一個給定的分割區(qū)域其中最佳的重構碼字意味著hi=Cent(Ci),式中Cent(·)定義為:
除此之外,我們也引入了平均扭曲度去測量重構的碼字的質量,平均扭曲度定義如下:
4)動態(tài)學習以上的步驟更新結果直到算法收斂結果達到最優(yōu)。
4.根據(jù)權利要求1所述的基于張量量化的動作識別方法,其特征在于,步驟4)包括:
動態(tài)的循環(huán)迭代步驟2)和步驟3)直到算法收斂,每循環(huán)迭代一次會更新一次映射矩陣U1、映射矩陣U2和新的視頻序列張量經(jīng)過動態(tài)的循環(huán)迭代過程,最終得到的新的視頻序列張量是在空域上對最初的視頻序列張量A進行了空間降維去噪處理獲得的,在時域上進行降維后仍然可以體現(xiàn)最初的視頻序列張量A的時序信息同時保留了新的視頻序列張量在時域上的連續(xù)性;在得到新的視頻序列張量后,采用積流行的方法對最初的視頻序列張量A進行分類,是每一個張量在積流行中映射為一個點,計算每兩個點的測地線距離來對最初的視頻序列張量A進行分類。