楊海迎
(云南機(jī)電職業(yè)技術(shù)學(xué)院 云南省昆明市 650203)
實(shí)驗(yàn)對(duì)于硬件的要求不是很高,我們?cè)趇ntel (R) Core i5 CPU,2G DDR3 的硬件環(huán)境下進(jìn)行實(shí)驗(yàn),在 Window 7 操作系統(tǒng)下即可實(shí)現(xiàn)本文的算法。由于圖像數(shù)據(jù)量大,以字節(jié)型存儲(chǔ),綜合各方面考慮,本文選用Matlab7.0 作為實(shí)驗(yàn)平臺(tái),采用Matlab 編程語(yǔ)言完成算法的實(shí)現(xiàn)。
本文實(shí)驗(yàn)在中科院的CAS-PEAL 人臉數(shù)據(jù)庫(kù)[1]上進(jìn)行。CASPEAL 人臉數(shù)據(jù)庫(kù)包括1040 個(gè)人的正面圖像,男性595 人,女性445 人,每個(gè)人有不同光照、表情、距離、附加物(眼鏡)的正面圖像,一共9954 張圖像。本文采用均勻光照、正常表情下的正面無(wú)附加物人臉庫(kù)Gallery 作為訓(xùn)練集和測(cè)試集,Gallery 總共有1040幅正面圖像,我們隨機(jī)挑選800 幅作為訓(xùn)練集,其余的240 幅作為測(cè)試集。在試驗(yàn)之前,首先要把訓(xùn)練集和測(cè)試集里的正面圖像進(jìn)行預(yù)處理,原始圖像的大小為120×96,因?yàn)槊糠四樁际钦鎴D像,并且包括頭發(fā)、衣服等其他黑色區(qū)域,首先定位到眼睛區(qū)域,再通過(guò)水平投影和垂直投影找到眼睛的最復(fù)雜區(qū)域,即眼球中心,用白點(diǎn)標(biāo)識(shí)。通過(guò)旋轉(zhuǎn)、平移變換,讓所有的圖像的眼睛都在一條線上,裁剪出人臉區(qū)域并縮放成統(tǒng)一大小的人臉圖像。本文經(jīng)過(guò)預(yù)處理后的圖像大小為112×96,裁剪后的人臉如圖1所示。在本文中,下采樣因子為4,下采樣后的低分辨率圖像的尺寸為28×24,GoLPP的迭代終止閾值ξ=0.001。
圖1:圖像預(yù)處理
在殘差補(bǔ)償?shù)膶?shí)驗(yàn)中,我們沒(méi)有采用更多的人臉圖像來(lái)訓(xùn)練,而直接使用訓(xùn)練集中的每一幅圖像作為輸入,用輸入以外的其他訓(xùn)練圖像來(lái)完成全局重建。本文采用均方差(Mean Square Error,MSE)來(lái)和峰值信噪比(Peak Signal to Noise Ratio, PSNR)作為算法性能的評(píng)判標(biāo)準(zhǔn),MSE 的計(jì)算公式定義如下:
其中Ior為測(cè)試圖像It對(duì)應(yīng)的原始高分辨率圖像,Ih為本文的重建圖像,m 和n 分別為高分辨率圖像對(duì)應(yīng)的長(zhǎng)度和寬度,在本文的實(shí)驗(yàn)中,m=112, n=96。從MSE 的定義可以看出,MSE 越小則重建結(jié)果與原始圖像越接近。PSNR 則不同,PSNR 越大,則說(shuō)明與原圖越接近,PSNR 大于30 則說(shuō)明失真很小,與原圖基本上吻合。PSNR 的計(jì)算公式如下:
為了充分說(shuō)明在GoLPP 上加上K 近鄰限制的必要性,我們給K 取不同的值來(lái)驗(yàn)證。另外因?yàn)榛趯W(xué)習(xí)的算法很大程度上依賴于訓(xùn)練集,我們又在不同數(shù)目的訓(xùn)練集下做了試驗(yàn),還分析了不同GoLPP 的特征數(shù)對(duì)實(shí)驗(yàn)結(jié)果的影響。
現(xiàn)有的人臉超分辨率算法大多都只考慮普通人臉圖像(正常光照、中性表情、無(wú)附加物)的重建,本節(jié)也只考慮普通人臉的重建。為驗(yàn)證本文提出的算法的有效性,分別與Bicubic 插值、PCA 方法和LPH 方法做了比較。因?yàn)樵贕oLPP 的基礎(chǔ)上加入了K 近鄰限制,還對(duì)K 近鄰的影響進(jìn)行了分析。GoLPP 是一種降維方法,低維空間的維數(shù)(GoLPP 保留的特征數(shù))如何確定,以及訓(xùn)練樣本集大小對(duì)本文算法的影響,針對(duì)這兩個(gè)問(wèn)題,我們也做了進(jìn)一步的分析。
在CAS_PEAL 人臉數(shù)據(jù)庫(kù)上,我們隨機(jī)選取800 幅正常光照下的人臉圖像作為訓(xùn)練集,其余240 幅作為測(cè)試集。實(shí)驗(yàn)中,高斯函數(shù)的方差σ=128,GoLPP 保留的維數(shù)dim=200,近鄰數(shù)K=10,降采樣因子γ=4,殘差補(bǔ)償過(guò)程中低分辨率殘差塊的大小為3×3,則對(duì)應(yīng)的高分辨率殘差塊的大小為12×12。為了評(píng)判本文算法的優(yōu)劣,我們與幾種經(jīng)典的方法做了比較。實(shí)驗(yàn)結(jié)果如圖2所示。
圖2:實(shí)驗(yàn)結(jié)果比較
從直觀上看,Bicubic 插值的結(jié)果比較模糊,特別在眼睛、鼻子和嘴巴部位尤為突出,這是因?yàn)椴逯捣ㄖ粡妮斎雸D像中獲取信息,而因?yàn)檩斎雸D像本身就已丟失了很多高頻信息,所以插值法不能有效地補(bǔ)充缺失信息。PCA 是一種線性方法,不能夠?qū)W習(xí)出人臉內(nèi)部的非線性信息。PCA 方法重建的人臉圖像在邊緣和嘴巴區(qū)域都比較模糊,整幅圖像都顯得不夠平滑,視覺(jué)效果不好。從肉眼上看,感覺(jué)Zhuang 的LPH 方法和本文提出的方法效果差不多, Zhuang 采用LPP 方法來(lái)提取人臉圖像的潛在特征,LPP 的鄰居圖是人為預(yù)定義的,并不能保證這樣構(gòu)建的圖是最優(yōu)的,而本文的GoLPP 方法則是使用一個(gè)迭代的機(jī)制去求解最優(yōu)權(quán)值,從而得到最優(yōu)變換矩陣,從這個(gè)層面上說(shuō),本文的方法理應(yīng)得到比LPH 方法更好的效果。圖3 列出了Bicubic 插值、PCA 方法、LPH 方法和本文方法的PSNR 和MSE。
圖3:MSE 比較
從圖2 和圖3 可以看出,本文的方法能夠取得很好的重建效果。LPH 方法利用徑向基函數(shù)在LPP 特征子空間重建全局人臉,本文采用加上K 近鄰約束的GoLPP 提取潛在特征,然后用GRNN 得到全局人臉,殘差補(bǔ)償方法使用的都是基于鄰域嵌入的方法。從實(shí)驗(yàn)結(jié)果可以看出,GoLPP 方法更為合理,它的權(quán)值分布是服從高斯分布的。PCA 方法不能有效發(fā)掘數(shù)據(jù)潛在的非線性結(jié)構(gòu),重建的效果有局限。Bicubic 插值方法得到的結(jié)果過(guò)于模糊。
出于時(shí)間效率方面的考慮,我們選取400 幅訓(xùn)練圖像來(lái)完成這部分實(shí)驗(yàn),其余640 幅圖像用于測(cè)試。GoLPP 中初始權(quán)值的賦值參數(shù)σ=128,經(jīng)過(guò)GoLPP 降維后,保留的維數(shù)為200。圖4 分別列出了K=5、K=15、K=50、K=100 和K=400(不加K 近鄰限制的GoLPP)得到的實(shí)驗(yàn)結(jié)果。
圖4:不同取值的K 對(duì)應(yīng)的重建結(jié)果
在人臉超分辨率重建中,過(guò)多的鄰居只會(huì)導(dǎo)致重建的圖像缺失自身特有的信息,當(dāng)K=400 時(shí),也就是全部圖像都加入到鄰居圖的構(gòu)建,雖然還是能夠重建出人的相貌特征,但是卻不夠平滑,并且有冗余信息,導(dǎo)致圖像的視覺(jué)效果很差,在K=100 和K=300 時(shí)也體現(xiàn)了這一點(diǎn)。也就是說(shuō)基于GoLPP 在人臉超分辨率重建中,給鄰居圖的構(gòu)建加上K 近鄰約束是必要的,并且鄰居數(shù)超過(guò)一定范圍后只會(huì)導(dǎo)致效果變差。圖5列出了隨K值的增加MSE的變化過(guò)程。
圖5:鄰居數(shù)K 對(duì)實(shí)驗(yàn)結(jié)果的影響
從圖5 可以看出,當(dāng)K 取值介于[10,20]之間時(shí),MSE 最小,而MSE 越小,說(shuō)明結(jié)果圖像與原圖越接近。當(dāng)K=400 時(shí),MSE 為488,與原圖相差太大,也說(shuō)明了一個(gè)事實(shí):GoLPP 用于人臉超分辨率中應(yīng)該加上K 近鄰限制,且K 的值不宜太大。在比較了K 取不同值對(duì)應(yīng)的實(shí)驗(yàn)結(jié)果后,本文后面的實(shí)驗(yàn)均取K=10。
基于學(xué)習(xí)的超分辨率算法很大程度上依賴于訓(xùn)練集的選取,一般情況而言,訓(xùn)練樣本數(shù)越多,重建效果越好。本文也是在基于學(xué)習(xí)的方法上來(lái)完成超分辨率重建的,也避免不了這個(gè)問(wèn)題,圖6 給出了訓(xùn)練樣本數(shù)分別為400、600、800、1000 時(shí)候的實(shí)驗(yàn)結(jié)果。
圖6:不同大小的訓(xùn)練樣本集的重建結(jié)果
圖6 中,N 表示訓(xùn)練樣本數(shù),當(dāng)N=400 是,重建的人臉略為平滑,但是重建效果也很不錯(cuò),與N=500、600的差不多,到N>700 后,可以看到在亮度和一些細(xì)節(jié)上有些許改善,但也是不太明顯。光從肉眼看,我們很難分辨出隨著N 的增大,效果是否變好。圖2.5 列出了隨著訓(xùn)練樣本數(shù)增大,所對(duì)應(yīng)的PSNR 的變化情況。
PSNR 越大,說(shuō)明重建圖像失真越小,越接近原始圖像。從上圖我們可以看到,當(dāng)訓(xùn)練樣本數(shù)小于400 時(shí),PSNR 值均小于28,并且隨著樣本數(shù)的增加,PSNR 上升很快。當(dāng)N>600 后,PSNR 增幅明顯減緩,并且在N=700 處有輕微下降。圖7 說(shuō)明,一般情況下,訓(xùn)練樣本數(shù)越多,重建效果越好,但是當(dāng)達(dá)到一定上限后,增幅將會(huì)變小。在本實(shí)驗(yàn)中,最佳訓(xùn)練樣本數(shù)為800,當(dāng)大于800 后,PSNR 值會(huì)有少許波動(dòng)。本文提出的方法在訓(xùn)練樣本數(shù)很小的情況下也能有效重建人臉圖像,對(duì)訓(xùn)練樣本數(shù)目不太敏感。
圖7:訓(xùn)練樣本數(shù)對(duì)重建結(jié)果的影響
基于PCA 的人臉超分辨率方法的重建結(jié)果會(huì)受到主成分個(gè)數(shù)的影響,GoLPP 也是一種降維方法,重建的結(jié)果也會(huì)受到保留的特征數(shù)的影響。假設(shè)GoLPP 保留的特征數(shù)為dim,表1 列出了GoLPP 保留的特征數(shù)對(duì)重建結(jié)果的影響。
表1: GoLPP 保留的特征數(shù)對(duì)重建結(jié)果的影響
當(dāng)dim取值太小時(shí),也就是GoLPP保留的特征數(shù)很少的情況下,重建的圖像包含的細(xì)節(jié)特征不足,會(huì)丟失很多高頻信息。而當(dāng)dim太大時(shí),GoLPP 保留的特征就會(huì)出現(xiàn)冗余,當(dāng)達(dá)到一定的特征數(shù)后,更多的特征并不會(huì)改善實(shí)驗(yàn)結(jié)果,反而會(huì)加大計(jì)算量。從表1 可以看出,當(dāng)訓(xùn)練樣本數(shù)為400 時(shí),GoLPP 保留的特征數(shù)大于160 后,重建結(jié)果就不會(huì)隨著dim 的增加而改善了。圖8所示是GoLPP 保留不同的特征數(shù)dim 對(duì)應(yīng)的重建結(jié)果??梢钥闯?,當(dāng)dim=25 時(shí),重建的人臉圖像的邊緣有模糊,在dim=50 的時(shí)候有有輕微的模糊,這種情況在dim=100 時(shí)就不太明顯了。通過(guò)實(shí)驗(yàn),我們發(fā)現(xiàn)特征數(shù)應(yīng)該取160 以上,在本文算法的實(shí)現(xiàn)過(guò)程中,我們?nèi)im=200。
圖8:不同特征數(shù)的重建結(jié)果
在現(xiàn)實(shí)生活中,很大一部分人是戴眼鏡的,或者捕捉到的圖像是帶有表情的,目前大多數(shù)的人臉超分辨率算法都沒(méi)有考慮眼鏡和表情等情況。本文在800 幅中性表情、無(wú)眼鏡的訓(xùn)練集上來(lái)嘗試重建這兩類人臉圖像。
本文在CAS-PEAL 人臉數(shù)據(jù)庫(kù)中挑選了20 幅戴眼鏡的人臉圖像來(lái)做測(cè)試,這20 個(gè)人都不在訓(xùn)練集中。因?yàn)槲覀兊挠?xùn)練集里并不包含戴眼鏡的圖片,我們希望能夠通過(guò)本文的算法重建出測(cè)試圖像沒(méi)戴眼鏡時(shí)對(duì)應(yīng)的高分辨率圖像。
圖9 給出了測(cè)試圖像戴眼鏡時(shí)對(duì)應(yīng)的重建結(jié)果。由于基于學(xué)習(xí)的方法很大程度上都依賴于訓(xùn)練集,訓(xùn)練集沒(méi)有眼鏡,也就很難重建出眼鏡來(lái)。PCA 和LPH 方法也有去眼鏡的功能,但是因?yàn)镻CA不能有效重建出人臉的非線性信息,重建的結(jié)果很不平滑,特別是在眼睛和輪廓部分。LPH 的重建結(jié)果比PCA 方法好很多,LPH 的核心算法是LPP,LPP 的轉(zhuǎn)換矩陣并不能保證是最優(yōu)的,對(duì)重建結(jié)果必然會(huì)造成影響,在輪廓部分還不夠平滑。GoLPP 可以自適應(yīng)地找出最優(yōu)矩陣,所以本文提出的算法在眼睛恢復(fù)方面也是優(yōu)于LPH方法和PCA 方法的。
圖9:戴眼鏡的人臉圖像重建
在CAS-PEAL 人臉數(shù)據(jù)庫(kù)中,有一部分人是有不同表情時(shí)候的照片的,我們?cè)诶锩嬲伊?0 幅帶表情的圖像來(lái)進(jìn)行測(cè)試,這20個(gè)人沒(méi)有照片在訓(xùn)練集中。仍然是使用800 幅中性圖像作為訓(xùn)練集,這800 幅圖像都是中性表情。圖10 給出了帶表情圖像的重建結(jié)果??梢钥闯觯疚奶岢龅乃惴ㄟ€能有效重建帶表情的圖像,效果也是明顯好于PCA 方法的重建結(jié)果,略好于LPH 方法。
圖10:帶表情的人臉圖像重建
實(shí)驗(yàn)表明,本文提出的算法具有較好的魯棒性,在訓(xùn)練集為中性表情、沒(méi)有附加物的情況下,能夠有效地去除眼鏡,重建人臉的眼睛部分,并且能夠有效地重建出帶表情的人臉圖像。
本章首先介紹了實(shí)現(xiàn)本文算法的實(shí)驗(yàn)條件和實(shí)驗(yàn)結(jié)果的評(píng)判依據(jù),并給出了相關(guān)的實(shí)驗(yàn)結(jié)果。通過(guò)一系列的實(shí)驗(yàn)分析了K 近鄰、訓(xùn)練樣本數(shù)和GoLPP 特征數(shù)對(duì)算法的影響,并給出比較合理的取值范圍。實(shí)驗(yàn)表明,本文提出的算法能夠適用訓(xùn)練集較小的情況,對(duì)表情和眼鏡具有魯棒性,比Bicubic 插值、PCA 方法和LPH 方法更能有效重建高分辨率人臉圖像。