瞿惠琴,吳孔培,葉 倩
(無錫職業(yè)技術(shù)學(xué)院 物聯(lián)網(wǎng)技術(shù)學(xué)院,江蘇 無錫 214121)
隨著智能穿戴設(shè)備及智能移動終端的普及,手勢識別在人機交互領(lǐng)域扮演著越來越重要的角色[1]。手勢識別技術(shù)分為接觸式和非接觸式2種類型,非接觸式手勢識別方法增加了人機交互的靈活性和適用性。大多數(shù)非接觸式手勢識別基于計算機視覺技術(shù)來實現(xiàn),但是基于視覺的識別方法一般對光線比較敏感、算法復(fù)雜度較高、需要較多的系統(tǒng)資源[2]。相比而言,基于傳感器的手勢識別技術(shù)因為不受環(huán)境、光線的影響,識別精度較高,占用資源少等優(yōu)點而漸漸普遍[3]。在基于傳感器的手勢識別研究領(lǐng)域,張發(fā)輝等人提出了將手指關(guān)節(jié)的姿態(tài)信號與手臂表面肌電信號融合用于識別手勢的方法[4-5],但這種方法使用的表面肌電信號傳感器和姿態(tài)信號傳感器都需要接觸人體,無法實現(xiàn)非接觸式檢測。杜京義等人研究了基于環(huán)境亮度光學(xué)傳感器APDS-9960的非接觸手勢感測技術(shù)[6],但APDS-9960傳感器僅能夠識別向上、下、左、右4個方向滑動的動態(tài)人體手勢。電容傳感器因具有非接觸、結(jié)構(gòu)簡單、精度高、動態(tài)性能好等優(yōu)點,廣泛應(yīng)用于厚度、液位、壓力、加速度及流速等測量領(lǐng)域。隨著集成電路的發(fā)展和材料的進步,影響電容傳感器絕緣和屏蔽的因素已得到較好解決[7]。綜合以上情況,設(shè)計一種基于電容傳感器的非接觸式手勢識別系統(tǒng)。采用平行極板電容傳感器采集多種手勢樣本數(shù)據(jù),電容-數(shù)字轉(zhuǎn)換器FDC2214把傳感器信號轉(zhuǎn)換成數(shù)字量,單片機根據(jù)FDC2214的數(shù)據(jù)計算分析,判別出手勢并輸出給顯示設(shè)備。
手勢識別系統(tǒng)主要由單片機ATmega2560、電容-數(shù)字轉(zhuǎn)換器FDC2214以及自制的電容傳感器等組成,系統(tǒng)框圖如圖1所示。系統(tǒng)要識別的手勢包括“剪刀”“石頭”“布”“1”“2”“3”“4”“5”共8個單手手勢。
圖1 手勢識別系統(tǒng)
采用一整片覆銅板作為感測平面搭建實驗裝置,利用FDC2214的一個數(shù)據(jù)通道采集手勢樣本數(shù)據(jù),再通過單片機串口讀取數(shù)據(jù)分析。經(jīng)過多次測試后發(fā)現(xiàn)如果用一整片覆銅板作為感測平面來采集手勢數(shù)據(jù),后續(xù)軟件算法較復(fù)雜,且識別錯誤率高。為了提高識別準確率,把覆銅板上的銅箔分割成4片面積相等的銅箔,如此就形成4個感測平面,在手勢識別時,相當于4個電容傳感器同時采集數(shù)據(jù),并且由于手勢特征,每個傳感器采集到的數(shù)據(jù)不同。4路數(shù)據(jù)能更全面反映這個手勢的特征,從而降低了軟件算法的復(fù)雜度,也提高了識別準確率和響應(yīng)速度。圖2所示為電容感測平面示意圖,每個傳感器的輸出對應(yīng)一個數(shù)據(jù)通道。
圖2 電容感測平面示意
隨著電容傳感器的廣泛應(yīng)用,電容-數(shù)字轉(zhuǎn)換器也很快成為主流,相比于傳統(tǒng)的電容傳感器測量電路,電容-數(shù)字轉(zhuǎn)換器具有響應(yīng)快、分辨率高、功耗低、抗電磁干擾的特點。系統(tǒng)選用的是Texas Instruments公司的電容-數(shù)字轉(zhuǎn)換器FDC2214,它具有28位分辨率,4個信號輸入通道,對應(yīng)4個電容傳感器[10],圖3所示電路圖中Cs1~Cs4即為4個等效電容。FDC2214的每個通道輸入端連接一個電感和電容,由于FDC2214內(nèi)置振蕩電路驅(qū)動器,所以可組成LC振蕩電路,當電感值為18 μH,電容值為33 pF時,可以產(chǎn)生6.5 MHz的振蕩頻率[11]。電容傳感器與FDC2214的連接采用單端傳感器方式,等效電容Cs1~Cs4的一端連接FDC2214的IN0B~IN3B,在檢測手勢時,等效電容值發(fā)生變化,導(dǎo)致LC電路振蕩頻率的變化[12]。
圖3 手勢識別電路圖
FDC2214的振蕩電路驅(qū)動器后面跟隨一個多路復(fù)用器,多路復(fù)用器依次把各輸入通道連接到測量傳感器頻率的核心core上。核心core基于參考頻率fR來測量傳感器通道頻率fS,fR既可以是FDC2214內(nèi)部的時鐘頻率,也可以是外接時鐘源頻率,外部時鐘頻率取40 MHz,fS在多路復(fù)用器中被二分頻為fS/2,最終核心core把頻率轉(zhuǎn)換成數(shù)字量D輸出,每個傳感器通道輸出的測量數(shù)據(jù)為[13]:
由上式可得到該通道上振蕩電路的頻率為:
ATmega2560單片機是高性能、低功耗、外設(shè)豐富的8位微控制器,單片機與FDC2214采用I2C通信方式,如圖3所示。單片機外設(shè)包括顯示和按鍵電路,手勢識別結(jié)果通過OLED屏顯示,OLED屏自發(fā)光、功耗低,與單片機也是通過I2C協(xié)議通信。系統(tǒng)還設(shè)置了矩陣鍵盤,其功能包括復(fù)位、工作模式選擇、手勢記錄編碼等。
系統(tǒng)的軟件設(shè)計主要包括手勢記錄和手勢判定2個部分。在手勢記錄模式下,系統(tǒng)對任意人員的手勢數(shù)據(jù)進行采集,經(jīng)過有限次手勢演示和數(shù)據(jù)采集后,系統(tǒng)提取有效數(shù)據(jù)并保存;在手勢判定模式下,系統(tǒng)對已有手勢記錄的人員進行手勢識別,并快速給出判定結(jié)果。
當某個手勢狀態(tài)穩(wěn)定時,4個傳感器通道的數(shù)據(jù)并行輸出,單片機根據(jù)采集的數(shù)據(jù)計算出該手勢樣本的閾值。以IN0通道為例,手勢演示時,單片機連續(xù)采集IN0通道的50個數(shù)據(jù),根據(jù)中心極限定理,采集的數(shù)據(jù)符合正態(tài)分布,其算術(shù)平均值為:
式中n=50,根據(jù)平均值可計算出標準差為:
其它3個通道的數(shù)據(jù)閾值計算以此類推,為了縮短后續(xù)手勢判定的時間,把4個傳感器通道的閾值數(shù)據(jù)相加求和為一個閾值。記錄手勢時,手勢演示次數(shù)有限,一般為3次,系統(tǒng)對3次記錄的閾值數(shù)據(jù)求平均值后保存,最終形成該手勢的判定條件。系統(tǒng)記錄手勢樣本數(shù)據(jù)時,對不同的手勢利用編碼規(guī)則來對其數(shù)據(jù)編碼標注。
由于需識別的手勢數(shù)目較少,所以在手勢判定時采用簡單匹配算法。有需判定的手勢時,首先對每個傳感器通道連續(xù)采集50個數(shù)據(jù)求出算術(shù)平均值,再把4個平均值相加求和得到需判定的手勢數(shù)據(jù)Dh,Dh和已存儲的樣本數(shù)據(jù)逐個比對,并計算誤差值,確定誤差最小的手勢樣本為判定結(jié)果。
實驗裝置采用+5 V直流穩(wěn)壓電源供電,為了減小人體對電容電場的干擾,采集手勢樣本和手勢檢測時,裝置周圍僅留測試人員一人。對任意人員進行8種手勢樣本采集,要求每種手勢演示3次,統(tǒng)計發(fā)現(xiàn)每種手勢樣本的記錄時間均小于60 s。對手勢樣本已被記錄的人員進行手勢判定,部分測試結(jié)果如表1所示。
表1 手勢識別測試部分數(shù)據(jù)
手勢判定條件(手勢樣本)手勢判定1 手勢判定2手勢判定3判定時間/ ms“剪刀”2 832±132 8232 8372 832910“石頭”2 764±202 7622 7692 782930“布”2 725±142 7242 7372 734880“1”2 759±82 7562 7592 759930“2”2 654±92 6562 6542 654890“3”2 577±102 5782 5752 577910“4”2 451±122 4512 4552 451940“5”2 407±102 4092 4072 407900
除了“石頭”和“1”這2個手勢,其他手勢判定條件給出的閾值范圍互不相同,如此在判定手勢時就能快速準確匹配條件,得出結(jié)果?!笆^”和“1”這2個手勢的閾值數(shù)據(jù)重復(fù),如果僅根據(jù)閾值條件判定,無法準確區(qū)分,解決的方法是再增加一個判定條件:檢測傳感器通道IN0,IN1上的數(shù)據(jù)。如果是“1”手勢,食指與IN0,IN1通道對應(yīng)的覆銅板會構(gòu)成電容;如果是“石頭”手勢,則2個通道上對應(yīng)的電容值很小,系統(tǒng)可根據(jù)通道上的數(shù)據(jù)差異來區(qū)分。
相比于基于視覺的手勢識別裝置,本實驗裝置結(jié)構(gòu)和電路都較為簡單、成本低,測量時不受光線干擾,對于簡單靜態(tài)手勢,裝置判別的準確率和速度與基于視覺的識別裝置相當,但本裝置無法實現(xiàn)動態(tài)手勢的判別[14]。
研究了電容傳感器識別手勢的工作原理,分析了傳感器的結(jié)構(gòu)參數(shù)對線性度、準確率的影響,提出了4個感測平面的傳感器結(jié)構(gòu),基于電容傳感器、電容-數(shù)字轉(zhuǎn)換器和單片機設(shè)計了手勢識別系統(tǒng),并利用正態(tài)分布閾值判別法來實現(xiàn)手勢識別。測試結(jié)果表明:極板間距為3 cm時,手勢樣本數(shù)據(jù)的采集時間小于60 s,對8種手勢的識別準確率高于95%,識別時間均小于1 s。系統(tǒng)結(jié)構(gòu)簡單、工作穩(wěn)定,實現(xiàn)了非接觸式測量,為人機交互中的手勢識別提供了一個有效的解決方案[15]。