陳 天,閆雨寒,徐達偉,劉忠育,丁恩杰
(中國礦業(yè)大學a.礦山物聯(lián)網(wǎng)應用技術國家地方聯(lián)合工程實驗室;b.信息與控制工程學院,江蘇 徐州 221008)
煤炭行業(yè)是以礦工為主體的勞動密集型產(chǎn)業(yè),盡管煤炭開采技術能夠?qū)崿F(xiàn)自動化和機械化,但目前還做不到“無人化”。人的不安全行為是導致安全事故發(fā)生的最主要原因,嚴重制約著煤礦企業(yè)的安全生產(chǎn)和發(fā)展。由于礦工行為與環(huán)境交互密集,不僅對環(huán)境更加敏感,在識別時需要融合環(huán)境特征和行為特征,而且行為之間有一定相似度,需要進行細粒性識別分析,因此,礦工行為識別與普通行為識別相比具有更大的識別難度。
目前,針對行為識別的方法主要分3種:基于骨骼點的行為識別[1-4]、基于圖像的行為識別[5-6]以及基于視頻的行為識別[7-10]。國內(nèi)主要利用礦工佩戴傳感器采集的骨骼點數(shù)據(jù),構造運動姿態(tài)相對位置特征、角度特征和幀間位移特征來對礦工行為進行描述[11-12]。這種方法雖然能夠在光線昏暗的環(huán)境中準確捕捉到人的行為,但卻忽略了行為與環(huán)境之間的交互,且無法識別易混淆的動作。為此,文獻[13-14]將礦工行為的骨骼點特征和視頻圖像特征進行特征降維,再通過支持向量機對融合的行為特征進行分類。但由于礦工行為數(shù)據(jù)量龐大,手工提取上述特征十分困難,因此該方法在數(shù)據(jù)集應用方面具有一定的局限性。
針對目前研究存在的問題,本文提出了一種端到端的方法自主學習礦工行為特征并實現(xiàn)行為分類。利用雙流法[15]模型從原始視頻中獲取描述礦工動作的時間特征和空間特征,在學習行為時域變化的同時,還構建了場景和目標信息,能準確識別出人與物、人與場景交互的行為。同時,提出了量子遺傳優(yōu)化雙流模型算法,探索在分類網(wǎng)絡識別達到極限時,利用全局搜索算法進一步提高模型識別的準確率和魯棒性。
雙流網(wǎng)絡包含兩個分支,一流是時間流,采用提取的光流特征圖構建時間特征,利用圖像序列中像素的時域變化和相關性來確定各像素位置的“運動”。光流表達了圖像的變化,因此可被觀察者用來確定目標的運動情況。還有一流是空間流,空間流由三原色(red,green and blue,RGB)圖像構成,不僅用于提取礦工的行為特征,還攜帶了視頻描繪的場景和目標信息,可以解決行為與環(huán)境交互的問題。
從原始礦工視頻中分別提取RGB圖像和光流圖,RGB圖像序列由通過將視頻分段后隨機從每段視頻中抽取1幀關鍵幀構成。光流特征圖的提取方法見1.2節(jié)。將RGB圖像和光流特征圖作為網(wǎng)絡的輸入,分別送入由卷積神經(jīng)網(wǎng)絡構成的時間流網(wǎng)絡和空間流網(wǎng)絡中進行特征提取和分類,在softmax層后進行分數(shù)融合得出最終的分類結(jié)果。
本文主要采用3種主流的識別網(wǎng)絡實現(xiàn)礦工行為的識別:Two-Stream ConvNet[15]、TSN[16]和I3D[17]。Two-Stream ConvNet要求輸入的RGB特征圖為給定視頻里的任意一幀,網(wǎng)絡結(jié)構由5層卷積層和2層全連接層構成,兩流拓撲結(jié)構相同,softmax層的融合方法為計算兩流的平均分數(shù)或者將兩流分數(shù)作為特征訓練再進行支持向量機(support vector machine,SVM)分類。TSN的結(jié)構與Two-Stream ConvNet相同,但它將整個視頻分為3段,對提取的每段特征進行學習訓練,最后做疊加。I3D是一個基于3D卷積的雙流模型,將Inception-v1網(wǎng)絡中的2D卷積核和pooling核膨脹成3D、H、W,對應的參數(shù)均直接從Inception中獲取,僅需要訓練D參數(shù)。
光流特征圖的實質(zhì)是描述視頻中兩張相鄰圖像中像素點信息移動的圖像。假設一個像素點在某一幀(t時刻)的光強度為I(x,y,t)=I(x+dx,y+dy,t+dt),經(jīng)過dt的時間移動了(dx,dy)的距離到達下一幀。由于同一目標在不同幀間運動時,其亮度不會發(fā)生改變,因此得到:
I(x,y,t)=I(x+dx,y+dy,t+dt)。
(1)
將式(1)用泰勒展開得:
(2)
由此可得:
(3)

Ixu+Iyv+It=0,
(4)
其中:Ix、Iy和It均可由圖像數(shù)據(jù)求得。
這只是一個約束方程,由此不能求出確切的參數(shù)u和v,因此需要引入一個約束條件,即基于梯度的光流估計算法。利用時變圖像灰度的時空微分來計算像素的速度矢量,在方程(4)的基礎上附加了全局平滑假設,假設在整個圖像上光流的變化是光滑的,在目標像素的m×m區(qū)域內(nèi)每個像素的光流矢量相同。最后對光流表達式的加權平方和最小化估算出光流矢量。
量子遺傳算法[18]是一種概率搜索算法,在量子遺傳算法中染色體上的一個基因用量子態(tài)表示,量子態(tài)的表示為:
ψ〉=α0〉+β1〉。
(5)
量子比特0〉和1〉表示微觀粒子的兩種基本狀態(tài),其中,α,β均是復數(shù),分別表示狀態(tài)0和1的概率幅,且滿足:
(6)
則n個量子位的染色體形式為:
(7)
因此,每條染色體包含上下兩條基因鏈,每條基因鏈是優(yōu)化問題的一個候選解。由此可知,量子遺傳算法在種群規(guī)模不變的情況下,候選解個數(shù)比遺傳算法多1倍,增加了解空間的多樣性,提高了尋優(yōu)成功的概率。
由于量子染色體呈現(xiàn)多態(tài),因此量子位的更新除了通過染色體交叉變異外,采用量子旋轉(zhuǎn)門改變量子比特相位,以更新量子位的概率幅,從而達到基因變異的效果。設[αi,βi]′是經(jīng)旋轉(zhuǎn)后的第i個量子位,θi為旋轉(zhuǎn)角,則更新過程為:
(8)
其中:Ui為量子旋轉(zhuǎn)門,其形式如下:
(9)
量子遺傳算法與經(jīng)典遺傳算法最大的不同就是,不再采用二進制位來對解空間中的可行解進行編碼,而是采用具有01疊加態(tài)的量子位編碼。由量子信息的疊加性表達基因包含所有可能的信息,使得量子遺傳在用同等長度的位數(shù)進行編碼時比經(jīng)典遺傳算法表示出更多的信息。
利用量子遺傳算法優(yōu)化網(wǎng)絡主要是先通過對雙流網(wǎng)絡中的卷積核參數(shù)進行量子編碼,將n×n維的卷積核伸展成n2×1的向量,對n2的參數(shù)進行優(yōu)化后再重塑成n×n維的卷積核。接著再利用量子交叉、量子門旋轉(zhuǎn)實現(xiàn)染色體交叉變異,最終達到種群進化的目的。量子遺傳優(yōu)化算法流程如圖1所示。

圖1 量子遺傳優(yōu)化算法流程圖
由于梯度下降算法[19]具有使模型實現(xiàn)較快收斂、搜索到相對優(yōu)越的模型參數(shù)等優(yōu)點,本文引入梯度下降法對雙流網(wǎng)絡進行訓練。但它也伴隨著容易使模型陷入局部最優(yōu)的缺點,因此需要對梯度下降算法進行改進。先利用量子遺傳優(yōu)化算法搜索出多個最優(yōu)參數(shù)的可能出現(xiàn)區(qū)域,再利用梯度下降法從多個局部參數(shù)盆地中搜索出最小值以獲得最佳參數(shù)模型。
首先,隨機產(chǎn)生規(guī)模為n的一代種群,即初始卷積核。由于種群中每個個體的染色體由量子位表示,因此需要將量子態(tài)染色體轉(zhuǎn)化為二進制串。構造策略為:對于每個染色體的每個量子位,產(chǎn)生一個[0,1]的隨機數(shù)γ,若對應位的αi的范數(shù)平方值大于γ,則該位取 1,否則取 0。該策略也稱為測量。
其次,評價種群中各個個體的適應值。將編碼后的卷積核送入雙流網(wǎng)絡中,配合梯度下降法進行訓練,將雙流網(wǎng)絡每次訓練得到的損失值的相反數(shù)作為對應個體的適應度。雙流網(wǎng)絡通過訓練得到的損失函數(shù)值越小,種群適應度函數(shù)越大,選取適應度最大的個體作為種群最好個體,在進行下一代進化時,所有個體都朝著這個個體的方向進化。
最后,對種群個體進行交叉變異。進行量子交叉實現(xiàn)種群個體更新,即相互配對的兩個染色體,在編碼串中隨機選取兩個交叉點,然后兩者互換交叉點之間的部分,從而產(chǎn)生兩個新個體。當交叉產(chǎn)生的最優(yōu)個體適應度不再變化時,意味著算法早熟。通過比較當前個體和最優(yōu)個體的染色體適應度值,選擇量子旋轉(zhuǎn)的方向和角度,利用量子旋轉(zhuǎn)門進行變異。如此迭代,直到適應度值和網(wǎng)絡識別準確率達到標準,則停止迭代。
本實驗構建了礦工行為數(shù)據(jù)集,利用Kinect[20]設備對10個實驗對象進行動作采集,每個動作重復3次。數(shù)據(jù)集包含單人、人與物交互、人與人交互等50種礦工行為,其中交互行為20種,文件大小共1.5 GB,圖像大小為640 pixels×480 pixels。首先,對視頻幀隨機剪裁成大小為224 pixels×224 pixels的圖片,從原始視頻中提取出光流特征圖和單幀的RGB圖像,并為每個動作做標簽。
在3種主流的識別網(wǎng)絡中,Two-Stream ConvNet和TSN的輸入均為從動作視頻中采樣的25個RGB幀和光流堆,而I3D是將RGB和光流分開訓練的,對光流特征提取主要是盡量選擇前面的幀以保證光流幀的數(shù)目足夠多。對70%的視頻片段進行訓練,30%的視頻片段進行測試,Two-Stream ConvNet在測試集上的識別準確率為55.33%,TSN和I3D的識別準確率分別為60.71%和71.97%。

圖2 交互行為對混淆矩陣
對比3種網(wǎng)絡識別準確率可知,Two-Stream ConvNet識別率較低,I3D識別準確率最好。這是由于Two-Stream ConvNet的網(wǎng)絡結(jié)構較簡單,并且只隨機抽取了一幀視頻作為RGB特征圖。而TSN將視頻分成3段,每部分分別送入雙流網(wǎng)絡進行識別,這樣處理有效提高了識別準備率。I3D結(jié)構最為復雜,并且采用3D卷積核代替2D卷積核,由于其網(wǎng)絡參數(shù)成倍增長,訓練時間也最長。
為了分析雙流網(wǎng)絡對交互行為識別準確率的影響,本文繪制了10種交互行為對混淆矩陣,如圖2所示。從圖2可以看出: 摘安全帽和戴安全帽的動作是兩個互逆的動作,無論是空間特征還是時間特征都有著極高的相似度,因此識別準確率較低。涉及人與人交互的打斗行為識別準確率較高,達到了83%。需要注意的是,本文運用的模型可以對抽煙、喝酒、吃東西3個行為作出細節(jié)判斷,三者都有抬手動作,但雙流網(wǎng)絡可以捕獲除此之外的目標信息并進行分類,這是骨骼點識別做不到的。
本文設置種群規(guī)模為15,量子旋轉(zhuǎn)角大小為0.02π,對雙流網(wǎng)絡中的卷積核進行量子編碼并訓練,將每次訓練得到的損失函數(shù)作為目標函數(shù),共執(zhí)行20個進化循環(huán)。以TSN為例,經(jīng)過20代后,各代準確率、適應度函數(shù)以及適應度方差如表1所示。

表1 識別準確率隨量子遺傳進化代數(shù)的變化
由表1可以看出:在初始代時,最好個體的識別準確率為57.79%,在進化結(jié)束時,最好個體的識別準確率提升為61.58%。個體平均識別準確率隨著進化的推進逐步提高,平均損失值逐步下降,這表明種群中個體的識別準確率普遍得到了提升。雖然進化前期出現(xiàn)了識別準確率波動的情況,但個體間損失值方差卻在逐步下降,說明種群整體得到進化。
表2是量子遺傳算法參與雙流網(wǎng)絡前后識別準確率對比結(jié)果。由表2可知:3種網(wǎng)絡在識別準確率方面都得到了提升,其中對于Two-Stream ConvNet的影響較大。這是由于量子遺傳算法雖然能夠跳出局部最優(yōu)解,但在參數(shù)量較大時,全局搜索能力受到限制。即便如此,量子遺傳的優(yōu)化算法仍可以探索在梯度下降法搜索能力達到極限時的全局最優(yōu)解,使得網(wǎng)絡的分類能力得到提升。

表2 雙流網(wǎng)絡優(yōu)化前后識別準確率對比表 %

圖3 量子遺傳算法優(yōu)化網(wǎng)絡前后損失值對比
圖3是在Two-Stream ConvNet網(wǎng)絡上應用量子遺傳算法優(yōu)化前后的損失值對比結(jié)果。不采用量子遺傳優(yōu)化時,一代表示網(wǎng)絡完全訓練一次。由圖3可知:不使用量子遺傳優(yōu)化時,測試集損失值呈現(xiàn)振蕩趨勢,通過反復訓練網(wǎng)絡,雖有下降但效果不明顯;優(yōu)化網(wǎng)絡后,測試集損失值偶有波動,但總體趨勢呈下降狀態(tài),到第20代時測試集損失值已下降到45.50%。
為論證所提方法的有效性,本文對比了基于骨骼點的礦工識別方法。對50種礦工行為進行了基于骨骼點特征的識別驗證,采用隨機森林的模型對關節(jié)點特征及骨骼點角度特征進行行為分類。從多角度進行了識別有效性的對比,結(jié)果如表3所示。其中,單行為識別耗時是指利用訓練好的模型測試一個不經(jīng)特征提取的原始輸入所耗時間,以此來驗證模型的實時性。

表3 雙流法與骨骼點構建法識別對比表
由表3可以看出:基于骨骼點的行為識別方法比雙流法平均識別準確率低了14.19%,這是由于數(shù)據(jù)集中存在大量相似動作,如喝酒、抽煙、喝水,骨骼點構建法只能識別出抬手動作,無法做出細粒性識別。雙流法的準確率方差較小,魯棒性較好,普適性強,對動作識別的準確差別較小。在單行為耗時方面,雙流法實現(xiàn)了端到端識別,無需自主提取特征即可得到識別結(jié)果,在實時性方面有較好的表現(xiàn)。而骨骼點構建法需要手動提取骨骼點特征,再將特征送入網(wǎng)絡中,無法做到端到端,也無法達到實時識別的效果。
本文與國內(nèi)其他礦工行為識別的方法進行了對比。為了增加實驗的可對比性,實驗均在本文構建的數(shù)據(jù)集上進行。由于目前國內(nèi)的礦工行為識別基本都是在小數(shù)據(jù)上進行,沒有在像本文構建的大數(shù)據(jù)集上試驗,因此本文分別對比了10種經(jīng)典動作和50種普遍動作的識別準確率。10種經(jīng)典動作即走、坐、站、撿、提、扔、推、拉、攀爬、摘安全帽,50種普通動作即數(shù)據(jù)集的全部行為。表4是礦工行為識別方法的準確率對比。

表4 礦工行為識別方法準確率對比 %
由表4可以看出:基于骨骼點的行為識別[21-22]在小數(shù)據(jù)集上展現(xiàn)出優(yōu)勢,在區(qū)分度較大的數(shù)據(jù)集上識別準確率較高,但在大數(shù)據(jù)集上不僅耗時(無法自主生成特征),而且識別準確率很低。而基于圖像的行為識別在處理相似動作時細粒度較高,并且可以有監(jiān)督的自主學習特征,在大數(shù)據(jù)上識別準確率下降相對低一些。而本文提出的基于量子遺傳優(yōu)化的雙流算法由于融合特征較多、網(wǎng)絡較深,在兩種數(shù)據(jù)集上都達到了最高的識別準確率。
本文提出了一種改進雙流算法的行為識別方法,可以自動學習礦工視頻數(shù)據(jù)集上的空間信息和時間信息并對行為進行分類。該方法可以解決以往礦工行為識別方法中手動提取特征耗時,背景識別不敏感等問題。從原始視頻中提取RGB特征和光流特征,再分別送入時域網(wǎng)絡和空域網(wǎng)絡,實現(xiàn)網(wǎng)絡自主學習和行為分類。為了提高模型的準確率,采用量子遺傳尋優(yōu)的方法尋找參數(shù)的全局最優(yōu)解。通過對自建的礦工數(shù)據(jù)集進行實驗以及和其他礦工行為識別方法進行對比,驗證了基于量子遺傳算法優(yōu)化的雙流網(wǎng)絡在識別礦工行為方面的有效性。