劉祚時 楊國煒
1(江西理工大學機電工程學院 江西 贛州 341000) 2(江西理工大學電氣工程與自動化學院 江西 贛州 341000)
基于傳感器的手勢識別,可分為接觸式和非接觸式[1]。接觸式的實現方案有基于數據手套的手勢識別[2]、基于慣性傳感器手的勢識別[3]等,非接觸式的實現方案有基于視覺的手勢識別[4-5]、基于紅外傳感器的手勢識別、基于超聲波的手勢識別和基于電磁信號的手勢識別。
傳統的識別方法主要有模板匹配、神經網絡和馬爾科夫模型等。隨著ARM(Advanced RISC Machine)嵌入式處理器的崛起,高速的數據處理性能為一些復雜算法提供了載體,如深度神經網絡。深度神經網絡運用在圖像領域也相當廣泛,相關檢測算法如 Faster R-CNN[6]、YOLO、SSD[7],這些算法在目標檢測領域具有舉足輕重的作用。王錕等[8]提出了一種基于SSD卷積神經網絡的嵌入式手勢檢測算法,張金等[9]提出一種基于改進的 Faster RCNN 的手勢識別算法,這些算法在獲得高精度檢測的同時,也要依賴于圖形處理器的強大計算能力,算法的復雜程度和圖像處理能力決定了目標識別的實時性好壞。
這些算法應用在一些智能玩具、智能家居等手勢種類不是很多且復雜的智能產品上時實時性較低。本文基于紅外傳感器PAJ7620,設計了手勢檢測算法。本文創新點在于擺脫了傳統穿戴式手勢檢測設備,增加了人機交互體感。同時與一些復雜的手勢檢測算法相比,誤檢率較低,實時性更好。
如圖1所示,在紅外傳感器圓周分布四個紅外發光二極管,分別為LED1、LED2、LED3、LED4(以下簡稱D1、D2、D3、D4),紅外接收器位于正中心。采用這種排列方式避免了在手勢識別過程中存在死角的問題。

圖1 多光源紅外LED陣列分布圖
當沒有手勢進入陣列模型時,紅外接收器接收不到任何反射光,輸出電壓幅值為±0.002 V。當有運動手勢靠近紅外傳感器陣列時,發射出的紅外光被物體阻隔形成光強反差,經ADC轉換將光強信號轉換為電信號后保存在相應的寄存器中。如圖2所示,以單光源LED1為例,手勢越靠近光源輸出信號越大,遠離光源輸出信號越來越小。

圖2 單光源LED輸出波形檢測
1.2.1手勢定義
本文定義了幾種能在黑暗或低光環境下易被識別的手勢,分別是“上”、“下”、“左”、“右”、“順時針旋轉”、“逆時針旋轉”、“接近”。其中八種手勢如表1所示。

表1 手勢定義
1.2.2實驗平臺
本實驗經外設IIC接口實現PAJ7620與微處理器STM32F103的通信。運動手勢經手勢分類算法識別后觸發中斷實時在LCD屏幕上顯示手勢結果。微處理自帶的ADC采樣模塊采集紅外傳感器數據信息并通過串口自定義協議對采集的數據在上位機上進行波形分析,實驗平臺架構框圖如圖3所示。

圖3 實驗平臺架構框圖
如圖4所示,PAJ7620工作時通過內部LED驅動電路,驅動紅外LED向外發射紅外線信號,紅外接收器感知運動手勢反射的光照強度,經信號調理電路后輸出電信號并保存在相應的寄存器組中,同時對特征數據進行采樣分析,最后將手勢結果存到存儲單元中。

圖4 手勢識別系統硬件圖
1.2.3識別模式算法
在紅外LED陣列中,動態手勢識別過程中能夠提取到幾種手勢特征量包括手勢的亮度、手勢的位置及手勢的方向。該算法的流程框圖如圖5所示,通過對這三種手勢特征量的分析能夠快速、準確地對手勢進行識別和分類。

圖5 手勢識別模式算法框圖
1.2.4手勢數據預處理
為防止手勢誤動作對手勢的分類識別造成影響,增加了溫度傳感器來排除錯誤手勢。手勢的運動檢測包括手勢開始和結束檢測以及手勢溫度檢測。經實驗統計,正確手勢在采樣周期內溫差變化大于ΔT(ΔT=0.5°)。當手勢開始進入紅外場時,不管從哪個方向進入,所有紅外LED反射強度總和都會快速上升,當手離開時,紅外反射強度下降并趨于穩定。通過這個特性,可以設置門限閾值判斷手勢起點和終點。手勢起點終點檢測方法如下:
(1)
(1) 當Sk(i-1) (2) 當Sk(j)>q>Sk(j+1)時,End=j。 式中:m表示紅外LED總數,Xk(i)表示第k個紅外LED反射信號的值,n代表采樣點個數,q是手勢起點和終點的檢測閾值。為保證采樣的正確性,保留5個采樣點,則手勢動作采樣區間為[i-5,j+5],采樣長度length=j-i+10。 2.1.1手勢信號的亮度 接近檢測下,當手勢在PAJ7620的有效檢測距離內,從最高高度到最低高度連續測試并將輸出信號保存在寄存器中,從低到高將每個采樣時刻對應輸出信號進行量化,得到量化后τ時刻的手勢亮度值Eτ在0~255之間。亮度值計算公式如下所示: (2) (3) 2.1.2手勢信號的位置 假定紅外LED發射的紅外線呈球形分散,且光強均勻分布。因手掌形狀不規則現只考慮將手當作一個質點。圖6和圖7分別為τ時刻手勢距離幾何中心O點的X軸向位置Xτ和Y軸向位置Yτ的原理示意,結合得到手勢在τ時刻數學模型中的相對位置Lτ=(Xτ,Yτ)。 圖6 X軸向位置計算原理示意圖 圖7 Y軸向位置計算原理示意圖 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為τ時刻D1、D3從開始發射紅外光到接收反射光需要的時間的一半;t2、t4為τ時刻D2、D4從開始發射紅外光到接收反射光需要的時間的一半。 2) 手勢位置信息閾值計算: 本文對一個采樣周期[0,T]采集的數據作差分: ΔXτ=|Xτ-Xτ-1|;ΔYτ=|Yτ-Yτ-1| (8) 再以差分絕對值之和作為分離揮動類手勢和旋轉類手勢的特征量,為了避免擾動引入均值濾波的方法作為判斷依據: (9) (10) 式中:HXθ、HYθ為閾值,n為采樣點數目。 2.1.3手勢信號的方向 當手向右揮動時,D1發射的紅外光將首先被反射并被紅外傳感器PAJ7620接收并處理,如圖8所示,D1波形的波峰靠左,D2波形的波峰在最右邊,D3波形的波峰在中間,左揮方向判別和右揮類似。另外,手向上揮動的波形圖如圖9所示,手勢先經過D1、D2,所以D1、D2波形的波峰靠左,其后為D3,下揮方向判別和上揮類似。基于這個原理通過計算它們波峰之間的時間差,即可判斷手在揮動時的方向。 圖8 右揮信號輸出波形圖 圖9 上揮信號輸出波形圖 基于手勢特征捕捉陣列提取的兩種特征量:手勢信號的亮度、手勢信號的位置,設計了兩層決策樹分類器,能夠有效地對運動手勢快速分離、簡化算法。 第一層: 在自定義手勢中只有接近類在手勢亮度特征中的變化程度最大,經接近類手勢訓練得出一個亮度變化閾值,若手勢亮度變化程度大于這個閾值,分類為接近類。 第二層: 依據手勢閾值信息HXθ、HYθ進行分類,揮動類手勢(以手向右揮為例)從手勢進入到手勢結束,手勢位置信息Yτ在整個采樣時間區間內變化很小。而旋轉類手勢(以順時針旋轉為例)從手勢進入到手勢結束,手勢位置信息Yτ在整個采樣時間區間內呈U型曲線變化,由此可區分揮動類和旋轉類。 依據這兩層信息進行分類器的設計,流程圖如圖10所示。 圖10 分類器設計流程 2.3.1接近類手勢識別 接近類手勢與其他類手勢的區別在于采樣期間內紅外LED特征提取陣列提取的手勢亮度信息之間的差異。就揮動類和旋轉類而言,手勢在一個二維平面內運動,即使存在抖動因素,其提取的亮度特征值也是在小范圍內變化。而接近類手勢是直上直下運動,其手勢亮度變化值很大。經三種手勢訓練統計分析得到,揮動類、旋轉類的手勢亮度值在30范圍內變化,由此可以將分離接近類手勢和其他手勢的閾值確定為30。 接近類手勢方向識別:在整個采樣周期區間[0,T]內對手勢亮度值運用數學歸納法對手勢方向進行判斷,若E0 2.3.2揮動類手勢識別 揮動類手勢的識別基于手勢位置特征(Xτ,Yτ)來判斷,從整個采樣區間來看揮動類手勢Xτ或Yτ隨時間推移不斷增大至超出紅外傳感器檢測范圍,而Yτ或Xτ幾乎變化不大。如圖11所示,當手勢為從左到右或者從右到左揮動時,其位置信息Yτ<25。當手勢從上到下或者從下到上揮動時,其位置信息Xτ<20。經大量訓練統計左右揮動時HYθ閾值在5左右,上下揮動時HXθ閾值在10左右。利用HXθ>10或HYθ>5可以分離左右揮動手勢和上下揮動手勢。 圖11 揮動手勢位置特征信息輸出波形圖 揮動類手勢方向識別:在分離出左右揮動和上下揮動手勢后,根據D1、D2、D3出現波峰位置的時間順序來判斷揮動手勢的方向,T(d1)、T(d2)、T(d3)分別為紅外LED陣列中D1、D2、D3出現波峰位置時的時間點,具體判斷如表2所示。 表2 揮動類手勢方向判斷表 2.3.3旋轉類手勢識別 旋轉類手勢手勢起始位置通常都是隨機變化的,所以基于單一的位置信息不容易判別。但是結合揮動類位置信息的閾值檢測與紅外LED陣列中D1、D2、D3依次出現波峰位置時間點的順序可以判別旋轉類手勢及方向。 若有連續的三次采樣時間點手勢的信息(ΔXτ>10|ΔYτ>5)&(ΔXτ+1>10|ΔYτ+1>5)&(ΔXτ+2>10|ΔYτ+2>5),則可判斷為旋轉類手勢。 旋轉類手勢方向識別:同揮動類手勢方向判斷類似具體判斷如表3所示。 表3 旋轉類手勢方向判斷表 為了驗證本文設計的基于紅外LED陣列技術檢測動態手勢的有效性,分別對自定義的8種常見手勢:接近類(從上到下、從下到上);揮動類(從左到右、從右到左、從前到后、從后到前)、旋轉類(順時針旋轉、逆時針旋轉)進行識別,實驗測試中對每類手勢重復識別 100次,共計800個實驗樣本,識別的最終結果如表4所示,平均識別率為 94.63% 。從識別效果來看,基于紅外LED陣列技術應用在對常見手勢的識別中效率性和準確性都很高。表中誤差最大的是旋轉類識別,由于手指連接著手掌以及手掌和手臂的連接處具有較大面積,在提取距離的特征量上比較模糊,進而帶來手勢運動時距離分析的錯誤。下一步應該考慮如何提升算法的優化問題。 表4 八種手勢動作的識別結果和識別精度表 在非接觸手勢識別的廣泛應用和良好的人機交互體驗下,本文設計了一種基于紅外LED陣列手勢識別系統,該系統對常用手勢的識別準確率高、抗干擾能力強、兼容性好。基于位置信息的手勢識別可以進行復雜的二維手勢識別開發。此外,針對該系統有較高的手勢識別率和較好的環境光適應能力可廣泛應用在體感交互的智能設備上。2 手勢識別
2.1 信號特征提取





2.2 分類器設計

2.3 手勢識別的實現



3 實驗結果

4 結 語