[發明專利]基于光流特征的笑臉識別系統及方法在審
| 申請號: | 201410680069.3 | 申請日: | 2015-08-03 |
| 公開(公告)號: | CN104504366A | 公開(公告)日: | 2015-07-29 |
| 發明(設計)人: | 李保印 | 申請(專利權)人: | 上海聞泰電子科技有限公司 |
| 主分類號: | G06K9/00 | 分類號: | G06K9/00 |
| 代理公司: | 上海新天專利代理有限公司 31213 | 代理人: | 王敏杰 |
| 地址: | 200001 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 特征 笑臉 識別 系統 方法 | ||
1.一種基于光流特征的笑臉識別系統,其特征在于,所述系統包括:數據庫模塊、預處理模塊、特征提取模塊、分類識別模塊;
所述預處理模塊包括圖像預處理模塊;所述圖像預處理模塊包括圖像平滑單元、尺寸歸一化單元、灰度均衡單元;
所述圖像平滑單元用以利用鄰域平均法消除圖像噪聲;用幾個像素灰度的平均值來代替每個像素的灰度;假定有一幅N×N個像素的圖像f(x,y),平滑處理后得到一幅圖像為g(x,y);g(x,y)由下式決定:
式中x,y=0,1,2,……,N-1;S是(x,y)點鄰域中點的坐標的集合,但其中不包括(x,y)點,M是集合內坐標點的總數;式(1)說明,平滑化的圖像g(x,y)中的每個像素的灰度值均由包含在(x,y)的預定鄰域中的f(x,y)幾個像素的灰度值的平均值來決定;以(x,y)點為中心,取單位距離構成一個鄰域,其中點的坐標集合為
S={(x,y+1),(x,y-1),(x+1,y),(x-1,y)}??(2)
所述圖像平滑單元還采用閾值法減少由于鄰域平均所產生的模糊效應;當一些點和它的鄰域內的點的灰度平均值的差不超過規定的閾值T時,就仍然保留其原灰度值不變,如果大于閾值T時就用它們的平均值來代替該點的灰度值;以減少模糊的程度;其基本方法由下式決定
其中,T為規定的非負閾值;
所述尺寸歸一化單元用以通過尺度校正、平移、旋轉的方法去除圖像中的結構變形,使人臉圖像標準化;
所述灰度均衡單元用以減少光照對人臉圖像灰度分布的影響,對人臉樣本圖像進行直方圖均衡化;直方圖均衡化處理是把原始圖像的灰度直方圖從比較集中的某個灰度區間變成在全部灰度范圍內的均勻分布;
所述特征提取模塊包括人臉檢測單元、光流計算單元、光流特征生成單元;
所述特征提取模塊用以采用光流特征提取方法;提取光流特征就是對兩幅圖像做以下?操作:1)輸入圖像;輸入圖像為兩幅圖像,用以測試某一幅表情圖像是否是笑臉圖像;2)人臉檢測;光流特征提取嚴格針對人臉區域,采用的Jaffe數據庫中的圖像需要進行人臉檢測,剔除周圍不相關的區域,得到準確的人臉區域,將人臉區域從圖像中提取出來,并進行歸一化;
所述人臉檢測單元在輸入的圖像中如果存在人臉區域,則檢測出人臉,確定所有人臉的大小、位置和位姿;采用Haar-Like特征與級聯的Adaboost學習算法相結合的方法;具體步驟如下:
第一步、對人臉進行Haar-Like特征計算,運用“積分圖”算法快速提取特征;
目標的特征通常是對待分類目標進行研究后得到的知識進行編碼來取得的,用來編碼的知識通常很難從原始圖像的像素中直接獲到;在人臉圖像的模型建立過程中,運用人臉的特征能夠使得人臉跟非人臉這兩個類別的類內距離得到大大的降低;
將人臉特征經過不斷的延展之后得到新的特征,將此新特征叫做“矩形特征”;表示矩形特征的值通常被人們叫做“特征值”;
將訓練窗口的規模初始化為W*H個像素點;W代表特征原型長度具有的像素個數,h代表特征原型寬度具有的像素個數;
令:X=(~W)/w,.~表示對數值取整;一個大小為w*h的特征原型在一個大小為W*H的搜索窗中得到的矩形特征的個數常常用下面的公式的計算結果來表示;
利用新的圖像表示方法——積分圖像,計算矩形特征的特征值,只與此特征矩形的端點的積分圖有關,所以不管此特征矩形的尺度變換如何,特征值的計算所消耗的時間都是常量;這樣只要遍歷圖像一次,求得所有子窗口的特征值;
積分圖的定義為:
其中,I(x',y')為圖像在點(x',y')處的像素值;
為了節約時間,減少重復計算,則圖像I的積分圖按如下遞推公式計算:
這樣就能進行2種運算:
第一種運算方法,對任意矩形區域內像素積分;由圖像的積分圖可方便快速地計算圖像中任意矩形內所有像素灰度積分;
第二種運算方法,特征值計算;矩形特征的特征值是兩個不同的矩形區域像素和之差,由(1)式計算任意矩形特征的特征值;
運用積分圖快速計算給定的矩形之所有象素值之和Sum(r);假設r=(x,y,w,h),那么此矩形內部所有元素之和等價于下面積分圖中下面這個式子:
Sum(r)=ii(x+w,y+h)+ii(x-1,y-1)-ii(x+w,y-1)-ii(x-1,y+h)??(15)
第二步、根據AdaBoost算法提取最有效的Haar-Like特征,經過多次迭代確定各個弱分類器的權值;
AdaBoost算法同時進行訓練分類器和特征選擇的工作,這是它的一個非常重要的特點;AdaBoost算法中的每個弱分類器都與某個特征對應,弱分類器的個數等于矩形特征數;訓練過程中從大量的弱分類器中選出一個在當前樣本權重分布情況下具有最小分類錯誤率的弱分類器作為本輪的最優弱分類器,進行T輪訓練以后,最終得出T個最具代表性的特征,對應了T個弱分類器,最后根據每個特征的不同權值加權后連接得到一個非常強大的分類器;
令X為訓練樣本空間,Y={0,1}中包含了訓練樣本可能來自的類別的記號;1代表正的樣本點,即人臉樣本,0代表負的樣本點,即非人臉樣本;假設一共有K個矩形特征;wt,j代表第t輪迭代過程中的第j個樣本點所具有的權重;算法的具體實現通常包含下面的4個重要環節:
(1)已知訓練樣本集X={(x1,y1),(x2,y2),…,(xn,yn)};式中xi∈X;假定訓練集中共包含l個人臉樣本點,m個非人類樣本點,l+m=n;
(2)給每個樣本點一個起始權重;
(3)對于t=l,…,T;T為循環次數;
①對樣本所具有的權重執行歸一化操作;
②針對每一個特征j,在已知的樣本權重分布情況下訓練得到弱分類器ht,j(x),通過計算得到每個弱分類器對樣本集的分類錯誤率,
其中j=1,2,…,n??(16)
③確定第t輪迭代的最優弱分類器ht(x),令k=argminεt,j,并將樣本集的分類錯誤率取為εt=εt,k;
④根據獲得的最優弱分類器修改樣本的權重:其中βt=εt/(1-εt);ei=0,表示xi被正確分類,ei=1表示xi被錯誤分類;
(4)最后得到的強分類器為:
式中:
第三步、將訓練得到的弱分類器進行級聯,組成完整的人臉檢測系統;
為了能夠改善人臉檢測的時間性能,利用新的分類器結構:分層的級聯分類器,分類器包括多層分類器,通過這樣的一種分類器組織方式使得人臉檢測過程隨著層數的遞增得到更高的精度;
上述的級聯分類器的判決過程與經過退化的決策樹的判定過程相似,若第i層將搜索子窗判定為“是”,那么這個可能會包含人臉圖像的搜索子窗便會被繼續派發到第i+1層分類器,同時誘發第i+1層的分類器進行分類工作,如此逐級檢測;這種檢測方法首先副除巨量的不包含人臉圖像的搜索子窗,從而使得人臉檢測的時間性能得到優化;
Adaboost分類器的訓練過程包括:
利用光流計算單元計算光流;采用Horn-Schunck算法進行光流(u,v)的計算,設定搜索窗口為1,計算得到的光流特征向量維數為(100/2)*(100/2)=2500;
Horn-Schunck算法核心思想是:圖像上每一點的光流之間都有聯系,光流在整個圖像范圍內應該是平滑變化的,所以引入了平滑性約束,使平滑約束項極小化;
設平滑性約束項為極小化:
結合基本等式,要求極小化:
Ec=∫∫(Ixu+Iyv+It)2dxdy??(19)?
結合式18和式19可知,最后求得的光流應滿足式20:
這里λ的取值要考慮噪聲情況,噪聲較強,則說明圖像數據本身具有較低的置信度,這時便需要更多的依賴加入的光流約束,λ取較小的值;反之,若噪聲較弱,λ取較大的值;
此時,問題將轉化為求解Lagrangian最小化問題;對形如式20的形式變分問題
min{∫∫F(u,v,ux,uy,vx,vy)dxdy}??(21)?
的解釋對應Euler方程21的解
式21中
對應的Euler方程為
其中,▽2是Laplace算子;
實際計算過程中,處理對象為離散化的坐標,相應的,要對式23進行離散化處理:?離散化為
(Ixu+Iyv+It)2離散化為
cij=(Ixuij+Iyvij+It)2??(26)?
極小化目標函數為
此時,對其求關于ukl和vkl的偏導,并令其為0,有
其中,和分別是ukl和vkl的四鄰域平均,于是得到迭代過程
對Ix,Iy和It進行離散化,代入式中求解光流;
如果設定迭代初始值(u0,v0)=(0,0),則
根據中性圖像,利用Horn-Schunck計算出表情圖像中每一點的光流矢量,所有點的光流矢量共同構成這幅表情圖像的光流特征;
所述系統中的Horn-Schunck算法計算的是稠密光流的速度場,即,將圖像中的每個像素都與速度關聯,針對每個像素分別計算光流向量的u和v兩個分量;所述光流特征生成單元用以獲取圖像Horn-Schunck光流場,圖像Horn-Schunck光流場的獲取需要四個步驟:
(1)計算像素點的光流分量;計算的依據是Horn-Schunck算法中的光流(u,v)迭代公式(式29、30、31);
(2)設定搜索窗口大??;經過多次設定搜索窗口的大小,通過笑臉識別的結果,得出本系統中最合適的窗口大小為2*2,即設定winsize=1;
(3)計算窗口中的光流特征值;在每一個2*2的窗口中,含有4個像素點,對這4個像素點的u和v分量進行加法運算,得到該窗口的(u,v)分量,根據計算光流特征值;
(4)獲取圖像的光流特征向量;將所有窗口計算所得的光流特征值串聯起來,組成整幅圖像的光流特征向量;
所述分類識別模塊用以訓練和識別笑臉;在訓練和識別中,均要用到特征提取模塊得到的特征向量;訓練的目的是通過對大量訓練樣本的特征向量進行機器學習,得到能夠最大限度地區分出笑臉和非笑臉的分類器;識別過程是將測試樣本通過特征提取模塊之后得到的特征向量,送入訓練得到的笑臉分類器,通過一系列對比和劃分,最終得到測試樣本所屬的類別;
在分類識別模塊采用隨機森林的分類方法,隨機森林RF是一種聯合分類器,每棵決策樹都是一個基礎分類器,多個決策樹共同構成隨機森林;決策樹在每個節點隨機從屬性集中選取若干候選屬性,根據Gini系數最小原則選擇分類屬性和閾值;每一棵樹都依賴于獨立抽樣,并與森林中所有樹具有相同分布的隨機向量的值;采用隨機森林分類RFC時,每棵樹都投票并返回得票最多的類;
決策樹與流程圖的樹結構相類似,其中,每個內部節點都是一個分裂問題,每個分支代表該測試的一個輸出,而每個樹葉節點存放一個類標號;樹的最頂層節點是根節點;
決策樹構建的基本步驟如下:
(1)開始,所有記錄看作一個節點;
(2)遍歷每個變量的每一種分割方式,找到最好的分割點;
(3)分割成兩個節點N1和N2;
(4)對N1和N2分別繼續執行2-3步,直到每個節點足夠“純”為止;
采用Gini系數:來對決策樹進行量化純度;如果記錄被分為n類,每一類的比例P(i)=第i類的數目/總數目;Gini系數值越大,表示越“不純”,越小表示越“純”;純度差為:
其中,I代表不純度(也就是上面三個公式的任意一種),K代表分割的節點數,一般K=2;vj表示子節點中的記錄數目;上面公式實際上就是當前節點的不純度減去子節點不純度的加權平均數,權重由子節點記錄數與當前節點記錄數的比例決定;
決策樹的構建過程是一個遞歸的過程,所以需要確定停止條件,否則過程將不會結束;當前節點中的記錄數低于一個最小的閾值,那么就停止分割,將max(P(i))對應的分類作為當前葉節點的分類;
決策樹T構建好后,需要估計預測準確率;直觀說明,比如N條測試數據,X預測正?確的記錄數,那么可以估計acc=X/N為T的準確率;但是,這樣不是很科學;因為我們是通過樣本估計的準確率,很有可能存在偏差;所以,比較科學的方法是估計一個準確率的區間,這里就要用到統計學中的置信區間;
設T的準確率p是一個客觀存在的值,X的概率分布為X~B(N,p),即X遵循概率為p,次數為N的二項分布(Binomial?Distribution),期望E(X)=N*p,方差Var(X)=N*p*(1-p);由于當N很大時,二項分布可以近似有正太分布(Normal?Distribution)計算,一般N會很大,所以X~N(np,n*p*(1-p));算出,acc=X/N的期望E(acc)=E(X/N)=E(X)/N=p,方差Var(acc)=Var(X/N)=Var(X)/N2=p*(1-p)/N,所以acc~N(p,p*(1-p)/N);這樣,就通過正太分布的置信區間的計算方式計算執行區間;
正太分布的置信區間求解如下:
(1)將acc標準化,即
(2)選擇置信水平α=95%,或其他值,這取決于你需要對這個區間有多自信;一般來說,α越大,區間越大;
(3)求出α/2和1-α/2對應的標準正太分布的統計量Za/2和Z1-a/2,Za/2和Z1-a/2均為常量;然后解下面關于p的不等式;acc由樣本估計得出;即可以得到關于p的執行區間
采用的隨機森林,由兩種隨機算法共同構建,這兩種隨機算法分別是裝袋法,和基于輸入的構建方法;
裝袋法bagging是一個統計重采樣的組合技術,利用有放回的隨機重采樣來生成多個版本的預測器,然后把這些分類器融合,通常情況下,組合的分類器與單一分類器相比,其分類效果更好,原因是在最終解決問題時,結合了所有單獨分類器的特點;
利用bagging方法來生成訓練集,其具體思想及操作步驟是:原始訓練集D中,由于抽取樣本的隨機性,每個樣本未被抽取的概率為(1-1/N)N,其中N為原始訓練集D中的樣本個數;當N足夠大時,(1-1/N)N將收斂于1/e≈0.368,也就是說,在原始樣本集D中,將會有接近37%的樣本在抽樣時不會出現在bootstrap的樣本中,這些未被抽取的數據稱為袋外OOB數據,使用袋外數據來估計模型性能的方法稱為OOB估計;由于使用OOB估計和使用相同樣本容量的測試集的精度一樣,就沒有必要再使用測試集;?采用的識別率統計由OOB估計來代替;
采用Forests-RI構建隨機森林;Forests-RI構建方法是對輸入變量進行隨機分組,例如,給定d個樣本的訓練集D,目的是為組合分類器產生k棵決策樹,過程如下:首先,對于每次迭代i(i=1,2,…,k),使用有放回抽樣,由D產生d個樣本的訓練集Di,使得某些樣本可能在Di出現多次,而另一些可能不出現;設F是用來在每個節點決定劃分的屬性數,其中F遠小于可用屬性數;為了構造決策樹分類器Mi,在每個節點隨機選擇F個屬性作為該節點劃分的候選屬性;樹增長到最大規模,并且不剪枝。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海聞泰電子科技有限公司,未經上海聞泰電子科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410680069.3/1.html,轉載請聲明來源鉆瓜專利網。





