張勛,陳亮,胡誠,孫韶媛
(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海201620)
根據(jù)最新全國人口普查資料表明,我國有1.5億聽力言語障礙人群,而聽力言語殘疾人群已達(dá)到2057萬人,約占全國總?cè)丝诘?.57%。手勢是聾啞人用手勢代替正常言語進(jìn)行交流的一種有效方式。研究手勢識別能幫助聾啞人,尤其是一些未得到良好教育的聾啞人之間的交流,同時也能幫助聾啞人與正常人之間的交流;其次,手勢識別是人機(jī)交互的一種便利的方式,研究手勢識別能促進(jìn)機(jī)械智能運作、移動設(shè)備終端的操作、門禁系統(tǒng)、遠(yuǎn)程控制等其他領(lǐng)域的發(fā)展;手勢識別的進(jìn)一步研究,還可以提高計算機(jī)在人類語言理解的程度。
研究者在靜態(tài)手勢識別領(lǐng)域有著許多探索。2011年Reyes[1]等人從基于Kinect深度圖像對不同骨骼節(jié)點訓(xùn)練對應(yīng)權(quán)重,利用特征加權(quán)的DTW算法,在5類手勢上通過交叉驗證得到68%的識別率。2013年Chai等人[2]通過對手的三維軌跡匹配的方法進(jìn)行239個中國手勢詞匯的識別,達(dá)到了83.51%的準(zhǔn)確率。2016年中國科學(xué)技術(shù)大學(xué)的張繼海[3]在對手勢軌跡處理后利用HOG提取手型特征后利用改進(jìn)的隱馬爾可夫模型(HMM)進(jìn)行建模,最后在用基于幀平均概率融合與支持向量機(jī)的融合方法實現(xiàn)手勢識別,準(zhǔn)確率方面也取得了比較不錯的效果。
以上方法在準(zhǔn)確率方面取得了不錯的進(jìn)步,但要滿足靜態(tài)手勢的實時識別要求、識別速度和準(zhǔn)確率有待提升。因為人手骨架不統(tǒng)一、手型多變、手勢詞匯量大的特點,其特征信息很難靈活的獲得,人工通過建模等方式設(shè)計手勢描述特征的過程十分繁瑣、無法深度挖掘更高層次、更多維度的特征信息,這就導(dǎo)致基于傳統(tǒng)方法的模型范性差、很難達(dá)到實時檢測目的。
深度學(xué)習(xí)模型[4]是一種突破性的技術(shù),尤其是它在機(jī)器學(xué)習(xí)領(lǐng)域的表現(xiàn)。為了達(dá)到模式分析和分類這樣的目的,它的有監(jiān)督和無監(jiān)督的特征提取和轉(zhuǎn)換是由多層非線性的組合去完成的。許多國內(nèi)外科研機(jī)構(gòu)的研究人員在深度學(xué)習(xí)領(lǐng)域進(jìn)行了廣泛的研究,其應(yīng)用方面也做了大量的拓展,效果突出的領(lǐng)域主要表現(xiàn)在語音、圖像等領(lǐng)域。Ross B.Girshick等人提出區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(R-CNN)[5],快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast R-CNN)[6],加速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster R-CNN)[7]。這些方法成為深度學(xué)習(xí)中檢測識別領(lǐng)域的里程碑。
盡管以上方法在某些單一方面表現(xiàn)不錯,例如準(zhǔn)確率方面,但對于單個常規(guī)嵌入式系統(tǒng)來講,計算負(fù)荷還是過大,即使用上高端硬件的嵌入式系統(tǒng),要滿足實時或接近實時的應(yīng)用難度也相當(dāng)大,再或者是以犧牲檢測精度來換取時間。2016年Wei Liu等人[8]在ECCV提出了SSD(Single Shot MultiBox Detector)方法。該方法沒有采用區(qū)域建議(RPN),而是用小卷積核去預(yù)測特征圖上一組默認(rèn)邊界和類別分?jǐn)?shù)及位置偏移,并且從額外卷積層及基礎(chǔ)網(wǎng)絡(luò)層VGG16網(wǎng)絡(luò)的最后一層的特征圖上生成不相同的預(yù)測,最后分離的預(yù)測結(jié)果是依據(jù)不相同的的寬高來完成。
本文受Wei Liu文獻(xiàn)的方法啟發(fā),針對實時手勢檢測要求對SSD網(wǎng)絡(luò)進(jìn)行優(yōu)化,提出ASSD模型:將原SSD網(wǎng)絡(luò)中用于特征提取的基礎(chǔ)網(wǎng)絡(luò)VGG16更改為去掉最后兩層全連接層的AlexNet網(wǎng)絡(luò),并對AlexNet網(wǎng)絡(luò)結(jié)構(gòu)做了修改。因為手勢識別的目標(biāo)相比自然圖像識別的目標(biāo)而言沒有那么復(fù)雜,采用略淺層次的深度學(xué)習(xí)特征提取網(wǎng)絡(luò)在會保證識別準(zhǔn)確率的同時可提升整個網(wǎng)絡(luò)的識別速率。本文第2小節(jié)給出了ASSD網(wǎng)絡(luò)的結(jié)構(gòu)圖,并給出了修改的特征提取網(wǎng)絡(luò)AlexNet的結(jié)構(gòu);第3小節(jié)給出了實驗過程及結(jié)果分析,第4小節(jié)為結(jié)論。
圖1為算法流程圖:將靜態(tài)手勢訓(xùn)練集及對應(yīng)的真實標(biāo)簽文件送入ASSD網(wǎng)絡(luò)進(jìn)行迭代學(xué)習(xí),通過調(diào)整參數(shù),找到效果好的模型作為最終模型,用于手勢識別。
圖1 算法流程圖
本文提出的網(wǎng)絡(luò)整體結(jié)構(gòu)如圖2所示。
圖2 ASSD整體框架示例
圖3 網(wǎng)絡(luò)基礎(chǔ)層:改進(jìn)的AlexNet
該網(wǎng)絡(luò)結(jié)構(gòu)有兩個部分組成:基礎(chǔ)網(wǎng)絡(luò)層(特征提取層)和額外卷積特征層。
網(wǎng)絡(luò)基礎(chǔ)層是一個類似AlexNet[9]網(wǎng)絡(luò)的結(jié)構(gòu),去掉了最后的全連接層,共有5層,調(diào)整策略有:更改部分卷積核大?。皇褂酶〉木矸e核可以提取到手型的細(xì)節(jié)變化;使用1x1大小的卷積核,步長為1,填充邊界為0,這樣可以保證網(wǎng)絡(luò)深度、減小模型誤差。該網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖3所示。
額外特征提取連接網(wǎng)絡(luò)添加到截斷的基礎(chǔ)網(wǎng)絡(luò)末尾,為一個多層網(wǎng)絡(luò),其中有8層為卷積層和1層下采樣池化層(均值池化)。這些層的尺度逐漸減小,用以得到多尺度的預(yù)測值。
ASSD方法基于前饋卷積網(wǎng)絡(luò),除基礎(chǔ)網(wǎng)絡(luò)特征提取層改變外,其他沿用了SSD方法的特征選擇和匹配策略。
ASSD架構(gòu)圖,如圖4所示。
圖4 SSD架構(gòu)
在訓(xùn)練網(wǎng)絡(luò)期間,輸入ASSD網(wǎng)絡(luò)的僅是每個對象的圖像和對應(yīng)的真實標(biāo)簽框,如圖4(a)所示。卷積部分,ASDD網(wǎng)絡(luò)會在不同尺度的特征圖中估測各個位置上不同橫寬比的小集合(如4個)默認(rèn)框,如圖4(b)和圖(c)所示。各個默認(rèn)框中,需要得到全部形狀偏移和置信度,那就要預(yù)測全部對象的類別((c 1,c2,...,cp))。在訓(xùn)練時,首先完成的是默認(rèn)框與真實標(biāo)簽框匹配動作。(例如,貓和狗被兩個默認(rèn)框匹配到,這些匹配到的框視為正,其余視為負(fù))。對于整個模型,用位置信損失(如Softmax)和置損失(如Smooth L1)的加權(quán)和的形式來表示總損失L。
基于前饋卷積網(wǎng)絡(luò)的ASSD方法,會產(chǎn)生固定大小的邊界框集合以及框中對象類別的分?jǐn)?shù),再通過一個非最大化抑制步驟產(chǎn)生最終的檢測。網(wǎng)絡(luò)如圖2所示,本文提出的ASSD網(wǎng)絡(luò)基礎(chǔ)網(wǎng)絡(luò)為改進(jìn)的AlexNet網(wǎng)絡(luò);輔助網(wǎng)絡(luò)產(chǎn)生以下主要特征的檢測:
(1)多尺度特征圖檢測:在去掉全連接層AlexNet的基礎(chǔ)網(wǎng)絡(luò)末尾增加額外的卷積特征層,其特征是在逐漸減小的特征層中產(chǎn)生不同尺度檢測預(yù)測值。各個特征層與檢測的卷積模型不是一一對應(yīng)的關(guān)系。
(2)檢測使用卷積預(yù)測器:如圖2中所示,在各個額外卷積特征層和去全連接層的AlexNet網(wǎng)絡(luò)特征層上使用一組濾波器去卷積這些特征層從而生成預(yù)測集合。預(yù)測集合具體生成規(guī)則是:對于m×n大小的、并且具有p個通道的特征層,卷積核大小則為3×3×p,卷積操作后,生成該框中目標(biāo)類別分?jǐn)?shù)、或是代表相對于默認(rèn)框的坐標(biāo)偏移量,并在每個m×n大小區(qū)域上進(jìn)行卷積操作,產(chǎn)生一個輸出值。測量的邊界框偏移輸出值是相對于默認(rèn)框的,而默認(rèn)框位置則是相對于特征圖的。
(3)默認(rèn)框與寬高比:默認(rèn)框如圖4,關(guān)聯(lián)一組默認(rèn)邊界框與頂層網(wǎng)絡(luò)每個特征圖單元。固定各個框?qū)嵗鄬τ谄鋵?yīng)單元格的位置是通過在特征圖中用默認(rèn)框作卷積運算實現(xiàn)的。相對于單元格中的默認(rèn)框形狀的偏移和每個框中實例的每類分?jǐn)?shù),是可以在各個特征映射單元中預(yù)測的。
訓(xùn)練ASSD關(guān)鍵在于訓(xùn)練圖像中的真實標(biāo)簽需要賦予到那些固定輸出的默認(rèn)框上:
(1)匹配策略:訓(xùn)練時,需建立真實標(biāo)簽和默認(rèn)框之間的對應(yīng)關(guān)系,通過默認(rèn)框與真實標(biāo)簽Jaccard匹配重疊程度來確定這一默認(rèn)框,例如匹配重疊程度高于某閾值0.5。
(2)訓(xùn)練目標(biāo):ASSD訓(xùn)練的目標(biāo)函數(shù),源自Multi-Box[10-11]的目標(biāo)函數(shù)。第i個默認(rèn)框與p類別目標(biāo)第j個真實標(biāo)簽的匹配用表示,相對的若不匹配則通過這個匹配策略可知,必然這就表示第j個真實標(biāo)簽有可能匹配多個默認(rèn)框??偰繕?biāo)損失函數(shù)L(x,c,l,g)是位置損失Lloc和置信損失Lconf的加權(quán)和,如式1所示:
式中,N表示匹配默認(rèn)框的數(shù)量,x表示是以圖像作為輸入的變量。
位置損失Lloc是一個Smooth L1[6]損失,它介于預(yù)測框(l)和真實標(biāo)簽值框(g)參數(shù)之間,回歸邊界框d的中心(cx,cy)以及其寬度w和高度h的偏移量,如式(2)所示:
Softmax損失對多類別置信(c)和權(quán)重項α設(shè)置為1的交叉驗證構(gòu)成了置信損失Lconf,如式3所示:
(3)選擇默認(rèn)框的比例以及橫寬比:單個網(wǎng)絡(luò)中不同層的特征圖進(jìn)行預(yù)測以及在所有對象尺度上共享參數(shù)可以減少計算與內(nèi)存需求,并且,本網(wǎng)絡(luò)中特征圖的特定位置來負(fù)責(zé)圖像中特定的區(qū)域和物體特定尺寸,這樣默認(rèn)框不必與每層中感受野對應(yīng)。通過預(yù)測多組分別在許多特征圖的所有位置上不同尺寸和寬高比的所有默認(rèn)框的組合,來產(chǎn)生多樣化的預(yù)測集合,這樣就可避免輸入對象的尺寸和形狀就不敏感。
配置見表1,使用Caffe深度學(xué)習(xí)計算框架,算法網(wǎng)絡(luò)在修改部分開源項目中train.prototxt,test.prototxt,solver.prototxt文件,用以訓(xùn)練ASSD網(wǎng)絡(luò)。
表1 實驗軟硬件配置
本實驗數(shù)據(jù)是由高清單目攝像頭采集完成。實驗中進(jìn)行靜態(tài)手勢識別的26個字母手勢中選取5個字母為代表,分別為A、B、C、D、E。實驗數(shù)據(jù)由8個人完成,每人對每個字母分別錄制視頻,再由MATLAB視頻抽幀程序完成抽幀,去除模糊嚴(yán)重重影的圖像,得到的數(shù)據(jù)集數(shù)量如表2所示,圖片大小均為640×480。用LabelImg程序進(jìn)行人工標(biāo)記得到真實目標(biāo)標(biāo)簽文件。
訓(xùn)練集由一組組的訓(xùn)練圖像及其對應(yīng)的真實標(biāo)簽文件組成,通過微調(diào)訓(xùn)練參數(shù)不斷迭代使得模型收斂并存儲模型參數(shù)。選取測試集準(zhǔn)確率最高的模型作為最終模型,用于識別分類。實驗流程圖可參照圖1。
表2 靜態(tài)手勢數(shù)據(jù)集
利用本文提出的ASSD網(wǎng)絡(luò)訓(xùn)練出來的模型,采用高清網(wǎng)絡(luò)攝像頭,實時采集測試者做出的A、B、C、D、E手勢,其中部分幀的檢測結(jié)果如圖5所示:視頻幀中的測試者隨機(jī)做的靜態(tài)字母A、B、C、D、E手勢都能夠檢測出來并且實現(xiàn)字母的分類,目標(biāo)邊界正好框出目標(biāo),大部分結(jié)果顯示了很高的概率;同時,檢測畫面每秒傳輸幀數(shù)fps(frame per second)大多數(shù)都能保持在30fps,這個可以滿足實時檢測的要求。由于ASSD的額外特征層采取了多尺度檢測的策略,可對不同大小的特征圖都做預(yù)測,所以相對對于攝像頭不同遠(yuǎn)近的手勢也能夠準(zhǔn)確檢測并快速分類。然而本文的手勢檢測識別算法也存在漏檢和錯誤分類的情況見圖6。如圖6(a)所示,這是一個漏檢案例,這是由于手勢收拾部分被遮擋,從而算法未能檢測到正確手勢;如圖6(2)所示,這是一個錯誤分類,測試者所做的手勢應(yīng)該為字母a(字母a:單手握拳伸大拇指),由于測試者揮手的速度過快導(dǎo)致大拇指這種細(xì)小目標(biāo)有嚴(yán)重殘影,以至本算法以0.41的概率將該手勢識別為字母d(字母d:單手僅握拳),值得注意的是這種誤判在人為識別判斷時也會產(chǎn)生。
本文也使用傳統(tǒng)手勢識HOG+SVM算法和另一個深度學(xué)習(xí)網(wǎng)絡(luò)Fast R-CNN在同樣的測試環(huán)境下進(jìn)行了測試,并對比了三者結(jié)果如表3所示:傳統(tǒng)方法方向梯度直方圖+支持向量機(jī)(HOG+SVM)在檢測速率(0.27fps)和準(zhǔn)確率(0.581)方面都不及深度學(xué)習(xí)框架的方法好,因為傳統(tǒng)在特征提取過程的計算需要大量的時間并且效果也不理想。Fast R-CNN是一個深度學(xué)習(xí)常見的網(wǎng)絡(luò),它的檢測準(zhǔn)確率(0.782)相比傳統(tǒng)方法(HOG+SVM)有了很大的提高,但它采用的搜索性算法比較費時,所以檢測速率(0.58fps)也不太理想,不能用于實時檢測識別。本文提出的基于改進(jìn)SDD網(wǎng)絡(luò)結(jié)構(gòu)的算法ASSD,是一個端到端的檢測算法,檢測靜態(tài)手勢的準(zhǔn)確率(0.933)得到保證的同時,極大地提高了檢測速率(30fps),能夠滿足實時檢測所要求的精度和速度的要求。
表3 算法結(jié)果對比
本文基于深度學(xué)習(xí)框架的SSD方法,提出一個用于靜態(tài)手勢檢測識別的深度學(xué)習(xí)網(wǎng)路結(jié)構(gòu)ASSD。用改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)AlexNet作為基礎(chǔ)網(wǎng)絡(luò)用于特征提取,保留原SSD方法的額外特征層用以檢測識別目標(biāo)。該方法無需人工通過建模等手段設(shè)計目標(biāo)特征,可以自動提取目標(biāo)圖像深層特征,用來描述復(fù)雜靜態(tài)手勢圖像。經(jīng)實驗結(jié)果表明,本文網(wǎng)絡(luò)能很好地對靜態(tài)手勢(字母)進(jìn)行檢測識別,正確率(0.933)以及檢測速度(30fps以上)都滿足實時檢測的要求。
圖5 部分檢測分類結(jié)果
圖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]張繼海.基于運動軌跡和手型特性的手語識別研究[碩士論文].中國科學(xué)技術(shù)大學(xué):信息與通信工程,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).