(海軍航空工程學(xué)院 兵器科學(xué)與技術(shù)系,山東 煙臺 264001)
在智能人機(jī)交互技術(shù)和機(jī)器視覺的研究中,人臉跟蹤是一項十分重要的技術(shù),是指在視頻流中提取人臉位置或角度變化信息。近年來,人臉跟蹤已經(jīng)成為機(jī)器視覺與模式識別領(lǐng)域的研究熱點(diǎn)之一。
跟蹤人臉首先要檢測識別出人臉區(qū)域,目前,人臉檢測的方法可以分為4類:基于知識的方法,特征不變方法,模板匹配方法和基于外貌的方法。在基于特征不變的方法中,由D.G.Lowe[1]提出的SIFT算法是目前效率較高的一種算法,在此基礎(chǔ)上,Herbert Bay[2]等人提出了SURF(Speeded-Up Robust Features)算法,該算法改進(jìn)了SIFT算法,進(jìn)一步提高了算法性能。
本文提出了基于SURF算法的自動嘴部區(qū)域初始化MeanShift算法改進(jìn),使用SURF 函數(shù)實(shí)現(xiàn)嘴部檢測,然后使用MeanShift 跟蹤算法實(shí)現(xiàn)嘴唇跟蹤,通過嘴部運(yùn)動產(chǎn)生新位置坐標(biāo)來控制鼠標(biāo)。
SURF 檢測算法是由Hessian 矩陣決定的,下面給出矩陣H:
Lxx(X,t)是一幅圖像在不同解析度下的表示,可以利用高斯核G (t)與圖像函數(shù)I(X)在點(diǎn) X=(x,y)的卷積來實(shí)現(xiàn),核函數(shù)G(t) 具體表示如式(3),g(t)為高斯函數(shù),t為高斯方差,Lyy與 Lxy同理。
通過這種方法可以為圖像中每個像素計算出其H 行列式的決定值,并用這個值來判別興趣點(diǎn)。為方便應(yīng)用,Herbert Bay 提出用方波濾波器和圖像的卷積作為近似值Dxx代替 Lxx,為平衡準(zhǔn)確值與近似值間的誤差引入權(quán)值w,權(quán)值w 隨尺度變化,則H矩陣判別式可表示為:
圖像的尺度空間是這幅圖像在不同解析度下的表示,由式(2)知,一幅圖像I(X)在不同解析度下的表示可以利用高斯核G(t)的卷積來實(shí)現(xiàn),圖像的尺度大小一般用高斯標(biāo)準(zhǔn)差來表示[3]。
在計算視覺領(lǐng)域,尺度空間被象征性的表述為一個圖像金字塔,SURF算法申請增加圖像核的尺寸,使尺度空間金字塔的多層同時被處理,從而使算法性能提高,SURF算法使原始圖像保持不變而只改變?yōu)V波器大小。圖1給出SURF算法與SIFT算法在金字塔結(jié)構(gòu)上的不同點(diǎn)。
圖1 圖像濾波金字塔
檢測過程中使用與該尺度層圖像解析度相對應(yīng)大小的濾波器進(jìn)行檢測,以3×3的濾波器為例,該尺度層圖像中9個像素點(diǎn)之一與自身尺度層中其余8個點(diǎn)和在其之上及之下的兩個尺度層9個點(diǎn)進(jìn)行比較,共26個點(diǎn),圖2中標(biāo)記的‘X’像素點(diǎn)的特征值若大于周圍像素(包括其上方或下方及其周圍的間隔點(diǎn))則可確定該點(diǎn)為該區(qū)域的興趣點(diǎn)。
圖2 檢測特征點(diǎn)
為保證旋轉(zhuǎn)不變性[4],首先,以特征點(diǎn)為中心,計算半徑為6 s(s為特征點(diǎn)所在的尺度值)的鄰域內(nèi)的點(diǎn)在x、y方向的Haar小波(Haar小波邊長取4 s)響應(yīng),并給這些響應(yīng)值賦高斯權(quán)重系數(shù),使得靠近特征點(diǎn)的響應(yīng)貢獻(xiàn)大,而遠(yuǎn)離特征點(diǎn)的響應(yīng)貢獻(xiàn)?。黄浯?,將60°范圍內(nèi)的響應(yīng)相加以形成新的矢量,遍歷整個圓形區(qū)域,選擇最長矢量的方向為該特征點(diǎn)的主方向。這樣,通過特征點(diǎn)逐個進(jìn)行計算,得到每一個特征點(diǎn)的主方向。
目標(biāo)模板[5]是通過一個選定區(qū)域來確定的,為了消除目標(biāo)模板尺寸不同的影響,所有的目標(biāo)模板都要首先做歸一化處理。經(jīng)過歸一化后的目標(biāo)模板長寬分別為hx和hy。設(shè)目標(biāo)模板的點(diǎn)用表示,候選目標(biāo)區(qū)域中的點(diǎn)用表示,其中xi、yj分別是目標(biāo)模板與候選目標(biāo)區(qū)域的歸一化的像素位置,μi、vj是相應(yīng)的特征矢量。定義一個核函數(shù) k (x),為目標(biāo)模板區(qū)域的像素設(shè)置權(quán)值,即越遠(yuǎn)離目標(biāo)模板中心的像素設(shè)置的權(quán)值越小,目的是增加算法的魯棒性[6],提高搜索跟蹤能力。
定義h為候選目標(biāo)的尺度,在跟蹤算法中h選擇為候選目標(biāo)的像素數(shù),δ()?為Kronecker ?函數(shù),定義為:
歸一化常數(shù) Cx、Cy分別為:
通常情況下,相似性測度函數(shù)定義的是目標(biāo)模板和候選目標(biāo)之間的距離分別為:
d (q,p(y))是目標(biāo)模板分布q和候選目標(biāo)分布 p (y)的Bhattacharyya系數(shù)。
為了在被檢測幀中定位目標(biāo),那么關(guān)于目標(biāo)模板分布q 和候選目標(biāo)分布 p (y)的距離函數(shù) d (y)應(yīng)當(dāng)最小化。定位過程也可以看成是從前一幀的目標(biāo)模板的位置開始,在其鄰域內(nèi)搜索目標(biāo)的過程。因為距離函數(shù) d (y)是光滑的,所以通過利用均值矢量(mean shift vector) d (y)的梯度信息完成目標(biāo)的定位。此過程是不斷地從目標(biāo)當(dāng)前位置 y0移動到新目標(biāo)位置 y1,直到候選目標(biāo)與目標(biāo)模板足夠相似。y1的計算式:
1)利用式(5)計算目標(biāo)模板在前一幀 y0處的概率密度并指定一個小的正常數(shù)ε[7];
2)初始化在當(dāng)前幀 y0處的候選目標(biāo),利用式(6)計算其概率密度和Bhattacharyya系數(shù);
3)利用式(12)計算候選目標(biāo)的下一個新位置y1;
OpenCV[8](Open Source Computer Vision Library)是一種用于數(shù)字圖像處理和計算機(jī)視覺的函數(shù)庫,由 Intel 微處理器研究實(shí)驗室(Intel’s Microprocessor Research Lab)的視覺交互組(The Visual Interactivity Group)開發(fā)。OpenCV 由一系列C 函數(shù)和少量C++類構(gòu)成,實(shí)現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法。
系統(tǒng)首先提取嘴部模板圖像,利用SURF算法檢測出嘴唇區(qū)域的特征點(diǎn),通過攝像頭捕捉視頻幀,對提取的每一幀圖像,利用SURF算法提取特征點(diǎn),并比較模板圖像與候選圖像的特征點(diǎn)描述子,提取匹配成功的特征點(diǎn)集的4個角點(diǎn)作為矩形嘴部區(qū)域的4個頂點(diǎn),最終用矩形窗表示嘴部區(qū)域,而后調(diào)用MeanShift算法跟蹤嘴部區(qū)域,并將嘴部坐標(biāo)更新信息作為鼠標(biāo)移動依據(jù)。
對于同一使用者而言,只須提取一次嘴唇區(qū)域信息,在此后每次對MeanShift算法初始化過程中,系統(tǒng)會自動識別并跟蹤嘴唇區(qū)域,而不需要使用者手動選擇嘴部區(qū)域,從而實(shí)現(xiàn)MeanShift算法自動初始化,進(jìn)而實(shí)現(xiàn)視線跟蹤功能。圖3給出該系統(tǒng)流程圖。
驗證系統(tǒng)硬件設(shè)備使用 Intel Core2 雙核2.33GHz CPU,2Gb 內(nèi)存,ANC 攝像頭。系統(tǒng)軟件以 Microsoft Visual C++6.0為開發(fā)平臺,調(diào)用OpenCV的cvsurf.cpp 文件中的函數(shù)實(shí)現(xiàn)SURF 檢測算法,再調(diào)用cvMeanShift()函數(shù)實(shí)現(xiàn)嘴部運(yùn)動跟蹤功能,最后使用Mouse_Move()函數(shù)實(shí)現(xiàn)鼠標(biāo)運(yùn)動控制。
圖4左半部分為嘴部原始模板圖,右半部分為相應(yīng)的嘴部特征點(diǎn)提取結(jié)果。
圖3 系統(tǒng)流程圖
圖4 特征點(diǎn)檢測效果
圖5為嘴唇特征匹配結(jié)果,共提取65個嘴唇特征點(diǎn)描述子,一次匹配的時間分別為223.135 ms。左上角顯示的是嘴部模板圖,從視頻序列中提取當(dāng)前候選幀,通過SURF算法找到候選幀圖像中相匹配的特征點(diǎn),為方便識別匹配情況,將特征點(diǎn)用線連接并,再將嘴部區(qū)域用外接矩形框選。
圖5 匹配識別效果
MeanShift算法通過提取SURF算法檢測出的嘴唇區(qū)域目標(biāo)模型,將其與候選模型進(jìn)行比較匹配,從而得到新的嘴唇區(qū)域,通過計算嘴唇新坐標(biāo)位置與原坐標(biāo)位置之差得到嘴部運(yùn)動距離,從而控制鼠標(biāo)運(yùn)動。由于頭部與屏幕距離d 不同,相同幅度頭部運(yùn)動卻有不同鼠標(biāo)分辨率,因此,引入權(quán)值k,k與d 成正比。
圖6給出演示實(shí)驗的效果圖,A、B、C、D分別為鼠標(biāo)右移、左移、上移、下移效果。為方便識別,白圈中心為鼠標(biāo)光標(biāo)位置。
圖6 視覺鼠標(biāo)效果
本文提出了基于SURF算法的自動嘴部區(qū)域初始化MeanShift 改進(jìn)算法,在VC6.0 中調(diào)用OpenCV圖像處理庫中的SURF 函數(shù)實(shí)現(xiàn)嘴部檢測,將檢測區(qū)域作為目標(biāo)模板,然后使用MeanShift 跟蹤算法在候選模板中搜索匹配區(qū)域,從而實(shí)現(xiàn)嘴唇跟蹤,通過嘴部運(yùn)動產(chǎn)生新位置坐標(biāo)來控制鼠標(biāo)運(yùn)動。實(shí)驗結(jié)果表明,新算法很好的實(shí)現(xiàn)了預(yù)期功能,且SURF算法不會給MeanShift 跟蹤算法的實(shí)時性帶來負(fù)擔(dān),該方法具有實(shí)時性好、高魯棒性、穩(wěn)定性好等特點(diǎn)。
[1]DAVID G LOWE.Object recognition from local scale-invariant features[C]//Proceedings of the international conference on computer vision,1999:1150-1161.
[2]HERBERT BAY,ANDREAS ESS,TINNE TUYTELAARS,et al.Speeded-up robust features[J].Computer vision and image understanding,2008,110(3):346-359.
[3]高健,黃心漢,彭剛,等.一種簡化的SIFT圖像特征點(diǎn)提取算法[J].計算機(jī)應(yīng)用研究,2008,25(7):2213-2215.
[4]張銳娟,張建奇,楊翠.基于SURF的圖像配準(zhǔn)方法研究[J].紅外與激光工程,2009,38(1):160-165.
[5]COMANICIU D,MEER P.Mean Shift:A robust application toward feature space analysis[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,2002,24(5):603-619.
[6]BASTIAN LEIBE,ALES LEONARDIS,BERNT SCHIELE.Robust object detection with interleaved categorization and segmentation[J].International Journal of Computer Vision,2008,77(1):259-289.
[7]COMANICU D,RAMESH V,MEER P.Kernel-based object tracking[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2003,25(5):564-575.
[8]黎松,平西建,丁益洪.開放源代碼的計算機(jī)視覺類庫OpenCv的應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2005,22(8):134-136.