趙小虎 黃程龍



摘? ?要:由于煤炭生產的特殊性與危險性,煤炭生產過程中安全事故常有發生,其中人為因素占極高的比例,因此研究礦井工作人員的違規行為十分必要. 針對人體行為識別中傳統的動態時間規整算法經常出現的奇異點和時間復雜度問題,提出一種分段線性逼近結合自適應權重動態時間規整算法. 對該算法進行了仿真以及實驗,該算法在 SDU Fall Dataset 數據集的平均識別率達到了 95.33%,平均識別時間減少了 46.47%,在煤礦井下使用該系統進行測試,結果表明所提出的算法在識別速度和準確率上均有一定程度的提高.
關鍵詞:礦井監控;行為分析;人機交互;違規行為識別;動態時間規整算法
中圖分類號:TP391.1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標志碼:A
Abstract:Due to the particularity and danger of coal production, safety accidents often occur in the coal production process. Human factors account for a very high proportion. Therefore, it is necessary to study the violations of mine workers. Aiming at the singular point and time complexity problems often found in traditional dynamic time warping algorithms in human behavior recognition, a piecewise linear approximation algorithm combined with adaptive weight dynamic time warping algorithm is proposed. Then, the algorithm is simulated and experimented. The average recognition rate of the algorithm in the SDU Fall Dataset data set is 95.33%, and the average recognition time is reduced by 46.47%. Finally, we use the system to test in the coal mine. The results show that the proposed algorithm has a certain degree of improvement in recognition speed and accuracy.
Key words:mine monitoring;behavior analysis;human interaction;violation behavior identification;dynamic time warping(DTW) algorithm
在中國可用的能源中,煤炭占有非常重要的地位,其在國民經濟發展中具有舉足輕重的作用. 然而,由于煤炭生產的特殊性以及危險性,在煤炭生產過程中死亡事故常有發生,給作業人員、企業負責人帶來嚴重的傷害和損失. 統計這些煤礦死亡事故,80%以上是由于作業人員的不合理行為直接或間接導致的[1].
如今,我國絕大部分煤炭企業在井下已經安裝了視頻監控系統,調度中心的工作人員通過傳輸到地面上的監控視頻查看以及調度井下的生產情況. 目前,井下作業人員的違規行為是通過傳統的 RGB 攝像頭進行監控,監控方式仍是依靠人工[2]. 鑒于此,會產生兩個突出的問題,第一是隨著監控時間的增加,監控人員可能會產生視覺疲勞,由于井下工作人員的違規行為可能是一瞬間,監控人員可能無法發現違規行為,這樣很可能會導致安全事故的發生;第二是井下使用傳統的 RGB 攝像頭進行視頻監控,由于井下某些區域照度極低或是無光源,監控人員無法在該區域的監控視頻中發現井下工作人員的違規行為,產生了礦井安全監控的一個監控盲點. 由于 Kinect 可以在沒有光源的環境下獲取目標的骨骼圖像,并且可以進行骨骼跟蹤,因此本文研究的內容就是通過 Kinect 體感傳感器,對礦井下的監控盲區進行井下作業人員的行為監控,實現礦井下的作業人員全覆蓋及智能化監控,以保證煤礦的安全高效生產.
目前在人體行為識別研究中,大部分研究基于傳統的單目視覺展開[3]. 這些傳統的研究使學者認為人體行為識別過程中易受光照、背景等因素的干擾,并且得到的結果準確性和魯棒性均不佳,在井下光源微弱的情況下對人體行為的識別無疑是致命的. 微軟發明了一款可以在 Windows 平臺下使用的 Kinect 攝像機,它不僅能給出傳統的彩色圖像,還能給出有關對象的深度信息[4]. 在官方提供的 Kinect for Windows SDK 支持下,研究人員能夠得到人體骨架中的 20 個骨架關節點的位置信息[5].人體動作行為識別若使用 Kinect 得到人體骨骼關節點的三維坐標數據,不僅能有效防止光照變化的干擾,還能免除在復雜的背景情況下對研究對象采取分割提取等一些預處理過程.
把 Kinect 攝像機用于研究人體行為識別已然發展成了行為識別領域范圍內的一個研究熱點,Thanh 等[6]利用 Kinect 關節點數據得到 3 維形狀直方圖并使用 TF-IDF 算法分析人的行為;Lin 等[7]提出了基于 Kinect 的物理康復輔助系統,使用計算標準行為和學習行為相應關節點間歐氏距離的平均值以及骨骼關節間角度差的平均值,來評價恢復者學習太極動作的準確率. 就目前而言,在人體行為識別領域內使用較多的識別算法有隱馬爾可夫算法(HMM)、神經網絡算法(ANN)、支持向量機算法(SVM)以及動態時間規整算法(DTW). 上述算法中 DTW 算法在分類長短不同的時間序列上有天然的優勢,這是其他算法無法達到的. 因此文中選用 DTW 算法進行礦工的違規行為識別.
1? ?傳統 DTW 算法的缺點
1.1? ?奇異點問題
傳統的 DTW(Dynamic Time Warping)算法對時間軸進行規整會考慮到數值的相似性,能夠有效地解決時間軸上偏移以及尺度伸縮等問題. 但是,這樣的操作僅單一考慮了時間軸上數值的相似性,并未考慮到數值軸上的問題,因此數值軸上的偏移問題沒有得到解決,從而產生一個時間序列中的某點映射到另一個時間序列中大部分區域的現象,即奇異點問題,這樣會影響行為識別的準確率.
假設兩條時間序列 P 和 D 上分別有點 pm 和 dn,兩個點在時間序列上的值相等. 但是,pm在時間序列的上坡部分,dn在時間序列的下坡部分,兩點距離式中:DTW(P,D)表示兩個時間序列規整的最小路徑;u0代表一個包括矩陣元素的連續集合,定義P和D的映射關系;O用于彌補因不同路徑所產生的不同長度;η(pm,dn)表示累積距離.
最優的規整路徑必經過(pm,dn),DTW 算法將會把這兩點進行映射,但實際上這兩點未存在映射關系. 一條時間序列上的某點和另一條時間序列上的多個點發生映射,是因為這個點和另一條時間序列的多個點“太近”,這種現象叫做“奇異點”如圖1所示.
1.2? ?時間復雜度問題
擁有較高的時間復雜度是DTW 算法面臨的又一主要問題. 隨著時間序列長度的增加,DTW 算法的計算時間增加,算法的時間復雜度增加. 這種情況在大多數分類算法中是不被允許的. 雖然絕大多數的分類算法沒有實時性的要求,但是時間復雜度會極大影響到算法的性能. 因此如何減少DTW 算法的時間復雜度十分關鍵.
目前,學者們提出了多種方法來減小DTW 算法的時間復雜度. 根據改進思路的不同將其分為3類:
1)直接約束法.? 直接在原始DTW 算法的動態規劃中加入邊界限制,將規整路徑的訪問范圍進行限制,可以極大壓縮算法的搜尋空間,進而減小時間復雜度.
2)數據抽象法.? 將原始時間序列進行一系列的數據處理,如降維和特征提取,將原始時間序列的長度變短,減少DTW 的時間復雜度. 這種方法只是對數據進行了處理,縮短了時間序列的長度,DTW 算法本身沒有變化.
3)索引法. 使用下界函數(lower bounding functions)來減小DTW 算法在時間序列分類時的計算次數. 該方法只是直接減少算法的計算次數,算法本身也沒有發生修改.
上述3類方法中,直接約束法使用得最多. 該方法在最優路徑與線性規整路徑偏差很小的情況下,減少時間復雜度的效果非常好;對于最優路徑與線性規整偏差比較大的情況,該方法減少時間復雜度的效果一般.
2? ?改進的DTW 算法
產生奇異點的原因是動態時間規整算法在計算時只考慮空間維度,未考慮時間維度. 因此下文介紹的解決方法均加入時間維度上的信息(即梯度特征)來解決奇異點問題. 如DDTW 算法僅使用梯度特征來計算,完全忽視了數值信息[8]. WDDTW 算法中使用了數值特征以及一階和二階梯度特征的加權和來運算[9].
DDTW 中單純考慮梯度特征是不嚴謹的,數值信息和梯度信息都要考慮到,才能得到更好的效果. 一般來說,兩個特征項綜合使用求和方式一般比乘積好. WDDTW 中使用加權求和的方式進行兩者的融合,雖然考慮了數值信息以及梯度信息,但是需要額外優化權重系數,加大了算法的求解難度. 此外,WDDTW 中二階梯度特征是多余的,因為一階梯度特征已經擁有了充足的時間維度信息,再有二階梯度反而會有冗余信息以及噪聲信息.
本文提出的改進算法為自適應權重動態時間規整算法(Self-adaption Weight Dynamic Time Warping,SWDTW),該方法同時兼顧了時間序列的數值信息以及時間信息. 定義新的特征Msw(pm) 如式(3)所示:
式中:max(|Δp|)為時間序列 pm中全部時間點的最大梯度. 這里某點的梯度用相鄰點的差分來表示,即用 pm - pm - 1表示 pm 的梯度;max(|Δp|)的用處在于把各個梯度的值限制在[-1,1]之內,方便以比值的形式把梯度信息放入到特征之中;g表示常量系數;局部距離 l(pm,dn)可以表示為.
由式(3)可知,新的特征同時包含了數值信息以及梯度信息,梯度信息以比值的方式融入到特征中. 因為數值信息和梯度信息所產生的偏差,都可以讓DTW 的距離增大. 所以,SWDTW 的優點就在于可以同時改善時間軸及數值軸上的偏移以及尺度伸縮. 數值信息的比值為1,大于梯度信息的比值,數值信息占主要地位,梯度信息為次要地位. 因此,SWDTW 對數值較小的誤差不會特別敏感.
從時間維度及空間維度方面分析,數值代表的是空間維度的信息,其 pm 的梯度代表的是時間維度的信息. 所以,式(3)新的特征對兩種維度的信息都考慮在內,且均可以改善數值軸及時間軸上的偏移和尺度伸縮.
時間序列的特點是維度長、特征重復以及包含噪聲,如開始就將時間序列進行特征提取和降維處理,會縮短時間序列的長度,還可以獲得更好的特征表示,再使用 SWDTW 計算距離,既可以減小產生奇異點的可能性,又可以在一定程度上減少時間復雜度. PLA 是一種對時間序列分段線性表示、還可以特征提取和降維的方法,其特點為計算便捷、提取的特征明顯以及原始信息損耗小等.
分 段 線 性 逼 近 ( Piecewise Linear Approximation,PLA)是一種利用分段線性近似的方式對非線性時間序列進行降維和去噪的方法. 設定非線性時間序列Q = {t1,t2,…,tm},使用 PLA 進行表示,可得式(5):
式中: xa(1≤a≤p)代表第 a 段分段的時間下標; p 代表分段的數目;S表示PLA分段的距離;L表示時間序列分段的長度;QPLA是一個時間序列,由每段線段的起點及終點組成.
總體來說,PLA 可以分為3類算法:
1)滑動窗口(Window-Sliding)算法. 從最左邊出發,一次增加一個數據點進入窗口,線性擬合當前窗口的點,窗口會在最大誤差達到某個閾值后結束,當前數據點將會作為新的開始窗口,進行下一分段,反復進行該操作直到序列結束. 最大誤差是指目前分段中數據點到線段的最大距離.
2)自底向上(Bottom-Up)算法. 把全部相鄰的點兩兩連接起來作為起始分段,再依賴合并以后最大誤差最小化原理,順序合并相鄰的分段,當全部相鄰分段合并以后最大誤差都大于閾值時才會停止.
3)自頂向下(Top-Down)算法. 將整個原始時間序列近似整合成一條直線,把距離直線最遠的點(誤差最大的點)當作劃分點,分成兩部分. 對劃分以后的兩部分分別再合成直線,依舊選擇最遠點為劃分點,再分成兩部分. 反復進行該操作直到所有部分的最大誤差都小于閾值.
對比3種方法,滑動窗口算法優劣勢均較明顯,其優勢在于時間復雜度是3種算法中最小的,可以實現在線運算,但其分段效果是最差的;自頂向下算法雖然時間復雜度不是最小的,但分段結果是3者中最好的,而且實現也較為簡單. 所以本文選擇PLA 實現算法為自頂向下算法.
在提出 SWDTW 算法的基礎上提出了一種把 PLA 和 SWDTW 融合的新算法,先使用 PLA 對初始的時間序列進行特征提取以及降維,大大減小初始時間序列的長度,最后使用 SWDTW 對處理后的序列計算距離. 該算法稱為 PLA-SWDTW,從下文的實驗結果以及分析中可以得出,這種算法在解決奇異點問題的同時,可以一定程度地減小時間復雜度.
3? ?實驗結果及分析
本文使用傳統的 DTW、DDTW 以及PLA-SWDTW算法對最優規整路徑已知的時間對序列進行映射實驗,來測試 PLA-SWDTW 算法在解決奇異點問題和正確找出最優規整路徑時是否具有更好的性能. 為了得到這樣的時間序列對,從數據集中任意選擇一個時間序列樣本 A,將它進行復制得到 A′. 然后將 A′不同部分的數值隨意增加或刪減,并且增加刪減的值足夠小,以保證這兩對時間序列對在產生偏差的同時,A′的“形狀”不會變化太大. 因此A 和 A′不存在規整. 再將這兩個序列分別進行 PLA 降維,得到一對新的時間序列 P和P′. 如圖 3就是初始序列 P(實線)及修改后的序列 P′(虛線)的示例.
在清楚時間序列 P 和 P′間的正確映射后,規定符號 y′(x)代表時間序列 P 里的點px 和時間序列P′里的點 p′y 相互映射. 由于時間序列 P 和P′間不存在規整,所以有 y′(x)=x. 再規定符號 Wi表示時間序列 P 中的點 px 對應實際算法結果中時間 P′中的點集. Q 表示兩個時間序列間錯誤映射的度量如式(6)所示:
式中:Q是兩個時間序列之間錯誤映射的次數,Q越大表示映射錯誤的情況越多,算法的性能也就越差.
實驗采用山東大學SDUFall Dataset 數據集進行算法性能的驗證. 該數據集包括彎腰、跌倒、躺下、坐下、蹲下以及行走等6個動作,這6個動作由20個人分別完成,每個實驗者對這6個動作都執行10次,每個動作都將拍攝角度、身體部分被遮擋以及光照強弱等因素考慮在內. 拍攝視頻格式的幀數是 30 幀/s,像素分辨率為 640×480,動作長度為 5.6 s. 圖 2(a)為數據集中初始時間序列(實線)及其變形序列(虛線). 圖 2(b)~2(d)分別代表 DTW、 DDTW 和 PLA-SWDTW 對圖 2(a)中序列的映射結果. 圖 3 顯示了該數據集中不同動作的幀序列圖像. 使用 DTW、DDTW 和 PLA-SWDTW 3種算法分別對該數據集的6個動作進行映射實驗. 表 1 為3種算法的平均錯誤映射數量.
由圖4可知,DDTW 和 PLA-SWDTW 這兩種算法的識別準確率明顯高于傳統的 DTW 算法,印證表 1 所得出的結論,這兩種算法顯著改善了傳統 DTW 算法奇異點問題,且后者的準確率還略高于前者,表明在解決奇異點問題上,后者的性能為最佳. 表 2 中,DTW、DDTW、PLA-SW算法的識別時間分別為1.305 s、1.208 s、0.896 s,PLA-SWDTW 算法在識別時間上小于前兩者,也證明了該算法在一定程度上減少了時間復雜度.
4? ?實驗過程以及結果分析
4.1? ?實驗設計及環境
本文實驗硬件平臺為: Kinect for windows 攝像機一臺,彩色圖像和骨骼圖像的分辨率均為 640×? 480;使用 PC 機作為實驗計算機,主要的配置包含Intel (R) Core (TM) i5-6260U,1.8 GHz 主頻雙核處理器,內存為 8 GB,顯卡為英特爾Iris Graphics 540;系統的開發環境為 Windows 7 操作系統,Visual Studio 2010 和 Kinect SDK v1.8.
4.2? ?實驗過程
基于礦井人員的違規行為建立識別系統,是為了對礦井人員在井下環境中可能產生的違規行為進行監控,設定的3個井下違規行為,分別是摘安全帽、脫工作服以及坐下睡覺. 由于本文使用改進的DTW 算法,因此系統分為兩大板塊,第一個板塊是模板錄制及訓練板塊,通過此模塊可以隨時加入違規行為模板,從而識別出違規行為;第二個板塊是行為識別板塊,此模塊可以實時識別出違規行為. 在違規行為識別過程中,由于違規行為的動作訓練板塊是基于改進的 DTW 算法所構建的,同時也是影響系統識別準確率的重要環節.
模板訓練過程如下:
1)按下“動作捕捉”按鈕,將會等待3 s,開始模板錄制,模板錄制 30 幀,需在 30 幀內做出不同的違規行為;
2)按下“保存數據到緩沖區”按鈕,把已經捕捉好的模板數據保存到內存緩沖區中;
3)按下“保存到模板”按鈕,動作序列被寫入 bin 目錄下以當前時間點命名的 txt 文件中,違規行為訓練結束.
訓練過程中系統完成了深度數據修正、坐標的變換及加權處理,同時使用了基于 DTW 的聚類算法使得模板訓練的時間大大減少. 訓練好的違規行為訓練集如圖 5 所示.
圖5中第一行“#”后存儲違規行為的名稱;“~”表示一幀數據已經保存完畢. 由行為序列可知,每一個坐標數值都是 double 類型的,一幀存儲所有關節點骨骼坐標數據.
違規行為識別的過程其實是一個動態行為過程. 以“摘安全帽”為例,“摘安全帽”的行為可以描述為:伸手拿起帽子,然后將帽子摘下. 識別過程中,首先點擊“加載動作模板”按鈕,從 bin 文件夾中選擇“摘安全帽”的 txt 文件,模板將會自動載入系統并且進入行為識別狀態. 測試者按照“摘安全帽”的行為,首先伸手拿起帽子,然后將帽子摘下,系統將會在下方實時顯示骨骼圖像及彩色圖像,并且在結果欄顯示識別結果以及 DTW 距離.
在實驗室環境下進行實驗,找到10名同學分別做出摘安全帽、脫工作服以及坐下睡覺這 3 個違規動作各 50 次(為了仿真井下低照度場景,將室內光源全部關閉,測量照度為 2 lux). 對得到的原始數據進行均值濾波處理,把處理得到的數據分別作為訓練數據以及測試數據. 本文選取兩種實驗方案,用來測試兩種改進算法的準確率以及識別時間. 其中測試結果如圖 6 所示.
實驗方案的描述如下:分別將傳統 DTW 算法以及 PLA-SWDTW 算法寫進系統中,使用傳統 DTW 算法系統時,實驗者在摘安全帽、脫工作服、坐下睡覺各 50 個動作中,取一半數據作為訓練數據,一半數據作為測試數據進行實驗. 同理在使用 PLA-SWDTW 算法的系統時也是取一半數據作為訓練數據,一般數據作為測試數據進行實驗. 兩者實驗結果如表 3 所示.
4.3? 結果分析
由表 3 可知,PLA-SWDTW 算法在識別時間上與傳統的 DTW 算法相比有一定的減少,這是算法中融合了分段線性逼近的結果. 然而在識別率上,PLA-SWDTW 算法相較于 DTW 算法有較明顯的提升,說明了提出的算法可以改進奇異點問題,從而提高算法的識別準確率.
5? ?結? ?論
本文提出了分段線性逼近結合自適應權重動態時間規整算法( PLA-SWDTW),來解決奇異點問題以及時間復雜度問題,實驗結果顯示,該算法具有良好的適應性和魯棒性,且識別的準確率和速度均有一定的提高.
本文不足之處體現在以下兩點:(1)對于礦工速度過快的違規行為,識別率比較低;(2)識別動作比較單一,并且只能識別單人的違規動作.
參考文獻
[1]? ? 韋釗. 煤礦事故隱患排查與管控關鍵技術及應用研究[D]. 北京:中國礦業大學(北京)資源與安全工程學院,2018:1—4.WEI Z. Key technology and application of potential accident hazards investgation and control in coal mine [D]. Beijing:School of Resources and Safety Engineering,China University of Mining and Technology,2018:1—4. (In Chinese)
[2]? ? 賈偉. 煤礦井下視頻多目標軌跡跟蹤方法研究與應用[D]. 西安:西安科技大學計算機科學與技術學院,2017:1—2.JIA W. Research and application of multi-target trajectory tracking method for coal mine underground video [D]. Xian:School of Computer Science and Technology,Xian University of Science and Technology,2017:1—2. (In Chinese)
[3]? ? 胡瓊,秦磊,黃慶明. 基于視覺的人體動作識別描述[J]. 計算機學報,2013,36(7):1—14.HU Q,QIN L,HUANG Q M. A summary of human action recognition based on visual [J].Chinese Journal of Computers,2013,36(7):1—14.(In Chinese)
[4]? ? BISWAS K K,BASU S K. Gesture recognition using Microsoft Kinect [C] //5th International Conference on Automation,Robotics and Applications. New Zeland:IEEE,2011:100—103.
[5]? ? SHOTTON J,SHARP T,KIPMAN A,et al. Real-time human pose recognition in parts from single depth images [J]. Communications of the ACM,2013,56(1):116-124.
[6]? THANH T T,CHEN F,KOTANI K,et al. Extraction of discriminative patterns from skeleton sequences for human action recognition [C]//IEEE International Conference on Computing and Communication Technologies,Research,Innovation,and Vision for the Future. Piscataway,USA:IEEE,2012:6pp.
[7]? ? LIN T Y,HSIEH C H,LEE J D. A Kinect-based system for physical rehabilitation:Utilizing tai chi exercises to improve movement disorders in patients with balance ability[C]// Proceedings of the 7th Asia Modelling Symposium. Hong Kong:IEEE Computer Society,2013:149—153.
[8]? ? KEOGH E J,PAZZANI M J. Dervative Dynamic Time Warping[C]//Proceedings of the 1st SIAM International Conferernce on Data mining. Chicago:SIAM,2002.
[9]? ? KULBACKI M,BAK A. Unsupervised learning motion models using dynamic warping [J]. Adcances in Soft Computing,2002,17:217—226.