李 妍,楊 碩
(沈陽化工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,遼寧 沈陽 110020)
近年來,隨著人工智能的發(fā)展,智能家居進(jìn)入迅猛發(fā)展時期。在這樣的大環(huán)境中,使用手勢控制家電逐漸成為潮流。本文提出在手勢中取一種特殊的手勢,即周期性揮手動作來控制家電。周期性揮手相對于其他在家居環(huán)境下的手勢有如下優(yōu)勢:
(1)在家居環(huán)境中,人手往往只是環(huán)境中的一小片區(qū)域,揮動的雙手在靜態(tài)背景下更容易被攝像頭檢測到;
(2)揮手具有周期性特征,相對于其他手勢特征更為明顯,不容易產(chǎn)生歧義,不容易存在誤觸的情況;
(3)揮手作為人的常用動作,更為方便。
周期性揮手動作識別屬于動態(tài)手勢識別的特殊方向。目前常見的基于視覺的手勢識別主要有基于手部輪廓、基于膚色模型、基于多特征融合等?;诿绹鳦MU Perceptual Computing Lab[1]開源的手部關(guān)鍵點模型能夠快速定位手部位置;李元[2]等人通過結(jié)合關(guān)鍵點模型和膚色模型對手勢進(jìn)行識別;朱兆松[3]等人使用改進(jìn)的SURF(Speeded-Up Robust Features)算法對目標(biāo)區(qū)域和人手手形進(jìn)行模板匹配,從而完成對視頻的分類;Zhou K[4]等人將膚色分割法與SVM(Support Vector Machine)分類器相結(jié)合,對手勢進(jìn)行識別。但是受到背景、光照等的影響干擾較大,效果稍顯不足。隨著深度學(xué)習(xí)的發(fā)展,神經(jīng)網(wǎng)絡(luò)也被用于對手勢進(jìn)行分類。Cai[5]等人在手部姿態(tài)估計中引入了圖卷積神經(jīng)網(wǎng)絡(luò),通過學(xué)習(xí)時間及空間信息,對多個數(shù)據(jù)集進(jìn)行了較好識別。崔虎[6]等人提出了一種基于異步多時域網(wǎng)絡(luò)模型的動態(tài)手勢識別方法。王粉花[7]等提出了一種I3D雙流三維網(wǎng)絡(luò)(Two-Stream Inflated 3D ConvNets)和CBAM(Convolutional Block Attention Module)注意力機制融合的動態(tài)手勢識別方法CBAM-I3D,對動態(tài)手勢識別的識別率達(dá)到了 90.76%,正確率有所提高。但以上方法均未對周期性揮手動作進(jìn)行專門識別。
基于以上方法,本文提出了一種傳統(tǒng)方法,即背景消除建模方法與雙流卷積網(wǎng)絡(luò)相結(jié)合的周期性揮手識別算法。為減輕背景干擾,采用背景消除建模這一傳統(tǒng)方法將運動前景提取出來。雙流卷積網(wǎng)絡(luò)可以將空間流信息網(wǎng)絡(luò)和時間流信息網(wǎng)絡(luò)按一定的方法融合,進(jìn)行分類。本文提出使用具有更深網(wǎng)絡(luò)層次的ResNet-18來代替其主干網(wǎng)絡(luò),時間流和空間流的融合也選擇了更佳的融合方式,以求達(dá)到更高準(zhǔn)確率。算法總流程如圖1所示。
圖1 算法總流程
為降低背景的干擾,提高檢測精度,本文首先對視頻中的運動目標(biāo)進(jìn)行了跟蹤和檢測,采用的方法是背景消除建模。背景消除建模是將視頻原來的背景與當(dāng)前視頻幀進(jìn)行比較做差值,將所獲圖像二值化,使背景變?yōu)槿冢熬盀槿?。由于人揮手時身體基本不動,所以身體也被視為背景,只有揮動的雙手作為前景圖像被提取出來。
背景消除建模有兩種代表性算法,一種是圖像分割,即GMM[8]高斯混合模型,另一種是KNN-K最近鄰算法。GMM高斯混合模型將圖像分為3~5個高斯模型,計算一個像素點與其他任何一個高斯模型的距離,若大于其2倍的標(biāo)準(zhǔn)差,則被視為前景運動物體;K最近鄰分類算法是指在特征空間中,如果一個樣本的K個最相鄰樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于該類別,即每個樣本可以由最接近的K個相鄰樣本代表,同時具備此類樣本的特性。由于本文所用數(shù)據(jù)集類域的重疊較多,所以使用K最近鄰分類算法。
K最近鄰分類算法計算空間中的兩點使用歐式距離。在二維空間,兩點的歐氏距離用公式表示為:
拓展到多維空間,公式變?yōu)椋?/p>
通過將預(yù)測點與所有點之間的距離進(jìn)行計算并排序,選出前K個值較多的類別,然后通過交叉驗證選擇合適的K值,最后生成前景圖像。
單純的連續(xù)幀不能很好地判斷運動信息,于是將視頻轉(zhuǎn)化為光流圖像。光流圖像是由光流法提取的,光流法是目前研究物體運動的重要方法,它是指時變圖像中各像素點的瞬時運動速度,可以對運動目標(biāo)圖像進(jìn)行動態(tài)分析。
本文使用Horn-Schunck光流算法[9]提取光流圖像,HS算法求的是稠密光流,需要對每一個像素都計算光流值。算法基于兩種假設(shè),第一是灰度不變假設(shè),即不論物體是否運動,它在同一個點的圖像灰度均不會發(fā)生變化;第二是平滑光流場假設(shè),總體圖像的光流場應(yīng)該是平滑的。算法給定圖像序列I(x,y,t),u表示水平流,v表示垂流,HS光流法通過最小化能量函數(shù)求解光流場問題。能量函數(shù)定義為:
式中:Ix,Iy,It為圖像對x,y,t的導(dǎo)數(shù);(Ixu+Iyv+It)是灰度變化因子;α2(‖?u‖2+‖?v‖2)是光滑因子。光流場問題的求解轉(zhuǎn)化為求最小值的問題。
圖2所示是視頻預(yù)處理后的圖像。
圖2 視頻預(yù)處理后的圖像
通過視頻進(jìn)行行為識別,需要通過靜止幀提取空間和幀間運動信息。雙流卷積網(wǎng)絡(luò)通過獨立使用靜態(tài)圖像幀和幀間密集光流進(jìn)行識別后的結(jié)果融合。通過多任務(wù)學(xué)習(xí),結(jié)合時空信息的同時又提高了網(wǎng)絡(luò)性能。
雙流卷積網(wǎng)絡(luò)的結(jié)構(gòu)分為時間流卷積網(wǎng)絡(luò)(Temporal Stream ConvNet)和空間流卷積網(wǎng)絡(luò)(Spatial Stream ConvNet)??臻g流輸入的數(shù)據(jù)是單張靜態(tài)圖像,它表示每個幀的畫面,描述了目標(biāo)與背景的空間分布信息以及單個幀的運動信息。時間流輸入的數(shù)據(jù)是多幀密集光流,多幀密集光流是多個相鄰幀之間的光流位移場,描述了幀間的運動信息。空間流網(wǎng)絡(luò)和時間流網(wǎng)絡(luò)均由5個卷積層、2個全連接層和一層softmax組成,最后將2個網(wǎng)絡(luò)的softmax輸出進(jìn)行融合后分類。
為獲取更多特征信息,本文使用網(wǎng)絡(luò)層次更深的ResNet-18[10]網(wǎng)絡(luò)作為基本網(wǎng)絡(luò)。但是一味增加網(wǎng)絡(luò)層數(shù)可能會造成更高的訓(xùn)練誤差,即網(wǎng)絡(luò)退化。殘差神經(jīng)網(wǎng)絡(luò)的優(yōu)勢在于引入了恒等映射,由層數(shù)過高產(chǎn)生的退化問題通過計算殘差解決。加入殘差網(wǎng)絡(luò)能夠訓(xùn)練更深層次的網(wǎng)絡(luò)。
在殘差網(wǎng)絡(luò)中,輸入x,經(jīng)過2個卷積層后,輸出H(x)=F(x)+x,在通過捷徑連接(Shortcut Connections)和第二個ReLU激活函數(shù)后,獲得輸出:
式中:w為權(quán)重參數(shù);F(x,w)為非線性殘差映射。殘差學(xué)習(xí)模塊如圖3所示。
圖3 殘差學(xué)習(xí)模塊
將ResNet-18網(wǎng)絡(luò)與雙流卷積網(wǎng)絡(luò)結(jié)合,在提取RGB圖像和光流圖像后分別采用ResNet-18網(wǎng)絡(luò)提取空間特征和時間特征。以RGB圖像作為空間流網(wǎng)絡(luò)的輸入信息,用ResNet-18網(wǎng)絡(luò)提取人手的空間特征;同時以雙手揮舞的光流圖作為時間流網(wǎng)絡(luò)的輸入信息,用ResNet-18網(wǎng)絡(luò)提取揮手的時間特征。圖4表示融合后的雙流卷積網(wǎng)絡(luò),圖5是ResNet-18網(wǎng)絡(luò)結(jié)構(gòu)。
圖4 雙流卷積網(wǎng)絡(luò)
圖5 ResNet-18網(wǎng)絡(luò)結(jié)構(gòu)
原始的雙流卷積網(wǎng)絡(luò)在時間流和空間流融合時多采用求和融合,而本文通過對比以下幾個不同的融合方式,選擇了卷積融合方式,準(zhǔn)確率相比較其他融合方式略有提高。第一種是相加融合方式,即融合結(jié)果由通道數(shù)一致的特征圖1和特征圖2中對應(yīng)點的像素值相加得到,這種方法用公式表示為:
式中:y1(i,j,d)表示圖像1在i,j空間點的像素值;y2(i,j,d)表示圖像2在i,j空間點的像素值;d表示通道數(shù)。第二種方式是最大值融合方式,即融合結(jié)果取自通道數(shù)一致的特征圖1和特征圖2中對應(yīng)點像素值的最大值,這種方法用公式表示為:
第三種是加權(quán)平均融合方式,即融合結(jié)果由通道數(shù)一致的特征圖1和特征圖2中對應(yīng)點的像素值加權(quán)平均得到,這種方式用公式表示為:
式中:ω1,ω2分別表示圖像1和圖像2的加權(quán)系數(shù),當(dāng)二者均為0.5時,加權(quán)平均融合就變成平均融合。最后一種方式是卷積融合方式,它是指先將通道數(shù)一致的特征圖1和特征圖2在同一位置進(jìn)行堆疊,然后使用D個維度的卷積核對堆疊結(jié)果進(jìn)行卷積,最后加上偏置,這種方式可以用公式表示為:
式中:f表示卷積核;b表示D維度的偏置;ycat表示堆疊后的結(jié)果。經(jīng)過卷積核卷積后,融合后的特征圖維度重新變?yōu)镈。
本文使用的數(shù)據(jù)集分為兩部分,一部分是完成至少一個周期的揮手動作的數(shù)據(jù)集,來自KTH數(shù)據(jù)庫,視頻FPS均為25,包含同一個人在近處、遠(yuǎn)處等4個不同環(huán)境中的揮手動作。另一部分?jǐn)?shù)據(jù)集來自florence3d_actions數(shù)據(jù)集,本文選取了與手部抬起動作有關(guān)的視頻作為負(fù)樣本。這些動作由于并未完成一個周期的揮手動作,可以與前一個數(shù)據(jù)集作對照。數(shù)據(jù)集共二百個視頻,將這些視頻先通過背景消除建模輸出前景,再生成RGB圖像與光流圖像,圖像共四千張,分辨率為1 000×750,輸入到雙流卷積網(wǎng)絡(luò)中,訓(xùn)練集從中隨機選取70%,測試集選取20%,驗證集選取10%。
本文的實驗環(huán)境為:Windows 10 操作系統(tǒng);CPU:AMD Ryzen 5 4600H;GPU:GTX 1650Ti Super;內(nèi)存:16 GB。
背景消除建模算法由OpenCV(3.4.11)和Visual Studio 2017完成,交叉驗證后選取K為3。雙流卷積網(wǎng)絡(luò)使用Python語言完成,使用SGD優(yōu)化器。RGB圖像和光流圖像制作由MATLAB 2018a使用Image Processing Toolbox工具箱完成。初始學(xué)習(xí)率設(shè)置為0.001,動量值設(shè)置為0.95,學(xué)習(xí)率每30輪衰減0.1,批次大小為4,epoch設(shè)置為500。損失函數(shù)為交叉熵?fù)p失函數(shù):
式中,p(x)和q(x)分別表示真實概率分布和預(yù)測概率分布。
經(jīng)過實驗,本文將用3個指標(biāo)對性能進(jìn)行評估,分別是精確率(Precision)、召回率(Recall)和準(zhǔn)確率(Accuracy)。
計算公式分別為:
式中:TP表示將周期性揮手預(yù)測為周期性揮手的數(shù)量;FN表示將周期性揮手預(yù)測為非周期性揮手的數(shù)量;FP表示將非周期性揮手預(yù)測為周期性揮手的數(shù)量;TN表示將非周期性揮手預(yù)測為非周期性揮手的數(shù)量。
3.3.1 模型性能對比
本文對比了數(shù)據(jù)集在原始雙流卷積網(wǎng)絡(luò)、結(jié)合傳統(tǒng)方法的雙流卷積網(wǎng)絡(luò)以及使用ResNet-18結(jié)構(gòu)的雙流卷積網(wǎng)絡(luò)的結(jié)果,具體對比見表1所列。由表1可以發(fā)現(xiàn),通過不斷改進(jìn),對周期性揮手識別的準(zhǔn)確率也在不斷提高。傳統(tǒng)方法的加入使目標(biāo)前景被提取出來,ResNet-18網(wǎng)絡(luò)的加入使模型具有更深層次的網(wǎng)絡(luò)結(jié)構(gòu),恰當(dāng)?shù)臅r空雙流融合方式提高了識別準(zhǔn)確率。
表1 模型性能對比 %
3.3.2 背景消除建模算法對準(zhǔn)確率的影響
由于人所處的位置可能會受到光照條件等的影響,本文使用背景消除建模算法。背景消除建模算法將沒有發(fā)生運動的背景變?yōu)楹谏?,減輕了背景對識別的影響,使得空間流和時間流的識別準(zhǔn)確率有所上升。表2所列表示背景消除建模算法對結(jié)果的影響。
表2 背景消除建模算法對準(zhǔn)確率的影響 %
3.3.3 不同時空雙流融合方式對性能的影響
表3所列表示不同時空雙流融合方式對周期性揮手識別的影響。
表3 融合方式對比 %
從表3可以看出,使用卷積融合方式的效果最好,卷積融合方式將時空雙流特征融合的同時保持了圖像維度的不變性,相較于簡單的加法運算、取最大運算以及平均運算,能夠使圖像特征實現(xiàn)更好融合。
3.3.4 與已有算法對比
將本文使用算法與已有算法進(jìn)行對比,對于周期性揮手識別的準(zhǔn)確率見表4所列。
表4 與已有算法對比 %
由表4可知,本文提出的周期性揮手識別算法模型相比之前已有算法的識別準(zhǔn)確率略有提升,本算法先排除了背景的干擾,再加上使用卷積融合的時空雙流融合方式進(jìn)行分類,相比3D卷積網(wǎng)絡(luò)和傳統(tǒng)方法識別準(zhǔn)確率均有不同程度的提升。而且因為非周期性揮手?jǐn)?shù)據(jù)集的加入,使得周期性揮手和非周期性揮手的識別得以分開。
本文構(gòu)建了一種基于傳統(tǒng)方法結(jié)合雙流卷積網(wǎng)絡(luò)的周期性揮手識別算法,該算法通過傳統(tǒng)方法提取前景,加深網(wǎng)絡(luò)層次,相較于原始的雙流卷積網(wǎng)絡(luò)識別準(zhǔn)確率略有所上升,為家居環(huán)境的周期性揮手識別提供了一種較完善的算法。但由于數(shù)據(jù)集較小,并沒有使用更深層次的ResNet-50等,相信使用更高的網(wǎng)絡(luò)層次會得到更高的精確度。