楊 成 楊超宇 張鑫鑫
(安徽理工大學(xué)經(jīng)濟與管理學(xué)院 安徽淮南 232000)
目前隨著行為識別的快速發(fā)展,認識和理解人類運動和行為逐漸成為計算機視覺領(lǐng)域的研究熱點,提出了很多種基于深度神經(jīng)網(wǎng)絡(luò)的算法,行為識別一直是計算機視覺領(lǐng)域所研究的熱點之一[1-2]。行為識別的兩種基本方法,一種是手動提取有關(guān)特征,另一種是基于深度學(xué)習(xí)中神經(jīng)網(wǎng)絡(luò)自動提取有關(guān)特征,前者有著明顯的局限性,后者有著很大的研究空間,為行為識別的進一步發(fā)展奠定了一個很好的基礎(chǔ)。
Chua等人根據(jù)人體的形狀特征,設(shè)計并計算出3個點分別代表人體的頭部、上半身和腿部,然后利用3個點之間的距離和方向來表示人體的運動,確定動作類別[3];Rougier C等人根據(jù)一個人在跌倒時,其行為在空間和時間上都會發(fā)生很大的變化,利用運動的歷史圖來探測大的運動行為,然后根據(jù)人體形態(tài)的特征,分析跌倒與行走的區(qū)別,最后區(qū)分行走與跌倒等行為[4]。Wang等人運用PCA網(wǎng)絡(luò)識別人類的異常行為,即利用PCA深度學(xué)習(xí)網(wǎng)絡(luò)提取人類行為特征,然后利用提取的特征訓(xùn)練線性支持向量機分類器,對跌倒等行為進行分類識別[5]。NunezMarcos等人是利用卷積神經(jīng)網(wǎng)絡(luò)來判斷跌倒行為[6]。首先根據(jù)RGB計算光流圖來表示運動信息,然后將得到的光流圖引入到基于VGG-16的神經(jīng)卷積網(wǎng)絡(luò)中,得到用于訓(xùn)練分類器的特征向量,最后將表示動作行為的特征向量引入到由全連接層和Softmax層組成的網(wǎng)絡(luò)中進行分類,然后確定相應(yīng)的動作類別[7]。
根據(jù)眾多研究結(jié)果表明,近年來,對于異常行為識別持續(xù)升溫,研究趨勢也從手動提取特征發(fā)展到現(xiàn)在的基于神經(jīng)網(wǎng)絡(luò)的自動提取特征,基于深度學(xué)習(xí)理論可以提取到維度更高的特征,識別結(jié)果就更精確,訓(xùn)練出來的模型也將具有更強的泛化性和魯棒性.特定場景下的人體異常行為檢測有著很好實用性,不斷地得到越來越多的領(lǐng)域的高度重視。
(一)算法簡介。Openpose是卡內(nèi)基梅隆大學(xué)推出的一個開源項目,實現(xiàn)多線程的一種對關(guān)鍵點的實時檢測,不但可以追蹤身體軀干上的的各個部位,而且可以面部和手指的時時動作經(jīng)行捕捉。先前的識別思路是自上而下,意是就是先在區(qū)域中找到人所處的位置,然后再去識別骨骼,而Openpose則是自下而上,先找到特部位,再去識別骨骼關(guān)鍵點。見圖1[8]。
圖1 識別流程
在輸出結(jié)果圖1(2)和(3)的過程中,得到兩個集合,集合和集合。集合S代表2D置信圖,能夠預(yù)測出人體關(guān)鍵點的位置,集合L代表有C個矢量場,每個肢體一個,表示關(guān)鍵點之間的相似性,中的每個圖像編碼一個2D向量.圖1(2)表示Part Confidence Map,稱為置信圖網(wǎng)絡(luò),以下簡稱PCM,圖1(3)表示Part Affinity Fields,稱為親和場向量,以下簡稱PAF,用以預(yù)測身體各個部位部位之間的親和度。最后,通過貪婪推理的方法去分析置信度圖和親合場,得到結(jié)果圖1(4),最終的匹配所采用的方法是著名的匈牙利方法,得到最大匹配方案,輸出圖像中所有人的2D關(guān)鍵點即圖1(5)。
(二)算法流程。首先經(jīng)過VGG-19的前10層對一張RGB三通道圖片進行處理,提取輸入特征,經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)層提取的圖像特征輸入到兩個分支[9]。第一個分支是PCM網(wǎng)絡(luò),即輸出各個位置上的存在關(guān)節(jié)點的概率圖,每一個置信圖表示身體的一個特定的部位在圖像上某點發(fā)生的可能性,標(biāo)準(zhǔn)置信度計算公式為:
它表示肢體c上j關(guān)鍵點的置信圖,k表示第k個人,xj,k表示第k個人的第j個關(guān)節(jié)點在圖像中的真實位置,σ決定了高斯分布的形狀,不同人的同一關(guān)節(jié)點的高斯分布可能會出現(xiàn)重疊,取最大值,以保證相近的兩個點的兩個尖峰不會因為平均而成為一個尖峰,計算公式為:
第二個分支是PAF,可以計算出兩個關(guān)鍵點之間的關(guān)聯(lián)置信度,用以預(yù)測兩個關(guān)鍵點之間的親和度。PCM可以表示關(guān)鍵點的位置,但是卻無法表示關(guān)鍵點之間的關(guān)系;特別圖像中的人數(shù)很多時候,各個關(guān)鍵點之間的關(guān)系是一個重要的信息。PAF對關(guān)鍵點之間的關(guān)系進行建模,PAF實際上就是一個2維的向量場,同時包含了位置和方向的信息,用來表示關(guān)鍵點之間的關(guān)系,見圖2。
圖2 肢體位置判斷方法
第k個人的手臂關(guān)節(jié)點肘部設(shè)為Xj1,k和手腕Xj2,k,點p為手臂上的一點,點p處的PAF值為:
其中c表示關(guān)節(jié)j1和j2之間的枝干,在上面的圖是前臂部分,v是p點的PAF值,是一個與j1關(guān)節(jié)點指向j2關(guān)節(jié)點方向一致的單位向量:
其中p的取值范圍是:
lc,k=‖xj2,k-xj1,k‖2,表示肢體c的長度,v⊥向量是v向量的垂直向量,σl是關(guān)于l的函數(shù),表示肢體c的寬度.在包含多個人的圖像中,PAF的真實值是圖像中所有人各自的PAF的平均值,即:
其中nc(p)代表非零向量的個數(shù)。
當(dāng)關(guān)鍵點信息和PAF值已知時,計算兩關(guān)鍵點線上的兩個關(guān)鍵點線向量和PAF向量之間的點積積分,從而計算出兩個關(guān)鍵點之間的相關(guān)性,計算公式如下:
對像素p進行采樣:
p(u)代表把j1到j(luò)2之間的像素點都取一遍.根據(jù)PCM得到離散的候選部位:,其中dmj表示第j類 身體部位的第m個關(guān)鍵點的位置,Nj表示肢體的候選部位的數(shù)量。匹配的目標(biāo)是要求一個人的候選部位和其他部位相連,定義變量用來表示連接,所以候選部位的連線集合為Z=,單獨考慮肢體c的兩個部位j1和j2,目的是找到總親和值最高的匹配方式,其計算方法為:
Ec表示肢體c所有匹配的總權(quán)重,Emn表示兩種關(guān)鍵點之間的相關(guān)性,Zc表示肢體c匹配的z子集.約束條件是為了表示一個關(guān)鍵點只能與另一類關(guān)鍵點直接相連,方法采用著名的匈牙利算法,計算最大權(quán)重即為最佳匹配方式。
每個階段訓(xùn)練的輸出都會作為下一個階段的輸入,不斷獲取最精確的特征,反向傳播精致來使得損失函數(shù)最小,損失函數(shù)的計算方法為:
網(wǎng)絡(luò)會自動調(diào)節(jié)損失loss,進行參數(shù)優(yōu)化,最終得出的這種模型對于骨骼識別具有很好的精度。
在得到關(guān)鍵點信息之后,需要對這些原始骨骼數(shù)據(jù)進行處理,提取需要的特征,然后將這些特征輸送到機器學(xué)習(xí)分類器中,對當(dāng)前所處的狀態(tài)進行分析,從而判斷當(dāng)前人員所處的一種狀態(tài),具體流程見圖3。
圖3 行為分析流程
(一)縮放坐標(biāo)。圖像經(jīng)Openpose輸出的原始關(guān)鍵點坐標(biāo)和具有不同的單位,需要進行縮放,縮放的目標(biāo)是為了使和具有相同單位以用來處理不同的圖像。
(二)去除關(guān)鍵點。在得到關(guān)鍵點信息之后,需要對這些原始骨骼數(shù)據(jù)進行處理,Openpose提取的骨骼有18個關(guān)鍵點,由于是對扶梯人員經(jīng)行一種異常行為分析,而人的行為主要由軀干來支配,面部上的關(guān)鍵點起不到任何作用,因此需要去除頭上五個點,分別是眼睛,耳朵和頭,這些關(guān)鍵點不僅對人的行為分析沒有太大的作用,反而會影響速度。
(三)刪除無用數(shù)據(jù)。比如說視頻的某一幀檢測不到脖子、胳膊和大腿等關(guān)鍵點,構(gòu)不成一個完整的骨架,那么這個骨骼數(shù)據(jù)沒有任何利用價值的,可以刪除。
(四)彌補骨骼某一處的殘缺。如果當(dāng)前幀的關(guān)鍵點信息中沒有胳膊上的某一個關(guān)鍵點,可以利用上一幀或者其他幀的這個關(guān)鍵點與其他關(guān)鍵點的位置距離來添加關(guān)鍵點信息。骨骼關(guān)鍵點之間的距離是一定的,通過添加相鄰幀相同部位之間的距是完全沒有問題的。
(五)降低維度。處理好的骨骼數(shù)據(jù)可以直接用來特征提取,例如前N幀關(guān)鍵點的拼接,頸部的移動速度和關(guān)節(jié)的移動速度等,這些特征可以直接提取,但是提取后維度會比較的高,采用主層次分析算法進行降維,對特征經(jīng)行簡化。
(六)DNN分類器。DNN意為深度神經(jīng)網(wǎng)絡(luò)[10],其結(jié)構(gòu)包含輸入層、隱藏層和輸出層3部分,其原理和感知機相似,一個線性關(guān)系加上一個激活函數(shù),激活函數(shù)有很多種,例如,Sigmoid、Relu等.DNN反向傳播算法使得模型自動調(diào)節(jié)參數(shù),不斷迭代優(yōu)化,得到最佳模型,使得分類結(jié)果更加準(zhǔn)確。通過查閱資料,借鑒了其他研究者設(shè)計的深度神經(jīng)網(wǎng)絡(luò)模型[11],對參數(shù)進行了調(diào)整,隱含層層數(shù)設(shè)置為3層,每層的神經(jīng)元數(shù)量為100,進行訓(xùn)練,輸出特征向量經(jīng)過Softmax得到每個動作類別的發(fā)生的概率,判斷當(dāng)前動作。當(dāng)識別準(zhǔn)確率的不再上升,損失最小,就得到一個最佳的模型,根據(jù)輸出動作類別標(biāo)簽分析當(dāng)前狀態(tài)下人員所處的一種姿態(tài)。
動作類別標(biāo)簽共設(shè)置了9個動作標(biāo)簽,當(dāng)出現(xiàn)某一動作時,會在圖像右上角位置顯示,動作類別標(biāo)簽是stand、walk、run、jump、sit、squat、kick、punch、wave,分別表示站立、行走、奔跑、跳躍、坐下、下蹲、踢、拳打、招手,在進行行為分析時,可以根據(jù)連續(xù)的動作來判定行為的發(fā)生,比如,在扶梯上踩空摔倒的過程伴隨著多種動作的發(fā)生,有kick、jump、sit(見圖4),采集了扶梯上人員的部分圖像信息,將圖像作為算法的輸入,得到結(jié)果如圖4,根據(jù)算法所識別出來的扶梯人員的一種動作,去分析判定當(dāng)前人員所處的一種姿態(tài),是處于跌倒或者是行走,或者是其他狀態(tài)。
圖4 動作識別結(jié)果
從圖中可以看出圖4(a)分類結(jié)果是屬于上樓梯的一種姿態(tài),圖4(b)是扶梯人員在下扶梯,可以看出有多種動作可能發(fā)生的概率,比如jump、kick,取概率最大為當(dāng)前所做出的動作,圖4(c)是上扶梯時抬腳的一個動作,從圖4(d)可以看出有摔倒現(xiàn)象的存在。
筆者提出了一種關(guān)于扶梯人員異常行為檢測的一種算法,從實驗結(jié)果可以看出,對復(fù)雜場景人體的行為動作識別具有很好的效果[12],對于避免安全事故的發(fā)生具有重大的意義.研究結(jié)果發(fā)現(xiàn),當(dāng)用窗口大小為五幀提取標(biāo)準(zhǔn)化特征數(shù)據(jù)進行訓(xùn)練后,在測試集上對9種動作識別的準(zhǔn)確率為99.4%,用窗口大小每秒一幀提取原始特征訓(xùn)練后,在測試集上對9種動作識別的準(zhǔn)確率為97.3%。識別準(zhǔn)確率都高于95%以上,也表明了特征的選取影響識別的精度。另一方面算法在很多方面也存在著不足,從結(jié)果也可以看出來這一現(xiàn)象,當(dāng)在圖像中存在有物體遮擋現(xiàn)象或者是肢體沒有完全暴露時,會出現(xiàn)難以識別的情況,這也是算法需要進一步改進的地方。