王 飛
(浙江大學(xué)昆山創(chuàng)新中心,江蘇 昆山215300)
如何使人機(jī)之間的交互變得高效簡單,逐漸成為眾多科學(xué)領(lǐng)域研究的熱點(diǎn),作為人機(jī)交互領(lǐng)域的手勢識別技術(shù)也在不斷發(fā)生變化。當(dāng)前手勢識別應(yīng)用較為廣泛,主要應(yīng)用于虛擬環(huán)境、手語、多媒體用戶界面以及機(jī)械手抓取等眾多領(lǐng)域。國內(nèi)外對于手勢識別技術(shù)都作了大量的研究工作,例如國外Huang創(chuàng)建了手語識別系統(tǒng)并使用3D神經(jīng)網(wǎng)絡(luò)方法識別15種手勢,國內(nèi)北京交通大學(xué)的王松林通過kinect設(shè)備實(shí)現(xiàn)了動靜手勢的識別,并實(shí)現(xiàn)了對外部設(shè)備的控制[1]。
隨著人類生活水平的不斷提高,越來越注重用戶體驗(yàn),而基于傳感器加速硬件的手勢識別需要借助一些硬件設(shè)備完成操作。此類設(shè)備造價高、佩戴不方便,并且需要在特定的場合進(jìn)行使用,同時也存在衛(wèi)生問題。因此,非接觸式人機(jī)交互也變得越來越重要,基于視覺信息的手勢識別,無需中間媒體且只需通過人的手勢動作完成人機(jī)之間的通信。由于沒有外在設(shè)備,使得手勢識別便捷有效,也為用戶帶來了全新的交互體驗(yàn)和自由度。同時,大多數(shù)手勢識別系統(tǒng)應(yīng)用場景較為固定,存在識別系統(tǒng)無法移動等問題[2]。
為了解決手勢識別系統(tǒng)造價高、便攜性差等缺點(diǎn),結(jié)合嵌入式平臺可裁剪、體積小及造價低等優(yōu)點(diǎn),提出了基于嵌入式平臺的手勢識別系統(tǒng),結(jié)合OpenCV計算機(jī)視覺庫,采用模板匹配方法識別出手勢數(shù)字,通過觸摸屏顯示識別手勢數(shù)字,并標(biāo)注出手勢圖像。最后通過實(shí)驗(yàn)可知,該設(shè)計系統(tǒng)具有較好的實(shí)用性和有效性。
設(shè)計系統(tǒng)由ARM開發(fā)板、USB攝像頭以及LCD觸摸屏組成。手勢識別流程為:通過攝像頭采集圖像,對采集圖像進(jìn)行預(yù)處理并提取手勢圖像特征信息,匹配手勢模板庫判斷手勢識別結(jié)果,顯示識別手勢的數(shù)字并標(biāo)注運(yùn)動手勢目標(biāo)。完整的手勢識別流程如圖1所示。
圖1 手勢識別流程圖Fig.1 Flow chart of gesture recognition
在采集手勢視頻流的過程中,由于此系統(tǒng)具有可移動性等特點(diǎn),所獲取的手勢圖像難免受到光線強(qiáng)弱變化以及鏡頭抖動等外界環(huán)境的干擾,使得圖像特征信息的對比度產(chǎn)生變化。因此,需要對獲取的手勢圖像進(jìn)行去燥處理,提高圖像識別率[3]。
圖像中相鄰像素點(diǎn)的灰度值具有較高的相關(guān)性。對于平滑、自然的圖像,像素間的距離越近,像素相關(guān)性越高;反之,像素相關(guān)性越低。權(quán)重均值濾波根據(jù)以上特點(diǎn),采用加權(quán)公式對不同距離的像素賦予不同的權(quán)重,使相關(guān)性較高的像素具有較大的權(quán)重,相關(guān)性較低的像素具有較小的權(quán)重,從而形成非線性的權(quán)重均值濾波,更好地保護(hù)圖像細(xì)節(jié)。
通過對圖2(a)~圖2(c)進(jìn)行對比分析,采用效果較好的加權(quán)均值濾波法去除手勢圖像噪聲,其效果如圖2所示。
圖2 圖像濾波對比圖Fig.2 Contrast figure of image filtering
由于視頻流圖像中所要采集的手勢目標(biāo)灰度值與當(dāng)前環(huán)境背景的灰度值具有較大差異,對于此類圖像通常采用閾值分割相關(guān)算法能夠較好地分割出所需目標(biāo)區(qū)域。在閾值分割的過程中,由于手勢目標(biāo)和圖像背景之間存在一個或多個分割閾值,因此需要設(shè)置多個閾值元素來獲取手勢目標(biāo)區(qū)域。
對圖3相關(guān)分割算法進(jìn)行研究,通過圖3(a)和圖3(b)可知,手勢圖像大部分的特征信息得到保留,但也丟失了手指和手掌等部分特征信息,產(chǎn)生了大量的干擾噪聲。而采用圖3(c)方法不僅能夠獲取完整的手勢特征信息,而且抑制了大量噪聲[4-6]。
圖3 圖像分割對比圖Fig.3 Contrast figure of image segmentation
基于嵌入式系統(tǒng)的手勢識別系統(tǒng)在獲取手勢特征信息時,手勢圖像所處環(huán)境背景十分復(fù)雜,經(jīng)過手勢圖像預(yù)處理后,消除了噪聲、增強(qiáng)了特征信息,為后續(xù)從復(fù)雜背景中提取手勢特征信息奠定了良好的基礎(chǔ)。由于單個手勢圖像包含大量的特征信息,在提取手勢特征時,需要對形狀、角度、方向及輪廓等一些指定手勢特征信息做處理分析,進(jìn)而提高識別速度和識別率。
在20世紀(jì)70年代,由M.K.Hu所提出的Hu距具有方向、位置以及大小的不變性。其中Hu距的相關(guān)變換如下[7]:
(1)比例變換
(1)
歸一化處理后為:
(2)
(2)反射變換
(3)
(3)平移變換
(4)
(4)旋轉(zhuǎn)變換
變換后的距為:
(xsinθ+ycosθ)qf(x,y)。
(5)
(cosθ)(q+r-s)Mp+q-s,r+s。
(6)
運(yùn)動目標(biāo)檢測的目的是把手勢識別系統(tǒng)視頻流中的運(yùn)動手勢從背景中提取出來。當(dāng)前,運(yùn)動目標(biāo)檢測分為靜態(tài)和動態(tài)兩種背景[8-10]。由于設(shè)計的手勢識別系統(tǒng)采用的攝像頭為固定安裝,因此采用靜態(tài)背景下的差分相乘法實(shí)現(xiàn)目標(biāo)檢測。
在采集手勢圖像時,所獲取的手勢圖像難免會受到外部因素的干擾,比如光照強(qiáng)度、視頻流噪聲等,由于諸多因素的影響導(dǎo)致差分后的圖像包含眾多不為零的像素點(diǎn),這些偽目標(biāo)點(diǎn)會被錯誤地認(rèn)為是運(yùn)動目標(biāo)。同時,檢測運(yùn)動目標(biāo)時也會存在兩幅圖像運(yùn)動目標(biāo)相重合的區(qū)域。因此,采用幀間差分相乘算法可以有效解決噪聲及光照等因素的影響,并增強(qiáng)目標(biāo)邊緣的對比度,提高手勢圖像中運(yùn)動目標(biāo)邊緣信息的準(zhǔn)確度。其算法實(shí)現(xiàn)如下:
從視頻流中獲取4副相鄰幀圖像,其中f1(x,y),f2(x,y),f3(x,y),f4(x,y)為4副幀圖像,G(x,y)為差分后圖像:
F1(x,y)= |f1(x,y)-f3(x,y)| ,
(7)
F2(x,y)= |f2(x,y)-f4(x,y)| 。
(8)
由式(7)和式(8)可得:
G(x,y)=F1(x,y)×F2(x,y) 。
(9)
算法原理如圖4所示,每幀圖像都具有一個階躍邊緣信號,從上往下依次運(yùn)動,圖像位置都在發(fā)生變化,其中采用差分相加方法時,信號中間產(chǎn)生了較大值,其位也發(fā)生了偏移;而差分相乘方法,則有效地解決了位置偏移的問題。4幀圖像經(jīng)過幀間差分相乘算法后,通過是否出現(xiàn)高峰判斷出手勢圖像中運(yùn)動目標(biāo)存在與否,出現(xiàn)高峰則存在運(yùn)動目標(biāo),否則無目標(biāo)出現(xiàn)。
圖4 差分相乘原理圖Fig.4 Difference multiplication principle diagram
本文設(shè)計的手勢識別系統(tǒng)軟件開發(fā)環(huán)境采用Ubuntu系統(tǒng),圖形界面開發(fā)工具采用Qtopia2.2.0,并結(jié)合第三方開源計算機(jī)視覺庫OpenCV2.4.3作為圖像識別的輔助工具,軟件關(guān)系如圖5所示。
圖5 系統(tǒng)軟件關(guān)系圖Fig.5 System software diagram
手勢識別系統(tǒng)硬件開發(fā)環(huán)境為ARM開發(fā)板,CPU處理器Samsung s3c2440,主頻400 MHz;64 M SDRAM內(nèi)存;64 mm×85 mm LCD觸摸屏,采用USB2.0接口的攝像頭,硬件關(guān)系如圖6所示。
圖6 系統(tǒng)硬件關(guān)系圖Fig.6 System hardware diagram
V4L2(Video for Linux two)是對V4L重新設(shè)計所得到的一種編程接口。通過V4L2接口采集不同類型圖片和視頻等數(shù)據(jù),此接口具有較強(qiáng)的靈活性和擴(kuò)展性。獲得動態(tài)視頻采集數(shù)據(jù)可使用mmap映射的方式,通過rcad獲得靜態(tài)圖片數(shù)據(jù)。使用內(nèi)核ioctl函數(shù)控制硬件設(shè)備,采用mmap對內(nèi)存映射,能夠極大增加硬件與內(nèi)核之間的通信效率。V4L2采集視頻數(shù)據(jù)流程如圖7所示。
圖7 V4L2視頻采集流程圖Fig.7 V4L2 the flow chart of video acquisition
經(jīng)過訓(xùn)練之后的10種手勢模板及改進(jìn)后Canny算子得到的手勢輪廓圖像如圖8和圖9所示。
圖8 10個手勢模板Fig.8 10 gesture templates
圖9 10個手勢輪廓Fig.9 10 gesture contours
不同背景下手勢識別和手勢檢測效果如圖10和圖11所示。
圖10 簡單背景下手勢效果圖Fig.10 Gesture effect in simple background
圖11 復(fù)雜背景下手勢效果圖Fig.11 Gesture effect in complex background
為了驗(yàn)證手勢識別系統(tǒng)的有效性和實(shí)用性,對1 000張手勢樣本進(jìn)行檢測,獲取了不同背景下10種手勢的識別率,如表1所示。
表1 不同背景下10種手勢識別率Tab.1 10 kinds of gesture recognition rate under different background
不同的背景識別率也不同,在簡單背景下識別率較高,在復(fù)雜背景下識別率有所降低。不同的光照強(qiáng)度和每種手勢的相似性都會引起手勢識別的最終效果。在復(fù)雜背景下對手勢特征進(jìn)行提取時,會影響手勢的Hu距值,導(dǎo)致與模板之間的Hu距值相差較大,影響整個系統(tǒng)的識別率。簡單背景下對圖像處理時,各種手勢圖像的特征值及質(zhì)量較為穩(wěn)定,因此手勢系統(tǒng)識別率較高。
目前,已有眾多的手勢識別技術(shù)應(yīng)用在PC機(jī)上,但仍存在較大的局限性,便攜性和實(shí)用性較差。因此,本文基于現(xiàn)有的手勢識別技術(shù)基礎(chǔ)之上,利用嵌入式系統(tǒng)和圖像處理技術(shù)相結(jié)合的方法,實(shí)現(xiàn)了基于嵌入式的手勢識別系統(tǒng)。通過USB攝像頭采集視頻流,并對視頻流中的手勢處理,識別出手勢結(jié)果,為后續(xù)人機(jī)交互控制奠定了基礎(chǔ)。最后對整個手勢識別系統(tǒng)進(jìn)行驗(yàn)證分析,整個系統(tǒng)具有實(shí)時性和有效性。