盧 穎,呂希凡,郭良杰,仇 樂,路越茗
(1.武漢科技大學 資源與環境學院,湖北 武漢 430081;2.中國地質大學(武漢) 工程學院,湖北 武漢 430074)
當前地鐵視頻監控系統多為“只記錄不判斷”模式,需要工作人員輪流值守監督站內乘客活動,發生事故后通過回看視頻進行取證,無法實時判斷[1]。為加強地鐵乘客行為管理,可在地鐵口、閘機、扶梯等人員密集部位加設視頻監控裝置,但傳統檢測識別主要依靠單目視覺[2],存在識別精度低、穩定性差等問題。因此,基于新一代深度傳感器開展地鐵乘客不安全行為的智能識別研究具有重要理論意義和實際應用價值。
深度傳感器解決了傳統監控設備存在的問題,以紅外結構光檢測為核心,可實時捕捉人體動作骨骼信息[3]。基于實時骨骼信息,結合機器學習[4]或深度學習[5]算法實現行為的智能識別。當前行為識別算法主要分為2類,一類是以隱馬爾科夫模型[6]、貝葉斯網絡[7]以及BP神經網絡[8]等為代表的狀態空間法。該類方法數據獲取簡單,只需獲得傳統的視頻信息、圖片信息等即可進行后續行為識別。但這類方法往往需要大量訓練數據,對于小型數據集處理效果差,且尋找模型最優參數過程復雜,難度較大,復現率較低。另一類是運用幀與幀匹配[9]、幀融合匹配[10]和關鍵幀匹配[11]的模板匹配法,其中以動態時間規整(Dynamic Time Warping,DTW)算法最為典型。該方法通過提取樣本中行為特征序列與對應標準行為進行匹配,再判斷序列間的距離大小從而得到動作相似度,其優勢在于無需大量樣本作為識別基礎,且算法過程簡單、易操作實現。但提取動作特征方式的合理性對最終識別結果影響很大。目前,骨骼信息的動作特征大多以相鄰關節點之間形成的向量作為提取的動作特征向量,如Yu等[9]、于瑞云等[12]、陸中秋等[13]等選取全身主要部位的關節坐標,再計算相鄰骨骼關節點向量從而得到識別標準動作與測試動作的相似度。然而這種關節選取方法存在冗余關節的影響,同時也受識別對象的身高、身材以及識別過程中的身體偏移等因素干擾,進而導致識別結果的魯棒性較低。
綜上,本文擬基于Kinect獲得骨骼信息,提出1種以 Pelvis為矢量起點、行為活動高頻關節點為矢量終點的動作特征向量選取方法,利用余弦定理獲得動作之間的關節角度差,以最大角度差為動作特征量建立相似度計算模型,運用DTW算法得到動作之間的最優路徑并轉化為動作相似度。通過地鐵乘客不安全行為識別的對比實驗,驗證方法的可行性和準確性,為地鐵乘客不安全行為管控提供1種新型技術手段。
目前不安全行為識別技術是一個包含了計算機視覺、圖像處理以及機器學習等相關技術的有機整體。從識別的數據類型看,可分為:基于視頻信息、圖像信息以及骨骼信息的識別系統。不同的識別系統常用的特征參數有:大小、顏色、骨骼等靜態特征參數;光流、速度、軌跡等動態特征參數;場景、屬性等描述性特征參數。對比分析典型不安全行為識別系統及其特征參數,如表1所示。
表1 不安全行為識別技術對比Table 1 Comparison on recognition technologies of unsafe behavior
基于視頻信息和圖像信息的行為識別技術易受光線、物體遮擋等外界環境因素干擾,需對原始數據預處理,增加了整體識別難度,實現過程復雜,復現率低。而基于紅外結構光檢測的Kinect骨骼信息識別,可有效避免環境因素干擾。鑒于研究背景為地鐵復雜環境,存在大量人員相互遮擋現象以及地鐵噪聲干擾等因素,因此采用Kinect提取地鐵乘客不安全行為骨骼信息進行后續行為識別。
在導致地鐵運行事故的原因中,乘客行為最為復雜多變[18],但對其慣常狀態不安全行為研究相對較少,因此本文根據現有文獻、地鐵事故案例以及相關行為監控系統選取識別對象。劉艷等[19]將乘客不安全行為分為3類:站內抽煙、侵入限界以及攜帶違禁物品。通過對91例地鐵乘客行為引發的事故案例分析,其中打架斗毆行為占23.7%。 此外,在《人工智能在公安視頻大數據分析領域的前沿應用》專題報告[20]中指出,呼救行為是公安視頻監控行為之一。雖然呼救不屬于不安全行為,但其預示可能有不安全行為或突發事件發生,因此,將其作為表征可能發生不安全行為的異常行為,納入智能識別的范疇,使地鐵監控對象多元化、規范化。為便于表述,本文仍以不安全行為作為識別對象的總稱,其特指地鐵乘客不安全行為或異常行為。
結合Kinect設備特點,根據上述調查結果,選取抽煙、打架斗毆、單/雙臂揮手呼救作為動作識別對象。
本文使用2019年發布的最新一代Azure Kinect,通過Kinect Body tracking SDK (software development kit)開發包提供的應用程序編程接口以及Kinect SDK以30 f/s的頻率采集32個關節點,提供每個關節的三維坐標、方位角、置信水平等信息,利用骨骼追蹤技術可分別得到標準動作與測試動作的關節點位置。該設備相比Kinect V2,可多檢測鼻子、左眼、右眼、左耳、右耳、左鎖骨和右鎖骨7個關節點,Azure Kinect捕獲的32個關節見圖1。
圖1 Azure Kinect獲得的關節信息Fig.1 Joint information obtained by Azure Kinect
Kinect傳感器捕獲的基礎運動數據是一系列以幀為單位的人體骨骼關節位置3D坐標。為將3D坐標數據轉化為骨骼向量,學者們[9-11]多采用“相連關節法”以2個相連關節作為在空間中的1個三維向量進行轉化,選取方式見圖2。該方法存在冗余關節影響,受識別對象身材以及識別過程中的身體偏移等因素干擾而導致識別結果的魯棒性較低。為解決此問題,提出1種“Pelvis發散法”,所選向量皆以Pelvis為起點、動作活動高頻關節為終點,以此構成動作特征向量,選取方式見圖2。
圖2 特征向量選取方式Fig.2 Selection method of characteristic vector
在不影響動作特征完整性表達的基礎上,舍去一些動作姿勢表達中作用不明顯的骨骼關節點,即冗余關節,有利于后期數據的結果處理[21]。據此,分別分析抽煙、揮拳、單/雙臂揮手呼救4種動作行為特征,選擇不同行為所對應的活動頻率較高關節點并將其編碼如圖2,選取的特征關節向量見表2。
表2 地鐵乘客4種行為對應的關節向量選取Table 2 Joint vector selection corresponding to four kinds of behavior of subway passengers
(1)
圖3 標準動作與測試動作角度差提取Fig.3 Extraction of angle difference between standard motion and test motion
通過得到的標準數據S與測試數據T這2個動作序列,應用DTW算法尋找標準動作與測試動作的最佳匹配路徑,同時最大程度減少時間上的偏移和變形影響[23]。根據表2選取的動作關節向量,每個動作關節向量的運動都構成1維時間序列數據。以抽煙動作為例,標準動作和測試動作的數據具有3個維度,每個數據集的矩陣的維數為n×3,其中n是運動數據的總幀數。
(2)
式中:i為元素橫坐標,1
由式(2)可得到1條具有最小累積距離動態規整路徑P,據此獲得關節向量的角度差之和cp(S,T),如式(3)所示:
(3)
式中:cp(S,T)是代價矩陣中最優動態規整路徑的元素之和;S為標準動作序列;T為測試動作序列;l為路徑P的步長。
對于多維情況,si與tj不是單個骨骼矢量,而是代表整個身體運動的多個關節矢量。多維DTW(S,T)的計算方式與一維情況類似[25],不同之處在于需要重新定義C(si,tj)。本文將C(si,tj)定義為:所選定動作多維關節向量中的最大角度差。DTW的輸出DTW(S,T)則為最短動態規整路徑的最大角度差累積之和。因此,累計之和越小,2個運動序列的相似度越高。為了量化標準動作與測試動作的相似度,提出以最大角度差為特征量的相似度公式,以百分比結果進行表征,如式(4)所示:
(4)
式中:l為最優動態規整路徑長度;V為選擇用于運動評估的關節矢量個數。
最大角度差的取值范圍為0~180°,在該范圍內余弦函數單調遞減,每個角度值唯一對應1個余弦值[12]。因此該最優路徑的最大DTW(S,T)為180×V×l。
為檢驗“Pelvis發散法”的實際識別效果,通過對地鐵乘客不安全行為的識別開展對比實驗。以“相連關節法”為對照組A組,“Pelvis發散法”為實驗組B組。
實驗硬件系統如下:Azure Kinect傳感器1臺;主機電腦:Intel(R)Core(TM) i5-8300H,2.30GHz,8 GB 內存,顯卡為NVIDIA GeForce GTX 1050 Ti。系統開發環境為:Windows 10操作系統,Visual Studio 2019及Matlab R2018a。應用WPF(Windows Presentation Foundation)平臺搭建實驗數據采集界面,界面包含視頻圖像顯示區、實驗人員信息記錄區以及控制設備區等模塊,詳見圖4。
圖4 實驗數據采集界面Fig.4 Interface of experimental data collection
此次實驗共有6名實驗參與者,將其中1名參與者的全部動作數據作為標準數據,其余5人的動作數據作為測試數據。將上述的抽煙、揮拳、單/雙臂揮手呼救進行具體定義,抽煙、揮拳及單臂呼救動作以右臂為例,揮手呼救以雙臂揮手呼救為例,具體動作見圖5。
圖5 4種地鐵乘客不安全動作示例Fig.5 Examples of four unsafe motions of subway passengers
每位測試者正面站立距Kinect 2.5 m處,當實驗界面顯示設備連接成功時,點擊“數據采集”,開始采集測試者動作數據,采集時間為10 s,共采集到300幀數據,采集完成后點擊“保存數據”,即可自動命名并保存至相應的.xls文件。5名測試者分別做每種動作10次,即每種動作共有50組測試數據。
將采集的數據分別采用“相連關節法”和“Pelvis發散法”進行動作特征向量選取,相對應地將選取結果定義為A、B 2組。
通過Matlab對實驗數據進行處理運算,以B組抽煙動作為例,具體算法描述如下:
2)步驟2:根據式(1)得到3組關節角度差值序列。
3)步驟3:選取序列中3組關節角度差的最大值作為代價矩陣的元素。
4)步驟4:通過步驟3得到300×300代價矩陣,從(1,1)出發,根據式(2)的限制條件,得到最優動態規整路徑P。
5)步驟5:輸出得到DTW(S,T)與步長l。
6)步驟6:將步驟5得到的結果帶入式(4),最大關節角度差值由符合條件的1組對應關節得到,即關節矢量個數V=1,因此:
以上步驟應用Matlab語言編程實現,將全部測試動作分別與對應標準動作比較,得到每個測試動作的相似度。
A、B組抽煙、揮拳、單/雙臂揮手呼救4種地鐵乘客不安全行為各50組數據的實驗結果如圖6所示。
圖6 2組動作相似度結果分布對比Fig.6 Comparison on distribution of motion similarity results of two groups
由圖6可知,B組相似度整體高于A組,尤其在揮拳、單臂呼救、雙臂呼救3種動作上的差異更顯著;A組在抽煙、揮拳、單臂呼救、雙臂呼救4種動作相似度上的分散程度高于B組,說明采用B組“Pelvis發散法”獲得的動作相似度結果比A組“相連關節法”集中程度更高,穩定性更強。
對A、B組4種地鐵乘客不安全行為的各50組數據分別取平均值,獲得最終相似度如表3所示。
表3 不安全行為相似度結果Table 3 Similarity results of unsafe behavior
由表3可知,B組的最終動作相似度均高于A組,說明采用“Pelvis發散法”選取動作特征向量進行動作識別優于“相連關節法”。其中抽煙的動作相似度整體最高,A組達88.6%,B組達91.7%;雙臂揮手呼救的動作相似度整體最低,A組為67.9%,B組為85.5%。分析認為,數據的傳輸及錄入本身存在一定的誤差延遲,屬于系統誤差,因此,相似度超過80%[3]即可認為達到識別目的,可見,B組對4種動作的識別均達到良好效果。
同時,雙臂揮手呼救動作的相似度整體偏低的原因主要有:運動速度加快,如雙臂揮動速度過快會導致系統誤差進一步增大;由于該動作存在雙臂交叉情況,導致選取的關節點在某一時間點重合,影響動作信息捕獲的穩定性,產生關節位置信息偏差,即關節點重合也是導致該動作相似度較低的原因之一。后續可進一步開發Kinect動作捕捉算法,提高關節點重合類動作的相似度。
1)基于Kinect獲取的骨骼信息,提出1種地鐵乘客不安全行為識別方法,方法以Pelvis為起點和動作活動高頻關節為終點構建識別特征向量,基于動態時間規整算法(DTW)以最大角度差為動作特征量建立相似度計算模型,可解決冗余關節導致的動作識別魯棒性較低、DTW結果量化與實際應用問題。
2)完成“相連關節法”(A組)和“Pelvis發散法”(B組)在抽煙、揮拳、單/雙臂揮手呼救4種地鐵乘客不安全行為識別的對比實驗。結果表明:B組識別4種不安全行為的準確度分別為91.7%、86.9%、89.2%、85.5%,平均比A組高4%以上,且識別結果集中程度更高、穩定性更強,顯著提高了地鐵乘客不安全行為的識別率。
3)研究重點在于,以小樣本數據量為基礎,避免復雜訓練算法,對動作進行有效識別。但實驗過程中發現雙臂揮手呼救動作的識別準確度整體偏低(A組為67.9%,B組為85.5%),除系統誤差外,運動速度加快、關節點重合是導致該問題的原因,在后續研究中可進一步深入探討。