黨偉超, 姚遠(yuǎn),白尚旺,高改梅,吳喆峰
(1.太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 山西 太原 030024; 2.精英數(shù)智科技股份有限公司, 山西 太原 030006)
據(jù)統(tǒng)計(jì),2004—2013年全國(guó)煤礦水害事故起數(shù)和死亡人數(shù)分別占事故總起數(shù)和總死亡人數(shù)的3.1%和8.1%[1]。對(duì)此,國(guó)家煤礦安全監(jiān)察局在2018年發(fā)布的新版《煤礦防治水細(xì)則》中規(guī)定煤礦應(yīng)采取“預(yù)測(cè)預(yù)報(bào)、有疑必探、先探后掘、先治后采”防治水原則。在探水作業(yè)中,煤礦普遍采用監(jiān)工人員全程觀看探水視頻的方式來(lái)對(duì)卸桿作業(yè)情況進(jìn)行監(jiān)控,效率低下,且極易出錯(cuò)。針對(duì)該問(wèn)題,本文提出利用深度學(xué)習(xí)技術(shù)中的三維卷積神經(jīng)網(wǎng)絡(luò)(3D Convolutional Neural Network,3DCNN)對(duì)探水作業(yè)中的卸桿動(dòng)作進(jìn)行識(shí)別,進(jìn)而減少監(jiān)工人員的工作量,同時(shí)達(dá)到減員增效、降低生產(chǎn)成本的目的。
傳統(tǒng)動(dòng)作識(shí)別方法一般分為動(dòng)作特征表征和動(dòng)作特征分類2個(gè)步驟[2]。動(dòng)作特征表征方法包括STIP[3]、SIFT[4-5]、HOG[6-7]和改進(jìn)稠密光流軌跡[8]等。動(dòng)作特征分類方法包括支持向量機(jī)[9]和神經(jīng)網(wǎng)絡(luò)[10]等。傳統(tǒng)動(dòng)作識(shí)別方法需要人工設(shè)計(jì)動(dòng)作特征,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,出現(xiàn)了基于深度學(xué)習(xí)的動(dòng)作識(shí)別方法。 JI Shuiwang等[11]提出將包含時(shí)空信息的圖片序列同時(shí)輸入3DCNN進(jìn)行動(dòng)作識(shí)別。D. Jeff 等[12]提出將包含動(dòng)作信息的圖片序列輸入CNN網(wǎng)絡(luò)進(jìn)行特征學(xué)習(xí),然后將學(xué)習(xí)結(jié)果輸入到長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)中實(shí)現(xiàn)動(dòng)作識(shí)別。S. Karen等[13]提出了雙流結(jié)構(gòu)CNN網(wǎng)絡(luò),2個(gè)CNN網(wǎng)絡(luò)分別在時(shí)間與空間上提取特征,空間流通過(guò)幀圖像進(jìn)行識(shí)別,時(shí)間流則以光流密度為主,將2種特征融合后再進(jìn)行分類處理。在上述3種基于深度學(xué)習(xí)的動(dòng)作識(shí)別方法中,利用3DCNN模型來(lái)進(jìn)行動(dòng)作識(shí)別具有模型簡(jiǎn)單、訓(xùn)練計(jì)算量小的優(yōu)點(diǎn)。
本文利用3DCNN模型來(lái)識(shí)別探水作業(yè)中的卸桿動(dòng)作,并在3DCNN模型中使用批量歸一化(Batch Normalization,BN)層,提高了識(shí)別準(zhǔn)確率。
動(dòng)作識(shí)別領(lǐng)域最常用的數(shù)據(jù)集是UCF101。探水作業(yè)中的卸桿動(dòng)作由一系列簡(jiǎn)單動(dòng)作組合而成,屬于組合動(dòng)作。為保證每種類型動(dòng)作分類準(zhǔn)確、類間差別明顯,需要對(duì)卸桿動(dòng)作進(jìn)行分解。將卸桿動(dòng)作分解為4類,如圖1所示。鉆機(jī)拔桿:鉆機(jī)將鉆桿從煤巖中拔出。扳手?jǐn)Q桿:施工人員使用管鉗將要卸下的鉆桿擰松。擰桿:鉆機(jī)或者施工人員(1個(gè)或者2個(gè))將鉆桿完全擰下。轉(zhuǎn)身放桿:施工人員雙手或者單手將鉆桿撤離鉆機(jī)工作臺(tái)并轉(zhuǎn)身放到一起。
(a) 鉆機(jī)拔桿
(b) 扳手?jǐn)Q桿
(c) 擰桿
(d) 轉(zhuǎn)身放桿
本文中視頻數(shù)據(jù)來(lái)自3個(gè)煤礦的11個(gè)不同場(chǎng)景,篩選前視頻總時(shí)長(zhǎng)為4.9 h。在制作數(shù)據(jù)集時(shí)兼顧不同的拍攝角度、拍攝距離、光照條件等,使模型具有較強(qiáng)的魯棒性。在同一個(gè)場(chǎng)景中每類動(dòng)作截取10段視頻。經(jīng)過(guò)篩選之后的數(shù)據(jù)集,每個(gè)類別的動(dòng)作包括110段視頻,共440段視頻。得到的數(shù)據(jù)集中每類動(dòng)作的視頻數(shù)量與公共數(shù)據(jù)集UCF101基本一致,可用于驗(yàn)證模型的泛化能力。
構(gòu)建的3DCNN模型主要由卷積層、池化層、BN層等組成,模型結(jié)構(gòu)見表1,其中視頻采樣幀數(shù)為10,卷積核尺寸為3×3×3。
(1)
3D卷積過(guò)程中,卷積核以固定步長(zhǎng)對(duì)視頻序列進(jìn)行卷積操作。本文模型在第1、2次和第3、4次進(jìn)行卷積操作時(shí)分別使用32個(gè)和64個(gè)不同的3D卷積核進(jìn)行卷積操作,以獲得視頻中更多的特征值。
表1 3DCNN 模型結(jié)構(gòu)Table 1 3DCNN model structure
池化層的作用是將特征向量聚合和降維,以達(dá)到降低網(wǎng)絡(luò)復(fù)雜度和減少訓(xùn)練計(jì)算量的目的。雖然輸出的特征映射數(shù)量與輸入的特征映射數(shù)量一致,但每個(gè)特征映射中的特征維數(shù)成倍減少。對(duì)于處理多張圖片數(shù)據(jù)來(lái)說(shuō),池化層同樣需要擴(kuò)展到三維。如果使用最大池化,那么在位置(m,n,l)的輸出為
(2)
式中:δ,ρ,?分別為最大值運(yùn)算中的迭代算子;S1,S2,S3分別為視頻序列中圖片的高、寬和所在視頻序列的長(zhǎng)度;xm×s+δ,n×t+ρ,l×w+?為池化區(qū)域內(nèi)數(shù)值的集合;s,t,w分別為池化層的長(zhǎng)、寬、高。
本文模型使用了2個(gè)最大池化層對(duì)特征映射進(jìn)行降維處理。
圖2 BN層前向傳導(dǎo)過(guò)程Fig.2 Forward conduction process of batch normalization layer
BN層實(shí)現(xiàn)方法是在每層輸入時(shí),插入歸一化層,將輸入數(shù)據(jù)歸一化為均值是0、方差是1的標(biāo)準(zhǔn)正態(tài)分布。圖2中階段①實(shí)現(xiàn)輸入數(shù)據(jù)的歸一化,由于層與層之間進(jìn)行歸一化處理后會(huì)改變數(shù)據(jù)分布,破壞學(xué)習(xí)特征,所以,利用階段②實(shí)現(xiàn)變換重構(gòu),以恢復(fù)該層學(xué)習(xí)特征。
2.1 從畫面的內(nèi)容來(lái)說(shuō),第八圖中,畫面的下部樹林中有一寺廟,后面有一條小路蛇行而上,路途中還有一個(gè)策杖的人正走向陡峭的山峰。石濤在這幅畫的題詞寫到:“玉骨冰心,鐵石為人。黃山之主,軒轅之臣?!背錆M了奇幻色彩的話語(yǔ)為畫面增加了許多神秘色彩,幻美而又真實(shí)。畫中各種姿態(tài)各異的怪石,如鬼、神、人、動(dòng)物等,尤其一顆似天都峰腳下的觀音石:它側(cè)身而站,穿寬衣,彎肘拿著一些樹枝。畫面唯美浪漫,生動(dòng)仙逸。
訓(xùn)練階段用每個(gè)mini-batch中的方差和均值來(lái)代替整個(gè)訓(xùn)練集的方差和均值,作為對(duì)整體的估計(jì)。測(cè)試階段,均值和方差不是針對(duì)某個(gè)批次(batch),而是針對(duì)整個(gè)數(shù)據(jù)集。因此,在訓(xùn)練中除了正常的前向傳播和反向求導(dǎo)外,還需記錄每個(gè)batch的均值和方差,以便訓(xùn)練完成后按式(3)與式(4)計(jì)算整體的均值和方差。
E[d]=EB[μB]
(3)
(4)
基于3DCNN的動(dòng)作識(shí)別方法在UCF101數(shù)據(jù)集上進(jìn)行分類,種類多達(dá)101種。煤礦探水作業(yè)動(dòng)作識(shí)別視為4分類問(wèn)題,將3DCNN模型全連接層節(jié)點(diǎn)減少為4個(gè),同時(shí)使用Softmax函數(shù)作為分類層的激活函數(shù)[15],確定探水作業(yè)卸桿動(dòng)作最終的識(shí)別結(jié)果。
首先,對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,從每段視頻中均勻抽取幾幀圖像作為此動(dòng)作的代表,并將這些圖片進(jìn)行一定程度的縮小,處理為相同尺寸,以降低其分辨率。然后,對(duì)視頻進(jìn)行訓(xùn)練,并保存訓(xùn)練好的權(quán)重文件。最后,將權(quán)重值導(dǎo)入3DCNN模型對(duì)測(cè)試集進(jìn)行測(cè)試,得出視頻的分類結(jié)果和此次訓(xùn)練的準(zhǔn)確率。3DCNN模型訓(xùn)練和識(shí)別過(guò)程如圖3所示。
圖3 3DCNN模型訓(xùn)練和識(shí)別過(guò)程Fig.3 3DCNN model training and recognition process
實(shí)驗(yàn)中采用了基于Python的深度學(xué)習(xí)框架Keras(以tensorflow為后端)構(gòu)建3DCNN模型,同時(shí)使用GPU(型號(hào)為NVIDIA GeForce RTX 2080Ti)對(duì)模型進(jìn)行加速訓(xùn)練。將數(shù)據(jù)集按照每個(gè)動(dòng)作類型4∶1的比例組成訓(xùn)練集和測(cè)試集,其中訓(xùn)練集為352個(gè),測(cè)試集為88個(gè)。
在4類動(dòng)作中,因作業(yè)人員工作習(xí)慣、鉆機(jī)型號(hào)等不同,視頻長(zhǎng)度區(qū)別較大,采樣幀數(shù)越多,提供給模型的信息越詳細(xì),但也增加了模型的復(fù)雜度和訓(xùn)練時(shí)長(zhǎng)。為此,從每個(gè)視頻中分別抽取5,10,15,20,25,30幀圖像,再利用OpenCV將每幀圖像尺寸轉(zhuǎn)換為32×32。在進(jìn)行模型訓(xùn)練時(shí),設(shè)置batch-size為20,模型迭代訓(xùn)練500次,結(jié)果見表2。
表2 不同采樣幀數(shù)的準(zhǔn)確率Table 2 Accuracy of different sample frames
從表2可看出,采樣幀數(shù)為5時(shí)準(zhǔn)確率最低,隨著采樣幀數(shù)的增加,準(zhǔn)確率會(huì)有一定程度的提高,而模型參數(shù)量和訓(xùn)練時(shí)長(zhǎng)都大幅增加。對(duì)于該模型來(lái)說(shuō),當(dāng)采樣幀數(shù)為10時(shí),既能保證準(zhǔn)確率,又能兼顧較少的模型參數(shù)量和訓(xùn)練時(shí)長(zhǎng)。
在確定采樣幀數(shù)的情況下,每幀圖像的分辨率越高,提供給模型的信息越豐富,但也會(huì)增加運(yùn)算的開銷和模型復(fù)雜度。為此,從每段視頻中抽取10幀圖像,利用OpenCV將這些圖像尺寸處理為16×16,32×32,64×64,128×128,并分別進(jìn)行訓(xùn)練。設(shè)置batch-size為20,模型迭代訓(xùn)練500次,結(jié)果見表3。
表3 不同分辨率的準(zhǔn)確率Table 3 Accuracy of different resolutions
從表3可看出,分辨率為16×16時(shí),準(zhǔn)確率最低;隨著分辨率的提高,準(zhǔn)確率也會(huì)提高,但也會(huì)增加模型參數(shù)量和訓(xùn)練時(shí)長(zhǎng)。綜合考慮準(zhǔn)確率、模型參數(shù)量和訓(xùn)練時(shí)長(zhǎng),將圖像的分辨率定為32×32。
為對(duì)比學(xué)習(xí)率對(duì)準(zhǔn)確率和收斂速度的影響,從每個(gè)視頻中均勻抽取10幀圖像,并將這些圖像尺寸處理為32×32。在訓(xùn)練時(shí),設(shè)置batch-size為20,學(xué)習(xí)率為0.000 1,0.000 5,0.001,模型迭代訓(xùn)練500次,結(jié)果如圖4所示。
圖4 不同學(xué)習(xí)率的準(zhǔn)確率Fig.4 Accuracy of different learning rates
從圖4可看出,學(xué)習(xí)率對(duì)迭代次數(shù)的影響可以忽略不計(jì);學(xué)習(xí)率為0.000 1時(shí),模型準(zhǔn)確率更為穩(wěn)定,最高準(zhǔn)確率為98.86%。
為了驗(yàn)證加入BN層的效果,從每個(gè)視頻中抽取10幀圖像,將圖像尺寸處理為32×32。在訓(xùn)練時(shí),設(shè)置batch-size為20,學(xué)習(xí)率為0.000 1,模型迭代訓(xùn)練500次,結(jié)果如圖5所示。
圖5 加入和未加入BN層的準(zhǔn)確率Fig.5 Accuracy of whether to add BN layer
從圖5可看出,在網(wǎng)絡(luò)中加入BN層,模型在迭代50次之后,準(zhǔn)確率基本穩(wěn)定,可以認(rèn)為模型已經(jīng)達(dá)到最佳的擬合效果,準(zhǔn)確率最高可達(dá)98.86%;未加入BN層時(shí),準(zhǔn)確率最高為86.36%。
提出一種基于3DCNN的煤礦探水作業(yè)卸桿動(dòng)作識(shí)別方法。3DCNN模型使用3D卷積層自動(dòng)完成動(dòng)作特征的提取,通過(guò)3D池化層對(duì)動(dòng)作特征進(jìn)行降維,通過(guò)Softmax分類處理實(shí)現(xiàn)煤礦探水作業(yè)中典型動(dòng)作的識(shí)別,并使用BN層提高了模型收斂速度和識(shí)別準(zhǔn)確率。實(shí)驗(yàn)對(duì)比了不同采樣幀數(shù)、分辨率、學(xué)習(xí)率及是否加入BN層時(shí)模型的準(zhǔn)確率。結(jié)果表明,設(shè)置采樣幀數(shù)為10幀、分辨率為32×32、學(xué)習(xí)率為0.000 1 時(shí),模型在加入BN層之后,3DCNN模型對(duì)卸桿動(dòng)作的識(shí)別準(zhǔn)確率最高可達(dá)98.86%。