,
(中國科學技術大學精密機械與精密儀器系,安徽 合肥 230026)
隨著智能設備普及非接觸式的人機交互方式逐漸興起,基于Kinect,激光雷達,圖像等的新興人機交互方式逐漸成為研究的熱點。其中,手勢是人機交互的一個重要組成部分,許金鵬等使用圖像對靜態(tài)的手勢進行了識別[1],Yanmei Chen等使用體感控制器對手的動態(tài)軌跡進行了追蹤、分類[2]。近年來,基于多普勒效應的手勢識別方法也成為了一個研究的方向。
基于多普勒效應的手勢識別方法是由目標物體發(fā)出或者反射設備發(fā)出的超聲波、納米波信號,并對回波進行分析處理從而達到手勢識別的一種方法。由于用戶手在運動過程當中會與設備產(chǎn)生相對的速度,根據(jù)多普勒效應,作用在其上面的波會產(chǎn)生頻率的偏移,大多數(shù)基于主動波技術的手勢識別方法都基于這一原理。微軟公司的Sidhant Gupta等人利用筆記本電腦自帶的麥克風和揚聲器,使用快速傅里葉變換FFT對手勢進行了簡單的識別[3],楊曉東等通過surface平板自帶硬件實現(xiàn)了手勢的垂直方向的識別,并使用隱馬爾科夫模型HMM(hidden markov model)實現(xiàn)了對手勢的分類[4]。Gang Li等人使用連續(xù)波雷達對數(shù)據(jù)采集,并使用稀疏性驅動的方法提取了動態(tài)手勢識別的特征[5]。
以往的研究雖然取得了良好的效果,但也存在各種問題。例如,使用設備自身硬件所發(fā)出的超聲波中心頻率一般在20 kHz,這個頻段對動物和兒童會造成一定的影響。而使用雷達技術又會使成本升高、計算復雜??紤]到設備的功耗和成本問題,設計了一套基于超聲波的低功耗、低成本的手勢識別設備,對由手勢的運動引起的聲波信號的幅值和頻率變化進行分析,進而達到對手勢的識別。設備以意法半導體生產(chǎn)的STM32F407為核心,進行數(shù)據(jù)的采集、存儲、計算和傳輸,提供可供手勢識別的頻率信息和幅值信息。
提出的基于超聲波的手勢識別系統(tǒng),是通過設備發(fā)出頻率為40 kHz的連續(xù)超聲波信號,經(jīng)過物體反射后,對回波進行分析從而達到對手勢的識別效果。
垂直方向上,根據(jù)聲波的Doppler效應,目標物體的移動會造成頻率的移動。反射波的頻率的變化與物體運動速度的關系為:
(1)
f為聲波的原始頻率;v為聲波在空氣中的傳播速度;v0為目標物體與接收端的相對移動速度;f′為接收端接收到的聲波頻率。
由式(1)可以看出,當目標物體靠近接收端時,目標物體反射的聲波頻率會大于原始的聲波頻率;反之,頻率會降低。通過接收端聲波的頻率變化,可以判斷目標物體在垂直方向上的運動狀態(tài)。
水平方向上,設備由4個麥克風組成陣列,由于目標物體在識別范圍內(nèi)時會加大聲波的反射,接收到的聲波的幅值也會產(chǎn)生相應的變化,且幅值與距離成正相關。當目標物體從設備上方水平劃過時,引起的各麥克風的幅值變化會有一定的時間間隔。通過各通道麥克風幅值變化的時間差,可以計算用戶手在水平方向內(nèi)的運動方向。
硬件系統(tǒng)的功能由圖1所示,其功能主要為超聲信號的產(chǎn)生,4路超聲信號的接收及采集,以及數(shù)據(jù)的處理、存儲和結果的傳輸。系統(tǒng)以STM32F407為核心,使用定時器產(chǎn)生40 kHz的PWM信號驅動T.I.公司的MAX485芯片產(chǎn)生±5 V的差分電平,進而驅動TCT40-16T超聲波換能器來產(chǎn)生頻率為40 kHz的超聲波。超聲波的接收使用的是Knowles公司的SPU0410LR5H模擬MEMS麥克風,其在超聲頻段內(nèi)具有良好、穩(wěn)定的頻率響應。麥克風的輸出信號經(jīng)過反相放大器的偏置和放大,以82286的采樣頻率進行順序采集,使用雙緩沖進行數(shù)據(jù)的循環(huán)處理。被采集到的信號可以通過FATFS文件系統(tǒng)被保存到TF卡里,也可以經(jīng)過處理后將頻率、幅值信息通過USB和串口傳輸?shù)缴衔粰C,根據(jù)具體的需要實現(xiàn)手勢的分類、識別。
圖1 系統(tǒng)硬件框圖
設備的關鍵在于完整的提取超聲信號,這對麥克風電路及運算放大器均有一定的要求。由于信號頻率較高,以及系統(tǒng)供電方式的單一,要求運算放大器可以采用單端供電,并且具有很高的帶寬和壓擺率。選用T.I.公司的OPA356運算放大器來實現(xiàn)信號的放大。其供電范圍可以低至2.5 V,具有很高200 MHz的帶寬及360 V/μs的壓擺率,完全滿足使用的需求。
MEMS麥克風的輸出信號的直流分量在0.73 V,而單片機內(nèi)部的模數(shù)轉換器、的轉換范圍為0~3.3 V,所以選用圖2的電路圖對信號進行放大。其中C1是一個隔直電容,應當足夠大保證信號的完整,其與R1組成一個高通濾波器,可以過濾掉信號里的直流成分。放大倍數(shù)由-R2/R1確定,根據(jù)測試結果,將放大倍數(shù)選為20。C2是反饋電容,目的是補償運算放大器產(chǎn)生反相放大時產(chǎn)生的寄生電容,以免造成電路的不穩(wěn)定。
圖2 麥克風前置放大電路
設備成品如圖3所示,麥克風1、2、3、4放置為如圖所示的40 mm×40 mm的方陣,中心為超聲波發(fā)射裝置。此設備的成本約為50元,工作時功率在400 mW左右,實現(xiàn)了設備的低成本、低功耗。
圖3 設備成品
利用超聲波進行手勢識別的關鍵問題在于從信號中提取特征,以及根據(jù)特征來實現(xiàn)手勢的分類。由于在不同場合中對手勢分類的要求不同,本裝置在單片機內(nèi)只進行特征的提取,并將特征數(shù)據(jù)傳輸至上位機。
用戶手位置的變化會引起超聲波信號的頻移,所以對超聲波信號的頻率估計是特征提取的一個重點。根據(jù)式(1),考慮到正常情況下用戶揮手的速度不高于1.5 m/s,采集到的頻率是以40 kHz為中心,帶寬為1 400 Hz的正弦波信號,所以對正弦波信號的頻率的快速計算是特征提取的一個重點。沈艷林等使用相頻匹配的方法對非整周期的連續(xù)波雷達信號進行了頻率的估計[6],鄧振淼等使用改進的基于FFT的Rife對正弦波信號進行了計算[7]。但傳統(tǒng)方法往往比較復雜,且涉及到浮點運算,在單片機內(nèi)實現(xiàn)4通道的高采樣率實時頻率計算有一定的難度。這里采用一種改進的過零檢測的方法來對正弦波的進行頻率的估計。
傳統(tǒng)的過零檢測計算頻率的方法有很多的缺點,經(jīng)過對信號的處理分析,具體到本文的信號處理中主要有3點不足:
②實際使用過程當中,存在外界聲音的干擾,如環(huán)境噪聲、人聲等。這些噪聲40 kHz音頻的上體現(xiàn)為直流分量的疊加,使得正弦波的均值產(chǎn)生變化而無法檢測到零點。
③在手勢變化的過程中,會引起信號的急劇變化,造成正弦波偏移甚至無法檢測零點。
針對以上問題,對傳統(tǒng)的過零檢測發(fā)進行的改進,改善其對頻率估計的性能。假設麥克風接收到的信號為:
s(t) =A0cos(2πf0t+θ0)+
(2)
信號s(t)在采樣率fs=82 286下采樣N個點得到序列:
(3)
構造一個新數(shù)列:
x[K]=s[2K-1]-s[2K]
(4)
根據(jù)和差化積公式:
(5)
(6)
令:
(7)
原式可化為:
(8)
幅值信息的提取同樣依賴于式(8),使用絕對值累加并取平均數(shù)的方式作為這一時刻的能量值。除了用作用戶手在水平方向上的移動判斷,幅值還可用于監(jiān)測物體的存在與否。根據(jù)實驗結果,可以以幅值為250為閾值判斷設備上方物體到達的依據(jù)。
此外,由實際信號分析可知,物體在運動中有概率會造成短暫的信號偏離零線,此時可以由經(jīng)驗公式來判別。由于頻率的變化是連續(xù)的,選擇前兩個過零點的平均間距作為基準,與新檢測的零點間距作比較,如大于1.8倍間距,則根據(jù)倍數(shù)在其間進行差值,補足過零點的損失。
設備對數(shù)據(jù)的采集采用DMA雙緩沖模式,每次采樣4 100個點,約0.05 s。即在單片機內(nèi)使用兩個數(shù)組進行交替采集。當一個數(shù)組采集滿后進入中斷并進行頻率和幅值信息的計算,對外傳輸。ADC采集到的數(shù)據(jù)則自動存入另一個數(shù)組,交替往復實現(xiàn)對數(shù)據(jù)的實時監(jiān)測。
前文提到,基于主動超聲波技術的手勢識別主要針對垂直和水平兩個方向。用戶手在垂直方向上進行推拉動作,得到的頻率曲線和幅值曲線分別如圖4、圖5所示。
圖4 垂直方向做推拉動作的頻率曲線
從頻率圖中可以看出,頻率經(jīng)過了先升高再降低的過程,反映了用戶手靠近設備、遠離設備兩個過程。從幅值的變化也可以反映出這一現(xiàn)象。頻率的最高點和最低點對應的頻率分別為40 370 Hz和39 630 Hz,可以計算得到手推拉的速度約為0.75 m/s,符合預期。
圖5 垂直方向做推拉動作的幅值曲線
圖6 用戶手水平劃過的頻率曲線
圖7 用戶手水平劃過的幅值曲線
基于STM32F407設計了基于主動超聲波技術的可用于實現(xiàn)手勢識別的設備。使用4通道超聲性能穩(wěn)定的MEMS麥克風對信號進行采集。對信號使用頻率重新映射的過零檢測法對信號進行估計,并將頻率信息和幅值信息通過USB或串口發(fā)送至上位機。頻率和幅值信息可以較好的反應手勢的變化。
參考文獻:
[1] 許金鵬,張亞,呂鐵鋼,等. 基于MATLAB的靜態(tài)手勢分割與識別研究[J]. 機械與電子,2017,35(9):73-76.
[2] CHEN Y, DING Z, CHEN Y L, et al. Rapid recognition of dynamic hand gestures using leap motion[C]//Information and Automation, 2015 IEEE International Conference on. IEEE, 2015: 1419-1424.
[3] GUPTA S, MORRIS D, PATEL S, et al. Soundwave: using the doppler effect to sense gestures[C]//Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. ACM, 2012: 1911-1914.
[4] 楊曉東, 陳益強,于漢超,等. 面向可穿戴設備的超聲波手勢識別方法[J]. 計算機科學, 2015, 42 (10) :20-24.
[5] LI G, ZHANG R, RITCHIE M,et al. Sparsity-driven micro-doppler feature extraction for dynamic hand Gesture recognition[J]. IEEE Transactions on Aerospace and Electronic Systems, 2017,54(2):655-665.
[6] 沈艷林,涂亞慶,劉鵬,等.非整周期采樣信號頻率估計的頻匹配方法[J].儀器儀表學報,2015,36(6): 1221-1226.
[7] 鄧振淼,劉渝,王志忠. 正弦波頻率估計的修正Rife 算法[J]. 數(shù)據(jù)采集與處理, 2006, 21(4): 473-477.