劉尊年,張效偉,沈美麗,李宏升,劉金升
(青島理工大學理學院,山東 青島 266033)
隨著智能系統(tǒng)的飛速發(fā)展,未來多維空間中手勢操作控制應用也會有較好的需求前景,鑒于此,本文基于TI公司非接觸式傳感芯片F(xiàn)DC2214設計了一款手勢識別系統(tǒng),可以實現(xiàn)對猜拳和劃拳游戲的判決。系統(tǒng)具有判決和學習兩種工作模式。在判決模式下,能對指定人員手勢比劃“石頭”、“剪刀”和“布”的進行猜拳游戲判定,也能對手勢比劃“1”、“2”、“3”、“4”和“5”的進行劃拳游戲判決;在學習模式下,能對任意人員進行猜拳和劃拳游戲的手勢學習,經(jīng)過有限次學習后,能進行正確的猜拳和劃拳游戲的快速手勢判決。本文關于3D空間手勢識別的設計嘗試可以為多維空間手勢控制應用提供參考案例。
手勢識別系統(tǒng)主要由主控制器STM32F103C8T6單片機、電容檢測器傳感器FDC2214、電容檢測板、顯示模塊、按鍵模塊、電源模塊構成。整個系統(tǒng)的結構框圖,如圖1所示。
圖1 系統(tǒng)結構框圖
系統(tǒng)工作原理為:通過FDC2214檢測電容檢測板與手掌之間的電容變化,經(jīng)過數(shù)字濾波算法處理后,信號傳送給主控制器,再經(jīng)過手勢識別算法進行判別,并通過顯示模塊顯示。
系統(tǒng)采用STM32F103C8T6單片機作為控制核心,該單芯片本身帶有64K的內(nèi)存儲器,無需外加AD模塊來處理數(shù)據(jù),硬件電路更簡捷,運行速度快,片內(nèi)資源豐富,更利于處理對傳感器識別精度要求高的檢測系統(tǒng),有利于完成準確識別和深度學習對處理器的要求(圖2)。
圖2 STM32最小系統(tǒng)板原理圖
電源模塊采用7.4V聚合物鋰電池供電,再通過穩(wěn)壓模塊給單片機及其周邊電路提供5V和3.3V直流穩(wěn)壓電源。鋰電池具有供電時間長,且降壓穩(wěn)壓后的電源輸出穩(wěn)定,可以有效提高系統(tǒng)工作的穩(wěn)定性。系統(tǒng)采用可調節(jié)的AMS1117穩(wěn)壓電路。AMS1117用于提供1A輸出電流,且工作壓差可低至1V。在最大輸出電流時,AMS1117器件的最小壓差保證不超過1.3V,并隨負載電流的減小而逐漸降低。其固定輸出3.3V電壓時,可以在輸出時連接一個小的電容,以確保AMS117的穩(wěn)定性(圖3)。
圖3 穩(wěn)壓電路
2.3.1 檢測裝置
手勢檢測模塊的前端是由4塊單面覆銅板構成的3D空間,如圖4所示。當手掌進入檢測區(qū)域內(nèi)時,F(xiàn)DC2214對ch0~ch3四路通道的電容進行檢測,并返回讀取的值,根據(jù)對四路通道返回值的處理結果,進行手勢識別。
圖4 檢測裝置示意圖
2.3.2 檢測方案
(1)指尖檢測法。利用對5指以及手掌的識別,在每個手指以及手掌下面分別設置兩塊FDC2214EVM的5個通道。根據(jù)各個通道是否檢測到電容變化來識別手勢。例如:如果食指以及手掌下面的通道檢測到了電容變化其他通道沒有檢測到,則表示為數(shù)字“1”。如果僅手掌下面通道有檢測到,則表示為手勢“石頭”。其他手勢原理同上。優(yōu)點:算法簡單,純邏輯判斷;識別準確度高;缺點:過于簡陋,手掌需要擺放在指定位置,限制性太高;通道需求太多,成本高昂。
(2)3D空間檢測法。使用一塊FDC2214EVM中4個通道,將四條通道外接的覆銅板在空間多維擺放,如圖5所示。檢測來自不同方向的信號,對采集到原始數(shù)據(jù)采用進行處理,經(jīng)過一定的算法識別,返回識別的手勢。這里設計的3D空間檢測法,精度高,檢測范圍靈活,使用單塊FDC2214EVM,成本低。3D空間檢測法的缺點是識別算法需要經(jīng)過多次調試,較為復雜。通過對指尖檢測法和3D空間檢測法的應用測試,選取3D空間檢測法作為手勢識別的檢測方案。
圖5 FDC2214模塊
考慮到系統(tǒng)采用內(nèi)存較小的主控制器,同時由于其I/O口數(shù)量的限制,顯示模塊采用OLED屏。OLED可以自身發(fā)光,所以OLED的亮度比LCD高,對比度更大,色彩效果更加豐富,OLED比LCD更加節(jié)能,重量也比LCD輕得多,而且OLED的可視角一般可以達到160度,應用范圍極廣(圖6)。
圖6 OLED液晶引腳連接圖
為了盡量減少外部干擾,系統(tǒng)利用鋁箔紙包裹在檢測區(qū)域外部,作為FDC2214檢測前端的無源屏蔽層,云母片覆蓋鋁箔紙作為FDC2214檢測前端的最外絕緣層。這種設計結構,可以有效防止FDC2214檢測前端外部干擾的影響。系統(tǒng)采用屏蔽線作為信號傳輸線。屏蔽線的屏蔽層接地,外來的干擾信號可被該層導入大地,避免干擾信號進入內(nèi)層,同時降低傳輸信號的損耗,提高信噪比。
(1)手勢識別算法設計,如圖7、8所示。
圖7 判決模式
圖8 學習模式
(2)手勢識別數(shù)據(jù)的讀取。①系統(tǒng)開機后,或一段時間沒有檢測手勢時,四路通道分別讀取一次初值,存放到v_init[ ]數(shù)組里,v_init[ ]為存放電容初始值的數(shù)組。②手勢識別時,四路通道分別讀取當前數(shù)值存放到v[ ]數(shù)組里,v[ ]為存放當前電容值的數(shù)組。③將各個通道的v[ ]與初值v_init[ ]分別進行比較,將差值存放到cha[ ]數(shù)組里。把cha[ ]作為數(shù)據(jù)處理時的有效數(shù)據(jù),cha[ ]為存放當前電容與初始電容值差值的數(shù)組。
(3)手勢識別數(shù)據(jù)的處理。①由于手勢的不同,各路通道檢測的值會有一定的變化,如手勢“1”,與手勢“3”時,手指與ch0和ch1的對立面積s1和s2會發(fā)生變化,導致cha[0]與cha[1]發(fā)生變化。又如,手勢“1”和手勢“5” 當手掌張開時,手掌與兩側檢測板ch2與ch3的值會變大。②基于以上的規(guī)律,手掌在指定測試區(qū)域內(nèi)可完成手勢識別。但當手掌大范圍偏離測試區(qū)域時,識別結果會產(chǎn)生誤差。為了抑制這種誤差,提出了差值補差商除判斷算法。
3.2.1 手掌偏移對檢測的影響
(1)手掌左右移動對檢測結果的影響。當手掌左右移動時,通道ch0與ch1的比值會發(fā)生較大變化,影響前端手指數(shù)量的檢測;通道ch2與ch3的檢測數(shù)值也會發(fā)生較大變化,影響手掌寬度的檢測。
(2)手掌前后移動對檢測結果的影響。當手掌前后移動時,通道ch0與ch1的檢測結果會同時變大或者變小。
(3)手掌傾斜對檢測結果的影響。當手掌小角度傾斜時,相當于手掌寬度變小,手掌對檢測板的投影面積變大。經(jīng)過試驗測試發(fā)現(xiàn),這兩種影響幾乎可以相互抵消,故對檢測結果的影響不大,可忽略不計。
3.2.2 差值補差商除判斷算法描述(1)差值補差法校正手掌左右移動的影響電容的決定公式為
由于手掌在做指定手勢時,手掌的寬度為一定值,可以認為d1+d2為一個定值A,即d1+d2=A ,因
如圖9所示,當手掌左右移動時,ch2檢測到的數(shù)值隨d1的變化如粗實線所示,ch3檢測到的數(shù)值隨d1的變化如虛線所示。
圖9 手掌距離與電容關系圖
由于手掌在做指定手勢時,手掌對兩側的對立面積的變化很小,即式(1)中的S近似為一定值。由式(2)可得,在手掌左右移動時為一定值。于是可以忽略手掌左右移動對手掌寬度檢測的偏差。
當手掌在指定測試區(qū)的正中間時,d1≈d2,當手掌左右偏移時,偏移量Δd=d1-d2,然后將λ×Δd給通道ch0與ch1一定的補償,λ為根據(jù)系統(tǒng)實際情況設定的系數(shù),需抵消手掌左右移動時對通道ch0與ch1的影響。
(2)商除法校正手掌前后移動的影響
經(jīng)過多次試驗結果分析發(fā)現(xiàn),當手掌前后移動時,即使通道ch0與ch1的值同時變化,但對于同一手勢,通道ch0與ch1的比值為一固定值。于是采用商除法檢測手掌前端手指數(shù)量來消除手掌前后移動的影響。
在判決模式下,指定人員,進行猜拳判決,可以給出手勢“石頭”、“剪刀”和“布”的準確判決;進行劃拳判決,可以給出手勢“1”、“2”、“3”、“4”和“5”的準確判決。共測試5組,每組測試100次,正確識別率見表1。
在學習模式下,對任意測試者,進行猜拳的手勢學習,每種動作學習次數(shù)不大于3次,總的學習時間不大于1分鐘,然后切換到判決模式,系統(tǒng)可以給出手勢“石頭”、“剪刀”和“布”的準確判決;進行劃拳的手勢學習,每種動作學習次數(shù)不大于3次,總的學習時間不大于2分鐘,然后切換工作模式到判決模式,可以給出手勢“1”、“2”、“3”、“4”和“5”的準確判決。手勢幾率數(shù)據(jù)見表2。
表1 指定人員判決模式下手勢識別結果
表2 任意人員學習模式下手勢識別結果
本系統(tǒng)以較少元件、較低成本實現(xiàn)了對手勢的識別及對任意人員手勢的學習。通過精密算法,在數(shù)據(jù)采集時實現(xiàn)了數(shù)據(jù)的自我調整。通過差值補差商除,讓使用者手掌不用固定在狹小的地方即可完成精確識別。測試結果表明,本手勢識別系統(tǒng)性價比高、實用性強、工作穩(wěn)定,可以為未來多維空間中手勢操作控制的應用提供第一手的參考資料。