本發(fā)明涉及圖像識別領(lǐng)域,具體涉及一種基于卷積神經(jīng)網(wǎng)絡(luò)的人臉圖像年齡估算方法。
背景技術(shù):
在傳統(tǒng)的年齡識別技術(shù)中,訓練過程中樣本與年齡標簽往往是一對一的關(guān)系,即一個樣本只對應(yīng)一個年齡標簽。這樣的訓練過程假設(shè)了不同年齡的樣本之間是相互獨立的,從而忽略了相鄰年齡之間的關(guān)系。
其實,人的老化過程受到各種因素的影響,如基因、居住環(huán)境、工作環(huán)境等等,每個人的老化速率也不一樣,這樣會使得同一歲數(shù)的人有些顯得比較年輕,有些顯得比較年老。另一方面,人老化過程也是一個緩慢的過程,年齡相近的人看起來年齡十分相似。由此可知,一個人的表觀年齡具有一定的隨機性,但是也和真實年齡具有一定的相關(guān)性。這就導致傳統(tǒng)年齡識別技術(shù)的識別結(jié)果存在較大誤差。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)存在的上述問題,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的人臉圖像年齡估算方法,提高了人臉圖像年齡識別結(jié)果的準確率。
本發(fā)明基于卷積神經(jīng)網(wǎng)絡(luò)的人臉圖像年齡估算方法,包括模型訓練和年齡判斷兩部分;
模型訓練:
步驟A1,將各年齡人臉圖像的原始樣本進行人臉關(guān)鍵點檢測,并進行人臉對齊后按照預設(shè)尺寸裁剪生成包含人臉圖像的新樣本;
步驟A2,通過年齡分布函數(shù)來對年齡老化過程進行建模,分別積分計算出各真實年齡人臉圖像對應(yīng)的表觀年齡的概率值,得到年齡分布表;
步驟A3,利用步驟A1中生成的新樣本,結(jié)合年齡分布表及設(shè)定的目標函數(shù),進行卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型的訓練,生成訓練好的卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型;
年齡判斷:
步驟B1,對所輸入圖片進行人臉檢測,判斷是否包含人臉圖像,如包含則對輸入圖像進行人臉關(guān)鍵點檢測,并進行人臉對齊,然后按照預設(shè)尺寸裁剪生成包含人臉圖像的新圖片;
步驟B2,利用步驟A3訓練好的卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型對包含人臉圖像的新圖片進行年齡估算,輸出估算結(jié)果。
優(yōu)選的,步驟A1具體包括以下內(nèi)容:
步驟A11,選取各年齡人臉圖像作為原始樣本;
步驟A12,對所選取的原始樣本進行人臉關(guān)鍵點檢測,得到兩個關(guān)鍵點;
步驟A13,按照兩個關(guān)鍵點的位置及其連線對原始樣本進行人臉圖像的對齊,所述人臉圖像的對齊包括對原始樣本的旋轉(zhuǎn)、縮放、平移;
步驟A14,將步驟A13中對齊后的樣本按照預設(shè)尺寸裁剪生成包含人臉圖像的新樣本。
優(yōu)選的,步驟A2具體包括以下內(nèi)容:
步驟A21,通過年齡分布函數(shù)來對人臉圖像表觀年齡的隨機性進行建模;
所述年齡分布函數(shù)為高斯分布函數(shù),對于真實年齡為lc的人臉圖像,其表觀年齡對應(yīng)的高斯分布概率密度函數(shù)為:
其中x為自變量,σ為高斯分布的標準差;
步驟A22,將自變量x與表觀年齡進行對應(yīng),表觀年齡li對應(yīng)自變量x的取值區(qū)間為[li-0.5,li+0.5],表觀年齡lmax對應(yīng)自變量x的取值區(qū)間為[lmax-0.5,+∞],表觀年齡lmin對應(yīng)自變量x的取值區(qū)間為[-∞,lmin+0.5],其中l(wèi)max和lmin分別為設(shè)定的最大年齡和最小年齡,li、lmax、lmin的取值范圍均是包括0在內(nèi)的自然數(shù)。
步驟A23,對步驟A22中各表觀年齡li對應(yīng)的自變量x的區(qū)間進行積分計算,算出真實年齡lc在年齡分布函數(shù)中各表觀年齡li的積分P(lc,li),其中l(wèi)i∈{lmin,…,lmax},lc∈{lmin,…,lmax},得到真實年齡為lc的人臉圖像的表觀年齡分布概率,依據(jù)各真實年齡及其對應(yīng)的表觀年齡分布構(gòu)造年齡分布表。
優(yōu)選的,步驟A23中真實年齡lc在年齡分布函數(shù)中各表觀年齡li的積分P(lc,li)的計算方法如下:
其中P(lc,li)表示年齡為lc的人臉圖像表現(xiàn)為年齡li的概率。
優(yōu)選的,步驟A3具體包括以下內(nèi)容:
步驟A31,從步驟A1生成的新樣本中隨機挑選出m張圖像,輸入到卷積神經(jīng)網(wǎng)絡(luò);
步驟A32,卷積神經(jīng)網(wǎng)絡(luò)前向傳遞,得到特征層輸出xc;
步驟A33,結(jié)合年齡分布表及卷積神經(jīng)網(wǎng)絡(luò)輸出層的目標函數(shù),計算訓練損失;所述卷積神經(jīng)網(wǎng)絡(luò)輸出層的目標函數(shù)為
其中輸出層結(jié)點個數(shù)為k+1個,每個節(jié)點對應(yīng)一個年齡;c為新樣本的序號,i和j為輸出層節(jié)點序號,θ為輸出層參數(shù),T為轉(zhuǎn)置符,m為新樣本總數(shù),xc是第c個新樣本的特征向量,P(lc,li)的數(shù)值可通過在線查詢年齡分布表獲得。
步驟A34,判斷訓練損失是否收斂,若收斂則停止訓練,得到卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型;否則進入步驟A35;
步驟A35,采用隨機梯度下降法更新網(wǎng)絡(luò)參數(shù),然后返回步驟A31;其中卷積神經(jīng)網(wǎng)絡(luò)輸出層參數(shù)梯度為:
其中1{v=i}是指示函數(shù),表示當v=i時,1{v=i}=1;否則1{v=i}=0;v表示的是theta參數(shù)矩陣中的第v列向量;網(wǎng)絡(luò)其余參數(shù)的梯度可根據(jù)反向傳播算法計算。
優(yōu)選的,步驟B1具體包括以下內(nèi)容:
步驟B11,對所輸入的圖片檢測其是否包含人臉,若不包含人臉則放棄該張圖片,否則進入步驟B12;
步驟B12,對所輸入的圖片進行人臉關(guān)鍵點檢測,得到兩個關(guān)鍵點;
步驟B13,按照上述關(guān)鍵點的位置及其連線對原始圖片進行人臉圖像的對齊,所述人臉圖像的對齊包括對原始圖片的旋轉(zhuǎn)、縮放、平移;
步驟B14,將步驟B13中對齊后的圖片按照預設(shè)尺寸裁剪生成包含人臉圖像的新圖片。
優(yōu)選的,步驟A12或B12中所述的兩個關(guān)鍵點為兩眼中心點和上嘴唇中心點。
優(yōu)選的,步驟A14或B14中所述的預設(shè)尺寸的分辨率為224*224。
優(yōu)選的,步驟B2具體包括以下內(nèi)容:
步驟B21,將處理后的圖像輸入到卷積神經(jīng)網(wǎng)絡(luò),進行前向傳遞,算出各個年齡的概率值p(i);
步驟B22,根據(jù)年齡及其對應(yīng)的預測概率值求數(shù)學期望值,得到最終的估算年齡其中a(i)表示第i個輸出節(jié)點所代表的年齡。
本發(fā)明通過年齡分布表,進行卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型的訓練,并將該模型用于人臉圖像的年齡估算,提高了人臉圖像年齡識別結(jié)果的準確率。
附圖說明
圖1為本發(fā)明的步驟A1流程示意圖;
圖2為本發(fā)明的步驟A2流程示意圖;
圖3為本發(fā)明的步驟A3流程示意圖;
圖4為本發(fā)明的步驟B1流程示意圖;
圖5為本發(fā)明的步驟B2流程示意圖。
具體實施方式
下面參照附圖來描述本發(fā)明的優(yōu)選實施方式。本領(lǐng)域技術(shù)人員應(yīng)當理解的是,這些實施方式僅僅用于解釋本發(fā)明的技術(shù)原理,并非旨在限制本發(fā)明的保護范圍。
本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的人臉圖像年齡估算方法,主要通過對人臉表觀年齡的隨機性建模,使得每個真實年齡對應(yīng)一個表觀年齡分布,進而實現(xiàn)每個真實年齡對應(yīng)基于高斯分布加權(quán)的多個表觀年齡標簽,并采用卷積神經(jīng)網(wǎng)絡(luò)的方法,訓練得到年齡估算模型。
本發(fā)明包括模型訓練和年齡判斷兩部分;
模型訓練:
步驟A1,將各年齡人臉圖像的原始樣本進行人臉關(guān)鍵點檢測,并進行人臉對齊后按照預設(shè)尺寸裁剪生成包含人臉圖像的新樣本;
步驟A2,通過年齡分布函數(shù)來對年齡老化過程進行建模,分別積分計算出各真實年齡人臉圖像對應(yīng)的表觀年齡的概率值,得到年齡分布表;
步驟A3,利用步驟A1中生成的新樣本,結(jié)合年齡分布表及設(shè)定的目標函數(shù),進行卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型的訓練,生成訓練好的卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型。
年齡判斷:
步驟B1,對所輸入圖片進行人臉檢測,判斷是否包含人臉圖像,如包含則對輸入圖像進行人臉關(guān)鍵點檢測,并進行人臉對齊,然后按照預設(shè)尺寸裁剪生成包含人臉圖像的新圖片;
步驟B2,利用步驟A3訓練好的卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型對包含人臉圖像的新圖片進行年齡估算,輸出估算結(jié)果。
如圖1所示,本實施例中步驟A1具體包括以下內(nèi)容:
步驟A11,選取各年齡人臉圖像作為原始樣本;
步驟A12,對所選取的原始樣本進行人臉關(guān)鍵點檢測,得到兩眼中心和上嘴唇中心兩個關(guān)鍵點;
步驟A13,按照上述關(guān)鍵點的位置及其連線對原始樣本進行人臉圖像的對齊,所述人臉圖像的對齊包括對原始樣本的旋轉(zhuǎn)、縮放、平移;
步驟A14,將步驟A13中對齊后的樣本按照預設(shè)尺寸裁剪生成包含人臉圖像的新樣本;所述的預設(shè)尺寸分辨率為224*224;
如圖2所示,本實施例中步驟A2具體包括以下內(nèi)容:
步驟A21,通過年齡分布函數(shù)對人臉圖像表觀年齡的隨機性進行建模,表觀年齡分布服從高斯分布函數(shù),對于真實年齡為lc的人臉圖像,其表觀年齡對應(yīng)的高斯分布概率密度函數(shù)如公式(1)所示:
其中x為自變量,σ為高斯分布的標準差;
步驟A22,因上述自變量x是連續(xù)的,而年齡估算中把年齡作為有限的離散整數(shù),故在此需要對表觀年齡區(qū)間進行適當劃分;按照就近原則,將自變量x與表觀年齡進行對應(yīng),表觀年齡li對應(yīng)自變量x的取值區(qū)間為[li-0.5,li+0.5],表觀年齡lmax對應(yīng)自變量x的取值區(qū)間為[lmax-0.5,+∞],表觀年齡lmin對應(yīng)自變量x的取值區(qū)間為[-∞,lmin+0.5],其中l(wèi)max和lmin分別為設(shè)定的最大年齡和最小年齡,li、lmax、lmin的取值范圍均是包括0在內(nèi)的自然數(shù);
本實施例中取lmin=0,lmax=100;并對lc和li進行初始化賦值,lc=lmin,li=lmin;
步驟A23,對步驟A22中各表觀年齡li對應(yīng)的自變量x的區(qū)間進行積分計算,算出真實年齡lc在年齡分布函數(shù)中各表觀年齡li的積分P(lc,li),其中l(wèi)i∈{lmin,…,lmax},lc∈{lmin,…,lmax},得到真實年齡為lc的人臉圖像的表觀年齡分布概率,依據(jù)各真實年齡及其對應(yīng)的表觀年齡分布構(gòu)造年齡分布表。
本實施例中步驟A23的具體執(zhí)行方法包括如下步驟:
步驟A231,計算年齡分布P(lc,li);
若li=lmin,則
若lmin<li<lmax,則
若li=lmax,則
其中P(lc,li)表示年齡為lc的人臉圖像表現(xiàn)為年齡li的概率,具體如公式(2)所示:
步驟A232,對應(yīng)于每個真實年齡lc,li的取值都從lmin到lmax,若li≥lmax,跳到步驟A233;否則li=li+1,返回至步驟A24;
步驟A233,lc的取值范圍也是從lmin到lmax,若lc≥lmax,則計算完成,將所有的P(lc,li)值存儲為年齡分布表;否則lc=lc+1,li=lmin,再返回至步驟A231。
如圖3所示,本實施例中步驟A3具體包括以下內(nèi)容:
步驟A31:從步驟A1生成的新樣本中隨機挑選出m張圖像,輸入到卷積神經(jīng)網(wǎng)絡(luò);
步驟A32:卷積神經(jīng)網(wǎng)絡(luò)前向傳遞,得到特征層輸出xc;
步驟A33:結(jié)合年齡分布表及卷積神經(jīng)網(wǎng)絡(luò)輸出層的目標函數(shù)計算訓練損失;
所述卷積神經(jīng)網(wǎng)絡(luò)輸出層的目標函數(shù)為改進后的softmax函數(shù),此處命名為soft softmax函數(shù),依據(jù)該目標函數(shù)構(gòu)建的輸出層命名為soft softmax層;
soft softmax函數(shù)具體如公式(3)所示:
其中輸出層結(jié)點個數(shù)為k+1個,每個節(jié)點對應(yīng)一個年齡;c為新樣本的序號,i和j為輸出層節(jié)點序號;θ為soft softmax層參數(shù),T為轉(zhuǎn)置符,m為新樣本總數(shù),xc是第c個新樣本的特征向量,P(lc,li)的數(shù)值可通過在線查詢年齡分布表獲得;
步驟A34:判斷訓練損失是否收斂,若收斂則停止訓練,得到卷積神經(jīng)網(wǎng)絡(luò)年齡估算模型;否則進入步驟A35;
步驟A35:采用隨機梯度下降法(Stochastic Gradient Descent,SGD)更新網(wǎng)絡(luò)參數(shù),并返回到步驟A31;其中soft softmax層參數(shù)梯度如公式(4)所示:
其中1{v=i}是指示函數(shù),表示當v=i時,1{v=i}=1;否則1{v=i}=0;v表示的是theta參數(shù)矩陣中的第v列向量。網(wǎng)絡(luò)其余參數(shù)的梯度可根據(jù)反向傳播算法計算。
如圖4所示,本實施例中步驟B1具體包括以下內(nèi)容:
步驟B11,對所輸入的圖片檢測其是否包含人臉,若不包含人臉則放棄該張圖片,否則進入步驟B12;
步驟B12,對所輸入的圖片進行人臉關(guān)鍵點檢測,得到兩眼中心和上嘴唇中心兩個關(guān)鍵點;
步驟B13,按照上述關(guān)鍵點的位置及其連線對原始圖片進行人臉圖像的對齊,所述人臉圖像的對齊包括對原始圖片的旋轉(zhuǎn)、縮放、平移;
步驟B14,將步驟B13中對齊后的圖片按照預設(shè)尺寸(如224*224)裁剪生成包含人臉圖像的新圖片。
在本實施例中,如圖5所示步驟B2具體包括以下內(nèi)容:
步驟B21,將處理后的圖像輸入到卷積神經(jīng)網(wǎng)絡(luò),進行前向傳遞,算出各個年齡的概率p(i);
步驟B22,根據(jù)年齡及其對應(yīng)的預測概率值求數(shù)學期望值,得到最終的估算年齡其中,a(i)表示第i個輸出節(jié)點所代表的年齡。
本實施例中,步驟A12和步驟B12中對所輸入的圖片進行人臉關(guān)鍵點檢測,可以為人臉任意兩個關(guān)鍵點,均能滿足人臉圖像方向?qū)R和比例縮放的要求。
本領(lǐng)域技術(shù)人員應(yīng)該能夠意識到,結(jié)合本文中所公開的實施例描述的各示例的方法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明電子硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以電子硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。本領(lǐng)域技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
至此,已經(jīng)結(jié)合附圖所示的優(yōu)選實施方式描述了本發(fā)明的技術(shù)方案,但是,本領(lǐng)域技術(shù)人員容易理解的是,本發(fā)明的保護范圍顯然不局限于這些具體實施方式。在不偏離本發(fā)明的原理的前提下,本領(lǐng)域技術(shù)人員可以對相關(guān)技術(shù)特征作出等同的更改或替換,這些更改或替換之后的技術(shù)方案都將落入本發(fā)明的保護范圍之內(nèi)。