王小芳, 項國強, 魏 瑋
(河北工業大學 計算機科學與軟件學院,天津 300401)
人臉配準是圖像配準[1]應用的重要分支,在人臉識別、人臉美化與編輯、人臉替換和攝影等應用中人臉配準的優劣對最終效果具有直接的影響。
在實際應用中,通過特征提取和跟蹤實現視頻人臉圖像的配準得到廣泛的體現。Afifi M等人[2]提出了一種視頻人臉配準算法,采用KLT角點跟蹤獲取相鄰幀的穩定點坐標,根據MSAC算法估計相鄰幀的坐標變換矩陣,由于光照、噪聲等因素的干擾,KLT跟蹤點位置出現不同程度的偏移,采用配準的數據對圖像做坐標變換人臉出現抖動(flicker)現象。Dale K等人[3]采用手工標定和光流法獲取匹配點坐標,但校準匹配點的人工交互較多,配準的精度受人為因素影響較多。Sariyanidi E等人[4]提出采用最優化策略和統計學習方法配準視頻序列前后幀人臉,保證了視頻人臉的時間一致性,采用誤差正反向傳遞的迭代算法時間效率較低。鐘千里[5]根據ASM人臉特征點配準人臉,在圖片中取得了不錯的效果,但忽略了視頻序列前后幀的聯系,在視頻中出現抖動現象;姚震[6]采用ASM特征點定位方法,并根據Mean-Shift算法跟蹤特征點,由于光照等干擾,需要不斷修正跟蹤點位置。文獻[7]通過實驗論證了人臉特征點檢測和跟蹤的方法在視頻序列中人臉位置定量檢測時不能保證人臉位置的時間一致性。
本文提出根據圖像最大相似度配準視頻序列人臉的方法。以配準的前一幀圖像為參考,將后一幀圖像作為待配準圖像,以參考圖像與待配準圖像中人臉最大相似度的位置作為配準的精確位置,計算配準時的坐標變換參數,對待配準做坐標變換。
視頻序列人臉配準目的是空域的人臉五官及膚色在時域中具有連續性,使得前后兩幀對應位置具有相同的色彩和紋理,配準后的人臉在時間序列上形成一條與坐標軸平行的“管道”。配準的關鍵在于特征精確定位,根據視頻序列的連續性,相鄰兩幀人臉圖像的尺度、平移和旋轉具有穩定性,利用前一幀圖像信息在當前幀圖像中搜索得到最佳匹配位置,進而完成當前幀的坐標變換。圖1為視頻人臉配準的流程,考慮到視頻序列的連續性,采用后一幀圖像向前一幀圖像配準,通過尺度金字塔加速計算兩幀圖像的相似度,得到匹配點對,通過普氏分析法計算仿射變換的參數,最后對待配準圖像做坐標變換。

圖1 算法框圖
在匹配過程中均值和方差計算是主要計算手段。色彩和灰度變化較大的非膚色區域像素的方差相對純膚色區域差異較大,是匹配的有效數據。人臉膚色像素點數目較多且分布集中,灰度的方差較小,根據統計學原理,像素數目相對較多且差異性較小的膚色像素點會減小灰度的方差,導致誤匹配。本文提出最大梯度采樣方法,獲取人臉灰度變化較大的像素塊用于匹配。
采用監督下降方法[8](supervised descent method,SDM)人臉特征點定位算法分別得到前一幀參考圖像I1(x,y)和當前待配準圖像I2(x,y)的人臉特征點,根據特征點得到圖像I1(x,y)的五官像素塊和圖像I2(x,y)的人臉候選區域圖像。圖2(a)中顯示人臉特征點位置,采用文獻[9]提出的人臉膚色提取方法在額頭膚色區域自適應地插入三個點。連接外圍輪廓點得到邊緣不平滑的人臉區域,在特征點間插值減少人臉信息損失,通過迭代平滑人臉輪廓,得到人臉候選區域F2(x,y),將人臉輪廓構造成邊緣光滑的多邊形,橫坐標插值通過0.618法得到,即

(1)
相鄰幀人臉通常具有微小的運動,幀率為25 fps的視頻通過幀差法檢測到的人臉運動平均介于0~3個像素,Viola P等人[10]提出視頻中相對較小且進行微小位移的子圖像可近似看作剛體變換。根據梯度最大原則對I1(x,y)做采樣,得到灰度變化大的像素塊G1(x,y)與五官像素塊F1,iblock(x,y)的交集作為搜索核kerneli(x,y),即
kerneli(x,y)=F1,iblock(x,y)∩G1(x,y)
(2)
求交運算得出的像素點采用K均值聚類得到四個簇,其邊緣構成不規則圖形,在不損失有效數據的前提下,取每個簇的最小外接矩形,將搜索核規整為規則的矩形。在眨眼時,眼部周圍像素點個數較少,通過范圍擴大至眉心上邊緣增大搜索核尺寸。

圖2 臉部區域及搜索核
搜索最佳配準點需要遍歷圖像的所有像素,隨著圖像尺寸增大,算法的時間復雜度成倍增長。根據圖像像素的局部連續性,對人臉候選區和搜索核同時進行降尺度處理,構造尺度金字塔。尺度金字塔塔底為原圖像,從底層向上,每層圖像均由下層圖像下采樣得到。在搜索過程中,每個核在人臉區域搜索后結果表現為單峰,或有顯著差異的雙峰,保證了在尺度金字塔中極值搜索的有效性。
為保證準確定位相鄰層像素對應關系,避免丟失圖像細節信息,采樣保留偶數行和偶數列的像素點,人臉候選區域圖像F2(x,y)在尺度金字塔第l層的圖像F2,l(x,y)通過對第l+1層采樣得到
(3)
對圖像F2(x,y)進行下采樣時,對每個搜索核進行相同處理,搜索核的尺寸決定尺度金字塔的層數,設所有核的最小尺寸為Mker×Nker,尺度金字塔頂最小核為r×c,金字塔層數layers由式(4)得出
(4)
匹配度函數是影響配準精度的重要元素,王東峰等人[11]提出的圖像對齊度準則因對視頻中光照和攝像機噪聲不敏感得到了廣泛的應用[12~14]。采用對齊度搜索方法,根據搜索核與候選區域對應關系分別計算每個核與搜索框內圖像SubI2(x,y)的對齊度(alignment metric,AM),用以描述搜索核與搜索框圖像的相似程度。子圖像kerneli(x,y)和SubI2(x,y)各灰度級像素個數分別存儲在H1[256]和H2[256]中,每個灰度級出現的概率分別存儲在p1[256]和p2[256]中。文獻[11]定義了圖像灰度的相對均值,即圖像kerneli(x,y)灰度級為n的像素坐標集合對應SubI2(x,y)位置上像素點集的灰度之和與坐標集合元素個數H1[n]的比值,公式描述如下
(5)
圖像kerneli(x,y)相對SubI2(x,y)在灰度級為n時的方差的計算式為
(6)

對灰度方差分別以灰度級n在兩幅圖像中出現的概率加權求和,得到兩個期望方差,即
(7)
(8)
搜索過程中搜索核圖像kerneli(x,y)和搜索框內圖像SubI2(x,y)的對齊度
AMi(kerneli(x,y),SubI2(x,y))=
(9)

從金字塔頂層開始搜索,每次搜索時構造與人臉候選圖像相同尺寸的矩陣D,用于存儲計算得到的對齊度。通過式(9)可得第i個搜索核與搜索框內圖像匹配時的對齊度,將得到的對齊度寫入到矩陣D與搜索框圖像SubI2(x,y)的中心點center對應位置,即
Dcenter=AMi(kerneli(x,y),SubI2(x,y)),
(10)
式中wsub和hsub分別為圖像SubI2(x,y)的寬、高;xsub、ysub分別為搜索框在人臉候選圖像中的橫縱坐標。根據第l層對齊度極值3σ范圍在第l+1層中對應位置搜索極值,直到完成對尺度金字塔底層圖像搜索得到對齊度矩陣,矩陣中最大的元素坐標即為第i個搜索核在當前幀中的最佳配準位置。以極值鄰域坐標點集N的對齊度對坐標加權,求出加權均值作為最終的匹配點坐標(x′,y′)
(11)

根據5段不同鏡頭拍攝的視頻片段,得到的匹配點坐標與對應搜索核中心位置偏移不超過搜索核的最大邊長,設置形狀約束的閾值,超過閾值時,通過其他匹配點的位移約束較大偏差匹配點坐標。
根據視頻序列中相鄰幀的連續性,相鄰幀中的人臉相對形變量較小,前后兩幀的人臉運動可近似看成剛體變換,提出采用正交強迫一致性(procrustes analysis)算法[15]計算人臉運動參數,對當前視頻幀I2(x,y)進行坐標變換。將前后兩幀圖像的匹配列向量yi,xi分別組成矩陣,Y=(y1,y2,y3,y4),X=(x1,x2,x3,x4)采用奇異值分解[16](single value decomposition,SVD)矩陣XTY得到旋轉矩陣R
XTY=U∑VT,R=UVT
(12)
縮放因子s通過匹配點協方差矩陣的跡得到,即s=tr(∑2)/tr(∑1)。
對當前幀圖像做仿射變換完成由匹配點對圖像的對齊,即
(13)
式中μ1,μ2分別為列向量yi,xi的均值,即匹配點坐標均值,坐標變換后的當前幀作為下一幀圖像的參考圖像。
算法在執行過程中,金字塔底層像素點個數為M×N個,金字塔只有一層時則需要計算M×N次對齊度,金字塔層數為layers層,頂層計算次數是M×N/4layers次,除頂層外各層計算次數均約等于常數次。表1表示金字塔搜索與原圖搜索耗時的實驗結果,實驗硬件采用Intel酷睿i5處理器,內存為6 GB。從表中可以看出,在尺度金字塔中搜索對齊度極值速度遠高于原圖搜索,本文算法在時間效率上有明顯的提升。實驗數據采用5段不同的視頻片段,并將原圖像調整為指定尺寸大小。在表1中原像素點個數是1 k時尺度金字塔層數受搜索核大小影響,層數是1,此時在原圖搜索較快,隨著圖像像素點個數的增加,加速的效果越明顯。當搜索核較大而不能繼續降尺度時,同樣對搜索速度會帶來一定的影響,如表1中像素點個數為20 000的情況。

表1 算法效率
為驗證本文提出的視頻序列人臉配準方法的有效性和實用性,將本文算法與文獻[2]和文獻[5]的視頻人臉對齊算法對比。根據文獻[5]的特征點檢測模型,選擇特征明顯的左眼內眼角點作為參考點,取6次手工標定連續200幀圖像的坐標均值,與3種算法獲得的每幀參考點坐標求歐氏距離,作為點的偏移量。去掉前50幀和后50幀的數據,圖3顯示了各算法的點偏移量結果。

圖3 參考點偏移量實驗結果
對馬克斯普朗克研究所視頻人臉數據庫[17]頭部不動的視頻測試,獲得三種算法匹配點在x方向和y方向上的方差。根據文獻[7]提出的靜態視頻人臉檢驗時,抖動程度越大,檢測點的方差越大,數據顯示,本文算法得到的配準點的橫縱坐標方差(分別為1.23,1.43)均相對較小,有效消除了抖動。
采用Libface人臉檢測方法檢測每種算法處理的視頻結果,得到第一幀圖像人臉位置,并將第一幀中的人臉位置設置為固定矩形參照物。分別截取2段視頻的第1,100,200幀人臉圖像對比,如圖4所示。將固定參照矩形框平均分成4個矩形,將實驗結果的人臉中心區域圖像放大1倍,從實驗結果可看出本文算法實現視頻人臉配準的效果較好,文獻[5]和文獻[2]中人臉配準方法得到的人臉位置均出現較大偏移。

圖4 3種視頻人臉對齊算法實驗結果對比
提出采用圖像配準的方法解決視頻人臉替換的時間不一致性問題,采用降采樣策略加速視頻處理速度,自動完成替換中人臉配準過程,無需人工干預。利用相鄰幀的信息處理視頻,后一幀圖像向前配準保證視頻人臉的時空一致性,降低人眼可察覺的人臉飄動、抖動和錯位。該算法得到的數據呈現了尖銳單峰,有效約束了特征點的抖動,抗噪能力強,為視頻人臉編輯和人臉替換提供一種有效的防抖方法。