張 輝 卜雯意 施 豪
(安徽師范大學(xué)皖江學(xué)院,安徽 蕪湖 241000)
手勢是我們?nèi)粘I钪腥伺c人交互的重要方式之一[1]。隨著計(jì)算機(jī)的不斷發(fā)展,人與計(jì)算機(jī)的交互越來越成為計(jì)算機(jī)應(yīng)用領(lǐng)域的熱門研究方向?;谟?jì)算機(jī)視覺的手勢識別為滿足新一代人機(jī)交互應(yīng)用而生。電容接近感測是許多智能設(shè)備和設(shè)備的關(guān)鍵特征[2-4]。本設(shè)計(jì)中的手勢識別部分主要采用新型電容傳感芯片F(xiàn)DC2214作為主控芯片,通過描述檢測范圍與傳感器尺寸之間的關(guān)系,以4塊方形銅板作為傳感器,通過IIC通信讀取電容感應(yīng)值并控制在傳感器上的手勢變化來讀取、獲取相應(yīng)手勢數(shù)據(jù)。
極板模塊充當(dāng)傳感器用于檢測測試者的手放在測試極板上的面積數(shù)據(jù)以及位置信息,主要備選方案包括:
方案一:由六塊極板構(gòu)成,制成五指形狀,存在許多不確定因素,雖然容易識別手勢,但是隨機(jī)性大(如圖 1)。
方案二:由一塊極板構(gòu)成。雖然結(jié)構(gòu)簡單,但是其存在誤差,對于一些數(shù)字手勢不能清楚識別,容易造成手勢識別出錯(cuò)(如圖2)。
由于上述兩種方案不成熟,所以本設(shè)計(jì)采用方案三。
方案三:由四塊極板構(gòu)成,劃分測試區(qū)域?yàn)樗膫€(gè)象限,按照比例方法可清楚判決手勢或者記錄手勢數(shù)據(jù),大大提高手勢識別正確率(如圖3)。
圖1 方案一
圖2 方案二
圖3 方案三
本手勢識別硬件系統(tǒng)的設(shè)計(jì),由主控模塊、顯示模塊、數(shù)據(jù)存儲模塊、FDC2214電容傳感器模塊以及極板傳感器模塊組成[5-6]。實(shí)現(xiàn)了手勢的訓(xùn)練與識別,其系統(tǒng)設(shè)計(jì)框圖如圖4所示。
圖4 手勢識別系統(tǒng)原理框圖
3.1.1 主控模塊
主控模使用STM32作為系統(tǒng)的核心控制模塊,相當(dāng)于指揮中心,負(fù)責(zé)數(shù)據(jù)的處理,控制指令的生成,協(xié)調(diào)其他部分模塊共同運(yùn)作。STM32嵌入式開發(fā)板,它是基于ARM?Cortex?M處理器內(nèi)核的32位閃存微控制器,STM32 MCU融高性能、實(shí)時(shí)性、數(shù)字信號處理、低功耗、低電壓于一身,同時(shí)可接入TFT顯示屏,擁有便捷和開發(fā)簡易的特點(diǎn)。
3.1.2 極板傳感器模塊
當(dāng)下,學(xué)生群體已經(jīng)是社會中不可忽視的一部分。在學(xué)生校園中存在著很多有價(jià)值的研究數(shù)據(jù)信息,比如學(xué)生的成績,學(xué)生日常支出情況等。我們對學(xué)生的這些數(shù)據(jù)進(jìn)行分析,可以反映出很多非常有價(jià)值的東西。況且,如今學(xué)生群體早已是流行的風(fēng)向標(biāo),對于學(xué)生的數(shù)據(jù)信息進(jìn)行分析還可以更加直觀地看出當(dāng)前社會的流行趨勢。
極板傳感器模塊由1個(gè)25 cm×25 cm的亞克力板和1個(gè)被平均劃分為四個(gè)部分的20 cm×20 cm的方形覆銅板拼接組成,測試人員將手勢擺放在固定的亞克力板上,以統(tǒng)一測量手勢的高度,增強(qiáng)測試結(jié)果準(zhǔn)確性。四區(qū)域的覆銅板在采集手勢特征值時(shí)更加穩(wěn)定可靠。
3.1.3 FDC2214傳感器模塊
電容式傳感是一種低功耗、低成本且高分辨率的非接觸式感測技術(shù),適用于從接近檢測和手勢識別到遠(yuǎn)程液位感測領(lǐng)域的各項(xiàng)應(yīng)用。電容式傳感系統(tǒng)中的傳感器可以采用任意金屬或?qū)w,因此可實(shí)現(xiàn)高度靈活的低成本系統(tǒng)設(shè)計(jì)[7]。
電容式傳感應(yīng)用靈敏度的主要限制因素在于傳感器的噪聲敏感性。FDC2214采用創(chuàng)新型抗EMI架構(gòu),即使在高噪聲環(huán)境中也能維持性能不變(如圖5)。
圖5 FDC2214電容傳感器模塊
本設(shè)計(jì)選用的電容式傳感器模塊可以測量四路通道,大大提高了效率。
本設(shè)計(jì)中主要運(yùn)用到了卡爾曼濾波算法,單鏈表,冒泡排序算法,以及特征點(diǎn)采集等算法對不同手勢產(chǎn)生的不同數(shù)據(jù)進(jìn)行了處理,下面對主要算法進(jìn)行說明:
(1)卡爾曼濾波算法。數(shù)據(jù)濾波是去除噪聲還原真實(shí)數(shù)據(jù)的一種數(shù)據(jù)處理技術(shù),卡爾曼濾波在測量方差已知的情況下能夠從一系列存在測量噪聲的數(shù)據(jù)中,估計(jì)動態(tài)系統(tǒng)的狀態(tài),能夠?qū)ΜF(xiàn)場采集的數(shù)據(jù)進(jìn)行實(shí)時(shí)的更新和處理。如下圖6是數(shù)據(jù)處理前,圖7是數(shù)據(jù)經(jīng)過卡爾曼濾波后的波形。
圖6 原始數(shù)據(jù)波形
圖7 卡爾曼濾波后數(shù)據(jù)波形
(3)冒泡排序算法。冒泡排序是一種簡單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果其順序錯(cuò)誤就交換過來。本設(shè)計(jì)在經(jīng)過單鏈表存儲后通過冒泡排序法,將四個(gè)極板的測評范圍設(shè)定為任意方向都可以測量,使測試提高數(shù)據(jù)測試靈敏度。
(4)特征點(diǎn)采集。在本設(shè)計(jì)中,通過FDC2214傳感器的頻率與電容的對應(yīng)關(guān)系,計(jì)算出單位面積下電容傳感器采集出數(shù)據(jù)的大小,使得判決模式下的數(shù)據(jù)可靠性增強(qiáng)。
圖6 程序流程圖
圖7 手勢識別裝置操作流程圖
在系統(tǒng)設(shè)計(jì)過程中,我們遇到些問題,經(jīng)過小組成員共同反復(fù)討論研究以及試驗(yàn)論證,出現(xiàn)的問題都得到了解決,最終對設(shè)計(jì)方案進(jìn)行了修正改進(jìn)。
問題:手勢識別不精確。在手勢識別過程中,我們一開始使用的極板傳感器是單極板,遇到了手勢不能采集精確,且只能沿一個(gè)方向進(jìn)行識別,判定時(shí)不能完全識別正確的問題,并不能達(dá)到題目要求。
改進(jìn)方案:使用四極板,增加極板數(shù)目,改成四象限制,通過冒泡排序法后將手勢識別改為可以多方向識別,提高手勢識別精確性,達(dá)到了保留要求。
硬件測試:將各模塊連接起來,將手平放在測試區(qū)域的亞克力板面上進(jìn)行數(shù)據(jù)測試并進(jìn)行數(shù)據(jù)記錄。
測試儀器:各模塊,串口助手,示波器,秒表。
(1)猜拳判決測試。裝置在判決模式下分別對“石頭,剪刀,布”三種手勢進(jìn)行判決,測試結(jié)果如圖8所示。
圖8 猜拳手勢圖
經(jīng)過測試,猜拳判決的三種手勢都可以分別在1秒以內(nèi)完成判決,且判決準(zhǔn)確,滿足題目要求。
(2)劃拳判決測試。裝置在判決模式下分別對“1,2,3,4,5”五種手勢進(jìn)行判決,測試結(jié)果如圖9所示。
圖9 劃拳手勢圖
經(jīng)過測試,劃拳判決的五種手勢都可以分別在1秒以內(nèi)完成判決,且判決準(zhǔn)確,滿足題目要求。
(3)猜拳訓(xùn)練與判決測試。裝置分別對A,B,C三位不同手掌大小的同學(xué)進(jìn)行猜拳訓(xùn)練與判決,結(jié)果如表1所示,圖10所示。
表1 猜拳學(xué)習(xí)模式識別統(tǒng)計(jì)表
經(jīng)過測試,猜拳訓(xùn)練模式下,每種動作訓(xùn)練次數(shù)不大于3次,總手勢訓(xùn)練時(shí)間都小于1 min,每次判決時(shí)間都不超過1 s。判斷基本全部正確,出現(xiàn)的誤差主要在于C同學(xué)手面積偏小,對數(shù)據(jù)采集處理有輕微影響。
圖10 三位測試人員的手部示意圖
(4)劃拳訓(xùn)練與判決測試。裝置分別對A,B,C三位不同手掌大小的同學(xué)進(jìn)行劃拳訓(xùn)練與判決,表2所示。
經(jīng)過測試,劃拳訓(xùn)練模式下,每種動作訓(xùn)練次數(shù)不大于3次,總手勢訓(xùn)練時(shí)間都小于2 min,每次判決時(shí)間都不超過1 s。
表2 劃拳學(xué)習(xí)模式識別統(tǒng)計(jì)表
上述結(jié)果表明本設(shè)計(jì)能夠?qū)崿F(xiàn)題目所提出的要求,在最后出現(xiàn)的C同學(xué)的誤差是因?yàn)闇y試人員的手勢大小在極板上反應(yīng)的電容值變化幅度成類似于正比例關(guān)系,例如測試人員手部較小的話,會增加識別的難度。
本手勢識別裝置通過主控模塊、四極板模塊傳感器、顯示模塊、數(shù)據(jù)存儲模塊以及FDC2214電容傳感器模塊設(shè)計(jì)實(shí)現(xiàn)了手勢識別裝置,較好的實(shí)現(xiàn)了手勢識別的穩(wěn)定可靠性,后期準(zhǔn)備對算法進(jìn)行不斷優(yōu)化,提高此裝置的識別準(zhǔn)確度。