劉電霆,梁桂賓,周運(yùn)剛
(1. 桂林理工大學(xué)機(jī)械與控制工程學(xué)院,廣西 桂林541004;2. 桂林理工大學(xué)南寧分院,廣西 南寧530000;3. 廣西科技大學(xué)機(jī)械與交通工程學(xué)院,廣西柳州545000)
眾所周知,相對(duì)于傳統(tǒng)的視頻監(jiān)控方式,利用計(jì)算機(jī)視覺技術(shù)實(shí)施監(jiān)控,大大提高了系統(tǒng)的自動(dòng)化、智能化程度。同時(shí),隨著計(jì)算機(jī)視覺的發(fā)展,識(shí)別人體動(dòng)作的準(zhǔn)確性和復(fù)雜性也在不斷提高。尤其是近幾年來,由于骨架精確位姿估計(jì)方法的成熟[1],利用骨架序列對(duì)人體行為進(jìn)行識(shí)別是目前研究的熱點(diǎn)。在制造領(lǐng)域,工人手部動(dòng)作的識(shí)別對(duì)判斷工人操作、監(jiān)控異常行為、事故預(yù)警等都具有重要意義。
近年來,國(guó)內(nèi)外研究者們對(duì)人體動(dòng)作、姿態(tài)識(shí)別問題進(jìn)行了一系列科學(xué)研究,研究方法主要包括人工特征方法和深度學(xué)習(xí)方法[2]。人工特征方法是指人工設(shè)計(jì)特征以實(shí)現(xiàn)動(dòng)作識(shí)別,首先是根據(jù)骨架序列的特點(diǎn)在個(gè)人認(rèn)知的基礎(chǔ)上設(shè)計(jì)出該序列特征,然后利用這些特征表征視頻內(nèi)連續(xù)的人體動(dòng)作。一般來說,這些人工特征都具有明確的物理意義,如關(guān)節(jié)軌跡的鏈碼、關(guān)節(jié)位置坐標(biāo)等。例如,文獻(xiàn)[3]提出一種SoCJ描述子來描述手勢(shì)特征,是將手關(guān)節(jié)坐標(biāo)序列展開成特征矩陣,并利用LibSVM軟件包進(jìn)行識(shí)別分類,在DHG數(shù)據(jù)集上取得了良好的識(shí)別效果。文獻(xiàn)[4]提出基于李群的骨架特征描述,通過將關(guān)節(jié)點(diǎn)轉(zhuǎn)換到李代數(shù)的向量空間實(shí)現(xiàn)手勢(shì)的分類,在MSR-Action3D、UTKinect-Action和Florence3D-Action三個(gè)數(shù)據(jù)集上取得了良好的識(shí)別效果。但人為設(shè)計(jì)的特征可能會(huì)因?yàn)槿说闹饔^臆想而忽略數(shù)據(jù)的客觀聯(lián)系,并且一般依賴于數(shù)據(jù),即面向特定識(shí)別任務(wù)。深度學(xué)習(xí)方法采用大量數(shù)據(jù)擬合的模型,避免了人工設(shè)計(jì)特征的要求,且具有一定程度的泛化能力,可以更好地表示動(dòng)作,因此能夠有效地自主學(xué)習(xí)和識(shí)別動(dòng)作。比如,文獻(xiàn)[5]提出了一種局部感知長(zhǎng)短期記憶(Long Short Term Memory, LSTM)網(wǎng)絡(luò),可以用來構(gòu)建人體各部位特征的長(zhǎng)期時(shí)間相關(guān)性模型。實(shí)驗(yàn)結(jié)果顯示,局部感知LSTM網(wǎng)絡(luò)在RGB+D數(shù)據(jù)集上的識(shí)別率高于其他人工特征識(shí)別方法。
針對(duì)工人手部動(dòng)作的檢測(cè)和識(shí)別方法,本文提出了一種時(shí)空?qǐng)D小波神經(jīng)網(wǎng)絡(luò)(Spatio-Temporal Graph Wavelet Neural Network, ST-GWNN)算法。本文主要聚焦于工人使用工具時(shí)的手部動(dòng)作,以手部骨架構(gòu)建拓?fù)鋱D,從而對(duì)手部動(dòng)作進(jìn)行檢測(cè)和識(shí)別,取得了良好的識(shí)別效果。
時(shí)空?qǐng)D卷積神經(jīng)網(wǎng)絡(luò)(Spatial Temporal Graph Convolutional Network, ST-GCN)是將圖卷積神經(jīng)網(wǎng)絡(luò)(Graph Convolutional Network, GCNN)運(yùn)用到基于骨架的動(dòng)作識(shí)別中的方法,是利用圖卷積將骨架序列映射到特征空間,以及利用時(shí)間卷積來學(xué)習(xí)關(guān)節(jié)軌跡信息,使得模型能夠表示各個(gè)類別的概率解。比如,文獻(xiàn)[6]將骨架視為關(guān)節(jié)拓?fù)鋱D,并運(yùn)用圖卷積建立模型。由于圖卷積能夠準(zhǔn)確融合相鄰關(guān)節(jié)的坐標(biāo)信息,因此能夠有效地將關(guān)節(jié)的空間信息映射到特征空間。骨架特征十分依賴空間位姿信息,當(dāng)相機(jī)伴隨采集對(duì)象大量運(yùn)動(dòng)時(shí)(如Kinetics數(shù)據(jù)集),幀與幀之間關(guān)節(jié)的相對(duì)位置會(huì)存在一定程度的失真,使得識(shí)別效果下降。文獻(xiàn)[7]提出了手勢(shì)圖卷積神經(jīng)網(wǎng)絡(luò),將圖卷積應(yīng)用于手勢(shì)識(shí)別,在DHG-14/28數(shù)據(jù)集和SHREC’17數(shù)據(jù)集上均具備了不錯(cuò)的辨識(shí)能力,并且辨識(shí)迅速,因此這種手勢(shì)圖卷積神經(jīng)網(wǎng)絡(luò)(Hand Gesture - Graph Convolutional Network, HG-GCN)技術(shù)可以應(yīng)用到實(shí)時(shí)場(chǎng)景。但相較于時(shí)空注意-殘差-時(shí)間卷積神經(jīng)網(wǎng)絡(luò)(Spatial Temporal Attention- Residual - Temporal Convolutional Network, STARes-TCN)[8],HG-GCN的學(xué)習(xí)能力較弱,需要更多的數(shù)據(jù)才能達(dá)到較好的識(shí)別效果。文獻(xiàn)[9]提出了一種雙流自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)(Two-stream Adaptive Graph Convolutional Network, 2s-AGCN)算法,同時(shí)利用一階鄰接節(jié)點(diǎn)和二階鄰接節(jié)點(diǎn)組成雙流神經(jīng)網(wǎng)絡(luò),克服了ST-GCN對(duì)骨架拓?fù)鋱D序列分類缺乏柔性的問題,同時(shí)也面臨著空間位姿依賴問題,對(duì)非固定設(shè)備錄制場(chǎng)景,識(shí)別效果不是十分理想。文獻(xiàn)[10]提出了結(jié)構(gòu)誘導(dǎo)型圖卷積(Structure-induced Graph Convolutional Network, Si-GCN)算法,考慮到身體不同部位之間存在接觸連接,將骨架圖分成部位的內(nèi)連接和外連接,使得Si-GCN能夠更準(zhǔn)確地連接骨架圖的鄰點(diǎn),從而更有效地聚合關(guān)節(jié)點(diǎn)的運(yùn)動(dòng)信息。與傳統(tǒng)的卷積類似,Si-GCN在融合高階的鄰接節(jié)點(diǎn)信息時(shí),會(huì)引入更多的噪聲,使得識(shí)別性能下降。另一方面,為了解決將整個(gè)骨架序列作為輸入時(shí)前饋網(wǎng)絡(luò)不能有效提取動(dòng)作間語義信息的問題,文獻(xiàn)[11]提出了反饋圖卷積神經(jīng)網(wǎng)絡(luò)(Feedback Graph Convolutional Network, FGCN)算法,將動(dòng)作序列分成若干段依次輸入模型,而每一階段的圖卷積結(jié)果會(huì)反饋給下一階段的圖卷積層,這使得圖卷積層能夠提取并融合每段動(dòng)作序列的高層語義信息,但每一階段需要進(jìn)行一次全連接層運(yùn)算,大大增加了計(jì)算成本。
最近,圖卷積成為了深度學(xué)習(xí)領(lǐng)域的研究熱點(diǎn)。卷積運(yùn)算作為文本、圖像等網(wǎng)格化數(shù)據(jù)處理的基本方法,在深度神經(jīng)網(wǎng)絡(luò)中驗(yàn)證了其可行性,但是卷積運(yùn)算無法直接在非網(wǎng)格化的無向圖中使用。為了能夠在無向圖上實(shí)現(xiàn)卷積運(yùn)算,文獻(xiàn)[12]提出以圖結(jié)構(gòu)的拉普拉斯矩陣取代卷積運(yùn)算,并據(jù)此完成了非網(wǎng)格化數(shù)據(jù)的圖卷積處理,但模型參數(shù)通常更加復(fù)雜。為了降低圖卷積的模型參數(shù)復(fù)雜度,文獻(xiàn)[13]用切比雪夫多項(xiàng)式逼近圖卷積核,在保持卷積局部性的同時(shí),可以大大減少參數(shù)量。在此基礎(chǔ)上,文獻(xiàn)[14]給出了一個(gè)有效的構(gòu)造更簡(jiǎn)單的圖卷積,但其模型參數(shù)過于簡(jiǎn)潔,導(dǎo)致分配到一階鄰域上的權(quán)重相同,這削弱了模型對(duì)空間相關(guān)性信息的敏感度。文獻(xiàn)[15]將經(jīng)典的遞歸神經(jīng)網(wǎng)絡(luò)推廣到圖卷積中,以實(shí)現(xiàn)對(duì)圖序列進(jìn)行建模,但容易出現(xiàn)過擬合現(xiàn)象,需要對(duì)數(shù)據(jù)進(jìn)行正則化處理。
在圖小波方面,文獻(xiàn)[16]為了提升小波變換的效率,提出一條能夠簡(jiǎn)化構(gòu)造圖小波的思路,但是需要對(duì)構(gòu)造的小波是否形成Riesz基進(jìn)行驗(yàn)證。文獻(xiàn)[17]為了避免進(jìn)行拉普拉斯特征分解,提出使用切比雪夫多項(xiàng)式逼近小波基,從而降低計(jì)算復(fù)雜度。文獻(xiàn)[18]利用圖小波編碼的局部信息和尺度相關(guān)信息,在不同尺度上識(shí)別群落結(jié)構(gòu),但對(duì)譜圖各分支的估計(jì)需要大量運(yùn)算成本。為了描述圖卷積的局部特性,文獻(xiàn)[19]利用小波變換取代傅里葉基的圖卷積,使得鄰點(diǎn)權(quán)重分配具有極高的柔性,但卷積核上的參數(shù)復(fù)雜度與節(jié)點(diǎn)數(shù)成正比。為了解決這個(gè)缺點(diǎn),本文在圖小波的基礎(chǔ)上,對(duì)卷積核進(jìn)行改進(jìn),提出了一階圖小波卷積,保留了超參數(shù)對(duì)鄰域范圍的調(diào)整特性,減小圖卷積的參數(shù)復(fù)雜度,并將其應(yīng)用于行為識(shí)別的問題上。
本文以人手動(dòng)作識(shí)別為主,論述動(dòng)作識(shí)別的模型建立方法。將人手骨架定義為關(guān)節(jié)拓?fù)鋱D,從而建立手關(guān)節(jié)動(dòng)態(tài)時(shí)間序列。直觀上,手關(guān)節(jié)由手骨連接在一起,手骨可表示為關(guān)節(jié)拓?fù)鋱D的連接邊,手關(guān)節(jié)的空間姿態(tài)可表示為無向圖輸入信號(hào),如圖1所示。在手骨圖Gt= (Vt,ε,A)中,Vt表示t時(shí)刻手骨拓?fù)鋱D的關(guān)節(jié)集合;ε表示關(guān)節(jié)頂點(diǎn)連接邊的集合;A ∈Rn×n表示手骨圖的鄰接矩陣,n表示圖譜的節(jié)點(diǎn)個(gè)數(shù)。
圖1 手部骨架拓?fù)鋱D
從數(shù)學(xué)角度來看,手關(guān)節(jié)和關(guān)節(jié)間連接的手骨構(gòu)成了一種天然的無向圖。本文將手關(guān)節(jié)信息通過圖小波卷積映射到特征空間,從而實(shí)現(xiàn)手部動(dòng)作的識(shí)別。
圖小波卷積采用小波作為基底,相比于采用傅里葉基的圖卷積,小波基可以使用切比雪夫多項(xiàng)式近似得到,因此擁有更高的變換效率[17]。由于圖小波基隨著鄰域擴(kuò)散,其權(quán)值逐漸衰減,所以小波基通常擁有更高的稀疏性。圖小波具有局部特性,即以每個(gè)節(jié)點(diǎn)為中心進(jìn)行卷積操作時(shí),中心節(jié)點(diǎn)只與鄰域內(nèi)的節(jié)點(diǎn)進(jìn)行特征融合[19]。圖小波的鄰域范圍與超參數(shù)s有關(guān),這使得圖小波更加靈活。圖小波基的變換公式[19]如下:
式中:U是拉普拉斯特征矩陣;Gs= diag(esλ1,··· ,
式中,卷積核F=diag(θ),θ ∈Rn,小波系數(shù)向量θ為模型訓(xùn)練參數(shù)。雖然卷積的運(yùn)算時(shí)間不變,但圖卷積的參數(shù)復(fù)雜度從O(n×p×q)減小到O(n+p×q)。
在式(4)中,圖小波的卷積核F=diag(θ),θ ∈Rn仍存在參數(shù)復(fù)雜度為O(n)的限制,其參數(shù)個(gè)數(shù)與節(jié)點(diǎn)數(shù)成正比。對(duì)卷積核進(jìn)行非參數(shù)化改進(jìn),圖小波的卷積核F可以定義為:
本文模型主要以ST-GCN框架為基礎(chǔ),主要由時(shí)空?qǐng)D小波(ST-GWNN)組成。其中,空間卷積由一階圖小波卷積組成,時(shí)間卷積為9×1的一維卷積。STGWNN圖卷積塊由空間卷積和時(shí)間卷積垂直堆棧而成,如圖2(b)所示。整體模型框架由10個(gè)ST-GWNN塊垂直堆棧而成。為減小梯度消失的影響,在每個(gè)ST-GWNN塊間引入殘差機(jī)制,具體如圖2(a)所示。
圖2(a)表示ST-GWNN的框架。將關(guān)節(jié)特征輸入ST-GWNN,最后輸出到SoftMax層,得到各種動(dòng)作
圖2 圖神經(jīng)網(wǎng)絡(luò)框架
通過實(shí)驗(yàn)對(duì)ST-GWNN的識(shí)別有效性進(jìn)行檢驗(yàn)。設(shè)定4種使用工具(游標(biāo)卡尺、六角扳手、大錘和螺絲刀)的手部動(dòng)作,并且設(shè)定玩智能手機(jī)時(shí)的動(dòng)作來模擬廠房?jī)?nèi)工人的違規(guī)施工情況。每種動(dòng)作有約50個(gè)樣本,并按照2:8的比率隨機(jī)抽取選出實(shí)驗(yàn)集和訓(xùn)練集。動(dòng)作視頻片段如圖3所示。實(shí)驗(yàn)還對(duì)前沿的識(shí)別算法進(jìn)行了對(duì)比,并分析超參數(shù)s對(duì)識(shí)別性能的影響。
圖3 機(jī)械數(shù)據(jù)集各動(dòng)作手骨架采樣的視頻片段
實(shí)驗(yàn)的軟件環(huán)境是Ubuntu 16.04操作系統(tǒng)和Tensorflow 2.1,計(jì)算機(jī)CPU為Intel Core i5-9600KF,顯卡為Nvidia RTX 2080 super。
本文用到的數(shù)據(jù)集是無手骨骼數(shù)據(jù)的原始錄像,車間里采集到的視頻同樣是不包含關(guān)節(jié)數(shù)據(jù)的圖像,所以必須對(duì)數(shù)據(jù)集做預(yù)處理以提取關(guān)節(jié)數(shù)據(jù)。首先通過開源庫openpose[1]提取出手關(guān)節(jié)數(shù)據(jù)。每個(gè)動(dòng)作序列的最大幀數(shù)為300幀,則各個(gè)錄像在獲取骨架的關(guān)節(jié)位置(x,y)后,形成一組(2,300,21)張量,其中21對(duì)應(yīng)手關(guān)節(jié)個(gè)數(shù)。實(shí)驗(yàn)中,如果一組數(shù)據(jù)不足300幀,則采用填補(bǔ)零(padding)的方法來滿足最大幀數(shù)要求。將經(jīng)過預(yù)處理的數(shù)據(jù)集分別放到ST-GCN和ST-GWNN中進(jìn)行訓(xùn)練,實(shí)驗(yàn)結(jié)果如表1所示。由2.3節(jié)可知,GWNN的主要參數(shù)是超參數(shù)s,表示圖卷積的作用域,即圖卷積的局部性。實(shí)驗(yàn)中依次調(diào)整超參數(shù)s,觀察其對(duì)識(shí)別效果的影響。
表1 ST-GCN和ST-GWNN的對(duì)比
從表1數(shù)據(jù)可知,在超參數(shù)s測(cè)試的范圍內(nèi),STGWNN的識(shí)別率最高可以達(dá)到83.33%,顯著高于STGCN。但是當(dāng)s= 0.1時(shí),ST-GWNN的識(shí)別率僅為68.75%,略低于ST-GCN模型。隨著s逐漸增大,STGWNN的識(shí)別率明顯改善。當(dāng)s= 0.5時(shí),識(shí)別率達(dá)到最大值。在s >0.5后,識(shí)別率又有所下降。由此可以直觀地看出,通過在一定范圍內(nèi)調(diào)整s能夠明顯改善識(shí)別能力。
在相同的數(shù)據(jù)集和神經(jīng)網(wǎng)絡(luò)框架下,ST-GWNN和ST-GCN的動(dòng)作識(shí)別率最多相差12.5%,這表明使用ST-GWNN辨識(shí)特定的操作動(dòng)作具有相當(dāng)大的優(yōu)勢(shì),而且其準(zhǔn)確性也體現(xiàn)了手勢(shì)動(dòng)作識(shí)別和異常行為檢測(cè)的可能性。由于超參數(shù)s與節(jié)點(diǎn)間的相關(guān)程度成正比,隨著s的增大,鄰接節(jié)點(diǎn)的范圍也在擴(kuò)大,因此通過調(diào)整超參數(shù)s就能靈活控制鄰域范圍。圖卷積在一定范圍內(nèi)融合鄰接關(guān)節(jié)的有效信息越多,識(shí)別率越高。s增大到一定程度后,更大的鄰域范圍引入更多的噪聲,使得識(shí)別率降低。從識(shí)別率波動(dòng)下降的趨勢(shì)可以看出,高階的鄰接節(jié)點(diǎn)的有效性是不太好確定的。例如在實(shí)驗(yàn)中,s大于0.5后,引入了更多的高階鄰點(diǎn),識(shí)別率有所下降。超參數(shù)s為0.8和0.9時(shí),鄰域范圍再次擴(kuò)大,對(duì)應(yīng)的識(shí)別率分別為70.80%和75.00%,由于引入了新的高階鄰點(diǎn),識(shí)別率有所回升。此外,在進(jìn)行數(shù)據(jù)集預(yù)處理時(shí),存在無法提取關(guān)節(jié)坐標(biāo)以及關(guān)節(jié)錯(cuò)位等問題,這表明輸入的張量存在大量的無效元素以及噪聲,此時(shí)ST-GWNN依然保持著良好的識(shí)別率,并能通過超參數(shù)s進(jìn)行優(yōu)化。
本文在圖小波卷積核的基礎(chǔ)上進(jìn)行參數(shù)化處理,并利用一階切比雪夫多項(xiàng)式來逼近卷積核,由此提出一階時(shí)空?qǐng)D小波神經(jīng)網(wǎng)絡(luò)ST-GWNN。相對(duì)于原有的GWNN[19],一階切比雪夫圖小波的參數(shù)數(shù)量與節(jié)點(diǎn)個(gè)數(shù)n無關(guān),這使得模型更加靈活,極大地減少了模型的學(xué)習(xí)參數(shù)。此外,ST-GWNN是通過調(diào)節(jié)超參數(shù)s而非多項(xiàng)式的階數(shù)來控制鄰域范圍,在一定程度上克服了多項(xiàng)式階數(shù)既定的情況下,卷積表現(xiàn)力不足的問題。
實(shí)驗(yàn)結(jié)果表明,在一定范圍內(nèi)調(diào)節(jié)超參數(shù)s可以提高動(dòng)作的識(shí)別率,使得ST-GWNN具有更高的柔性。此外,將ST-GWNN應(yīng)用于生產(chǎn)動(dòng)作的識(shí)別上,并監(jiān)控既定的違規(guī)行為,與ST-GCN相比,其識(shí)別效果更佳,這也表明將ST-GWNN運(yùn)用到生產(chǎn)過程中具備可行性。
ST-GWNN仍然存在提取的關(guān)節(jié)信息噪聲大的問題,這也是今后改進(jìn)的方向。針對(duì)提高識(shí)別率,有以下兩個(gè)改進(jìn)方向:1)針對(duì)神經(jīng)網(wǎng)絡(luò)本身進(jìn)行改進(jìn),如在深度網(wǎng)絡(luò)中添加更多策略,以提高模型的識(shí)別能力;2)提高關(guān)節(jié)特征提取的精度,減少輸入信息的稀疏性和噪聲。值得一提的是,生產(chǎn)過程的環(huán)境通常較為惡劣,這對(duì)骨架圖的提取極具挑戰(zhàn)性,這也是動(dòng)作識(shí)別能否實(shí)際應(yīng)用于生產(chǎn)過程檢測(cè)和事故預(yù)警的主要問題之一。