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