楊世偉 王澤鵬 陳錦鈺



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