基于AdaBoost+膚色模型的多人臉檢測考勤系統
摘要:為解決多人場景下的身份注冊問題,將人臉檢測作為依據,提出一種多人臉檢測考勤系統。該系統以智能終端拍攝圖像作為輸入,基于人臉檢測獲取考勤目標,最后通過用戶注冊獲得待考勤目標的身份信息。目前系統已投入課堂學生的點名應用中,實驗結果驗證了該系統中各環節方法的有效性和魯棒性。
關鍵詞:人臉檢測;考勤;多人;自動識別
一、概述
人臉檢測不僅是生物特征識別領域的重要課題,同時也是計算機視覺領域的研究熱點。它是人臉定位、身份驗證、身份查找等多種應用的基礎。由于具有重要的理論和應用價值,因此越來越受到研究人員的重視。目前,人臉檢測技術已經廣泛的應用于門禁、攝像監視等系統中。
人臉檢測利用圖像或視頻作為輸入,對探測區域進行檢測,以確定其中是否存在人臉及其可能的位置和區域。常用的人臉檢測的方法主要分為兩大類:(1)基于知識的方法。這類方法主要利用人臉的明顯特征如眼睛、眉毛、嘴巴、鼻子等器官特征及其相互之間的位置關系進行判斷。包括基于人臉幾何特征的人臉檢測、基于膚色模型的人臉檢測等。(2)基于統計的方法。這類方法將人臉看成一個整體,用統計的方法使用大量人臉圖像樣本的訓練構造人臉模式空間,再根據相似度量檢測人臉是否存在。包括基于神經網絡的人臉檢測、基于AdaBoost算法的人臉檢測等。
AdaBoost具有精度高、弱分類器構造簡單、檢測率高且速度快等優點,但是AdaBoost算法僅考慮灰度特征,容易造成誤檢;谀w色模型的人臉檢測方法在實際應用中容易將與顏色相近的區域誤檢為人臉。通過AdaBoost定位出入臉位置,再運用膚色模型對其進行膚色校驗則可以很好的.規避兩者缺點。因此本文提出了一種基于AdaBoost與膚色模型的人臉檢測方法,并應用于多人臉考勤系統中。
二、人臉檢測
2.1數據采集
人臉數據獲取是人臉檢測的基礎。系統對輸入數據并無過多限制條件,輸入數據可來自用戶隨身攜帶的智能手機,也可以是室內監控攝像機的拍攝結果。對于某些無法用一副圖像采集完全的大尺度場景,可利用智能手機中自帶的全景拍攝功能,完成拼接后上傳全景數據。經過調查,目前包括iPhone、三星、小米等絕大多數智能手機均自帶全景拍攝功能。即使用戶手機中無此功能,官方的應用商店如App Store. Google Play也具有諸多相關應用如:Photosynth,可免費下載用以獲取拍攝場景的全景圖像。實驗證明,借助手機全景拍攝功能采集的圖像可以作為有效的輸入,同時方便考勤人員采集考勤數據,獲取數據的便襯|生大幅增加。
2.2基于AdaBoost人臉檢測
AdaBoost是由Yoav Freund和Robert E.Schapire在1995年提出的一種迭代分類算法,其核心思想是將同一訓練集的不同弱分類器集合起來,從而構造一個強分類器。不同的弱分類器具有不同的權值,且它能根據上一次的結果確定每個樣本的權值,然后繼續通過分類器訓練,最后將每次訓練得到的分類器集合起來得到最終的分類器。
AdaBoost在人臉檢測應用中需要通過訓練大量可以區分人臉和非人臉區域的Haar特征,并從中挑選一些重要的特征并組合起來構成級聯分類器,最終生成強分類器。這個過程中需要大量的Haar特征參與訓練。經過大量樣本訓練來區分人臉和非人臉區域,最后經過AdaBoost對分類器進行計算,即可用于人臉檢測。
2.3膚色模型檢測
應用AdaBoost方法的漏檢率相對較低,但誤檢率相對較高。因此需要通過處理將一些誤檢區域去除。本文選取基于膚色模型的方法對已檢測到的人臉部分進行分析,以減少單純利用AdaBoost方法造成的誤檢率過高問題。
三、系統實現
3.1硬件環境
系統硬件環境包括:Intel Core Duo E7500 2.93GHzCPU, 2G內存以及NVIDIA GT210獨立顯卡。
3.2軟件系統
系統采用B/S架構,前端采用ASP.NET開發,主要包括:考勤人員上傳考勤圖像模塊、結果、考勤人員登錄確認模塊、顯示考勤結果等模塊。后臺服務器端采用C++借助OpenCV庫實現上傳圖像或視頻的多人臉檢測。
3.3考勤實現
系統中AdaBoost人臉檢測模塊包括收集樣本、訓練樣本生成分類器、使用生成的分類器進行人臉檢測等步驟。
樣本包括正樣本和反樣本,即包含人臉部分圖像和不包含人臉部分的圖像。樣本數量越多則生成的分類器越可靠,后期人臉檢測更準確。樣本訓練前需要對圖像進行歸一化處理,即需要使各圖像像素尺寸一致。歸一化處理后,建立正反樣本描述文件,正樣本描述文件每行內容包括圖像名字、該圖像中正樣例(人臉區域)個數、圖像的寬、圖像的高,使用空格間隔。反樣本描述文件每行內容僅包括圖像名字。之后通過OpenCV提供的opencv_createSamples可執行程序創建正反樣本vec文件。
正反樣本vec文件生成后需要通過_Opencv提供的opencv_haartraining可執行程序進行樣本訓練。訓練完成后將生成一個xml文件,即通過AdaBoost算法生成的用于人臉檢測的分類器文件。此處主要利用了AdaBoost的OpenCV實現。
使用生成的分類器進行人臉檢測時主要使用了OpenCV提供的兩個方法:
(l)load()方法,其主要功能為載人生成的分類器。
(2)detectMultiScale()方法。此方法通過使用之前載入的分類器,在輸入的圖像中查找人臉區域并返回人臉區域的位置。
在AdaBoost初步確定人臉區域后,采用膚色模型校驗。膚色檢測需要設置膚色范圍,通過將圖像中的像素點與“標準膚色”相比較,從而區分圖像中的膚色區域與非膚色區域。
在設置“標準膚色”范圍時,實驗中采用了三種廣泛使用的顏色空間:RGB色彩空間、HSV色彩空間、YCbCr色彩空間。
實驗中,共設置兩個RGB標準膚色模型。RGB膚色模型一的閾值范圍應滿足:G>40、B>20、R>G、R>B、MAX(R,GB)-MIN(R,GB》15。RGB膚色模型二的閾值范圍應滿足:R>220.|R-G|<15. R>G. R>B。
將RGB顏色轉換為HSV顏色,然后設置HSV標準膚色閾值范圍應滿足:O 將RGB顏色轉換為YCbCr顏色,然后設置YCbCr標準膚色閾值范圍為:Y>20、135 通過與標準膚色數據對比,圖像某區域像素同時符合三種標準膚色閾值范圍時即認為是膚色區域。結合AdaBoost檢測結果綜合判定人臉區域。最后通過rectangle方法在圖像上使用矩形框標注入臉位置。
使用時,首先由教師通過手機拍攝課堂照像(如圖1所示)并登錄系統上傳考勤圖像。后臺服務器監測到有圖像上傳即對圖像進行人臉檢測,并對不同人臉逐一標注序號。被考勤人員分別登錄系統,選擇圖像與自身相對應的序號。當系統發生漏檢時,系統還向用戶提供手工框選接口,以修正系統對人臉的漏檢。系統會實時將每次考勤結果存人數據庫系統,同時生成考勤圖像、考勤表等方便考勤查看。系統流程圖如圖2所示。
四、實驗結果
為驗證該考勤系統的實際效果,作者將該考勤系統應用于課堂的學生點名中。實驗發現,僅在AdaBoost算法檢測下,會出現較為嚴重的誤檢現象。在加入了膚色校驗之后,誤檢率明顯下降。結合兩種方法后,基于AdaBoost算法結合膚色模型進行人臉檢測具有很好的可用性以及魯棒性,可顯著降低誤檢率。
基于人臉檢測結果,通過學生分別登錄選擇注冊,獲得了實際上課學生的考勤結果。
五、結束語
本文基于AdaBoost算法和膚色模型校驗,結合用戶選擇注冊,實現了多入場景下的考勤。實驗證明,該方法具有良好的可用性及魯棒性,目前,考勤系統已經作為課堂考勤工具正在使用,能夠獲得準確的學生到課結果。然而,該系統還存在較多問題,當存在如遮擋、側臉、低頭等姿態時,檢測精度下降,尚不魯棒。系統可使用人臉識別方法取代人工注冊,減少用戶操作。在人臉檢測過程中,通過將采集到的人臉入庫,供后續人臉識別使用。由于傳統人臉識別方法如:PCA、LBP等,在多人大尺度場景中識別率較低,尚不滿足統計需求,因此探索多入場景下高精度人臉識別算法將是未來研究工作的重點。
【基于AdaBoost+膚色模型的多人臉檢測考勤系統】相關文章:
3.暑期應聘陷阱多