王 鑫,陳成凱,陳梓威,霍非凡,林樂坤,吳 珂,劉 浩
(1.機電工程國家級實驗教學示范中心,天津 300384;2.天津理工大學 工程訓練中心,天津 300384)
在國家創(chuàng)新驅(qū)動發(fā)展戰(zhàn)略大背景下,人臉識別、語音識別等人工智能技術(shù)在現(xiàn)代社會多個領(lǐng)域廣泛應(yīng)用[1]。手勢識別作為一種新興的人機交互智能識別技術(shù),在ATM 取款、高鐵自助檢票等日常生活中開始大量應(yīng)用[2-3]。電容式傳感器相比常見的攝像頭在一些特定手勢識別場合具有明顯優(yōu)勢:測量精度高、不易受外界光線和電磁干擾、感測材料廣泛、功耗低、體積小、成本低等[4]。
TI 公司最新推出的FDC2214 芯片作為一款識別率高且功耗低的識別檢測芯片,能夠?qū)崿F(xiàn)復雜環(huán)境條件下的人體和物體測量[5]。本文通過檢測電容感應(yīng)板上不同區(qū)域的電容大小以及變化來判斷所對應(yīng)的手勢,通過OLED 屏幕顯示識別結(jié)果。該系統(tǒng)經(jīng)過金屬屏蔽處理,可抵抗外界的干擾,經(jīng)過多次手勢訓練后具有快速、穩(wěn)定的識別能力,使用Flash 實現(xiàn)了斷電記錄數(shù)據(jù)。
手勢識別系統(tǒng)的硬件主要包括STM32F103C8T6最小系統(tǒng)、FDC2214 識別、OLED 顯示、DC-DC 供電和4 個按鍵電路。STM32F103C8T6 通過I2C 接口與識別單元進行通信,其最大接口速度可為400 kbit/s,高速通信可保證電容數(shù)據(jù)的讀取和OLED 圖像的傳送[6]?;贔DC2214 的識別單元用來進行數(shù)據(jù)的采集、運算和傳輸。其中電容采集部分是一個L-C 諧振器[7]。該設(shè)備輸出一個與頻率成正比的數(shù)字值,可以轉(zhuǎn)換為等效電容。OLED 顯示用戶界面和識別結(jié)果。DC-DC 供電模塊將7.4 V 轉(zhuǎn)換成5 V。按鍵用于人機交互的指令輸入。
電路設(shè)計如圖1 所示。
圖1 電路設(shè)計圖
FDC2214 是電容式高分辨率、高速、多通道電容數(shù)字轉(zhuǎn)換器,分辨率高達28 bit,采樣速率高達每秒13.3×103次,便于實現(xiàn)識別快速移動目標的應(yīng)用[8]。其I2C 外設(shè)接口簡化了與微控制器(MCU)的連接方式。每片F(xiàn)DC2214 含有4 通道電容檢測[9]。本文的手勢檢測識別系統(tǒng)通過算法優(yōu)化,僅使用FDC2214 單通道即可實現(xiàn)較高識別率。圖2 是FDC2214 芯片的內(nèi)部原理圖。
圖2 FDC2214 芯片的內(nèi)部原理圖
不同手勢的電容值可根據(jù)兩極板間電容的計算公式得出:
其中:ε 是相對電介質(zhì)常數(shù);k 代表靜電力常量,k=9.0×109Nm2/C2;S 是極板的有效覆蓋面積;d 是兩塊極板之間的間距。FDC2214 通過LC 諧振的方式把電容的模擬量轉(zhuǎn)化成數(shù)字量輸入單片機進行處理。不同的手勢代表不同的S,在其他參數(shù)沒有變化的前提下,就可以通過電容值的變化識別不同的手勢。
將FDC2214 通道0 中的一相引出接到待測量的金屬板,將手放到極板上,測量金屬板和通道之間的電容,經(jīng)過均值濾波之后儲存電容值[10]。電容采集電路如圖3 所示,使用LC 諧振電路采集極板電容。外部電路選擇一個18 μH 屏蔽SMD 電感與33 pF 電容并聯(lián),產(chǎn)生6.5 MHz 振蕩頻率。諧振信號經(jīng)由通道0 輸入FDC2214 轉(zhuǎn)換成諧振頻率 fSENSORx。
圖3 電容采集電路圖FDC2214
如圖2 所示,在FDC2214 內(nèi)部,頻率 fSENSORx經(jīng)過多路復用器連接到運算核心單元Core。該內(nèi)核使用參考頻率 fREFx測算最終頻率。 fREFx來源于內(nèi)部參考時鐘(振蕩器)或外部提供的時鐘。每個通道最終頻率的輸出是與 fSENSORx/fREFx成比例的。由于不同人的手在相同手勢下會有不同容值,對于給定的總傳感器板面積,單端配置允許比差分配置更高的感應(yīng)范圍。最終的頻率值由式(2)得出:
通過對數(shù)據(jù)的統(tǒng)計發(fā)現(xiàn),有些區(qū)域相鄰手指之間的容值變化相對較小,識別結(jié)果不準確。為了提高識別的準確度,需對大量的數(shù)據(jù)進行統(tǒng)一的處理。在此基礎(chǔ)上,使用“閾值”代表相鄰手指間容值的分界值,用iW 表示,電容值超過iW ,機器就會自動識別為手勢種類i。以手勢1 和2 為例,分界值為2W 。下面分別通過改變兩個手勢在銅板上放置位置以及與銅板接觸面積的大小各采樣10 次。手勢1 的最大值記為F1max,最小值記為F1min;同樣,手勢2 的兩個邊界值為F2max和F2min。從而得到了兩個閉區(qū)間[F1min,F(xiàn)1max]和[F2min,F(xiàn)2max],極板上接觸區(qū)域內(nèi)的總?cè)萘糠謩e用1U 和 U2表示。
圖4 比較情況一
圖5 比較情況二
如圖4、5 所示,在這四個邊界值中,由數(shù)據(jù)顯然可知:F1max 完成上述區(qū)分工作,將分界的電容值進行儲存,方便跳轉(zhuǎn)到主界面進行判斷顯示。為此采用數(shù)組存儲,將1~5 個手指最終的閾值儲存進1×5 維矩陣中,并依次將接下來r 名學習員的數(shù)據(jù)構(gòu)成r×5 維矩陣。當檢測時,通過按鍵選取對應(yīng)學習員數(shù)據(jù),由主界面進行判決。從而完成整個機器學習算法的設(shè)計。 隨機選取三名手掌大小明顯不同的測試者進行測試。測試內(nèi)容為手指數(shù)1、2、3、4、5 以及“剪刀”“石頭”“布”共計八個手勢。測試方式為每個手勢測取7 個數(shù)據(jù),將所有數(shù)據(jù)進行MATLAB 數(shù)據(jù)分析,結(jié)果如圖6 所示,驗證閾值選取和手勢識別效果。 圖6 Matlab 數(shù)據(jù)分析—閾值的選取 圖6 中縱坐標為測試距離,即每次測試時手指偏離標準起始位置的位移??梢钥吹?,不同手指間的區(qū)分度不盡相同。經(jīng)實際圖像及數(shù)據(jù)驗證可較合理地選擇閾值iW ,根據(jù)式(3),將此算法用單片機實現(xiàn),自動計算選取手指數(shù)1、2、3、4、5 以及“剪刀”“石頭”“布”的電容閾值分別為0.60、1.15、1.60、2.10、2.82、0.60、1.90、2.90 nF。 程序主要分為模式選擇、猜拳主界面、識數(shù)主界面、學習界面和判決界面五個部分。學習界面顯示學習模式、手勢信號以及每次學習所取得的數(shù)據(jù),判決界面顯示通過學習所存儲記憶的數(shù)據(jù),通過判決界面進行輸出。主體程序流程如圖7 所示。 圖7 程序流程圖 在學習模式下,將手指放入如圖8 左邊的銅板之上,便可讀取并記錄此時的容值,用按鍵輸入對應(yīng)的手勢進行數(shù)據(jù)標注。隨機選取十名手掌大小明顯不同的測試者進行機器學習,每個人手指數(shù)1、2、3、4、5 以及“剪刀”“石頭”“布”共計八個手勢,每個動作學習10 次,共取得800 組數(shù)據(jù)進行學習訓練[11-12]。 圖8 實驗驗證 切換到識別模式下,十名測試者隨機打亂再進行測試,每人每個手勢測試識別20 次,共測得1 600 組數(shù)據(jù),識別率統(tǒng)計結(jié)果如表1 所示。 表1 手勢識別率結(jié)果 % 本文系統(tǒng)的手勢總平均識別率為94.56%,識別效果較好。 本文利用電容傳感器芯片F(xiàn)DC2214 單通道電路設(shè)計了一種基于閾值分析的手勢識別系統(tǒng),使得芯片外圍采集電路簡化,系統(tǒng)功耗降低,成本減少,穩(wěn)定性增強。該系統(tǒng)經(jīng)過大量數(shù)據(jù)實驗驗證,識別迅速、穩(wěn)定且識別率較高,在智能交互、安全駕駛、手語認知等領(lǐng)域具有廣泛的應(yīng)用前景。3.2 閾值選取
3.3 程序設(shè)計
4 測量與驗證
5 結(jié)語