潘鵬偉
【摘? 要】隨著時代的快速發(fā)展,人們愈發(fā)關(guān)注自己的皮膚健康狀況,如何客觀、便捷地評價人臉膚質(zhì)情況成了人們關(guān)心的問題,而便攜式的膚質(zhì)評測系統(tǒng)就極具前景。該項目建立皮膚膚質(zhì)檢測系統(tǒng),使用CelebA人臉數(shù)據(jù)集,利用Dlib庫進行人臉分割后,使用基于改進的VGG16的神經(jīng)網(wǎng)絡(luò)對進一步分割成塊的皮膚圖片進行肌齡、出油情況、細紋、痘痘、黑頭、毛孔等問題的評估。同時刻畫面部特征,根據(jù)自身特征加載相應(yīng)的五官描述。最終使用手機端APP實現(xiàn)人機交互。
【關(guān)鍵詞】人臉皮膚膚質(zhì)檢測;VGG16神經(jīng)網(wǎng)絡(luò)
1.問題背景
隨著時代的發(fā)展,人們越來越重視皮膚保養(yǎng),如何更好地保養(yǎng)皮膚,已經(jīng)成為眾多人關(guān)注的問題。針對目前市場上所存在的護膚APP都有一個共同的痛點,給用戶推薦各類的化妝品,雖然可以和已用過的用戶進行交流討論,但是很多用戶也還是不太知道用在自己身上的效果,例如某一個口紅色號在別人身上的確很好看,自己買來用可能會顯得比較老氣之類的,不太適合自己。因此,我們在此基礎(chǔ)上再次進行改進與開發(fā)。
2.模型建立
2.1模型綜述
傳統(tǒng)的皮膚膚質(zhì)檢測算法有:基于紋理特征、顏色特征和形狀特征的相應(yīng)算法,它們各有優(yōu)缺,而深度學(xué)習(xí)算法在人臉分割方面的實現(xiàn)效果顯著,可遷移地將其應(yīng)用至本項目,本項目采用VGG16的神經(jīng)網(wǎng)絡(luò)算法進行皮膚識別,其訓(xùn)練及識別流程如圖1。
利用Dlib庫對人臉進行不規(guī)則分割,先用dlib等打點工具把人臉最外層的landmark點打出來,然后利用opencv的convexhull得到凸包然后就可以摳出人臉區(qū)域,得到掩模后,將mask作為α通道,來控制圖片區(qū)域的透明度,得到4通道的人臉分割圖片。然后將該圖片進行人臉對齊,計算兩眼連線與水平線的夾角,然后通過角度得到對應(yīng)的旋轉(zhuǎn)矩陣。對圖片進行相應(yīng)的變換。將人臉分割并對其后的圖片劃分成一定數(shù)量的小塊,該項目中采取100等分,將皮膚小塊放入VGG16神經(jīng)網(wǎng)絡(luò)進行識別,給出判定結(jié)果。
2.2 VGG16基本模型
本項目使用基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法。該算法主要利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征。其對于圖像處理有極強的魯棒性和泛化能力。與傳統(tǒng)的膚質(zhì)檢測算法相比,卷積神經(jīng)網(wǎng)絡(luò)算法能夠更好地描述目標(biāo)特征。本項目采用VGG16網(wǎng)絡(luò)結(jié)構(gòu),利用ReLu函數(shù)進行線性變換。VGG16網(wǎng)絡(luò)層數(shù)為16,由13個卷積層和3個全連接層組成。該方法結(jié)構(gòu)相對簡單,在圖像識別中具有很高的準(zhǔn)確性。因此本系統(tǒng)將VGG16網(wǎng)絡(luò)作為檢測模型。
輸入一幅100*100皮膚圖像,通過卷積層使用濾波器進行卷積,為防止梯度消失的問題,使用了ReLu函數(shù)進行激活操作,保持模型的收斂速度維持在穩(wěn)定狀態(tài),然后通過池化層對特征進行降維。經(jīng)過一系列卷積、非線性和池化操作,特征被發(fā)送到全連接層。全連接層的前兩層有4096個維度,最后一層維度就是皮膚瑕疵類型。
2.3基于VGG16的膚質(zhì)檢測系統(tǒng)設(shè)計
本項目調(diào)整VGG16網(wǎng)絡(luò)模型中的訓(xùn)練集并對其部分參數(shù)進行調(diào)整,以實現(xiàn)其更優(yōu)更便捷地完成人臉膚質(zhì)檢測。
(1)本項目模型訓(xùn)練集為celebA開源人臉圖像集,方便數(shù)據(jù)的收集與采用。
(2)本項目是將1630* 1220大小的人臉皮膚圖像切割成100個163* 122大小的小圖像塊的,對小圖像塊進行分類。在預(yù)處理時,將小圖像塊縮小到100*100大小,VGG16網(wǎng)絡(luò)基本模型支持224*224大小的圖像,所以,本項目將原VGG 16網(wǎng)絡(luò)的輸入層改為支持小圖像塊大小。
(3)本項目需要識別的目標(biāo)類別為肌齡、出油情況、細紋、痘痘、黑頭、毛孔,共6類因此將表示類別數(shù)值的“classes”取值為6。
2.4手機端APP設(shè)計
基于該模型設(shè)計并實現(xiàn)了手機端應(yīng)用軟件,采用自底向上的開發(fā)方式,從數(shù)據(jù)庫出發(fā),便于控制和管理項目整體。采用前后端分離技術(shù),針對前端:本項目選用vant作為框架,簡單構(gòu)建優(yōu)化,采用NPM管理包,利用node+webpack打包,之后使用JS/CSS模塊化。針對后端:首先分析業(yè)務(wù)邏輯,建立MySQL數(shù)據(jù)庫。后端框架采用springboot集成mybatis。接口采用Restful風(fēng)格,Dao層和PO層使用mybatis逆向工程自動生成。接口文檔采用swagger技術(shù)自動生成。開發(fā)完成后打成jar包發(fā)布在服務(wù)器上。加上拍照試妝的功能,能夠幫助用戶更加便利地使用該APP實現(xiàn)更全面的功能。
3.模型結(jié)果
針對當(dāng)前不同年齡段的人需要測膚以及保養(yǎng)皮膚的情況,支持用戶通過手機自拍即可全面了解自己的膚質(zhì)情況。
皮膚分析分為肌齡、出油情況、細紋、痘痘、黑頭、毛孔。出油情況的評判標(biāo)準(zhǔn)為毛孔大小及數(shù)量,且可給出綜合得分情況。AI識別的準(zhǔn)確率已經(jīng)可以高達95%。
面部特征可智能識別性別,根據(jù)自身特征加載五官描述。
4.模型評價
VGG16神經(jīng)網(wǎng)絡(luò)模型對于人臉皮膚瑕疵的有很好的檢測效果。AI識別的準(zhǔn)確率已經(jīng)可以達到95%?;谑謾C端APP極大地提高了項目的便攜性,項目推廣性強,適用性廣。但是由于選取的訓(xùn)練數(shù)據(jù)集的皮膚瑕疵覆蓋情況不全面,較真實皮膚情況的復(fù)雜性而言,無法完全顯示出某些瑕疵情況所有的表現(xiàn)形式,導(dǎo)致模型檢測效果會有一定程度的偏差;選取的肌膚刻畫指標(biāo)的維度有限,最終呈現(xiàn)的皮膚瑕疵檢測的完整性一般。
參考文獻
[1]張景源. 便攜式人臉膚質(zhì)檢測與評價系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢理工大學(xué),2015.
[2]劉兆豐.Dlib在人臉識別技術(shù)中的運用[J].電子制作,2020(21):39-41+7.
[3]胡伏原,李林燕,尚欣茹,沈軍宇,戴永良.基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法綜述[J].蘇州科技大學(xué)學(xué)報(自然科學(xué)版),2020,37(02):1-10+25.
[4] Liu Z, Luo P, Wang X, et al. Deep learning face attributes in the wild[C]. Proceedings of the IEEE international conference on computer vision. 2015: 3730-3738.https://arxiv.org/abs/1411.7766.
[5]黃舒婷. 人臉皮膚瑕疵檢測與評價系統(tǒng)[D].西安電子科技大學(xué),2019.
基金項目:大創(chuàng)名稱:基于改進VGG16神經(jīng)網(wǎng)絡(luò)和DeepID的AI護膚化妝系統(tǒng) 編號:202010058045,該文章屬于大創(chuàng)項目資助。
天津工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院? ? 天津? ? 300000