本發明涉及一種視頻中人體交互動作識別方法,特別是涉及一種基于光流圖深度學習模型在視頻中人體交互動作識別方法。
背景技術:
隨著技術的不斷發展,視頻內容的理解需求也不斷提高。攝像頭的廣泛運用使得視頻信息越來越多。然而這些海量信息難以全部靠人工處理,所以需要相關方法來分析視頻中的內容。在智能監控領域中,對人體的交互動作識別尤為重要。突發性事件如打架斗毆,異常行為的檢測等等都依賴于人體交互動作的準確識別。所以,準確的人體交互動作識別具有重要的社會意義。
視頻內容理解旨在讓計算機像人類一樣可以理解視頻里面的內容。動作識別是視頻內容理解中的重要組成部分。相關研究包括:單人動作識別,人與物體的交互識別,人體交互動作識別,群體行為理解。深度學習方法是近些年圖像處理的比較有效的一類方法,許多學者致力于將深度學習的方法拓展到視頻領域,并在動作識別領域取得了較多有價值的研究成果。由于動作識別的模式變化較多,又容易受到背景噪聲的干擾,準確識別人體動作的難度比較大,但是在近十年內也取得了進展。
經過對現有人體動作/交互動作識別技術的檢索發現,中國專利公開號為CN 102136066A的專利記載了“一種人體動作識別的方法”,公開日為2011年7月27日。該技術采用計算視頻序列的差分邊緣直方圖作為特征,通過對目標區域的若干子區域分別求像素變化直方圖和邊緣梯度直方圖提高動作細節識別的準確率。該專利側重于識別的實時性,對識別的準確率要求不高。而且采用的是手工特征方法,適用場景受限。
中國專利公開號為CN101964047B的專利記載了“一種基于多跟蹤點的人體動作識別方法”,公開日期為2012年10月10日。該技術在需要判斷的動作上,要設置至少一個跟蹤點,根據跟蹤點的相應動作數據來識別相應動作。該專利并非使用在視頻領域,而且對數據采集要求較高,需要硬件傳感器的支持。
本發明與上述技術方案的不同在于,本發明在視頻領域可以對復雜的人體交互動作進行準確識別,且采用深度學習模型可以方便適用于各種應用場景。上述技術方案仍然采用了傳統的手工特征方法,視頻領域利用深度學習模型進行人體交互動作識別的相關專利仍然是個空白。
技術實現要素:
本發明所要解決的技術問題是提供一種基于光流圖深度學習模型在視頻中人體交互動作識別方法,其填補了利用深度學習模型進行人體動作識別的相關的專利的空白,識別準確率高,且該方法適用于多種場景。
本發明是通過下述技術方案來解決上述技術問題的:一種基于光流圖深度學習模型在視頻中人體交互動作識別方法,其步驟主要包括:
步驟一,對測試集視頻和訓練集視頻進行解幀,利用相鄰兩幀計算光流序列圖,得到測試集視頻和訓練集視頻的光流序列圖;
步驟二,對光流序列圖進行預處理,刪去信息量較少的光流圖,保留信息量較多的光流圖,得到預處理后的測試集和訓練集光流序列;
步驟三,利用步驟二中得到的訓練集光流序列訓練殘差神經網絡,得到殘差神經網絡模型;用測試集光流圖序列和訓練集光流圖序列作為輸入,得到測試集空域特征和訓練集空域特征;
步驟四,利用步驟三得到的訓練集空域特征,放到LSTM中進行訓練,得到LSTM模型,用測試集空域特征作為輸入,對每個輸入特征得到每類的分類概率;
步驟五,根據步驟四對一段視頻輸出每類概率,統計其投票最多的類,作為其判別類輸出。
優選地,所述步驟一包括如下步驟:
步驟十一,用ffmpeg工具將視頻解成圖片幀;
步驟十二,用farneback算法計算兩幀之間的位移來計算光流,組成光流圖序列。
優選地,所述步驟二包括如下步驟:
步驟二十一,對光流圖按照光流運動量從高到底排列;
步驟二十二,選取光流運動量最多的前45幀按照其在原來視頻中的相對位置組成新的光流序列。
優選地,所述步驟三包括如下步驟:
步驟三十一,用ResNet網絡進行訓練,訓練數據是步驟二得到的預處理后的訓練集光流圖序列;輸出是ResNet模型;
步驟三十二,用預處理后的訓練集和測試集光流圖序列作為輸入,利用訓練好的ResNet模型,得到訓練集和測試集的空域特征集。
優選地,所述步驟四包括如下步驟:
步驟四十一,用訓練集空域特征作為輸入,訓練LSTM模型;
步驟四十二,用測試集空域特征作為輸入LSTM模型,每幀的空域特征輸入,對應對各類別的概率預測輸出。
優選地,所述步驟五包括如下步驟:
步驟五十一,每類投票數初始為0,根據每幀概率輸出結果預測概率最大的類別投票數加一;
步驟五十二,統計一段視頻所有幀的投票結果;
步驟五十三,得票數最多的那類作為分類結果輸出。
本發明的積極進步效果在于:本發明填補了利用深度學習模型進行人體動作識別的相關的專利的空白,識別準確率高,且該方法適用于多種場景。
附圖說明
圖1為本發明基于光流圖深度學習模型在視頻中人體交互動作識別方法的模型框架圖。
圖2為本發明的光流圖序列預處理流程圖。
圖3為本發明的ResNet空域向量提取流程圖。
圖4為本發明的訓練LSTM模型流程圖。
圖5為本發明的投票分類判決流程圖。
圖6為ResNet網絡結構圖。
圖7為LSTM網絡結構圖。
具體實施方式
下面結合附圖給出本發明較佳實施例,以詳細說明本發明的技術方案。
如圖1所示,本發明公開了一種基于光流圖深度學習模型在視頻中人體交互動作識別方法,其步驟主要包括:
步驟一,對測試集視頻和訓練集視頻進行解幀,利用相鄰兩幀計算光流序列圖,得到測試集視頻和訓練集視頻的光流序列圖;
步驟二,對光流序列圖進行預處理,刪去信息量較少的光流圖,保留信息量較多的光流圖,得到預處理后的測試集和訓練集光流序列;
步驟三,利用步驟二中得到的訓練集光流序列訓練殘差神經網絡ResNet,得到殘差神經網絡模型;用測試集光流圖序列和訓練集光流圖序列作為輸入,得到測試集空域特征和訓練集空域特征;
步驟四,利用步驟三得到的訓練集空域特征,放到LSTM(Long Short Term Memory,長短時記憶)中進行訓練,得到LSTM模型,用測試集空域特征作為輸入,對每個輸入特征得到每類的分類概率;
步驟五,根據步驟四對一段視頻輸出每類概率,統計其投票最多的類,作為其判別類輸出。
所述步驟一包括如下步驟:
步驟十一,用ffmpeg(開源計算機程序)工具將視頻解成圖片幀;
步驟十二,用farneback算法計算兩幀之間的位移來計算光流,組成光流圖序列;光流計算技術大致分為:基于梯度的方法,基于匹配的方法,基于能量的方法,基于相位的方法;稠密光流需要使用差值方法在比較容易跟蹤的像素之間進行插值以解決不明確的像素,計算開銷比較大;使用Gunnar Farneback(稀疏光流)的算法計算稠密光流,即圖像上所有像素點的光流都計算出來;Opencv(跨平臺計算機視覺庫)中有函數直接調用;或用CUDA(通用并行計算架構)編程利用GPU(圖形處理器)加速光流計算,調用GPU版的Opencv函數即可。
如圖2所示,所述步驟二包括如下步驟:
步驟二十一,光流場是圖片中每個像素都有的一個x方向和y方向的位移;對光流圖按照光流運動量從高到底排列;光流運動量定義如下式(1):
M表示光流運動量,i表示像素點的位置,P表示整個圖像的光流點集合,fi表示在x軸方向的位移,gi表示在y軸方向的位移;因為位移有正負,所以取其平方和表示位移量,對整個圖片求和就得到整張圖的光流運動量;
步驟二十二,選取光流運動量最多的前45幀按照其在原來視頻中的相對位置組成新的光流序列,即預處理后的光流圖序列。
如圖3所示,所述步驟三包括如下步驟:
步驟三十一,用ResNet(資源)網絡進行訓練,訓練數據是步驟二得到的預處理后的訓練集光流圖序列;輸出是ResNet模型;
ResNet模型是由Building block(建立基本構件)組成的神經網絡,每個building block表示為如下式(2):
Y=ReLU(F(X,W)+P·X)……(2)
X為輸入矩陣,Y為輸出矩陣,W是building block的權重,F(X,W)是通過訓練集學習的映射函數,P是一個矩陣,保證P和X的乘積和F(X,W)相加;ReLU是一種激活函數,此函數在輸入變量小于0是一直為0,大于0時斜率保持為1;采用的ResNet結構如圖6所示;
步驟三十二,用預處理后的訓練集和測試集光流圖序列作為輸入,利用訓練好的ResNet模型,得到訓練集和測試集的空域特征集;如圖6所示,每個光流圖作為矩陣輸入后,經過每個building block的訓練好的權重計算,到達最底層的全連接層時候已經編程一維向量,此向量就是空域特征;在深度學習框架torch7(科學計算框架)中,已經有ResNet的實現,需要定義的網絡結構,和訓練集數據自己訓練模型,然后得到訓練集和測試集的空域特征。
如圖4所示,所述步驟四包括如下步驟:
步驟四十一,用訓練集空域特征作為輸入,訓練LSTM模型,如圖7所示;LSTM是一種特殊的RNN(循環神經網絡),它模仿人類的思考模型,自動丟棄或保留數據,用以解決長距離依賴問題;LSTM的結構見圖7;用如下公式(3)至(8)表示:
it=σ(wxixt+whiht-1+bi)……(3)
ft=σ(wxfxt+whfht-1+bf)……(4)
ot=σ(wxoxt+whoht-1+bo)……(5)
gt=tanh(wxcxt+whcht-1+bc)……(6)
ct=ft⊙ct-1+it⊙gt……(7)
ht=ot⊙tanh(ct)……(8)
各符號含義見下表1所示:
表1 符號含義表
記憶單元ct是由遺忘門ft,輸入調制狀態gt,輸入門it和前一時刻的狀態組成;因為it和ft都是sigmoidal(反曲)形函數,其值被限制在0和1之間,LSTM通過0表示忘記,1表示記憶保持,在0到1之間表示記憶的程度;輸出門ot學習有多少記憶單元轉移到隱藏狀態;
在深度學習框架torch7中也有相關的包;在程序中采用FastLSTM的結構;這種結構簡化了傳統LSTM的結構,使其訓練速度加快;定義LSTM的inputSize(輸入大小值)和hiddenSize(隱藏大小值)均設置成512,即512個LSTM單元,LSTM的輸入和輸出之間還有一層0.5ratio(比例)的dropout(流失)層,減少模型過擬合的可能性,也增加了模型的泛化能力;優化的標準采用負似然函數criterion(標準),在torch7的實現中同樣用到了CUDA(通用并行計算架構)加速;
LSTM訓練與傳統卷積神經網絡以及ResNet相同,采用隨機梯度下降法,訓練數據前向傳輸的結果,與分類結果的差異進行后向傳輸更新LSTM結構單元的權重;因為LSTM特殊的結構設計,使其不會產生傳統RNN梯度消失或者爆炸的情況;
步驟四十二,用測試集空域特征作為輸入LSTM模型,每幀的空域特征輸入,對應對各類別的概率預測輸出;LSTM層之后再接上logSoftmax(對數軟間隔最大)層用來做多分類概率預測輸出;logSoftmax對概率做了對數化處理,我們要稍微轉換一下,softmax(最大值)是對該幀屬于某類的可能性給出概率上的預測。
如圖5所示,所述步驟五包括如下步驟:
步驟五十一,每類投票數初始為0,根據每幀概率輸出結果預測概率最大的類別投票數加一;
步驟五十二,統計一段視頻所有幀的投票結果;
步驟五十三,得票數最多的那類作為分類結果輸出如下式(9):
class=argmax({C1,C2,…,Cn})……(9)
Ci表示i類別的得票數,class表示最終分類類別。
本發明填補了用深度學習方法對人體交互動作識別相關領域的空白,提高了檢測準確性。
以上所述的具體實施例,對本發明的解決的技術問題、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,并不用于限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。