王小芳, 項(xiàng)國(guó)強(qiáng), 魏 瑋
(河北工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與軟件學(xué)院,天津 300401)
人臉配準(zhǔn)是圖像配準(zhǔn)[1]應(yīng)用的重要分支,在人臉識(shí)別、人臉美化與編輯、人臉替換和攝影等應(yīng)用中人臉配準(zhǔn)的優(yōu)劣對(duì)最終效果具有直接的影響。
在實(shí)際應(yīng)用中,通過(guò)特征提取和跟蹤實(shí)現(xiàn)視頻人臉圖像的配準(zhǔn)得到廣泛的體現(xiàn)。Afifi M等人[2]提出了一種視頻人臉配準(zhǔn)算法,采用KLT角點(diǎn)跟蹤獲取相鄰幀的穩(wěn)定點(diǎn)坐標(biāo),根據(jù)MSAC算法估計(jì)相鄰幀的坐標(biāo)變換矩陣,由于光照、噪聲等因素的干擾,KLT跟蹤點(diǎn)位置出現(xiàn)不同程度的偏移,采用配準(zhǔn)的數(shù)據(jù)對(duì)圖像做坐標(biāo)變換人臉出現(xiàn)抖動(dòng)(flicker)現(xiàn)象。Dale K等人[3]采用手工標(biāo)定和光流法獲取匹配點(diǎn)坐標(biāo),但校準(zhǔn)匹配點(diǎn)的人工交互較多,配準(zhǔn)的精度受人為因素影響較多。Sariyanidi E等人[4]提出采用最優(yōu)化策略和統(tǒng)計(jì)學(xué)習(xí)方法配準(zhǔn)視頻序列前后幀人臉,保證了視頻人臉的時(shí)間一致性,采用誤差正反向傳遞的迭代算法時(shí)間效率較低。鐘千里[5]根據(jù)ASM人臉特征點(diǎn)配準(zhǔn)人臉,在圖片中取得了不錯(cuò)的效果,但忽略了視頻序列前后幀的聯(lián)系,在視頻中出現(xiàn)抖動(dòng)現(xiàn)象;姚震[6]采用ASM特征點(diǎn)定位方法,并根據(jù)Mean-Shift算法跟蹤特征點(diǎn),由于光照等干擾,需要不斷修正跟蹤點(diǎn)位置。文獻(xiàn)[7]通過(guò)實(shí)驗(yàn)論證了人臉特征點(diǎn)檢測(cè)和跟蹤的方法在視頻序列中人臉位置定量檢測(cè)時(shí)不能保證人臉位置的時(shí)間一致性。
本文提出根據(jù)圖像最大相似度配準(zhǔn)視頻序列人臉的方法。以配準(zhǔn)的前一幀圖像為參考,將后一幀圖像作為待配準(zhǔn)圖像,以參考圖像與待配準(zhǔn)圖像中人臉最大相似度的位置作為配準(zhǔn)的精確位置,計(jì)算配準(zhǔn)時(shí)的坐標(biāo)變換參數(shù),對(duì)待配準(zhǔn)做坐標(biāo)變換。
視頻序列人臉配準(zhǔn)目的是空域的人臉五官及膚色在時(shí)域中具有連續(xù)性,使得前后兩幀對(duì)應(yīng)位置具有相同的色彩和紋理,配準(zhǔn)后的人臉在時(shí)間序列上形成一條與坐標(biāo)軸平行的“管道”。配準(zhǔn)的關(guān)鍵在于特征精確定位,根據(jù)視頻序列的連續(xù)性,相鄰兩幀人臉圖像的尺度、平移和旋轉(zhuǎn)具有穩(wěn)定性,利用前一幀圖像信息在當(dāng)前幀圖像中搜索得到最佳匹配位置,進(jìn)而完成當(dāng)前幀的坐標(biāo)變換。圖1為視頻人臉配準(zhǔn)的流程,考慮到視頻序列的連續(xù)性,采用后一幀圖像向前一幀圖像配準(zhǔn),通過(guò)尺度金字塔加速計(jì)算兩幀圖像的相似度,得到匹配點(diǎn)對(duì),通過(guò)普氏分析法計(jì)算仿射變換的參數(shù),最后對(duì)待配準(zhǔn)圖像做坐標(biāo)變換。
圖1 算法框圖
在匹配過(guò)程中均值和方差計(jì)算是主要計(jì)算手段。色彩和灰度變化較大的非膚色區(qū)域像素的方差相對(duì)純膚色區(qū)域差異較大,是匹配的有效數(shù)據(jù)。人臉膚色像素點(diǎn)數(shù)目較多且分布集中,灰度的方差較小,根據(jù)統(tǒng)計(jì)學(xué)原理,像素?cái)?shù)目相對(duì)較多且差異性較小的膚色像素點(diǎn)會(huì)減小灰度的方差,導(dǎo)致誤匹配。本文提出最大梯度采樣方法,獲取人臉灰度變化較大的像素塊用于匹配。
采用監(jiān)督下降方法[8](supervised descent method,SDM)人臉特征點(diǎn)定位算法分別得到前一幀參考圖像I1(x,y)和當(dāng)前待配準(zhǔn)圖像I2(x,y)的人臉特征點(diǎn),根據(jù)特征點(diǎn)得到圖像I1(x,y)的五官像素塊和圖像I2(x,y)的人臉候選區(qū)域圖像。圖2(a)中顯示人臉特征點(diǎn)位置,采用文獻(xiàn)[9]提出的人臉膚色提取方法在額頭膚色區(qū)域自適應(yīng)地插入三個(gè)點(diǎn)。連接外圍輪廓點(diǎn)得到邊緣不平滑的人臉區(qū)域,在特征點(diǎn)間插值減少人臉信息損失,通過(guò)迭代平滑人臉輪廓,得到人臉候選區(qū)域F2(x,y),將人臉輪廓構(gòu)造成邊緣光滑的多邊形,橫坐標(biāo)插值通過(guò)0.618法得到,即
(1)
相鄰幀人臉通常具有微小的運(yùn)動(dòng),幀率為25 fps的視頻通過(guò)幀差法檢測(cè)到的人臉運(yùn)動(dòng)平均介于0~3個(gè)像素,Viola P等人[10]提出視頻中相對(duì)較小且進(jìn)行微小位移的子圖像可近似看作剛體變換。根據(jù)梯度最大原則對(duì)I1(x,y)做采樣,得到灰度變化大的像素塊G1(x,y)與五官像素塊F1,iblock(x,y)的交集作為搜索核kerneli(x,y),即
kerneli(x,y)=F1,iblock(x,y)∩G1(x,y)
(2)
求交運(yùn)算得出的像素點(diǎn)采用K均值聚類得到四個(gè)簇,其邊緣構(gòu)成不規(guī)則圖形,在不損失有效數(shù)據(jù)的前提下,取每個(gè)簇的最小外接矩形,將搜索核規(guī)整為規(guī)則的矩形。在眨眼時(shí),眼部周圍像素點(diǎn)個(gè)數(shù)較少,通過(guò)范圍擴(kuò)大至眉心上邊緣增大搜索核尺寸。
圖2 臉部區(qū)域及搜索核
搜索最佳配準(zhǔn)點(diǎn)需要遍歷圖像的所有像素,隨著圖像尺寸增大,算法的時(shí)間復(fù)雜度成倍增長(zhǎng)。根據(jù)圖像像素的局部連續(xù)性,對(duì)人臉候選區(qū)和搜索核同時(shí)進(jìn)行降尺度處理,構(gòu)造尺度金字塔。尺度金字塔塔底為原圖像,從底層向上,每層圖像均由下層圖像下采樣得到。在搜索過(guò)程中,每個(gè)核在人臉區(qū)域搜索后結(jié)果表現(xiàn)為單峰,或有顯著差異的雙峰,保證了在尺度金字塔中極值搜索的有效性。
為保證準(zhǔn)確定位相鄰層像素對(duì)應(yīng)關(guān)系,避免丟失圖像細(xì)節(jié)信息,采樣保留偶數(shù)行和偶數(shù)列的像素點(diǎn),人臉候選區(qū)域圖像F2(x,y)在尺度金字塔第l層的圖像F2,l(x,y)通過(guò)對(duì)第l+1層采樣得到
(3)
對(duì)圖像F2(x,y)進(jìn)行下采樣時(shí),對(duì)每個(gè)搜索核進(jìn)行相同處理,搜索核的尺寸決定尺度金字塔的層數(shù),設(shè)所有核的最小尺寸為Mker×Nker,尺度金字塔頂最小核為r×c,金字塔層數(shù)layers由式(4)得出
(4)
匹配度函數(shù)是影響配準(zhǔn)精度的重要元素,王東峰等人[11]提出的圖像對(duì)齊度準(zhǔn)則因?qū)σ曨l中光照和攝像機(jī)噪聲不敏感得到了廣泛的應(yīng)用[12~14]。采用對(duì)齊度搜索方法,根據(jù)搜索核與候選區(qū)域?qū)?yīng)關(guān)系分別計(jì)算每個(gè)核與搜索框內(nèi)圖像SubI2(x,y)的對(duì)齊度(alignment metric,AM),用以描述搜索核與搜索框圖像的相似程度。子圖像kerneli(x,y)和SubI2(x,y)各灰度級(jí)像素個(gè)數(shù)分別存儲(chǔ)在H1[256]和H2[256]中,每個(gè)灰度級(jí)出現(xiàn)的概率分別存儲(chǔ)在p1[256]和p2[256]中。文獻(xiàn)[11]定義了圖像灰度的相對(duì)均值,即圖像kerneli(x,y)灰度級(jí)為n的像素坐標(biāo)集合對(duì)應(yīng)SubI2(x,y)位置上像素點(diǎn)集的灰度之和與坐標(biāo)集合元素個(gè)數(shù)H1[n]的比值,公式描述如下
(5)
圖像kerneli(x,y)相對(duì)SubI2(x,y)在灰度級(jí)為n時(shí)的方差的計(jì)算式為
(6)
對(duì)灰度方差分別以灰度級(jí)n在兩幅圖像中出現(xiàn)的概率加權(quán)求和,得到兩個(gè)期望方差,即
(7)
(8)
搜索過(guò)程中搜索核圖像kerneli(x,y)和搜索框內(nèi)圖像SubI2(x,y)的對(duì)齊度
AMi(kerneli(x,y),SubI2(x,y))=
(9)
從金字塔頂層開(kāi)始搜索,每次搜索時(shí)構(gòu)造與人臉候選圖像相同尺寸的矩陣D,用于存儲(chǔ)計(jì)算得到的對(duì)齊度。通過(guò)式(9)可得第i個(gè)搜索核與搜索框內(nèi)圖像匹配時(shí)的對(duì)齊度,將得到的對(duì)齊度寫(xiě)入到矩陣D與搜索框圖像SubI2(x,y)的中心點(diǎn)center對(duì)應(yīng)位置,即
Dcenter=AMi(kerneli(x,y),SubI2(x,y)),
(10)
式中wsub和hsub分別為圖像SubI2(x,y)的寬、高;xsub、ysub分別為搜索框在人臉候選圖像中的橫縱坐標(biāo)。根據(jù)第l層對(duì)齊度極值3σ范圍在第l+1層中對(duì)應(yīng)位置搜索極值,直到完成對(duì)尺度金字塔底層圖像搜索得到對(duì)齊度矩陣,矩陣中最大的元素坐標(biāo)即為第i個(gè)搜索核在當(dāng)前幀中的最佳配準(zhǔn)位置。以極值鄰域坐標(biāo)點(diǎn)集N的對(duì)齊度對(duì)坐標(biāo)加權(quán),求出加權(quán)均值作為最終的匹配點(diǎn)坐標(biāo)(x′,y′)
(11)
根據(jù)5段不同鏡頭拍攝的視頻片段,得到的匹配點(diǎn)坐標(biāo)與對(duì)應(yīng)搜索核中心位置偏移不超過(guò)搜索核的最大邊長(zhǎng),設(shè)置形狀約束的閾值,超過(guò)閾值時(shí),通過(guò)其他匹配點(diǎn)的位移約束較大偏差匹配點(diǎn)坐標(biāo)。
根據(jù)視頻序列中相鄰幀的連續(xù)性,相鄰幀中的人臉相對(duì)形變量較小,前后兩幀的人臉運(yùn)動(dòng)可近似看成剛體變換,提出采用正交強(qiáng)迫一致性(procrustes analysis)算法[15]計(jì)算人臉運(yùn)動(dòng)參數(shù),對(duì)當(dāng)前視頻幀I2(x,y)進(jìn)行坐標(biāo)變換。將前后兩幀圖像的匹配列向量yi,xi分別組成矩陣,Y=(y1,y2,y3,y4),X=(x1,x2,x3,x4)采用奇異值分解[16](single value decomposition,SVD)矩陣XTY得到旋轉(zhuǎn)矩陣R
XTY=U∑VT,R=UVT
(12)
縮放因子s通過(guò)匹配點(diǎn)協(xié)方差矩陣的跡得到,即s=tr(∑2)/tr(∑1)。
對(duì)當(dāng)前幀圖像做仿射變換完成由匹配點(diǎn)對(duì)圖像的對(duì)齊,即
(13)
式中μ1,μ2分別為列向量yi,xi的均值,即匹配點(diǎn)坐標(biāo)均值,坐標(biāo)變換后的當(dāng)前幀作為下一幀圖像的參考圖像。
算法在執(zhí)行過(guò)程中,金字塔底層像素點(diǎn)個(gè)數(shù)為M×N個(gè),金字塔只有一層時(shí)則需要計(jì)算M×N次對(duì)齊度,金字塔層數(shù)為layers層,頂層計(jì)算次數(shù)是M×N/4layers次,除頂層外各層計(jì)算次數(shù)均約等于常數(shù)次。表1表示金字塔搜索與原圖搜索耗時(shí)的實(shí)驗(yàn)結(jié)果,實(shí)驗(yàn)硬件采用Intel酷睿i5處理器,內(nèi)存為6 GB。從表中可以看出,在尺度金字塔中搜索對(duì)齊度極值速度遠(yuǎn)高于原圖搜索,本文算法在時(shí)間效率上有明顯的提升。實(shí)驗(yàn)數(shù)據(jù)采用5段不同的視頻片段,并將原圖像調(diào)整為指定尺寸大小。在表1中原像素點(diǎn)個(gè)數(shù)是1 k時(shí)尺度金字塔層數(shù)受搜索核大小影響,層數(shù)是1,此時(shí)在原圖搜索較快,隨著圖像像素點(diǎn)個(gè)數(shù)的增加,加速的效果越明顯。當(dāng)搜索核較大而不能繼續(xù)降尺度時(shí),同樣對(duì)搜索速度會(huì)帶來(lái)一定的影響,如表1中像素點(diǎn)個(gè)數(shù)為20 000的情況。
表1 算法效率
為驗(yàn)證本文提出的視頻序列人臉配準(zhǔn)方法的有效性和實(shí)用性,將本文算法與文獻(xiàn)[2]和文獻(xiàn)[5]的視頻人臉對(duì)齊算法對(duì)比。根據(jù)文獻(xiàn)[5]的特征點(diǎn)檢測(cè)模型,選擇特征明顯的左眼內(nèi)眼角點(diǎn)作為參考點(diǎn),取6次手工標(biāo)定連續(xù)200幀圖像的坐標(biāo)均值,與3種算法獲得的每幀參考點(diǎn)坐標(biāo)求歐氏距離,作為點(diǎn)的偏移量。去掉前50幀和后50幀的數(shù)據(jù),圖3顯示了各算法的點(diǎn)偏移量結(jié)果。
圖3 參考點(diǎn)偏移量實(shí)驗(yàn)結(jié)果
對(duì)馬克斯普朗克研究所視頻人臉數(shù)據(jù)庫(kù)[17]頭部不動(dòng)的視頻測(cè)試,獲得三種算法匹配點(diǎn)在x方向和y方向上的方差。根據(jù)文獻(xiàn)[7]提出的靜態(tài)視頻人臉檢驗(yàn)時(shí),抖動(dòng)程度越大,檢測(cè)點(diǎn)的方差越大,數(shù)據(jù)顯示,本文算法得到的配準(zhǔn)點(diǎn)的橫縱坐標(biāo)方差(分別為1.23,1.43)均相對(duì)較小,有效消除了抖動(dòng)。
采用Libface人臉檢測(cè)方法檢測(cè)每種算法處理的視頻結(jié)果,得到第一幀圖像人臉位置,并將第一幀中的人臉位置設(shè)置為固定矩形參照物。分別截取2段視頻的第1,100,200幀人臉圖像對(duì)比,如圖4所示。將固定參照矩形框平均分成4個(gè)矩形,將實(shí)驗(yàn)結(jié)果的人臉中心區(qū)域圖像放大1倍,從實(shí)驗(yàn)結(jié)果可看出本文算法實(shí)現(xiàn)視頻人臉配準(zhǔn)的效果較好,文獻(xiàn)[5]和文獻(xiàn)[2]中人臉配準(zhǔn)方法得到的人臉位置均出現(xiàn)較大偏移。
圖4 3種視頻人臉對(duì)齊算法實(shí)驗(yàn)結(jié)果對(duì)比
提出采用圖像配準(zhǔn)的方法解決視頻人臉替換的時(shí)間不一致性問(wèn)題,采用降采樣策略加速視頻處理速度,自動(dòng)完成替換中人臉配準(zhǔn)過(guò)程,無(wú)需人工干預(yù)。利用相鄰幀的信息處理視頻,后一幀圖像向前配準(zhǔn)保證視頻人臉的時(shí)空一致性,降低人眼可察覺(jué)的人臉飄動(dòng)、抖動(dòng)和錯(cuò)位。該算法得到的數(shù)據(jù)呈現(xiàn)了尖銳單峰,有效約束了特征點(diǎn)的抖動(dòng),抗噪能力強(qiáng),為視頻人臉編輯和人臉替換提供一種有效的防抖方法。