吳振宇, 吳冀平, 蔡天馳, 吳 凡
(大連理工大學(xué) 創(chuàng)新創(chuàng)業(yè)學(xué)院, 遼寧 大連 116024)
培養(yǎng)和提升大學(xué)生的創(chuàng)新創(chuàng)業(yè)能力,是國家對高校的基本要求,有助于服務(wù)創(chuàng)新型社會,助推國家的創(chuàng)新發(fā)展[1-2]。手勢是一種自然、直觀的人機(jī)交互手段,以手勢作為計算機(jī)的輸入,已經(jīng)成為一種趨勢[3]。將結(jié)合電子、軟件、算法等學(xué)科的手勢識別技術(shù)作為創(chuàng)新實踐班創(chuàng)新教育的載體,能夠很好地激發(fā)學(xué)生的學(xué)習(xí)興趣。目前,國內(nèi)對于手勢識別的研究處于試驗室探索階段,缺乏適用于本科學(xué)生學(xué)習(xí)的實驗平臺。
從創(chuàng)新實踐班的實驗教育需求出發(fā),設(shè)計了包括嵌入式控制系統(tǒng)、頂層應(yīng)用框架模塊、人工智能識別算法3個模塊的手勢識別實驗平臺。該平臺嵌入式部分為保證學(xué)生可自行改造采用紅外距離傳感陣列方案,摒棄常見的視覺或數(shù)據(jù)手套方案;應(yīng)用框架部分搭建C#環(huán)境下的演示框架供學(xué)生修改,同時還提供案例應(yīng)用供參考;識別算法部分提供二乘法、歐氏距離、決策樹、SVM、貝葉斯、回歸算法、神經(jīng)網(wǎng)絡(luò)等人工智能常見算法演示代碼,實際開發(fā)中學(xué)生可自行調(diào)整算法參數(shù)或修改源代碼。平臺結(jié)構(gòu)框圖如圖1所示。
圖1 實驗平臺結(jié)構(gòu)框圖
平臺在設(shè)計階段采用模塊化思想,教學(xué)中采取小組式學(xué)習(xí)方式,學(xué)生自由選擇模塊學(xué)習(xí),并以互補(bǔ)的原則加入學(xué)習(xí)小組,小組通過討論得出共同的研究目標(biāo),并通過合作完成既定目標(biāo)[4]?;谄脚_開發(fā)的作品具有可穿戴屬性,符合可穿戴設(shè)備發(fā)展潮流,學(xué)生具有學(xué)習(xí)興趣,社會關(guān)注度高,在教學(xué)實踐中取得了良好效果[5]。學(xué)生基于平臺制作的優(yōu)秀作品獲得省大學(xué)生創(chuàng)新創(chuàng)業(yè)年會“優(yōu)秀創(chuàng)業(yè)項目”稱號。
目前常見的手勢識別技術(shù)按照手勢數(shù)據(jù)輸入方式可以分為基于視覺的手勢識別和基于傳感器手套的手勢識別2大類[6-7]。2種方案各具特點,基于視覺的方案利用攝像頭采集手勢圖像進(jìn)行分析獲取數(shù)據(jù),這是目前實際應(yīng)用中最普遍的方法,但是對于目標(biāo)手的位置和方向有一定要求[8-9]?;跀?shù)據(jù)手套裝置通過分布在用戶佩戴的手套內(nèi)的數(shù)個傳感器采集關(guān)節(jié)角度、運動加速度等數(shù)據(jù)進(jìn)行手勢識別。這種方案由于數(shù)據(jù)采集直接,識別效果好,但設(shè)備會阻礙手指感知、影響手指運動[10-11]。兩種方案追求高識別率使得造價高昂且技術(shù)復(fù)雜,不符合創(chuàng)新實踐班學(xué)生研究需要。
大阪大學(xué)、東京大學(xué)的學(xué)者先后提出了利用接觸電阻、骨傳聲等特征進(jìn)行手勢識別的方法,識別率較低,但結(jié)構(gòu)簡單成本低廉[12-13]。東京大學(xué)提出利用手腕輪廓推定手勢的方法,由于手指運動會導(dǎo)致手腕部的肌腱運動進(jìn)而導(dǎo)致手腕表面輪廓變化。這一方案通過安裝在腕帶式裝置上的嵌入式系統(tǒng)控制紅外傳感器陣列捕捉手腕表面輪廓數(shù)據(jù),進(jìn)而推測手勢信息[14-15]。
本平臺采用基于手腕輪廓推測手勢信息的方法,采用新日本無線株式會社生產(chǎn)的NJL5901AR-1型光反射傳感器作為手腕輪廓采集單元核心器件,該器件將發(fā)射單元與接收單元集成在一起,體積僅為1.3 mm×1.6 mm×0.6 mm,輸出電流為400 μA[16]。傳感器僅可采集點狀區(qū)域內(nèi)的手腕輪廓數(shù)據(jù),故需要多組傳感器協(xié)同工作,本設(shè)計采用D觸發(fā)器構(gòu)成的鏈?zhǔn)綌?shù)據(jù)采集電路,如圖2所示。以STM32F103為核心的嵌入式系統(tǒng)僅提供時鐘信號CLK、觸發(fā)信號DIN各1路,將DIN置高后輸出1個時鐘鎖存,而后拉低DIN,此時D觸發(fā)器D1輸出端Q輸出高電平驅(qū)動紅外距離傳感器1采集數(shù)據(jù),處理器通過R2取得DOUT處電壓UDOUT,此時CLK再輸出時鐘將高電平鎖存于D2,D1則鎖存低電平,此時UDOUT為采集傳感器2數(shù)據(jù),依次類推。通過共用電源和地線,分時復(fù)用數(shù)據(jù)線簡化陣列布線,提高陣列密度,保證了平臺可穿戴屬性必須的輕便小巧特性。
圖2 總線式數(shù)據(jù)采集電路圖
上述方案設(shè)計、器件選擇及電路設(shè)計在實際實驗教學(xué)中僅作為參考方案提供給學(xué)生,學(xué)生可按照該方案,自行設(shè)計PCB電路與硬件外觀佩戴方式等,同時也鼓勵學(xué)生自行進(jìn)行方案設(shè)計,指導(dǎo)老師會給以必要的幫助。圖3展示了部分學(xué)生設(shè)計的手腕輪廓采集裝置。
實驗教學(xué)中為在嵌入式編程教學(xué)中加入軟件算法內(nèi)容,要求學(xué)生對手腕輪廓數(shù)據(jù)進(jìn)行校正。圖4展示的是在1.5 mm反射距離下未經(jīng)過校正的采集數(shù)據(jù)。相同的反射距離下,不同傳感器的UDOUT值都存在差異。誤差主要由紅外距離傳感器安裝位置、方向不一致以及器件本身工作曲線的不一致性導(dǎo)致。
圖4 存在誤差的反射距離測試數(shù)據(jù)
為解決上述誤差,要求學(xué)生在STM32嵌入式處理器內(nèi)對數(shù)據(jù)進(jìn)行校正,推薦算法如下:對每個傳感器構(gòu)造反射距離D=Y(UDOUT)函數(shù),即通過傳感器采集到的UDOUT值通過函數(shù)Y計算出實際的反射距離。函數(shù)Y由實驗數(shù)據(jù)進(jìn)行多項式擬合得到,多項式擬合使用高斯-馬爾可夫定理。將每個傳感器不同反射距離下測量得到的AD數(shù)據(jù)經(jīng)過以上方法擬合得到多項式各項的系數(shù)a[i]。接下來就可以通過
(1)
將傳感器測量的UDOUT數(shù)據(jù)轉(zhuǎn)化為真實的距離D。式中:Y(UDOUT)為UDOUT數(shù)據(jù)與反射距離的函數(shù);m為矯正采用多項式的最高次冪,校正后的1.5 mm反射距離測試數(shù)據(jù)見圖5。由于不同硬件設(shè)計造成的誤差不同,實際教學(xué)中學(xué)生也可以自行計算并設(shè)計算法對手腕輪廓數(shù)據(jù)進(jìn)行校正。
圖5 校正后的反射距離數(shù)據(jù)
圖形化軟件演示與學(xué)習(xí)單元作為實驗平臺的重要組成部分,分為數(shù)據(jù)采集、數(shù)據(jù)分析、應(yīng)用3個部分。如圖6所示。數(shù)據(jù)采集部分可以調(diào)用存儲的案例手腕輪廓數(shù)據(jù)也通過串行接口與嵌入式硬件數(shù)據(jù)采集及處理單元對接,通過平臺定義的標(biāo)準(zhǔn)數(shù)據(jù)接口讀取手腕輪廓識別。數(shù)據(jù)分析和應(yīng)用2個部分分別為模式識別算法設(shè)計模塊、頂層應(yīng)用設(shè)計模塊的具體實現(xiàn)提供支持。
圖6 采用C#編寫的上位機(jī)測試程序
為了引導(dǎo)學(xué)生將模式識別算法應(yīng)用到具有手勢識別功能的可穿戴設(shè)備中,平臺提供了二乘法、歐氏距離、決策樹、支持向量機(jī)、貝葉斯、回歸算法、神經(jīng)網(wǎng)絡(luò)等示例算法,對采集到的手腕輪廓信息進(jìn)行分析匹配。實驗教學(xué)中,學(xué)生可以調(diào)整算法參數(shù)觀察實驗結(jié)果也可以在Matlab軟件中查看算法實現(xiàn)過程。實驗要求學(xué)生針對小組設(shè)計的應(yīng)用選擇合適的識別算法并進(jìn)行修改達(dá)到應(yīng)用需求。
以歐氏距離算法為例,該算法是基于實例學(xué)習(xí)的分類算法中比較常用的一種方案,基于統(tǒng)計的分類方法,是根據(jù)測試樣本在特征空間中若干個最鄰近樣本匯總的多數(shù)樣本的類別來進(jìn)行分類,因此具有直觀、無需先驗統(tǒng)計知識等特點,從而成為非參數(shù)分類的一種重要方法。先期存儲S組不同手勢數(shù)據(jù),每組為M個傳感器數(shù)據(jù),數(shù)據(jù)x表示為{A1(x),A2(x),A3(x)……,AM(x)},并為每組數(shù)據(jù)設(shè)立手勢標(biāo)簽。當(dāng)需要識別的手勢信息到來時,系統(tǒng)計算待識別數(shù)據(jù)到S組數(shù)據(jù)的歐氏距離:
(2)
計算得到的d值最小的手勢即為當(dāng)前手勢。
實驗平臺為學(xué)生提供了播放器控制、翻頁器、手語翻譯等可穿戴設(shè)備應(yīng)用案例,方便學(xué)生直觀地觀察到平臺的實用性能,實驗教學(xué)中學(xué)生可以通過標(biāo)準(zhǔn)接口,直接調(diào)用前面單元輸出的手勢識別結(jié)果進(jìn)行相應(yīng)操作,例如識別到握拳即控制系統(tǒng)播放器切換到下一首音樂。教學(xué)中通常以手勢翻譯應(yīng)用為例測試學(xué)生識別算法的有效性,測試過程如下:以拳、掌、一指、二指等4種基本手勢為1組,教師隨機(jī)選擇某一組數(shù)據(jù)組合提供給學(xué)生進(jìn)行測試,以學(xué)生系統(tǒng)得出的混淆矩陣作為系統(tǒng)手勢識別準(zhǔn)確度的評價標(biāo)準(zhǔn)。圖7所示為測試結(jié)果案例。
識別結(jié)果拳拇指二指掌識別率給定手勢拳20000100%拇指2171085%二指00200100%掌0002095%識別結(jié)果拳食指ok掌識別率給定手勢拳20000100%食指1190095%ok1019095%掌00020100%
圖7 識別結(jié)果混淆矩陣案例
本平臺總結(jié)多年可穿戴設(shè)備開發(fā)實驗教學(xué)經(jīng)驗,以實用性為前提,引入前沿技術(shù)的同時加入模式識別相關(guān)內(nèi)容,一方面提高了學(xué)生學(xué)習(xí)的積極性,另一方面也使得實驗教學(xué)貼近實際項目開發(fā)需求。平臺提供了實現(xiàn)可穿戴手勢識別系統(tǒng)設(shè)計所需的完整硬件基礎(chǔ)及軟件架構(gòu),提供了豐富的模式識別算法例程,給出了多種直觀的可穿戴手勢識別應(yīng)用案例,有利于學(xué)生快速進(jìn)行可穿戴應(yīng)用開發(fā),學(xué)習(xí)人工智能相關(guān)軟件算法設(shè)計、實現(xiàn)過程,降低學(xué)生學(xué)習(xí)難度的同時也引導(dǎo)學(xué)生自行設(shè)計并開發(fā)軟硬件模塊。該實驗平臺已經(jīng)在我校創(chuàng)新創(chuàng)業(yè)學(xué)院機(jī)電創(chuàng)新實踐班及VR實驗室使用,取得了良好教學(xué)效果,得到學(xué)生的一致好評。