陳建國 鄧曉軍 譚孟旭 張官正 于順洪



摘要:針對聽力障礙人群與正常人群存在語言交流障礙的問題,基于Unity平臺采用Leap Motion設備收集手勢特征,利用Maya3D建模和幾何模板匹配技術,采用.NetCore框架開發一款手語動態識別系統,為聾啞人群體創建一個無障礙交流的平臺。實際應用效果表明,系統具有良好的易用性、識別率和可靠性,系統的研發為聾啞人與健全人群的交流帶來了極大的便利。
關鍵詞:Unity;Maya 3D;LeapMotion;.NetCore框架;手語識別
中圖分類號:TP319 文獻標識碼:A
文章編號:1009-3044(2020)09-0055-04
1 國內外研究現狀及分析
據統計,世界上有將近2.5-3億聽力障礙人群,包括弱聽、重聽、老性耳聾等。大多數聾啞人僅使用手語與書面語與他人交流,因此多數聾啞人只能與家人或同群體互動交流,與正常人群體往來甚少。聾啞人士與不懂手語的正常人群溝通存在極大的障礙,而當前僅有非常小比例的正常人群體掌握了手語。聽力障礙讓他們與外界交流非常不便,隨著科技的不斷進步也使得他們期望通過科技改變生活。
手語是聾啞人與正常人之間溝通的橋梁,目前市面上還沒有成功的手語翻譯產品,大多數都停留在實驗室階段。實現手語翻譯的關鍵就是手語識別,20世紀80年代就有人開始了簡單的手勢識別研究。1983年,美國電話電報公司的G.J.Grimes發明一款能夠識別72個單手字母“數字數據輸入手套接口設備”,被認為是最早進行手語識別研究的人。目前對手語識別的研究主要分為兩大類:基于數據手套的手語識別和基于視覺的手語識別。
通過對文獻的研究,上述兩類手語識別設備主要存在以下問題:
1)數據手套的成本高昂,佩戴和使用不便。雖然利用數據手套進行識別有數據量較小,識別率較高等優點,但是基于數據手套的手語識別大都停留在實驗室研究階段。
2)國內對基于視覺的手語識別的研究比較少,而且可識別的靜態手勢的數量過少,手語識別系統的準確率不高。
3)手語識別系統由軟硬件構成的系統,系統體積較大,不方便攜帶。
針對以上的問題,設計一款價格實惠、攜帶方便和識別率高的手語交流平臺已凸顯。本系統將采用Leap Motion收集手部特征,相對于數據手套其性價比和便攜性的優勢顯而易見,通過對提取出的三維手勢數據進行平面化,通過幾何模板匹配算法,達到良好的手語識別率,并且采用百度語音API能夠實現文字、語音的相互轉換。利用Unity、Maya、Leap Motion能夠實現手語、文字的相互轉換。
2 系統分析與設計
2.1 需求分析
2.1.1 性能需求
本系統性能需求主要包括以下幾個方面:
1)兼容性。系統采用基于類聊天程序的交流模式,兼容市面上大多數電腦以及手機設備,對不同系統版本、分辨率、屏幕尺寸進行兼容性開發,特別針對市場占有率高的設備進行全面的兼容性測試。
2)安全性。系統應當保證用戶信息和系統數據的安全,通過用戶登錄和權限驗證,實現代碼混淆等途徑保證系統的安全性。
3)便攜性。系統采用LeapMotion作為手勢采集設備,該設備重量209,體積相當于半個手掌大小,便攜性突出。
4)可靠性。通過LeapMotion采集手勢,對數據進行向量化,提出一種幾何模板匹配識別算法,達到較好的識別率和可靠性。
2.1.2 功能需求
系統主要是方便聾啞人能和正常人進行交流。系統由硬件和軟件平臺構成,硬件主要包括:LeapMotion設備負責提取用戶輸入手勢并解析成三維數據。軟件平臺主要包括用戶交流平臺和LeapMotion硬件串口數據轉發平臺,結合移動互聯網的優勢,實現用戶間的交流。系統采用在線聊天交互模式,該模式類似于QQ等在線聊天工具,這樣在最大程度上保證了用戶使用的簡便程度。平臺的系統功能模塊如圖1所示,通過該平臺實現聾啞人和正常人交流。
2.2 系統設計
系統的整體架構由Socket服務器、用戶終端(包括PC客戶端和Android客戶端)以及數據庫服務器、LeapMotion控制器4個部分組成,它們之間通過網絡互聯,其整體架構如圖2所示。
Socket服務器通過網絡向各個終端接收和發送請求,然后進行處理并緩沖到數據庫服務器中,之后當用戶終端通過網絡向Socket服務器發送數據請求時,Socket服務器利用負載均衡機制快速向數據庫服務器集群請求數據,然后將數據返回給用戶,對于用戶發送過來的數據,Socket服務器會快速同步到各個數據庫服務器。
系統使用Maya制作手勢模型,然后將模型進行骨骼綁定,之后將手勢模型制作成動畫,在Unity引擎中將該動畫與動畫對應的手勢進行一一映射,就能實現文字轉會成手語的功能。使用Leap motion對手勢進行捕捉和提取,獲得手上各個關節的具體位置向量信息,將該信息用算法進行分析、訓練并保存。當再次出現該手勢時,系統通過提取保存的數據并與之對比,便能快速實現手語識別的功能,手語識別過程如圖3所示。
3 關鍵技術研究
3.1 Leap Motion手勢特征提取
通過建立三維空間的右手笛卡爾直角,重建手掌在真實世界的三維空間運動信息。坐標原點是控制器的中心,坐標X軸平行于控制器指向屏幕,坐標Y軸垂直指向上方,坐標Z軸指向背離屏幕的方向。
根據Leap Motion捕捉到的目標信息,通過判斷手掌法向量、手掌關節相對位移,計算手的移動方向、速度、位移以及俯仰角、翻滾角等變化情況定義了上移和下移、前移和后移以及左移和右移三種基本手勢趨勢。基于Leap Motion API所編寫的手勢判斷處理模塊,該程序在Leap API自帶的Gesture之外,通過分析四種基本手勢可組合判斷不同類型手勢。上移動即手掌平放后向遠離設備的方向移動,下移即手掌平放后向靠近設備的方向移動。前移和后移前移即手掌平放后指尖抬高高于手腕的運動,后移即手掌平放后手腕抬高高于指尖的運動。左移和右移左移即手掌平放后左邊抬高高于右邊的運動,右移即手掌平放后右邊抬高高于左邊的運動。
Leap Motion設備內置的三個紅外LED燈和兩個帶廣角鏡頭的高幀率灰度攝像頭示。通過這種方式可以在極低光照的環境中采集到圖像信息,而灰度攝像頭可以進一步減少運算數據量,提高算法速度。LeapMotion通過計算機視覺的算法(一般是三角測距法)不斷將前方接收的立體圖像作為一個幀接收并傳人客戶端程序,一個幀的對象提供了綁定數據即手勢和元素的列表,這些數據用來描述設備視野內觀察到整體的動作。根據之前接收的列表,建立三維特征庫識別手勢。手勢的判別可分為兩部分:一部分與包含位置和方向的靜態姿勢有關,另一部分則用來標識動態手勢。
3.2 噪聲抑制技術
手語識別系統處理的數據流是通過LeapMotion傳感器實時返回的動作捕捉數據,包括手部各關鍵節點的空間軌跡、運動速度和指向矢量。這些信息主要用于對身體數據進行切割、探測操作。盡管理論上LeapMotion傳感器的軌跡跟蹤精度達到亞毫米級,但由于是通過軟件算法實現其高精度跟蹤,同時器件分辨率、熱磁噪聲、人手抖動視覺遮擋及數值解算的奇異值都可能引入噪聲信號,所以在實際使用時仍會產生識別不穩定的現象。本項目采用自適應截止頻率低通濾波方法,通過檢測用戶手掌掌心點速度實時改變低通濾波器的截止頻率,LeapMotion空間軌跡的獲取如圖4所示。
3.3 Socket高并發通信
通信系統基于TCP長連接實現,由于TCP在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,保證了較好的穩固性,使數據無差錯,不丟失,不重復,且按序到達。在數據傳完后,還會斷開連接用來節約系統資源。其次,TCP采用了連續ARQ協議來保證數據傳輸的正確性,使用滑動窗口協議來保證接方能夠及時處理所接收到的數據,進行流量控制,客戶端與服務器通信過程如圖5所示。TCP使用慢開始、擁塞避免、快重傳和快恢復來進行擁塞控制,以避免網絡擁塞。
4 系統實現及結果分析
手語交流平臺由硬件平臺和軟件平臺構成,硬件平臺包括LeapMotion體感控制器,主要實現識別用戶、手勢的數據提取、計算分析用戶身體信息功能;軟件系統采用C#編程語言實現,主要實現手語雙向翻譯、聾啞人與正常人在線交流、手語教學等功能。采用可視化簡潔的圖形界面便于聾啞人以及正常人的使用。
4.1 系統登錄界面
登錄界面有登錄、創建用戶、創建手勢庫和退出四個功能如圖6所示。
4.2 系統交流窗口
聊天交流可以在正常人(Normal模式)、聾啞人(Deaf模式)兩種身份模式中隨時切換。
1)Normal(正常人模式)模式
系統默認模式,在該模式下左下角的按鈕圖標為一個揚聲器標志,點擊這個按鈕,便能連接到百度語音API然后進行錄音,將音頻轉換為文字至輸入框,將文字發送后,文字左邊就會出現耳朵狀圖標,點擊就能轉換為語音播放出來。圖7為Nor-mal模式下的聊天框。
2)Deaf(聾啞人)模式
Deaf模式是手語交流通信系統中最重要的功能,包括了手語識別、文字轉換手勢等交流所需核心功能。切換到Deaf模式,點擊左下角的手掌按鈕圖標便能進行手語識別,如圖8所示。手語識別主要是通過連接的LeapMotion提取手勢,使用圖像識別算法,識別出正確的手語。點清空將屏幕上識別出的字清空,點一鍵發送將識別出的字按順序發送到輸入框,點擊文字能彈出手勢視圖用來介紹手語的動作展示,可以方便聾啞人檢驗是否是需要發出的正確手勢含義,如圖9所示。文字以方便正常入學習手語,還能拖動字體來改變詞語順序,以便對句子的結構進行調整。軟件左邊界面是能夠查找不同的在線聯系人,點擊名字便能切換窗口,方便交流。當接收到消息的時候,點擊文字就能夠將文字轉換成手語,通過播放手語聾啞人就可以讀懂消息,如圖10所示。
4.3 系統自制識別手語
不同地方的聾啞人也會使用不同的手語就如同各個地方的方言。因此為了能夠識別“方言”手語,可以創建自定義手勢識別庫,創建自定義手語的界面如圖11所示。在輸入框中輸入要保存的手語名稱,然后點擊后面對應的:“Submit”按鈕就能通過LeapMotion設備進行手勢存儲,按“R”將手勢錄入,如果錄入時手勢錄入錯誤,可以按“E”進行手勢清空,按“S”將錄入的手語保存的。之后在交流過程中就能識別“方言”手語。
5 結束語
本手語交流平臺通過對手勢識別算法改進,并在程序執行速度方面進行優化,同時對手勢特征的提取進行了簡化,實現了聾啞人與正常人正常交流。下一步將在系統的識別率、穩定性和易用性方面進行更深入的研究,同時在系統的功能方面加以完善,如加入學習、音樂和娛樂等功能,吸引更多的用戶使用該平臺,使系統不僅是一個手語識別系統而使其成為聾啞人交流、寓教于樂一體的綜合平臺,同時加入手語矯正功能,提供手語翻譯員學習手語功能,并努力打造其生態圈。
參考文獻:
[1]王繼紅,國內外手語翻譯研究:歷史與現狀[[Jl.上海翻譯,2009 (2):23-28.
[2]張思遠.優勢視角下聾啞人社會融合研究[D],貴陽:貴州大學,2015.
[3]王賦攀,吳亞東,楊文超,等.一種視覺信息融合數據手套設計研究[J].計算機研究與發展,2018,55(12):182-192.
[4]任海兵,祝遠新,徐光祐,等.基于視覺手勢識別的研究一綜述[Jl.電子學報,2000,28(2):118-121.
[5]呂蕾,張金玲,朱英杰,等.一種基于數據手套的靜態手勢識別方法[J].計算機輔助設計與圖形學學報,2015(12):2410-2418.
【通聯編輯:朱寶貴】
基金項目:湖南省自然科學基金省市聯合基金項目(2019JJ60054);2018年湖南省教育廳普通高校教學改革研究項目([2018]436號一441);2018年國家級大學生創新訓練項目(201811535011)
作者簡介:陳建國(1998-),男,本科在讀;通信作者:鄧曉軍(1974-),男,教授,主要從事大學生創新創業教育。