吳振宇, 吳冀平, 蔡天馳, 吳 凡
(大連理工大學 創新創業學院, 遼寧 大連 116024)
培養和提升大學生的創新創業能力,是國家對高校的基本要求,有助于服務創新型社會,助推國家的創新發展[1-2]。手勢是一種自然、直觀的人機交互手段,以手勢作為計算機的輸入,已經成為一種趨勢[3]。將結合電子、軟件、算法等學科的手勢識別技術作為創新實踐班創新教育的載體,能夠很好地激發學生的學習興趣。目前,國內對于手勢識別的研究處于試驗室探索階段,缺乏適用于本科學生學習的實驗平臺。
從創新實踐班的實驗教育需求出發,設計了包括嵌入式控制系統、頂層應用框架模塊、人工智能識別算法3個模塊的手勢識別實驗平臺。該平臺嵌入式部分為保證學生可自行改造采用紅外距離傳感陣列方案,摒棄常見的視覺或數據手套方案;應用框架部分搭建C#環境下的演示框架供學生修改,同時還提供案例應用供參考;識別算法部分提供二乘法、歐氏距離、決策樹、SVM、貝葉斯、回歸算法、神經網絡等人工智能常見算法演示代碼,實際開發中學生可自行調整算法參數或修改源代碼。平臺結構框圖如圖1所示。

圖1 實驗平臺結構框圖
平臺在設計階段采用模塊化思想,教學中采取小組式學習方式,學生自由選擇模塊學習,并以互補的原則加入學習小組,小組通過討論得出共同的研究目標,并通過合作完成既定目標[4]?;谄脚_開發的作品具有可穿戴屬性,符合可穿戴設備發展潮流,學生具有學習興趣,社會關注度高,在教學實踐中取得了良好效果[5]。學生基于平臺制作的優秀作品獲得省大學生創新創業年會“優秀創業項目”稱號。
目前常見的手勢識別技術按照手勢數據輸入方式可以分為基于視覺的手勢識別和基于傳感器手套的手勢識別2大類[6-7]。2種方案各具特點,基于視覺的方案利用攝像頭采集手勢圖像進行分析獲取數據,這是目前實際應用中最普遍的方法,但是對于目標手的位置和方向有一定要求[8-9]?;跀祿痔籽b置通過分布在用戶佩戴的手套內的數個傳感器采集關節角度、運動加速度等數據進行手勢識別。這種方案由于數據采集直接,識別效果好,但設備會阻礙手指感知、影響手指運動[10-11]。兩種方案追求高識別率使得造價高昂且技術復雜,不符合創新實踐班學生研究需要。
大阪大學、東京大學的學者先后提出了利用接觸電阻、骨傳聲等特征進行手勢識別的方法,識別率較低,但結構簡單成本低廉[12-13]。東京大學提出利用手腕輪廓推定手勢的方法,由于手指運動會導致手腕部的肌腱運動進而導致手腕表面輪廓變化。這一方案通過安裝在腕帶式裝置上的嵌入式系統控制紅外傳感器陣列捕捉手腕表面輪廓數據,進而推測手勢信息[14-15]。
本平臺采用基于手腕輪廓推測手勢信息的方法,采用新日本無線株式會社生產的NJL5901AR-1型光反射傳感器作為手腕輪廓采集單元核心器件,該器件將發射單元與接收單元集成在一起,體積僅為1.3 mm×1.6 mm×0.6 mm,輸出電流為400 μA[16]。傳感器僅可采集點狀區域內的手腕輪廓數據,故需要多組傳感器協同工作,本設計采用D觸發器構成的鏈式數據采集電路,如圖2所示。以STM32F103為核心的嵌入式系統僅提供時鐘信號CLK、觸發信號DIN各1路,將DIN置高后輸出1個時鐘鎖存,而后拉低DIN,此時D觸發器D1輸出端Q輸出高電平驅動紅外距離傳感器1采集數據,處理器通過R2取得DOUT處電壓UDOUT,此時CLK再輸出時鐘將高電平鎖存于D2,D1則鎖存低電平,此時UDOUT為采集傳感器2數據,依次類推。通過共用電源和地線,分時復用數據線簡化陣列布線,提高陣列密度,保證了平臺可穿戴屬性必須的輕便小巧特性。

圖2 總線式數據采集電路圖
上述方案設計、器件選擇及電路設計在實際實驗教學中僅作為參考方案提供給學生,學生可按照該方案,自行設計PCB電路與硬件外觀佩戴方式等,同時也鼓勵學生自行進行方案設計,指導老師會給以必要的幫助。圖3展示了部分學生設計的手腕輪廓采集裝置。

實驗教學中為在嵌入式編程教學中加入軟件算法內容,要求學生對手腕輪廓數據進行校正。圖4展示的是在1.5 mm反射距離下未經過校正的采集數據。相同的反射距離下,不同傳感器的UDOUT值都存在差異。誤差主要由紅外距離傳感器安裝位置、方向不一致以及器件本身工作曲線的不一致性導致。

圖4 存在誤差的反射距離測試數據
為解決上述誤差,要求學生在STM32嵌入式處理器內對數據進行校正,推薦算法如下:對每個傳感器構造反射距離D=Y(UDOUT)函數,即通過傳感器采集到的UDOUT值通過函數Y計算出實際的反射距離。函數Y由實驗數據進行多項式擬合得到,多項式擬合使用高斯-馬爾可夫定理。將每個傳感器不同反射距離下測量得到的AD數據經過以上方法擬合得到多項式各項的系數a[i]。接下來就可以通過
(1)
將傳感器測量的UDOUT數據轉化為真實的距離D。式中:Y(UDOUT)為UDOUT數據與反射距離的函數;m為矯正采用多項式的最高次冪,校正后的1.5 mm反射距離測試數據見圖5。由于不同硬件設計造成的誤差不同,實際教學中學生也可以自行計算并設計算法對手腕輪廓數據進行校正。

圖5 校正后的反射距離數據
圖形化軟件演示與學習單元作為實驗平臺的重要組成部分,分為數據采集、數據分析、應用3個部分。如圖6所示。數據采集部分可以調用存儲的案例手腕輪廓數據也通過串行接口與嵌入式硬件數據采集及處理單元對接,通過平臺定義的標準數據接口讀取手腕輪廓識別。數據分析和應用2個部分分別為模式識別算法設計模塊、頂層應用設計模塊的具體實現提供支持。

圖6 采用C#編寫的上位機測試程序
為了引導學生將模式識別算法應用到具有手勢識別功能的可穿戴設備中,平臺提供了二乘法、歐氏距離、決策樹、支持向量機、貝葉斯、回歸算法、神經網絡等示例算法,對采集到的手腕輪廓信息進行分析匹配。實驗教學中,學生可以調整算法參數觀察實驗結果也可以在Matlab軟件中查看算法實現過程。實驗要求學生針對小組設計的應用選擇合適的識別算法并進行修改達到應用需求。
以歐氏距離算法為例,該算法是基于實例學習的分類算法中比較常用的一種方案,基于統計的分類方法,是根據測試樣本在特征空間中若干個最鄰近樣本匯總的多數樣本的類別來進行分類,因此具有直觀、無需先驗統計知識等特點,從而成為非參數分類的一種重要方法。先期存儲S組不同手勢數據,每組為M個傳感器數據,數據x表示為{A1(x),A2(x),A3(x)……,AM(x)},并為每組數據設立手勢標簽。當需要識別的手勢信息到來時,系統計算待識別數據到S組數據的歐氏距離:
(2)
計算得到的d值最小的手勢即為當前手勢。
實驗平臺為學生提供了播放器控制、翻頁器、手語翻譯等可穿戴設備應用案例,方便學生直觀地觀察到平臺的實用性能,實驗教學中學生可以通過標準接口,直接調用前面單元輸出的手勢識別結果進行相應操作,例如識別到握拳即控制系統播放器切換到下一首音樂。教學中通常以手勢翻譯應用為例測試學生識別算法的有效性,測試過程如下:以拳、掌、一指、二指等4種基本手勢為1組,教師隨機選擇某一組數據組合提供給學生進行測試,以學生系統得出的混淆矩陣作為系統手勢識別準確度的評價標準。圖7所示為測試結果案例。

識別結果拳拇指二指掌識別率給定手勢拳20000100%拇指2171085%二指00200100%掌0002095%識別結果拳食指ok掌識別率給定手勢拳20000100%食指1190095%ok1019095%掌00020100%
圖7 識別結果混淆矩陣案例
本平臺總結多年可穿戴設備開發實驗教學經驗,以實用性為前提,引入前沿技術的同時加入模式識別相關內容,一方面提高了學生學習的積極性,另一方面也使得實驗教學貼近實際項目開發需求。平臺提供了實現可穿戴手勢識別系統設計所需的完整硬件基礎及軟件架構,提供了豐富的模式識別算法例程,給出了多種直觀的可穿戴手勢識別應用案例,有利于學生快速進行可穿戴應用開發,學習人工智能相關軟件算法設計、實現過程,降低學生學習難度的同時也引導學生自行設計并開發軟硬件模塊。該實驗平臺已經在我校創新創業學院機電創新實踐班及VR實驗室使用,取得了良好教學效果,得到學生的一致好評。