吳煥斌 張文山 俞 政
?
基于數(shù)據(jù)手套的動態(tài)手勢識別嵌入式平臺
吳煥斌 張文山 俞 政
本文論述了嵌入式環(huán)境下的動態(tài)手勢平臺搭建方法以及基于數(shù)據(jù)手套的動態(tài)手勢識別方案框架,分析了需要采用的關(guān)鍵技術(shù)。
近年來,虛擬現(xiàn)實領(lǐng)域發(fā)展迅速,虛擬現(xiàn)實領(lǐng)域的發(fā)展為現(xiàn)代社會提供了全新的人機(jī)交互方式,用戶可以利用人類本能的方式與計算機(jī)信息打交道。正是由于虛擬現(xiàn)實技術(shù)的發(fā)展,基于鼠標(biāo)、鍵盤的交互工具和傳統(tǒng)的交互界面已不能適應(yīng)在虛擬環(huán)境中進(jìn)行交互的需要,而手勢、立體顯示等更自然的交互通道極大地提高了人機(jī)交互的自然性和高效性,逐漸成為國內(nèi)外研究的熱點。手勢識別技術(shù)是虛擬現(xiàn)實領(lǐng)域中十分重要的研究方向,目前在手勢識別軟件的研究上有基于視覺的手勢識別和數(shù)據(jù)手套手勢識別軟件,但是都是基于通用電腦來實現(xiàn),其設(shè)備龐大,應(yīng)用不方便。當(dāng)前手勢識別技術(shù)在嵌入式軟件的應(yīng)用僅停留在動作感知技術(shù),主要應(yīng)用是在手機(jī)上的動作感知,用戶通過揮動、搖動、滾動手機(jī)來實現(xiàn)瀏覽圖片、播放音樂和進(jìn)行游戲操作,無法真正實現(xiàn)手部動作的手勢識別。
本文提出了一種面向動態(tài)手勢識別數(shù)據(jù)手套產(chǎn)品嵌入式系統(tǒng),通過對數(shù)據(jù)手套的擴(kuò)展應(yīng)用、運行于嵌入式系統(tǒng)以實現(xiàn)動態(tài)手勢識別,可實時的識別手部動作并通過圖像、文字或聲音的方式展示出來,應(yīng)用于嵌入式系統(tǒng)中。本項目的研究和應(yīng)用可有力促進(jìn)動態(tài)手勢識別技術(shù)在嵌入式系統(tǒng)上的應(yīng)用和發(fā)展,成果可以廣泛應(yīng)用于人機(jī)交互科普展項設(shè)計、聾啞人群與正常人之間的交流等場合。
本文提出了一種基于數(shù)據(jù)手套的動態(tài)手勢識別嵌入式平臺,該平臺由傳感器、ZigBee終端節(jié)點、ZigBee協(xié)調(diào)器、室內(nèi)嵌入式平臺組成室內(nèi)局域網(wǎng)絡(luò),并通過智能網(wǎng)關(guān)、路由器將初步采集處理的數(shù)據(jù)經(jīng)由互聯(lián)網(wǎng)發(fā)送到云端服務(wù)器進(jìn)行融合分析處理,遠(yuǎn)端嵌入式平臺進(jìn)行也可隨時接收數(shù)據(jù)。具體的系統(tǒng)構(gòu)圖如圖1所示。
如系統(tǒng)結(jié)構(gòu)圖所示,數(shù)據(jù)手套各個節(jié)點的數(shù)據(jù)通過控制器與zigbee節(jié)點進(jìn)行數(shù)據(jù)傳輸。智能網(wǎng)關(guān)連接ZigBee協(xié)調(diào)器和室內(nèi)嵌入式平臺,采用ENC28J60以太網(wǎng)模塊編程實現(xiàn),用于將ZigBee局域網(wǎng)中的數(shù)據(jù)轉(zhuǎn)化成可以在以太網(wǎng)傳輸。通過路由器的轉(zhuǎn)發(fā),可以將傳感器的數(shù)據(jù)傳輸至云端的服務(wù)器。云端服務(wù)器相比較于本地服務(wù)器而言,維護(hù)成本較低,并且只要用戶可以訪問互聯(lián)網(wǎng),就能通過Android控制終端在任何地點訪問獲取云服務(wù)器中的數(shù)據(jù)。云端服務(wù)器采用阿里云的云服務(wù)器架構(gòu),并對其進(jìn)行二次開發(fā)。用于接收傳感器數(shù)據(jù),并進(jìn)行處理分析。室內(nèi)和遠(yuǎn)端的嵌入式平臺可以采用Android平臺,室內(nèi)直接采集智能網(wǎng)關(guān)中的數(shù)據(jù),遠(yuǎn)端的接收云端服務(wù)器傳輸?shù)臄?shù)據(jù),用戶可以在上面查看數(shù)據(jù)手套的數(shù)據(jù)模型。
本文提出的嵌入式平臺主要采用基于linux內(nèi)核的Android平臺,搭建該平臺的關(guān)鍵技術(shù)如下。
(1)Android嵌入式環(huán)境下的Java虛擬機(jī)(Dalvik)性能優(yōu)化技術(shù)
Java虛擬機(jī)(Dalvik)由于對平臺無關(guān)性的要求,采用執(zhí)行字節(jié)碼(bytecode)的方式一般說來會導(dǎo)致其執(zhí)行速度會稍慢。從最底層對虛擬機(jī)的實現(xiàn)進(jìn)行深入研究,使JVM可基于應(yīng)用程序本身的運行條件和底層環(huán)境自動調(diào)整它自己的行為,從而交付貫穿應(yīng)用程序生存期的最佳性能、可伸縮性和可靠性。其中自適應(yīng)優(yōu)化的技術(shù)難點是:如何建立執(zhí)行方式的自適應(yīng)調(diào)度模型,通過監(jiān)視代理機(jī)制,根據(jù)代碼的執(zhí)行情況,智能動態(tài)地選擇按解釋技術(shù)或本地代碼執(zhí)行方式。
(2)Android嵌入式環(huán)境下3D動態(tài)手勢還原虛擬技術(shù)

圖1 系統(tǒng)架構(gòu)圖
Android嵌入式環(huán)境下3D動態(tài)手勢還原虛擬技術(shù)就是建立Android嵌入式環(huán)境下的OpenGL ES 3D游戲引擎,利用android.opengl的API來實現(xiàn)。通過OpenGL 的 API , Android 能夠提供高性能的 3D 圖像。OpenGL 的 EGL 接口,是 OpenGL ES 和底層 Native平臺視窗系統(tǒng)之間的接口。
(3)嵌入式環(huán)境3D建模運動控制技術(shù)
整個建模技術(shù)操作系統(tǒng)平臺建立在嵌入式操作系統(tǒng)的基礎(chǔ)上,如Android操作系統(tǒng)(內(nèi)核為Linux操作系統(tǒng))進(jìn)行Opengl3維模型,有的嵌入式終端硬件平臺直接支持Opengl平臺,為3D模型構(gòu)建好了平臺。以高效,快速的開發(fā)工具迅速構(gòu)建高度逼真的3D手部模型為基礎(chǔ),采用科學(xué)的數(shù)據(jù)以及主流的編程語言為結(jié)構(gòu)為手段,搭建以智能嵌入式終端為載體,擁有自主知識產(chǎn)權(quán)和專利的手語識別的算法的核心技術(shù)產(chǎn)品。
本文著重提出了嵌入式環(huán)境下的動態(tài)手勢平臺搭建方法以及基于數(shù)據(jù)手套的動態(tài)手勢識別方案框架,主要的創(chuàng)新點如下。
(1)創(chuàng)新的使用加速度傳感器偵測手部動作
本文數(shù)據(jù)手套采用加速度傳感器來偵測手部的平移、轉(zhuǎn)動、翻轉(zhuǎn)等動作,根據(jù)加速度傳感器檢測的矢量加速度值結(jié)合三維空間運動矢量關(guān)系,通過拉格朗日函數(shù)可以精確的計算出傳感器的在三維空間中姿勢的矢量數(shù)據(jù),達(dá)到動作識別效果。
(2)基于彎曲傳感器的手指運動偵測算法研究
本文數(shù)據(jù)手套采用壓電式彎曲傳感器來偵測手指的彎曲、伸展等動作,通過安裝在手部各個手指關(guān)節(jié)位置的彎曲傳感器,可以實時的把手指的彎曲狀態(tài)通過傳感器的電阻變化反映出來,彎曲傳感器的電阻值的變化與彎曲角度通過特定的算法呈對應(yīng)關(guān)系。
(3)基于動作承續(xù)的手勢語識別算法
本文研究的基于動作承續(xù)的手勢語識別算法,是一種不同于基于時間幀手勢語識別的算法,采用先進(jìn)的數(shù)據(jù)存儲結(jié)構(gòu)排列,支持海量詞組或語句的大規(guī)模識別,可以快速識別相對應(yīng)的手勢語并翻譯,因為不受手勢語動作發(fā)生的時間間隔限制,大大提高了手語識別精度,效率,可操作性和靈活性。
(4)智能動態(tài)手勢識別及嵌入式3D動態(tài)手勢應(yīng)用展現(xiàn)模式
本文研發(fā)的面向動態(tài)手勢識別數(shù)據(jù)手套產(chǎn)品的嵌入式軟件是一款基于Android系統(tǒng)的動態(tài)手勢識別應(yīng)用軟件,可廣泛適用于基于Android平臺的各種智能移動終端,為動態(tài)手勢識別技術(shù)在嵌入式軟件應(yīng)用領(lǐng)域發(fā)展開創(chuàng)了一個新的篇章。
吳煥斌1張文山1俞 政2
1.廣東科學(xué)中心;2.華南理工大學(xué)
10.3969/j.issn.1001-8972.2016.11.018