基于A(yíng)daBoost+膚色模型的多人臉檢測考勤系統
摘要:為解決多人場(chǎng)景下的身份注冊問(wèn)題,將人臉檢測作為依據,提出一種多人臉檢測考勤系統。該系統以智能終端拍攝圖像作為輸入,基于人臉檢測獲取考勤目標,最后通過(guò)用戶(hù)注冊獲得待考勤目標的身份信息。目前系統已投入課堂學(xué)生的點(diǎn)名應用中,實(shí)驗結果驗證了該系統中各環(huán)節方法的有效性和魯棒性。
本文引用地址:http://dyxdggzs.com/article/277706.htm1 概述
人臉檢測不僅是生物特征識別領(lǐng)域的重要課題,同時(shí)也是計算機視覺(jué)領(lǐng)域的研究熱點(diǎn)。它是人臉定位、身份驗證、身份查找等多種應用的基礎。由于具有重要的理論和應用價(jià)值,因此越來(lái)越受到研究人員的重視。目前,人臉檢測技術(shù)已經(jīng)廣泛的應用于門(mén)禁、攝像監視等系統中。
人臉檢測利用圖像或視頻作為輸入,對探測區域進(jìn)行檢測,以確定其中是否存在人臉及其可能的位置和區域。常用的人臉檢測的方法主要分為兩大類(lèi):(1)基于知識的方法。這類(lèi)方法主要利用人臉的明顯特征如眼睛、眉毛、嘴巴、鼻子等器官特征及其相互之間的位置關(guān)系進(jìn)行判斷。包括基于人臉幾何特征的人臉檢測[1-2]、基于膚色模型的人臉檢測[3-4]等。(2)基于統計的方法。這類(lèi)方法將人臉看成一個(gè)整體,用統計的方法使用大量人臉圖像樣本的訓練構造人臉模式空間,再根據相似度量檢測人臉是否存在。包括基于神經(jīng)網(wǎng)絡(luò )的人臉檢測[5-6]、基于A(yíng)daBoost算法的人臉檢測[7-8]等。
AdaBoost具有精度高、弱分類(lèi)器構造簡(jiǎn)單、檢測率高且速度快等優(yōu)點(diǎn),但是AdaBoost算法僅考慮灰度特征,容易造成誤檢?;谀w色模型的人臉檢測方法在實(shí)際應用中容易將與顏色相近的區域誤檢為人臉。通過(guò)AdaBoost定位出人臉位置,再運用膚色模型對其進(jìn)行膚色校驗則可以很好的規避兩者缺點(diǎn)。因此本文提出了一種基于A(yíng)daBoost與膚色模型的人臉檢測方法,并應用于多人臉考勤系統中。
2 人臉檢測
2.1 數據采集
人臉數據獲取是人臉檢測的基礎。系統對輸入數據并無(wú)過(guò)多限制條件,輸入數據可來(lái)自用戶(hù)隨身攜帶的智能手機,也可以是室內監控攝像機的拍攝結果。對于某些無(wú)法用一副圖像采集完全的大尺度場(chǎng)景,可利用智能手機中自帶的全景拍攝功能,完成拼接后上傳全景數據。經(jīng)過(guò)調查,目前包括iPhone、三星、小米等絕大多數智能手機均自帶全景拍攝功能。即使用戶(hù)手機中無(wú)此功能,官方的應用商店如App Store、Google Play也具有諸多相關(guān)應用如:Photosynth,可免費下載用以獲取拍攝場(chǎng)景的全景圖像。實(shí)驗證明,借助手機全景拍攝功能采集的圖像可以作為有效的輸入,同時(shí)方便考勤人員采集考勤數據,獲取數據的便利性大幅增加。
2.2 基于A(yíng)daBoost人臉檢測
AdaBoost是由Yoav Freund 和 Robert E. Schapire在1995年提出的一種迭代分類(lèi)算法[9],其核心思想是將同一訓練集的不同弱分類(lèi)器集合起來(lái),從而構造一個(gè)強分類(lèi)器。不同的弱分類(lèi)器具有不同的權值,且它能根據上一次的結果確定每個(gè)樣本的權值,然后繼續通過(guò)分類(lèi)器訓練,最后將每次訓練得到的分類(lèi)器集合起來(lái)得到最終的分類(lèi)器。
AdaBoost在人臉檢測應用中需要通過(guò)訓練大量可以區分人臉和非人臉區域的Haar特征,并從中挑選一些重要的特征并組合起來(lái)構成級聯(lián)分類(lèi)器,最終生成強分類(lèi)器。這個(gè)過(guò)程中需要大量的Haar特征參與訓練。經(jīng)過(guò)大量樣本訓練來(lái)區分人臉和非人臉區域,最后經(jīng)過(guò)AdaBoost對分類(lèi)器進(jìn)行計算,即可用于人臉檢測。
2.3 膚色模型檢測
應用AdaBoost方法的漏檢率相對較低,但誤檢率相對較高。因此需要通過(guò)處理將一些誤檢區域去除。本文選取基于膚色模型的方法對已檢測到的人臉部分進(jìn)行分析,以減少單純利用AdaBoost方法造成的誤檢率過(guò)高問(wèn)題。
3 系統實(shí)現
3.1 硬件環(huán)境
系統硬件環(huán)境包括:Intel Core Duo E7500 2.93GHz CPU,2G內存以及NVIDIA GT210獨立顯卡。
3.2 軟件系統
系統采用B/S架構,前端采用ASP.NET開(kāi)發(fā),主要包括:考勤人員上傳考勤圖像模塊、結果、考勤人員登錄確認模塊、顯示考勤結果等模塊。后臺服務(wù)器端采用C++借助OpenCV庫實(shí)現上傳圖像或視頻的多人臉檢測。
3.3 考勤實(shí)現
系統中AdaBoost人臉檢測模塊包括收集樣本、訓練樣本生成分類(lèi)器、使用生成的分類(lèi)器進(jìn)行人臉檢測等步驟。
樣本包括正樣本和反樣本,即包含人臉部分圖像和不包含人臉部分的圖像。樣本數量越多則生成的分類(lèi)器越可靠,后期人臉檢測更準確。樣本訓練前需要對圖像進(jìn)行歸一化處理,即需要使各圖像像素尺寸一致。歸一化處理后,建立正反樣本描述文件,正樣本描述文件每行內容包括圖像名字、該圖像中正樣例(人臉區域)個(gè)數、圖像的寬、圖像的高,使用空格間隔。反樣本描述文件每行內容僅包括圖像名字。之后通過(guò)OpenCV提供的opencv_createSamples可執行程序創(chuàng )建正反樣本vec文件。
c++相關(guān)文章:c++教程
評論