本發(fā)明屬于圖像處理領(lǐng)域,闡述了人臉表情的情緒識別的全過程,尤其涉及一種基于elm自編碼算法的快速人臉表情識別方法。
背景技術(shù):
人臉表情的情緒識別,也就是在圖片或者視頻中識別出人臉,并作進(jìn)一步的情緒分析,這在過去的幾十年間成為生物智能特征識別領(lǐng)域的一個熱點(diǎn)。情緒識別在本質(zhì)上是要賦予計(jì)算機(jī)如何“察言觀色”的能力,改善目前比較呆板,不成熟的人機(jī)交互環(huán)境。
人臉表情的情緒分析主要包括以下幾個方面:人臉檢測與定位、圖像預(yù)處理、表情的特征提取、表情分類及情緒分析。人臉檢測常指在圖像中檢測到人臉區(qū)域,如若包含人臉,還需要定位到人臉的位置并確定尺寸,本文采用的是基于adaboost的人臉檢測法,這是一種迭代的算法,對于一組訓(xùn)練集,通過改變其中每個樣本的分布概率,而得到不同的訓(xùn)練集si,對于每一個si進(jìn)行訓(xùn)練從而得到一個弱分類器hi,再將這些弱分類器根據(jù)不同的權(quán)值組合起來,就得到了強(qiáng)分類器。檢測后的表情圖像中通常會存在噪聲、對比度不夠等缺點(diǎn),這些往往是由光照強(qiáng)度程度以及設(shè)備的性能優(yōu)劣等因素所造成。因此預(yù)處理是人臉情緒識別過程中的一個非常重要的環(huán)節(jié),有效的預(yù)處理方法能有利于提高人臉表情識別率。經(jīng)過預(yù)處理后,特征提取算法將應(yīng)用于人臉圖像提取不同表情的特征。本專利采用自編碼器和超限學(xué)習(xí)機(jī)結(jié)合的elm-ae算法作為特征提取方法,這是一種高效實(shí)用的自編碼算法,樣本數(shù)據(jù)經(jīng)過編碼和解碼處理,若重構(gòu)誤差足夠小,在限定范圍內(nèi),即可認(rèn)定此編碼code是對輸入樣本數(shù)據(jù)的有效表達(dá),即可作為人臉圖像表情的描述向量。最后,實(shí)現(xiàn)表情識別分類以及進(jìn)一步的情緒分析,依據(jù)人臉表情圖像特征提取獲得的特征矢量構(gòu)建識別模型訓(xùn)練特征庫,給定被測目標(biāo)類別標(biāo)識,包括高興、悲傷、驚訝、恐懼、憤怒、厭惡和中性。
表情特征提取是整個人臉表情識別系統(tǒng)中重要的部分,傳統(tǒng)的lbp、基于幾何特征以及基于模板的特征提取方法都有一定的缺陷,例如lbp特征提取法難以處理高維數(shù)據(jù),且運(yùn)行速度慢;基于幾何特征的方法適應(yīng)性不夠強(qiáng),同時還會丟失部分信息。
表情識別的實(shí)質(zhì)是設(shè)計(jì)一個高效的分類器,根據(jù)前階段提取的特征向量數(shù)據(jù),將目標(biāo)表情分類為六種基本表情類別之一或分為中性表情。由此可見,分類器的設(shè)計(jì)直接影響到表情識別和情緒分析的最終效果。由于特征提取后的數(shù)據(jù)量較大,而傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)、基于模板匹配、支持向量機(jī)svm等方法運(yùn)行速度不夠快,而且因?yàn)樾枰挠?xùn)練樣本過多和過長的訓(xùn)練時間,無法滿足實(shí)時性的需求。因此本文采用基于極限學(xué)習(xí)機(jī)(extremelearningmachine,elm)算法的分類器來進(jìn)行快速表情識別分類。elm是一種簡單易用、有效的單隱層前饋神經(jīng)網(wǎng)絡(luò)(slfns)學(xué)習(xí)算法。它在表情分類上有以下幾點(diǎn)優(yōu)勢:(1)elm在輸入層和隱藏層之間采用隨機(jī)權(quán)重。我們可以多次訓(xùn)練相同的數(shù)據(jù)集,這給不同的分類精度不同的輸出空間。(2)elm是一個更簡單的前饋神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法(如bp算法)需要人為設(shè)置大量的網(wǎng)絡(luò)訓(xùn)練參數(shù),這樣就會非常容易產(chǎn)生局部最優(yōu)解。而elm在確定網(wǎng)絡(luò)參數(shù)的過程中,只需要設(shè)置網(wǎng)絡(luò)的隱層節(jié)點(diǎn)個數(shù),在算法執(zhí)行過程中不需要調(diào)整網(wǎng)絡(luò)的輸入權(quán)值以及隱元的偏置,并且產(chǎn)生唯一的最優(yōu)解。因此,elm學(xué)習(xí)速度比傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)更快且泛化性能更好,可以最快地實(shí)現(xiàn)表情分類以及情緒識別。
elm的輸出為
elm算法總結(jié)如下:給定訓(xùn)練集{(xi,ti)xi∈rn,ti∈rm,i=1,2,...n},隱層節(jié)點(diǎn)輸出函數(shù)g(w,b,x)和隱層節(jié)點(diǎn)數(shù)l。
(1)隨機(jī)分配隱層節(jié)點(diǎn)的參數(shù)(wi,bi),i=1,2...,l。
(2)計(jì)算隱層輸出矩陣η。
(3)計(jì)算隱層節(jié)點(diǎn)和輸出節(jié)點(diǎn)之間的權(quán)重β.β=h+t。
h+是隱層輸出矩陣h的moore-penrose廣義逆矩陣,可以使用正交投影法、正交化法和奇異值分解等方法來計(jì)算得到。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對現(xiàn)有的表情識別算法中存在的問題,提供一種基于elm自編碼算法的快速人臉表情識別方法。一種更快更高效的快速表情識別方法。
本發(fā)明的技術(shù)方案主要包括如下步驟:
步驟1、訓(xùn)練人臉區(qū)域檢測分類器
1-1.給定一系列訓(xùn)練樣本(x1,y1),(x2,y2),...,(xi,yi),(xn,yn),其中xi表示第i個樣本,yi=0時表示其為負(fù)樣本(非人臉),yi=1時表示其為正樣本(人臉),n為總共的訓(xùn)練樣本數(shù)量。
1-2.初始化權(quán)重并作權(quán)重歸一化:
1-3.對每個特征f,訓(xùn)練一個弱分類器h(x,f,p,θ);計(jì)算對應(yīng)所有特征的弱分類器的加權(quán)錯誤率:
1-4.對所有樣本的權(quán)重進(jìn)行更新:
1-5.訓(xùn)練之后的強(qiáng)分類器能夠被用來進(jìn)行人臉檢測識別,如若圖片中包含人臉,還會定位到人臉的位置并確定尺寸,強(qiáng)分類器h(x):
其中ht為訓(xùn)練時具有最小誤差率ξt的弱分類器。
步驟2、人臉區(qū)域預(yù)處理
2-1.把檢測出的人臉區(qū)域進(jìn)行感興趣區(qū)域roi裁剪出來,然后對圖像作像素尺寸歸一化處理:將圖片縮小/放大到某一合適的像素尺寸。
2-2.對歸一化處理后的圖像作直方圖均衡化處理來增強(qiáng)圖像對比度。對于離散圖像,均衡化公式為:pr(rk)=rk/n,0≤rk<1;k=0,1,...,l-1,其中n是像素的總數(shù)數(shù),k為灰度級總數(shù),對于8位的灰度圖像k取28=256,rk為第k個灰度級值。均衡化變換函數(shù)為:
其中nj是灰度值為j的總像素?cái)?shù)。
步驟3、人臉表情圖像特征提取
3-1.給定訓(xùn)練樣本:x=[x1,x2,...,xn],即elm-ae的輸入和輸出矩陣。
3-2.隨機(jī)生成隱層輸入權(quán)值矩陣a=[a1,...,al]和正交化偏置向量矩陣b=[b1,...,bl],將輸入數(shù)據(jù)映射到相同或者不同的數(shù)據(jù)維度空間:h=g(ax+b)ata=i,btb=1其中:g()表示激活函數(shù)。
3-3.求解elm-ae的輸出權(quán)值矩陣β。
假設(shè)輸入輸出層神經(jīng)元數(shù)量為d,隱含層神經(jīng)元數(shù)量為l。
若d<l或d>l,即對于稀疏及壓縮的特征表達(dá),
若d=l,即對于等維度的特征映射,β=h-1xβtβ=i
其中:h=[h1,...,hn]表示elm-ae的隱含層輸出矩陣。
3-4.向訓(xùn)練好的elm-ae系統(tǒng)輸入預(yù)處理后的人臉表情圖像,得到的隱含層輸出矩陣向量h即為整幅人臉圖像的紋理特征向量。
步驟4、構(gòu)建人臉表情分類器
4-1.給定訓(xùn)練樣本:{(xi,ti)|xi∈rn,ti∈rm,i=1,2,...n},隱層輸出函數(shù)g(w,b,x),隱層節(jié)點(diǎn)數(shù)l和測試樣本y。
4-2.隨機(jī)生成隱層節(jié)點(diǎn)參數(shù)(wi,bi),i=1,2,...,l。
4-3.計(jì)算出隱層節(jié)點(diǎn)輸出矩陣h(w1,…wl,x1,…,xn,b1,…bl),且
確保h列滿秩,其中w是連接隱層節(jié)點(diǎn)和輸入神經(jīng)元的輸入權(quán)重,x是訓(xùn)練樣本輸入,n是訓(xùn)練樣本個數(shù),bi是第i個隱層節(jié)點(diǎn)的偏差,g()表示激活函數(shù)。
4-4.計(jì)算出最優(yōu)外權(quán)β:β=h+t。
4-5.計(jì)算測試樣本y對應(yīng)的輸出o=h(w1,…wl,x1,…,xn,b1,…bl)β。
4-6.對測試樣本進(jìn)行表情識別分類,對elm輸出向量ο中最大值對應(yīng)的類別即為該人臉的情緒。即
本發(fā)明有益效果如下:
本發(fā)明采用的是深度極限學(xué)習(xí)機(jī)自編碼器(elm-ae)算法進(jìn)行人臉表情特征提取,該算法是一種比普通ae自編碼算法更為高效的自編碼算法,它可以快速處理較高維度的輸入數(shù)據(jù),提取其主干部分信息,并且可以實(shí)現(xiàn)原始數(shù)據(jù)高維度、等維度、低維度的特征表達(dá)。
本發(fā)明具有較快的識別速度,用elm-ae算法進(jìn)行表情特征提取時,相比于學(xué)習(xí)速率緩慢的梯度下降算法,它可以更為快速高效地提取主要信息并降維。表情識別分類時,elm只要調(diào)節(jié)神經(jīng)元的一個參數(shù),識別運(yùn)行時間短,并且準(zhǔn)確率高,是一種高效且學(xué)習(xí)速度快的算法。
本發(fā)明可以降低數(shù)據(jù)的維度并且代表了原信息(即人臉表情圖像)的主要成分,和其他特征提取算法相比,它具有快速提取圖像基本構(gòu)件的能力,還可以處理非常高維度的輸入數(shù)據(jù)。同時,基于超限學(xué)習(xí)機(jī)elm的表情分類算法具有較快的學(xué)習(xí)速度和識別速度。兩種算法的結(jié)合可以大大提高人臉表情識別的速度和準(zhǔn)確度。
附圖說明
圖1為本發(fā)明流程示意圖;
圖2為日本jaffe人臉表情圖像數(shù)據(jù)庫;
圖3為預(yù)處理后的人臉表情圖像;
圖4為elm-ae網(wǎng)絡(luò)結(jié)構(gòu)圖;
圖5為單隱層前饋神經(jīng)網(wǎng)絡(luò)示意圖。
具體實(shí)施方式
如圖1所示,首先用adaboost算法訓(xùn)練人臉區(qū)域檢測分類器,把每次訓(xùn)練所得的若干個弱分類器按照一定的權(quán)值組合起來,就可以得到可以檢測人臉區(qū)域的強(qiáng)分類器。之后將待檢測的圖片輸入到訓(xùn)練好的人臉檢測分類器,對檢測到的人臉區(qū)域進(jìn)行裁剪、尺寸像素歸一化處理以及直方圖均衡化處理。將處理后的人臉表情圖片輸入到已經(jīng)訓(xùn)練好的elm-ae特征提取神經(jīng)網(wǎng)絡(luò)中,得到的隱含層輸出矩陣向量h即為整幅人臉圖像的紋理特征向量。最后將此特征向量作為訓(xùn)練好的elm表情識別分類器的輸入,即可得到相應(yīng)的表情類別的輸出。
本發(fā)明提供了一種基于elm自編碼算法的快速人臉表情識別方法,應(yīng)用elm-ae算法將人臉表情特征提取出來并作為elm表情分類器的輸入,兩者結(jié)合既提高了運(yùn)行速度,而且準(zhǔn)確率高。
具體實(shí)現(xiàn)方法如下所示:
步驟一:訓(xùn)練人臉區(qū)域檢測分類器:對于一組訓(xùn)練樣本,通過改變其中每個樣本的分布概率,而得到不同的訓(xùn)練集si,對于每一個si進(jìn)行訓(xùn)練從而得到一個弱分類器hi,再將這些弱分類器根據(jù)不同的權(quán)值組合起來,就得到了強(qiáng)分類器。
(1-1)如圖2所示,使用日本jaffe人臉表情數(shù)據(jù)庫作為訓(xùn)練樣本,給予每個樣本初始化權(quán)重并作權(quán)重歸一化處理:
(1-2)對每個特征f,訓(xùn)練一個弱分類器h(x,f,p,θ);計(jì)算對應(yīng)所+特征的弱分類器的加權(quán)錯誤率:
(1-3)訓(xùn)練結(jié)束得到的強(qiáng)分類器即可用來進(jìn)行人臉檢測識別,如若圖片中包含人臉,可確定人臉的中心位置和尺寸大小。
強(qiáng)分類器h(x):
其中ht為訓(xùn)練時具有最小誤差率ξt的弱分類器。
步驟二:人臉區(qū)域預(yù)處理:如圖3所示,把檢測出的人臉區(qū)域進(jìn)行感興趣區(qū)域roi裁剪,然后作像素尺寸歸一化處理,將圖片縮小/放大到某一合適的像素尺寸,并且作直方圖均衡化處理。
(2-1)對檢測出人臉區(qū)域的圖片進(jìn)行roi區(qū)域分割后,作像素尺寸歸一化處理,輸出固定尺寸大小的人臉表情圖像。
(2-2)對處理后的圖像作直方圖均衡化處理,均衡化變換函數(shù)為:
步驟三:人臉表情圖像特征提?。簩lm-ae這一網(wǎng)絡(luò)結(jié)構(gòu)(如圖4)進(jìn)行訓(xùn)練,根據(jù)特征表達(dá)維度的不同,計(jì)算出不同的輸出權(quán)值矩陣β。訓(xùn)練好的elm-ae網(wǎng)絡(luò)可以用來表情圖片特征提取。
(3-1)給定訓(xùn)練樣本:x=[x1,x2,...,xn],即elm-ae的輸入和輸出矩陣。
(3-2)隨機(jī)生成隱層輸入權(quán)值矩陣a=[a1,...,al]和正交化偏置向量矩陣b=[b1,...,bl]。
(3-3)將輸入數(shù)據(jù)映射到相同或者不同的數(shù)據(jù)維度空間:
h=g(ax+b)ata=i,btb=1其中:g()表示激活函數(shù)。
(3-4)求解elm-ae的輸出權(quán)值矩陣β。
假設(shè)輸入輸出層神經(jīng)元數(shù)量為d,隱含層神經(jīng)元數(shù)量為l。
若d<l或d>l,即對于稀疏及壓縮的特征表達(dá),
若d=l,即對于等維度的特征映射,β=h-1xβtβ=i
其中:h=[h1,...,hn]表示elm-ae的隱含層輸出矩陣。
(3-5)向訓(xùn)練好的elm-ae系統(tǒng)輸入預(yù)處理后的人臉表情圖像,得到的隱含層輸出矩陣向量h即為整幅人臉圖像的紋理特征向量。
步驟四:構(gòu)建人臉表情分類器:如圖5所示,構(gòu)建基于超限學(xué)習(xí)機(jī)的表情分類器,隨機(jī)生成隱層節(jié)點(diǎn)的參數(shù),最優(yōu)化唯一的調(diào)節(jié)參數(shù)β進(jìn)行訓(xùn)練。
(4-1)給定訓(xùn)練樣本:{(xi,ti)|xi∈rn,ti∈rm,i=1,2,...n},隱層輸出函數(shù)g(w,b,x),隱層節(jié)點(diǎn)數(shù)l和測試樣本y。
(4-2)隨機(jī)生成隱層節(jié)點(diǎn)參數(shù)(wi,bi),i=1,2,...,l。
(4-3)計(jì)算出隱層節(jié)點(diǎn)輸出矩陣h(w1,…wl,x1,…,xn,b1,…bl),且
確保h列滿秩,其中w是連接隱層節(jié)點(diǎn)和輸入神經(jīng)元的輸入權(quán)重,x是訓(xùn)練樣本輸入,n是訓(xùn)練樣本個數(shù),bi是第i個隱層節(jié)點(diǎn)的偏差,g()表示激活函數(shù)。
(4-4)計(jì)算出最優(yōu)外權(quán)β:β=h+t。
h+是隱層輸出矩陣h的moore-penrose廣義逆矩陣,可以使用正交投影法、正交化法和奇異值分解等方法來計(jì)算得到。
(4-5)計(jì)算測試樣本y對應(yīng)的輸出:
o=h(w1,…wl,x1,…,xn,b1,…bl)β
對測試樣本進(jìn)行表情識別分類,對elm輸出向量ο中最大值對應(yīng)
的類別即為該人臉的情緒,即