国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于圖片特征的分類算法研究

2021-07-20 00:04左浩宇
現(xiàn)代計算機 2021年15期
關鍵詞:貝葉斯分類器人臉

左浩宇

(四川大學計算機學院,成都610065)

0 引言

人臉識別一直是模式識別領域中的一個熱點研究問題,其應用場景也很多。例如,蘋果公司推出的人臉識別解鎖,攝像頭監(jiān)控中的人臉身份識別等,在商業(yè)及安全等都有著很重要的應用。而隨著人們對人臉識別的精度與魯棒性有著越來越高的要求,如在一些極端惡劣的條件下有效的進行人臉識別。在手機的人臉識別解鎖中,需要考慮人物的表情,面部裝飾等其他遮擋物帶來的影響;而在攝像頭的視頻中,需要對模糊的人臉進行身份認證。因此,人臉識別算法的研究受到了大多數(shù)研究者的重視。

1 相關工作

1.1 國內(nèi)外研究現(xiàn)狀

快速高效的人臉識別建立在人臉區(qū)域內(nèi)的關鍵信息特征點的魯棒性檢測和定位上,其主要是結(jié)合計算機的視覺分析模擬人臉姿態(tài),實現(xiàn)對人臉信息的重構(gòu),結(jié)合特征信息對樣本進行學習和訓練,通過設計特定的分類器對人臉特征進行檢測和識別。目前較為常見的人臉特征提取方法即使用卷積神經(jīng)網(wǎng)絡模型對人臉訓練并提取特征,再將提取的特征放進其他模型中進行分類。

傳統(tǒng)的人臉識別方法分為單樣本的人臉識別與批量的人臉識別。例如主成分分析、神經(jīng)網(wǎng)絡訓練,或者LBP特征提取方法等。與傳統(tǒng)的人臉識別方法相比,卷積神經(jīng)網(wǎng)絡以原始的圖像作為輸入樣本,在卷積的過程中一步步提取圖片的特征并整合,最后輸出每張圖片經(jīng)模型后的特征,其中減少了對訓練樣本的處理工作,并通過模型的學習能力抽取特征,不僅僅減少了復雜的工作量,同時提取的特征用作分類后也有著很好的效果。

昆明理工大學的趙顯歡等人[1]提出了多列深度卷積神經(jīng)網(wǎng)絡,其目標針對圖像分類問題專門設計的一個模型,增加了網(wǎng)絡的層數(shù),從而提高了網(wǎng)絡提取圖像特征的能力。構(gòu)造的多列深度神經(jīng)網(wǎng)絡模型由多個圖像預處理的3個深度卷積神經(jīng)網(wǎng)絡組合而成共15個深度卷積神經(jīng)網(wǎng)絡,將這些神經(jīng)網(wǎng)絡隨機構(gòu)成一個多列的深度卷積神經(jīng)網(wǎng)絡模型;張軍朝等人[2]提出采用人臉的姿態(tài)和神經(jīng)網(wǎng)絡相結(jié)合的人臉識別算法,其中人臉的姿態(tài)通過模型自動校準,并減少了光照角度等不確定因素對人臉圖片的影響,增強了人臉對環(huán)境變化的魯棒性,最終采用隨機森林分類;王靈等人[3]提出了一種改進Softmax分類器的深度卷積神經(jīng)網(wǎng)絡的方法,利用一個回歸算法對網(wǎng)絡輸出的特征分類并識別;黃超等人[4]結(jié)合了卷積神經(jīng)網(wǎng)絡和支持向量機進行人臉識別。首先,對人臉圖像進行卷積和下采樣處理,處理后由支持向量機分類識別;李淑[6]利用卷積神經(jīng)網(wǎng)絡處理視頻中的人臉識別,通過截取視頻中的幀,檢測當前幀中是否含有人臉,并跟蹤人臉檢測是否有新的人臉加入;曹金夢等人[7]搭建了一個雙通道卷積神經(jīng)網(wǎng)絡,同時從人臉灰度圖像與對應的LBP圖像中自動提取特征,其中灰度圖像傾向于面部細節(jié)的捕捉,針對圖像不同特點調(diào)節(jié)網(wǎng)絡的參數(shù),利用Softmax進行分類。該網(wǎng)絡能夠自動提取不同通道人臉圖像的特征,并進行加權(quán)融合,從而給出較為準確的表情識別結(jié)果。

上述研究學者都提出了一種在卷積神經(jīng)網(wǎng)絡的基礎上對網(wǎng)絡的結(jié)構(gòu)或者分類器的模型進行改進的方案來優(yōu)化人臉識別的準確率,故本文將卷積神經(jīng)網(wǎng)絡提取的特征作用在傳統(tǒng)的分類器上,并觀察其分類性能,分別使用支持向量機和樸素貝葉斯分類器對網(wǎng)絡提取的特征分類并比較這兩類分類器用作人臉識別的性能優(yōu)劣。

1.2 卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)

卷積神經(jīng)網(wǎng)絡是近年來的重點研究對象,其中,神經(jīng)網(wǎng)絡的思想來自于在對動物的腦神經(jīng)研究其神經(jīng)元時發(fā)現(xiàn)腦中的獨特網(wǎng)絡結(jié)構(gòu)可以降低網(wǎng)絡的復雜度,并將其應用在計算機學科中。目前,卷積神經(jīng)網(wǎng)絡已經(jīng)成為了最受歡迎的模型,特別是在圖像分類領域,由于其避免了對訓練集的預處理,從而可以簡化工作流程,故被大多數(shù)學者應用。

1.2.1 卷積層

卷積層即模型中專門抽取圖像特征的層,其一般由多個不同的卷積核構(gòu)成,卷積核卷積后生成特征圖,特征圖之間有共享的神經(jīng)權(quán)重,且每一個權(quán)重都與上一個神經(jīng)元連接,其具體公式如下:

其中l(wèi)表示層數(shù),j表示第j個特征圖,k表示卷積核,f表示激活函數(shù),b為偏置。

1.2.2 池化層

池化層利用了圖像的局部相關性原理,對卷積層輸入的特征在一個小的區(qū)域內(nèi)進行統(tǒng)計,在降低了維度的時候,保留了相關的信息。常用的池化層包括最大池化層、最小池化層、平均池化層。在池化操作后,輸入特征圖的寬度和高度縮小為原來的1/n。其中池化層的表達式如下:

其中,β表示乘性偏置,down表示池化函數(shù)。

1.3 支持向量機

支持向量機是一種監(jiān)督式的理論研究方法,它建立在統(tǒng)計學習的基礎之上,一般用來解決回歸問題,異常點和分類問題。他的一個重要性質(zhì)是模型在優(yōu)化的過程中也對應了數(shù)學問題中的凸最優(yōu)化問題,故其大多數(shù)的解都是全局最優(yōu)解。

如果假設訓練的數(shù)據(jù)集在特征空間中是線性可分的,在支持向量機中,引入了邊緣的概念,被定義為決策邊界與任意樣本之間的最小距離。其中,決策邊界被選為使邊緣最大化的那個決策邊界。這種算法選擇了一個特征集合,并訓練目標函數(shù),使得目標函數(shù)對于劃分的集合可以表示為對整個數(shù)據(jù)集的劃分結(jié)果。不僅提高了訓練集的劃分能力,還降低了內(nèi)存的消耗。

支持向量機的優(yōu)點在于整個算法的訓練過程訓練時間短,且推廣能力強,模型的建立較為簡單且實驗結(jié)果與實際結(jié)果較為接近[8]。

假設線性可分類樣本的集合為(xi,yi),n維空間中線性判別函數(shù)通常選擇如下函數(shù):g(x)=wx+b,而分類面方程如下:

若要對樣本正確的分類,則要求滿足條件:

其中sgn是符號函數(shù),b為閾值,對于樣本來說通過計算f(x)來對樣本分類。

1.4 樸素貝葉斯分類器

樸素貝葉斯分類器是一個傳統(tǒng)的分類器。它的主要思想即以先驗概率為依據(jù)去判斷樣本的類別,并通過這個依據(jù)選取概率最大的類別作為樣本的所屬類別。貝葉斯分類器的訓練過程分為兩個階段,樣本訓練階段和分類階段。分類器訓練階段的目的是生成分類器,并對一個樣本進行分類。

樸素貝葉斯分類器由于其計算高效,且具有堅實的理論基礎,但是其具有條件獨立性這一個前提,在滿足這個條件下,可以達到誤分類率最小[9]。

樸素貝葉斯分類的模型如下:給定一組訓練集{(x1,y1),(x2,y2)…(xm,ym) },其中m是樣本的個數(shù),每個數(shù)據(jù)集中包含n個特征,即xi=(xi1,xi2…xin)。設p(y=yi|X=x)表示輸入的樣本為x時輸出的y為yi的概率。故分類器的依據(jù)就是找出最大的p(y=yi|X=x),就將x分為yi類。依據(jù)貝葉斯定理,有:

而由于上式的分母都是一樣的,故樸素貝葉斯分類器判別公式可以寫成如下形式。

2 算法設計

2.1 算法框架

算法主要包括兩個框架,分別是使用SVM分類器和樸素貝葉斯分類器。主要思想是使用通過訓練好的卷積神經(jīng)網(wǎng)絡模型提取人臉的特征,之后利用支持向量機以及貝葉斯分類器進行分類。算法框架如圖1。

圖1 算法的框架圖

算法主要包括三個步驟,圖像的預處理,卷積神經(jīng)網(wǎng)絡提取特征和特征分類階段。在網(wǎng)絡的學習過程中,利用訓練的樣本圖像對神經(jīng)網(wǎng)絡進行訓練,之后通過訓練好的卷積神經(jīng)網(wǎng)絡提取輸入圖像的特征,將這些特征放入兩個分類器進行訓練。在實驗的驗證過程中,通過卷積神經(jīng)網(wǎng)絡提取特征后,放入分類器識別圖片并于正確結(jié)果進行比較來對比分類器的性能。

2.2 數(shù)據(jù)預處理

在對人臉圖像進行預處理的時候使用到了dlib中的人臉識別方法。dlib是一個現(xiàn)代的C++工具包,包含了用C++創(chuàng)建復雜軟件來解決實際問題的機器學習算法和工具。它被廣泛應用于工業(yè)界和學術界,包括機器人、嵌入式設備、手機以及大型高性能計算環(huán)境。

Dlib人臉檢測使用HOG特征與級聯(lián)回歸樹算法訓練的模型,可以檢測圖片中人臉的數(shù)量以及位置。

在將圖片放入神經(jīng)網(wǎng)絡模型訓練時對人臉圖像進行預處理,步驟如下:

(1)將圖像轉(zhuǎn)換為灰度圖。通過cv2中的cvtColor函數(shù)將測試集中的圖像轉(zhuǎn)換為灰度圖。

(2)人臉位置檢測。利用dlib中的函數(shù),識別圖片中的人臉位置。

(3)圖像縮放。獲得了圖片中的人臉位置后,通過resize函數(shù)放縮圖片至人臉周圍的64×64大小。

(4)圖像歸一化處理。將圖像轉(zhuǎn)換為灰度圖像后,其顏色的灰度值在0~255。將縮放后的圖像原始像素除以255進行歸一化。

2.3 卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)

卷積網(wǎng)絡主要是由輸入層、卷積層、池化層、全連接層和輸出層構(gòu)成的。每一層都有神經(jīng)元的個數(shù),卷積核的個數(shù)和相關參數(shù),池化函數(shù)等不同的特征,而訓練神經(jīng)網(wǎng)絡的目的就是訓練這些參數(shù)。由于目前卷積神經(jīng)網(wǎng)絡的理論知識尚不完整,故有一些參數(shù)的選取都是通過經(jīng)驗來選擇的。本文設計的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)如下:

(1)輸入層由64×64的灰度圖像作為輸入。

(2)卷積層L1由32個3×3的大小的卷積核組成,填充后卷積得到了32個大小為64×64的圖像。

(3)池化層S1在2×2的范圍內(nèi)對L1輸出的圖像進行最大值池化,得到了32個大小為32×32的圖像。

(4)卷積層L2由64個3×3的大小的卷積核組成,填充后卷積得到了64個大小為32×32的圖像。

(5)池化層S2在2×2的范圍內(nèi)對L2輸出的圖像進行最大值池化,得到了64個大小為16×16的圖像。

(6)卷積層L3由64個3×3的大小的卷積核組成,填充后卷積得到了64個大小為16×16的圖像。

(7)池化層S3在2×2的范圍內(nèi)對L3輸出的圖像進行最大值池化,得到了64個大小為8×8的圖像。最后通過全連接層,輸出一個512維的特征向量作為提取的特征。

具體的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)如表1所示。

表1 卷積網(wǎng)絡神經(jīng)結(jié)構(gòu)

3 實驗結(jié)果

3.1 數(shù)據(jù)集

實驗使用的數(shù)據(jù)集是LFW人臉數(shù)據(jù)集。LFW(Labeled Faces in the Wild)人臉數(shù)據(jù)庫是由美國馬薩諸塞州立大學整理收集并得到的數(shù)據(jù)庫,主要用來供人臉識別的訓練使用。數(shù)據(jù)集中一共含有13000多張人臉圖像,每張圖片都標有不同的ID,其中大約1680個人包含兩個或以上的樣本數(shù)據(jù)。

在使用這個數(shù)據(jù)集時,選取了13,233張人臉圖片。對人臉圖像預處理后,放縮成為64×64的圖像作為待處理的圖像。其中圖像由多個不同的人臉身份采集。且表情和環(huán)境都存在一定的差異。本文將原始數(shù)據(jù)集分為十份,其中九份作為訓練集訓練模型,一份作為測試集作為正樣本測試結(jié)果,負樣本則選取與正樣本數(shù)量相同的非人臉數(shù)據(jù)集合。

3.2 參數(shù)設置

在卷積神經(jīng)網(wǎng)絡中,卷積核的數(shù)量尺寸以及學習率的設置都會一定程度上影響神經(jīng)網(wǎng)絡的性能。

在卷積核的尺寸選擇方面,為了確保卷積后的特征圖為整數(shù),且經(jīng)過三層的卷積和池化后可以從64×64的圖像卷積到8×8的圖像,所以選擇的卷積核尺寸為3×3。每一層卷積前后的圖像尺寸變化可以由下式得到:

其中卷積前的圖像大小為n×n,卷積核的大小為m×m,卷積后的圖像大小為s×s。由于卷積時采用了填充的方法,故每次卷積過后的圖像尺寸不會發(fā)生變化。

圖2 訓練集的人臉集合

卷積核個數(shù)的選取與卷積神經(jīng)網(wǎng)絡的準確性相關。如果卷積核的數(shù)目越多,則提取的圖像特征越多,但是訓練的時間也會相應的變多。且每個數(shù)據(jù)集適合不同的卷積核個數(shù),如果卷積核個數(shù)過多,則網(wǎng)絡中的權(quán)重參數(shù)W的個數(shù)也變多,網(wǎng)絡變得更加復雜,而由于訓練集的樣本個數(shù)不夠,選取的樣本和可提取的特征有限,故其無法滿足網(wǎng)絡的需求,所以學習的效果也會相應的變差。所以在對不同的卷積核個數(shù)實驗對比后,選擇了第一層的卷積核個數(shù)為32個,后兩層的卷積核個數(shù)為64個。

學習率不僅影響了網(wǎng)絡中的訓練收斂速度,同時也影響了網(wǎng)絡的訓練時間和正確率。學習率過大會導致網(wǎng)絡不收斂,而學習率過小則會導致網(wǎng)絡的收斂時間過慢。在實驗當中選擇了一個經(jīng)驗值0.01作為神經(jīng)網(wǎng)絡的Adam優(yōu)化算法的學習率。

在支持向量機中也有參數(shù)需要設置,主要包括錯誤項的懲罰系數(shù)和采用的核函數(shù)是何種類型。錯誤項的懲罰系數(shù)越大,即對分錯樣本的懲罰程度越大,因此在訓練樣本中準確率越高,但是泛化能力降低,也就是對測試數(shù)據(jù)的分類準確率降低。相反,減小錯誤項的懲罰系數(shù)的話,容許訓練樣本中有一些誤分類錯誤樣本,泛化能力強。由于實驗的人臉識別中,對正確率的要求較高,所以選擇了一個較高的錯誤想懲罰系數(shù)0.9。核函數(shù)的類型選擇了高斯核函數(shù),因為樣本是圖片,其具有線性不可分性,且卷積神經(jīng)網(wǎng)絡提取的特征沒有包含任何的先驗知識,故使用這個核函數(shù)。

3.3 實驗結(jié)果

3.3.1 訓練過程

在使用卷積神經(jīng)網(wǎng)絡訓練的過程中,使用Tensor-Board可視化工具查看訓練過程。其中準確率的變化過程如圖3所示。

圖3 卷積神經(jīng)網(wǎng)絡訓練準確率(accuracy)變化過程

可以看到,隨著訓練次數(shù)的增加,卷積神經(jīng)網(wǎng)絡的準確率越來越接近于1。在實驗中設置的訓練終止閾值為0.98,所以當訓練的結(jié)果準確率大于或等于0.98時則停止訓練。

定義的損失隨著訓練過程的變化如圖4所示。

圖4 卷積神經(jīng)網(wǎng)絡訓練損失(loss)變化過程

在訓練的過程中,損失越來越接近于0,最后收斂到了0.100附近。故整個網(wǎng)絡的訓練過程是逐漸收斂的,且收斂的速度較快,在訓練到700次左右時,網(wǎng)絡訓練完成。

3.3.2 結(jié)果對比

在進行實驗時,實驗的訓練階段和測試階段是分開的。故在模型訓練完成后,將模型中的參數(shù)保存,在測試階段時再讀出參數(shù)來測試模型的性能。

訓練神經(jīng)網(wǎng)絡采用批處理的訓練方式,每次處理128張圖片作為一批,在計算誤差時計算一批圖片的準確率,當準確率達到98%時則表示卷積神經(jīng)網(wǎng)絡訓練結(jié)束。

在訓練完卷積神經(jīng)網(wǎng)絡后,用訓練好的網(wǎng)絡重新提取訓練集中的圖片特征作為輸入訓練支持向量機和貝葉斯分類器,分類器的輸出即為圖片的識別結(jié)果。

在測試時,分別用五個不同的測試集測試了五次兩個分類器的識別結(jié)果,實驗結(jié)果如表2所示。

表2 支持向量機和貝葉斯分類器結(jié)果對比

從結(jié)果可以看出,貝葉斯分類器的效果每一次都比支持向量機要好。故采用卷積神經(jīng)網(wǎng)絡提取特征與貝葉斯分類器結(jié)合的模型效果識別效果更好。

4 結(jié)語

目前的人臉識別技術仍然是學術界和工程界的一個熱點研究問題。本文基于卷積神經(jīng)網(wǎng)絡提取的特征,分別使用兩類傳統(tǒng)分類器:支持向量機和貝葉斯分類器進行人臉識別,并比較結(jié)合了卷積神經(jīng)網(wǎng)絡后,哪一個分類器的準確率更高,效果更好。不足之處在于可以對卷積神經(jīng)網(wǎng)絡的學習率進行一定的實驗對比來選擇更適合的數(shù)值,且卷積神經(jīng)網(wǎng)絡的結(jié)構(gòu)也可進行多次對比選擇。

猜你喜歡
貝葉斯分類器人臉
少樣本條件下基于K-最近鄰及多分類器協(xié)同的樣本擴增分類
學貫中西(6):闡述ML分類器的工作流程
玻璃窗上的人臉
智力考場:有趣的圖片測試
租賃房地產(chǎn)的多主體貝葉斯博弈研究
租賃房地產(chǎn)的多主體貝葉斯博弈研究
貝葉斯網(wǎng)絡概述
貝葉斯公式的應用和推廣
基于AdaBoost算法的在線連續(xù)極限學習機集成算法
“領家系”可愛臉VS“高冷系”美人臉
新兴县| 大姚县| 德钦县| 古蔺县| 北海市| 泽州县| 贵溪市| 岫岩| 山东省| 镇康县| 贡山| 邓州市| 康定县| 务川| 黄陵县| 黑龙江省| 玉山县| 色达县| 禄丰县| 德格县| 柘城县| 资兴市| 南康市| 蛟河市| 读书| 乌审旗| 喀什市| 蓝山县| 方山县| 深圳市| 汾西县| 汨罗市| 喀什市| 阜宁县| 泸溪县| 邻水| 班戈县| 海淀区| 榆中县| 琼中| 松桃|