王 寅,譚曉陽
(南京航空航天大學計算機科學與技術學院,江蘇南京 210016)
人臉檢測是將圖片中人臉的位置、大小和中心找到并標記出來,目前已有很多算法可以檢測。但早期的人臉識別算法多是在一個已經得到的人臉圖像或較容易即可獲取的人臉圖像上進行,致使這些算法無法在使用過程中對圖像做出更好的分析和判斷。隨著人臉識別的應用范圍不斷擴展,人臉檢測逐漸發展起來。
一般的圖像分析方法在學習過程中需要大量的訓練樣本,但在訓練的過程中會導致訓練的參數出現過擬合。檢測過程中對目標圖像中與示例相類似對象間的差異無法很好地避免,使檢測效果降低。H.Takeda,S.Farsi和 P.Milanfarz于2007年發表的關于使用核回歸進行圖像處理和重建文章[1],其中講述了使用回歸模型方法,對噪聲圖像的特征進行提取和分析,借此恢復圖像的原狀或者簡化壓縮工作的流程。該方法可以減小由信號或噪聲模型等造成的影響。其中經典核回歸算法

式中,z是回歸函數;yi表示第i個采樣點在xi處的觀察值;εi表示獨立同分布零均值噪聲;P表示鄰域中采樣點的個數。
盡管經典核回歸具有較好的性能,且易理解,但因為數據局部線性變化而存在限制。之后H.J.Seo和P.Milanfar發表了關于使用 LARK(Locally Adaptive Regression Kernels[2])進行物體檢測的文章。其中介紹了將LARK方法用于提取圖片的特征并引用到對象識別中。這個方法對捕捉基本數據的局部結構很有效,對圖片中各點的灰度并不敏感,相對圖片中灰度值和圖形的變化較為敏感。
使用LARK提取的圖片特征首先要計算圖片片段的局部核。局部核是通過計算圖片片段中的每個像素點的協方差矩陣C,之后通過協方差矩陣計算每個點的核值,再由片段中所有像素點的核值組成局部核。而協方差矩陣C可以將圖片片段中圖形形狀和灰度值的變化情況記錄下來。

根據圖片中每個像素點的協方差矩陣C計算局部核函數K(·)。其描述如式(2)所示

其中,xl=[x1,x2]是空間坐標;P2是局部窗口的像素數(P×P)。方向矩陣Hl定義為

其中,h是全局平滑參數,x對于任意取樣位置x存在一個分析窗口;Cl是該窗口中的空間向量集合(x1,x2)的梯度向量的協方差矩陣。方向矩陣Hl可以根據圖片中當前位置的幾何結構修正局部核的形狀和大小。根據這樣的方向矩陣,選擇高斯函數K(·)并引入計算公式中得到

將根據圖片片段計算出的局部核歸一化之后得到權值向量,然后將圖片中各片段的權值向量按列序排列成矩陣,得到整個圖片的權值向量矩陣。單個圖片片段的權值向量wi的計算方式如下

其中,n是圖片中片段的個數;P2是局部片段的像素數。
將單個片段的權值和向量w∈RP2×1。按照片段在圖片中的位置,按列序組合在一起,得到權值向量矩陣W∈RP2×n。其計算方式如下

通過觀察示例圖片的權值向量矩陣,可以看出,使用LARK對圖片的特征進行提取可以很好地描繪圖片中圖形的變化和位置關系,并捕捉到其細節。圖中所示人臉幾個位置的權值向量。

圖1 人臉幾個位置的LARK核
由于LARK在特征提取方面的優勢,將這種特征提取的方法應用到人臉檢測當中。嘗試使用一個確定的人臉圖像作為示例樣本,然后對其他含有人臉圖像的圖片進行檢測,構成的檢測系統流程如圖4所示。

圖2 使用LARK構成的檢測系統流程


其中,n為圖片Q與Tj中的片段個數;P2是局部片段的像素數。圖2為示例圖片Q與目標圖片T中區域Tj的部分權值向量圖示。

在計算特征矩陣的過程中,使用PCA進行降維,可以保證特征辨別能力的同時降低計算特征的維度。通過PCA保留主成分中前d項構成矩陣AQ,根據AQ計算得到特征矩陣。其計算形式去下

分析特征的過程也就是衡量FQ與FTj之間的相似度的過程,采用了余弦相似度度量,該方法可以真實地反應兩個向量在變化方向上的差異,也克服了傳統的歐氏距離對于向量角度度量的缺點。并確定目標圖片中是否包含與示例相似的圖片。計算方式為

(1)獲得相似度圖像。通過使用構造函數f,在單個向量間相似度ρi的基礎上構造相似性的圖像,之后通過相似度圖像分析人臉圖像的位置信息。構造函數原型如下

對于 ρi和 ρi∈[-1,1]時,其值越接近 -1或 1時,表示向量的夾角越接近0°或180°,圖形的走向越相似;它的值越接近0時,表示向量的夾角越接近90°,圖形的走向越背離。
(2)根據相似度圖像獲取人臉信息。得到相似度圖像之后,將其存放在矩陣S中。用矩陣S中元素的最大值分別減去S中各個元素之后將得到新的矩陣S'。其中矩陣中S'值<0.06的點的位置被認為是目標圖像中人臉所在區域的左上角點的坐標,其大小和示例圖像等同。
在實際的檢測過程中,由于目標圖像中人臉大小的不確定性,可根據變化后大小不同的示例圖像確定相似度圖像,也就是在不同尺寸的示例圖像下可得到多個相似度圖像。按照上述確定人臉位置的辦法,將在不同尺寸下得到不同的人臉位置信息,并對這些信息進行處理。
使用LARK構成檢測系統的過程,只需根據示例圖片找到目標圖像中與其相似的圖區域。在檢測時,先將需檢測的圖像轉換為灰度圖像再進行檢測,這樣既可以完整地表示人臉的各部分特征,同時更易于處理,還可以減少計算量。
圖3中展示了使用同一示例圖片在構造的人臉檢測系統上進行測試的結果。由此可以看出,以同一圖片作為示例的情況下,其中一個較為準確。造成檢測結果不準確的可能性有兩個:(1)示例圖像提取特征的局限性,它并不能代表所有人臉圖像的特征,因此在后續的檢測過程中可能出現偏差。(2)在使用示例圖像比對目標圖像的疑似區域時出現偏差,也就是目標圖像中有很多與示例圖像相似的區域對檢測結果造成干擾。雖然LARK可以很好地描述圖像的圖形特征,但由于上述兩種因素的影響,可以在對圖片進行遍歷之前將可能的區域進行預選。這種特征提取方法在提取特征時計算速度較慢,檢測過程中其計算速度并不理想。

圖3 使用同一示例圖片在構造的人臉檢測系統上進行簡單測試的結果
[1] TAKEDA H,FARSIU S,MILANFAR P.Kernel regression for image processing and reconstruction[J].IEEE Trans on Image Processing,2007,16(2):349 -366.
[2] SEO H J,MILANFAR P.Training - free,generic object detection using locally adaptive regression kernels[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,2010,32(9):1688-1704.
[3] VIOLA P,JONES M.Robust real- time object detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[4] VIOLA P,JONES M J.Rapid object detection using a boosted cascade of simple features[C].Proceeding of IEEE Conf.Computer Vision and Pattern Recognition,2001,1:511 -518.