李 妍,楊 碩
(沈陽化工大學 計算機科學與技術學院,遼寧 沈陽 110020)
近年來,隨著人工智能的發展,智能家居進入迅猛發展時期。在這樣的大環境中,使用手勢控制家電逐漸成為潮流。本文提出在手勢中取一種特殊的手勢,即周期性揮手動作來控制家電。周期性揮手相對于其他在家居環境下的手勢有如下優勢:
(1)在家居環境中,人手往往只是環境中的一小片區域,揮動的雙手在靜態背景下更容易被攝像頭檢測到;
(2)揮手具有周期性特征,相對于其他手勢特征更為明顯,不容易產生歧義,不容易存在誤觸的情況;
(3)揮手作為人的常用動作,更為方便。
周期性揮手動作識別屬于動態手勢識別的特殊方向。目前常見的基于視覺的手勢識別主要有基于手部輪廓、基于膚色模型、基于多特征融合等。基于美國CMU Perceptual Computing Lab[1]開源的手部關鍵點模型能夠快速定位手部位置;李元[2]等人通過結合關鍵點模型和膚色模型對手勢進行識別;朱兆松[3]等人使用改進的SURF(Speeded-Up Robust Features)算法對目標區域和人手手形進行模板匹配,從而完成對視頻的分類;Zhou K[4]等人將膚色分割法與SVM(Support Vector Machine)分類器相結合,對手勢進行識別。但是受到背景、光照等的影響干擾較大,效果稍顯不足。隨著深度學習的發展,神經網絡也被用于對手勢進行分類。Cai[5]等人在手部姿態估計中引入了圖卷積神經網絡,通過學習時間及空間信息,對多個數據集進行了較好識別。崔虎[6]等人提出了一種基于異步多時域網絡模型的動態手勢識別方法。王粉花[7]等提出了一種I3D雙流三維網絡(Two-Stream Inflated 3D ConvNets)和CBAM(Convolutional Block Attention Module)注意力機制融合的動態手勢識別方法CBAM-I3D,對動態手勢識別的識別率達到了 90.76%,正確率有所提高。但以上方法均未對周期性揮手動作進行專門識別。
基于以上方法,本文提出了一種傳統方法,即背景消除建模方法與雙流卷積網絡相結合的周期性揮手識別算法。為減輕背景干擾,采用背景消除建模這一傳統方法將運動前景提取出來。雙流卷積網絡可以將空間流信息網絡和時間流信息網絡按一定的方法融合,進行分類。本文提出使用具有更深網絡層次的ResNet-18來代替其主干網絡,時間流和空間流的融合也選擇了更佳的融合方式,以求達到更高準確率。算法總流程如圖1所示。

圖1 算法總流程
為降低背景的干擾,提高檢測精度,本文首先對視頻中的運動目標進行了跟蹤和檢測,采用的方法是背景消除建模。背景消除建模是將視頻原來的背景與當前視頻幀進行比較做差值,將所獲圖像二值化,使背景變為全黑,前景為全白。由于人揮手時身體基本不動,所以身體也被視為背景,只有揮動的雙手作為前景圖像被提取出來。
背景消除建模有兩種代表性算法,一種是圖像分割,即GMM[8]高斯混合模型,另一種是KNN-K最近鄰算法。GMM高斯混合模型將圖像分為3~5個高斯模型,計算一個像素點與其他任何一個高斯模型的距離,若大于其2倍的標準差,則被視為前景運動物體;K最近鄰分類算法是指在特征空間中,如果一個樣本的K個最相鄰樣本中的大多數屬于某一個類別,則該樣本也屬于該類別,即每個樣本可以由最接近的K個相鄰樣本代表,同時具備此類樣本的特性。由于本文所用數據集類域的重疊較多,所以使用K最近鄰分類算法。
K最近鄰分類算法計算空間中的兩點使用歐式距離。在二維空間,兩點的歐氏距離用公式表示為:
拓展到多維空間,公式變為:
通過將預測點與所有點之間的距離進行計算并排序,選出前K個值較多的類別,然后通過交叉驗證選擇合適的K值,最后生成前景圖像。
單純的連續幀不能很好地判斷運動信息,于是將視頻轉化為光流圖像。光流圖像是由光流法提取的,光流法是目前研究物體運動的重要方法,它是指時變圖像中各像素點的瞬時運動速度,可以對運動目標圖像進行動態分析。
本文使用Horn-Schunck光流算法[9]提取光流圖像,HS算法求的是稠密光流,需要對每一個像素都計算光流值。算法基于兩種假設,第一是灰度不變假設,即不論物體是否運動,它在同一個點的圖像灰度均不會發生變化;第二是平滑光流場假設,總體圖像的光流場應該是平滑的。算法給定圖像序列I(x,y,t),u表示水平流,v表示垂流,HS光流法通過最小化能量函數求解光流場問題。能量函數定義為:
式中:Ix,Iy,It為圖像對x,y,t的導數;(Ixu+Iyv+It)是灰度變化因子;α2(‖?u‖2+‖?v‖2)是光滑因子。光流場問題的求解轉化為求最小值的問題。
圖2所示是視頻預處理后的圖像。

圖2 視頻預處理后的圖像
通過視頻進行行為識別,需要通過靜止幀提取空間和幀間運動信息。雙流卷積網絡通過獨立使用靜態圖像幀和幀間密集光流進行識別后的結果融合。通過多任務學習,結合時空信息的同時又提高了網絡性能。
雙流卷積網絡的結構分為時間流卷積網絡(Temporal Stream ConvNet)和空間流卷積網絡(Spatial Stream ConvNet)。空間流輸入的數據是單張靜態圖像,它表示每個幀的畫面,描述了目標與背景的空間分布信息以及單個幀的運動信息。時間流輸入的數據是多幀密集光流,多幀密集光流是多個相鄰幀之間的光流位移場,描述了幀間的運動信息。空間流網絡和時間流網絡均由5個卷積層、2個全連接層和一層softmax組成,最后將2個網絡的softmax輸出進行融合后分類。
為獲取更多特征信息,本文使用網絡層次更深的ResNet-18[10]網絡作為基本網絡。但是一味增加網絡層數可能會造成更高的訓練誤差,即網絡退化。殘差神經網絡的優勢在于引入了恒等映射,由層數過高產生的退化問題通過計算殘差解決。加入殘差網絡能夠訓練更深層次的網絡。
在殘差網絡中,輸入x,經過2個卷積層后,輸出H(x)=F(x)+x,在通過捷徑連接(Shortcut Connections)和第二個ReLU激活函數后,獲得輸出:
式中:w為權重參數;F(x,w)為非線性殘差映射。殘差學習模塊如圖3所示。

圖3 殘差學習模塊
將ResNet-18網絡與雙流卷積網絡結合,在提取RGB圖像和光流圖像后分別采用ResNet-18網絡提取空間特征和時間特征。以RGB圖像作為空間流網絡的輸入信息,用ResNet-18網絡提取人手的空間特征;同時以雙手揮舞的光流圖作為時間流網絡的輸入信息,用ResNet-18網絡提取揮手的時間特征。圖4表示融合后的雙流卷積網絡,圖5是ResNet-18網絡結構。

圖4 雙流卷積網絡

圖5 ResNet-18網絡結構
原始的雙流卷積網絡在時間流和空間流融合時多采用求和融合,而本文通過對比以下幾個不同的融合方式,選擇了卷積融合方式,準確率相比較其他融合方式略有提高。第一種是相加融合方式,即融合結果由通道數一致的特征圖1和特征圖2中對應點的像素值相加得到,這種方法用公式表示為:
式中:y1(i,j,d)表示圖像1在i,j空間點的像素值;y2(i,j,d)表示圖像2在i,j空間點的像素值;d表示通道數。第二種方式是最大值融合方式,即融合結果取自通道數一致的特征圖1和特征圖2中對應點像素值的最大值,這種方法用公式表示為:
第三種是加權平均融合方式,即融合結果由通道數一致的特征圖1和特征圖2中對應點的像素值加權平均得到,這種方式用公式表示為:
式中:ω1,ω2分別表示圖像1和圖像2的加權系數,當二者均為0.5時,加權平均融合就變成平均融合。最后一種方式是卷積融合方式,它是指先將通道數一致的特征圖1和特征圖2在同一位置進行堆疊,然后使用D個維度的卷積核對堆疊結果進行卷積,最后加上偏置,這種方式可以用公式表示為:
式中:f表示卷積核;b表示D維度的偏置;ycat表示堆疊后的結果。經過卷積核卷積后,融合后的特征圖維度重新變為D。
本文使用的數據集分為兩部分,一部分是完成至少一個周期的揮手動作的數據集,來自KTH數據庫,視頻FPS均為25,包含同一個人在近處、遠處等4個不同環境中的揮手動作。另一部分數據集來自florence3d_actions數據集,本文選取了與手部抬起動作有關的視頻作為負樣本。這些動作由于并未完成一個周期的揮手動作,可以與前一個數據集作對照。數據集共二百個視頻,將這些視頻先通過背景消除建模輸出前景,再生成RGB圖像與光流圖像,圖像共四千張,分辨率為1 000×750,輸入到雙流卷積網絡中,訓練集從中隨機選取70%,測試集選取20%,驗證集選取10%。
本文的實驗環境為:Windows 10 操作系統;CPU:AMD Ryzen 5 4600H;GPU:GTX 1650Ti Super;內存:16 GB。
背景消除建模算法由OpenCV(3.4.11)和Visual Studio 2017完成,交叉驗證后選取K為3。雙流卷積網絡使用Python語言完成,使用SGD優化器。RGB圖像和光流圖像制作由MATLAB 2018a使用Image Processing Toolbox工具箱完成。初始學習率設置為0.001,動量值設置為0.95,學習率每30輪衰減0.1,批次大小為4,epoch設置為500。損失函數為交叉熵損失函數:
式中,p(x)和q(x)分別表示真實概率分布和預測概率分布。
經過實驗,本文將用3個指標對性能進行評估,分別是精確率(Precision)、召回率(Recall)和準確率(Accuracy)。
計算公式分別為:
式中:TP表示將周期性揮手預測為周期性揮手的數量;FN表示將周期性揮手預測為非周期性揮手的數量;FP表示將非周期性揮手預測為周期性揮手的數量;TN表示將非周期性揮手預測為非周期性揮手的數量。
3.3.1 模型性能對比
本文對比了數據集在原始雙流卷積網絡、結合傳統方法的雙流卷積網絡以及使用ResNet-18結構的雙流卷積網絡的結果,具體對比見表1所列。由表1可以發現,通過不斷改進,對周期性揮手識別的準確率也在不斷提高。傳統方法的加入使目標前景被提取出來,ResNet-18網絡的加入使模型具有更深層次的網絡結構,恰當的時空雙流融合方式提高了識別準確率。

表1 模型性能對比 %
3.3.2 背景消除建模算法對準確率的影響
由于人所處的位置可能會受到光照條件等的影響,本文使用背景消除建模算法。背景消除建模算法將沒有發生運動的背景變為黑色,減輕了背景對識別的影響,使得空間流和時間流的識別準確率有所上升。表2所列表示背景消除建模算法對結果的影響。

表2 背景消除建模算法對準確率的影響 %
3.3.3 不同時空雙流融合方式對性能的影響
表3所列表示不同時空雙流融合方式對周期性揮手識別的影響。

表3 融合方式對比 %
從表3可以看出,使用卷積融合方式的效果最好,卷積融合方式將時空雙流特征融合的同時保持了圖像維度的不變性,相較于簡單的加法運算、取最大運算以及平均運算,能夠使圖像特征實現更好融合。
3.3.4 與已有算法對比
將本文使用算法與已有算法進行對比,對于周期性揮手識別的準確率見表4所列。

表4 與已有算法對比 %
由表4可知,本文提出的周期性揮手識別算法模型相比之前已有算法的識別準確率略有提升,本算法先排除了背景的干擾,再加上使用卷積融合的時空雙流融合方式進行分類,相比3D卷積網絡和傳統方法識別準確率均有不同程度的提升。而且因為非周期性揮手數據集的加入,使得周期性揮手和非周期性揮手的識別得以分開。
本文構建了一種基于傳統方法結合雙流卷積網絡的周期性揮手識別算法,該算法通過傳統方法提取前景,加深網絡層次,相較于原始的雙流卷積網絡識別準確率略有所上升,為家居環境的周期性揮手識別提供了一種較完善的算法。但由于數據集較小,并沒有使用更深層次的ResNet-50等,相信使用更高的網絡層次會得到更高的精確度。