當前位置:文思屋>學習教育>畢業論文>

基於AdaBoost+膚色模型的多人臉檢測考勤系統

文思屋 人氣:1.15W

摘要:為解決多人場景下的身份註冊問題,將人臉檢測作為依據,提出一種多人臉檢測考勤系統。該系統以智慧終端拍攝影象作為輸入,基於人臉檢測獲取考勤目標,最後通過使用者註冊獲得待考勤目標的身份資訊。目前系統已投入課堂學生的點名應用中,實驗結果驗證了該系統中各環節方法的有效性和魯棒性。

基於AdaBoost+膚色模型的多人臉檢測考勤系統

關鍵詞:人臉檢測;考勤;多人;自動識別

一、概述

人臉檢測不僅是生物特徵識別領域的重要課題,同時也是計算機視覺領域的研究熱點。它是人臉定位、身份驗證、身份查詢等多種應用的基礎。由於具有重要的理論和應用價值,因此越來越受到研究人員的重視。目前,人臉檢測技術已經廣泛的應用於門禁、攝像監視等系統中。

人臉檢測利用影象或視訊作為輸入,對探測區域進行檢測,以確定其中是否存在人臉及其可能的位置和區域。常用的人臉檢測的方法主要分為兩大類:(1)基於知識的方法。這類方法主要利用人臉的明顯特徵如眼睛、眉毛、嘴巴、鼻子等器官特徵及其相互之間的位置關係進行判斷。包括基於人臉幾何特徵的人臉檢測、基於膚色模型的人臉檢測等。(2)基於統計的方法。這類方法將人臉看成一個整體,用統計的方法使用大量人臉影象樣本的訓練構造人臉模式空間,再根據相似度量檢測人臉是否存在。包括基於神經網路的人臉檢測、基於AdaBoost演算法的人臉檢測等。

AdaBoost具有精度高、弱分類器構造簡單、檢測率高且速度快等優點,但是AdaBoost演算法僅考慮灰度特徵,容易造成誤檢。基於膚色模型的人臉檢測方法在實際應用中容易將與顏色相近的區域誤檢為人臉。通過AdaBoost定位出入臉位置,再運用膚色模型對其進行膚色校驗則可以很好的.規避兩者缺點。因此本文提出了一種基於AdaBoost與膚色模型的人臉檢測方法,並應用於多人臉考勤系統中。

二、人臉檢測

2.1資料採集

人臉資料獲取是人臉檢測的基礎。系統對輸入資料並無過多限制條件,輸入資料可來自使用者隨身攜帶的智慧手機,也可以是室內監控攝像機的拍攝結果。對於某些無法用一副影象採集完全的大尺度場景,可利用智慧手機中自帶的全景拍攝功能,完成拼接後上傳全景資料。經過調查,目前包括iPhone、三星、小米等絕大多數智慧手機均自帶全景拍攝功能。即使使用者手機中無此功能,官方的應用商店如App Store. Google Play也具有諸多相關應用如:Photosynth,可免費下載用以獲取拍攝場景的全景影象。實驗證明,藉助手機全景拍攝功能採集的影象可以作為有效的輸入,同時方便考勤人員採集考勤資料,獲取資料的便襯|生大幅增加。

2.2基於AdaBoost人臉檢測

AdaBoost是由Yoav Freund和Robert pire在1995年提出的一種迭代分類演算法,其核心思想是將同一訓練集的不同弱分類器集合起來,從而構造一個強分類器。不同的弱分類器具有不同的權值,且它能根據上一次的結果確定每個樣本的權值,然後繼續通過分類器訓練,最後將每次訓練得到的分類器集合起來得到最終的分類器。

AdaBoost在人臉檢測應用中需要通過訓練大量可以區分人臉和非人臉區域的Haar特徵,並從中挑選一些重要的特徵並組合起來構成級聯分類器,最終生成強分類器。這個過程中需要大量的Haar特徵參與訓練。經過大量樣本訓練來區分人臉和非人臉區域,最後經過AdaBoost對分類器進行計算,即可用於人臉檢測。

2.3膚色模型檢測

應用AdaBoost方法的漏檢率相對較低,但誤檢率相對較高。因此需要通過處理將一些誤檢區域去除。本文選取基於膚色模型的方法對已檢測到的人臉部分進行分析,以減少單純利用AdaBoost方法造成的誤檢率過高問題。

三、系統實現

3.1硬體環境

系統硬體環境包括:Intel Core Duo E7500 2.93GHzCPU, 2G記憶體以及NVIDIA GT210獨立顯示卡。

3.2軟體系統

系統採用B/S架構,前端採用開發,主要包括:考勤人員上傳考勤影象模組、結果、考勤人員登入確認模組、顯示考勤結果等模組。後臺伺服器端採用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等,在多人大尺度場景中識別率較低,尚不滿足統計需求,因此探索多入場景下高精度人臉識別演算法將是未來研究工作的重點。