人臉自動定位及其系統(tǒng)實現(xiàn)
1 引 言
本文引用地址:http://m.butianyuan.cn/article/88985.htm人臉的自動定位是應(yīng)用視覺研究領(lǐng)域的一個重要課題。它首先需要檢測到人臉的位置和特征點,然后采用一定的控制策略控制攝像機運動將人臉定位到圖像的中心。人臉自動定位屬于人臉跟蹤的范疇,在人臉識別、人機交互、智能視頻通信、監(jiān)視和安全以及娛樂等領(lǐng)域有著廣泛的應(yīng)用,發(fā)展前景巨大。例如在人臉識別應(yīng)用中,首先需要獲得符合一定大小的正面清晰人臉;又如在安全監(jiān)控應(yīng)用中,需要對人的各項特征進(jìn)行有針對性的監(jiān)視,對于監(jiān)控對象的身高、衣著等特征,可以在較模糊圖像中獲得,但是對人臉部分的特征,卻必須要清晰的圖像才能獲得,因此需要對人臉做針對性的監(jiān)控。
人臉定位到圖像中心比之人臉跟蹤,主要有以下幾個區(qū)別:
(1)人臉跟蹤不需要定位人臉到圖像的中心,只需將人臉限定在圖像區(qū)域內(nèi)即可,而人臉定位要求人臉必須在圖像的中心;
(2)人臉跟蹤實時性要求很高,人臉運動速度較快,而人臉定位只是針對靜止目標(biāo)或目標(biāo)只做小范圍的動作。
目前人臉自動定位圖像中心系統(tǒng)尚不多見,參照人臉跟蹤系統(tǒng),可知相關(guān)算法主要有兩類:基于目標(biāo)跟蹤的方法、人臉檢測和目標(biāo)跟蹤算法相結(jié)合的方法?;谀繕?biāo)跟蹤的方法完全依賴于好的運動目標(biāo)跟蹤算法,從運動目標(biāo)中找出人臉,沒有充分利用人臉的特征,因此在人臉跟蹤中很少單獨使用。人臉檢測和跟蹤算法相結(jié)合的方法是在基于目標(biāo)跟蹤的方法上,利用人臉的相關(guān)信息(例如膚色、器官分布等)達(dá)到快速跟蹤的目的。在一些典型的約束環(huán)境下(如背景簡單靜止的視頻、工作臺前的人臉或頭肩部人臉視頻等)可以取得很好的人臉跟蹤效果。需要說明的是,這些方法一般建立在人臉初始位置大致已知的基礎(chǔ)上,需要使用其他方法解決起始幀中人臉的檢測問題,這就增加了系統(tǒng)實現(xiàn)的難度。
目標(biāo)跟蹤的實現(xiàn)算法主要有3類:幀間變化檢測法、運動矢量法和偏移量法。其中幀間變化檢測法主要適用于靜止背景下的運動目標(biāo)檢測,利用相關(guān)幀間的信息恢復(fù)背景并進(jìn)行運動目標(biāo)的提取。運動矢量法主要用于運動背景下的運動目標(biāo)的檢測,一般配合卡爾曼濾波器使用。首先建立運動模型,然后根據(jù)運動模型得出目標(biāo)點在圖像平面上的位置、速度和加速度的相關(guān)信息,再利用卡爾曼濾波器根據(jù)這些信息預(yù)測下一幀圖像中目標(biāo)點的位置、速度和加速度等相關(guān)信息,最后將這些預(yù)測信息反饋給控制設(shè)備驅(qū)動攝像機運動,從而將運動目標(biāo)定位在圖像中心。以上2種方法主要針對運動目標(biāo)的跟蹤,都需要利用幀間信息,計算量偏大。而偏移量法則是首先通過圖像預(yù)處理方法檢測目標(biāo)位置距圖像中心的偏差(△x,△y),然后計算攝像機的水平調(diào)整量α和垂直調(diào)整量β,根據(jù)調(diào)整量控制攝像機運動,從而將目標(biāo)定位在圖像中心。偏移量法的優(yōu)點是算法非常簡單,缺點是精度低,可拓展性差,不利于今后進(jìn)一步的研究。另外,以上幾種方法在控制攝像機運動定位目標(biāo)時均需要利用攝像機成像的參數(shù),而這些參數(shù)需要標(biāo)定。標(biāo)定內(nèi)容包括攝像機焦距、計算機圖像中心坐標(biāo)、像平面單位距離上的像素數(shù)等。由于攝像機存在著許多畸變,所以標(biāo)定的精度直接影響算法的精度。
目前的標(biāo)定方法雖然多種多樣,但是大部分方法都是利用成像幾何性質(zhì),首先建立一定的模型形式,然后將需要標(biāo)定的各個參數(shù)分解,分別進(jìn)行計算。由于攝像機鏡頭存在著多種非線性失真,所以要得到較高的標(biāo)定精度,計算方法復(fù)雜而且計算量大。
鑒于此,本文提出一種基于膚色的人臉檢測和基于人工神經(jīng)網(wǎng)絡(luò)的控制方法相結(jié)合的人臉自動定位的方法。首先,采用基于KL膚色的人臉初定位、積分投影法和小灰度值聚類法確定眼球中心的人臉檢測和特征點獲取的方法檢測人臉的位置。該方法逐步縮小圖像處理的區(qū)域,檢測速度快,能夠滿足實時性的要求。然后提出一種新的基于人工神經(jīng)網(wǎng)絡(luò)反向傳播算法的目標(biāo)定位圖像中心的控制方法,用來控制攝像機快速定位人臉到圖像中心區(qū)域。該方法克服傳統(tǒng)跟蹤算法中需要利用幀間相關(guān)信息和需要標(biāo)定攝像機的缺點,只需通過目標(biāo)檢測程序給出目標(biāo)特征點在計算機圖像中的坐標(biāo),就可直接得出攝像機水平調(diào)整量和垂直調(diào)整量,根據(jù)調(diào)整量控制攝像機運動即可將目標(biāo)自動定位在圖像中心。最后通過VC++編程實現(xiàn)該系統(tǒng)。該系統(tǒng)主要針對簡單背景下單個靜止正面人臉的定位,但是對于其他較為復(fù)雜的情況,也有很好的拓展性。
2 人臉檢測及特征點獲取
2.1 基于KL膚色的人臉初定位
本文采用膚色信息進(jìn)行人臉的初定位。人臉具有比較穩(wěn)定的特征,在灰度圖中表現(xiàn)為眉毛、眼睛、鼻子和嘴相對臉部其他區(qū)域而言灰度要深一些;在彩色圖像中,從顏色上觀察,發(fā)現(xiàn)消除了亮度的影響后,眼睛和眼睛周圍的顏色分布具有很分明的特點,除了眼睛顏色偏黑外,眼睛周圍大部分均為膚色,而且臉頰部分在一般情況下都可成功地將膚色檢測出來。在人臉檢測算法中加入對膚色信息的運用,目的是希望通過利用膚色信息判斷圖像中的各點像素是否屬于膚色,從而排除非膚色區(qū)域,即不可能存在人臉的區(qū)域,以達(dá)到減小搜索空間、提高人臉檢測算法的時間效率、降低誤報率的作用。由此可見,選擇恰當(dāng)?shù)木垲惪臻g和膚色區(qū)間閾值以確定最終的膚色模型是非常重要的,它將影響到人臉檢測的正確率和實用性。
經(jīng)過大量實驗的驗證,最終選取KL膚色坐標(biāo)系建立膚色模型。它的特點是通過采用降維的特征臉空間描述人臉,使得每個人臉都是特征臉的線性組合,因而能用一組系數(shù)簡單而完備地表示。這樣,可以將人臉識別和特征檢測過程轉(zhuǎn)換到代數(shù)空間進(jìn)行,這種變換對于膚色有更好的聚類特性。這里借鑒了文獻(xiàn)[9]中的KL膚色坐標(biāo)系。通過KL變換,得到其變換矩陣為:
通過對4000個膚色樣本進(jìn)行分析,得出KL膚色過濾器的閾值為:
對任一待處理彩色圖像,先用式(1)對其進(jìn)行色彩轉(zhuǎn)換,然后按式(2)的閾值進(jìn)行判斷:在該范圍內(nèi)則置1,否則置0,即可得到過濾膚色后的二值圖像。在此二值圖像上可實現(xiàn)人臉的初定位。
2.2 積分投影法確定眼睛區(qū)域
在初步獲得人臉區(qū)域后,接下來的工作就是人臉重心的獲取。由于眼睛在人臉中的重要性,所以把眼睛作為人臉的特征點,兩眼間的中點作為人臉的重心點。具體方法是先采用積分投影的方法確定眼睛區(qū)域,再采用小灰度值聚類法計算眼球中心。然后根據(jù)人臉的幾何特征即可確定人臉重心,為下一步的自動定位做好充分的準(zhǔn)備。
眼睛具有明顯的特征。相對于鼻子、嘴和眉毛而言,眼睛特征較為穩(wěn)定且成對出現(xiàn),與周圍區(qū)域具有較強的灰度對比度。在通常情況下,通過邊緣檢測都可以將眼睛提取出來。選用Robinson算子和Laplacian of Gaussian算子對圖像進(jìn)行邊緣提取,然后在水平、垂直兩個方向上對經(jīng)過邊緣提取的灰度圖像利用積分投影法產(chǎn)生投影曲線。積分投影法的基本原理如下:設(shè)原圖像I(n,m)大小為N×M矩陣,其中n,m分別為圖像的列、行坐標(biāo),則水平方向和垂直方向上的積分投影曲線J(n),I(m)分別定義如式(3)和式(4)所示。垂直投影曲線在眉毛、眼睛、鼻子、嘴巴、下顎等位置上形成駝峰,駝峰的大小和峰值點位置反映了各個特征部件的大小和形狀信息。根據(jù)J(n),I(m)的極值點信息及眼睛在人臉中的幾何特性,即可檢測出眼睛區(qū)域。如圖1所示。圖1中Ⅰ和Ⅱ區(qū)域是水平方向投影的結(jié)果,在其上方做豎直方向投影得A和B區(qū)域,即為眼睛區(qū)域。
2.3 小灰度值聚類法獲取人臉重心
確定了眼睛區(qū)域A和B后,在這2個矩形區(qū)域內(nèi)采用小灰度值聚類法確定眼球中心。聚類的過程是將圖像中灰度值最小(即顏色最深)的n個像素按列遞增順序排序,若相鄰的列數(shù)差值都未超過預(yù)先設(shè)定的門限T1,說明只有一個聚類中心,求出這些像素行列的平均值就是要找的眼球中心點;若超過了門限T1,說明這n個像素可以聚成2類,對左眼,因為陰影集中在左邊,所以取右邊那類的平均值;對右眼則取左邊那類的平均值。n的選擇可根據(jù)圖像的總像素數(shù)目及眼球占圖像的大致百分比決定。檢測結(jié)果如圖2所示。確定了眼睛的位置后,根據(jù)人臉的幾何模型,重心的位置即可確定??紤]到自動定位要求將人臉定位到顯示屏幕的中心,而對人臉主要感興趣的特征就是眼睛,所以規(guī)定2眼之間的中點即為人臉的重心。
3 基于人工神經(jīng)網(wǎng)絡(luò)的目標(biāo)定位圖像中心方法
檢測到人臉并且獲取人臉重心后,下一步就要定位人臉到圖像的中心了。本文提出一種新的基于人工神經(jīng)網(wǎng)絡(luò)的目標(biāo)定位圖像中心方法。利用人工神經(jīng)網(wǎng)絡(luò)反向傳播算法對非線性函數(shù)超強的擬合能力,只需通過目標(biāo)檢測程序給出目標(biāo)在計算機圖像中的坐標(biāo)點,就可直接得出攝像機水平調(diào)整量α和垂直調(diào)整量β,根據(jù)調(diào)整量控制攝像機運動即可將目標(biāo)定位在圖像中心。此外,該方法只需對圖像中心坐標(biāo)進(jìn)行簡單的預(yù)標(biāo)定,基本上擺脫了攝像機標(biāo)定這一繁瑣的步驟。作為目標(biāo)定位的一個特例,將人臉檢測程序中計算出的人臉重心點替換目標(biāo)點,即可完成人臉的自動定位圖像中心。下面詳細(xì)介紹這種方法。
首先確定攝像機模型。攝像機模型就是對景物成像到圖像平面的物理過程的一個數(shù)學(xué)描述,依據(jù)該模型,可以確切地掌握圖像所成的幾何關(guān)系。本文采用Pin-hole模型(如圖3所示),也就是透視投影模型。Pin-hole模型是在計算機視覺中廣泛采用的一類模型,其物理上相當(dāng)于薄透鏡成像,該模型最大的特點是成像關(guān)系是線性的。而且,由于攝像機的焦距相對于物距很小,所以無論是在仿真實驗還是在實際實驗中,都可以不考慮物距對精度的影響。在圖3中,C為攝像機光學(xué)中心,CO′為攝像機光軸,CO′的距離為攝像機的焦距f,O′u′v′為像平面坐標(biāo),P是目標(biāo)在像平面上的投影。仿真實驗需要對對攝像機模型進(jìn)行簡單的預(yù)標(biāo)定(實際定位算法中不需要):設(shè)f=10 mm;計算機圖像平面為768×576,中心坐標(biāo)(Cx,Cy)為(384,288),單位pixel;像平面單位距離上對應(yīng)的像素數(shù)Sx=Sy=100,單位pixel/mm。
然后,根據(jù)攝像機模型,依據(jù)神經(jīng)網(wǎng)絡(luò)的理論,建立網(wǎng)絡(luò)結(jié)構(gòu)。Hornik等利用泛函分析理論,證明在很寬的條件下,具有至少一層S型神經(jīng)元隱含層的前向反饋網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò),用標(biāo)準(zhǔn)BP算法經(jīng)過足夠的訓(xùn)練,能以任意精度逼近任意函數(shù)及其各階導(dǎo)數(shù)。Elsken證明使用單隱含層網(wǎng)絡(luò)為好,增加隱含層數(shù)目可導(dǎo)致網(wǎng)絡(luò)性能的下降,所以通常用單隱含層的網(wǎng)絡(luò)。經(jīng)實驗驗證,采用單隱含層網(wǎng)絡(luò)優(yōu)于2個隱含層的網(wǎng)絡(luò),隱含層節(jié)點采用10個為好,隱含層使用Log-Sigmoid函數(shù),輸出層使用線性函數(shù),網(wǎng)絡(luò)的輸入為目標(biāo)在計算機平面圖像中的坐標(biāo)點(u,v),輸出為攝像機水平調(diào)整量α和垂直調(diào)整量β。
因為Log-Sigmoid函數(shù)的靈敏區(qū)有限,因此有必要對樣本數(shù)據(jù)進(jìn)行歸一化處理。本文采用式(5)所示的歸一化方法:
根據(jù)計算機圖像坐標(biāo)(u,v)和像平面坐標(biāo)(u′,v′)的關(guān)系,即式(5),可得像平面坐標(biāo)(u′,v′)。
再根據(jù)三角形關(guān)系,即可得攝像機水平調(diào)整量α和垂直調(diào)整量β。計算可知α∈[-0.3666,0.3666],β∈[-0.2804,0.2804],單位弧度。
由于標(biāo)準(zhǔn)BP算法收斂速度較慢、容易陷入局部極小點,所以采用BP改進(jìn)算法。通過對幾種改進(jìn)算法的比較試驗,最終采用基于啟發(fā)式信息的動量方法(MOBP)。
在計算機平面上每隔10個像素取1點作為訓(xùn)練樣本,水平方向78組,垂直方向59組,共得到4 602組訓(xùn)練樣本。對這些樣本反復(fù)實驗,得出在2-10-2型網(wǎng)絡(luò)下,訓(xùn)練2 000次后的測試結(jié)果如圖4所示。其中,測試樣本共192組,水平方向16組,垂直方向12組。取與訓(xùn)練樣本不同的點,x,y坐標(biāo)分別表示計算機水平方向和垂直方向的像素點,z坐標(biāo)表示誤差,。
由圖4可以看出,由水平調(diào)整量α和垂直調(diào)整量β可以精確的控制攝像機將目標(biāo)定位到計算機圖像中心,誤差一般小于2個像素(即RMS小于1.77×10-3),只是在u=[0.768],v=[0,50],也就是計算機上方50個像素的水平帶上誤差稍大一些,在5個像素(即RMS≤4.47×10-3)左右??稍谶@些區(qū)域多取一些樣本減小誤差。
4 系統(tǒng)實現(xiàn)
系統(tǒng)采用PC機和圖像采集卡構(gòu)成的圖像采集系統(tǒng),在實驗室普通白幟燈照明的條件下,采用微視科技MVP-CI-V3C圖像采集卡附帶的軟件開發(fā)包,進(jìn)行人臉自動定位圖像中心系統(tǒng)的二次開發(fā)。
系統(tǒng)的軟件環(huán)境是在Microsoft Windows 2000下采用面向?qū)ο蟮恼Z言Microsoft Visual C++6.0編程。硬件環(huán)境采用Panasonic WV-CP210/G CCTV CAMERA(固定于三腳架上),鏡頭焦距8 mm;北京微視科技MVPCI-V3C采集卡,采集圖像為768×576 pixel;利凌PIH-302云臺;PC機通過北京微視科技AV2002云臺解碼器驅(qū)動攝像機云臺轉(zhuǎn)動。
目標(biāo)開始定位在計算機圖像中心(384,288),然后控制攝像機云臺轉(zhuǎn)動,記錄下轉(zhuǎn)動的角度α,β和此時目標(biāo)在計算機圖像中的坐標(biāo)(u,v),即獲得一組訓(xùn)練樣本。根據(jù)實際需要選擇物距的大小(即目標(biāo)距鏡頭的距離),這里在1,1.2(單位m)遠(yuǎn)時分別取1 500組訓(xùn)練樣本(在計算機上方50個像素的水平帶上多取一些訓(xùn)練樣本),通過對3 000組訓(xùn)練樣本的反復(fù)實驗,誤差一般在10個像素(即RMS小于8.98×10-3)以內(nèi),不超過20個像素(即RMS小于18×10-3),而且網(wǎng)絡(luò)有較好的泛化能力,對訓(xùn)練樣本中沒有的1.1 m遠(yuǎn)處的測試也能達(dá)到較滿意的結(jié)果(誤差不超過20個像素)。實驗表明,如果樣本足夠多,訓(xùn)練次數(shù)足夠大,RMS還可以足夠小,攝像機可以更加精確的定位到圖像中心。
實驗結(jié)果表明,該算法簡單有效,可以較精確地將目標(biāo)定位在圖像中心。配合目標(biāo)檢測程序即可完成目標(biāo)跟蹤任務(wù)。目前商用變速云臺水平轉(zhuǎn)速可達(dá)到32°/s(0.558 5 rad/s),垂直轉(zhuǎn)速可達(dá)到16°/s(0.279 3 rad/s),在一些高速攝像系統(tǒng)中可以達(dá)到更高,完全可以用于實時的目標(biāo)跟蹤。在實際跟蹤中,可根據(jù)情況選擇樣本的范圍和數(shù)量,可以滿足一般跟蹤的要求。該方法有很好的可拓展性,如果要進(jìn)行人臉跟蹤的研究,只需考慮相關(guān)幀的信息,然后對人臉?biāo)阉鲄^(qū)域加以限定以減少搜索時間,就能提高跟蹤效率,達(dá)到實時跟蹤的目的。該方法的缺點是前期樣本的獲取和神經(jīng)網(wǎng)絡(luò)的訓(xùn)練工作量較大。
經(jīng)過對不同年齡、不同臉型、性別不同的人進(jìn)行試驗,結(jié)果證明該系統(tǒng)簡單有效,有較強的實際應(yīng)用價值。由于云臺設(shè)備的限制,系統(tǒng)沒有考慮自動對焦功能的實現(xiàn),這可以根據(jù)人臉區(qū)域的大小自動調(diào)整焦距。雖然系統(tǒng)是針對靜止人臉的,但是完全可以實現(xiàn)動態(tài)人臉的實時跟蹤功能,只要在程序中加入一個獨立線程定時更新采集圖像就能夠?qū)崿F(xiàn)。
隨著Internet技術(shù)的發(fā)展,家庭及企事業(yè)單位接入互聯(lián)網(wǎng)已經(jīng)成為現(xiàn)實?;ヂ?lián)網(wǎng)不僅使人類的視野得到空前的擴大,同時也極大地縮短了人與人之間的距離。利用Internet人們不僅坐在家中或辦公室就知天下之事,而且即使遠(yuǎn)離住所或辦公地點,通過Internet也可獲知家中或辦公場所、工業(yè)現(xiàn)場的有關(guān)情況,并且能夠?qū)h(yuǎn)端設(shè)備實施遠(yuǎn)程監(jiān)控。所以,通過網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程人臉的自動定位的操作是未來的發(fā)展方向之一。
c++相關(guān)文章:c++教程
模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理
全息投影相關(guān)文章:全息投影原理
評論