劉祚時(shí) 楊國(guó)煒
1(江西理工大學(xué)機(jī)電工程學(xué)院 江西 贛州 341000) 2(江西理工大學(xué)電氣工程與自動(dòng)化學(xué)院 江西 贛州 341000)
基于傳感器的手勢(shì)識(shí)別,可分為接觸式和非接觸式[1]。接觸式的實(shí)現(xiàn)方案有基于數(shù)據(jù)手套的手勢(shì)識(shí)別[2]、基于慣性傳感器手的勢(shì)識(shí)別[3]等,非接觸式的實(shí)現(xiàn)方案有基于視覺(jué)的手勢(shì)識(shí)別[4-5]、基于紅外傳感器的手勢(shì)識(shí)別、基于超聲波的手勢(shì)識(shí)別和基于電磁信號(hào)的手勢(shì)識(shí)別。
傳統(tǒng)的識(shí)別方法主要有模板匹配、神經(jīng)網(wǎng)絡(luò)和馬爾科夫模型等。隨著ARM(Advanced RISC Machine)嵌入式處理器的崛起,高速的數(shù)據(jù)處理性能為一些復(fù)雜算法提供了載體,如深度神經(jīng)網(wǎng)絡(luò)。深度神經(jīng)網(wǎng)絡(luò)運(yùn)用在圖像領(lǐng)域也相當(dāng)廣泛,相關(guān)檢測(cè)算法如 Faster R-CNN[6]、YOLO、SSD[7],這些算法在目標(biāo)檢測(cè)領(lǐng)域具有舉足輕重的作用。王錕等[8]提出了一種基于SSD卷積神經(jīng)網(wǎng)絡(luò)的嵌入式手勢(shì)檢測(cè)算法,張金等[9]提出一種基于改進(jìn)的 Faster RCNN 的手勢(shì)識(shí)別算法,這些算法在獲得高精度檢測(cè)的同時(shí),也要依賴于圖形處理器的強(qiáng)大計(jì)算能力,算法的復(fù)雜程度和圖像處理能力決定了目標(biāo)識(shí)別的實(shí)時(shí)性好壞。
這些算法應(yīng)用在一些智能玩具、智能家居等手勢(shì)種類不是很多且復(fù)雜的智能產(chǎn)品上時(shí)實(shí)時(shí)性較低。本文基于紅外傳感器PAJ7620,設(shè)計(jì)了手勢(shì)檢測(cè)算法。本文創(chuàng)新點(diǎn)在于擺脫了傳統(tǒng)穿戴式手勢(shì)檢測(cè)設(shè)備,增加了人機(jī)交互體感。同時(shí)與一些復(fù)雜的手勢(shì)檢測(cè)算法相比,誤檢率較低,實(shí)時(shí)性更好。
如圖1所示,在紅外傳感器圓周分布四個(gè)紅外發(fā)光二極管,分別為L(zhǎng)ED1、LED2、LED3、LED4(以下簡(jiǎn)稱D1、D2、D3、D4),紅外接收器位于正中心。采用這種排列方式避免了在手勢(shì)識(shí)別過(guò)程中存在死角的問(wèn)題。
圖1 多光源紅外LED陣列分布圖
當(dāng)沒(méi)有手勢(shì)進(jìn)入陣列模型時(shí),紅外接收器接收不到任何反射光,輸出電壓幅值為±0.002 V。當(dāng)有運(yùn)動(dòng)手勢(shì)靠近紅外傳感器陣列時(shí),發(fā)射出的紅外光被物體阻隔形成光強(qiáng)反差,經(jīng)ADC轉(zhuǎn)換將光強(qiáng)信號(hào)轉(zhuǎn)換為電信號(hào)后保存在相應(yīng)的寄存器中。如圖2所示,以單光源LED1為例,手勢(shì)越靠近光源輸出信號(hào)越大,遠(yuǎn)離光源輸出信號(hào)越來(lái)越小。
圖2 單光源LED輸出波形檢測(cè)
1.2.1手勢(shì)定義
本文定義了幾種能在黑暗或低光環(huán)境下易被識(shí)別的手勢(shì),分別是“上”、“下”、“左”、“右”、“順時(shí)針旋轉(zhuǎn)”、“逆時(shí)針旋轉(zhuǎn)”、“接近”。其中八種手勢(shì)如表1所示。
表1 手勢(shì)定義
1.2.2實(shí)驗(yàn)平臺(tái)
本實(shí)驗(yàn)經(jīng)外設(shè)IIC接口實(shí)現(xiàn)PAJ7620與微處理器STM32F103的通信。運(yùn)動(dòng)手勢(shì)經(jīng)手勢(shì)分類算法識(shí)別后觸發(fā)中斷實(shí)時(shí)在LCD屏幕上顯示手勢(shì)結(jié)果。微處理自帶的ADC采樣模塊采集紅外傳感器數(shù)據(jù)信息并通過(guò)串口自定義協(xié)議對(duì)采集的數(shù)據(jù)在上位機(jī)上進(jìn)行波形分析,實(shí)驗(yàn)平臺(tái)架構(gòu)框圖如圖3所示。
圖3 實(shí)驗(yàn)平臺(tái)架構(gòu)框圖
如圖4所示,PAJ7620工作時(shí)通過(guò)內(nèi)部LED驅(qū)動(dòng)電路,驅(qū)動(dòng)紅外LED向外發(fā)射紅外線信號(hào),紅外接收器感知運(yùn)動(dòng)手勢(shì)反射的光照強(qiáng)度,經(jīng)信號(hào)調(diào)理電路后輸出電信號(hào)并保存在相應(yīng)的寄存器組中,同時(shí)對(duì)特征數(shù)據(jù)進(jìn)行采樣分析,最后將手勢(shì)結(jié)果存到存儲(chǔ)單元中。
圖4 手勢(shì)識(shí)別系統(tǒng)硬件圖
1.2.3識(shí)別模式算法
在紅外LED陣列中,動(dòng)態(tài)手勢(shì)識(shí)別過(guò)程中能夠提取到幾種手勢(shì)特征量包括手勢(shì)的亮度、手勢(shì)的位置及手勢(shì)的方向。該算法的流程框圖如圖5所示,通過(guò)對(duì)這三種手勢(shì)特征量的分析能夠快速、準(zhǔn)確地對(duì)手勢(shì)進(jìn)行識(shí)別和分類。
圖5 手勢(shì)識(shí)別模式算法框圖
1.2.4手勢(shì)數(shù)據(jù)預(yù)處理
為防止手勢(shì)誤動(dòng)作對(duì)手勢(shì)的分類識(shí)別造成影響,增加了溫度傳感器來(lái)排除錯(cuò)誤手勢(shì)。手勢(shì)的運(yùn)動(dòng)檢測(cè)包括手勢(shì)開始和結(jié)束檢測(cè)以及手勢(shì)溫度檢測(cè)。經(jīng)實(shí)驗(yàn)統(tǒng)計(jì),正確手勢(shì)在采樣周期內(nèi)溫差變化大于ΔT(ΔT=0.5°)。當(dāng)手勢(shì)開始進(jìn)入紅外場(chǎng)時(shí),不管從哪個(gè)方向進(jìn)入,所有紅外LED反射強(qiáng)度總和都會(huì)快速上升,當(dāng)手離開時(shí),紅外反射強(qiáng)度下降并趨于穩(wěn)定。通過(guò)這個(gè)特性,可以設(shè)置門限閾值判斷手勢(shì)起點(diǎn)和終點(diǎn)。手勢(shì)起點(diǎn)終點(diǎn)檢測(cè)方法如下:
(1)
(1) 當(dāng)Sk(i-1) (2) 當(dāng)Sk(j)>q>Sk(j+1)時(shí),End=j。 式中:m表示紅外LED總數(shù),Xk(i)表示第k個(gè)紅外LED反射信號(hào)的值,n代表采樣點(diǎn)個(gè)數(shù),q是手勢(shì)起點(diǎn)和終點(diǎn)的檢測(cè)閾值。為保證采樣的正確性,保留5個(gè)采樣點(diǎn),則手勢(shì)動(dòng)作采樣區(qū)間為[i-5,j+5],采樣長(zhǎng)度length=j-i+10。 2.1.1手勢(shì)信號(hào)的亮度 接近檢測(cè)下,當(dāng)手勢(shì)在PAJ7620的有效檢測(cè)距離內(nèi),從最高高度到最低高度連續(xù)測(cè)試并將輸出信號(hào)保存在寄存器中,從低到高將每個(gè)采樣時(shí)刻對(duì)應(yīng)輸出信號(hào)進(jìn)行量化,得到量化后τ時(shí)刻的手勢(shì)亮度值Eτ在0~255之間。亮度值計(jì)算公式如下所示: (2) (3) 2.1.2手勢(shì)信號(hào)的位置 假定紅外LED發(fā)射的紅外線呈球形分散,且光強(qiáng)均勻分布。因手掌形狀不規(guī)則現(xiàn)只考慮將手當(dāng)作一個(gè)質(zhì)點(diǎn)。圖6和圖7分別為τ時(shí)刻手勢(shì)距離幾何中心O點(diǎn)的X軸向位置Xτ和Y軸向位置Yτ的原理示意,結(jié)合得到手勢(shì)在τ時(shí)刻數(shù)學(xué)模型中的相對(duì)位置Lτ=(Xτ,Yτ)。 圖6 X軸向位置計(jì)算原理示意圖 圖7 Y軸向位置計(jì)算原理示意圖 1) X、Y軸向位置Xτ、Yτ估算: (4) (5) R1=C×t1R2=C×t2 (6) R3=C×t1R4=C×t2 (7) 式中:d為D1和D2或D3和D4之間的距離;C為光在真空中傳播速度;t1、t3為τ時(shí)刻D1、D3從開始發(fā)射紅外光到接收反射光需要的時(shí)間的一半;t2、t4為τ時(shí)刻D2、D4從開始發(fā)射紅外光到接收反射光需要的時(shí)間的一半。 2) 手勢(shì)位置信息閾值計(jì)算: 本文對(duì)一個(gè)采樣周期[0,T]采集的數(shù)據(jù)作差分: ΔXτ=|Xτ-Xτ-1|;ΔYτ=|Yτ-Yτ-1| (8) 再以差分絕對(duì)值之和作為分離揮動(dòng)類手勢(shì)和旋轉(zhuǎn)類手勢(shì)的特征量,為了避免擾動(dòng)引入均值濾波的方法作為判斷依據(jù): (9) (10) 式中:HXθ、HYθ為閾值,n為采樣點(diǎn)數(shù)目。 2.1.3手勢(shì)信號(hào)的方向 當(dāng)手向右揮動(dòng)時(shí),D1發(fā)射的紅外光將首先被反射并被紅外傳感器PAJ7620接收并處理,如圖8所示,D1波形的波峰靠左,D2波形的波峰在最右邊,D3波形的波峰在中間,左揮方向判別和右揮類似。另外,手向上揮動(dòng)的波形圖如圖9所示,手勢(shì)先經(jīng)過(guò)D1、D2,所以D1、D2波形的波峰靠左,其后為D3,下?lián)]方向判別和上揮類似?;谶@個(gè)原理通過(guò)計(jì)算它們波峰之間的時(shí)間差,即可判斷手在揮動(dòng)時(shí)的方向。 圖8 右揮信號(hào)輸出波形圖 圖9 上揮信號(hào)輸出波形圖 基于手勢(shì)特征捕捉陣列提取的兩種特征量:手勢(shì)信號(hào)的亮度、手勢(shì)信號(hào)的位置,設(shè)計(jì)了兩層決策樹分類器,能夠有效地對(duì)運(yùn)動(dòng)手勢(shì)快速分離、簡(jiǎn)化算法。 第一層: 在自定義手勢(shì)中只有接近類在手勢(shì)亮度特征中的變化程度最大,經(jīng)接近類手勢(shì)訓(xùn)練得出一個(gè)亮度變化閾值,若手勢(shì)亮度變化程度大于這個(gè)閾值,分類為接近類。 第二層: 依據(jù)手勢(shì)閾值信息HXθ、HYθ進(jìn)行分類,揮動(dòng)類手勢(shì)(以手向右揮為例)從手勢(shì)進(jìn)入到手勢(shì)結(jié)束,手勢(shì)位置信息Yτ在整個(gè)采樣時(shí)間區(qū)間內(nèi)變化很小。而旋轉(zhuǎn)類手勢(shì)(以順時(shí)針旋轉(zhuǎn)為例)從手勢(shì)進(jìn)入到手勢(shì)結(jié)束,手勢(shì)位置信息Yτ在整個(gè)采樣時(shí)間區(qū)間內(nèi)呈U型曲線變化,由此可區(qū)分揮動(dòng)類和旋轉(zhuǎn)類。 依據(jù)這兩層信息進(jìn)行分類器的設(shè)計(jì),流程圖如圖10所示。 圖10 分類器設(shè)計(jì)流程 2.3.1接近類手勢(shì)識(shí)別 接近類手勢(shì)與其他類手勢(shì)的區(qū)別在于采樣期間內(nèi)紅外LED特征提取陣列提取的手勢(shì)亮度信息之間的差異。就揮動(dòng)類和旋轉(zhuǎn)類而言,手勢(shì)在一個(gè)二維平面內(nèi)運(yùn)動(dòng),即使存在抖動(dòng)因素,其提取的亮度特征值也是在小范圍內(nèi)變化。而接近類手勢(shì)是直上直下運(yùn)動(dòng),其手勢(shì)亮度變化值很大。經(jīng)三種手勢(shì)訓(xùn)練統(tǒng)計(jì)分析得到,揮動(dòng)類、旋轉(zhuǎn)類的手勢(shì)亮度值在30范圍內(nèi)變化,由此可以將分離接近類手勢(shì)和其他手勢(shì)的閾值確定為30。 接近類手勢(shì)方向識(shí)別:在整個(gè)采樣周期區(qū)間[0,T]內(nèi)對(duì)手勢(shì)亮度值運(yùn)用數(shù)學(xué)歸納法對(duì)手勢(shì)方向進(jìn)行判斷,若E0 2.3.2揮動(dòng)類手勢(shì)識(shí)別 揮動(dòng)類手勢(shì)的識(shí)別基于手勢(shì)位置特征(Xτ,Yτ)來(lái)判斷,從整個(gè)采樣區(qū)間來(lái)看揮動(dòng)類手勢(shì)Xτ或Yτ隨時(shí)間推移不斷增大至超出紅外傳感器檢測(cè)范圍,而Yτ或Xτ幾乎變化不大。如圖11所示,當(dāng)手勢(shì)為從左到右或者從右到左揮動(dòng)時(shí),其位置信息Yτ<25。當(dāng)手勢(shì)從上到下或者從下到上揮動(dòng)時(shí),其位置信息Xτ<20。經(jīng)大量訓(xùn)練統(tǒng)計(jì)左右揮動(dòng)時(shí)HYθ閾值在5左右,上下?lián)]動(dòng)時(shí)HXθ閾值在10左右。利用HXθ>10或HYθ>5可以分離左右揮動(dòng)手勢(shì)和上下?lián)]動(dòng)手勢(shì)。 圖11 揮動(dòng)手勢(shì)位置特征信息輸出波形圖 揮動(dòng)類手勢(shì)方向識(shí)別:在分離出左右揮動(dòng)和上下?lián)]動(dòng)手勢(shì)后,根據(jù)D1、D2、D3出現(xiàn)波峰位置的時(shí)間順序來(lái)判斷揮動(dòng)手勢(shì)的方向,T(d1)、T(d2)、T(d3)分別為紅外LED陣列中D1、D2、D3出現(xiàn)波峰位置時(shí)的時(shí)間點(diǎn),具體判斷如表2所示。 表2 揮動(dòng)類手勢(shì)方向判斷表 2.3.3旋轉(zhuǎn)類手勢(shì)識(shí)別 旋轉(zhuǎn)類手勢(shì)手勢(shì)起始位置通常都是隨機(jī)變化的,所以基于單一的位置信息不容易判別。但是結(jié)合揮動(dòng)類位置信息的閾值檢測(cè)與紅外LED陣列中D1、D2、D3依次出現(xiàn)波峰位置時(shí)間點(diǎn)的順序可以判別旋轉(zhuǎn)類手勢(shì)及方向。 若有連續(xù)的三次采樣時(shí)間點(diǎn)手勢(shì)的信息(ΔXτ>10|ΔYτ>5)&(ΔXτ+1>10|ΔYτ+1>5)&(ΔXτ+2>10|ΔYτ+2>5),則可判斷為旋轉(zhuǎn)類手勢(shì)。 旋轉(zhuǎn)類手勢(shì)方向識(shí)別:同揮動(dòng)類手勢(shì)方向判斷類似具體判斷如表3所示。 表3 旋轉(zhuǎn)類手勢(shì)方向判斷表 為了驗(yàn)證本文設(shè)計(jì)的基于紅外LED陣列技術(shù)檢測(cè)動(dòng)態(tài)手勢(shì)的有效性,分別對(duì)自定義的8種常見手勢(shì):接近類(從上到下、從下到上);揮動(dòng)類(從左到右、從右到左、從前到后、從后到前)、旋轉(zhuǎn)類(順時(shí)針旋轉(zhuǎn)、逆時(shí)針旋轉(zhuǎn))進(jìn)行識(shí)別,實(shí)驗(yàn)測(cè)試中對(duì)每類手勢(shì)重復(fù)識(shí)別 100次,共計(jì)800個(gè)實(shí)驗(yàn)樣本,識(shí)別的最終結(jié)果如表4所示,平均識(shí)別率為 94.63% 。從識(shí)別效果來(lái)看,基于紅外LED陣列技術(shù)應(yīng)用在對(duì)常見手勢(shì)的識(shí)別中效率性和準(zhǔn)確性都很高。表中誤差最大的是旋轉(zhuǎn)類識(shí)別,由于手指連接著手掌以及手掌和手臂的連接處具有較大面積,在提取距離的特征量上比較模糊,進(jìn)而帶來(lái)手勢(shì)運(yùn)動(dòng)時(shí)距離分析的錯(cuò)誤。下一步應(yīng)該考慮如何提升算法的優(yōu)化問(wèn)題。 表4 八種手勢(shì)動(dòng)作的識(shí)別結(jié)果和識(shí)別精度表 在非接觸手勢(shì)識(shí)別的廣泛應(yīng)用和良好的人機(jī)交互體驗(yàn)下,本文設(shè)計(jì)了一種基于紅外LED陣列手勢(shì)識(shí)別系統(tǒng),該系統(tǒng)對(duì)常用手勢(shì)的識(shí)別準(zhǔn)確率高、抗干擾能力強(qiáng)、兼容性好?;谖恢眯畔⒌氖謩?shì)識(shí)別可以進(jìn)行復(fù)雜的二維手勢(shì)識(shí)別開發(fā)。此外,針對(duì)該系統(tǒng)有較高的手勢(shì)識(shí)別率和較好的環(huán)境光適應(yīng)能力可廣泛應(yīng)用在體感交互的智能設(shè)備上。2 手勢(shì)識(shí)別
2.1 信號(hào)特征提取
2.2 分類器設(shè)計(jì)
2.3 手勢(shì)識(shí)別的實(shí)現(xiàn)
3 實(shí)驗(yàn)結(jié)果
4 結(jié) 語(yǔ)