本發(fā)明涉圖像識別領(lǐng)域,特別涉及一種人臉矯正方法及系統(tǒng),有效解決實際場景中多偏轉(zhuǎn)角度人臉的矯正問題。
背景技術(shù):
在計算機視覺領(lǐng)域,人臉識別一直以來都在學術(shù)界和工業(yè)界的應用廣泛。學術(shù)上的熱門和工業(yè)市場的迫切需求,使得圍繞該方向的核心技術(shù)自深度學習爆發(fā)以來,得到了更為迅猛的發(fā)展。得益于深度學習,當前計算機對人臉屬性的分析判斷在某些(姿態(tài)、光照)限制條件下已經(jīng)媲美甚至超越人類,但是如何在非限制條件下,使計算機獲取和人類一樣,從姿態(tài)萬千的人臉圖像中依然能夠進行識別的能力,是一項非常具有挑戰(zhàn)性的工作。其中,人臉矯正是人臉屬性分析中至關(guān)重要的一步,能夠直接影響整體性能的好壞。在深度學習之前就有許多優(yōu)秀的方法被提出,比如,ASM算法和AAM算法,這些方法能夠在人臉變化不大的條件下取得比較好的效果,但是對于一些發(fā)生遮擋或者姿態(tài)角度偏大的情況就差強人意了;在深度學習出來之后,一些基于深度學習的方法雖然能夠解決上述部分問題,但是對姿態(tài)角度偏大的情況仍然無能為力。
而利用3D人臉可變模型來解決2D圖像中姿態(tài)角度偏大問題,該方法能夠使3D人臉模型“學習”2D圖像中人臉在拍照時候的姿勢狀態(tài)。給神經(jīng)網(wǎng)絡(luò)輸入通用正面人臉模板模型和2D圖像,神經(jīng)網(wǎng)絡(luò)識別獲取圖像中人臉的姿態(tài)角度參數(shù)矩陣,利用這些參數(shù)就可以使模型“做出”和圖像中人臉同樣的臉部朝向。
但是實際場景中,很多時候都是非正面的;還有方式是多角度人臉識別技術(shù)。該技術(shù)包含兩個核心部分,表示學習和圖像生成。表示學習是指在某一個場景下獲取的多張不同姿態(tài)的圖像,將這些圖像作為輸入,通過提出的DR-GAN網(wǎng)絡(luò)模型,產(chǎn)生一個固定長度的特征向量,該向量表示的是這個人的特征,與姿態(tài)光照無關(guān),同時該網(wǎng)絡(luò)還可以根據(jù)輸入的Noise/Pose編碼,生成不同姿態(tài)的人臉。
基于上述,現(xiàn)有的人臉矯正技術(shù)具體包括步驟:通過人臉檢測,找到雙眼的位置,然后根據(jù)坐標,找到旋轉(zhuǎn)角度,然后進行旋轉(zhuǎn)。比如,基于兩眼球中心的兩點相似變換,缺點為:對于偏轉(zhuǎn)角較大的人臉,會使得人臉拉的過長,額頭或下巴部分很容易超出預設(shè)圖片大小。對于偏轉(zhuǎn)角度特別大的人臉可能只有單側(cè)臉可見。又比如,基于兩眼球中心和鼻尖的三點仿射變換,缺點為:容易使人臉變形,對于角度特別大的人臉可能只有單側(cè)臉可見。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是,解決實際場景中多偏轉(zhuǎn)角度人臉的矯正問題。
解決上述技術(shù)問題,本發(fā)明提供了一種人臉矯正方法包括如下步驟:
設(shè)置一標準臉,得到標準點,所述標準點至少包括:左眼球中心、右眼球中心、鼻尖、左嘴角和右嘴角的5個特征點;
從上述標準點中選擇不同特征點,對輸入的不同偏轉(zhuǎn)角度的人臉使用不同計算相似變換參數(shù)的方式,對多偏轉(zhuǎn)角度的人臉進行矯正;
當偏轉(zhuǎn)角在第一偏轉(zhuǎn)角度閾值內(nèi),則采用基于左右兩眼球中心的坐標計算相似變換的參數(shù);
當偏轉(zhuǎn)角在第二偏轉(zhuǎn)角度閾值內(nèi),則采用基于兩眼球的中間的坐標和兩嘴角中間的坐標計算相似變換的參數(shù);
當偏轉(zhuǎn)角在第三偏轉(zhuǎn)角度閾值內(nèi),則采用基于單側(cè)特征點計算相似變換參數(shù)。
更進一步,所述第二偏轉(zhuǎn)角度閾值為:30~60度,基于兩眼球中間的坐標和兩嘴角與鼻尖三點中間的坐標的兩點相似變換,具體所要求的方程組如下:
根據(jù)所述參數(shù)r,θ以及tx,ty對原人臉圖片進行寬為Wdst和高為Hdst的相似變換。
更進一步,所述第三偏轉(zhuǎn)角度閾值為:60~90度,基于單側(cè)的眼球中心坐標、單側(cè)的嘴角坐標的兩點相似變換,具體要求左側(cè)臉所要求的方程組如下:
右側(cè)臉所要求的方程組如下:
根據(jù)所述參數(shù)r,θ,tx,ty對原人臉圖片進行寬為Wdst和高為Hdst的相似變換。
更進一步,所述第一偏轉(zhuǎn)角度閾值為:0~30度,基于左右兩個眼球的兩點相似變換,具體要求的方程組如下:
根據(jù)所述參數(shù)r,θ,tx,ty對原人臉圖片進行寬為Wdst和高為Hdst的相似變換。
更進一步,所述相似變換進一步包括:
平移變換,包括在坐標軸上的tx,ty兩個參數(shù),分別代表兩個方向上的平移量;用以進行位置的變換;
尺度變換,包括尺度參數(shù)r,代表圖片的放大縮小系數(shù);旋轉(zhuǎn)變換指的是圖片的旋轉(zhuǎn),有旋轉(zhuǎn)參數(shù)θ,代表旋轉(zhuǎn)的角度,用以進行圖片的放大或者縮小。
更進一步,所述相似變換包括:對圖片進行至少平移變換、尺度變換、旋轉(zhuǎn)變換中一種或多種的變換的變換。
更進一步,所述采用基于單側(cè)特征點計算相似變換參數(shù)至少包括如下兩組參數(shù):
{左眼球中心、鼻尖、左嘴角}
{右眼球中心、鼻尖、右嘴角}。
更進一步,所述第一偏轉(zhuǎn)角度閾值、第二偏轉(zhuǎn)角度閾值以及第三偏轉(zhuǎn)角度閾值內(nèi)屬于{0-90°}的集合。
本發(fā)明還提供了一種人臉識別方法,還包括所述的人臉矯正方法。
基于上述方法,本發(fā)明還提供了一種人臉矯正系統(tǒng),包括:標準化單元、角度判斷單元、第一矯正單元、第二矯正單元、第三矯正單元,
所述標準化單元,用以設(shè)置一標準臉,得到標準點,所述標準點至少包括:左眼球中心、右眼球中心、鼻尖、左嘴角和右嘴角的5個特征點;
所述角度判斷單元,用以從上述標準點中選擇不同特征點,對輸入的不同偏轉(zhuǎn)角度的人臉使用不同計算相似變換參數(shù)的方式,對多偏轉(zhuǎn)角度的人臉進行矯正;
所述第一矯正單元,用以當偏轉(zhuǎn)角在第一偏轉(zhuǎn)角度閾值內(nèi),則采用基于左右兩眼球中心的坐標計算相似變換的參數(shù);
所述第二矯正單元,用以當偏轉(zhuǎn)角在第二偏轉(zhuǎn)角度閾值內(nèi),則采用基于兩眼球的中間的坐標和兩嘴角中間的坐標計算相似變換的參數(shù);
所述第三矯正單元,用以當偏轉(zhuǎn)角在第三偏轉(zhuǎn)角度閾值內(nèi),則采用基于單側(cè)特征點計算相似變換參數(shù)。
本發(fā)明的有益效果:
本發(fā)明是在已經(jīng)獲得人臉5個特征點的基礎(chǔ)上,通過5個特征點的關(guān)系,計算人臉的偏轉(zhuǎn)角度,針對不同的偏轉(zhuǎn)角度用不同的特征點計算相似變換的參數(shù),從而對人臉進行基于相似變換地矯正,進而有效解決實際場景中多偏轉(zhuǎn)角度的人臉矯正問題。采用本發(fā)明的方法不會使人臉變形;對于偏轉(zhuǎn)角度較大的人臉不會使人臉過長;設(shè)立了對于偏轉(zhuǎn)角度特別大以至于只含有單側(cè)特征點的人臉的矯正標準。此外,本發(fā)明根據(jù)不同偏轉(zhuǎn)角度使用不同人臉矯正策略,以及30-60偏轉(zhuǎn)角度和60-90偏轉(zhuǎn)角度的人臉矯正策略。
附圖說明
圖1是本發(fā)明一實施例中的方法流程示意圖;
圖2是本發(fā)明一優(yōu)選實施例中的方法流程示意圖;
圖3是本發(fā)明一實施例中的系統(tǒng)結(jié)構(gòu)示意圖;
圖4為本發(fā)明中偏轉(zhuǎn)角小于30度人臉的矯正前后效果示意圖;
圖5為偏轉(zhuǎn)角大于30度小于60度人臉的分別在矯正之前、用兩眼計算變換參數(shù)和用本發(fā)明的方法計算變換參數(shù)的對比圖;
圖6為本發(fā)明中偏轉(zhuǎn)角大于60度左側(cè)人臉的矯正前后的效果示意圖;
圖7為本發(fā)明中大于60度右側(cè)人臉的矯正前后的效果示意圖。
具體實施方式
現(xiàn)在將參考一些示例實施例描述本公開的原理??梢岳斫?,這些實施例僅出于說明并且?guī)椭绢I(lǐng)域的技術(shù)人員理解和實施例本公開的目的而描述,而非建議對本公開的范圍的任何限制。在此描述的本公開的內(nèi)容可以以下文描述的方式之外的各種方式實施。
如本文中所述,術(shù)語“包括”及其各種變體可以被理解為開放式術(shù)語,其意味著“包括但不限于”。術(shù)語“基于”可以被理解為“至少部分地基于”。術(shù)語“一個實施例”可以被理解為“至少一個實施例”。術(shù)語“另一實施例”可以被理解為“至少一個其它實施例”。
本領(lǐng)域技術(shù)人員能夠明了,相似變換是一種保持形狀不變的變換方式,能夠?qū)崿F(xiàn)平移、旋轉(zhuǎn)和尺度三種變換,十分適用于人臉矯正任務。
可以理解,本申請中的人臉矯正是指將檢測到的人臉映射到標準臉的過程。一般流程是先計算特征點的映射關(guān)系,即計算變換的參數(shù),然后根據(jù)參數(shù)對整幅人臉圖進行變換;本發(fā)明主要針對的是計算變換參數(shù)的過程。
圖1是本發(fā)明一實施例中的方法流程示意圖,具體包括如下步驟:
步驟S100設(shè)置一標準臉,得到標準點,所述標準點至少包括:左眼球中心、右眼球中心、鼻尖、左嘴角和右嘴角的5個特征點;在所述步驟S100中可使用現(xiàn)有的技術(shù)提取人臉圖片的5個特征點,利用人臉的5個特征點計算人臉的偏轉(zhuǎn)角度。
步驟S101從上述標準點中選擇不同特征點,對輸入的不同偏轉(zhuǎn)角度的人臉使用不同計算相似變換參數(shù)的方式,對多偏轉(zhuǎn)角度的人臉進行矯正;
步驟S102當偏轉(zhuǎn)角在第一偏轉(zhuǎn)角度閾值內(nèi),則采用基于左右兩眼球中心的坐標計算相似變換的參數(shù);
步驟S103當偏轉(zhuǎn)角在第二偏轉(zhuǎn)角度閾值內(nèi),則采用基于兩眼球的中間的坐標和兩嘴角中間的坐標計算相似變換的參數(shù);
步驟S104當偏轉(zhuǎn)角在第三偏轉(zhuǎn)角度閾值內(nèi),則采用基于單側(cè)特征點計算相似變換參數(shù)。
在上述步驟S102-步驟S104中,利用求得的人臉偏轉(zhuǎn)角度,分別計算相似變換的參數(shù),然后進行相似變換;本發(fā)明適用的人臉角度范圍為左右0-90度;如果偏轉(zhuǎn)角度小于30度,則使用左右兩個眼球中心的坐標進行兩點的相似變換;如果偏轉(zhuǎn)角度大于30度小于60度,則使用基于兩眼球中間的坐標和兩嘴角與鼻尖三點中間的坐標進行兩點相似變換;如果偏轉(zhuǎn)角度大于60度,則使用單側(cè)的眼球中心坐標和單側(cè)的嘴角坐標進行兩點相似變換。對于偏轉(zhuǎn)角較大的人臉,如果仍然使用一般使用的方法,即用兩眼球中心的坐標計算相似變換的參數(shù),會使得矯正后的臉豎直方向拉長從而超出圖片范圍,所以本發(fā)明使用有兩眼球的中間的坐標和兩嘴角中間的坐標計算相似變換的參數(shù);對于偏轉(zhuǎn)角過大的人臉,往往只包含單側(cè)的特征點和鼻尖,比如左側(cè)臉只包含左眼球中心,鼻尖和左嘴角,右側(cè)臉只包含右眼球中心,鼻尖和右嘴角,而一般的特征點檢測器還是會檢測到5個特征點,而只有某一側(cè)的特征點是準確的,所以本發(fā)明只利用單側(cè)特征點計算相似變換參數(shù)。即本實施例中的方法能夠針對不同的偏轉(zhuǎn)角度,分別使用不同的人臉對齊方式。
具體實現(xiàn)方式如下:
在本實施例的涉及如下參數(shù):
標準臉:人臉矯正的目標臉,有固定的圖片大小,固定位置的人臉特征點位置;
本實施例中使用的正臉標準臉圖片大小為128x128,標準點包括左眼球中心、右眼球中心、鼻尖、左嘴角和右嘴角5個,坐標依次為(44,56)、(84,56)、(64,80)、(52,88)、(76,88);
左側(cè)臉標準臉的圖片大小為128x128,
左眼球中心、鼻尖、左嘴角這3個特征點的坐標依次為(80,52),(100,76),(80,92);
右側(cè)臉標準臉的圖片大小為128x128,
右側(cè)臉中心、鼻尖、右嘴角這3個特征點的坐標依次為(48,52),(28,76),(48,92)。
如下表所示:
涉及到的參數(shù)如下:
其中標準臉的寬和高,標準臉5個特征點的橫縱坐標,實際臉的寬和高,實際5個標準點的橫縱坐標是已知的,縮放參數(shù)旋轉(zhuǎn)參數(shù)平移參數(shù)是未知的,則需要獲得了三種參數(shù)后才能對人臉進行相似變換。
1.0-30度基于左右兩個眼球的兩點相似變換
所要求的方程組如下:
利用求解出的參數(shù)r,θ,tx,ty對原人臉圖片進行寬為Wdst和高為Hdst的相似變換。如圖4所示為本發(fā)明中偏轉(zhuǎn)角小于30度人臉的矯正前后效果示意圖。
2.30-60度基于兩眼球中間的坐標和兩嘴角與鼻尖三點中間的坐標的兩點相似變換
所要求的方程組如下:
利用求解出的參數(shù)r,θ,tx,ty對原人臉圖片進行寬為Wdst和高為Hdst的相似變換。如圖5所示為偏轉(zhuǎn)角大于30度小于60度人臉的分別在矯正之前、用兩眼計算變換參數(shù)和用本發(fā)明的方法計算變換參數(shù)的對比圖??梢钥闯鲋苯佑脙裳矍蛑行挠嬎阕儞Q參數(shù)會使人臉超出圖片范圍,而是用本發(fā)明的方法則不會。
3.60-90度基于單側(cè)的眼球中心坐標、單側(cè)的嘴角坐標的兩點相似變換
左側(cè)臉所要求的方程組如下:
右側(cè)臉所要求的方程組如下:
利用求解出的參數(shù)r,θ,tx,ty對原人臉圖片進行寬為Wdst和高為Hdst的相似變換。如圖6所示為本發(fā)明中偏轉(zhuǎn)角大于60度左側(cè)人臉的矯正前后的效果示意圖;如圖7所示為本發(fā)明中大于60度右側(cè)人臉的矯正前后的效果示意圖。
在本實施例中,通過針對不同偏轉(zhuǎn)角度的人臉進行分類,不同偏轉(zhuǎn)角度的人臉使用不同的計算相似變換參數(shù)的方式,進而有效解決實際場景中多偏轉(zhuǎn)角度的人臉矯正問題。
上述的相似變換包含三種變換,平移變換、旋轉(zhuǎn)變換、尺度變換。
矩陣表達式如下:
展開即兩個方程,如上方程組所示
其中r控制尺度大小,代表尺度變換
θ控制旋轉(zhuǎn)的角度,代表旋轉(zhuǎn)變換
tx,ty控制平移量,代表平移參數(shù)。
src代表原始點,dst代表目標點,即變換后的點。
每一個原始點和目標點對可以寫出上述兩個方程;由于有4個未知數(shù),根據(jù)方程組的特點,4個未知數(shù)需要4個方程求解,所以需要有兩組已知的點對。
所以對于0-30°,使用兩個眼球中心兩個點,
對于30-60°使用兩眼球中間和兩嘴角中間兩個點,
對于60-90°使用單側(cè)眼球中心和單側(cè)嘴角兩個點。
圖2是本發(fā)明一優(yōu)選實施例中的方法流程示意圖;
步驟S100設(shè)置一標準臉,得到標準點,所述標準點至少包括:左眼球中心、右眼球中心、鼻尖、左嘴角和右嘴角的5個特征點;在所述步驟S100中可使用現(xiàn)有的技術(shù)提取人臉圖片的5個特征點,利用人臉的5個特征點計算人臉的偏轉(zhuǎn)角度。
步驟S101從上述標準點中選擇不同特征點,對輸入的不同偏轉(zhuǎn)角度的人臉使用不同計算相似變換參數(shù)的方式,對多偏轉(zhuǎn)角度的人臉進行矯正;
步驟S102當偏轉(zhuǎn)角在第一偏轉(zhuǎn)角度閾值內(nèi),則采用基于左右兩眼球中心的坐標計算相似變換的參數(shù);
步驟S103當偏轉(zhuǎn)角在第二偏轉(zhuǎn)角度閾值內(nèi),則采用基于兩眼球的中間的坐標和兩嘴角中間的坐標計算相似變換的參數(shù);
步驟S104當偏轉(zhuǎn)角在第三偏轉(zhuǎn)角度閾值內(nèi),則采用基于單側(cè)特征點計算相似變換參數(shù)。
作為本實施例中的優(yōu)選,相似變換包括但不限于:平移變換,是位置的變換,在坐標軸上有tx,ty兩個參數(shù),分別代表兩個方向上的平移量;其中tx,ty,表示平移參數(shù),用以控制人臉的位置。
作為本實施例中的優(yōu)選,相似變換包括但不限于:尺度變換,是圖片的放大縮小,有尺度參數(shù)r,代表圖片的放大縮小系數(shù);旋轉(zhuǎn)變換指的是圖片的旋轉(zhuǎn),有旋轉(zhuǎn)參數(shù)θ,代表旋轉(zhuǎn)的角度。其中,r,縮放參數(shù),控制人臉大小。θ,旋轉(zhuǎn)參數(shù),控制人臉的旋轉(zhuǎn)角度。
圖3是本發(fā)明一實施例中的系統(tǒng)結(jié)構(gòu)示意圖,具體地,在本實施例中的一種人臉矯正系統(tǒng)100,包括:標準化單元1、角度判斷單元2、第一矯正單元3、第二矯正單元4、第三矯正單元5,所述標準化單元1,用以設(shè)置一標準臉,得到標準點,所述標準點至少包括:左眼球中心、右眼球中心、鼻尖、左嘴角和右嘴角的5個特征點;所述角度判斷單元2,用以從上述標準點中選擇不同特征點,對輸入的不同偏轉(zhuǎn)角度的人臉使用不同計算相似變換參數(shù)的方式,對多偏轉(zhuǎn)角度的人臉進行矯正;所述第一矯正單元3,用以當偏轉(zhuǎn)角在第一偏轉(zhuǎn)角度閾值內(nèi),則采用基于左右兩眼球中心的坐標計算相似變換的參數(shù);所述第二矯正單元4,用以當偏轉(zhuǎn)角在第二偏轉(zhuǎn)角度閾值內(nèi),則采用基于兩眼球的中間的坐標和兩嘴角中間的坐標計算相似變換的參數(shù);所述第三矯正單元5,用以當偏轉(zhuǎn)角在第三偏轉(zhuǎn)角度閾值內(nèi),則采用基于單側(cè)特征點計算相似變換參數(shù)。
應當理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
總體而言,本公開的各種實施例可以以硬件或?qū)S秒娐?、軟件、邏輯或其任意組合實施。一些方面可以以硬件實施,而其它一些方面可以以固件或軟件實施,該固件或軟件可以由控制器、微處理器或其它計算設(shè)備執(zhí)行。雖然本公開的各種方面被示出和描述為框圖、流程圖或使用其它一些繪圖表示,但是可以理解本文描述的框、設(shè)備、系統(tǒng)、技術(shù)或方法可以以非限制性的方式以硬件、軟件、固件、專用電路或邏輯、通用硬件或控制器或其它計算設(shè)備或其一些組合實施。
此外,雖然操作以特定順序描述,但是這不應被理解為要求這類操作以所示的順序執(zhí)行或是以順序序列執(zhí)行,或是要求所有所示的操作被執(zhí)行以實現(xiàn)期望結(jié)果。在一些情形下,多任務或并行處理可以是有利的。類似地,雖然若干具體實現(xiàn)方式的細節(jié)在上面的討論中被包含,但是這些不應被解釋為對本公開的范圍的任何限制,而是特征的描述僅是針對具體實施例。在分離的一些實施例中描述的某些特征也可以在單個實施例中組合地執(zhí)行。相反對,在單個實施例中描述的各種特征也可以在多個實施例中分離地實施或是以任何合適的子組合的方式實施。