專利名稱:一種基于網(wǎng)格的并行、分布式識別人臉的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種綜合利用兩項計算機(jī)應(yīng)用技術(shù)進(jìn)行智能識別的技術(shù),確切地說,涉及一種基于網(wǎng)格的并行、分布式識別人臉的方法,屬于多媒體模式識別和網(wǎng)格計算的綜合應(yīng)用技術(shù)領(lǐng)域。
背景技術(shù):
網(wǎng)格是一種分布式計算技術(shù),利用網(wǎng)絡(luò)將計算機(jī)與其所在網(wǎng)絡(luò)的其它網(wǎng)元設(shè)備集中在一起,共享網(wǎng)絡(luò)中的資源,以提升計算能力。目前,網(wǎng)格還沒有統(tǒng)一的定義,Sun公司認(rèn)為網(wǎng)格是一個提供單點(diǎn)登陸到強(qiáng)大的分布式資源的系統(tǒng)。IBM公司認(rèn)為網(wǎng)格計算是利用互聯(lián)網(wǎng)連接大規(guī)模虛擬系統(tǒng)內(nèi)的處理器的技術(shù),實現(xiàn)利用共享資源的渴求。
網(wǎng)格的研究起源于目前人們解決問題的方式。當(dāng)要解決某個問題時,首先會形成一個虛擬組織VO(Virtual Organization),即一些個人、組織或者資源的動態(tài)組合。然后,研究人員利用VO中的各種通信手段進(jìn)行交互而共享資源,商討解決問題。網(wǎng)格就是在動態(tài)變化的、擁有多個部門或者團(tuán)體的虛擬組織內(nèi),靈活、安全、協(xié)同地共享資源與求解問題。因此,網(wǎng)格的主要特點(diǎn)是共享資源和動態(tài)架構(gòu),只有充分共享網(wǎng)格內(nèi)的軟硬件資源,搭建網(wǎng)格才有意義;而且,共享對象不僅包括網(wǎng)格內(nèi)超級計算機(jī)的計算能力或資源,還包括共享網(wǎng)格內(nèi)的其它各種資源(如各種軟件資源、存儲資源、數(shù)據(jù)庫資源、貴重儀器等等)。實際應(yīng)用中,網(wǎng)格就是在高性能計算機(jī)之間組建網(wǎng)格環(huán)境,實現(xiàn)這些計算機(jī)的相關(guān)資源的充分共享,為網(wǎng)格中的資源消費(fèi)客戶端(即瘦客戶端)提供服務(wù)。
目前,網(wǎng)格的規(guī)劃和研究對象都是設(shè)定范圍內(nèi)的網(wǎng)格,而且,網(wǎng)格共享通常是非平凡資源,例如超級計算機(jī)類的高性能節(jié)點(diǎn)的計算能力和其它資源,這些資源必須能夠像電站輸電一樣供用戶充分使用。因此,對實時性、交互性、效率要求比較高的分布式應(yīng)用來說,在普通pc上安裝網(wǎng)格軟件(如globustoolkit3)所構(gòu)建的網(wǎng)格,沒有實際應(yīng)用價值。
網(wǎng)格的目的是共享非平凡資源,以便為解決具體問題的虛擬組織服務(wù)。所以,網(wǎng)格研究是從如何制定共享這些資源的通信協(xié)議開始的,至于計算任務(wù)如何在資源上具體運(yùn)行,則由作業(yè)調(diào)度軟件(如LSF、openPbs等)負(fù)責(zé)處理。也就是說,網(wǎng)格只提供協(xié)議和標(biāo)準(zhǔn),為共享資源搭建平臺、創(chuàng)造條件,讓用戶可以共享使用其中的資源;對于資源的如何使用,則由網(wǎng)格本身自行負(fù)責(zé)。所以,在網(wǎng)格運(yùn)行過程中,沒有特別的新技術(shù),只是通過“共享”技術(shù),讓原有的軟硬件設(shè)備發(fā)揮更大作用除了完成本地用戶任務(wù)外,還要完成遠(yuǎn)程用戶任務(wù)。
現(xiàn)在,網(wǎng)格正處于成長期,網(wǎng)格技術(shù)也在不斷發(fā)展,隨著對網(wǎng)格研究、理解的深入,先后出現(xiàn)了兩種網(wǎng)格物理網(wǎng)格(physical grid)-將各種異構(gòu)硬件資源(CPU、storage等)進(jìn)行有機(jī)結(jié)合,在網(wǎng)格中間件的支持下,通過網(wǎng)絡(luò)對這些資源實現(xiàn)共享及互操作。邏輯網(wǎng)格(logical grid)-服務(wù)和/或應(yīng)用的集合,實現(xiàn)應(yīng)用和/或服務(wù)的共享及互操作。其中,物理網(wǎng)格是構(gòu)建邏輯網(wǎng)格的基礎(chǔ),一個物理網(wǎng)格可被多個邏輯網(wǎng)格所共用,一個邏輯網(wǎng)格也可包括多個物理網(wǎng)格。
網(wǎng)格的研究,最先是從物理網(wǎng)格開始的。物理網(wǎng)格最開始的研究對象是具體的異構(gòu)硬件資源,目的是開發(fā)一組應(yīng)用程序接口API、軟件開發(fā)工具包SDK(如globus toolkits 1.0軟件)對這些資源進(jìn)行操作,從而盡快構(gòu)建一個網(wǎng)格原型系統(tǒng),證明網(wǎng)格的可行性。后來,網(wǎng)格的研究重點(diǎn)從API、SDK的開發(fā)轉(zhuǎn)移到對協(xié)議的研究,導(dǎo)致網(wǎng)格的發(fā)展過程中出現(xiàn)了非常重要的第一個網(wǎng)格體系結(jié)構(gòu)-五層沙漏結(jié)構(gòu)。
基于協(xié)議構(gòu)建的網(wǎng)格,使網(wǎng)格的發(fā)展進(jìn)入一個新階段,但是,各種不同的核心協(xié)議(如GRAM、LDAP、GRIDFTP)功能重疊,而實現(xiàn)方式又各不相同,給用戶的使用帶來很大的不便,客觀上要求各協(xié)議必須進(jìn)行整合。隨著網(wǎng)格規(guī)模的擴(kuò)大,判斷不同組件之間的依賴性、提供端對端的QoS等管理網(wǎng)格的需求也越來越強(qiáng)烈。另外,在物理網(wǎng)格中,資源只是CPU、帶寬等硬件;但是,對于網(wǎng)格應(yīng)用的開發(fā)者,并不希望直接操作這些底層物理資源。所以,迫切需要一種新的資源抽象機(jī)制。
web服務(wù)的出現(xiàn)及應(yīng)用,為解決上述問題帶來了曙光。作為一種新的抽象機(jī)制-“服務(wù)”,就是對一組定義特定功能的協(xié)議的實現(xiàn),即定義一組抽象接口+服務(wù)語義。其中,接口通過標(biāo)準(zhǔn)的綁定定義體現(xiàn)協(xié)議,服務(wù)語義具有實現(xiàn)無關(guān)性,也即可以各種語言來實現(xiàn)該接口,在各種硬件資源上運(yùn)行該服務(wù)。
“服務(wù)”的出現(xiàn),使得邏輯網(wǎng)格的構(gòu)建成為可能,研究重點(diǎn)也從定制物理網(wǎng)格標(biāo)準(zhǔn)協(xié)議轉(zhuǎn)移到基于服務(wù)的邏輯網(wǎng)格體系,并導(dǎo)致了網(wǎng)格發(fā)展史上另一個重要體系結(jié)構(gòu)OGSA(Open Grid Service Architecture)的出現(xiàn)。OGSA架構(gòu)的核心是“服務(wù)”,強(qiáng)調(diào)的是對服務(wù)的共享,不同于物理網(wǎng)格中強(qiáng)調(diào)的是共享物理資源。這樣,以往訪問每個物理資源都要調(diào)用不同接口,有多少種資源就需要多少種接口,很難形成統(tǒng)一、標(biāo)準(zhǔn)的接口和行為的狀況得到了改變。在OGSA結(jié)構(gòu)中,藉由“服務(wù)”將各個具體資源、信息、數(shù)據(jù)等都統(tǒng)一起來,有利于實現(xiàn)靈活、統(tǒng)一、動態(tài)的共享機(jī)制,使得分布式系統(tǒng)的管理有了標(biāo)準(zhǔn)的接口和行為。
目前,人臉識別技術(shù)已經(jīng)成為多媒體領(lǐng)域中的一個研究熱點(diǎn)。由于年齡、姿態(tài)、表情、光照等不同因素,人臉圖像具有“一人千面”的特點(diǎn),因此,人臉識別技術(shù)具有極大的挑戰(zhàn)性。近年來,人臉識別技術(shù)取得了長足進(jìn)步。但是,在大規(guī)模人臉庫、攝像環(huán)境不可控、對象不配合的情況下,即使目前最好的識別系統(tǒng)的識別性能也會迅速下降,此時的識別系統(tǒng)根本無法進(jìn)入實際應(yīng)用!因此,人臉識別系統(tǒng)如何有針對性地解決在非理想攝像條件下(光照變化、背景變化、攝像設(shè)備差異)和對象不配合(視角變化、表情變化、佩帶飾物乃至化妝)時的識別性能下降問題,以及大規(guī)模人臉庫的人臉識別速度問題都成為該課題的新焦點(diǎn)。
識別人臉的方法可以分為基于特征、模板、三維模型、或隨機(jī)序列模型等幾大類。Olivier de Vel和Stefan Aeherhard在《Line-based face recognition undervarying pose》(刊于IEEE Trans.Pattern Analysis and Machine Intelligence,vol.21,1999)提出一種比較新穎的適合并行、分布計算的方法。這種方法是在人臉的輪廓線之間有選擇性或任意地畫上N條直線(參見圖1),用這N條直線來表征人臉,再將所有直線通過插值歸一化為同一長度的線段L,并將兩線段之間的距離定義為象素點(diǎn)灰度值誤差的平方和。這樣,對于給定的一條線段lk,如果能夠在所有人臉圖像的各條線段中尋找到一條與其差異最小的線段lj,則lk即歸入lj所在的圖像。因為一幅人臉圖像有多條線段,再定義一個判別函數(shù),根據(jù)多條線段所歸屬的圖像類別來決定整個人臉圖像所歸屬的類別。該方法在ORL(Olivetti Research Ltd.)人臉圖像上獲得了很高的識別率。作者認(rèn)為該方法具有以下優(yōu)點(diǎn)第一,人臉圖像是隨機(jī)采樣,該算法對人臉在鉛垂面上的旋轉(zhuǎn)具有穩(wěn)健性,即允許人臉有一定的旋轉(zhuǎn)誤差。第二,由于線段兩端位于人臉的輪廓線上,其長度相對固定,因此該算法具有尺度不變性。第三,由于線段是從整幅人臉圖像中獲取的,該算法對表情變化、是否有飾物具有穩(wěn)定性,即其對識別無影響或影響甚小。
但是,該算法的實現(xiàn)必須解決下述問題首先,計算量非常巨大。由于要在人臉圖像上的任意角度畫線、插值,并對每一點(diǎn)進(jìn)行記錄,計算量非常大。作者在訓(xùn)練中選擇的N值是400,即每幅人臉圖像選取400條線段。事實上,處理400條線段數(shù)據(jù)的計算量已經(jīng)遠(yuǎn)大于處理一幀人臉圖像的計算量。其次,作者假設(shè)人臉的輪廓線是已知的,但是,要準(zhǔn)確獲取任意視角的人臉輪廓線,并不是一件容易的事情;然而,作者沒有指出具體采用什么方法。再者,由于直接采用圖像的灰度值進(jìn)行計算,因而上述方法對光照強(qiáng)度的變化比較敏感。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供一種基于網(wǎng)格的并行、分布式識別人臉的方法,該方法是對上述Olivier de Vel和Stefan Aeherhard提出的基于線段的人臉識別方法的改進(jìn),它是利用網(wǎng)格的強(qiáng)大計算能力和存儲能力,通過網(wǎng)格中各個節(jié)點(diǎn)的互相協(xié)作,較好地解決了現(xiàn)有技術(shù)在大數(shù)據(jù)量的人臉庫上進(jìn)行人臉識別過程中浩瀚繁重的計算工作量和海量存儲的要求,再采用準(zhǔn)確度較高的人臉圖像識別算法和增加資源消耗的技術(shù)手段,解決了人臉圖像輪廓線的獲取、光照強(qiáng)度變化敏感等問題,實現(xiàn)了較高精度的人臉圖像識別。而且,本發(fā)明的方法具有很好的資源擴(kuò)展性能,只要通過互聯(lián)網(wǎng)接入更多的其它網(wǎng)格,就可以提高其計算能力和存儲能力。
為了達(dá)到上述目的,本發(fā)明提供了一種基于網(wǎng)格的并行、分布人臉識別方法,其特征在于將人臉識別處理的計算和操作部署在網(wǎng)格平臺上,由網(wǎng)格中的各個計算節(jié)點(diǎn)并行、分布式地進(jìn)行人臉識別的運(yùn)算處理,以提高人臉識別速度;同時可選取更多的人臉特征線段,以提高人臉識別精度;包括以下具體操作步驟(1)配置網(wǎng)格,建立可調(diào)配計算節(jié)點(diǎn)池先配置網(wǎng)格,建立管理節(jié)點(diǎn)與網(wǎng)格虛擬共享存儲區(qū)中的人臉庫的連接(其中虛擬共享存儲區(qū)的調(diào)度和管理是現(xiàn)有技術(shù),不在本發(fā)明討論之列),再將網(wǎng)格中處于空閑狀態(tài)的計算節(jié)點(diǎn)集中組建為“可調(diào)配計算節(jié)點(diǎn)池”,并將各個部件的運(yùn)行狀態(tài)及時告知管理節(jié)點(diǎn),以便啟動網(wǎng)格服務(wù);然后設(shè)置用戶端的各攝像頭的“初始”/“工作”狀態(tài);(2)在視頻流中提取人臉圖像,存入緩沖區(qū)將用戶端攝像頭采集的連續(xù)視頻流存儲于內(nèi)存的幀緩沖區(qū),再對視頻流中的每幀圖像順序進(jìn)行人臉檢測,提取含有人臉的圖像,存儲在內(nèi)存的人臉緩沖區(qū),得到一系列含有人臉的圖像;(3)對含有人臉的圖像提取人臉矩形區(qū)域圖像,并對其進(jìn)行標(biāo)準(zhǔn)化處理,再傳輸?shù)焦芾砉?jié)點(diǎn)從人臉緩沖區(qū)中順序提取含有人臉的各幀圖像,并分別提取人臉區(qū)域圖像后,再根據(jù)統(tǒng)計規(guī)律和設(shè)定格式進(jìn)行標(biāo)準(zhǔn)化處理,將各幀正面人臉圖像順序傳送到管理節(jié)點(diǎn);(4)各計算節(jié)點(diǎn)并發(fā)執(zhí)行人臉識別的運(yùn)算操作對于請求識別的每幀正面人臉圖像,都由管理節(jié)點(diǎn)分別從可調(diào)配計算節(jié)點(diǎn)池中取出一個空閑的計算節(jié)點(diǎn),用于對該正面人臉圖像進(jìn)行識別處理;同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該計算節(jié)點(diǎn);(5)管理節(jié)點(diǎn)對人臉識別結(jié)果數(shù)據(jù)進(jìn)行綜合分析處理當(dāng)視頻流中沒有新的人臉識別請求時,管理節(jié)點(diǎn)將各計算節(jié)點(diǎn)對一系列正面人臉圖像進(jìn)行識別的結(jié)果進(jìn)行綜合處理,得出最終的人臉識別結(jié)果。
所述步驟(1)進(jìn)一步包括下列操作
(11)使用網(wǎng)格軟件將路由器和各種計算機(jī)組合、搭建為一個網(wǎng)格,在網(wǎng)格虛擬共享存儲區(qū)設(shè)置人臉庫,該人臉庫用于存儲標(biāo)準(zhǔn)化后正面人臉圖像,且每幀人臉圖像都已隨機(jī)選取N條直線來表征之;同時在該網(wǎng)格的入口和出口-管理節(jié)點(diǎn)與虛擬共享存儲區(qū)之間建立連接,使管理節(jié)點(diǎn)可隨時訪問人臉庫;該管理節(jié)點(diǎn)還可連接Internet上的其他網(wǎng)格,使該網(wǎng)格具有擴(kuò)展性;(12)管理節(jié)點(diǎn)遍歷網(wǎng)格中的每個計算節(jié)點(diǎn),根據(jù)各個計算節(jié)點(diǎn)狀態(tài),將空閑的、能夠進(jìn)行人臉識別的計算節(jié)點(diǎn)加入可調(diào)配計算節(jié)點(diǎn)池;(13)當(dāng)用戶提出開始或停止人臉識別任務(wù)時,管理節(jié)點(diǎn)根據(jù)用戶請求開啟或關(guān)閉位于用戶端的各個攝像頭,并初始化程序和至少包括人臉表征線段參數(shù)N、行列式寬度s和綜合人臉識別中的參考系數(shù)的整個網(wǎng)格系統(tǒng)的各個預(yù)定義參數(shù);(14)網(wǎng)格中包括但不限于用戶端、攝像頭、可調(diào)配計算節(jié)點(diǎn)池和人臉庫的相關(guān)部件分別將各自運(yùn)行狀態(tài)通告管理節(jié)點(diǎn),管理節(jié)點(diǎn)根據(jù)匯聚后的狀態(tài)信息進(jìn)行判斷,是否能夠啟動或關(guān)閉網(wǎng)格服務(wù)、刪除或恢復(fù)數(shù)據(jù)。
所述步驟(2)進(jìn)一步包括下列操作(21)用戶端攝像頭根據(jù)管理節(jié)點(diǎn)的啟動指令,進(jìn)入攝像工作狀態(tài);(22)將攝像頭采集的連續(xù)視頻流中的圖像以“幀”為單位順序存儲于幀緩沖區(qū),其中,當(dāng)前幀為該攝像頭采集時刻最早、尚未進(jìn)行人臉檢測處理的一幀圖像;(23)由人臉分類器對幀緩沖區(qū)中每幀圖像進(jìn)行人臉檢測,同時,攝像頭繼續(xù)工作,不斷將采集的視頻流寫入幀緩沖區(qū);所述人臉分類器是通過加載對人臉樣本庫進(jìn)行訓(xùn)練而得到的人臉特征文件構(gòu)成,人臉樣本庫包括大量的人臉和易誤解為人臉的非人臉兩類圖像;(24)如果在當(dāng)前幀中檢測出含有人臉,則將當(dāng)前幀存儲于人臉緩沖區(qū)中,并在用戶端顯示該當(dāng)前幀和標(biāo)記被提取人臉區(qū)域的位置和大?。环駝t,僅在用戶端顯示該當(dāng)前幀;(25)循環(huán)執(zhí)行步驟(23)、(24)操作,直至完成全部幀圖像的人臉檢測。
所述步驟(3)進(jìn)一步包括下列操作(31)根據(jù)人眼特征文件和人眼樣本庫,對人臉緩沖區(qū)中的每幀圖像進(jìn)行檢測人臉區(qū)域和在人臉圖像中確定該人兩眼位置的操作,如果人臉圖像中只有一眼或沒有眼睛或眼睛特征不明顯,則按五官比例推算其兩眼的大概位置;其中人眼特征文件則是通過對人眼樣本庫進(jìn)行訓(xùn)練而形成的,人眼樣本庫包括大量的人眼和易誤解為人眼的非人眼兩類圖像;(32)根據(jù)人臉圖像中兩眼位置得到雙眼的連接線,再判斷該雙眼連接線是否平行于水平線,若是,跳轉(zhuǎn)執(zhí)行步驟(34);否則,順序執(zhí)行后續(xù)操作;(33)旋轉(zhuǎn)該人臉圖像,使得其雙眼連線平行于水平線;旋轉(zhuǎn)圖像會導(dǎo)致丟失該人臉圖像的邊緣像素點(diǎn),丟失的像素點(diǎn)的值一律置為0;因為人臉矩形區(qū)域一般不會在邊緣附近,丟失的像素點(diǎn)對于識別無影響或影響不大;(34)以人眼為基準(zhǔn),以雙眼的距離d為尺度,根據(jù)“三庭五眼”原理從該人臉圖像中截取一個2d×2d的正方形區(qū)域為人臉,再按照預(yù)先設(shè)定尺寸進(jìn)行統(tǒng)一縮放,得到正面標(biāo)準(zhǔn)人臉圖像;(35)將經(jīng)過上述步驟處理的正面標(biāo)準(zhǔn)人臉圖像傳送至管理節(jié)點(diǎn)。
所述步驟(4)進(jìn)一步包括下列操作(41)對于請求識別的每幀正面人臉圖像,管理節(jié)點(diǎn)分別從可調(diào)配計算節(jié)點(diǎn)池中取出第一個空閑的計算節(jié)點(diǎn),用于對該正面人臉圖像進(jìn)行識別處理,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該第一個計算節(jié)點(diǎn);(42)第一個計算節(jié)點(diǎn)采用改進(jìn)的基于線段的人臉識別方法對人臉圖像進(jìn)行識別處理,即將一張正面人臉圖像分割為N條線段,用該N條線段來表征人臉圖像,從而將一張正面人臉圖像的識別轉(zhuǎn)換為該N條線段逐條分別與人臉庫中每個人臉圖像的所有線段的比較識別;(43)第一個計算節(jié)點(diǎn)從可調(diào)配計算節(jié)點(diǎn)池中取出另一個空閑的計算節(jié)點(diǎn),用于對所述請求識別人臉圖像中的某條線段與人臉庫中每個人臉圖像的所有線段的比較處理,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該被調(diào)用的另一個計算節(jié)點(diǎn);該另一個計算節(jié)點(diǎn)可以繼續(xù)從可調(diào)配計算節(jié)點(diǎn)池中取出其它計算節(jié)點(diǎn)分別進(jìn)行其它線段與人臉庫中每個人臉圖像的各個線段之間的比較,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該被調(diào)用的其它計算節(jié)點(diǎn),當(dāng)比較結(jié)果返回給調(diào)用它的另一個計算節(jié)點(diǎn)后,該其它計算節(jié)點(diǎn)則被添加到可調(diào)配計算節(jié)點(diǎn)池;當(dāng)另一個計算節(jié)點(diǎn)完成某條線段與人臉庫中的各個線段的比較后,找到人臉庫中與該某條線段最近似的一條線段,記錄該某條最近似線段所歸屬的人臉圖像,并作為比較結(jié)果返回給調(diào)用它的第一個計算節(jié)點(diǎn);隨之,該另一個計算節(jié)點(diǎn)被添加到可調(diào)配計算節(jié)點(diǎn)池;(44)重復(fù)上述步驟(43)的操作,直至完成全部N條線段的比較處理后,得到N個比較結(jié)果N幀人臉圖像;此時,各計算節(jié)點(diǎn)分別將各自的N幀人臉圖像中出現(xiàn)次數(shù)最多的人臉圖像的相關(guān)信息發(fā)送至管理節(jié)點(diǎn)。
所述步驟(42)中改進(jìn)的人臉識別方法是將每幀人臉圖像用N條線段來表征,再將每條線段圖像的灰度值轉(zhuǎn)換為對光照強(qiáng)度變化不敏感的奇異值,用于進(jìn)行人臉識別的計算處理;該識別方法還包括下列初始化操作步驟(A1)在人臉圖像輪廓線上任意選取兩點(diǎn)連線后,會形成一條線段,利用該方法所得到的N條線段來表征人臉圖像,N通常設(shè)為大于200的自然數(shù);(A2)利用圖像處理的線性插值算法,對該N條線段進(jìn)行插值歸一處理,將其都轉(zhuǎn)換為同一長度為s2的像素集合,即每條線段都由s個小線段組成,每個小線段都有s個像素點(diǎn),s為正整數(shù);這樣將每條線段的像素點(diǎn)數(shù)值轉(zhuǎn)化成一個s×s矩陣首行與線段中的前s個像素點(diǎn)的像素值相對應(yīng),第二行與線段中的第s+1到第s+s個像素點(diǎn)的像素值相對應(yīng),以此類推,共有s行;再求解該s×s矩陣的奇異值,將每條線段圖像的灰度值轉(zhuǎn)換為對光照強(qiáng)度變化不敏感的奇異值,以便用該線段的奇異值取代人臉圖像中的灰度值進(jìn)行人臉圖像各線段的比較識別處理。
所述步驟(A2)中將人臉圖像中的每條線段的像素點(diǎn)數(shù)值轉(zhuǎn)化成一個s×s矩陣的計算公式是
即MLi,k=Li,k(1)Li,k(2)···Li,k(s)Li,k(s+1)Li,k(s+2)···Li,k(2×s)············Li,k(s2-s+1)Li,k(s2-s+2)···Li,k(s×s)]]>式中,Li,k為正面人臉圖像中的任意一條線段,其含有s2個像素點(diǎn),自然數(shù)i、k和j分別為人臉庫中的每幀人臉圖像的幀序號、每幀人臉圖像中的各個線段的序號和每個線段上的像素點(diǎn)序號,k的最大值為N;Li,k(j)表示正面人臉圖像庫中第i幀人臉圖像中的第j條線段中的第k個像素點(diǎn);MLi,k表示由線段Li,k轉(zhuǎn)換而得的s×s矩陣。
所述步驟(A2)中用求解人臉圖像各線段的s×s矩陣奇異值進(jìn)行該人臉圖像各線段的比較識別處理的具體方法是(A21)假設(shè)人臉庫中共有人臉圖像M幀,其序號分別為F1、F2、......FM,在每幀人臉圖像上任意選取N條直線,這樣人臉庫中共有需要比較識別的線段為M×N=MN條,分別為f1、f2、......fM×N;此外,待識別的人臉圖像X上也有N條線段,分別為x1、x2、......xN;(A22)將待識別的人臉圖像X中的任意一條線段xk與人臉庫中的M×N條線段f1,f2,、、、,fM×N分別進(jìn)行比較處理,其中,自然數(shù)k是線段序號,最大值為N,這樣的一次匹配過程就要進(jìn)行M×N對線段的比較計算<xk,f1>,<xk,f2>,......,<xk,fM×N>,從中找出與該線段xk最相似的一條線段fk;如果該線段fk屬于人臉庫中人臉圖像的第j幀,則該待識別的人臉圖像X與人臉庫中第j幀人臉圖像匹配成功一次;(A23)按照步驟(A22)的比較方法,依次對待識別的人臉圖像X上的N條線段分別與人臉庫中的MN條線段進(jìn)行比較處理,即完成N次匹配過程;(A24)如果人臉庫中有某幀人臉圖像與待識別的人臉圖像X匹配成功的次數(shù)最多,則該幀人臉圖像就是與待識別的人臉圖像X最相似的人臉。
所述步驟(5)進(jìn)一步包括下列操作(51)用戶端與管理節(jié)點(diǎn)通信,告知管理節(jié)點(diǎn)視頻流中沒有新的人臉識別請求,并停止向管理節(jié)點(diǎn)傳送視頻圖像;(52)管理節(jié)點(diǎn)將各計算節(jié)點(diǎn)對一系列人臉圖像進(jìn)行識別的結(jié)果圖像和相關(guān)參數(shù)進(jìn)行匯總綜合,得到與人臉庫中匹配次數(shù)最多的人臉圖像,并記錄匹配次數(shù),再求解該匹配次數(shù)除以一系列人臉圖像總數(shù)所得到的比值,如果該比值大于所述設(shè)定的綜合人臉識別中的參考系數(shù)值,則認(rèn)為該匹配次數(shù)最多的人臉圖像為最終的人臉識別結(jié)果;否則,認(rèn)為不能識別;(53)管理節(jié)點(diǎn)與用戶端通信,告知用戶端人臉識別的最終結(jié)果以及相關(guān)數(shù)據(jù)信息;(54)用戶端將人臉識別的最終結(jié)果以及相關(guān)數(shù)據(jù)統(tǒng)計信息顯示給用戶。
本發(fā)明是一種改進(jìn)的基于線段的人臉識別方法,即基于網(wǎng)格的并行、分布式識別人臉的方法,特點(diǎn)是將人臉識別引入到網(wǎng)格平臺,充分利用網(wǎng)格特性強(qiáng)大計算能力、海量存儲能力及網(wǎng)格中多組件的協(xié)作方法,較好地解決了人臉識別對于計算能力和存儲能力的要求,從而可以忽略計算強(qiáng)度,大大提高人臉識別速度,充分滿足實時性識別要求;并且,該方法通過提高人臉識別算法的復(fù)雜度和增加存儲器等資源消耗來提高人臉識別的速度和精度,能夠滿足在海量人臉庫中進(jìn)行人臉識別的實時性識別要求。另外,網(wǎng)格中的管理節(jié)點(diǎn),使得該方法具有一定的“自省”能力,即在無人工干預(yù)情況下的可持續(xù)運(yùn)行,加強(qiáng)了系統(tǒng)的容錯性和穩(wěn)定性。另外,該方法還擁有良好的資源擴(kuò)展性能,可通過接入更多其它網(wǎng)格的方式來提高本系統(tǒng)的計算能力和存儲能力。
本發(fā)明方法在很多領(lǐng)域中都有很好的應(yīng)用前景。例如安檢系統(tǒng)用攝像頭拍攝受檢人的臉部照片,并對分布在多個地點(diǎn)的圖像庫進(jìn)行實時檢索,可用于機(jī)場、海關(guān)、車站、奧運(yùn)場館等重要場所的反恐活動。
新聞節(jié)目管理目前,新聞視頻資料累計超過千萬小時。有的電視臺每天播送的新聞節(jié)目超過20小時,而每天從各種渠道送入電視臺的視頻新資料又超過300小時。電視臺要向觀眾提供深入報道,必須要求新聞制作人員能夠快捷、高效地利用新的現(xiàn)場視頻資料和舊的歷史資料。而采用基于網(wǎng)格的人臉圖像檢索技術(shù)對新聞視頻節(jié)目進(jìn)行管理和歸檔,能夠?qū)崿F(xiàn)新聞節(jié)目制作人的上述要求。
網(wǎng)絡(luò)視頻圖像信息檢索目前互聯(lián)網(wǎng)上有大量的視頻圖像信息(照片或動態(tài)視頻),現(xiàn)在的檢索引擎只能檢索文本文件的關(guān)鍵字,按照人臉圖像進(jìn)行搜索,將大大改進(jìn)網(wǎng)絡(luò)信息的檢索能力。
因此,本發(fā)明采用網(wǎng)格技術(shù)識別人臉圖像的方法能夠產(chǎn)生很好的社會效益和經(jīng)濟(jì)效益。
圖1是在人臉圖像的輪廓線之間有選擇性或任意選取N條線段的示意圖。
圖2是本發(fā)明基于網(wǎng)格的并行、分布式識別人臉的方法總體流程方框圖。
圖3是運(yùn)用本發(fā)明方法的網(wǎng)格系統(tǒng)結(jié)構(gòu)示意圖。
圖4(A)、(B)分別是如何根據(jù)“三庭五眼”原理從人臉圖像中截取一個尺寸為2d×2d的正方形區(qū)域作為正面人臉圖像的示意和一實施例的標(biāo)準(zhǔn)化正面人臉圖像。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。
眾所周知,人臉圖像識別涉及的計算量非常巨大,本發(fā)明作為一種基于網(wǎng)格的并行、分布式的人臉識別方法,它是將人臉識別處理的計算和操作部署在網(wǎng)格平臺上,由網(wǎng)格中的各個計算節(jié)點(diǎn)并行、分布式地進(jìn)行人臉識別的運(yùn)算處理,以減少人臉識別時間;同時,可選取更多的直線,以提高人臉識別的精度。
參見圖2,介紹本發(fā)明方法的具體操作步驟
步驟(1)配置網(wǎng)格,建立可調(diào)配計算節(jié)點(diǎn)池-先配置網(wǎng)格,建立管理節(jié)點(diǎn)與網(wǎng)格虛擬共享存儲區(qū)中的人臉庫的連接,再將網(wǎng)格中處于空閑狀態(tài)的計算節(jié)點(diǎn)集中組建為“可調(diào)配計算節(jié)點(diǎn)池”,并將各個部件的運(yùn)行狀態(tài)及時告知管理節(jié)點(diǎn),以便啟動網(wǎng)格服務(wù);然后設(shè)置用戶端的各攝像頭的“初始”/“工作”狀態(tài)。
該步驟又可細(xì)分為下述操作內(nèi)容;(11)使用網(wǎng)格軟件將路由器和各種計算機(jī)組合、搭建為一個網(wǎng)格(參見圖3,其中管理節(jié)點(diǎn)為網(wǎng)格的入口和出口,其支撐軟件為網(wǎng)格軟件globustoolkits;還包括有多個計算節(jié)點(diǎn)和由數(shù)據(jù)服務(wù)器與存儲節(jié)點(diǎn)組成的虛擬共享存儲區(qū)),在網(wǎng)格虛擬共享存儲區(qū)設(shè)置人臉庫,該人臉庫用于存儲標(biāo)準(zhǔn)化后正面人臉圖像,且每幀人臉圖像都已隨機(jī)選取N條直線來表征之;同時在該網(wǎng)格的入口和出口-管理節(jié)點(diǎn)與虛擬共享存儲區(qū)之間建立連接,使管理節(jié)點(diǎn)可隨時訪問人臉庫;該管理節(jié)點(diǎn)還可連接Internet上的其他網(wǎng)格,使該網(wǎng)格具有擴(kuò)展性;(12)管理節(jié)點(diǎn)遍歷網(wǎng)格中的每個計算節(jié)點(diǎn),根據(jù)各個計算節(jié)點(diǎn)狀態(tài),將空閑的、能夠進(jìn)行人臉識別的計算節(jié)點(diǎn)加入可調(diào)配計算節(jié)點(diǎn)池;(13)當(dāng)用戶提出開始或停止人臉識別任務(wù)時,管理節(jié)點(diǎn)根據(jù)用戶請求開啟或關(guān)閉位于用戶端的各個攝像頭,并初始化程序和包括人臉表征線段參數(shù)N、行列式寬度s和綜合人臉識別中的參考系數(shù)等整個網(wǎng)格系統(tǒng)的各個預(yù)定義參數(shù);(14)網(wǎng)格中的用戶端、攝像頭、可調(diào)配計算節(jié)點(diǎn)池和人臉庫等相關(guān)部件分別將各自運(yùn)行狀態(tài)通告管理節(jié)點(diǎn),管理節(jié)點(diǎn)根據(jù)匯聚后的狀態(tài)信息進(jìn)行判斷,是否能夠啟動或關(guān)閉網(wǎng)格服務(wù)、刪除或恢復(fù)數(shù)據(jù)。
步驟(2)在視頻流中提取人臉圖像,存入緩存區(qū)-將用戶端攝像頭采集的連續(xù)視頻流存儲于內(nèi)存的幀緩沖區(qū),再對視頻流中的每幀圖像順序進(jìn)行人臉檢測,提取含有人臉的圖像,暫存在內(nèi)存的人臉緩沖區(qū),得到一系列含有人臉的圖像。
該步驟又可細(xì)分為下述操作內(nèi)容;
(21)用戶端攝像頭根據(jù)管理節(jié)點(diǎn)的啟動指令,進(jìn)入攝像工作狀態(tài);(22)將攝像頭采集的連續(xù)視頻流中的圖像以“幀”為單位順序存儲于幀緩沖區(qū),其中,當(dāng)前幀為該攝像頭采集時刻最早、尚未進(jìn)行人臉檢測處理的一幀圖像;(23)由人臉分類器對幀緩沖區(qū)中每幀圖像進(jìn)行人臉檢測,同時,攝像頭繼續(xù)工作,不斷將采集的視頻流寫入幀緩沖區(qū);其中人臉分類器是通過加載對人臉樣本庫進(jìn)行訓(xùn)練而得到的人臉特征文件構(gòu)成,人臉樣本庫包括大量的人臉和易誤解為人臉的非人臉兩類圖像;(24)如果在當(dāng)前幀中檢測出含有人臉,則將當(dāng)前幀存儲于人臉緩沖區(qū)中,并在用戶端顯示該當(dāng)前幀和標(biāo)記被提取人臉區(qū)域的位置和大??;否則,僅在用戶端顯示該當(dāng)前幀;(25)循環(huán)執(zhí)行步驟(23)、(24)操作,直至完成全部幀圖像的人臉檢測。
步驟(3)對含有人臉的圖像提取人臉矩形區(qū)域圖像,并對其進(jìn)行標(biāo)準(zhǔn)化處理,再傳輸?shù)焦芾砉?jié)點(diǎn)-從人臉緩沖區(qū)中順序提取含有人臉的各幀圖像,并分別提取人臉區(qū)域圖像后,再根據(jù)統(tǒng)計規(guī)律和設(shè)定格式進(jìn)行標(biāo)準(zhǔn)化處理,將各幀正面人臉圖像順序傳送到管理節(jié)點(diǎn)。
該步驟又可細(xì)分為下述操作內(nèi)容;(31)根據(jù)人眼特征文件和人眼樣本庫,對人臉緩沖區(qū)中的每幀圖像進(jìn)行檢測人臉區(qū)域和在人臉圖像中確定該人兩眼位置的操作,如果人臉圖像中只有一眼或沒有眼睛或眼睛特征不明顯,則按五官比例推算其兩眼的大概位置;其中人眼特征文件則是通過對人眼樣本庫進(jìn)行訓(xùn)練而形成的,人眼樣本庫包括大量的人眼和易誤解為人眼的非人眼兩類圖像;(32)根據(jù)人臉圖像中兩眼位置得到雙眼的連接線,再判斷該雙眼連接線是否平行于水平線,若是,跳轉(zhuǎn)執(zhí)行步驟(34);否則,順序執(zhí)行后續(xù)操作;(33)旋轉(zhuǎn)該人臉圖像,使得其雙眼連線平行于水平線;旋轉(zhuǎn)圖像會導(dǎo)致丟失該人臉圖像的邊緣像素點(diǎn),丟失的像素點(diǎn)的值一律置為0;(34)以人眼為基準(zhǔn),以雙眼的距離d為尺度,根據(jù)“三庭五眼”原理從該人臉圖像中截取一個2d×2d的正方形區(qū)域為人臉(參見圖4,該圖展示了如何根據(jù)“三庭五眼”原理從人臉圖像中截取一個尺寸為2d×2d的正方形區(qū)域作為正面人臉圖像以及一實施例人臉圖像),再按照預(yù)先設(shè)定尺寸進(jìn)行統(tǒng)一縮放,得到正面標(biāo)準(zhǔn)人臉圖像;(35)將經(jīng)過上述步驟處理的正面標(biāo)準(zhǔn)人臉圖像傳送至管理節(jié)點(diǎn)。
步驟(4)各計算節(jié)點(diǎn)并發(fā)執(zhí)行人臉識別的運(yùn)算操作-管理節(jié)點(diǎn)對于請求識別的每幀正面人臉圖像,分別從可調(diào)配計算節(jié)點(diǎn)池中取出一個空閑的計算節(jié)點(diǎn),對該正面人臉圖像進(jìn)行識別處理;同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該計算節(jié)點(diǎn)。
該步驟又可細(xì)分為下述操作內(nèi)容;(41)對于請求識別的每幀正面人臉圖像,管理節(jié)點(diǎn)分別從可調(diào)配計算節(jié)點(diǎn)池中取出第一個空閑的計算節(jié)點(diǎn),用于對該正面人臉圖像進(jìn)行識別處理,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該第一個計算節(jié)點(diǎn);(42)第一個計算節(jié)點(diǎn)采用改進(jìn)的基于線段的人臉識別方法對人臉圖像進(jìn)行識別處理,即將一張正面人臉圖像分割為N條線段,用該N條線段來表征人臉圖像,從而將一張正面人臉圖像的識別轉(zhuǎn)換為該N條線段逐條分別與人臉庫中每個人臉圖像的所有線段的比較識別;其中改進(jìn)之處是將每條線段圖像的灰度值轉(zhuǎn)換為對光照強(qiáng)度變化不敏感的奇異值,用于進(jìn)行人臉識別的計算處理;下面具體介紹該識別方法的各個操作步驟(A1)在人臉圖像輪廓線上任意選取兩點(diǎn)連線后,會形成一條線段,利用該方法所得到的N條線段來表征人臉圖像,N通常設(shè)為大于200的自然數(shù);(A2)利用圖像處理的線性插值算法,對該N條線段進(jìn)行插值歸一處理,將其都轉(zhuǎn)換為同一長度為s2的像素集合,即每條線段都由s個小線段組成,每個小線段都有s個像素點(diǎn),s為正整數(shù);這樣將每條線段的像素點(diǎn)數(shù)值轉(zhuǎn)化成一個s×s矩陣首行與線段中的前s個像素點(diǎn)的像素值相對應(yīng),第二行與線段中的第s+1到第s+s個像素點(diǎn)的像素值相對應(yīng),以此類推,共有s行;線段像素點(diǎn)的計算公式是
即式MLi,k=Li,k(1)Li,k(2)···Li,k(s)Li,k(s+1)Li,k(s+2)···Li,k(2×s)············Li,k(s2-s+1)Li,k(s2-s+2)···Li,k(s×s)]]>中,Li,k為正面人臉圖像中的任意一條線段,其含有s2個像素點(diǎn),自然數(shù)i、k和j分別為人臉庫中的每幀人臉圖像的幀序號、每幀人臉圖像中的各個線段的序號和每個線段上的像素點(diǎn)序號,k的最大值為N;Li,k(j)表示正面人臉圖像庫中第i幀人臉圖像中的第j條線段中的第k個像素點(diǎn);MLi,k表示由線段Li,k轉(zhuǎn)換而得的s×s矩陣;然后,求解上述s×s矩陣的奇異值,將每條線段圖像的灰度值轉(zhuǎn)換為對光照強(qiáng)度變化不敏感的奇異值,以便用該線段的奇異值取代人臉圖像中的灰度值進(jìn)行人臉圖像各線段的比較識別處理。
(A3)用人臉圖像各線段的s×s矩陣奇異值與人臉庫中各人臉圖像中的各個線段分別進(jìn)行比較識別,該過程的具體操作步驟為(A31)假設(shè)人臉庫中共有人臉圖像M幀,其序號分別為F1、F2、......FM,在每幀人臉圖像上任意選取N條直線,這樣人臉庫中共有需要比較識別的線段為M×N=MN條,分別為f1、f2、......fM×N;此外,待識別的人臉圖像X上也有N條線段,分別為x1、x2、......xN;(A32)將待識別的人臉圖像x中的任意一條線段xk與人臉庫中的M×N條線段f1,f2,、、、,fM×N分別進(jìn)行比較處理,其中,自然數(shù)k是線段序號,最大值為N,這樣的一次匹配過程就要進(jìn)行M×N對線段的比較計算<xk,f1>,<xk,f2>,......,<xk,fM×N>,從中找出與該線段xk最相似的一條線段fk;如果該線段fk屬于人臉庫中第j幀人臉圖像,則該待識別的人臉圖像x與人臉庫中第j幀人臉圖像匹配成功一次;(A33)按照步驟(A32)的比較方法,將待識別的人臉圖像X上的N條線段依次分別與人臉庫中的MN條線段進(jìn)行比較處理,即完成N次匹配過程;(A34)如果人臉庫中有某幀人臉圖像與待識別的人臉圖像X匹配成功的次數(shù)最多,則該幀人臉圖像就是與待識別的人臉圖像X最相似的人臉。
(43)第一個計算節(jié)點(diǎn)從可調(diào)配計算節(jié)點(diǎn)池中取出另一個空閑的計算節(jié)點(diǎn),用于對所述請求識別人臉圖像中的某條線段與人臉庫中每個人臉圖像的所有線段的比較處理,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該被調(diào)用的另一個計算節(jié)點(diǎn);而另一個計算節(jié)點(diǎn)可以繼續(xù)從可調(diào)配計算節(jié)點(diǎn)池中取出其它計算節(jié)點(diǎn)進(jìn)行其它線段與人臉庫中任意一條線段之間的比較,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該被調(diào)用的其它計算節(jié)點(diǎn),當(dāng)比較結(jié)果返回給調(diào)用它的另一個計算節(jié)點(diǎn)后,該其它計算節(jié)點(diǎn)被添加到可調(diào)配計算節(jié)點(diǎn)池;當(dāng)另一個計算節(jié)點(diǎn)完成該條線段與人臉庫中的各個線段的比較后,找到人臉庫中與該條線段最近似的一條線段,記錄該條最近似線段所歸屬的人臉圖像,并作為比較結(jié)果返回給調(diào)用它的第一個計算節(jié)點(diǎn);隨之,該另一個計算節(jié)點(diǎn)被添加到可調(diào)配計算節(jié)點(diǎn)池;(44)重復(fù)上述步驟(43)的操作,直至完成全部N條線段的比較處理后,得到N個比較結(jié)果N幀人臉圖像;此時,各計算節(jié)點(diǎn)分別將各自的N幀人臉圖像中出現(xiàn)次數(shù)最多的人臉圖像的相關(guān)信息發(fā)送至管理節(jié)點(diǎn)。
步驟(5)管理節(jié)點(diǎn)對人臉識別結(jié)果數(shù)據(jù)進(jìn)行綜合分析處理-當(dāng)視頻流中沒有新的人臉識別請求時,管理節(jié)點(diǎn)將各計算節(jié)點(diǎn)對一系列正面人臉圖像進(jìn)行識別的結(jié)果進(jìn)行綜合處理,得出最終的人臉識別結(jié)果。
該步驟又可細(xì)分為下述操作內(nèi)容;(51)用戶端與管理節(jié)點(diǎn)通信,告知管理節(jié)點(diǎn)視頻流中沒有新的人臉識別請求,并停止向管理節(jié)點(diǎn)傳送視頻圖像;(52)管理節(jié)點(diǎn)將各計算節(jié)點(diǎn)對一系列人臉圖像進(jìn)行識別的結(jié)果圖像和相關(guān)參數(shù)進(jìn)行匯總綜合,得到與人臉庫中匹配次數(shù)最多的人臉圖像,并記錄匹配次數(shù),再求解該匹配次數(shù)除以一系列人臉圖像總數(shù)所得到的比值,如果該比值大于設(shè)定的綜合人臉識別中的參考系數(shù)值,則認(rèn)為該匹配次數(shù)最多的人臉圖像為最終的人臉識別結(jié)果;否則,認(rèn)為不能識別;(53)管理節(jié)點(diǎn)與用戶端通信,告知用戶端人臉識別的最終結(jié)果以及相關(guān)數(shù)據(jù)信息;(54)用戶端將人臉識別的最終結(jié)果以及相關(guān)數(shù)據(jù)統(tǒng)計信息顯示給用戶。
申請人對本發(fā)明的方法進(jìn)行了實施試驗。試驗是以申請人的千兆局域網(wǎng)搭建了一個網(wǎng)格系統(tǒng),該網(wǎng)格系統(tǒng)的管理節(jié)點(diǎn)是使用CPU型號為Xeon 3.2GHz、內(nèi)存為2G字節(jié)、硬盤為73G字節(jié)的兩個主備結(jié)構(gòu)設(shè)備組成,計算節(jié)點(diǎn)是使用同樣規(guī)格的40臺計算機(jī)組成,存儲陣列的容量是2T。其中服務(wù)器端操作系統(tǒng)和編譯程序分別為Linux和gcc服務(wù)程序和javac服務(wù)框架,客戶端操作系統(tǒng)和編譯程序分別為Windows和VC、java軟件開發(fā)工具包JDK(Java Developer′sKit)、基于Java的build工具Ant。數(shù)據(jù)庫軟件是Postgresql,網(wǎng)絡(luò)發(fā)布軟件是Apache tomcat,支撐平臺軟件是Globus和CGSP。
該試驗系統(tǒng)進(jìn)行測試的圖片有210張,分為35組,每組6張圖片。測試結(jié)果數(shù)據(jù)是每張圖片的平均測試響應(yīng)時間約為1.5秒,其中識別成功176張,誤識別或不能識別34張,成功率為83.81%。因此,在使用高復(fù)雜度人臉識別算法和大數(shù)據(jù)量人臉庫進(jìn)行比較的情況下,保證了人臉的實時性識別要求;而且,在無人工干預(yù)的情況下,該網(wǎng)格系統(tǒng)可以長時間持續(xù)運(yùn)行,可方便地增加網(wǎng)格內(nèi)部計算節(jié)點(diǎn)或者網(wǎng)格外部的網(wǎng)格集群,來提高計算能力和存儲能力。試驗結(jié)果表明本發(fā)明的人臉識別方法是成功的,實現(xiàn)了發(fā)明目的。
權(quán)利要求
1.一種基于網(wǎng)格的并行、分布式的人臉識別方法,其特征在于將人臉識別處理的計算和操作部署在網(wǎng)格平臺上,由網(wǎng)格中的各個計算節(jié)點(diǎn)并行、分布式地進(jìn)行人臉識別的運(yùn)算處理,以提高人臉識別速度;同時可選取更多的人臉特征線段,以提高人臉識別精度;包括以下具體操作步驟(1)配置網(wǎng)格,建立可調(diào)配計算節(jié)點(diǎn)池先配置網(wǎng)格,建立管理節(jié)點(diǎn)與網(wǎng)格虛擬共享存儲區(qū)中的人臉庫的連接,再將網(wǎng)格中處于空閑狀態(tài)的計算節(jié)點(diǎn)集中組建為“可調(diào)配計算節(jié)點(diǎn)池”,并將各個部件的運(yùn)行狀態(tài)及時告知管理節(jié)點(diǎn),以便啟動網(wǎng)格服務(wù);然后設(shè)置用戶端的各攝像頭的“初始”/“工作”狀態(tài);(2)在視頻流中提取人臉圖像,存入緩沖區(qū)將用戶端攝像頭采集的連續(xù)視頻流存儲于內(nèi)存的幀緩沖區(qū),再對視頻流中的每幀圖像順序進(jìn)行人臉檢測,提取含有人臉的圖像,存儲在內(nèi)存的人臉緩沖區(qū),得到一系列含有人臉的圖像;(3)對含有人臉的圖像提取人臉矩形區(qū)域圖像,并對其進(jìn)行標(biāo)準(zhǔn)化處理,再傳輸?shù)焦芾砉?jié)點(diǎn)從人臉緩沖區(qū)中順序提取含有人臉的各幀圖像,并分別提取人臉區(qū)域圖像后,再根據(jù)統(tǒng)計規(guī)律和設(shè)定格式進(jìn)行標(biāo)準(zhǔn)化處理,將各幀正面人臉圖像順序傳送到管理節(jié)點(diǎn);(4)各計算節(jié)點(diǎn)并發(fā)執(zhí)行人臉識別的運(yùn)算操作對于請求識別的每幀正面人臉圖像,都由管理節(jié)點(diǎn)分別從可調(diào)配計算節(jié)點(diǎn)池中取出一個空閑的計算節(jié)點(diǎn),用于對該正面人臉圖像進(jìn)行識別處理;同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該計算節(jié)點(diǎn);(5)管理節(jié)點(diǎn)對人臉識別結(jié)果數(shù)據(jù)進(jìn)行綜合分析處理當(dāng)視頻流中沒有新的人臉識別請求時,管理節(jié)點(diǎn)將各計算節(jié)點(diǎn)對一系列正面人臉圖像進(jìn)行識別的結(jié)果進(jìn)行綜合處理,得出最終的人臉識別結(jié)果。
2.根據(jù)權(quán)利要求1所述的人臉識別方法,其特征在于所述步驟(1)進(jìn)一步包括下列操作(11)使用網(wǎng)格軟件將路由器和各種計算機(jī)組合、搭建為一個網(wǎng)格,在網(wǎng)格虛擬共享存儲區(qū)設(shè)置人臉庫,該人臉庫用于存儲標(biāo)準(zhǔn)化后正面人臉圖像,且每幀人臉圖像都已隨機(jī)選取N條直線來表征之;同時在該網(wǎng)格的入口和出口-管理節(jié)點(diǎn)與虛擬共享存儲區(qū)之間建立連接,使管理節(jié)點(diǎn)可隨時訪問人臉庫;該管理節(jié)點(diǎn)還可連接Internet上的其他網(wǎng)格,使該網(wǎng)格具有擴(kuò)展性;(12)管理節(jié)點(diǎn)遍歷網(wǎng)格中的每個計算節(jié)點(diǎn),根據(jù)各個計算節(jié)點(diǎn)狀態(tài),將空閑的、能夠進(jìn)行人臉識別的計算節(jié)點(diǎn)加入可調(diào)配計算節(jié)點(diǎn)池;(13)當(dāng)用戶提出開始或停止人臉識別任務(wù)時,管理節(jié)點(diǎn)根據(jù)用戶請求開啟或關(guān)閉位于用戶端的各個攝像頭,并初始化程序和至少包括人臉表征線段參數(shù)N、行列式寬度s和綜合人臉識別中的參考系數(shù)的整個網(wǎng)格系統(tǒng)的各個預(yù)定義參數(shù);(14)網(wǎng)格中包括但不限于用戶端、攝像頭、可調(diào)配計算節(jié)點(diǎn)池和人臉庫的相關(guān)部件分別將各自運(yùn)行狀態(tài)通告管理節(jié)點(diǎn),管理節(jié)點(diǎn)根據(jù)匯聚后的狀態(tài)信息進(jìn)行判斷,是否能夠啟動或關(guān)閉網(wǎng)格服務(wù)、刪除或恢復(fù)數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的人臉識別方法,其特征在于所述步驟(2)進(jìn)一步包括下列操作(21)用戶端攝像頭根據(jù)管理節(jié)點(diǎn)的啟動指令,進(jìn)入攝像工作狀態(tài);(22)將攝像頭采集的連續(xù)視頻流中的圖像以“幀”為單位順序存儲于幀緩沖區(qū),其中,當(dāng)前幀為該攝像頭采集時刻最早、尚未進(jìn)行人臉檢測處理的一幀圖像;(23)由人臉分類器對幀緩沖區(qū)中每幀圖像進(jìn)行人臉檢測,同時,攝像頭繼續(xù)工作,不斷將采集的視頻流寫入幀緩沖區(qū);所述人臉分類器是通過加載對人臉樣本庫進(jìn)行訓(xùn)練而得到的人臉特征文件構(gòu)成,人臉樣本庫包括大量的人臉和易誤解為人臉的非人臉兩類圖像;(24)如果在當(dāng)前幀中檢測出含有人臉,則將當(dāng)前幀存儲于人臉緩沖區(qū)中,并在用戶端顯示該當(dāng)前幀和標(biāo)記被提取人臉區(qū)域的位置和大?。环駝t,僅在用戶端顯示該當(dāng)前幀;(25)循環(huán)執(zhí)行步驟(23)、(24)操作,直至完成全部幀圖像的人臉檢測。
4.根據(jù)權(quán)利要求1所述的人臉識別方法,其特征在于所述步驟(3)進(jìn)一步包括下列操作(31)根據(jù)人眼特征文件和人眼樣本庫,對人臉緩沖區(qū)中的每幀圖像進(jìn)行檢測人臉區(qū)域和在人臉圖像中確定該人兩眼位置的操作,如果人臉圖像中只有一眼或沒有眼睛或眼睛特征不明顯,則按五官比例推算其兩眼的大概位置;其中人眼特征文件則是通過對人眼樣本庫進(jìn)行訓(xùn)練而形成的,人眼樣本庫包括大量的人眼和易誤解為人眼的非人眼兩類圖像;(32)根據(jù)人臉圖像中兩眼位置得到雙眼的連接線,再判斷該雙眼連接線是否平行于水平線,若是,跳轉(zhuǎn)執(zhí)行步驟(34);否則,順序執(zhí)行后續(xù)操作;(33)旋轉(zhuǎn)該人臉圖像,使得其雙眼連線平行于水平線;旋轉(zhuǎn)圖像會導(dǎo)致丟失該人臉圖像的邊緣像素點(diǎn),丟失的像素點(diǎn)的值一律置為0;(34)以人眼為基準(zhǔn),以雙眼的距離d為尺度,根據(jù)“三庭五眼”原理從該人臉圖像中截取一個2d×2d的正方形區(qū)域為人臉,再按照預(yù)先設(shè)定尺寸進(jìn)行統(tǒng)一縮放,得到正面標(biāo)準(zhǔn)人臉圖像;(35)將經(jīng)過上述步驟處理的正面標(biāo)準(zhǔn)人臉圖像傳送至管理節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1所述的人臉識別方法,其特征在于所述步驟(4)進(jìn)一步包括下列操作(41)對于請求識別的每幀正面人臉圖像,管理節(jié)點(diǎn)分別從可調(diào)配計算節(jié)點(diǎn)池中取出第一個空閑的計算節(jié)點(diǎn),用于對該正面人臉圖像進(jìn)行識別處理,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該第一個計算節(jié)點(diǎn);(42)第一個計算節(jié)點(diǎn)采用改進(jìn)的基于線段的人臉識別方法對人臉圖像進(jìn)行識別處理,即將一張正面人臉圖像分割為N條線段,用該N條線段來表征人臉圖像,從而將一張正面人臉圖像的識別轉(zhuǎn)換為該N條線段逐條分別與人臉庫中每個人臉圖像的所有線段的比較識別;(43)第一個計算節(jié)點(diǎn)從可調(diào)配計算節(jié)點(diǎn)池中取出另一個空閑的計算節(jié)點(diǎn),用于對所述請求識別人臉圖像中的某條線段與人臉庫中每個人臉圖像的所有線段的比較處理,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該被調(diào)用的另一個計算節(jié)點(diǎn);該另一個計算節(jié)點(diǎn)可以繼續(xù)從可調(diào)配計算節(jié)點(diǎn)池中取出其它計算節(jié)點(diǎn)分別進(jìn)行其它線段與人臉庫中每個人臉圖像的各個線段之間的比較,同時,從可調(diào)配計算節(jié)點(diǎn)池中刪除該被調(diào)用的其它計算節(jié)點(diǎn);當(dāng)比較結(jié)果返回給調(diào)用它的另一個計算節(jié)點(diǎn)后,該其它計算節(jié)點(diǎn)則被添加到可調(diào)配計算節(jié)點(diǎn)池;當(dāng)另一個計算節(jié)點(diǎn)完成某條線段與人臉庫中的各個線段的比較后,找到人臉庫中與該某條線段最近似的一條線段,記錄該某條最近似線段所歸屬的人臉圖像,并作為比較結(jié)果返回給調(diào)用它的第一個計算節(jié)點(diǎn);隨之,該另一個計算節(jié)點(diǎn)被添加到可調(diào)配計算節(jié)點(diǎn)池;(44)重復(fù)上述步驟(43)的操作,直至完成全部N條線段的比較處理后,得到N個比較結(jié)果N幀人臉圖像;此時,各計算節(jié)點(diǎn)分別將各自的N幀人臉圖像中出現(xiàn)次數(shù)最多的人臉圖像的相關(guān)信息發(fā)送至管理節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求5所述的人臉識別方法,其特征在于所述步驟(42)中改進(jìn)的人臉識別方法是將每幀人臉圖像用N條線段來表征,再將每條線段圖像的灰度值轉(zhuǎn)換為對光照強(qiáng)度變化不敏感的奇異值,用于進(jìn)行人臉識別的計算處理;該方法還包括下列初始化操作步驟(A1)在人臉圖像輪廓線上任意選取兩點(diǎn)連線后,會形成一條線段,利用該方法所得到的N條線段來表征人臉圖像,N通常設(shè)為大于200的自然數(shù);(A2)利用圖像處理的線性插值算法,對該N條線段進(jìn)行插值歸一處理,將其都轉(zhuǎn)換為同一長度為s2的像素集合,即每條線段都由s個小線段組成,每個小線段都有s個像素點(diǎn),s為正整數(shù);這樣將每條線段的像素點(diǎn)數(shù)值轉(zhuǎn)化成一個s×s矩陣首行與線段中的前s個像素點(diǎn)的像素值相對應(yīng),第二行與線段中的第s+1到第s+s個像素點(diǎn)的像素值相對應(yīng),以此類推,共有s行;再求解該s×s矩陣的奇異值,將每條線段圖像的灰度值轉(zhuǎn)換為對光照強(qiáng)度變化不敏感的奇異值,以便用該線段的奇異值取代人臉圖像中的灰度值進(jìn)行人臉圖像各線段的比較識別處理。
7.根據(jù)權(quán)利要求6所述的人臉識別方法,其特征在于所述步驟(A2)中將人臉圖像中的每條線段的像素點(diǎn)數(shù)值轉(zhuǎn)化成一個s×s矩陣的計算公式是 即 式中,Li,k為正面人臉圖像中的任意一條線段,其含有s2個像素點(diǎn),自然數(shù)i、k和j分別為人臉庫中的每幀人臉圖像的幀序號、每幀人臉圖像中的各個線段的序號和每個線段上的像素點(diǎn)序號,k的最大值為N;Li,k(j)表示正面人臉圖像庫中第i幀人臉圖像中的第k條線段中的第j個像素點(diǎn);MLi,k表示由線段Li,k轉(zhuǎn)換而得的s×s矩陣。
8.根據(jù)權(quán)利要求6所述的人臉識別方法,其特征在于所述步驟(A2)中用求解人臉圖像各線段的s×s矩陣奇異值進(jìn)行該人臉圖像各線段的比較識別處理的具體方法是(A21)假設(shè)人臉庫中共有人臉圖像M幀,其序號分別為F1、F2、……FM,在每幀人臉圖像上任意選取N條直線,這樣人臉庫中共有需要比較識別的線段為M×N=MN條,分別為f1、f2、……fM×N;另外,待識別的人臉圖像X上也有N條線段,分別為x1、x2、……xN;(A22)將待識別的人臉圖像X中的任意一條線段xk與人臉庫中的M×N條線段f1,f2,、、、,fM×N分別進(jìn)行比較處理,其中,自然數(shù)k是線段序號,最大值為N,這樣的一次匹配過程就要進(jìn)行M×N對線段的比較計算<xk,f1>,<xk,f2>,……,<xk,fM×N>,從中找出與該線段xk最相似的一條線段fk;如果該線段fk屬于人臉庫中人臉圖像的第j幀,則該待識別的人臉圖像X與人臉庫中第j幀人臉圖像匹配成功一次;(A23)按照步驟(A22)的比較方法,依次對待識別的人臉圖像X上的N條線段分別與人臉庫中的MN條線段進(jìn)行比較處理,即完成N次匹配過程;(A24)如果人臉庫中有某幀人臉圖像與待識別的人臉圖像X匹配成功的次數(shù)最多,則該幀人臉圖像就是與待識別的人臉圖像X最相似的人臉。
9.根據(jù)權(quán)利要求1所述的人臉識別方法,其特征在于所述步驟(5)進(jìn)一步包括下列操作(51)用戶端與管理節(jié)點(diǎn)通信,告知管理節(jié)點(diǎn)視頻流中沒有新的人臉識別請求,并停止向管理節(jié)點(diǎn)傳送視頻圖像;(52)管理節(jié)點(diǎn)將各計算節(jié)點(diǎn)對一系列人臉圖像進(jìn)行識別的結(jié)果圖像和相關(guān)參數(shù)進(jìn)行匯總綜合,得到與人臉庫中匹配次數(shù)最多的人臉圖像,并記錄匹配次數(shù),再求解該匹配次數(shù)除以一系列人臉圖像總數(shù)所得到的比值,如果該比值大于所述設(shè)定的綜合人臉識別中的參考系數(shù)值,則認(rèn)為該匹配次數(shù)最多的人臉圖像為最終的人臉識別結(jié)果;否則,認(rèn)為不能識別;(53)管理節(jié)點(diǎn)與用戶端通信,告知用戶端人臉識別的最終結(jié)果以及相關(guān)數(shù)據(jù)信息;(54)用戶端將人臉識別的最終結(jié)果以及相關(guān)數(shù)據(jù)統(tǒng)計信息顯示給用戶。
全文摘要
一種基于網(wǎng)格的并行、分布式的人臉識別方法,是采用改進(jìn)的基于線段的人臉識別方法將人臉圖像的識別計算和操作部署在網(wǎng)格上,利用網(wǎng)格中各節(jié)點(diǎn)的強(qiáng)大計算能力和存儲能力,以及各節(jié)點(diǎn)的互相協(xié)作,并行、分布式地進(jìn)行人臉識別的運(yùn)算處理,以提高人臉識別速度,能夠在檢索大數(shù)據(jù)量的人臉庫基礎(chǔ)上實時識別人臉;同時,可增加資源消耗而選取更多的人臉特征線段,提高識別精度。該方法包括下述操作步驟配置網(wǎng)格,建立可調(diào)配計算節(jié)點(diǎn)池;在視頻流中提取人臉圖像,存入緩存區(qū);對含有人臉的圖像提取人臉矩形區(qū)域圖像,并對其進(jìn)行標(biāo)準(zhǔn)化處理,再傳輸?shù)焦芾砉?jié)點(diǎn);各計算節(jié)點(diǎn)并發(fā)執(zhí)行人臉識別的運(yùn)算操作;管理節(jié)點(diǎn)對人臉識別結(jié)果數(shù)據(jù)進(jìn)行綜合分析處理。
文檔編號G06K9/00GK1822025SQ20061005869
公開日2006年8月23日 申請日期2006年3月8日 優(yōu)先權(quán)日2006年3月8日
發(fā)明者明安龍, 馬華東, 張海旸 申請人:北京郵電大學(xué)