史存英 ,王金海,2,崔 軍
(1.天津工業(yè)大學(xué) 電子與信息工程學(xué)院,天津 300387;2.天津市醫(yī)學(xué)電子診療技術(shù)工程中心,天津 300387)
近年來隨著網(wǎng)絡(luò)通信、計(jì)算機(jī)應(yīng)用、人機(jī)交互等技術(shù)的飛速發(fā)展,人們逐漸開始探討如何使人居住得更加舒適便捷,“物聯(lián)網(wǎng)”、“智慧家庭”開始成為各科研機(jī)構(gòu)和各大公司的研究熱點(diǎn),也取得了一些顯著成果[1]。另一方面,隨著人們生活質(zhì)量的提高,家用電器在城鄉(xiāng)居民的日常生活中仍占據(jù)著不可替代的重要地位,但隨著數(shù)字化和智能化的推廣,使用傳統(tǒng)遙控器的不足日益凸顯,遙控器按鍵增多,操作越來越復(fù)雜,尤其一些身體殘障人士和上了年紀(jì)的老人覺得操作起來非常麻煩[2],而手勢(shì)作為一種自然而直接的交流方式,更為簡(jiǎn)捷方便。因此用手勢(shì)操作代替?zhèn)鹘y(tǒng)遙控方法的想法應(yīng)運(yùn)而生,這樣用戶就可以很方便地隨時(shí)操控電視機(jī)等常用電器。
現(xiàn)有的手勢(shì)遙控大多還是需要觸摸板或數(shù)據(jù)手套等載體,且都應(yīng)用于新型智能電視,沒考慮到傳統(tǒng)的非智能電視機(jī),也沒有關(guān)注其他常用電器,也沒有解決臨時(shí)找不到遙控器或者戴手套感知體驗(yàn)差等問題,尚未實(shí)現(xiàn)真正的“以人為本”的人性化交互。而且,現(xiàn)有的手勢(shì)遙控器都是各個(gè)生產(chǎn)廠家采用不同的設(shè)備和工作原理,設(shè)備價(jià)格昂貴且通用性不好,沒有一個(gè)全開放式的平臺(tái),不符合大眾用戶的需求。
結(jié)合手勢(shì)識(shí)別和紅外遙控技術(shù),本文研究了一種新的家居環(huán)境遙控方法,用戶只需對(duì)著攝像頭比劃相應(yīng)的手勢(shì)就能實(shí)現(xiàn)對(duì)受控對(duì)象的遙控,并得到操作結(jié)果的反饋信息。使用該遙控方法操作時(shí)完全不需要任何手持設(shè)備,僅用手勢(shì)就可以完成,為身體殘障人士和老年人提供了極大便利;該遙控方法可內(nèi)置多種廠家的紅外編碼,具有很好的通用性。
該方法將遙控系統(tǒng)分為4部分:采集單元、處理單元、控制單元和通信單元,圖1為該遙控系統(tǒng)的總體框圖。
圖1 手勢(shì)遙控系統(tǒng)總體框圖
采集單元負(fù)責(zé)采集用戶的手勢(shì),并把采集到的圖像傳輸給中央處理器處理,此過程通過圖像傳感器實(shí)現(xiàn)。處理單元是本系統(tǒng)的關(guān)鍵部分,主要負(fù)責(zé)對(duì)采集到的圖像進(jìn)行手勢(shì)檢測(cè)與識(shí)別,判斷用戶發(fā)出的是何種手勢(shì)(頻道加/減、音量加/減、返回上一步、返回主選單、確定、電視開關(guān))??刂茊卧呛诵牟糠?,負(fù)責(zé)手勢(shì)編碼的轉(zhuǎn)換與控制命令的發(fā)送,首先將識(shí)別結(jié)果轉(zhuǎn)換為對(duì)應(yīng)的紅外遙控碼,然后發(fā)出相應(yīng)控制指令,此過程由ARM最小系統(tǒng)完成。通信單元有紅外發(fā)射和指示燈顯示兩部分,它的作用是將紅外遙控碼發(fā)送到受控對(duì)象的紅外接收端,并發(fā)送遙控操作成功與否的指示信號(hào),最終實(shí)現(xiàn)用手勢(shì)遙控家電并能看到相應(yīng)的反饋信息,此過程由紅外發(fā)射電路和指示燈電路實(shí)現(xiàn)。
以下將從硬件和軟件兩個(gè)方面闡述手勢(shì)遙控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程。
本系統(tǒng)硬件主要包括用于采集手勢(shì)的圖像采集裝置、負(fù)責(zé)處理和控制的中央處理器以及受控對(duì)象,其整體硬件框圖如圖2所示。
圖2 系統(tǒng)硬件框圖
2.1.1 圖像采集裝置
圖像采集裝置選用CMOS圖像傳感器OV7620。CMOS傳感器集成度高、功耗低、成本低,雖然噪音較大、靈敏度較低,但可以采用白平衡控制、色飽和度、對(duì)比度、邊緣增強(qiáng)以及伽馬校正等影像控制技術(shù)補(bǔ)償,達(dá)到與CCD傳感器相媲美的效果,而且對(duì)于家庭來說,成本是非常值得考量的一點(diǎn)。
綜合考慮,本系統(tǒng)選用OV7620,該圖像傳感器通過SC?CB總線控制,有效分辨率可達(dá)640×480,幀速率為30 f/s(幀/秒),數(shù)據(jù)格式有YUV,YCbCr,RGB三種可以選擇(考慮到本文選擇的手勢(shì)檢測(cè)算法采用YCbCr數(shù)據(jù)格式最佳),工作時(shí)功耗<120 mW,待機(jī)時(shí)功耗<10 mW,電源供電為5 V,可隔行掃描也可逐行掃描。其與中央處理器的管腳連接如圖3所示。
圖3 圖像采集器與中央處理器管腳連接圖
2.1.2 中央處理器
本系統(tǒng)的核心部分是中央處理器,所有信息的處理和命令的發(fā)出都是通過它完成。中央處理器由ARM最小系統(tǒng)和一些外圍電路組成,主控芯片選用飛思卡爾公司K60系列芯片MK60DN512Z,該款芯片功能強(qiáng)大,適用于高集成度和低功耗的嵌入式應(yīng)用中,采用Cortex-M4內(nèi)核,提供1.25 DMIPS/MHz的DSP指令(單精度浮點(diǎn)處理),CPU工頻高達(dá)100 MHz,芯片本身具備512 kbyte FLASH、128kbyte SRAM、16路通道的通用DMA控制器,多功能外部總線接口可以連接外部存儲(chǔ)器、門陣列邏輯和液晶等。最大限度地降低成本和減少外圍器件。中央處理器接收到圖像傳感器OV7620的數(shù)據(jù)之后,進(jìn)行預(yù)處理和識(shí)別等操作,并將識(shí)別結(jié)果轉(zhuǎn)換為對(duì)應(yīng)的遙控指令,控制紅外發(fā)射模塊和指示燈模塊。
電源問題也是嵌入式產(chǎn)品需要解決的一個(gè)重要方面,由于本系統(tǒng)面向的是家庭,且5 V電源非常方便獲取,所以使用5 V電源輸入,再采用低壓降電壓穩(wěn)壓器ASM1117-3.3,固定輸出電壓為3.3 V,精度1%,輸出電流0~1 A,這樣就解決了系統(tǒng)的供電問題。電源模塊的電路連接如圖4所示。
圖4 電源模塊的電路連接圖
2.1.3 紅外發(fā)射電路
紅外發(fā)射電路由紅外發(fā)光二極管和限流電阻組成,與K60的PTA10管腳相連,如圖5所示,由中央控制器控制其發(fā)送載波為37.9 kHz的16位紅外遙控編碼,能夠在3 m范圍內(nèi)靈活控制電視機(jī)。選取的紅外發(fā)光二極管波長(zhǎng)為830~950 nm,紅外二極管infrared的陽(yáng)極接正向電壓3.3 V,陰極接K60的PTA10引腳,R12為限流電阻,可以起到保護(hù)二極管和I/O端口的作用。
圖5 紅外發(fā)射電路
為便于調(diào)試和管理,本文采用模塊化的程序設(shè)計(jì)方法,每個(gè)模塊實(shí)現(xiàn)一個(gè)獨(dú)立的功能,主程序通過調(diào)用各子程序模塊完成系統(tǒng)的整體功能,子程序包括系統(tǒng)和端口初始化程序、圖像處理程序、紅外遙控碼發(fā)射程序及指示燈顯示程序。圖6為中斷處理函數(shù)的流程圖。系統(tǒng)完成初始化工作后,攝像頭定時(shí)每隔10 s采集一次圖像,接著通過橢圓膚色模型判斷是否有人手區(qū)域,即是否進(jìn)入中斷處理函數(shù)進(jìn)行后續(xù)處理。
進(jìn)入中斷處理函數(shù),說明有類膚色的運(yùn)動(dòng)目標(biāo)進(jìn)入攝像頭區(qū)域,可能有手勢(shì)操作發(fā)生,下一步就要判斷用戶發(fā)出了何種遙控手勢(shì)。調(diào)用二值化、輪廓提取、手勢(shì)識(shí)別這三個(gè)處理函數(shù)逐層判斷用戶是否發(fā)出了操作手勢(shì),若有操作手勢(shì)發(fā)生則發(fā)送對(duì)應(yīng)紅外編碼給其紅外接收端并使綠燈閃爍5 s(指示操作成功),若無則使紅燈閃爍5 s(指示操作失?。?,至此一次操作完成,退出中斷處理函數(shù)。
圖6 中斷處理流程圖
系統(tǒng)上電完成初始化工作后開始運(yùn)行,無限循環(huán)于產(chǎn)生和處理中斷信號(hào)之間,直至關(guān)閉系統(tǒng)或者斷電。
手勢(shì)具有自然直觀的特點(diǎn),人機(jī)間通信不再需要中間媒體,用戶可以簡(jiǎn)單地定義一些適當(dāng)?shù)氖謩?shì)來控制周圍的機(jī)器,這是一種自然并符合人們行為習(xí)慣的交互方式。近年來隨著計(jì)算機(jī)視覺技術(shù)的發(fā)展,利用普通攝像頭就可以實(shí)現(xiàn)對(duì)手勢(shì)信息的非接觸性捕獲。
3.1.1 手形檢測(cè)
對(duì)基于視頻流的手勢(shì)識(shí)別來說,手勢(shì)的跟蹤是不可忽略的一個(gè)問題,常用的跟蹤算法包括卡爾曼濾波法、粒子濾波法、Camshift算法等運(yùn)動(dòng)估計(jì)算法以及光流法、圖像差分法等目標(biāo)檢測(cè)算法,本文需要解決的首要問題是判斷用戶是否有手勢(shì)命令發(fā)出。運(yùn)動(dòng)估計(jì)算法雖然精確但計(jì)算量太大,不適合應(yīng)用在嵌入式設(shè)備中;經(jīng)過綜合對(duì)比分析,本文采用定時(shí)處理攝像頭捕獲的圖像的方法來檢測(cè)手形,因?yàn)檫b控操作時(shí)間間隔不是ms級(jí)的,所以每隔10 s處理圖像的設(shè)計(jì)完全可以滿足用戶的需求,又可以減少嵌入式設(shè)備的計(jì)算量。先利用橢圓膚色模型對(duì)圖像中每個(gè)像素點(diǎn)進(jìn)行遍歷,將得到的類手勢(shì)像素點(diǎn)進(jìn)行二值化處理,通過八鄰域搜索法得到當(dāng)前幀的膚色點(diǎn)集輪廓和類膚色連通區(qū)域[3],結(jié)合人手的比例結(jié)構(gòu)特征過濾掉非人手區(qū)域,消除人臉、手臂及其他類膚色區(qū)域的干擾,最終確定出候選人手區(qū)域,完成手形檢測(cè)。
所用橢圓膚色模型的數(shù)學(xué)表達(dá)式為
標(biāo)記完連通區(qū)域之后要篩選類人手區(qū)域,篩選規(guī)則為滿足以下條件的將被去掉:
1)填充率SMi/Ni≤ 0.4,其中SMi為連通區(qū)域的總像素?cái)?shù),Ni為連通區(qū)域中的膚色點(diǎn)數(shù);
2)連通區(qū)域wi<10或hi<10,其中wi為連通區(qū)域的寬度,hi為連通區(qū)域的長(zhǎng)度;
3)長(zhǎng)寬比wi/hi<0.5;
4)長(zhǎng)寬比wi/hi>0.85。
3.1.2 手勢(shì)識(shí)別
接著判斷用戶發(fā)出的是何種操作命令,即候選人手區(qū)域?yàn)楹畏N手勢(shì)動(dòng)作。手勢(shì)識(shí)別算法非常多,各自有其優(yōu)缺點(diǎn),有些識(shí)別結(jié)果精確但計(jì)算量很大,有些對(duì)手勢(shì)的旋轉(zhuǎn)、平移和比例改變以及攝像頭視角改變不太敏感,所以選取合適的識(shí)別算法非常關(guān)鍵。由于嵌入式本身的特點(diǎn),要求盡可能選擇計(jì)算量較小的手勢(shì)識(shí)別算法以提高其時(shí)效性,經(jīng)過對(duì)比研究,本文最終選用計(jì)算量相對(duì)較小且對(duì)平移和尺度變化不敏感的方向直方圖算法[4-5]。預(yù)先定義好不同的操作命令對(duì)應(yīng)的手勢(shì),并訓(xùn)練樣本以確定不同手勢(shì)邊緣的方向直方圖,存為模板,當(dāng)新的手勢(shì)圖像到來后先分析其方向直方圖然后與模板進(jìn)行對(duì)比,進(jìn)而識(shí)別出手勢(shì)所代表的具體遙控命令。
圖像中像素點(diǎn)的灰度梯度指的是其灰度變化的最大方向,所有像素點(diǎn)灰度梯度的集合就構(gòu)成了整幅圖像的方向直方圖。本系統(tǒng)要在嵌入式設(shè)備上實(shí)現(xiàn),要求算法計(jì)算量盡可能要小,所以只對(duì)圖像的邊緣求方向直方圖,同時(shí),為減少計(jì)算量,本文僅對(duì)圖像中篩選出的人手區(qū)域做計(jì)算。首先利用Sobel算子得到該區(qū)域的邊緣,并計(jì)算出其邊緣所有像素點(diǎn)的灰度梯度,計(jì)算公式為
式中:Sy和Sx分別代表當(dāng)前像素灰度的豎直和水平方向變化值,其值由Sobel水平和垂直算子與當(dāng)前像素值做卷積運(yùn)算得到。
通過式(2)計(jì)算出邊緣每個(gè)像素點(diǎn)的梯度方向θ(x,y),然后將[0,2π]均勻地分成36份,這樣每個(gè)角度區(qū)間的長(zhǎng)度都是10°,統(tǒng)計(jì)出落在每個(gè)角度區(qū)間內(nèi)的邊緣像素點(diǎn)個(gè)數(shù),記為φ(k),k=1,2,…,36,將這36個(gè)φ(k)集合,就構(gòu)成了當(dāng)前圖像中目標(biāo)區(qū)域的邊緣方向直方圖。為提高此方法對(duì)于不同大小的手的通用性并提高運(yùn)算速度,將φ(k)作如下歸一化處理
在識(shí)別之前,首先要對(duì)需要識(shí)別的九種手勢(shì)的方向直方圖進(jìn)行訓(xùn)練,對(duì)于每種要識(shí)別的手勢(shì)做10次實(shí)驗(yàn),取10次實(shí)驗(yàn)數(shù)據(jù)的均值作為該手勢(shì)的標(biāo)準(zhǔn)直方圖模板。捕獲到一幀手勢(shì)圖像后要進(jìn)行模板匹配以確定其含義,假設(shè)當(dāng)前手勢(shì)的方向直方圖和模板z的方向直方圖分別為φ(k)和φz(k),這里用Bhattacharyya系數(shù)來衡量?jī)烧叩南嗨菩?,公式?/p>
式中:ρz越大,說明二者的相似性越大,ρz最大的模板z就是當(dāng)前要識(shí)別的手勢(shì)的含義。
紅外線的光譜在紅色光之外,因此得名,其波長(zhǎng)在0.76~1.5 μm,紅外遙控就是利用紅外線傳遞信息的一種遙控方式,由于其電路簡(jiǎn)單、編碼和解碼相對(duì)容易、能抗干擾且功耗小成本低,廣泛應(yīng)用于家用電器遙控領(lǐng)域。其工作原理是紅外發(fā)射端將代表不同功能的編碼脈沖調(diào)制后發(fā)送出去,受控對(duì)象通過紅外接收端接收到調(diào)制信號(hào),解調(diào)后執(zhí)行相應(yīng)的遙控功能,以此實(shí)現(xiàn)控制家電的目的。
不同廠家不同設(shè)備遙控器編碼大多不同,例如康佳遙控器KK-Y345A,其編碼格式為引導(dǎo)碼+16位用戶碼+16位數(shù)據(jù)碼+同步碼,用示波器分析得到其引導(dǎo)碼、“0”碼、“1”碼和同步碼的對(duì)應(yīng)波形,就可以解析出該遙控器所有按鍵的對(duì)應(yīng)編碼,又如長(zhǎng)虹遙控器K5D*28編碼為引導(dǎo)碼、用戶碼、用戶反碼、數(shù)據(jù)碼和數(shù)據(jù)反碼,創(chuàng)維遙控器P6編碼格式為引導(dǎo)碼、用戶碼、數(shù)據(jù)碼和數(shù)據(jù)反碼。本文解析了康佳遙控器中與定義的手勢(shì)含義對(duì)應(yīng)的8個(gè)常用按鍵的編碼,具體編碼見表1。圖7為用示波器觀察到的康佳遙控器發(fā)出的1幀信號(hào)的波形。
實(shí)驗(yàn)所用遙控器是KK-Y345A,載波為37.9 kHz,占空比為2/3,使用K60的低功耗定時(shí)器模塊Lptmr延遲I/O端口輸入電平搭配50 MHz外部時(shí)鐘源來實(shí)現(xiàn)載波信號(hào)的輸出;然后通過控制延遲時(shí)間來實(shí)現(xiàn)不同的遙控器編碼輸出。
1)實(shí)驗(yàn)平臺(tái)的構(gòu)建
為測(cè)試該遙控方法的性能,本文選用家用電器中最為常見的電視機(jī)作為受控對(duì)象,測(cè)試輸出載波和各紅外編碼是否達(dá)到要求,以及輸入手勢(shì)信號(hào)是否與原有按鍵功能保持一致。實(shí)驗(yàn)平臺(tái)包括攝像頭OV7620、中央處理器、一臺(tái)電視機(jī)(康佳牌)、一臺(tái)示波器,測(cè)試過程為:(1)用示波器觀察輸出的8種紅外信號(hào)波形,測(cè)量其載波頻率并與表1中編碼值對(duì)照,查看其輸出波形是否正確;(2)選取不同光照條件、背景復(fù)雜程度不一的6種情況作為測(cè)試環(huán)境,對(duì)應(yīng)的手勢(shì)識(shí)別實(shí)驗(yàn)數(shù)據(jù)如表2所示;(3)測(cè)試識(shí)別到的各個(gè)手勢(shì)能否引起電視機(jī)的正確響應(yīng)。
表1 遙控器常用按鍵編碼表
圖7 遙控器一幀信號(hào)的波形圖
表2 手勢(shì)識(shí)別實(shí)驗(yàn)數(shù)據(jù)
2)結(jié)果分析
測(cè)試發(fā)現(xiàn)中央處理器輸出的紅外碼波形是滿足實(shí)際操作需要的,而且手勢(shì)識(shí)別的結(jié)果能與遙控命令一一對(duì)應(yīng)。
采用該方法平均手勢(shì)識(shí)別率為86.667%,基本滿足需要。通過對(duì)識(shí)別數(shù)據(jù)的分析,發(fā)現(xiàn)以上6種實(shí)驗(yàn)環(huán)境下錯(cuò)誤檢測(cè)的一個(gè)共同點(diǎn)是背景中包含顏色與膚色相近的橢圓形或正方形物體,從而被誤當(dāng)成人手。而漏檢的原因各不相同,側(cè)光照射下高光的部分趨近于白色而造成漏檢,非高光部分雖被檢測(cè)出來,但由于區(qū)域過小且標(biāo)定的長(zhǎng)寬比不符合篩選規(guī)則而被去掉;室內(nèi)無燈光或背光時(shí)成像會(huì)趨于黑色而造成漏檢。所以還要對(duì)算法進(jìn)行進(jìn)一步研究改進(jìn),同時(shí)考慮適當(dāng)進(jìn)行光照補(bǔ)償以改善極端光照條件對(duì)系統(tǒng)的影響。
本文所研究的手勢(shì)遙控方法的主要特點(diǎn)是良好的交互性和可視化操作,僅用符合人們習(xí)慣的手勢(shì)就可完成對(duì)家用電器的遙控,無需其他手持式設(shè)備,實(shí)用性強(qiáng)且成本較低,操作方便簡(jiǎn)單,為特殊人群提供了便捷的家電遙控方式。隨著技術(shù)的發(fā)展和人們需求的不斷增加,作為一種無障礙的交互手段,手勢(shì)遙控在家電等消費(fèi)電子領(lǐng)域的應(yīng)用將更加廣泛,前景廣闊。
[1] 肖志勇,秦華標(biāo).基于視覺跟蹤和手勢(shì)識(shí)別的人機(jī)交互[J].計(jì)算機(jī)工程,2009,35(15):198-200.
[2] 任海兵,祝遠(yuǎn)新,徐光佑,等.基于視覺手勢(shì)識(shí)別的研究—綜述[J].電子學(xué)報(bào),2000,28(2):118-120.
[3] 李全彬,王小明.復(fù)雜光照下的人臉膚色檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用,2010(6):1594-1596.
[4] 王守磊,朱民耀,陸小鋒,等.一種基于方向直方圖的嵌入式手勢(shì)識(shí)別系統(tǒng)[J].電視技術(shù),2012,36(15):133-137.
[5] 倪愷,肖志濤,張芳.基于梯度方向直方圖的行人檢測(cè)方法研究[J].電視技術(shù),2011,35(5):23-25.