本發(fā)明屬于卷積神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種人臉圖像年齡估算方法、裝置及其終端設(shè)備。
背景技術(shù):
人臉年齡估計(jì)在安全監(jiān)控、人機(jī)交互、視頻檢索等領(lǐng)域有著巨大的應(yīng)用價(jià)值。但是人臉年齡估計(jì)受到基因、生活環(huán)境、健康狀況等眾多因素的影響。卷積神經(jīng)網(wǎng)絡(luò)由于對(duì)大型圖像處理有出色的表現(xiàn),近年來(lái)成為研究的一個(gè)熱點(diǎn)。在現(xiàn)有的基于卷積神經(jīng)網(wǎng)絡(luò)的人臉年齡估算方法中,主要有主動(dòng)外觀模型(aam)、特征子空間模型(ages)、外觀模型(以bif仿生特征為主)、流型模型。
但是主動(dòng)外觀模型將形狀和紋理特征分開訓(xùn)練,丟失了形狀和紋理特征共有部分的信息,而且主動(dòng)外觀模型依賴于各個(gè)關(guān)鍵點(diǎn),一旦關(guān)鍵點(diǎn)檢測(cè)不到位將影響最終的性能。特征子空間模型的缺點(diǎn)在于建立特征子空間模型時(shí),需要同一個(gè)人多幅不同年齡的圖像來(lái)建立子空間,因此該模型將不適用于只有單幅年齡圖像的數(shù)據(jù)。流型模型的缺點(diǎn)在于年齡特征的流形學(xué)習(xí)方法對(duì)數(shù)據(jù)庫(kù)的數(shù)量要求較多,只適合于大型的年齡數(shù)據(jù)庫(kù),且要求每個(gè)年齡段的數(shù)據(jù)分布比較均勻。外觀模型是用的最多的模型,然而外觀模型提取的特征還只是手工設(shè)計(jì)特征,人臉年齡估計(jì)的性能很有限?,F(xiàn)有的基于卷積神經(jīng)網(wǎng)絡(luò)模型的人臉年齡估算方法魯棒性較差,缺乏對(duì)人臉特征和其它特征的直接建模,網(wǎng)絡(luò)模型的學(xué)習(xí)能力有限。
技術(shù)實(shí)現(xiàn)要素:
鑒于此,本發(fā)明提供一種人臉圖像年齡估算方法、裝置及其終端設(shè)備,提高基于卷積神經(jīng)網(wǎng)絡(luò)的人臉圖像年齡估算方法的魯棒性。
本發(fā)明的第一方面,提供一種人臉圖像年齡估算方法,所述方法包括:
構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型;
初始化所述卷積神經(jīng)網(wǎng)絡(luò)模型;
將預(yù)處理后的圖像輸入初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型,根據(jù)所述預(yù)處理后的圖像基于年齡損失函數(shù)通過反向傳播法訓(xùn)練所述初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型;
將待檢測(cè)人臉圖像輸入訓(xùn)練后的所述卷積神經(jīng)網(wǎng)絡(luò)模型,輸出所述待檢測(cè)人臉圖像中人臉的年齡。
本發(fā)明的第二方面,提供一種人臉圖像年齡估算裝置,所述裝置包括:
模型構(gòu)建模塊,用于構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型;
初始化模塊,用于初始化所述卷積神經(jīng)網(wǎng)絡(luò)模型;
訓(xùn)練模塊,用于將預(yù)處理后的圖像輸入初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型,根據(jù)所述預(yù)處理后的圖像基于年齡損失函數(shù)通過反向傳播法訓(xùn)練所述初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型;
年齡估算模塊,用于將待檢測(cè)人臉圖像輸入訓(xùn)練后的所述卷積神經(jīng)網(wǎng)絡(luò)模型,輸出所述待檢測(cè)人臉圖像中人臉的年齡。
本發(fā)明的第三方面,提供一種終端設(shè)備,所述終端設(shè)備包括:
存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)上述第一方面提供的所述方法的步驟。
本發(fā)明的第四方面,提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是非易失性的,所述計(jì)算機(jī)存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在被一個(gè)或多個(gè)處理器讀取并執(zhí)行時(shí)可實(shí)現(xiàn)上述第一方面提供的所述方法的步驟。
本發(fā)明與現(xiàn)有技術(shù)相比存在的有益效果是:本發(fā)明首先構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型,然后初始化所述卷積神經(jīng)網(wǎng)絡(luò)模型,將預(yù)處理后的圖片輸出所述初始化后的卷積神經(jīng)網(wǎng)絡(luò),根據(jù)所述預(yù)處理后的圖片基于年齡損失函數(shù)通過反向傳播法訓(xùn)練所述初始化后的卷積神經(jīng)網(wǎng)絡(luò),待所述卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練好后,就可以將待檢測(cè)人臉圖片輸入所述卷積神經(jīng)網(wǎng)絡(luò),最終輸出所述待檢測(cè)圖像中人臉的年齡。本發(fā)明中,潛在因子分解層可以將圖像的特征分解為需要獲取的與年齡相關(guān)的分量,和與年齡無(wú)關(guān)的相關(guān)分量,所以能夠基于與年齡相關(guān)的分量進(jìn)行訓(xùn)練以及檢測(cè),使得所述卷積神經(jīng)網(wǎng)絡(luò)模型具有較好的魯棒性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明第一實(shí)施例提供的人臉圖像年齡估算方法的示意流程圖;
圖2是本發(fā)明第一實(shí)施例中構(gòu)建的包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò);
圖3是本發(fā)明第一實(shí)施例中對(duì)人臉圖像預(yù)處理的過程;
圖4是本發(fā)明第一實(shí)施例中人臉圖像的年齡標(biāo)簽的處理過程;
圖5是本發(fā)明第二實(shí)施例提供的人臉圖像年齡估算裝置的示意框圖;
圖6是本發(fā)明第三實(shí)施例提供的終端設(shè)備的示意框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)當(dāng)理解,當(dāng)在本說(shuō)明書和所附權(quán)利要求書中使用時(shí),術(shù)語(yǔ)“包括”指示所描述特征、整體、步驟、操作、元素和/或組件的存在,但并不排除一個(gè)或多個(gè)其它特征、整體、步驟、操作、元素、組件和/或其集合的存在或添加。
還應(yīng)當(dāng)理解,在此本發(fā)明說(shuō)明書中所使用的術(shù)語(yǔ)僅僅是出于描述特定實(shí)施例的目的而并不意在限制本發(fā)明。如在本發(fā)明說(shuō)明書和所附權(quán)利要求書中所使用的那樣,除非上下文清楚地指明其它情況,否則單數(shù)形式的“一”、“一個(gè)”及“該”意在包括復(fù)數(shù)形式。
還應(yīng)當(dāng)進(jìn)一步理解,在本發(fā)明說(shuō)明書和所附權(quán)利要求書中使用的術(shù)語(yǔ)“和/或”是指相關(guān)聯(lián)列出的項(xiàng)中的一個(gè)或多個(gè)的任何組合以及所有可能組合,并且包括這些組合。
如在本說(shuō)明書和所附權(quán)利要求書中所使用的那樣,術(shù)語(yǔ)“如果”可以依據(jù)上下文被解釋為“當(dāng)...時(shí)”或“一旦”或“響應(yīng)于確定”或“響應(yīng)于檢測(cè)到”。類似地,短語(yǔ)“如果確定”或“如果檢測(cè)到[所描述條件或事件]”可以依據(jù)上下文被解釋為意指“一旦確定”或“響應(yīng)于確定”或“一旦檢測(cè)到[所描述條件或事件]”或“響應(yīng)于檢測(cè)到[所描述條件或事件]”。
為了說(shuō)明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來(lái)進(jìn)行說(shuō)明。
實(shí)施例一:
參見圖1,圖1是本發(fā)明實(shí)施例一提供的人臉圖像年齡估算方法的示意流程圖,如圖所示該方法可以包括以下步驟:
步驟s101,構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型。
在本發(fā)明實(shí)施例中,所述包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型是指在常規(guī)的卷積神經(jīng)網(wǎng)絡(luò)模型中增加一個(gè)潛在因子分解層,所述潛在因子分解層是利用潛在因子算法為基礎(chǔ)構(gòu)建的,可以將輸入的圖像的特征分為兩部分特征:與年齡相關(guān)的特征和與年齡無(wú)關(guān)的特征(身份特征),具體可以通過以下公式表示:
其中,
所述常規(guī)卷積神經(jīng)網(wǎng)絡(luò)模型就是可以從人臉圖像上提取面部通用特征的卷積神經(jīng)網(wǎng)絡(luò)模型,可以包括至少一個(gè)卷積層、至少一個(gè)池化層、至少一個(gè)全連接層,本發(fā)明實(shí)施例中采用的常規(guī)卷積神經(jīng)網(wǎng)絡(luò)包括13個(gè)卷積層、多個(gè)池化層和一個(gè)全連接層,構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型時(shí)將全連接層替換為潛在因子分解層。以vgg-face為例,通過圖2說(shuō)明構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型,可以保留vgg-face中第12個(gè)卷積層之前的各層,在第13個(gè)卷積層中卷積核大小和步長(zhǎng)分別設(shè)為4×4和1,然后再連接一個(gè)池化層(pool6),池化層后面本來(lái)是vgg-face中的兩個(gè)全連接層,將兩個(gè)全連接層用潛在因子分解層替換,第13個(gè)卷積層和后面的池化層(pool6)的目的是特征降維、減少參數(shù),然后將降低維度和減少參數(shù)后的面部通用特征輸入潛在因子分解層,就可以將面部通用特征分解為兩部分:與年齡相關(guān)的特征和與年齡無(wú)關(guān)的特征(身份特征)。
如圖2所示,采用部分vgg-face卷積神經(jīng)網(wǎng)絡(luò),在vgg-face的一個(gè)卷積層后面增加一個(gè)卷積層(conv6),在增加一個(gè)池化層(pool6),在池化層后面增加潛在因子分解層,潛在因子分解層會(huì)將面部通用特征分解為與年齡相關(guān)的特征和與年齡無(wú)關(guān)的特征(身份特征),然后通過年齡損失函數(shù)(包括與年齡段相關(guān)的損失函數(shù)和與年齡值相關(guān)的損失函數(shù))計(jì)算標(biāo)簽?zāi)挲g和預(yù)測(cè)年齡差值。
步驟s102,初始化所述卷積神經(jīng)網(wǎng)絡(luò)模型。
在本發(fā)明實(shí)施例中,所述卷積神經(jīng)網(wǎng)絡(luò)模型在建立之后,各層節(jié)點(diǎn)的權(quán)值需要初始化,可以采用人臉身份識(shí)別任務(wù)預(yù)訓(xùn)練獲得所述卷積神經(jīng)網(wǎng)絡(luò)模型中除所述潛在因子分解層之外的各層的初始化參數(shù);采用預(yù)定的濾波器初始化所述潛因子分解層的參數(shù)
所述卷積神經(jīng)網(wǎng)絡(luò)模型中除所述潛在因子分解層之外的各層參數(shù)通過人臉身份識(shí)別任務(wù)預(yù)訓(xùn)練初始化,這是因?yàn)槿四樕矸葑R(shí)別的訓(xùn)練集中的訓(xùn)練樣本數(shù)量大類別多,通過人臉身份識(shí)別任務(wù)預(yù)訓(xùn)練后的參數(shù)作為卷積神經(jīng)網(wǎng)絡(luò)模型的初始化參數(shù),有利于在正式訓(xùn)練時(shí)提高訓(xùn)練的速度,提升卷積神經(jīng)網(wǎng)絡(luò)的性能。所述潛因子分解層的參數(shù)由預(yù)定的xavier過濾器初始化,激活函數(shù)使用relu。學(xué)習(xí)速率初始化為1e-3,并且當(dāng)誤差穩(wěn)定時(shí)學(xué)習(xí)速率再分別變?yōu)?e-4,1e-5。
所述潛因子分解層的參數(shù)
步驟s103,將預(yù)處理后的圖像輸入初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型,根據(jù)所述預(yù)處理后的圖像基于年齡損失函數(shù)通過反向傳播法訓(xùn)練所述初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型。
在本發(fā)明實(shí)施例中,在正式訓(xùn)練所述卷積神經(jīng)網(wǎng)絡(luò)模型時(shí),需要先將訓(xùn)練集中的人臉圖像進(jìn)行預(yù)處理再輸入所述卷積神經(jīng)網(wǎng)絡(luò)模型,所述預(yù)處理過程包括人臉檢測(cè)和校準(zhǔn),如圖3所示,將訓(xùn)練集中的人臉圖像(圖3中第1個(gè)人臉圖像)輸入級(jí)聯(lián)的卷積神經(jīng)網(wǎng)絡(luò)獲得包括人臉檢測(cè)候選框的圖像(圖3中的第2個(gè)人臉圖像),所述人臉檢測(cè)候選框內(nèi)的圖像就是檢測(cè)到的人臉圖像。使用該方法不僅能夠得到人臉圖像上的候選框,而且還得到了人臉圖像上的各個(gè)關(guān)鍵點(diǎn)(例如眼睛、鼻子和嘴角五個(gè)關(guān)鍵點(diǎn)的坐標(biāo)),對(duì)獲得的包含人臉關(guān)鍵點(diǎn)的圖像進(jìn)行仿射變換后固定住人臉各關(guān)鍵點(diǎn)的坐標(biāo)就是人臉校準(zhǔn)的過程,經(jīng)過人臉檢測(cè)和校準(zhǔn)處理就得到了預(yù)處理后的圖像(圖3中第3個(gè)人臉圖像)。需要說(shuō)明的是,人臉各關(guān)鍵點(diǎn)可以選取眼睛、鼻子和/或嘴角,并不限制一定選取5個(gè)關(guān)鍵點(diǎn)。
將預(yù)處理后的圖像輸入初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型就可以根據(jù)輸入的預(yù)處理后的圖像基于年齡損失函數(shù)采用反向傳播法訓(xùn)練所述卷積神經(jīng)網(wǎng)絡(luò)模型。
所述反向傳播法與常用的卷積神經(jīng)網(wǎng)絡(luò)模型一樣都有正向傳播和反向傳播的過程。通過正向傳播提取輸入的人臉圖像上的特征,根據(jù)提取的人臉圖像上的特征預(yù)測(cè)輸入的人臉圖像的年齡,然后根據(jù)預(yù)測(cè)的人臉圖像的年齡與所述輸入的人臉圖像的年齡標(biāo)簽(真實(shí)年齡)計(jì)算差值,可以通過年齡損失函數(shù)來(lái)表征預(yù)測(cè)年齡和真實(shí)年齡之間的不一致性。通過對(duì)年齡損失函數(shù)反向求導(dǎo)更新所述卷積神經(jīng)網(wǎng)絡(luò)中各層節(jié)點(diǎn)的參數(shù)就是反向傳播的過程。當(dāng)年齡損失函數(shù)收斂,就表示訓(xùn)練結(jié)束。
本發(fā)明實(shí)施例中,與常用的卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程不同的地方是,構(gòu)建了基于年齡段和年齡值的年齡損失函數(shù),所述年齡損失函數(shù)具體為:
其中,在k∈[1,kgroup]中,pk指預(yù)測(cè)年齡大于第k個(gè)年齡段的概率,在k∈[1,kage]中,pk指預(yù)測(cè)年齡大于第k個(gè)年齡的概率,kgroup年齡段,kage是年齡標(biāo)簽的最大值。l年齡段可以看成kgroup個(gè)二分類輸出,每個(gè)二分類softmax分類器用于判斷當(dāng)前年齡是否大于某個(gè)年齡段的值,l年齡值可以看成kage個(gè)二分類輸出,每個(gè)二分類softmax分類器用于判斷當(dāng)前年齡是否大于某個(gè)年齡的值。
也可以將這種基于年齡段和年齡值的年齡損失函數(shù)成為多任務(wù)損失函數(shù)。
通過圖4說(shuō)明輸入圖像的年齡標(biāo)簽的處理過程。如圖4所示,年齡標(biāo)簽處理為多個(gè)0或1的輸出,假設(shè),訓(xùn)練集中人臉圖片的年齡標(biāo)簽的范圍是0-77,kage就對(duì)應(yīng)78個(gè)0或1的輸出,可以將訓(xùn)練集中人臉圖片的年齡分為多個(gè)年齡段,例如,可以將0-77的年齡分為8個(gè)年齡段,也就是kgroup對(duì)應(yīng)8個(gè)0或1的輸出,kgroup這8個(gè)年齡段并未均等分配。年齡標(biāo)簽會(huì)對(duì)應(yīng)處理為一個(gè)年齡段的輸出和一個(gè)年齡值的輸出,年齡段的輸出也就是對(duì)應(yīng)kgroup的輸出,會(huì)是8個(gè)0或1的輸出;年齡值的輸出也就是對(duì)應(yīng)kage的輸出,會(huì)對(duì)應(yīng)78個(gè)0或1的輸出。假如輸入的人臉圖像的標(biāo)簽?zāi)挲g為18,在對(duì)應(yīng)kgroup輸出時(shí),首先看18是否大于第一個(gè)年齡段的最大值(第一個(gè)年齡段為0-19),不大于19,則8個(gè)0或1輸出的第一位輸出為0,后面的輸出也為0,若大于第一個(gè)年齡段的最大值,則輸出為1;繼續(xù)按照上述方式判斷是否大于其它年齡段,若年齡標(biāo)簽大于年齡段中的最大值,則對(duì)應(yīng)這個(gè)年齡段的輸出為1,否則就為0。按照這種方式可以得出年齡標(biāo)簽18的kgroup對(duì)應(yīng)的輸出為00000000,8個(gè)0,因?yàn)?8不大于任何一個(gè)年齡段的最大值。年齡標(biāo)簽18對(duì)應(yīng)的年齡值的輸出為,前18個(gè)為1,后續(xù)的都為0,總共78個(gè)輸出,判斷方法也一樣,kage對(duì)應(yīng)78個(gè)輸出,對(duì)應(yīng)的分段是0-77分為78個(gè)。年齡標(biāo)簽大于哪個(gè)值,則對(duì)應(yīng)的輸出就為1,小于哪個(gè)值則對(duì)應(yīng)的輸出就為0。以年齡標(biāo)簽40為例說(shuō)明,40大于前6個(gè)kgroup的分級(jí)中的最大值,則kgroup前6個(gè)輸出為1,后面兩個(gè)輸出為0;40大于前40個(gè)kage的分級(jí)中的值,則kage前40個(gè)輸出為1,后38個(gè)輸出為0。需要說(shuō)明的是,可以根據(jù)實(shí)際情況調(diào)節(jié)kgroup的分級(jí),也可以調(diào)節(jié)kage的分級(jí)。
本發(fā)明實(shí)施例中,與常用的卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程另一個(gè)不同的地方是所述通過反向傳播法訓(xùn)練所述初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型包括:
正向傳播過程:將面部通用特征轉(zhuǎn)換為與年齡相關(guān)的向量
反向傳播過程:通過梯度下降法反向求導(dǎo)所述年齡損失函數(shù)更新所述卷積神經(jīng)網(wǎng)絡(luò)模型中除所述潛因子分解層之外的各層的參數(shù),通過以下公式更新所述潛在因子分解層的參數(shù)
u=(c-db-1e)(a-fb-1e)-1,
v=(d-ca-1f)(b-ea-1f)-1,
其中,
在本發(fā)明實(shí)施例中,所述正向傳播過程,在潛在因子分解層將面部通用特征轉(zhuǎn)換為與年齡相關(guān)的向量
所述反向傳播過程是從分類器到卷積神經(jīng)網(wǎng)絡(luò)的導(dǎo)數(shù)如何穿過潛在因子分解層,以及如何更新潛在因子分解層的過程。潛在因子分解層之外的部分用年齡損失函數(shù)反向求導(dǎo)更新各層參數(shù),潛在因子分解層中
步驟s104,將待檢測(cè)人臉圖像輸入訓(xùn)練后的所述卷積神經(jīng)網(wǎng)絡(luò)模型,輸出所述待檢測(cè)人臉圖像中人臉的年齡。
在本發(fā)明實(shí)施例中,所述卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練好后,就可以對(duì)待檢測(cè)人臉圖像進(jìn)行年齡估算。具體的包括:
將所述卷積神經(jīng)網(wǎng)絡(luò)模型中的潛在因子分解層轉(zhuǎn)換為全連接層;
將預(yù)處理后的待檢測(cè)人臉圖像輸入所述卷積神經(jīng)網(wǎng)絡(luò)模型,在所述全連接層之前獲得人臉圖像的面部通用特征;
將所述面部通用特征輸入所述全連接層得到與年齡相關(guān)的特征和與年齡無(wú)關(guān)的特征;
將與年齡相關(guān)的特征輸入所述卷積神經(jīng)網(wǎng)絡(luò)模型中最后的分類器根據(jù)公式
如前所述,潛在因子分解層的輸出
在本發(fā)明實(shí)施例中,首先構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型,然后初始化所述卷積神經(jīng)網(wǎng)絡(luò)模型,將預(yù)處理后的圖片輸出所述初始化后的卷積神經(jīng)網(wǎng)絡(luò),根據(jù)所述預(yù)處理后的圖片基于年齡損失函數(shù)通過反向傳播法訓(xùn)練所述初始化后的卷積神經(jīng)網(wǎng)絡(luò),待所述卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練好后,就可以將待檢測(cè)人臉圖片輸入所述卷積神經(jīng)網(wǎng)絡(luò),最終輸出所述待檢測(cè)圖像中人臉的年齡。本發(fā)明中,潛在因子分解層可以將圖像的特征分解為需要獲取的與年齡相關(guān)的分量,和與年齡無(wú)關(guān)的相關(guān)分量,所以能夠基于與年齡相關(guān)的分量進(jìn)行訓(xùn)練以及檢測(cè),并且有利提升面部通用特征與年齡的相關(guān)性,提高最終的年齡估算的結(jié)果;另外年齡損失函數(shù)將年齡標(biāo)簽分為了與年齡段相關(guān)的損失函數(shù)和與年齡值相關(guān)的損失函數(shù)?;谀挲g段的有序回歸損失函數(shù)和基于年齡值的有序回歸損失函數(shù)一起優(yōu)化,通過基于年齡段的有序回歸損失函數(shù)判斷年齡是否大于某個(gè)年齡段,通過年齡值的有序回歸函數(shù)判斷年齡是否大于某個(gè)年齡值,基于年齡段的損失函數(shù)對(duì)基于年齡值的損失函數(shù)分類有幫助。從而使得所述包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型具有較好的魯棒性。
基于上述方法,我們?cè)谀挲g公開的數(shù)據(jù)集morphalbumi、morphalbumii和fg-net上做了三組對(duì)比實(shí)驗(yàn)。
數(shù)據(jù)庫(kù)介紹:morph人臉數(shù)據(jù)庫(kù)分兩個(gè)子集,morphalbumi和morphalbumii,前者是包含1679張灰度圖像的早期采集的數(shù)據(jù)集。后者是包含了一共78207張既有灰度又有彩色圖的大型數(shù)據(jù)庫(kù)。morphalbumii是一個(gè)用于研究非常著名的年齡識(shí)別數(shù)據(jù)庫(kù)。包含了多個(gè)人群在不同年齡段(包括16歲到77歲)的人臉圖片,每個(gè)人擁有若干張人臉圖片,大小為400x480。fg-net數(shù)據(jù)集包含年齡在0至69歲之間的82個(gè)多人種族的1002張面部圖像。數(shù)據(jù)集年齡分布不平衡,因?yàn)?0%的圖像是從童年時(shí)期拍攝的。
第一個(gè)實(shí)驗(yàn)是把本發(fā)明實(shí)施例中的年齡損失函數(shù)和以下兩種方法對(duì)比:(1)softmax損失函數(shù),其中年齡估計(jì)被認(rèn)為是k個(gè)分類問題,其中k是年齡數(shù);(2)單任務(wù)損失函數(shù),其中僅使用年齡標(biāo)簽等級(jí)損失函數(shù)。得到的mae得分(即平均年齡誤差),由公式:
其中,
表1本發(fā)明實(shí)施例中的多任務(wù)損失函數(shù)和softmax、單任務(wù)損失函數(shù)對(duì)比結(jié)果
在第二個(gè)實(shí)驗(yàn)中,我們把lfd-cnn(包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò))與去除了潛在銀子分解層的通用卷積神經(jīng)網(wǎng)絡(luò)(generic-cnn)來(lái)評(píng)估lfd-cnn框架的有效性。除潛在因子分解層之外,通用卷積神經(jīng)網(wǎng)絡(luò)具有與lfd-cnn相同的參數(shù)設(shè)置,除了潛在因子分解層不一樣。兩種方法都使用多任務(wù)損失函數(shù)。這兩個(gè)結(jié)果mae得分顯示在下表2中。
表2lfd-cnn和generic-cnn在不同數(shù)據(jù)庫(kù)上的性能對(duì)比
在第三個(gè)實(shí)驗(yàn)中,我們將我們的方法與文獻(xiàn)中的其他方法進(jìn)行比較。我們采用隨機(jī)選取80%的圖片做訓(xùn)練,其余20%做測(cè)試。在該實(shí)驗(yàn)中,使用mae和cs度量。cs度量方法指的是cumulativescore,是描述誤差在區(qū)間內(nèi)的錯(cuò)誤率。計(jì)算公式如下:
本文中k={0,2,4,6,8,10}。mae比較的結(jié)果如下表3所示。結(jié)果表明,在不同數(shù)據(jù)庫(kù)上我們的方法都優(yōu)于其他方法,這證實(shí)了我們方法的有效性。
表3本發(fā)明lfd-cnn方法與其他方法結(jié)果對(duì)比
本發(fā)明實(shí)施例通過構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò),所述潛在因子分解層可以將圖像的特征分解為需要獲取的與年齡相關(guān)的分量和與年齡無(wú)關(guān)的相關(guān)分量,所以能夠基于與年齡相關(guān)的分量進(jìn)行訓(xùn)練以及檢測(cè),使得所述卷積神經(jīng)網(wǎng)絡(luò)模型具有較好的魯棒性;另外通過構(gòu)建的與年齡段相關(guān)的損失函數(shù)和與年齡值相關(guān)的年齡損失函數(shù)的多任務(wù)損失函數(shù)使得估算的年齡的更準(zhǔn)確,魯棒性更好。
應(yīng)理解,在上述實(shí)施例一中,各步驟的序號(hào)的大小并不意味著執(zhí)行順序的先后,各步驟的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過程構(gòu)成任何限定。
實(shí)施例二:
參見圖5,圖5是本發(fā)明實(shí)施例二提供的一種人臉圖像年齡估算裝置的示意框圖,為了便于說(shuō)明,僅示出與本發(fā)明實(shí)施例相關(guān)的部分。
該人臉圖像年齡估算裝置可以是內(nèi)置于終端設(shè)備(例如手機(jī)、平板電腦、筆記本、計(jì)算機(jī)等)內(nèi)的軟件單元、硬件單元或者軟硬結(jié)合的單元,也可以作為獨(dú)立的掛件集成到所述終端設(shè)備中。
所述一種人臉圖像年齡估算裝置包括:
模型構(gòu)建模塊21,用于構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型;
初始化模塊22,用于初始化所述卷積神經(jīng)網(wǎng)絡(luò)模型;
訓(xùn)練模塊23,用于將預(yù)處理后的圖像輸入初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型,根據(jù)所述預(yù)處理后的圖像基于年齡損失函數(shù)通過反向傳播法訓(xùn)練所述初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型;
年齡估算模塊24,用于將待檢測(cè)人臉圖像輸入訓(xùn)練后的所述卷積神經(jīng)網(wǎng)絡(luò)模型,輸出所述待檢測(cè)人臉圖像中人臉的年齡。
可選的,所述初始化模塊22包括:
通用網(wǎng)絡(luò)初始化單元221,用于采用人臉身份識(shí)別任務(wù)預(yù)訓(xùn)練獲得所述卷積神經(jīng)網(wǎng)絡(luò)模型中除所述潛在因子分解層之外的各層的初始化參數(shù);
潛在因子分解層初始化單元222,用于采用預(yù)定的濾波器初始化所述潛因子分解層的參數(shù)
所述參數(shù)u和v用預(yù)定的濾波器初始化,所述σ2初始化為0.1,所述
可選的,所述年齡損失函數(shù)為:
其中,在k∈[1,kgroup]中,pk指預(yù)測(cè)年齡大于第k個(gè)年齡段的概率,在k∈[1,kage]中,pk指預(yù)測(cè)年齡大于第k個(gè)年齡的概率,kgroup是年齡段,kage是年齡標(biāo)簽的最大值。
可選的,所述訓(xùn)練模塊23包括:
正向傳播單元231,用于將面部通用特征轉(zhuǎn)換為與年齡相關(guān)的向量
反向傳播單元232,用于通過梯度下降法反向求導(dǎo)所述年齡損失函數(shù)更新所述卷積神經(jīng)網(wǎng)絡(luò)模型中除所述潛因子分解層之外的各層的參數(shù),通過以下公式更新所述潛在因子分解層的參數(shù)
u=(c-db-1e)(a-fb-1e)-1,
v=(d-ca-1f)(b-ea-1f)-1,
其中,
可選的,所述年齡估算模塊24包括:
轉(zhuǎn)換單元,用于將所述卷積神經(jīng)網(wǎng)絡(luò)模型中的潛在因子分解層轉(zhuǎn)換為全連接層;
面部通用特征獲取單元,用于將預(yù)處理后的待檢測(cè)人臉圖像輸入所述卷積神經(jīng)網(wǎng)絡(luò)模型,在所述全連接層之前獲得人臉圖像的面部通用特征;
分解單元,用于將所述面部通用特征輸入所述全連接層得到與年齡相關(guān)的特征和與年齡無(wú)關(guān)的特征;
年齡估算單元,用于將與年齡相關(guān)的特征輸入所述卷積神經(jīng)網(wǎng)絡(luò)模型中最后的分類器根據(jù)公式
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能單元、模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元、模塊完成,即所述裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實(shí)施例中的各功能單元或模塊可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中,上述集成的單元或模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。另外,各功能單元、模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本申請(qǐng)的保護(hù)范圍。上述裝置中單元、模塊的具體工作過程,可以參考前述方法實(shí)施例的對(duì)應(yīng)過程,在此不再贅述。
實(shí)施例三:
參見圖6,圖6是本發(fā)明實(shí)施例三提供的終端設(shè)備的示意框圖。如圖所示的該終端設(shè)備可以包括:一個(gè)或多個(gè)處理器601(圖6中僅示出一個(gè));一個(gè)或多個(gè)輸入設(shè)備602(圖6中僅示出一個(gè)),一個(gè)或多個(gè)輸出設(shè)備603(圖6中僅示出一個(gè))和存儲(chǔ)器604。上述處理器601、輸入設(shè)備602、輸出設(shè)備603和存儲(chǔ)器604通過總線605連接。存儲(chǔ)器604用于存儲(chǔ)指令,處理器601用于執(zhí)行存儲(chǔ)器604存儲(chǔ)的指令。其中:
所述處理器601,用于構(gòu)建包括潛在因子分解層的卷積神經(jīng)網(wǎng)絡(luò)模型;所述處理器601用于初始化所述卷積神經(jīng)網(wǎng)絡(luò)模型;所述處理器601用于通過輸入設(shè)備602將預(yù)處理后的圖像輸入初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型,根據(jù)所述預(yù)處理后的圖像基于年齡損失函數(shù)通過反向傳播法訓(xùn)練所述初始化后的卷積神經(jīng)網(wǎng)絡(luò)模型;所述處理器601用于通過輸入設(shè)備602將待檢測(cè)人臉圖像輸入訓(xùn)練后的所述卷積神經(jīng)網(wǎng)絡(luò)模型,通過輸出設(shè)備603輸出所述待檢測(cè)人臉圖像中人臉的年齡。
可選的,所述處理器601還用于采用人臉身份識(shí)別任務(wù)預(yù)訓(xùn)練獲得所述卷積神經(jīng)網(wǎng)絡(luò)模型中除所述潛在因子分解層之外的各層的初始化參數(shù);所述處理器601還用于采用預(yù)定的濾波器初始化所述潛因子分解層的參數(shù)
可選的,所述年齡損失函數(shù)為:
其中,在k∈[1,kgroup]中,pk指預(yù)測(cè)年齡大于第k個(gè)年齡段的概率,在k∈[1,kage]中,pk指預(yù)測(cè)年齡大于第k個(gè)年齡的概率,kgroup是年齡段,kage是年齡標(biāo)簽的最大值。
可選的,所述處理器601還用于將面部通用特征轉(zhuǎn)換為與年齡相關(guān)的向量
u=(c-db-1e)(a-fb-1e)-1,
v=(d-ca-1f)(b-ea-1f)-1,
其中,
可選,所述處理器601還用于將所述卷積神經(jīng)網(wǎng)絡(luò)模型中的潛在因子分解層轉(zhuǎn)換為全連接層;所述處理器601還用于將預(yù)處理后的待檢測(cè)人臉圖像輸入所述卷積神經(jīng)網(wǎng)絡(luò)模型,在所述全連接層之前通過輸出設(shè)備603獲得人臉圖像的面部通用特征;所述處理器601還用于將所述面部通用特征通過輸入設(shè)備602輸入所述全連接層通過輸出設(shè)備603得到與年齡相關(guān)的特征和與年齡無(wú)關(guān)的特征;所述處理器601還用于將與年齡相關(guān)的特征通過輸入設(shè)備602輸入所述卷積神經(jīng)網(wǎng)絡(luò)模型中最后的分類器根據(jù)公式
所述存儲(chǔ)器604,用于存儲(chǔ)軟件程序、模塊、單元以及終端設(shè)備中需要的數(shù)據(jù)信息,所述處理器601通過運(yùn)行存儲(chǔ)在所述存儲(chǔ)器604的軟件程序、模塊以及單元,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,提高基于卷積神經(jīng)網(wǎng)絡(luò)的人臉圖像年齡估算方法的魯棒性。
應(yīng)當(dāng)理解,在本發(fā)明實(shí)施例中,所稱處理器601可以是中央處理單元(centralprocessingunit,cpu),該處理器還可以是其他通用處理器、數(shù)字信號(hào)處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現(xiàn)成可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
輸入設(shè)備602可以包括觸控板、指紋采集傳感器(用于采集用戶的指紋信息和指紋的方向信息)、麥克風(fēng)、數(shù)據(jù)采集裝置、數(shù)據(jù)接收裝置等,輸出設(shè)備603可以包括顯示器(lcd等)、揚(yáng)聲器、數(shù)據(jù)發(fā)送裝置等。
該存儲(chǔ)器604可以包括只讀存儲(chǔ)器和隨機(jī)存取存儲(chǔ)器,并向處理器601提供指令和數(shù)據(jù)。存儲(chǔ)器604的一部分還可以包括非易失性隨機(jī)存取存儲(chǔ)器。例如,存儲(chǔ)器604還可以存儲(chǔ)設(shè)備類型的信息。
具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例中所描述的處理器601、輸入設(shè)備602、輸出設(shè)備603和存儲(chǔ)器604可執(zhí)行本發(fā)明實(shí)施例提供的一種人臉圖像年齡估算方法的實(shí)施例中所描述的實(shí)現(xiàn)方式,也可執(zhí)行一種人臉圖像年齡估算裝置的實(shí)施例二中所描述的實(shí)現(xiàn)方式,在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的模塊及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本發(fā)明所提供的實(shí)施例中,應(yīng)該理解到,所揭露的終端設(shè)備、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的實(shí)施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明實(shí)施例各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例各實(shí)施例技術(shù)方案的精神和范圍。