楊世偉 王澤鵬 陳錦鈺
摘 要:文中設(shè)計(jì)了一種基于FDC2214芯片的手勢識別系統(tǒng)。在芯片的外接極板上方擺放不同手型會影響極板外界環(huán)境從而影響頻率值,F(xiàn)DC2214芯片將接收到的頻率值轉(zhuǎn)變?yōu)殡娙菪盘栆訧2C通信方式發(fā)送至STM32單片機(jī),單片機(jī)通過比對錄入手勢與測試手勢數(shù)據(jù)差異,可實(shí)現(xiàn)對剪刀、石頭、布以及1~5的精確識別。實(shí)驗(yàn)測試表明:在指定極板間距下,系統(tǒng)對任意測試者的猜拳和劃拳手勢識別正確率超過91.6%,識別響應(yīng)時間小于1 s,新測試者的手勢特征訓(xùn)練時間小于1 min。文中設(shè)計(jì)的手勢識別系統(tǒng)解決了當(dāng)今手勢識別領(lǐng)域普遍存在的成本高昂、技術(shù)復(fù)雜等問題,可在大眾化消費(fèi)應(yīng)用中普及。
關(guān)鍵詞:手勢識別;FDC2214芯片;STM 32單片機(jī);覆銅板;電容傳感器;操作器
中圖分類號:TP39;TN702文獻(xiàn)標(biāo)識碼:A文章編號:2095-1302(2019)09-00-04
0 引 言
手勢識別技術(shù)是當(dāng)今人機(jī)交互領(lǐng)域的一項(xiàng)關(guān)鍵技術(shù),這項(xiàng)技術(shù)涉及范圍廣泛,如模式識別、智能分析、三維圖像處理、計(jì)算機(jī)視覺等。使用手勢識別方便人們與機(jī)器通信,且無需任何機(jī)械設(shè)備即可自然交互,使得常規(guī)輸入設(shè)備如鼠標(biāo)、鍵盤甚至觸摸屏變得冗余。
目前,手勢識別流程基本可劃分為圖像獲取、手勢檢測和分割、手勢分析、手勢識別四部分,其核心技術(shù)大致分為手勢分割、手勢分析和手勢識別等。當(dāng)前手勢識別的實(shí)現(xiàn)需要特別的硬件和較為復(fù)雜的算法得以支持,且造價高昂。
基于此,本文設(shè)計(jì)了以FDC2214芯片為核心的手勢識別系統(tǒng),解決了當(dāng)今手勢識別領(lǐng)域普遍存在的成本高昂、技術(shù)復(fù)雜等問題,可在大眾化消費(fèi)應(yīng)用中普及。其應(yīng)用范圍廣闊,無論是智能家居、智能可穿戴或VR等應(yīng)用領(lǐng)域,若增加手勢識別控制功能,就可極大程度優(yōu)化人與機(jī)器間的通信交流。
1 功能與結(jié)構(gòu)
手勢識別系統(tǒng)的構(gòu)造主要包括傳感器芯片(FDC2214)及外接極板、系統(tǒng)控制模塊(STM32單片機(jī))、顯示模塊以及電源模塊等。
識別操作前需對系統(tǒng)進(jìn)行訓(xùn)練,單片機(jī)將各手勢對應(yīng)的數(shù)值保存作為比對參考量。進(jìn)行識別時,因不同手勢的覆蓋面積不同,會不同程度地影響測試區(qū)外接極板的外部環(huán)境,使得外部極板接收到不同的頻率值,F(xiàn)DC2214傳感器芯片可將頻率值轉(zhuǎn)換為等效電容值經(jīng)I2C通信形式傳遞至STM32單片機(jī),之后單片機(jī)通過比對識別操作和訓(xùn)練操作的數(shù)值進(jìn)行準(zhǔn)確的手勢判斷,并在顯示模塊顯示。電源模塊為系統(tǒng)供電,維持系統(tǒng)的正常工作[1-3]。系統(tǒng)模塊如圖1所示。
2 硬件電路
2.1 FDC2214
FDC2214芯片是由德州儀器(TI)推出的一款高分辨率多通道電容感測集成電路產(chǎn)品,其不受來自無線電、電源、光照和電機(jī)等環(huán)境噪聲的影響。與現(xiàn)有電容感測解決方案相比,在噪聲出現(xiàn)時,F(xiàn)DC2214系列的性能提升約60倍,在任何環(huán)境下均可實(shí)現(xiàn)基于低成本電容方式的人體和物體感測。且FDC2214將電容感測的優(yōu)點(diǎn)引入到之前依賴其他感測技術(shù)的應(yīng)用中,使其具有更好的外觀、更低的系統(tǒng)成本和更可靠的解決方案,適用于汽車、消費(fèi)類和工業(yè)應(yīng)用。系統(tǒng)電路如圖2所示,芯片如圖3所示。
本文所設(shè)計(jì)的手勢識別系統(tǒng),芯片接收引腳可與外接極板相連,極大程度上擴(kuò)大接收信號的面積,且極板能根據(jù)不同要求制作成不同形狀,以增強(qiáng)準(zhǔn)確性。當(dāng)其上方有人或者物體接近時,該極板接收到的頻率值改變,經(jīng)由芯片轉(zhuǎn)換的等效電容值(數(shù)量級可達(dá)百萬)也隨機(jī)發(fā)生變化。經(jīng)實(shí)驗(yàn)測得:當(dāng)距離約為1 cm、覆蓋面積約為5 cm2(大致等于最小手指覆蓋面積)時其變化量近十萬。
同時,系統(tǒng)支持高速率傳輸,經(jīng)試驗(yàn)驗(yàn)證:當(dāng)波特率設(shè)為921 600時傳輸速率可達(dá)每秒約120組數(shù)據(jù),從而在極短時間內(nèi)測出相應(yīng)手勢,并保證較高準(zhǔn)確率。
2.2 STM32F1單片機(jī)
STM32F1系列屬于中低端32bARM微控制器,該系列芯片由意法半導(dǎo)體(ST)公司出品,其內(nèi)核為Cortex-M3處理器。該系列芯片有多達(dá)9個通信接口,3個USART接口,低功耗、性能穩(wěn)定,工作的溫度范圍為-40~105 ℃。
STM32單片機(jī)的GPIOC11引腳與FDC2214芯片的SDA相連,用以發(fā)送與接收數(shù)據(jù);GPIOC12引腳與芯片的SCL相連,定義該口的模式為復(fù)用功能的推挽輸出。
2.3 顯示模塊
LCD1602液晶顯示屏與單片機(jī)連接,由于本設(shè)計(jì)模式簡單、顯示文字少,故采用1602液晶屏,可最大程度減少系統(tǒng)體積,同時1602相對于12864或TFT彩屏耗電更低,更加節(jié)約能源。
3 軟件設(shè)計(jì)思想
3.1 核心算法
根據(jù)硬件平臺及所測數(shù)據(jù),綜合考慮后,采用求平均差值匹配的方法進(jìn)行數(shù)據(jù)分析。
平均差是所有單位與其算術(shù)平均數(shù)離差絕對值的算術(shù)平均數(shù)。離差是總體各單位的標(biāo)志值與算術(shù)平均數(shù)之差。因離差和為零,離差的平均數(shù)不能將離差和除以離差的個數(shù)求得,而必須將離差取絕對數(shù)來消除正負(fù)號。平均差是反映各標(biāo)志值與算術(shù)平均數(shù)之間的平均差異。平均差越大,表明各標(biāo)志值與算術(shù)平均數(shù)的差異程度越大,該算術(shù)平均數(shù)的代表性就越小;平均差越小,表明各標(biāo)志值與算術(shù)平均數(shù)的差異程度越小,該算術(shù)平均數(shù)的代表性就越大。
3.2 功能描述
本系統(tǒng)軟件部分主要實(shí)現(xiàn)數(shù)據(jù)的分析、按鍵設(shè)置和顯示。系統(tǒng)設(shè)有四個按鍵,可進(jìn)行模式選擇。按壓“錄入手勢”按鍵后單片機(jī)執(zhí)行錄入手勢的程序并保存數(shù)值;按壓“判決”按鍵后單片機(jī)執(zhí)行數(shù)據(jù)分析程序以判決當(dāng)前手勢,并通過LCD1062液晶顯示屏輸出當(dāng)前所選擇的模式和判決結(jié)果,完成識別。
3.3 程序設(shè)計(jì)思路
主程序設(shè)有猜拳訓(xùn)練、劃拳訓(xùn)練、猜拳判定和劃拳判定四個模式。通過按鍵鍵值的調(diào)節(jié)可以控制模式轉(zhuǎn)換。在硬件設(shè)計(jì)中,我們考慮到手掌的生理構(gòu)造及普遍的擺放習(xí)慣,將芯片通道通過引線連接到不同位置、不同大小、不同形狀的極板,并測試出最準(zhǔn)確、最穩(wěn)定的模式。即將IN0,IN1,IN2三個監(jiān)測通道分別對應(yīng)手掌、大拇指及其余四根手指的位置,可通過分段數(shù)據(jù)分析逐步判斷是否有手掌、是否伸出大拇指以及其余四根手指伸出幾根。通過伸出手指的根數(shù)實(shí)現(xiàn)判斷當(dāng)前手勢的功能。程序設(shè)計(jì)流程如圖4所示。
4 算法的程序?qū)崿F(xiàn)
4.1 錄入階段
系統(tǒng)需要錄入一次空值作為基礎(chǔ)初值,該值是對當(dāng)下環(huán)境的實(shí)時描述。因?yàn)镕DC2214芯片對環(huán)境變化較為敏感、分辨率較高,因此在不同環(huán)境下各通道外接極板的數(shù)據(jù)接收值會存在較大差異,導(dǎo)致簡單常數(shù)通常無法精準(zhǔn)表示實(shí)時的環(huán)境狀況。而通過初值錄入,可在最大程度上避免此類誤差的出現(xiàn)。
訓(xùn)練階段,芯片三通道引出的對應(yīng)外接極板可監(jiān)測到因手型差異而引起的環(huán)境變化。單片機(jī)將獲得的近百組數(shù)據(jù)進(jìn)行求均值計(jì)算并存放,所求得的值即該手型的特征數(shù)據(jù)描述,可作為后期判定模式下數(shù)據(jù)比對的基礎(chǔ)。
4.2 判定階段
識別系統(tǒng)處于訓(xùn)練階段時,由系統(tǒng)直接測量一組數(shù)據(jù),并求平均值記為B。將同一手勢幾次測得的數(shù)據(jù)取平均值。1~5五種手勢可分別得到通道3的平均值Fre1,F(xiàn)re2,F(xiàn)re3,F(xiàn)re4,F(xiàn)re5。將這5組平均值分別與B作差,得到的結(jié)果記為ave12,ave22,ave32,ave42,ave52。這組數(shù)據(jù)同時代表在除大拇指外的四指中,有一根手指伸出時,數(shù)據(jù)變化均值為ave12;有兩根手指伸出時,數(shù)據(jù)變化均值為ave22,依次類推。
4.3 判決階段
在判決階段,對于通道3,將當(dāng)前手勢測得的數(shù)據(jù)平均值記為m2。令變量m02=m2-B。判斷m02與ave12,ave22,ave32,ave42,ave52的近似程度,若與ave12最接近,則判斷當(dāng)前在除大拇指外的四指中,只有一根手指伸出;若與ave22最接近,則有兩根手指伸出。依次類推,則可以得出在除大拇指外的四指中伸出的手指數(shù)量。判決流程如圖5所示。
5 設(shè)計(jì)過程
5.1 材料選用
通過serialplot軟件對用錫箔紙做傳感平面和用銅片做傳感平面的兩種方式進(jìn)行比較,發(fā)現(xiàn)若設(shè)計(jì)方案相同,銅片的效果相較錫箔紙更加明顯,所以選擇銅片做傳感平面。
5.2 傳感平面面積選擇
通過serialplot軟件對不同大小的傳感平面進(jìn)行比較,發(fā)現(xiàn)面積較大的平面,測試者的每個手勢數(shù)據(jù)差別較大,有利于識別,同時測試距離較長,但噪聲(穩(wěn)定期間內(nèi)波動幅度)較大。采用小型銅片做傳感平面,測試噪聲較小,但距離限制增加。最終決定選用15 cm×20 cm的銅板。
5.3 形狀選用
本文對四種不同的方案進(jìn)行了比較。首先第一種方案為單塊銅板,波形較明顯;第二種方案為四通道的波浪形銅板,波形變化幅度可明顯觀測,但是干擾較大;第三種方案為四通道12×12的正方形矩陣,設(shè)計(jì)難度較大,波形變化幅度較小;第四種方案為三通道區(qū)域形,即手掌劃分一片區(qū)域,四手指劃分一片區(qū)域,大拇指劃分一片區(qū)域,此方案相較于前三種方案波形變化明顯且設(shè)計(jì)簡單,故選擇第四種方案。
5.4 結(jié)論
選擇三通道區(qū)域形15 cm×20 cm的銅片作為最終使用傳感平面。
6 實(shí)驗(yàn)結(jié)果
首先對某一位測試者進(jìn)行訓(xùn)練,每種手勢訓(xùn)練3次,當(dāng)訓(xùn)練結(jié)束后對其放置的手勢進(jìn)行判決,實(shí)驗(yàn)結(jié)果顯示,對于1~5以及石頭、剪刀、布的判讀不超過1 s,且在100次的測試中,錯誤率小于8.4%。系統(tǒng)實(shí)物如圖6所示。
7 結(jié) 語
本文基于STM32單片機(jī)和FDC2214芯片設(shè)計(jì)了一款手勢識別裝置,可實(shí)現(xiàn)對剪刀、石頭、布以及1~5的精確識別,解決了當(dāng)今手勢識別領(lǐng)域普遍存在的成本高昂、技術(shù)復(fù)雜等問題,可在大眾化消費(fèi)應(yīng)用中普及。
參 考 文 獻(xiàn)
[1]戴蓉,劉波峰.傳感器原理與工程應(yīng)用[M].北京:電子工業(yè)出版社,2014:1-5.
[2]顧立忠.基于表達(dá)的手勢識別及人機(jī)交互研究[D].上海:上海交通大學(xué),2008:45-67.
[3]覃文軍.基于視覺信息的手勢識別跟蹤算法與模型研究[D].沈陽:東北大學(xué),2010:13-41.
[4]杜堃,譚臺哲.復(fù)雜環(huán)境下通用的手勢識別方法[J].計(jì)算機(jī)應(yīng)用,2016,36(7):1965-1970.
[5]呂蕾,張金玲,朱英杰,等.一種基于數(shù)據(jù)手套的靜態(tài)手勢識別方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報,2015,27(12):2410-2418.
[6]曹瑩,苗啟廣,劉家辰,等.Ada Boost算法研究進(jìn)展與展望[J].自動化學(xué)報,2013,39(6):745-758.
[7]張洪明,趙德斌,高文.基于膚色模型、神經(jīng)網(wǎng)絡(luò)和人臉結(jié)構(gòu)模型的平面旋轉(zhuǎn)人臉檢測[J].計(jì)算機(jī)學(xué)報,2002,25(11):1250-1256.
[8]王茂吉.基于視覺的靜態(tài)手勢識別系統(tǒng)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2006.
[9]蔡娟,蔡堅(jiān)勇,廖曉東,等.基于卷積神經(jīng)網(wǎng)絡(luò)的手勢識別初探[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(4):113-117.
[10]李騰.基于視角手勢識別的車載音樂系統(tǒng)控制[D].天津:天津工業(yè)大學(xué),2017.
[11]赫文強(qiáng),艾矯燕,赫銀峰.動態(tài)手勢識別及在PPT播放當(dāng)中的應(yīng)用研究[J].自動化技術(shù)與應(yīng)用,2014,33(2):59-63.
[12]張墨逸,張秋宇,蘆俊池,等.移動單目相機(jī)下基于單應(yīng)的動態(tài)手勢軌跡識別[J].華中科技大學(xué)學(xué)報 (自然科學(xué)版),2016,44(5):7-12.
[13]劉怡明,王偉明,張雯薏.非接觸式手勢識別智能控制器設(shè)計(jì)[J].電子測試,2018(24):13-15.