戴興雨,王衛民,梅家俊
(江蘇科技大學計算機學院,鎮江212003)
據北京聽力協會2017年預估數據,我國聽力障礙人士已達7200萬,其中有2700萬聽障者需通過手語等方式進行溝通交流。手語是聽力障礙人士與其他人交流最為重要的方式,但是會手語的人很少,即便使用手語,也因為看不懂手語而無法正常交流。這對聽力障礙人士與他人交流造成了極大的障礙。2018年7月1日國家出臺了通用手語標準[1],這讓聽力障礙人士使用手語與他人交流變得有章可循。因此手語識別研究有著廣泛的應用價值,對手語識別算法的研究有助于提升我國聾健融合的程度和加速國家通用標準手語的推廣進程。
本文采用Seq2Seq模型[2][3],實現視頻幀序列到字序列的轉換。對于手語視頻,采用Incep?tionV3對視頻中的每幀圖片進行特征提取,輸入到Seq2Seq模型的Encoder部分得到視頻的融合特征。一個詞的手勢包含起始動作、關鍵動作、過渡動作、結束動作,在編碼器進行特征融合過程中每個動作的權重是一樣的,針對這個問題,本文采用K-means方法提取以及利用人工標注的方式從語言學角度和聽障人群使用的角度標注視頻幀的關鍵幀,將關鍵幀的融合特征與手語視頻所有幀的融合特征組合起來輸入到Seq2Seq模型的Decoder部分進行解碼,使得關鍵幀占據更大的權重,提高手語識別的準確率。
從20世紀60年代以來,研究者就對手語識別技術展開研究[4]。目前手語識別方法研究大致分為3個方向:①基于體感設備的手語識別。②基于穿戴式設備的手語識別。③基于深度學習的手語識別。
隨著計算機視覺的發展,一些研究人員利用體感設備對手語的手勢動作進行捕捉,并精準分析進而識別手語。2019年,千承輝、邵晶雅、夏濤、劉懷賓等人[5]利用Kinect設備獲取人體深度圖像和骨骼特征信息以及利用有限狀態機及動態時間規整(DTW)實現手語識別。2017年,沈娟、王碩、郭丹等人[6]利用Kinect并計算出手語者的骨架特征表達,并構建高斯混合的隱馬爾科夫模型(GMM-HMM)進行手語識別。這種利用體感設備進行手語識別,需要利用輔助設備進行捕捉手語動作,這些設備價格不低,而且攜帶不方便,不利于推廣與發展。在捕捉手語動作時易受光線等環境因素的影響,對識別精度照成較大影響。
基于穿戴式設備的手語識別,都是利用硬件設備通過傳感器技術獲取手語的手勢動作信息輸入到系統,系統根據輸入的信息識別手語含義。2015年,呂蕾、張金玲、朱英杰、劉弘等人[7]利用一種可穿戴式的設備——數據手套獲取手語的手勢特征再與構建好的數據庫進行點集模版匹配進行手勢識別,實現在25類手勢中準確率達98.9%。2020年,白旭、郭豆豆、楊學康、蔣麗珍等人[8]利用智能手語翻譯手套進行手語識別,該智能手語翻譯手套采用基于數據手套的手語識別技術,運用低緯度SVM結合決策樹算法來進行手勢識別,在SVM的兩類分類器的基礎上加上決策樹算法能夠實現多類分類器功能,在不影響識別率的情況下極大地提高識別速率。與利用體感設備一樣,需要借助輔助設備,利用穿戴式設備進行手語識別還處于研究階段,這種設備無法大規模生產,一套設備非常昂貴,無法在市場普及,而且設備攜帶不方便,難以推廣。
隨著計算機硬件和軟件的不斷更新換代,基于深度學習的手語識別得到了極大的發展。在2017年,Cui等人[9]采用基于連接時間分類(con?nectionist temporal classification,CTC)的CNNLSTM網絡模型進行連續手語的識別。此方法利用CTC對未分段的時間序列片段進行標記,再進入CNN-LSTM模型進行分類識別,在一個大規模數據集上,得到了較好的性能。2020年,羅元、李丹、張毅[10]提出基于基于殘差3D卷積網絡(Res3DCNN)和卷積長短時記憶網絡,關注手語手勢中顯著區域并在時間上自動選擇關鍵幀,在手語識別上取得了較好的效果。
為利用深度卷積神經網絡提取單幀圖片的有效特 征,我 們 采 用 了GoogleNet[11]系 列 的Incep?tionV3網 絡 模 型。InceptionV3是 由InceptionV1、InceptionV2演變而來。
Inception系列網絡采用模塊化結構,設計的核心主要在Inception模塊,網絡設計中采用了全局值池化代替全連接層,極大降低了參數的數量。在使用時,我們去除了網絡的最后一層。具體InceptionV3的網絡結構如表1所示。

表1 Inception V3模型結構

圖1 Inception模塊結構
給定的手語視頻V,進行按幀切分,分成Im?ages=[Image1,Image2,…,Imagen],其中n是切分的總幀數,Imagej代表第j幀圖片。用InceptionV3對切分好的所有圖片進行特征提取得到f=[feature1,feature2,…,featuren],其中n表示總特征數,fea?turej表示第j幀圖片提取出的特征,得到的f即為該手語視頻的特征。其具體流程如圖2所示。

圖2 手語視頻特征提取過程
對單個手語視頻V,首先進行按幀切分,對于每幀圖片按照上述特征提取的方法進行特征提取,最終得到手語視頻的特征。具體過程如下:


K-means聚類算法廣泛應用在視頻或圖片處理,也是圖片關鍵幀提取的主要方法之一。其算法思想是將給定的樣本大小,按照樣本之間的距離大小,將樣本集劃分為k個簇,使得同一個簇內的樣本更緊密連在一起,簇之間距離盡量大一點。假如簇劃分為(C1,C2,…,Ck),那么我們最終的目標最小化平方差誤差E:

其中μi是簇Ci的均值向量,也稱為質心,其表達式為:

傳統的K-means提取視頻關鍵幀的方法是計算視頻的每幀圖片在像素空間的歐式距離來衡量圖片之前的差異,從而完成圖像聚類[12],而本文對手語視頻關鍵幀的提取在手語視頻每幀圖片的特征空間中進行聚類,這樣解決了單像素無法攜帶足夠信息和圖片尺寸大,造成計算量過大的問題。通過對大量手語、手勢的研究發現,絕大多數手語的關鍵幀數不會超過6幀[12],數據集(在4.1節介紹)中的手語視頻大多包含4~6個詞,所以將關鍵幀數設定為32,對于一個手語視頻V,其特征序列f={feature1,feature2,…,featuren},其中n為視頻序列總幀數,featurei為視頻第i幀圖片提取的特征向量,對于f采用K-means進行提取關鍵幀。具體算法如下:
(1)從特征序列f中隨機選擇32個樣本作為初始的質心向量記為μ1,μ2,…,μ32,其中μj(1≤j≤32)為第j類聚類質心。
(2)對于樣本f={feature1,feature2,…,fea?turen}和各個聚類質心μj的歐氏距離:
dij=‖featurei-μi‖,那么featurei到μj(j=1.2…32)的距離記為Di={di1,di2,…,di32},選 取Di中的最小值dij,將featurei歸入第j類。
(3)再對第j聚類質心的所有樣本去均值,重新計算該類的質心。
(4)重復步驟(2)和(3),直到每次重新計算的質心與原質心沒有變化。
最終的μ1,μ2,…,μ32即為提取出的手語視頻關鍵幀特征。
使用Keras搭建Seq2Seq模型,Seq2Seq模型是RNN最重要的一個變種:NvsM(輸入與輸出序列長度不同),這種結構又叫Encoder-Decoder模型。Encoder與Decoder均采用長短時記憶卷積神經網絡(long short-term memory networks,LSTM)。將手語視頻關鍵幀特征序列與手語視頻特征序列分別輸入到Encoder部分進行特征融合,將兩部分得到的融合特征組合起來輸入到Decoder部分進行解碼,M1,M2,M3為LSTM層。具體手語識別算法模型如圖3所示。

圖3 Seq2Seq手語識別算法模型
對于手語數據集,我們采用了中國科學技術大學自制的中國手語數據集——CSL。CSL數據集是中國科學技術大學從2015年開始自制的中國手語數據集,并在2017年公開,里面包含RGB、深度以及骨架關節點數據。我們選取其中100句中文句子,每句中文對應250個手語視頻,總計25000個樣本的連續手語數據集,如圖4所示。

圖4 手語數據集
100句中文句子,每句對應250個視頻,由50名操作者拍攝,每位操作者重復5次,手語動作由專業老師指導,每個視頻在5~8秒。視頻內容具體情況如圖5所示。

圖5 手語視頻
模型訓練好后(迭代訓練800輪),與視頻融合特征部分不加入關鍵幀的融合特征直接進行解碼相比,加入關鍵幀后在精度上有了一定的提升,在測試集上測試1000次的情況見表3。

表3 測試1000次識別精度
可以看出,在加入了K-means聚類算法提取的關鍵幀后,識別精度有了一定的提高。
本文還對比了訓練的迭代次數,實驗結果如圖,隨著迭代次數的提高,加入關鍵幀的模型與不加關鍵幀的模型在精度上都有很大提高,加入手語視頻關鍵幀的模型總體要高于不加入手語視頻關鍵幀的模型。如圖6所示。

圖6 精確度對比
由實驗結果看出,使用K-means提取關鍵幀加入到編碼器的融合特征中,精度上雖有一定的提升,但還是未達到預期效果。而且手語識別時間增大,原因是K-means提取關鍵幀存在問題:①K-means涉及大量數據的運算,收斂較慢,數據量過大時,計算時間過長。②經過專家打分系統發現最終得到的聚類質心,有一部分質心不是關鍵幀。③同一個關鍵手勢可能會出現在多個地方,但是會被歸為同一個聚類,丟失了關鍵幀的時間序列。
為此,我們更換了關鍵幀的提取方式,我們使用人工進行標注每個手語視頻中每幀關鍵幀,并用三層深度神經網絡進行二分類訓練。
對于手語視頻的關鍵幀,我們從兩方面進行考慮:語言學角度的關鍵幀和聽障人群使用的角度的關鍵幀。
4.1.1 語言學角度的關鍵幀
一句中文句子可以分解成多個詞和字,對于這句話的語義一般由幾個關鍵詞構成,我們基于這個角度采用詞頻-逆文件頻率(term frequencyinverse document frency,TF-IDF)提取每句中文句子中的關鍵詞。
TF(詞頻)指某個詞語在當前文檔中出現的次數,由于同一詞語在不同文檔中出現的次數不一樣,且文檔越大,出現的頻率可能就越高,故需要對詞語進行歸一化,計算公式如下:

IDF(逆文檔頻率)是在詞頻的基礎上,對每個詞賦予權重。如果某個詞在其他文檔中出現次數很多,但是在當前文檔出現多次,那么應該賦予該詞較大的權重,如果該詞在很多文檔都有出現,無法代表當前文章的內容,那么將賦予該詞較小的權重,其計算公式如下:

那么每個詞最終的權重(TF-IDF值)即為:

我們將數據集中包含的每個中文句子作為一個文檔,總計100個文檔作為數據集,對每句話使用jieba工具進行分詞,然后對每個詞對與對應文檔進行TF-IDF值的計算,提取出每句話中的關鍵詞。
對于每句話提取出的關鍵詞,例如“他的同學是警察”,最終提取出“同學”和“警察”兩個關鍵詞,我們在手語網查詢了這兩個詞的手勢動作得知“他”包含一個關鍵手勢(圖7),“同學”包含兩個關鍵手勢(圖8),然后對手語視頻中的每幀圖片按這些關鍵手勢進行標注為關鍵幀。

圖7 手語“他”的關鍵手勢

圖8 手語“同學” 的關鍵手勢
我們邀請了學校的幾位老師以及學生共10個人,將我們收集到手語數據集中的每一個視頻進行按幀切分,按照中文句子中的關鍵詞,查詢其對應的關鍵手勢,對切分的每張圖片進行標注是否為關鍵幀。耗時半個月,將收集到的25000手語視頻全部標注完成。
4.1.2 聽障人群使用的角度的關鍵幀
手語是一種視覺語言,表達時重于視覺效果。通過對鎮江市聾啞學校的學生進行手語交流的觀察發現,當他們進行交流時,對于某個手勢會著重表達甚至反復做這個動作,主要原因是這些手勢動作存在一些關鍵動作(關鍵幀),它的正確展示是對方理解自己手語表達含義的關鍵。基于這一理論,我們邀請了5名手語專家(聽障人士)幫助我們對于現有的手語數據集中手語視頻動畫按幀標準標出了核心關鍵關鍵幀。
模型訓練好后(迭代訓練800輪),對三種提取關鍵幀的方式分別進行比較,分別在測試集上測試1000次的情況見表4。

表4 測試1000次識別精度
迭代次數的對比如圖9所示。

圖9 精確度對比
由此可以看出,在本實驗中三種方式在初始200輪迭代中差距不是很大,但是從整體上看,最終的精確度人工標注的方式比K-means方式提取的關鍵幀在效果上更好,而且在訓練過程中整體都是由于K-means的。將語言學角度的關鍵幀和使用者角度的關鍵幀對比,從使用者角度效果更好,可以看出使用者角度提取的關鍵幀更符合聽障人士在交流時的關鍵手勢。
本文提出基于深度學習的手語識別算法,搭建了Seq2Seq網絡模型。對于訓練成熟的Seq2Seq模型,將錄制的手語視頻,輸入模型可直接得到手語的中文意思,而且識別準確率高,相較于傳統使用數據手套或者使用Kinect作為輔助器,成本低。運用算法開發出一款應用,可以在各種設備進行識別操作,方便快捷。
深度學習技術相對傳統方法而言,與網絡速度、GPU等硬件性能的關系更為緊密,計算機硬件設備的更新換代及網絡升級,會大大縮短從錄制完手語視頻到得出結果的時間。深度學習技術還依賴于大量數據集,現階段,良好的手語數據庫非常匱乏,未來還需要致力于建立良好的手語手語數據集,提高手語識別模型的準確率與普適性。