梅珍妮,胡步發(fā)
(福州大學 機械工程及自動化學院,福建 福州 350116)
實時人臉表情識別方法的研究與實現(xiàn)
梅珍妮,胡步發(fā)
(福州大學 機械工程及自動化學院,福建 福州 350116)
摘要:進行人臉表情識別系統(tǒng)相關的算法研究,并基于網絡攝像機平臺搭建實時人臉表情識別系統(tǒng)。針對經典Retinex算法亮度圖像估計運算復雜問題,提出一種Gamma校正的單尺度Retinex圖像增強算法;對增強圖像進行HOG表情特征提取,并通過最近鄰分類器進行表情分類。搭建人臉表情識別系統(tǒng),進行實時人臉檢測與表情識別。測試結果表明該方法具有較高的識別率和魯棒性。
關鍵詞:網絡攝像機;Gamma校正;最近鄰分類器;表情識別
Research on Real-time Facial Expression Recognition Method and Its Implementation
MEI Zhenni, HU Bufa
(College of Mechanical Engineering and Automation,F(xiàn)uzhou University,F(xiàn)uzhou 350116,China)
Abstract:This paper researches on the related algorithm and builds a real-time facial expression recognition system based on network camera platform, aiming at the brightness image estimation complexly operated by the use of classic Retinex algorithm, presents a .Gamma correction single scale Retinex image enhancement algorithm, and the enhanced image HOG expression characteristics are extracted and the expression is classified by the nearest neighbor classifier. And then it builds a facial expression recognition system, and completes real-time face detection and face recognition. Test results show that the method is of high recognition rate and robustness.
Keywords:network camera; gamma correction; nearest neighbor classifier; facial expression recognition
0引言
人臉表情不僅在人與人交流中起到重要作用,也是使計算機更準確理解人類思想,實現(xiàn)人機交互的一個重要研究內容[1-2]。為更好地進行人臉表情識別算法的測試開發(fā),文中基于網絡攝像機搭建實時人臉表情識別系統(tǒng),可以實現(xiàn)實時人臉檢測及表情識別功能。表情識別系統(tǒng)的搭建為表情識別算法提供分析依據,也為人臉表情的實用化開發(fā)和應用提供硬件基礎。
表情識別系統(tǒng)主要由一臺網絡攝像機和軟件功能模塊構成。由攝像機在現(xiàn)實環(huán)境中實時采集視頻圖像信息,對視頻的每一幀單獨進行計算。系統(tǒng)工作流程如圖1所示。軟件部分,使用人臉樣本訓練分類器,進行人臉檢測,利用自建的表情庫進行表情分類器訓練,實時識別人臉表情。
圖1 系統(tǒng)工作流程圖
人臉表情識別是系統(tǒng)的中心環(huán)節(jié),其特征提取過程為先采用Gamma校正的Retinex方法[3]進行圖像增強,再使用HOG算子[4]對增強后的圖像進行梯度直方圖特征提取。并對提取的人臉表情特征使用最近鄰分類器進行分類。該系統(tǒng)能夠克服光照的影響,在一定范圍內跟蹤檢測人臉,同時能快速識別表情并實時輸出結果。
1基于Retinex理論和HOG算子的特征提取
1.1Retinex理論
Retinex是Edwin Land提出的一種顏色恒常色彩理論。傳統(tǒng)圖像增強算法只能增強圖像的某一類特征,如線性變換、圖像銳化等。Retinex可以在灰度動態(tài)范圍壓縮、邊緣增強和顏色恒定三方面達到平衡,因而可以對不同類型的圖像進行自適應的增強[3]。
圖像的形成主要由兩部分構成:入射光L(x,y)和反射物體R(x,y),最后形成的圖像用公式表示為:
I(x,y)=L(x,y)·R(x,y)
(1)
Retinex理論的目的就是為了從圖像I(x,y)中拋開入射光的影響來獲得物體的反射性質。為了將復雜的乘積形式轉化為簡單的加減運算,采用了接近人眼亮度感知能力的對數(shù)形式表示:
i(x,y)=l(x,y)+r(x,y)
(2)
其中,i(x,y)=log[I(x,y)],l(x,y)=log[L(x,y)],r(x,y)=log[R(x,y)]。
用Retinex理論進行圖像增強,關鍵是從原圖像中有效的計算出亮度圖像,除去亮度圖像的影響,得到反射物理的性質。但是,從原圖像中計算亮度圖像在數(shù)學上是一個奇異問題,只能通過近似估計的方式估算。經典Retinex算法亮度圖像運算估計復雜,文中提出一種基于單尺度Retinex的Gamma校正圖像增強算法。先對亮度圖像進行粗估計,再通過Gamma校正對圖像粗估計的結果進行補償[5]。算法流程如圖2所示。
圖2 圖像增強算法流程圖
a) 單尺度Retinex算法
Jobson根據中心/環(huán)繞Retinex算法理論,提出單尺度Retinex算法[3]。設亮度圖像為L(x,y)是平滑的,原圖像為I(x,y),反射圖像為R(x,y)。則有:
I(x,y)=L(x,y)·R(x,y)=(I(x,y)*G(x,y))·R(x,y)
(3)
在對數(shù)域中,單尺度Retinex可以表示為:
log[R(x,y)]=log[I(x,y)]-log[I(x,y)*G(x,y)]
(4)
其中,*表示卷積,G(x,y)為環(huán)繞函數(shù),一般采用高斯函數(shù)表示。
(5)
式中,G(x,y)滿足∫∫G(x,y)dxdy=1,λ為常數(shù)。c為尺度常量,c越大,灰度動態(tài)范圍壓縮的越多,c越小,圖像銳化的越明顯。
b) Gamma校正
Gamma校正能對反射圖像進行動態(tài)范圍壓縮,也能調節(jié)反射圖像在增強后圖像中的比例[5]??杀硎緸椋?/p>
r'(x,y)=[r(x,y)]1/γ
(6)
式中,γ為正數(shù),把校正后的反射圖像和亮度圖像在對數(shù)域相加,再進行反對數(shù)運算,可以得到增強后的圖像。
R(x,y)=exp[R'(x,y)]=exp[r'(x,y)+l(x,y)]
(7)
實驗結果表明,所提出的算法同經典的Retinex算法相比,可以提供更好的動態(tài)壓縮范圍、增強對比度和圖像銳化,有更好的視覺增強效果。
1.2HOG算法
梯度方向直方圖(HOG)用于模式識別是最近出現(xiàn)的一種方法。HOG特征描述算子屬于差分模式的信息提取方法,出自Lowe的尺度不變特征變換SIFT算法的最后一步,由于其有效的表達能力,受到了普遍的關注[4]。
HOG算法的步驟如下:
以關鍵點為中心取8×8的像素鄰域作為采樣窗口,然后將采樣窗口平均分為4個相等大小的塊,每個塊大小為4×4,分別計算每個小塊上每個像素的梯度方向和梯度幅值。
θ(x,y)=
tan-1(R(x,y+1)-R(x,y-1))/(R(x+1,y)-R(x-1,y))
(8)
m(x,y)=
(9)
其中,R(x,y)是圖像上(x,y)坐標上的像素值,θ(x,y)是該點的梯度方向,m(x,y)是該點的幅度值。這里梯度方向分為有符號的8個方向。如圖3所示,圓圈的高斯加權范圍,將同一小塊上所有點相同梯度方向的幅度值按照權重累加,組成該小塊的一個8維梯度直方圖,其他小塊以此類推。將4個塊的8維梯度直方圖求出后,將它們連成一個4×8=32維的關鍵點特征描述。
圖3 HOG特征提取過程
2人臉表情分類識別
人臉表情分類識別就是對人臉表情信息進行特征提取并分類的過程。通過人臉表情HOG特征模型的訓練,為每一種人臉表情訓練一組優(yōu)化的HOG模型。采用同一種表情的多幅人臉圖像訓練一種表情的HOG模型[6]。對于7種表情,共需要訓練7組HOG模型。
對于每一個HOG模型訓練步驟如下:
Step1:選擇表情人臉圖像,通過人臉檢測定位,尺寸歸一化,得到高度96mm、寬度80mm的臉部圖像。
Step2:將表情圖像作為輸入圖像I(x,y),利用高斯函數(shù)與原圖像的卷積操作進行亮度圖像估計,得到圖像L(x,y),對原圖像I(x,y)進行對數(shù)運算,除去其中的亮度因子得到粗估計反射圖像r(x,y)。
Step3:對粗估計反射圖像r(x,y)進行Gamma校正,并在對數(shù)域和亮度圖像相加,進行反對數(shù)運算得到增強后的圖像R(x,y)。
Step4:將增強后的圖像R(x,y)以8×8的像素鄰域網格作為采樣窗口,以無重疊的方式遍歷整個人臉圖像,可以得到12×10=120個小塊網格形式,分別計算每個像素點的梯度方向和幅值。
Step5:在每個小格內按照4×4像素大小的塊統(tǒng)計HOG特征。取梯度方向為8,高斯權值均為1,將塊內相同梯度方向的幅值乘以權值后相加,然后將網格內各塊的直方圖連成一個向量。最后將每個小塊的32維梯度直方圖串聯(lián),得到整個圖像的表情特征,為12×32=3840維梯度直方圖。
通過訓練,得到7種表情的7組HOG特征值,將其分別存入分類器中。采用最近鄰域方法實現(xiàn)表情的分類過程,對于測試樣本重復上述步驟,完成HOG特征值提取,依據最短歐幾里得距離作為判定準則,在各個分類器中尋找與測試樣本距離最近的訓練樣本,該訓練樣本所對應的表情類別,即是測試樣本的表情類別。
3實驗結果及分析
實驗所用的攝像機是智能變速球形網絡攝像機TC-D6系列,攝像機內置編碼器,采用RS-485總線控制。利用該網絡攝像機完成的軟件功能模塊設計包括三個主要的部分:圖像采集模塊、人臉檢測及預處理模塊、人臉表情識別模塊。
3.1圖像數(shù)據采集
圖像數(shù)據采集[7-8]是利用廠商提供的SDK開發(fā)包,從底層接收視頻圖像信息,在程序入口中添加代碼。而入口函數(shù)在程序初始化時已經被調用,并用于對攝像機發(fā)送到程序的各類消息作出響應。其數(shù)據采集過程如圖4所示。
圖4 攝像機圖像數(shù)據采集過程
函數(shù)中定義靜態(tài)變量用以保存圖像的幀號,當接收到消息時,判斷其成員變量若為所需要的圖像數(shù)據emCBMsgType_RGB32,則將所需數(shù)據指針存入隊列中。隊列成員變量具有先進先出(FIFO)的特點,便于對圖像數(shù)據的讀取及進行后續(xù)處理工作。
3.2人臉檢測及圖像預處理
對采集到的圖像數(shù)據,利用Adaboost算法基于OpenCV平臺進行人臉檢測?;趏pencv的人臉檢測包括兩方面內容:訓練分類器和利用訓練好的分類器進行人臉檢測。目前人臉檢測分類器大都是基于haar特征,利用Adaboost學習算法訓練的。
人臉檢測過程,首先生成樣本描述文件。采用MIT CBLCL圖庫訓練人臉,其中正樣本放在trainfaces文件夾下,有2429個樣本。負樣本放train onfaces文件夾下,有4548個樣本,這些樣本都是20×20的。通過命令提示符cmd指令分別進入正負樣本目標目錄,分別生成正負樣本.dat文件。通過OpenCV程序生成的HaarTraining.exe可執(zhí)行文件,生成訓練分類器所需要的正樣本.vec文件。然后訓練分類器,此文件由OpenCV程序生成的可執(zhí)行文件HaarTraining.exe完成,通過此過程生成的.xml文檔,即是所需要的分類器文件,可用于目標區(qū)域的檢測。
訓練后所得到的級聯(lián)分類器共20級,每級包含的弱分類器個數(shù)如圖5所示。
圖5 分類器訓練結果
利用已經訓練好的人臉分類器,在不同背景條件、不同光照強度的試驗環(huán)境下進行人臉檢測測試。表1為不同背景下分別測試的結果對比,其中測試圖片為簡單背景和復雜背景下的各50張包含人臉的圖片。
表1 不同背景條件下人臉檢測結果
圖6為復雜背景下人臉檢測效果圖,通過試驗得出,系統(tǒng)能夠準確地將人臉從背景中檢測出來,并對人臉目標進行穩(wěn)定的實時跟蹤。
圖6 復雜背景下人臉檢測效果圖
將檢測到的人臉區(qū)域進行高斯平滑、顏色空間轉換,得到灰度圖像,并對其進行亮度調節(jié),再進行圖像增強,最后根據雙線性插值法進行人臉圖片大小歸一化處理。如圖7所示為圖像預處理過程圖,依次分別對應原圖像、高斯平滑圖像、灰度圖像、亮度調節(jié)圖像、增強圖像。
圖7 圖像預處理過程圖
3.3實時人臉表情識別系統(tǒng)
將融合Renitex圖像增強理論的HOG算法應用于網絡攝像機的實時人臉表情識別系統(tǒng)。在人臉表情識別前,先進行表情分類器訓練。人臉表情訓練分類器的樣本是用攝像頭采集的表情圖庫,取每種表情各5張,共35張圖片。表情圖庫是由人臉檢測模塊提取的有效人臉區(qū)域,再由表情分類器進行訓練。成功訓練表情分類器后,利用網絡攝像機進行表情識別實驗。當攝像機采集視頻圖像成功檢測提取人臉區(qū)域并預處理后,對表情進行實時識別并輸出識別結果。如圖8所示為建立表情庫舉例。
圖8 表情庫舉例
實驗是在Visual Studio 10操作環(huán)境下運行,軟件在Inter Core i3-2100,3.09GHz,4G內存PC機上完成。圖9為表情識別系統(tǒng)運行界面。攝像機顯示得到的視頻大小為1080P,視頻編碼標準為H.264。當設置好界面右側各選項后,點擊LoginDevice按鈕,程序便會和攝像機建立通訊,然后按下OpenChannel按鈕,攝像機采集到的視頻便會顯示在界面左側窗口。
圖9 表情識別系統(tǒng)運行界面
實驗選取志愿者分別做出高興、驚訝等不同表情,進行實時表情識別系統(tǒng)測試。圖10為部分志愿者表情識別結果展示。表2列出了包括中性表情在內的7種表情的具體識別結果。
圖10 表情識別結果舉例
由表2可以看出,驚訝、高興等夸張的表情識別效果很好,對于害怕、中性等容易混淆的表情,系統(tǒng)誤識別率相對較低。這種現(xiàn)象主要原因有兩個:1) 測試表情是實時采集的,參與實驗的人員未經過專業(yè)訓練,不能到位的模擬各種表情;2) 表情是在實際環(huán)境中測試,環(huán)境和光線強度的變化對實驗影響較大。由實驗結果可以看出,文中所設計的表情識別系統(tǒng)穩(wěn)定,識別速度快,能達到實時表情識別的要求。
表2 人臉表情識別結果
4結論
基于網絡攝像機進行實時人臉表情的方法研究及實現(xiàn),針對經典Retinex算法亮度圖像復雜的運算,基于單尺度Retinex算法進行Gamma校正。將增強后的人臉圖像進行HOG表情特征提取,通過最近鄰分類器進行表情分類,提高了表情識別率和魯棒性。
算法選擇方面,采用Retinex算法克服光照影響獲取質量穩(wěn)定的面部表情動態(tài)序列。針對經典Retinex算法亮度圖像估計運算復雜問題,提出Gamma校正的單尺度Retinex增強圖像。為建立快速高效的人機交互系統(tǒng),采用計算簡單并能有效描述圖像紋理特征的HOG方法。可以在復雜背景中快速尋找人臉,同時能夠快速識別表情并實時輸出結果。
參考文獻:
[1] 王文成. 基于局部特征分析的人臉表情識別問題研究[D]. 濟南: 山東大學博士學位論文, 2011.
[2] 徐杜功, 丁召, 劉橋. 基于稀疏表達和改進的 LBP 算子的人臉表情識別[J]. 計算機應用與軟件, 2013, 30(4): 246-248.
[3] 宋書林, 張彥, 王憲, 等. 基于曲波變換和 Retinex 人臉光照處理算法[J]. 計算機工程與應用, 2013, 49(3): 171-173.
[4] 曲永宇, 劉清, 郭建明, 等. 基于 HOG 和顏色特征的行人檢測[J]. 武漢理工大學學報, 2011, 33(4): 134-138.
[5] 彭國福, 林正浩. 圖像處理中 Gamma 校正的研究和實現(xiàn)[J]. 電子工程師, 2006, 32(2): 30-32.
[6] Yan-ping C, Shao-zi L, Xian-ming L. Fast hog feature computation based on CUDA[C]//Computer Science and Automation Engineering (CSAE), 2011 IEEE International Conference on. IEEE, 2011, 4: 748-751.
[7] 劉步中, 張曦煌, 王慶磊. 基于嵌入式 Linux 的視頻監(jiān)控系統(tǒng)的設計[J]. 計算機工程與設計, 2009, 30(8):28-30.
[8] 高文偉, 顧明劍, 王模昌. 基于 USB2. 0 的高速實時圖像數(shù)據采集系統(tǒng)[J]. 科學技術與工程, 2007, 7(9): 1671-1819.
收稿日期:2014-01-14
中圖分類號:TP391.41
文獻標志碼:B
文章編號:1671-5276(2015)04-0145-04
作者簡介:梅珍妮(1988-),女,山東煙臺人,碩士研究生,研究方向為機電系統(tǒng)辨識與故障監(jiān)測。
基金項目:福建省自然科學基金項目(2012J01260)