歐陽黎 林彤堯 程 鶯 彭冰莉 溫 和
1(國網(wǎng)湖南省電力有限公司供電服務(wù)中心(計(jì)量中心) 湖南 長(zhǎng)沙 410004) 2(智能電氣量測(cè)與應(yīng)用技術(shù)湖南省重點(diǎn)實(shí)驗(yàn)室 湖南 長(zhǎng)沙 410004) 3(湖南大學(xué)電氣與信息工程學(xué)院 湖南 長(zhǎng)沙 410000)
企業(yè)的服務(wù)質(zhì)量對(duì)客戶流量規(guī)模有著重大影響。近年來,為了提高企業(yè)的自身競(jìng)爭(zhēng)力,國家電網(wǎng)樹立“以客戶為中心,專業(yè),專注,持續(xù)改善”的核心價(jià)值觀。圍繞該核心價(jià)值觀,為更好地提升客戶滿意度,許多供電營業(yè)廳采用動(dòng)作識(shí)別技術(shù)檢測(cè)營業(yè)人員的服務(wù)錄像。與常用數(shù)據(jù)集[1-2]的傳統(tǒng)動(dòng)作識(shí)別不同的是,營業(yè)廳服務(wù)動(dòng)作識(shí)別有著以下兩個(gè)特點(diǎn):(1) 大部分的服務(wù)動(dòng)作場(chǎng)景是靜態(tài)且相似的,無法通過背景信息判別服務(wù)動(dòng)作。(2) 部分服務(wù)動(dòng)作在柜臺(tái)后進(jìn)行,存在著遮擋問題,且服務(wù)動(dòng)作的幅度很小,對(duì)動(dòng)作識(shí)別方法的靈敏度要求極高。圖1展示了傳統(tǒng)動(dòng)作識(shí)別的騎馬場(chǎng)景與營業(yè)廳職業(yè)站立與鞠躬服務(wù)動(dòng)作場(chǎng)景的特征。對(duì)于騎馬動(dòng)作,動(dòng)作識(shí)別方法可以無須判斷人物具體運(yùn)動(dòng)軌跡,僅依靠識(shí)別草原與馬等背景特征就能進(jìn)行識(shí)別。而營業(yè)廳服務(wù)動(dòng)作識(shí)別的背景基本相同,且營業(yè)人員沒有明顯位移變化,服務(wù)動(dòng)作的幅度較小,動(dòng)作識(shí)別難度較大。因此營業(yè)廳服務(wù)動(dòng)作識(shí)別有著很大的挑戰(zhàn)性。
圖1 傳統(tǒng)動(dòng)作識(shí)別的騎馬場(chǎng)景與營業(yè)廳站立與鞠躬服務(wù)動(dòng)作場(chǎng)景的特征
傳統(tǒng)的動(dòng)作識(shí)別方法大都是基于手工提取特征,例如HOG[3](Histogram of Oriented Gradients)、SIFT[4](Scale Invariant Feature Transform)和iDT[5](improved Dense Trajecto-ry)等。然而在面對(duì)大型數(shù)據(jù)集時(shí),手工提取特征時(shí)間開銷太大,同時(shí)也缺乏靈活與拓展性。因此手工提取特征的方法逐漸被深度神經(jīng)網(wǎng)絡(luò)方法替代。近年來,隨著深度學(xué)習(xí)方法的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)在金融[6]、水利[7]和計(jì)算機(jī)[8]等領(lǐng)域取得重大突破。在計(jì)算機(jī)視覺方面,2D-CNNs(Convolutional Neural Networks)作為深度網(wǎng)絡(luò)的代表網(wǎng)絡(luò)之一,因能提取RGB圖像的高級(jí)特征,迅速成為了目標(biāo)檢測(cè)、視覺理解等圖像領(lǐng)域的常用方法。Girshick等[9]提出R-CNN(Region Convolution Neural Network)進(jìn)行目標(biāo)檢測(cè),Donahue等[10]針對(duì)計(jì)算機(jī)的視覺理解提出遞歸神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。然而,與圖像識(shí)別不同,視頻動(dòng)作識(shí)別除了空間信息還有時(shí)間維度的信息。為了能識(shí)別視頻中的時(shí)空信息,Simonyan等[11]提出了雙流網(wǎng)絡(luò),其使用2D卷積對(duì)RGB圖像幀與光流圖分別在不同通道進(jìn)行特征提取。然而在動(dòng)作識(shí)別上,2D卷積無法充分利用時(shí)間信息。為此Ji等[12]在2D卷積上拓展了時(shí)間維度,引入了3D卷積的方法,隨后Tran等[13]提出了當(dāng)時(shí)3D卷積網(wǎng)絡(luò)的最優(yōu)結(jié)構(gòu)C3D(3D Convolution Network)結(jié)構(gòu),其通過將連續(xù)的視頻幀進(jìn)行堆疊,使用3D卷積核進(jìn)行時(shí)空特征提取。為了減少3D網(wǎng)絡(luò)的參數(shù)量和計(jì)算時(shí)間,Carreira等[14]結(jié)合inception網(wǎng)絡(luò)[15]的方法提出了效果更好的I3D網(wǎng)絡(luò)結(jié)構(gòu)。
但隨著深度網(wǎng)絡(luò)的不斷發(fā)展,為了應(yīng)對(duì)更大的數(shù)據(jù)集,需要深度網(wǎng)絡(luò)層數(shù)越來越多,產(chǎn)生梯度消失、過擬合等問題。為了解決這些問題,He等[16]提出了深度殘差網(wǎng)絡(luò)DRN(Deep Residual Network),其使用跨層連接的思想使得網(wǎng)絡(luò)在加深的同時(shí)錯(cuò)誤率不降反升。Hara等[17]探索了殘差網(wǎng)絡(luò)與3D卷積結(jié)合在動(dòng)作識(shí)別上的性能,3D殘差網(wǎng)絡(luò)(3D-ResNet)即使對(duì)幅度較小的動(dòng)作也有著較高的識(shí)別率。但僅使用RGB圖像幀作為輸入的深度卷積網(wǎng)絡(luò)存在著過于依賴訓(xùn)練集的目標(biāo)或場(chǎng)景信息[18]等問題。且在供電營業(yè)廳中,服務(wù)動(dòng)作的場(chǎng)景都是靜態(tài)相似的,視頻中包含的場(chǎng)景信息較少且相似,僅使用3D殘差網(wǎng)絡(luò)在服務(wù)動(dòng)作識(shí)別上顯得十分困難。
考慮到深度卷積網(wǎng)絡(luò)的識(shí)別率依賴于場(chǎng)景信息、服務(wù)動(dòng)作幅度較小和光流圖容易受噪聲影響等因素[19],本文采用時(shí)空雙流3D殘差網(wǎng)絡(luò)進(jìn)行服務(wù)動(dòng)作識(shí)別,其采用文獻(xiàn)[11]的雙流網(wǎng)絡(luò)結(jié)構(gòu)。第一個(gè)RGB通道采用能識(shí)別動(dòng)作幅度較小的3D殘差網(wǎng)絡(luò)從RGB幀中提取時(shí)空特征;第二個(gè)光流通道采用結(jié)構(gòu)簡(jiǎn)單的C3D網(wǎng)絡(luò)從光流圖中提取特征作為輔助時(shí)間特征。與文獻(xiàn)[11]中提到的平均融合法不同,本文根據(jù)兩個(gè)通道對(duì)每種服務(wù)動(dòng)作的正確率,采用加權(quán)平均法將兩個(gè)通道的預(yù)測(cè)分?jǐn)?shù)乘以對(duì)應(yīng)權(quán)重,將兩個(gè)通道分?jǐn)?shù)進(jìn)行融合得到最終的動(dòng)作識(shí)別預(yù)測(cè)分?jǐn)?shù)。
光流是二維成像中像素點(diǎn)的運(yùn)動(dòng)矢量場(chǎng),常用來檢測(cè)和估計(jì)目標(biāo)。其主要計(jì)算第t幀圖像中像素點(diǎn)到第t+Δt幀圖像對(duì)應(yīng)像素點(diǎn)的位置變化信息。當(dāng)營業(yè)人員做出動(dòng)作與攝像頭產(chǎn)生相對(duì)位移時(shí),便可以產(chǎn)生相應(yīng)的光流信息。該光流可以有效地消除背景、人物穿著等因素的影響。設(shè)圖像中像素點(diǎn)在(x,y)位置時(shí)的灰度值為I(x,y,t),根據(jù)光流亮度值恒定不變的約束可得公式:
I(x,y,t)=I(x+Δx,y+Δy,t+Δt)
(1)
將式(1)右邊進(jìn)行泰勒展開,忽略二階以后的項(xiàng),兩邊再同除dt可得光流公式:
(2)
式中:u、v分別為dx/dt、dy/dt,其代表著水平和垂直方向的光流值。但式(2)有兩個(gè)未知數(shù),通過一個(gè)方程是無法解出的,需要對(duì)其附加約束條件,光流約束計(jì)算方法通常分為稀疏與稠密光流法兩大類。其中LK算法是常用的稀疏光流法,其是對(duì)圖像幀一個(gè)局部像素點(diǎn)進(jìn)行光流計(jì)算,先將式(2)化為矩陣形式:
(3)
記式(3)為AV=b,然后對(duì)其進(jìn)行最小二乘法,再對(duì)其進(jìn)行加權(quán)重值W,最后可得LK光流公式:
V=(ATWA)-1ATWb
(4)
Gunnar Farneback[20]算法是稠密光流法,與稀疏光流法不同,其需要對(duì)整個(gè)圖像幀進(jìn)行光流矢量計(jì)算。在得到稠密光流場(chǎng)后,使用孟塞爾系統(tǒng)將其轉(zhuǎn)化為光流圖像。不同的運(yùn)動(dòng)強(qiáng)度、方向可分別用顏色的深淺、不同顏色表示。其算法簡(jiǎn)單描述如下:
算法1稠密光流法(Gunnar Farneback算法)
輸入:prev為圖片幀,V為單個(gè)圖像中每個(gè)像素的參數(shù)向量。
1.x←prev
# 圖片幀轉(zhuǎn)化為灰度圖
2.f(x)←xTAx+bTx+c
# 建立二項(xiàng)式模型
3.將f(x)參數(shù)化得到(b1,b2,…,b6)×r
4.B←a×(b1,b2,…,b6)
# 加入權(quán)重a
5.G←對(duì)B進(jìn)行對(duì)偶轉(zhuǎn)換
6.V←G-1
圖2為L(zhǎng)K算法與Gunnar Farneback算法光流圖。圖2(a)為鞠躬服務(wù)動(dòng)作的兩個(gè)RGB圖像幀,圖2(b)、圖2(c)分別為L(zhǎng)K算法光流圖和Gunnar Farneback算法光流圖。雖然Gunnar Farneback稠密光流法計(jì)算速度慢于LK稀疏光流法,但可以看出稠密光流法包含的信息更多。這是因?yàn)榫瞎?wù)動(dòng)作的動(dòng)作幅度很小,稀疏光流不能時(shí)刻有效地提取運(yùn)動(dòng)光流場(chǎng)。因此將稠密光流輸入作為融合信息能更好地提取模型的識(shí)別率。
圖2 LK算法與Gunnar Farneback算法光流圖
傳統(tǒng)的2D卷積網(wǎng)絡(luò)有很強(qiáng)的特征提取能力,其本質(zhì)是使用不同卷積核得到不同卷積特征圖。在第i層的第j個(gè)卷積特征圖的(x,y)位置的2D卷積計(jì)算公式為:
(5)
然而,傳統(tǒng)的2D卷積網(wǎng)絡(luò)不能很好捕捉時(shí)序上的信息。為了解決2D卷積網(wǎng)絡(luò)的缺陷,3D卷積網(wǎng)絡(luò)通過拓展時(shí)間維度,使用3D卷積核從連續(xù)幀中提取特征,使得每個(gè)特征圖都包含相鄰的連續(xù)幀的信息。在第i層的第j個(gè)卷積特征圖的(x,y,t)位置的3D卷積計(jì)算公式為:
(6)
圖3 2D卷積與3D卷積對(duì)比
3D殘差網(wǎng)絡(luò)是基于殘差網(wǎng)絡(luò)的跨層連接思想得到的。當(dāng)輸入x進(jìn)入時(shí),跨層連接結(jié)構(gòu)提供了允許輸入x繞過一層而移動(dòng)到序列中下一層的快捷連接。相比于通過一堆非線性卷積層擬合映射,殘差結(jié)構(gòu)的訓(xùn)練目標(biāo)更容易達(dá)到。圖4展示了跨層連接結(jié)構(gòu)。
圖4 跨層連接結(jié)構(gòu)
圖4中BN(Batch Normalization)與ReLU (Rectified Linear Unit)分別為批量歸一化和線性整流函數(shù)。BN的作用是使得每一層神經(jīng)網(wǎng)絡(luò)的輸入在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中保持均值為0、方差為1的正態(tài)分布,使得網(wǎng)絡(luò)訓(xùn)練速度加快。其算法如算法2所示。
算法2批量歸一化(Batch Normalization)
輸入:樣本xi,調(diào)節(jié)參數(shù)α、β,yi。
# 求每個(gè)樣本的均值
# 計(jì)算方差
# 對(duì)數(shù)據(jù)進(jìn)行歸一化
# 對(duì)輸入進(jìn)行平移與縮放
激活函數(shù)為ReLU,運(yùn)算速度快且能有效避免梯度消失和梯度爆炸等問題,其公式為:
(7)
3D殘差網(wǎng)絡(luò)具有多種不同層數(shù)的結(jié)構(gòu)。表1展示了3D殘差網(wǎng)絡(luò)的18層和34層的整體結(jié)構(gòu)。
表1 3D殘差網(wǎng)絡(luò)結(jié)構(gòu)
3D殘差網(wǎng)絡(luò)輸入為16個(gè)像素大小為112×112的連續(xù)幀。在卷積層,與C3D[13]類似,采用3×3×3的3D卷積核對(duì)其進(jìn)行特征提取,第一個(gè)卷積層在時(shí)間維度的步長(zhǎng)為1,其他維度的步長(zhǎng)均為2。在池化層采用平均池化的方法,使得提取的特征參數(shù)減少,保持某種特征圖不變(旋轉(zhuǎn)、伸縮、平移等)。在全連接層采用Softmax函數(shù)對(duì)樣本分類進(jìn)行預(yù)測(cè),其公式為:
(8)
式中:Ypq為第p個(gè)樣本屬于第q種動(dòng)作的預(yù)測(cè)概率;xpu為第p個(gè)樣本通過分類層后輸出向量中的第u個(gè)元素。
當(dāng)特征圖的數(shù)量增多時(shí),采用補(bǔ)零方法避免參數(shù)增多。在訓(xùn)練模型時(shí)采用隨機(jī)梯度下降法[21],損失函數(shù)為交叉熵函數(shù),通過最小化損失函數(shù)對(duì)模型進(jìn)行訓(xùn)練,其公式為:
(9)
本文服務(wù)動(dòng)作數(shù)據(jù)集由湖南省計(jì)量中心提供,拍攝地點(diǎn)為國網(wǎng)湖南省xx市供電營業(yè)廳,共有961個(gè)服務(wù)動(dòng)作視頻片段。數(shù)據(jù)集是從正面和側(cè)面兩個(gè)角度拍攝5位服務(wù)員做6種服務(wù)動(dòng)作得到的。服務(wù)動(dòng)作分別是坐下、職業(yè)站立、鞠躬、遞交材料、介紹服務(wù)內(nèi)容和握手。表2為各服務(wù)動(dòng)作的具體視頻片段數(shù)量。
表2 各服務(wù)動(dòng)作的具體視頻片段數(shù)量
與常用UCF101數(shù)據(jù)集類似,本文將視頻轉(zhuǎn)換成像素大小為320×240的視頻文件。為了更好地測(cè)試融合3D殘差網(wǎng)絡(luò),本文隨機(jī)將961個(gè)視頻按4∶1的比例分為訓(xùn)練集和測(cè)試集。圖5為數(shù)據(jù)集服務(wù)動(dòng)作。
圖5 數(shù)據(jù)集服務(wù)動(dòng)作
實(shí)驗(yàn)在Linux平臺(tái)下完成的,環(huán)境變量為Python 3.7,使用1塊GPU(2080Ti)訓(xùn)練網(wǎng)絡(luò)。實(shí)驗(yàn)前,分別進(jìn)行數(shù)據(jù)集預(yù)處理,使用OpenCV從RGB視頻中計(jì)算光流并用孟塞爾系統(tǒng)進(jìn)行上色得到光流圖;按固定幀數(shù)截取視頻,將圖像幀按照像素大小為112×112進(jìn)行隨機(jī)剪裁得到RGB圖像幀。
實(shí)驗(yàn)中,為了測(cè)試不同結(jié)構(gòu)的3D殘差網(wǎng)絡(luò)的識(shí)別率,分別對(duì)18、34和50層3D殘差網(wǎng)絡(luò)進(jìn)行訓(xùn)練。首先將連續(xù)的16幀RGB圖片作為3D殘差網(wǎng)絡(luò)的輸入。然后采用Kinetics的預(yù)訓(xùn)練模型防止過擬合和更容易訓(xùn)練網(wǎng)絡(luò)。設(shè)置初始學(xué)習(xí)率為0.1,動(dòng)量為0.9,權(quán)重衰減為0.001,batch size為64,訓(xùn)練持續(xù)250個(gè)epoch。最后訓(xùn)練完畢后,使用相同的測(cè)試集對(duì)3種3D殘差網(wǎng)絡(luò)進(jìn)行測(cè)試得到最優(yōu)網(wǎng)絡(luò)。為了得到光流通道的識(shí)別率,將16幀光流圖輸入C3D網(wǎng)絡(luò)結(jié)構(gòu)中,使用初始學(xué)習(xí)率為0.000 1,移動(dòng)平均衰減為0.999,最大迭代步長(zhǎng)分別設(shè)為500、1 000、1 500和3 000步進(jìn)行訓(xùn)練測(cè)試。得到兩個(gè)通道的最優(yōu)網(wǎng)絡(luò)后,使用加權(quán)融合方法得到最后的預(yù)測(cè)分?jǐn)?shù)。
為了評(píng)估不同結(jié)構(gòu)的3D殘差網(wǎng)絡(luò)在服務(wù)動(dòng)作數(shù)據(jù)集上的效果,本文分別對(duì)18層、34層和50層的3D殘差網(wǎng)絡(luò)進(jìn)行測(cè)試。測(cè)試結(jié)果如表3所示。
表3 不同結(jié)構(gòu)的3D殘差網(wǎng)絡(luò)識(shí)別率(%)
可以看出,識(shí)別率隨著3D殘差網(wǎng)絡(luò)深度的增加而增加。當(dāng)測(cè)試集的數(shù)量足夠時(shí),網(wǎng)絡(luò)的參數(shù)越多其學(xué)習(xí)服務(wù)動(dòng)作的能力越強(qiáng)。因此本文選用50層的3D殘差網(wǎng)絡(luò)作為RGB通道的網(wǎng)絡(luò)結(jié)構(gòu)。接著為了探究光流通道的C3D網(wǎng)絡(luò)服務(wù)動(dòng)作識(shí)別率,本文分別設(shè)置不同的最大迭代步長(zhǎng),測(cè)試結(jié)果如表4所示。
表4 C3D在不同最大迭代步長(zhǎng)下的識(shí)別率(%)
可以看出,C3D網(wǎng)絡(luò)的識(shí)別率在最大迭代步長(zhǎng)1 000后無明顯浮動(dòng),因此本文選擇識(shí)別率最高的最大迭代步長(zhǎng)1 500作為C3D網(wǎng)絡(luò)參數(shù)。雖然光流通道的整體識(shí)別率低于RGB通道接近10百分點(diǎn),但在實(shí)驗(yàn)中發(fā)現(xiàn),光流通道對(duì)肢體動(dòng)作幅度較大的服務(wù)動(dòng)作比RGB通道更敏感。例如,當(dāng)營業(yè)人員坐下時(shí),光流矢量場(chǎng)在營業(yè)人員的上半身產(chǎn)生明顯變化。圖6為坐下動(dòng)作的光流圖(從左至右為坐下動(dòng)作開始至結(jié)束的過程)。
圖6 坐下動(dòng)作的光流圖
這種明顯的變化使得光流通道在坐下和介紹服務(wù)內(nèi)容的兩個(gè)服務(wù)動(dòng)作的識(shí)別率高于RGB通道。表5為兩個(gè)通道分別在坐下和介紹服務(wù)動(dòng)作的識(shí)別率。
表5 坐下和介紹服務(wù)動(dòng)作的識(shí)別率(%)
因此通過加權(quán)融合的方式,將光流通道對(duì)肢體動(dòng)作幅度較大的服務(wù)動(dòng)作高識(shí)別率與RGB通道擁有穩(wěn)定的高識(shí)別率的兩個(gè)特點(diǎn)相結(jié)合,能有效提高對(duì)服務(wù)動(dòng)作的整體識(shí)別率。為了說明時(shí)空雙流3D殘差網(wǎng)絡(luò)的識(shí)別效果,將其與其他動(dòng)作識(shí)別方法在本文的服務(wù)動(dòng)作數(shù)據(jù)集上進(jìn)行對(duì)比,表6為不同方法的識(shí)別率對(duì)比。
表6 不同方法的識(shí)別率對(duì)比(%)
可以看出本文方法在服務(wù)動(dòng)作數(shù)據(jù)集上的識(shí)別率為90.65%,高于其他動(dòng)作識(shí)別方法,且仍有不少的提升空間。此結(jié)果也證明了時(shí)空雙流3D殘差網(wǎng)絡(luò)的有效性。
針對(duì)供電營業(yè)廳服務(wù)動(dòng)作識(shí)別存在的難題,構(gòu)建基于3D殘差網(wǎng)絡(luò)和C3D網(wǎng)絡(luò)的雙流時(shí)空3D殘差網(wǎng)絡(luò)融合方法。RGB通道使用3D殘差網(wǎng)絡(luò)提取信息豐富的RGB圖像提升對(duì)動(dòng)作幅度較小的識(shí)別率;光流通道使用C3D網(wǎng)絡(luò)提取光流圖特征作為輔助特征進(jìn)行融合。實(shí)驗(yàn)結(jié)果表明雙流時(shí)空3D殘差網(wǎng)絡(luò)對(duì)服務(wù)動(dòng)作識(shí)別有著較高的識(shí)別率。但是本文方法也存在不足之處,在后續(xù)的研究中還需對(duì)光流特征提取的速度進(jìn)行優(yōu)化,同時(shí)為了將本文模型更好地應(yīng)用到實(shí)際場(chǎng)景中,需要對(duì)模型進(jìn)行更多種類的服務(wù)動(dòng)作測(cè)試。