王建亮 蒙源 李芳芳
(1.北京科技大學(xué)天津?qū)W院,天津 301830;2.天津天獅學(xué)院,天津 301700;3.河北省電子信息產(chǎn)品監(jiān)督檢驗(yàn)院,河北石家莊 050071)
語言是人與人之間溝通交流的重要形式,但如手勢(shì)、體態(tài)和表情等人類的肢體形態(tài)語言,也是常用的交互方式。人與計(jì)算機(jī)的交流方式較單一且靈活度很低,遠(yuǎn)不如人與人之間交互的更深入,形式更多樣。因此,研究人機(jī)交互的多種形式,人體肢體無聲語言與有聲語言的相結(jié)合,對(duì)于提高機(jī)器視覺識(shí)別率,進(jìn)而拓寬了人機(jī)交互接口的多樣性和實(shí)用性。在人機(jī)交互中,“手勢(shì)”具有直觀、形象和生動(dòng)的顯著特點(diǎn),具有很強(qiáng)的視覺效果,在一定程度上完全可以作為一種交互手段。針對(duì)不同的應(yīng)用目的,手勢(shì)可以分為操作手勢(shì)、通信手勢(shì)、控制手勢(shì)和對(duì)話手勢(shì)。其中對(duì)話手勢(shì)和通信手勢(shì)是“手語”最重要的應(yīng)用,其規(guī)律性和結(jié)構(gòu)性很強(qiáng),非常適用于計(jì)算機(jī)機(jī)器視覺算法平臺(tái)的實(shí)現(xiàn)?;谝曈X的手勢(shì)識(shí)別技術(shù),涉及圖像處理、模式識(shí)別和計(jì)算機(jī)視覺等研究?jī)?nèi)容,是當(dāng)前的熱點(diǎn)研究課題[1]。
當(dāng)作出一個(gè)手勢(shì)信號(hào)時(shí),手勢(shì)識(shí)別傳感器芯片將手勢(shì)信號(hào)從給入的視頻信號(hào)中進(jìn)行分離,通過建立手勢(shì)模型來進(jìn)行手勢(shì)的分析,包括手勢(shì)特征和模型參數(shù)的分析,然后根據(jù)識(shí)別的不同手勢(shì)結(jié)果形成不同的手勢(shì)描述性語言,再通過主控芯片去驅(qū)動(dòng)目標(biāo)設(shè)備進(jìn)行具體的應(yīng)用,從而達(dá)到手勢(shì)識(shí)別和控制的作用。
基于手勢(shì)傳感器的智能人機(jī)交互系統(tǒng)由最小單片機(jī)系統(tǒng)、電源模塊、傳感器模塊、串口模塊、顯示模塊等組成。由PAJ7620手勢(shì)傳感器通過不同手勢(shì)動(dòng)作的識(shí)別,獲取待測(cè)目標(biāo)特征原始數(shù)據(jù),再對(duì)特征原始數(shù)據(jù)進(jìn)行識(shí)別處理,最后將手勢(shì)結(jié)果存到控制器存儲(chǔ)器中,采用IIC接口對(duì)原始數(shù)據(jù)和手勢(shì)識(shí)別的結(jié)果進(jìn)行數(shù)據(jù)調(diào)取,由STM32主控芯片處理和分析,從而來識(shí)別不同手勢(shì),進(jìn)而在OLED屏上顯示出手勢(shì)的信息和驅(qū)動(dòng)載體作出不同響應(yīng)的效果。總體結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)框圖Fig.1 System block diagram
主控制單元是采用單片機(jī)最小電路STM32F103C8T6芯片和相應(yīng)的外電路組成。該芯片是STM32 系列的一種類型,具有64個(gè)引腳和128KB的FLASH,采用了串行輸出單線和JTAG接口調(diào)試模式,具有很多的優(yōu)點(diǎn)比如:高性能、低成本、功耗低等,該單片機(jī)是增強(qiáng)后的系類單片機(jī)類型。本系統(tǒng)采用主控制單元對(duì)手勢(shì)傳感器采集來的手勢(shì)信號(hào)進(jìn)行ADC,并進(jìn)行片內(nèi)信號(hào)處理便于識(shí)別不同的手勢(shì),進(jìn)而控制顯示屏把相應(yīng)手勢(shì)進(jìn)行正確顯示,還可以驅(qū)動(dòng)載體做出相應(yīng)的動(dòng)作[2]。
圖2 STM32F103C8T6 單片機(jī)Fig.2 STM32F103C8T6 micro controller
PAJ7620手勢(shì)識(shí)別模塊是由原相科技(PixArt)公司新推出的一款光學(xué)數(shù)組式傳感器件,它的內(nèi)部自帶有一種集成的特殊LED,該LED里面內(nèi)部是各種感測(cè)器和一些內(nèi)置集成光源,可以在黑暗或者弱光的環(huán)境下仍然保持高度警覺的工作狀態(tài),更為強(qiáng)大的是它還支持上、下、左、右、前、后、順時(shí)針旋轉(zhuǎn)、逆時(shí)針旋轉(zhuǎn)和揮動(dòng)的九個(gè)手勢(shì)類型和輸出的手勢(shì)中斷和結(jié)果[3]。手勢(shì)識(shí)別返回的信號(hào)可作為機(jī)器人接收的控制信號(hào),手勢(shì)模塊采用IIC接口通信協(xié)議,其電路圖如圖3所示。
圖3 手勢(shì)傳感器電路接口Fig.3 Gesture sensor circuit interface
為了讓識(shí)別結(jié)果和效果更佳直觀清晰的顯示,同時(shí)本次設(shè)計(jì)需要屏幕作為前端輸入工具,而數(shù)字管不能實(shí)現(xiàn)此功能,所以本次顯示電路選擇的是OLED1602液晶顯示屏。該OLED 顯示屏和傳統(tǒng)的LCD 和CRT 相比具有啟動(dòng)電壓低、響應(yīng)快、主動(dòng)發(fā)光、可折疊、重量輕等多方面優(yōu)點(diǎn)。
電路輸出的電壓先經(jīng)過C1 的濾波,將大部分的交流成分濾除,然后再加到AMS117 芯片構(gòu)成的濾波電路中。C2的容抗與AMS117芯片構(gòu)成一個(gè)分壓電路,因C2的容抗很小,所以對(duì)交流成分的分壓衰減量很大,達(dá)到濾波目的。對(duì)于直流電而言,由于C2具有隔直作用,所以AMS117和C2 分壓電路對(duì)直流不存在分壓衰減的作用,這樣電壓通過AMS117 輸出。
按鍵的設(shè)置使用獨(dú)立按鍵的方式來實(shí)現(xiàn)。?這種按鍵的突出優(yōu)點(diǎn)就是它的軟件和硬件相對(duì)比較簡(jiǎn)單,易于操作。當(dāng)按鍵處于正常狀態(tài)時(shí),即處于未開機(jī)狀態(tài)時(shí),CPU對(duì)應(yīng)的I/O接口由于內(nèi)部有上拉電阻,其輸入狀態(tài)為高電平;當(dāng)某個(gè)按鍵被我們的使用用戶按下后,對(duì)應(yīng)的I/O接口由高電平狀態(tài)轉(zhuǎn)變?yōu)榈碗娖綘顟B(tài)。我們?cè)谙到y(tǒng)程序運(yùn)行時(shí),只需要知道I/O 接口到底是處于什么樣的一個(gè)狀態(tài),我們就可以判斷出來到底哪個(gè)按鍵是開的狀態(tài)以及哪個(gè)按鍵是關(guān)閉狀態(tài)。以此來實(shí)現(xiàn)各按鍵的設(shè)置邏輯,其設(shè)計(jì)電路圖如圖4 所示。
圖4 按鍵電路Fig.4 Button circuit
(1)系統(tǒng)運(yùn)行工作就是對(duì)數(shù)據(jù)的檢測(cè)和處理,首先各模塊會(huì)實(shí)現(xiàn)初始化管腳信息,這有利于系統(tǒng)的后續(xù)操作以及機(jī)器自檢工作。因?yàn)橄到y(tǒng)不會(huì)告訴此時(shí)的系統(tǒng)運(yùn)行到那個(gè)階段了,但是通過編程提示進(jìn)行相應(yīng)的人機(jī)交互,編譯后了解了整個(gè)設(shè)備的運(yùn)行情況,隨后傳感器檢測(cè)數(shù)據(jù)并傳輸?shù)絾纹瑱C(jī)中進(jìn)行處理,最后由主控單元處理后發(fā)送至顯示模塊上顯示出來,以此實(shí)現(xiàn)數(shù)據(jù)的識(shí)別與顯示[4]。(2)手勢(shì)識(shí)別(GS)測(cè)試-通過KEY1按鍵進(jìn)入此項(xiàng)測(cè)試。實(shí)現(xiàn)PAJ7620U2自帶8個(gè)手勢(shì)識(shí)別的檢測(cè),向上(Up)、向下(Down)、向左(Left)、向右(Right)、向前(Forward)、向后(Backward)、順時(shí)針(Clockwise)、逆時(shí)針(Counterclockwise)。(3)顯示流程開始后,程序開始驅(qū)動(dòng)一個(gè)初始化的操作。經(jīng)過一個(gè)延遲后,程序會(huì)選擇控制顯示的開關(guān)操作,再經(jīng)歷一個(gè)延遲后,啟動(dòng)清屏的操作,并初始化顯示的位置,然后在主函數(shù)會(huì)調(diào)用顯示的子程序,利用單片機(jī)內(nèi)部的串行接口,接收需要顯示的信號(hào),并在OLED設(shè)定的顯示地址上將向左、向右、向上、向下、向前、向后、順時(shí)針、逆時(shí)針等數(shù)值顯示出來。(4)手勢(shì)信號(hào)采集過程開啟一個(gè)延遲后,對(duì)所有選擇的模式、寄存器地址等進(jìn)行定義,然后發(fā)送顯示的命令,包括寫命令和寫數(shù)據(jù)的命令等;并在數(shù)據(jù)完成寫入顯示后打開中斷,結(jié)束該過程。(5)本次設(shè)計(jì)采用的是獨(dú)立按鍵,鍵盤的掃描程序啟動(dòng)后,首先進(jìn)行的是模塊的初始化,然后確定有沒有按鍵按下并且判斷是哪一個(gè)按鍵。每當(dāng)檢測(cè)到確定有鍵按下后,就需要去除鍵抖動(dòng),并且延時(shí)一段時(shí)間再進(jìn)行下一步的檢測(cè)判斷,這樣就能夠識(shí)別出是哪一個(gè)鍵閉合。
圖5 手勢(shì)定義Fig.5 Gesture definition
圖6 各個(gè)手勢(shì)注冊(cè)的數(shù)據(jù)和地址圖Fig.6 Data and address map of each gesture registration
根據(jù)PAJ7620的工作特性,設(shè)計(jì)了八種手勢(shì)人機(jī)距離由5~30cm手勢(shì)識(shí)別率的實(shí)驗(yàn),每間隔5cm距離各做50次八種不同的手勢(shì),分別測(cè)試距離對(duì)識(shí)別結(jié)果的影響,測(cè)試結(jié)果如表1 所示。
表1 手勢(shì)識(shí)別率表Tab.1 Gesture recognition rate table
由表1 可以確認(rèn),距離在0~10cm 之間,識(shí)別率接近100%;距離在10~25cm之間,表現(xiàn)出個(gè)別結(jié)果不準(zhǔn)確,除去光以及物體移動(dòng)速度的影響,識(shí)別率可以達(dá)到60%以上;距離大于25cm,識(shí)別率接近0,所以該系統(tǒng)識(shí)別最大范圍在25cm以內(nèi),距離在10cm以內(nèi)最為準(zhǔn)確。