摘 要: 選取Hu不變矩、手勢輪廓的凹陷個數(shù)及其周長與面積比為手勢識別的主要特征,采用了基于徑向基核的SVM分類器進行0~9 十種手勢的識別。實驗結(jié)果表明,在背景單一、光照情況良好條件下,該方法具有很高的識別率,并且簡單快速。
關(guān)鍵詞:手勢識別;Hu矩;支持向量機
手勢識別[1]、人臉識別、指紋識別和唇讀識別等都是符合人際交流習(xí)慣的備受關(guān)注的人機交互技術(shù),在計算機輔助啞語教學(xué)、電影特技處理、醫(yī)療研究和智能機器人等各個領(lǐng)域均有廣泛的應(yīng)用。其中,基于計算機視覺的手勢識別因其設(shè)備成本低廉、操作自然方便等特點越來越受到人們的追捧,是手勢識別未來的發(fā)展趨勢。然而,人手的自由度和彈性、背景、光照以及噪聲等因素給手勢識別帶來了很大困難,如何克服這些困難以獲得更加自然、和諧、完善的手勢識別系統(tǒng)是當(dāng)今人們研究的目標。
手勢特征選取和分類器設(shè)計一直是影響手勢識別效果及速度的兩個關(guān)鍵問題。良好的特征應(yīng)具有可靠性、可區(qū)別性、數(shù)量少以及獨立性強等特點,比較常用的特征提取方法有Hu矩[2]、Zernike矩、傅里葉輪廓矩和小波矩等。其中,Zernike矩的優(yōu)勢是能夠構(gòu)造任意的高階矩,對噪聲不敏感,主要用于圖像恢復(fù);傅里葉描述子具有較好的輪廓描述能力,但對細節(jié)特征非常敏感,誤識率比較高;小波矩雖然能達到很高的識別率但需首先對圖像進行歸一化處理,計算比較復(fù)雜。本文的仿真實驗在背景單一、光照情況良好的條件下進行,選擇了能同時滿足平移、旋轉(zhuǎn)和比例不變性的Hu不變矩、手勢輪廓的凹陷個數(shù)以及其周長與面積比為作為主要的特征參數(shù)。
目前,基于視覺的手勢識別算法研究主要有通過計算模板的相關(guān)系數(shù)來進行模板匹配的手勢識別、用神經(jīng)網(wǎng)絡(luò)方法進行手勢識別以及基于Euclidean距離的手勢識別等。支持向量機[3]是基于結(jié)構(gòu)風(fēng)險最小化的一種新的模式識別方法,在解決小本、非線性及高維模式識別問題中具有許多特有的優(yōu)勢。本文在對手勢輪廓進行Hu不變矩特征提取的基礎(chǔ)上設(shè)計了支持向量機分類器,對分類器進行訓(xùn)練和測試,實驗結(jié)果證明,系統(tǒng)具有很高的識別率。
1 特征的選擇
1.1 不變矩理論及參數(shù)選擇
矩的定義源于概率理論,是一種重要的數(shù)字特征,同時也具有直觀的物理意義。手勢圖像函數(shù)f(x,y)的(p+q)階原點矩(也稱普通矩)定義為:
手勢輪廓的凸包和凹陷可用于描述手勢的形狀,由于文中自定義的10個手勢各具形態(tài),手指的數(shù)目不盡相同,手勢的凸包和凹陷也是不同的,它們能很好地體現(xiàn)手以及手狀態(tài)的特征,因此考慮提取手勢的凹陷點數(shù)目作為手勢的特征向量。其計算方法是首先計算輪廓是否為凸,再計算其連接凸包的外接多邊形并提取出來,根據(jù)外接多邊形計算凹陷點個數(shù),如圖1所示。本文選取手勢輪廓的凹陷個數(shù)作為第5個特征參數(shù)N5。
手勢輪廓的周長定義為手勢輪廓在手勢矩形區(qū)域內(nèi)包含的像素總數(shù),通過掃描手勢輪廓圖中的手勢矩形區(qū)域,計算黑色點個數(shù)即可算出周長。手勢輪廓的面積定義為輪廓部分和起始點連線構(gòu)成的封閉部分的面積,其值受輪廓方向的影響有可能為負值。本文構(gòu)造輪廓的周長與面積之比作為第6個特征參數(shù)N6。
1.2 特征值提取
在本文設(shè)計的基于計算機視覺的手勢識別系統(tǒng)中,首先以幀為單位對攝像頭采集到的手勢視頻采用了圖像平滑、色彩空間轉(zhuǎn)換、圖像二值化、邊緣檢測、輪廓提取以及形態(tài)學(xué)處理等算法進行圖像預(yù)處理以獲得手勢的二值化圖像、邊緣圖像以及輪廓矩陣,然后分別對每幀手勢輪廓進行Hu矩、輪廓周長面積比和凹陷個數(shù)等的運算,得到各個手勢的特征值。圖2所示為樣本視頻進行訓(xùn)練時提取到的0~9手勢輪廓樣本。
表1列出了手勢輪廓的Hu矩前4個矩M1~M4、輪廓周長面積比N5和凹陷個數(shù)N6的特征值,它們都是對學(xué)習(xí)視頻中所有幀數(shù)的手勢輪廓分別求特征值并計算平均值得到的。這里的識別率為0~9每一種手勢于視頻模式下分別對5組測試視頻進行檢測,然后對分別獲得的識別率求平均值獲得的。其中,9的識別率偏低是由于其手勢輪廓與3相近,容易造成分類時的判斷錯誤。
2 支持向量機
2.1基本原理
SVM是統(tǒng)計學(xué)習(xí)理論中最年輕的部分,主要用于解決有限樣本情況下的模式識別問題。它的基本思想是在樣本空間或特征空間構(gòu)造出最優(yōu)超平面,使超平面與小同類樣本集之間的距離最大,從而達到最大的泛化能力。算法思路如下:
在這4種核函數(shù)中,本文選取了RBF核函數(shù),因為在低維、高維、小樣本和大樣本等情況下,RBF核函數(shù)均適用,具有較寬的收斂域,是較為理想的分類依據(jù)函數(shù)。
2.3參數(shù)最優(yōu)化選擇
核函數(shù)的參數(shù)和誤差懲罰因子C是影響支持向量機性能的關(guān)鍵因素。C用于控制模型復(fù)雜度和逼近誤差的折中,C越大則對數(shù)據(jù)的逼近誤差越小,同時模型也會越復(fù)雜,支持向量機的推廣能力也變得越差。RBF中的?滓用于控制回歸逼近誤差的大小,從而控制支持向量機的個數(shù)和泛化能力,其值越大則支持向量數(shù)目變少,同時精度變差;相反,則支持向量數(shù)目變多,精度變高。
尋找最佳的(C,γ)參數(shù)組使該SVM的性能最好,最簡單的方法是分別選取不同的參數(shù)組合,得出不同的錯誤率,選取其中錯誤率最小的參數(shù)組合作為最優(yōu)化選擇,這種方法也叫做“窮舉法”。本文采用了臺灣林智仁教授開發(fā)的libsvm支持向量機庫中的工具“grid.py”進行了參數(shù)的優(yōu)選,該工具是采用網(wǎng)格遍歷法,由gnuplot生成的搜索結(jié)果顯示出最小錯誤率時的參數(shù),即最優(yōu)參數(shù)為(8.0,0.5)。
3 仿真實驗
本文設(shè)計的手勢識別系統(tǒng)采用了C語言、Code::Blocks開發(fā)平臺、OpenCV2.3.1[4]計算機視覺開源庫和35萬像素攝像頭。該系統(tǒng)主要包括手勢跟蹤、手勢圖像預(yù)處理、特征提取和手勢識別4個部分。系統(tǒng)框圖如圖3所示。
本系統(tǒng)的程序整體框架分為學(xué)習(xí)模式和識別模式,識別模式包括視頻文件識別模式和攝像頭識別模式。處于學(xué)習(xí)模式時,通過讀取配置的手勢視頻文件獲取學(xué)習(xí)模板,對每一幀圖片進行濾波、閾值分割和輪廓提取等預(yù)處理得到手勢輪廓圖像,獲取手勢輪廓的Hu矩和其他特征參數(shù),訓(xùn)練特征參數(shù)后并保存,生成相應(yīng)的判別界面函數(shù)。視頻文件識別模式通過對每一幀圖片進行預(yù)處理和特征參數(shù)提取后調(diào)用svmPredict函數(shù)進行分類預(yù)測,結(jié)果顯示在屏幕上。處于攝像頭模式時,首先讀取攝像頭采集的圖像,設(shè)置鼠標事件和界面窗口,選定跟蹤目標的區(qū)域和大小,計算目標區(qū)域的色彩直方圖和反射投影。本文選取了傳統(tǒng)的Camshift跟蹤算法用于跟蹤目標并提取跟蹤窗口的目標,對跟蹤目標圖片進行預(yù)處理并計算特征參數(shù),最后進行手勢識別并顯示識別結(jié)果。程序運行的最后均要釋放資源。
圖4為攝像頭模式下手勢識別的截圖,圖中實時顯示出了手勢的外接矩形、外接多邊形、手勢輪廓、直方圖和識別率等信息。
本文開發(fā)的基于Hu矩和SVM的手勢識別系統(tǒng)能夠?qū)崿F(xiàn)在視頻模式和攝像頭模式下對0~9十種手勢的實時識別,但光照條件要求相對比較高,人手與攝像頭需要保持在一定的距離范圍內(nèi)。目前只選擇了Hu矩中的M1~M4、手勢輪廓的凹陷個數(shù)N5以及周長與面積的比N6作為特征參數(shù),如何選取更好的特征參數(shù)以提高系統(tǒng)識別性能需要進一步研究。
參考文獻
[1] 任雅祥.基于手勢識別的人機交互發(fā)展研究[J].計算機工程與設(shè)計,2006,27(7):1201-1204.
[2] FLUSSER J, SUK T, ZITOWA B. Moments and moment invariants in pattern recognitong[M]. Chichester: John Wiley & Sons Ltd, 2009.
[3] 羅瑜.支持向量機在機器學(xué)習(xí)中的應(yīng)用研究[D]. 成都:西南交通大學(xué),2007.
[4] LAGANI?魬RE R. OpenCV 2 Computer vision application programming cookbook[M]. Birmingham: Packt Publishing Ltd, 2011.