一種基于卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及模式識別、計算機視覺技術(shù)領(lǐng)域,特別涉及一種基于卷積神經(jīng)網(wǎng)絡(luò)的 人臉檢測方法及裝置。
【背景技術(shù)】
[0002] 人臉檢測是計算機視覺中一個非常重要的問題,伴隨著一些人臉識別、年齡估計、 性別估計及表情識別等應(yīng)用需求的增長,人臉檢測作為完成這些任務(wù)的第一步,獲得了越 來越多人的關(guān)注。一些傳統(tǒng)的方法是使用滑動窗口對人臉進行檢測,然后對每個得到的窗 口進行判斷,最終檢測到人臉的位置。然而這些方法使用了滑動窗口技術(shù),在該環(huán)節(jié)上會花 費大量的時間,對一些實時性要求很高的應(yīng)用,并不是特別的適用。
【發(fā)明內(nèi)容】
[0003] 為了解決現(xiàn)有技術(shù)存在的問題,本發(fā)明的目的是提供一種基于深度卷積神經(jīng)網(wǎng)絡(luò) 的人臉檢測方法。其利用深度卷積神經(jīng)網(wǎng)絡(luò)提取圖片中各個像素點的特征信息,通過學(xué)習(xí) 一個閾值,將特征值進行判斷,最后通過一個最小閉包完成人臉檢測。該方法避免了滑動窗 口帶來的時間消耗,有利于解決很多對實時性要求比較高的人臉應(yīng)用問題。
[0004] 本發(fā)明所提出的一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測方法,包括以下步驟:
[0005] 步驟S1:將訓(xùn)練集中的所有圖片縮放成預(yù)定大小的灰度圖,并為每個所述圖片中 的每個像素點賦予標簽信息,所述標簽信息用于表示其對應(yīng)的像素點是否為人臉;
[0006] 步驟S2:建立卷積神經(jīng)網(wǎng)絡(luò),其中,所述卷積神經(jīng)網(wǎng)絡(luò)各層依次為輸入層、多個卷 積層、多個全連接層和輸出層,其中,輸入層和最后一層全連接層的神經(jīng)元個數(shù)與所述圖片 的大小相同;使用梯度下降法和反向傳播算法訓(xùn)練所述卷積神經(jīng)網(wǎng)絡(luò);
[0007] 步驟S3 :將待檢測照片輸入至訓(xùn)練好的所述卷積神經(jīng)網(wǎng)絡(luò)中,得到最后一層的輸 出特征值;
[0008] 步驟S4 :將所述最后一層的輸出特征值與預(yù)定閾值進行比較,以確定所述待測照 片中各像素點是否為人臉區(qū)域;
[0009] 步驟S5 :使用最小閉包的方法,根據(jù)確定為人臉區(qū)域的各像素點檢測出人臉的位 置。
[0010] 本發(fā)明還提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測裝置,包括:
[0011] 預(yù)處理模塊:將訓(xùn)練集中的所有圖片縮放成預(yù)定大小的灰度圖,并為每個所述圖 片中的每個像素點賦予標簽信息,所述標簽信息用于表示其對應(yīng)的像素點是否為人臉;
[0012] 網(wǎng)絡(luò)建立模塊:建立卷積神經(jīng)網(wǎng)絡(luò),其中,所述卷積神經(jīng)網(wǎng)絡(luò)各層依次為輸入層、 多個卷積層、多個全連接層和輸出層,其中,輸入層和最后一層全連接層的神經(jīng)元個數(shù)與所 述圖片的大小相同;使用梯度下降法和反向傳播算法訓(xùn)練所述卷積神經(jīng)網(wǎng)絡(luò);
[0013] 檢測模塊:將待檢測照片輸入至訓(xùn)練好的所述卷積神經(jīng)網(wǎng)絡(luò)中,得到最后一層的 輸出特征值;
[0014] 比較模塊:將所述最后一層的輸出特征值與預(yù)定閾值進行比較,以確定所述待測 照片中各像素點是否為人臉區(qū)域;
[0015] 識別模塊:使用最小閉包的方法,根據(jù)確定為人臉區(qū)域的各像素點檢測出人臉的 位置。
[0016] 本發(fā)明的有益效果:
[0017] 本發(fā)明方法利于深度卷積神經(jīng)網(wǎng)絡(luò)回歸照片中每個像素點的標簽信息,避免了使 用滑動窗口等方法帶來的時間方面的消耗,大大提高檢測的速度,有利于實現(xiàn)很多對實時 性要求比較高的應(yīng)用任務(wù);該方法利用了卷積神經(jīng)網(wǎng)絡(luò)具有強大的提取特征能力,提取了 圖片中各個像素點的特征,保證是人臉檢測的正確率。
【附圖說明】
[0018] 圖1是本發(fā)明中基于深度卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測方法流程圖。
[0019] 圖2是本發(fā)明中訓(xùn)練網(wǎng)絡(luò)時,輸入的照片以及標簽信息示意圖。
[0020] 圖3是本發(fā)明中構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)示意圖。
[0021] 圖4是利用本發(fā)明進行人臉檢測的實例示意圖。
【具體實施方式】
[0022] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照 附圖,對本發(fā)明作進一步的詳細說明。
[0023] 本發(fā)明提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測方法。該方法利用深度卷積神經(jīng) 網(wǎng)絡(luò)回歸圖片中各個像素點的值,避免了滑動窗口所耗費的時間,加快了檢測的速度。以下 詳細說明本發(fā)明設(shè)計的關(guān)鍵步驟。
[0024] 圖1所示是本發(fā)明提出的一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測方法的流程圖。 如圖1所示,所述方法包括以下步驟:
[0025] 步驟S1,將訓(xùn)練集中的所有照片縮放成第一預(yù)定大小的灰度圖,所述灰度圖的每 個像素的標簽信息根據(jù)圖片各像素點是否屬于人臉分為2類,如圖2所示,所述標簽信息為 已知信息。其中,所述第一預(yù)定大小在100X100~150X150之間,優(yōu)選為112X112。
[0026] 步驟S2,建立帶有第二預(yù)定大小的卷積層和第三預(yù)定大小的全連接層的卷積神經(jīng) 網(wǎng)絡(luò),其中,所述卷積神經(jīng)網(wǎng)絡(luò)的第一層為輸入層,之后為所述第二預(yù)定大小個卷積層,之 后是所述第三預(yù)定大小個全連接層,最后是輸出層,且最后一層全連接層的神經(jīng)元個數(shù)與 輸入圖片維度相同,即為第一預(yù)定大?。辉摼矸e神經(jīng)網(wǎng)絡(luò)所有權(quán)重均隨機初始化。其中,所 述第二預(yù)定大小在3-7之間,優(yōu)選為5 ;第三預(yù)定大小優(yōu)選為1-5之間,優(yōu)選為3。使用梯度 下降法和反向傳播算法來優(yōu)化神經(jīng)網(wǎng)絡(luò)中的各個參數(shù)。
[0027] 其中,所述卷積層的激活函數(shù)優(yōu)選使用ReLU函數(shù),每個卷積層的步長、卷積子大 小、卷積子的個數(shù)均可以自由設(shè)置,網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,圖3的文字描述具體見下面實施 例。將所述灰度圖作為輸入圖片,使用梯度下降法和反向傳播算法來優(yōu)化所述卷積神經(jīng)網(wǎng) 絡(luò)中的各個參數(shù)。每個卷積層的輸入與該層權(quán)重相乘之后,會得到一個數(shù)值,ReLU函數(shù)的 原理就是,如果這個數(shù)值大于0,那么輸出值就保存這個計算值,如果這個計算值小于0,那 么輸出值就保存成〇。當然,ReLU函數(shù)也可以換成其他的激活函數(shù)。
[0028] 所述卷積神經(jīng)網(wǎng)絡(luò)的最后一層全連接層優(yōu)選使用sigmoid激活函數(shù),神經(jīng)元個數(shù) 與圖片大小相同;最后一層全連接層的輸入與該層權(quán)重相乘之后的輸出值如果為t,那么 最后一層全連接層的輸出為s(t),s(t)如下計算:
[0029]
[0030] 當然,也可以使用其他激活函數(shù)。
[0031] 步驟S2中,輸入圖片作為輸入經(jīng)過所述卷積神經(jīng)網(wǎng)絡(luò)之后,最終得到的輸出值個 數(shù)與所述輸入圖片的大小相同,即其輸出值為所述輸入圖片的每個像素點的預(yù)測值。由于 每個像素點有一個標簽值,那么用對應(yīng)于每個像素點的卷積神經(jīng)網(wǎng)絡(luò)輸出值與其相應(yīng)的標 簽值進行比較,就可以得到神經(jīng)網(wǎng)絡(luò)輸出值與實際標簽值之間的差距,那么通過調(diào)整所述 卷積神經(jīng)網(wǎng)絡(luò)中每層的權(quán)重值,使得所述差距越來越小,直到所述卷積神經(jīng)網(wǎng)絡(luò)的輸出值 與標簽值相同,則最終得到所需要的卷積神經(jīng)網(wǎng)絡(luò)。
[0032] 那么,本發(fā)明中使用L2范數(shù)作為損失函數(shù)來訓(xùn)練所述卷積神經(jīng)網(wǎng)絡(luò),定義如下:
[0033] L,=sj\\p,-m,\\2,
[0034] 其中,1^為CNN網(wǎng)絡(luò)的輸出值與相應(yīng)像素點的標簽值間的L2范數(shù)值,m1是圖片的 標簽信息,Pi是所述卷積神經(jīng)網(wǎng)絡(luò)CNN的輸出,其定義如下:
[0035]Pi=g(f(xi)),
[0036] f(x)是前一層的輸出,g( ?)是激活函數(shù)。
[0037] 根據(jù)所述L2范數(shù)值調(diào)整所述卷積神經(jīng)網(wǎng)絡(luò)各層的神經(jīng)元權(quán)重值,重復(fù)多次訓(xùn)練 所述卷積神經(jīng)網(wǎng)絡(luò),直到所述L2范數(shù)