張勛,陳亮,胡誠,孫韶媛
(東華大學信息科學與技術學院,上海201620)
根據最新全國人口普查資料表明,我國有1.5億聽力言語障礙人群,而聽力言語殘疾人群已達到2057萬人,約占全國總人口的1.57%。手勢是聾啞人用手勢代替正常言語進行交流的一種有效方式。研究手勢識別能幫助聾啞人,尤其是一些未得到良好教育的聾啞人之間的交流,同時也能幫助聾啞人與正常人之間的交流;其次,手勢識別是人機交互的一種便利的方式,研究手勢識別能促進機械智能運作、移動設備終端的操作、門禁系統、遠程控制等其他領域的發展;手勢識別的進一步研究,還可以提高計算機在人類語言理解的程度。
研究者在靜態手勢識別領域有著許多探索。2011年Reyes[1]等人從基于Kinect深度圖像對不同骨骼節點訓練對應權重,利用特征加權的DTW算法,在5類手勢上通過交叉驗證得到68%的識別率。2013年Chai等人[2]通過對手的三維軌跡匹配的方法進行239個中國手勢詞匯的識別,達到了83.51%的準確率。2016年中國科學技術大學的張繼海[3]在對手勢軌跡處理后利用HOG提取手型特征后利用改進的隱馬爾可夫模型(HMM)進行建模,最后在用基于幀平均概率融合與支持向量機的融合方法實現手勢識別,準確率方面也取得了比較不錯的效果。
以上方法在準確率方面取得了不錯的進步,但要滿足靜態手勢的實時識別要求、識別速度和準確率有待提升。因為人手骨架不統一、手型多變、手勢詞匯量大的特點,其特征信息很難靈活的獲得,人工通過建模等方式設計手勢描述特征的過程十分繁瑣、無法深度挖掘更高層次、更多維度的特征信息,這就導致基于傳統方法的模型范性差、很難達到實時檢測目的。
深度學習模型[4]是一種突破性的技術,尤其是它在機器學習領域的表現。為了達到模式分析和分類這樣的目的,它的有監督和無監督的特征提取和轉換是由多層非線性的組合去完成的。許多國內外科研機構的研究人員在深度學習領域進行了廣泛的研究,其應用方面也做了大量的拓展,效果突出的領域主要表現在語音、圖像等領域。Ross B.Girshick等人提出區域卷積神經網絡(R-CNN)[5],快速區域卷積神經網絡(Fast R-CNN)[6],加速區域卷積神經網絡(Faster R-CNN)[7]。這些方法成為深度學習中檢測識別領域的里程碑。
盡管以上方法在某些單一方面表現不錯,例如準確率方面,但對于單個常規嵌入式系統來講,計算負荷還是過大,即使用上高端硬件的嵌入式系統,要滿足實時或接近實時的應用難度也相當大,再或者是以犧牲檢測精度來換取時間。2016年Wei Liu等人[8]在ECCV提出了SSD(Single Shot MultiBox Detector)方法。該方法沒有采用區域建議(RPN),而是用小卷積核去預測特征圖上一組默認邊界和類別分數及位置偏移,并且從額外卷積層及基礎網絡層VGG16網絡的最后一層的特征圖上生成不相同的預測,最后分離的預測結果是依據不相同的的寬高來完成。
本文受Wei Liu文獻的方法啟發,針對實時手勢檢測要求對SSD網絡進行優化,提出ASSD模型:將原SSD網絡中用于特征提取的基礎網絡VGG16更改為去掉最后兩層全連接層的AlexNet網絡,并對AlexNet網絡結構做了修改。因為手勢識別的目標相比自然圖像識別的目標而言沒有那么復雜,采用略淺層次的深度學習特征提取網絡在會保證識別準確率的同時可提升整個網絡的識別速率。本文第2小節給出了ASSD網絡的結構圖,并給出了修改的特征提取網絡AlexNet的結構;第3小節給出了實驗過程及結果分析,第4小節為結論。
圖1為算法流程圖:將靜態手勢訓練集及對應的真實標簽文件送入ASSD網絡進行迭代學習,通過調整參數,找到效果好的模型作為最終模型,用于手勢識別。

圖1 算法流程圖
本文提出的網絡整體結構如圖2所示。

圖2 ASSD整體框架示例

圖3 網絡基礎層:改進的AlexNet
該網絡結構有兩個部分組成:基礎網絡層(特征提取層)和額外卷積特征層。
網絡基礎層是一個類似AlexNet[9]網絡的結構,去掉了最后的全連接層,共有5層,調整策略有:更改部分卷積核大小;使用更小的卷積核可以提取到手型的細節變化;使用1x1大小的卷積核,步長為1,填充邊界為0,這樣可以保證網絡深度、減小模型誤差。該網絡結構示意圖如圖3所示。
額外特征提取連接網絡添加到截斷的基礎網絡末尾,為一個多層網絡,其中有8層為卷積層和1層下采樣池化層(均值池化)。這些層的尺度逐漸減小,用以得到多尺度的預測值。
ASSD方法基于前饋卷積網絡,除基礎網絡特征提取層改變外,其他沿用了SSD方法的特征選擇和匹配策略。
ASSD架構圖,如圖4所示。

圖4 SSD架構
在訓練網絡期間,輸入ASSD網絡的僅是每個對象的圖像和對應的真實標簽框,如圖4(a)所示。卷積部分,ASDD網絡會在不同尺度的特征圖中估測各個位置上不同橫寬比的小集合(如4個)默認框,如圖4(b)和圖(c)所示。各個默認框中,需要得到全部形狀偏移和置信度,那就要預測全部對象的類別((c 1,c2,...,cp))。在訓練時,首先完成的是默認框與真實標簽框匹配動作。(例如,貓和狗被兩個默認框匹配到,這些匹配到的框視為正,其余視為負)。對于整個模型,用位置信損失(如Softmax)和置損失(如Smooth L1)的加權和的形式來表示總損失L。
基于前饋卷積網絡的ASSD方法,會產生固定大小的邊界框集合以及框中對象類別的分數,再通過一個非最大化抑制步驟產生最終的檢測。網絡如圖2所示,本文提出的ASSD網絡基礎網絡為改進的AlexNet網絡;輔助網絡產生以下主要特征的檢測:
(1)多尺度特征圖檢測:在去掉全連接層AlexNet的基礎網絡末尾增加額外的卷積特征層,其特征是在逐漸減小的特征層中產生不同尺度檢測預測值。各個特征層與檢測的卷積模型不是一一對應的關系。
(2)檢測使用卷積預測器:如圖2中所示,在各個額外卷積特征層和去全連接層的AlexNet網絡特征層上使用一組濾波器去卷積這些特征層從而生成預測集合。預測集合具體生成規則是:對于m×n大小的、并且具有p個通道的特征層,卷積核大小則為3×3×p,卷積操作后,生成該框中目標類別分數、或是代表相對于默認框的坐標偏移量,并在每個m×n大小區域上進行卷積操作,產生一個輸出值。測量的邊界框偏移輸出值是相對于默認框的,而默認框位置則是相對于特征圖的。
(3)默認框與寬高比:默認框如圖4,關聯一組默認邊界框與頂層網絡每個特征圖單元。固定各個框實例相對于其對應單元格的位置是通過在特征圖中用默認框作卷積運算實現的。相對于單元格中的默認框形狀的偏移和每個框中實例的每類分數,是可以在各個特征映射單元中預測的。
訓練ASSD關鍵在于訓練圖像中的真實標簽需要賦予到那些固定輸出的默認框上:
(1)匹配策略:訓練時,需建立真實標簽和默認框之間的對應關系,通過默認框與真實標簽Jaccard匹配重疊程度來確定這一默認框,例如匹配重疊程度高于某閾值0.5。
(2)訓練目標:ASSD訓練的目標函數,源自Multi-Box[10-11]的目標函數。第i個默認框與p類別目標第j個真實標簽的匹配用表示,相對的若不匹配則通過這個匹配策略可知,必然這就表示第j個真實標簽有可能匹配多個默認框。總目標損失函數L(x,c,l,g)是位置損失Lloc和置信損失Lconf的加權和,如式1所示:

式中,N表示匹配默認框的數量,x表示是以圖像作為輸入的變量。
位置損失Lloc是一個Smooth L1[6]損失,它介于預測框(l)和真實標簽值框(g)參數之間,回歸邊界框d的中心(cx,cy)以及其寬度w和高度h的偏移量,如式(2)所示:

Softmax損失對多類別置信(c)和權重項α設置為1的交叉驗證構成了置信損失Lconf,如式3所示:

(3)選擇默認框的比例以及橫寬比:單個網絡中不同層的特征圖進行預測以及在所有對象尺度上共享參數可以減少計算與內存需求,并且,本網絡中特征圖的特定位置來負責圖像中特定的區域和物體特定尺寸,這樣默認框不必與每層中感受野對應。通過預測多組分別在許多特征圖的所有位置上不同尺寸和寬高比的所有默認框的組合,來產生多樣化的預測集合,這樣就可避免輸入對象的尺寸和形狀就不敏感。
配置見表1,使用Caffe深度學習計算框架,算法網絡在修改部分開源項目中train.prototxt,test.prototxt,solver.prototxt文件,用以訓練ASSD網絡。

表1 實驗軟硬件配置
本實驗數據是由高清單目攝像頭采集完成。實驗中進行靜態手勢識別的26個字母手勢中選取5個字母為代表,分別為A、B、C、D、E。實驗數據由8個人完成,每人對每個字母分別錄制視頻,再由MATLAB視頻抽幀程序完成抽幀,去除模糊嚴重重影的圖像,得到的數據集數量如表2所示,圖片大小均為640×480。用LabelImg程序進行人工標記得到真實目標標簽文件。
訓練集由一組組的訓練圖像及其對應的真實標簽文件組成,通過微調訓練參數不斷迭代使得模型收斂并存儲模型參數。選取測試集準確率最高的模型作為最終模型,用于識別分類。實驗流程圖可參照圖1。

表2 靜態手勢數據集
利用本文提出的ASSD網絡訓練出來的模型,采用高清網絡攝像頭,實時采集測試者做出的A、B、C、D、E手勢,其中部分幀的檢測結果如圖5所示:視頻幀中的測試者隨機做的靜態字母A、B、C、D、E手勢都能夠檢測出來并且實現字母的分類,目標邊界正好框出目標,大部分結果顯示了很高的概率;同時,檢測畫面每秒傳輸幀數fps(frame per second)大多數都能保持在30fps,這個可以滿足實時檢測的要求。由于ASSD的額外特征層采取了多尺度檢測的策略,可對不同大小的特征圖都做預測,所以相對對于攝像頭不同遠近的手勢也能夠準確檢測并快速分類。然而本文的手勢檢測識別算法也存在漏檢和錯誤分類的情況見圖6。如圖6(a)所示,這是一個漏檢案例,這是由于手勢收拾部分被遮擋,從而算法未能檢測到正確手勢;如圖6(2)所示,這是一個錯誤分類,測試者所做的手勢應該為字母a(字母a:單手握拳伸大拇指),由于測試者揮手的速度過快導致大拇指這種細小目標有嚴重殘影,以至本算法以0.41的概率將該手勢識別為字母d(字母d:單手僅握拳),值得注意的是這種誤判在人為識別判斷時也會產生。
本文也使用傳統手勢識HOG+SVM算法和另一個深度學習網絡Fast R-CNN在同樣的測試環境下進行了測試,并對比了三者結果如表3所示:傳統方法方向梯度直方圖+支持向量機(HOG+SVM)在檢測速率(0.27fps)和準確率(0.581)方面都不及深度學習框架的方法好,因為傳統在特征提取過程的計算需要大量的時間并且效果也不理想。Fast R-CNN是一個深度學習常見的網絡,它的檢測準確率(0.782)相比傳統方法(HOG+SVM)有了很大的提高,但它采用的搜索性算法比較費時,所以檢測速率(0.58fps)也不太理想,不能用于實時檢測識別。本文提出的基于改進SDD網絡結構的算法ASSD,是一個端到端的檢測算法,檢測靜態手勢的準確率(0.933)得到保證的同時,極大地提高了檢測速率(30fps),能夠滿足實時檢測所要求的精度和速度的要求。

表3 算法結果對比
本文基于深度學習框架的SSD方法,提出一個用于靜態手勢檢測識別的深度學習網路結構ASSD。用改進的卷積神經網絡AlexNet作為基礎網絡用于特征提取,保留原SSD方法的額外特征層用以檢測識別目標。該方法無需人工通過建模等手段設計目標特征,可以自動提取目標圖像深層特征,用來描述復雜靜態手勢圖像。經實驗結果表明,本文網絡能很好地對靜態手勢(字母)進行檢測識別,正確率(0.933)以及檢測速度(30fps以上)都滿足實時檢測的要求。

圖5 部分檢測分類結果

圖6 錯誤案例
[1]Reyes M,Dominguez G,Escalera S.Feature Weighting in Dynamic Timewarping for Gesture Recognition in Depth Data[C].Proceeding of International Coference on Computer Vision Workshops(ICCV workshops).IEEE,2011:1182-1188.
[2]Chai X,Li Y,et al.Sign Language Recognition and Translation with Kinect[C].IEEE conf.on AFGR.2013.
[3]張繼海.基于運動軌跡和手型特性的手語識別研究[碩士論文].中國科學技術大學:信息與通信工程,2016.5.
[4]LeCun Y,Bottou L,Bengio Y,Haffner P.Gradient-Based Learning Applied to Document Recognition.Processings of the IEEE,1998,86(11):2278-2324
[5]GirshickR,DonahueJ,DarrellT,et al.Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[J].Conference on Computer Vision and Pattern Recognition,2014:580-587.
[6]GirshickR.Fast-RCNN[J].International Conference on Computer Vision,2015:1440-1448.
[7]Ren Shaoqing,HeKaiming,GirshickR,et al.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks[J].Transactions on Pattern Analysis&Machine Intelligence,2016:1-1.
[8]Wei Liu,Dragomir Anguelov,Dumitru Erhan,et al.SSD:Single Shot MultiBox Detector[C],ECCV 2016.
[9]A.Krizhevsky,I.Sutskever,G.Hinton.Imagenet Classification with Deep Convolutional Neural Networks.In Advances in Neural Information Processing Systems 25,pages 1106-1114,2012.
[10]Erhan,D.,Szegedy,C.,Toshev,A.,Anguelov,D.:Scalable Object Detection Using Deep Neural Networks.In:CVPR.(2014).
[11]Szegedy,C.,Reed,S.,Erhan,D.,Anguelov,D.:Scalable,High-Quality Object Detection.arXiv Preprint arXiv:1412.1441 v3(2015).