韓進,張覽
(山東科技大學 計算機科學與工程學院,青島 266590)
Adaboost算法的臉譜識別系統(tǒng)應用設計*
韓進,張覽
(山東科技大學 計算機科學與工程學院,青島 266590)
研究了灰度值、中值濾波的圖像預處理方法和Haar特征提取思想計算多尺度下相同特征。本文基于Adaboost算法針對同一個訓練集訓練不同的分類器,并將弱分類器進行集合,構成一個更強的最終分類器,實現(xiàn)了臉譜識別系統(tǒng)。通過驗證臉譜識別系統(tǒng),實現(xiàn)了對視頻流中臉譜的準確定位,達到了無拖影、噪聲少及識別準確的預期。
分類器;臉譜識別;Haar-like;Adaboost
隨著生物檢測技術的快速發(fā)展,臉譜識別技術在國家重要機關及社會安防領域具有廣泛而特殊的用途,己經被廣泛應用于相關領域。同時,臉譜識別作為機器視覺和模式檢測領域最富有挑戰(zhàn)性的課題之一,涉及到模式檢測、計算機視覺、人工智能以及圖像處理等多門學科,經常應用于人機交互領域,本課題研究了圖像預處理技術、Haar-like特征以及Adaboost算法,實現(xiàn)了對視頻中臉譜的準確識別,對推動以上各學科的發(fā)展具有重要的理論意義。
1.1 圖像預處理
1.1.1 中值濾波
中值濾波可以對圖像進行平滑處理,在圖像采集過程中,由于受各種因素的影響,圖像往往會出現(xiàn)一些不規(guī)則的噪聲,從而影響圖像的質量。處理噪聲的過程稱為濾波。濾波可以降低圖像的視覺噪聲,常用于保護邊緣信息,是經典的平滑噪聲方法。
濾波是基于排序統(tǒng)計理論的一種能有效抑制噪聲的非線性信號處理技術,基本原理是用某種結構的二維滑動模板,將板內像素按照像素值的大小進行排序,生成單調上升(或下降)的二維數據序列。二維中值濾波輸出為g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分別為原始圖像和處理后圖像。W為二維模板,通常為3×3或5×5區(qū)域,也可以是不同的形狀,如線狀、圓形、十字形、圓環(huán)形等。
1.1.2 灰度化
圖像灰度化的過程就是將彩色圖像轉換為灰度圖像的過程,彩色圖像包含較多人臉特征信息,但是直接作為處理對象會使過程復雜化。相比之下,灰度圖像在保留了人臉主要特征信息的基礎上,減少了總信息量。
在RGB模型中,如果R=G=B,則彩色表示一種灰度顏色,其中R=G=B的值叫灰度值,因此,灰度圖像每個像素只需一個字節(jié)存放灰度值,灰度范圍為0~255。圖像灰度化處理的算法思想是加權平均值法。根據重要性或其他指標給R、G、B賦予不同的權值,并使R、G、B的加權值平均,即f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j),其中R(i,j)、G(i,j)、B(i,j)分別為R、G、B的權值。只有當Cgray<<0.30R 0.59G 0.11B 且 R< 1.2 特征選取與計算 1.2.1 特征選取 Adaboost臉譜識別訓練算法很重要的一方面是特征選取。選取的特征為Haar-like特征,其分為三類:邊緣特征、線性特征及中心特征,組合成特征模板。特征模板內有白色和黑色兩種矩形,并定義該模板的特征值為白色矩形像素和減去黑色矩形像素和。在確定了特征形式后,Harr-like特征的數量就取決于訓練樣本圖像矩陣的大小,特征模板在子窗口內任意放置,一種形態(tài)稱為一種特征,找出所有子窗口的特征是進行弱分類訓練的基礎。Haar-like特征如圖1所示。 圖1 Harr-like特征 1.2.2 特征計算 積分圖計算方法是Adaboost識別訓練算法的重要組成部分,利用樣本的Harr-like特征進行分類器訓練,得到一個級聯(lián)的boosted分類器。訓練樣本分為正例樣本和反例樣本,其中正例樣本是指待檢目標樣本,反例樣本指其他任意圖片,所有的樣本圖片都被歸一化為同樣大小。每個特定分類器所使用的特征用形狀、興趣區(qū)域中的位置以及比例系數來定義。每個矩形框內的象素和都可以通過積分圖象很快計算出來。 1.3 Adaboost臉譜識別 Adaboost算法框架可以分為三大部分:第一部分,使用Harr-like特征表示人臉,使用“積分圖”實現(xiàn)特征數值的快速計算;第二部分,使用Adaboost算法挑選出一些最能代表人臉的矩形特征的弱分類器,按照加權投票的方式將弱分類器構造為一個強分類器;第三部分,將訓練得到的若干強分類器串聯(lián)組成一個級聯(lián)結構的層疊分類器,級聯(lián)結構能有效地提高分類器的檢測速度。Adaboost算法是一種用來分類的方法,把一些比較弱的分類方法合在一起,組合出新的很強的分類方法。Adaboost算法分類效果如圖2所示。 使用Adaboost算法進行類別劃分時需要規(guī)劃一條錯誤率最小的基線,但深藍色球被錯誤劃分到紅色區(qū)域,因此加重錯誤球的權重,所以在下一次劃分時,將優(yōu)先考慮那些權重大的球,最終得到了一個準確的劃分,如圖3所示。 圖2 Adaboost分類效果 圖3 多條線效果 基于Adaboost算法的臉譜識別即從圖片中找出所有包含人臉的子窗口,將人臉的子窗口與非人臉的子窗口分開。識別基本步驟如下: ① 將規(guī)格為20×20點陣的圖片提取出簡單的特征,稱為Harr特征,如圖4所示。 圖4 Harr特征 計算方法是用白色區(qū)域內的像素和減去黑色區(qū)域像素和,因此在人臉與非人臉圖片的相同位置上,值的大小并不等價,這些特征可以用來區(qū)分人臉和非人臉。區(qū)分結果如圖5所示。 圖5 臉譜區(qū)分結果 ② 使用約數千張切割好的人臉圖片以及Haar特征數在一萬以上的背景圖片作為訓練樣本。首先訓練圖片一般歸一化到規(guī)格為20×20像素大小的圖片中。該圖片中可供使用的Haar特征數在一萬個左右,然后通過Adaboost算法挑選數千個有效的Haar特征來組成臉譜識別器。 圖7 Linux內核配置界面 ③ 使用學習算法訓練出一個臉譜識別器后,便可以在各個場合使用。同時,將圖像按比例依次縮放,然后在縮放后的圖片中依次判別是否為人臉。 2.1 系統(tǒng)實現(xiàn) 臉譜識別系統(tǒng)需要完成視頻流的采集、網絡傳輸以及臉譜識別三個基本過程。視頻流的采集要實現(xiàn)Linux內核中驅動的配置,使其符合UVC技術規(guī)格。網絡傳輸主要基于TCP/IP協(xié)議棧中的TCP協(xié)議實現(xiàn),完成視頻流數據的上傳工作。臉譜識別采用OpenCV技術實現(xiàn)視頻中動態(tài)臉譜識別并進行目標定位。系統(tǒng)工作流程圖如圖6所示。 圖6 系統(tǒng)工作流程圖 2.1.1 攝像頭驅動實現(xiàn) 系統(tǒng)使用的攝像頭是Linux內核公開支持的攝像頭芯片,符合UVC標準。首先使用Ubuntu12.03配置交叉編譯環(huán)境的支持,然后安裝gcc編譯器來實現(xiàn)對c++文件的編譯連接。最后在主目錄下安裝gz壓縮包,這里使用符合開發(fā)板的config_mini2440_w35作為默認配置文件,然后執(zhí)行“make menuconfig”,出現(xiàn)Linux內核界面后即能夠實現(xiàn)所需要的配置工作。內核配置界面如圖7所示。 圖8 V4L2視頻采集流程圖 Video For Linux 2是Linux內核中關于視頻設備的內核驅動,必須在Ubuntu系統(tǒng)中對V4L2配置才能生效。它為針對視頻設備的應用程序編程提供一系列接口函數。對于USB攝像頭,其驅動程序中需要提供基本I/O操作接口函數open、read、write、close的實現(xiàn),對中斷的處理實現(xiàn),內存映射功能以及對I/O通道的控制接口函數ioct1的實現(xiàn)等,并把它們定義在struct file_operations中。當應用程序對設備文件進行諸如open、close、read、write等系統(tǒng)調用操作時,Linux 2.6.32內核將通過file_operations結構訪問驅動程序提供的函數,通過這種途徑實現(xiàn)上述的功能。其主要流程如圖8所示。 2.1.2 網絡傳輸實現(xiàn) 圖9 TCP連接過程 視頻流采集后需要把圖像的每一幀數據通過網絡傳輸到上位機,因此需要在完成視頻采集的基礎上建立網絡服務器端,實現(xiàn)客戶端和服務器之間的高質量數據通信。視頻流的傳輸需要可靠性極強的TCP協(xié)議來傳輸,以實現(xiàn)臉譜識別系統(tǒng)對大數據流通的強烈要求。圖9所示為TCP連接過程。 圖10 系統(tǒng)界面與識別結果 Linux系統(tǒng)是通過提供套接字socket來進行網絡編程的。通過服務端程序進行網絡傳輸時涉及到的套接口操作函數主要有:socket函數,主要功能是創(chuàng)建指定類型的套接口并返回套接口描述符;bind()函數,主要功能是使套接口與IP 地址和端口號綁定;connect()函數,主要功能是用來與遠端服務器建立連接;listen()函數,主要功能是當socket 與某一端口捆綁以后監(jiān)聽該端口,以便對到達的服務請求加以處理;accept()函數,主要功能是接受連接隊列里的服務請求,并返回一個新的socket 描述符來供這個新連接使用。 將采集格式符合UVC的原始視頻圖像幀數據壓縮成JPEG 格式,并當客戶端端口發(fā)出連接請求時,服務端進行連接驗證,連通后就可以通過子進程向客戶端發(fā)送JPEG 圖像數據: if((size=(yuv420p_to_JPEG(&imagebmp,imageptr,640,480,20)))<0){ //調用分叉函數,返回值: 若成功調用一次則返 //回兩個值,子進程返回0,父進程返回子進程標 //記;否則,出錯返回-1 if(!fork()){ if(revbuf[5]==' ')//調用發(fā)送函數 send(nsockfd, imagebmp, size, 0); } } 2.1.3 OpenCV實現(xiàn) OpenCV作為一個跨平臺計算機視覺庫,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。本模塊首先通過socket從服務器端取一幀圖片,然后通過OpenCV內置的圖像解碼API將其轉換成OpenCV特有的IPlImage結構體。圖像文件的操作功能是通過標準C函數庫中的文件函數完成的,直接用“open”函數打開一個文件,并用“write”函數將接收緩沖區(qū)中的圖片數據寫入文件中,用“close”函數關閉文件,即可形成照片文件。函數 cvHaar DetectObjects 使用針對某目標物體訓練的級聯(lián)分類器在圖像中找到包含目標物體的矩形區(qū)域。函數以不同比例大小的掃描窗口對圖像進行幾次搜索(查看cvSetImages ForHaar ClassifierCascade),對圖像中的重疊區(qū)域利用cvRunHaar ClassifierCascade進行檢測。利用某些繼承(heuristics)技術以減少分析的候選區(qū)域,例如利用 Canny 裁減 (prunning)方法。 2.2 系統(tǒng)測試 為了驗證臉譜識別系統(tǒng)的可靠性與有效性,本課題對視頻中的人臉進行了識別實驗,獲得了良好的識別效果。系統(tǒng)不斷采集視頻流信息并傳輸到上位機,視頻幀率大約為50 fps,格式規(guī)格為468×500像素點陣,通過調整燈光、區(qū)位、距離以及面部表情等對系統(tǒng)進行測試,經驗證可得系統(tǒng)對臉譜目標的識別與定位,準確無誤且無間斷,滿足有效性與可靠性的要求。圖10所示為臉譜識別測試結果與系統(tǒng)界面。 [1] 曹正貴,馬文,王志鋒.基于膚色與新型Haar-Like特征的人臉檢測算法研究[J].廣東通信技術,2015(11):27-32,40. [2] 劉曉克,孫燮華,周永霞.基于新Haar-like特征的多角度人臉檢測[J].計算機工程,2009(19):195-197. [3] 顏學龍,任文帥,馬峻.基于擴展Haar特征的AdaBoost人臉檢測算法[J].計算機系統(tǒng)應用,2015(9):152-155. [4] 糜元根,陳丹馳,季鵬.基于幾何特征與新Haar特征的人臉檢測算法[J].傳感器與微系統(tǒng),2017(2):154-157. [5] 譚兵,李珊珊,鄧秋福,等.基于膚色及改進的AdaBoost算法的人臉檢測技術研究[J].科技展望,2017(6):111-112. [6] 姚文韜.基于高清智能攝像機的人臉檢測與識別系統(tǒng)[J].信息技術與標準化,2017(3):66-68,76. [7] 王慶偉,應自爐.一種基于Haar-Like T特征的人臉檢測算法[J].模式識別與人工智能,2015(1):35-41. [8] 夏雪婷,胡正飛,潘玲云.基于OpenCV人臉檢測的室內照明自動控制系統(tǒng)[J].計算機技術與發(fā)展,2017(4):1-6. [9] 李揚,曹著明.基于膚色和AdaBoost算法的人臉檢測[J].現(xiàn)代計算機:專業(yè)版,2017(5):77-80. 韓進(教授),主要研究方向為嵌入式計算機控制、計算機系統(tǒng)結構、電子電路;張覽(碩士研究生),主要研究方向為嵌入式系統(tǒng)技術。 Design of Face Recognition System Based on Adaboost Algorithm Han Jin,Zhang Lan (School of Computer Science and Engineering,Shandong University of Science and Technology,Qingdao 266590,China) In the paper,the image preprocessing method of gray value and median filter are studied,then the same feature of Haar feature extraction are researched.The different classifier based on Adaboost algorithm for the same training set is designed.The weak classifiers are set to form a stronger final classifier,and finally the face recognition is achieved.By verifying the facebook recognition system,the accurate positioning of the face in the video stream has achieved no smear,less noise,and accurate prediction. classifier;face recognition;Haar-lik;Adaboost 山東省自然科學基金資助(ZR2015DM013);國家自然科學基金(41572244)。 TP399 A ?士然 2017-04-07)2 系統(tǒng)實現(xiàn)及測試
結 語