周琛博
摘要:隨著人工智能技術(shù)的發(fā)展與應(yīng)用,人臉識(shí)別逐步應(yīng)用到智能安防領(lǐng)域,不僅能夠有效提高考勤的工作效率,還能夠提高整體形象。本次課程設(shè)計(jì)結(jié)合了人工智能、機(jī)器識(shí)別、機(jī)器學(xué)習(xí)、模型理論、視頻圖像處理多種專業(yè)技術(shù),在Linux系統(tǒng)上開發(fā)設(shè)計(jì)了基于OpenCV視覺庫的人臉識(shí)別門禁系統(tǒng)。此次課程設(shè)計(jì)首先將攝像頭捕捉的人臉信息進(jìn)行灰度化、降維及計(jì)算特征值等處理,利用了PCA特征提取人臉識(shí)別算法進(jìn)行人臉數(shù)據(jù)訓(xùn)練與測試,之后得到了模型對(duì)應(yīng)的相關(guān)的用戶信息,再使用Qt搭建操作界面,形成智能門禁系統(tǒng)的UI界面和識(shí)別,最終實(shí)現(xiàn)了人臉的捕捉采集與比對(duì)檢測,最終實(shí)現(xiàn)了基本精確和及時(shí)的人臉識(shí)別。
關(guān)鍵詞:Linux;門禁系統(tǒng);人臉識(shí)別;OpenCV;Qt
一、系統(tǒng)總體設(shè)計(jì)
為了更加便捷的對(duì)攝像頭和對(duì)攝像頭所捕獲的數(shù)據(jù)進(jìn)行實(shí)時(shí)的處理,我們采用了我們自身筆記本的自帶攝像頭進(jìn)行了操作。通過圖像處理技術(shù),我們對(duì)攝像頭的畫面進(jìn)行了實(shí)時(shí)的檢測,如果人臉出現(xiàn)在攝像頭中,數(shù)據(jù)算法便會(huì)快速識(shí)別特征信息,然后對(duì)圖像進(jìn)行人臉比對(duì),如果為數(shù)據(jù)庫中已有的用戶,系統(tǒng)則會(huì)顯示相關(guān)信息,并允許通過。系統(tǒng)主要分為以下幾個(gè)模塊:人臉數(shù)據(jù)采集、人臉數(shù)據(jù)訓(xùn)練與測試、實(shí)時(shí)人臉檢測以及人臉識(shí)別等。
人臉數(shù)據(jù)檢測主要是通過攝像頭來拍攝和采集人臉,然后將所獲得的圖片和數(shù)據(jù)發(fā)送給Haar特征分類器,然后Haar特征分類器將照片中的面部信息進(jìn)行提取處理,并將所獲得人臉、眼睛以及嘴唇得特征值保存在xml文件中。
人臉數(shù)據(jù)訓(xùn)練與測試主要是將所得到得人臉圖片進(jìn)行灰度化、直方圖均值化,使用PCA算法進(jìn)行人臉數(shù)據(jù)訓(xùn)練,然后利用較少得得數(shù)據(jù)特征對(duì)樣本進(jìn)行描述以達(dá)到數(shù)據(jù)特征值降維得目的。
實(shí)施人臉檢測和人臉識(shí)別則是將攝像頭中得數(shù)據(jù)進(jìn)行實(shí)時(shí)處理和對(duì)比,并顯示人臉識(shí)別后得對(duì)應(yīng)得結(jié)果。
二、系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要分為人臉圖像數(shù)據(jù)采集和人臉識(shí)別兩大塊內(nèi)容,分別進(jìn)行圖像預(yù)處理和特征提取,最終形成人臉特征數(shù)據(jù)庫,與獲取到的實(shí)時(shí)人臉圖像進(jìn)行比對(duì),最終顯示比對(duì)結(jié)果。
1.人臉數(shù)據(jù)采集與處理
(1)數(shù)據(jù)采集
首先,我們創(chuàng)建一個(gè)用戶對(duì)象,即對(duì)象姓名,在用戶鍵入對(duì)象姓名之后,檢測攝像頭是否打卡,如果打開異常,則在用戶操作界面顯示“攝像頭沒有畫面,請(qǐng)檢查攝像頭是否異?!钡米謽?如果攝像頭正常打開,則進(jìn)行拍照。
之后系統(tǒng)會(huì)自行判斷當(dāng)前得儲(chǔ)存路徑是否存在,如果不存在則創(chuàng)建temp文件夾得路徑,將我們所拍攝的樣本照片保存在該路徑下(為了確保系統(tǒng)建模和人臉識(shí)別得精確性,所以樣本照片最好十張以上),因?yàn)镺pencv使用得是BGR,Qt使用是RGB,所以我們還需要進(jìn)行顏色空間轉(zhuǎn)換,顏色轉(zhuǎn)換之后,我們便可以獲得一個(gè)基本得比對(duì)樣本。
(2)數(shù)據(jù)處理
保存用戶信息到usr.txt文件中,并向文件中添加一行信息“源文件行數(shù)+姓名;usr.txt”。之后統(tǒng)計(jì)系統(tǒng)錄入的人臉類型個(gè)數(shù)信息,然后再創(chuàng)建編號(hào)文件夾,存放不同人的面部信息,方便后期訓(xùn)練模型使用。人臉檢測截取。
然后使用OpenCV的CascadeClassifier定義人臉分類器,對(duì)從攝像頭獲得的圖像進(jìn)行實(shí)時(shí)檢測,并且把結(jié)果顯示在屏幕上。OpenCV中提取人臉信息使用的是 detectMultiScale函數(shù)檢測出圖片中的人臉,并將檢測好的人臉信息放到vector容器中,即把檢測到的信息放到另外一個(gè)序列中,函數(shù)由分類器對(duì)象調(diào)用。
之后我們需要對(duì)圖像進(jìn)行灰度化。即將圖像由彩色轉(zhuǎn)換為黑白色——將每個(gè)像素點(diǎn)的RGB值統(tǒng)一成同一個(gè)值?;叶然蟮膱D像將由三通道變?yōu)閱瓮ǖ溃瑔瓮ǖ赖臄?shù)據(jù)處理起來就會(huì)簡單許多。
2.人臉數(shù)據(jù)訓(xùn)練
讀取之前我們所儲(chǔ)存得csv文件。將csv文件中獲取得到的人臉圖片信息存儲(chǔ)到容器images中,編號(hào)存儲(chǔ)到容器labels中。然后調(diào)用OpenCV中的PCA算法,對(duì)人臉數(shù)據(jù)進(jìn)行訓(xùn)練,得到的結(jié)果保存到xml文件中。
3.實(shí)時(shí)人臉檢測
在label中實(shí)時(shí)顯示攝像頭捕獲的圖像。定義VideoCapture類的對(duì)象capeture,然后一幀一幀的讀取攝像頭捕獲的畫面,并把圖片存入到Mat序列中,再轉(zhuǎn)換成QImage類型后在label中顯示,但是此時(shí)我們只能設(shè)置靜態(tài)圖片,所以我們還需要 設(shè)計(jì)一個(gè)定時(shí),即設(shè)置靜止時(shí)間小于人眼暫留時(shí)間,本次課程設(shè)計(jì)設(shè)置得靜止時(shí)間為40ms,利用槽函數(shù),定時(shí)時(shí)間到了之后顯示圖片,致使其形成視頻流。
4.人臉識(shí)別
首先我們需要加載Haar特征分類器。將所獲得得圖片的RGB轉(zhuǎn)BGR格式,變換后進(jìn)行直方圖均衡化處理,利用OpenCV中的 detectMultiScale函數(shù)去檢測出圖片中的人臉,并框選出label顯示的人臉。
之后便是實(shí)時(shí)得人臉識(shí)別。在系統(tǒng)中實(shí)時(shí)捕捉人臉信息,將所捕獲得數(shù)據(jù)和訓(xùn)練模型進(jìn)行比較。將拍攝得到的測試人臉序列face_test和訓(xùn)練好的模型model進(jìn)行比較,如果和之前提取到的大小不一致則重置。然后調(diào)用predict函數(shù)進(jìn)行比對(duì),返回值是測試數(shù)據(jù)的標(biāo)簽值,通過標(biāo)簽在usr.txt找用戶名,最終得到該測試人員的姓名并顯示。
三、系統(tǒng)界面設(shè)計(jì)
在Qt中的ui做系統(tǒng)的人機(jī)交互界面,包括用戶姓名輸入框、識(shí)別結(jié)果顯示框、控制按鈕(拍照、開始取樣、模型訓(xùn)練、關(guān)閉、樣本獲取、清除數(shù)據(jù))??筛鶕?jù)需求選擇各個(gè)控件的屬性樣式,為系統(tǒng)設(shè)計(jì)一個(gè)美觀的交互界面。
四、系統(tǒng)調(diào)試與分析
在Qt中完成代碼編寫以及設(shè)置界面后,點(diǎn)擊編譯運(yùn)行,首先要點(diǎn)擊樣本獲取控制按鈕,進(jìn)行新用戶采樣。用戶輸入姓名,點(diǎn)擊拍照,至少拍十張以保證識(shí)別結(jié)果的精確度,然后點(diǎn)擊開始取樣控制按鈕,對(duì)攝像頭拍攝得到的圖像進(jìn)行人臉檢測截取、灰度化、直方圖均衡化,取樣成功會(huì)彈出一個(gè)對(duì)話框提示csv文件創(chuàng)建完成。用戶取樣成功后,會(huì)自行創(chuàng)建一個(gè)新路徑命名為TEMP文件夾和用戶編號(hào)文件夾,其中,TEMP文件夾用于保存攝像頭拍攝得到的圖片,用戶編號(hào)文件夾用于保存處理后的圖片。
五、總結(jié)
本文提到的人臉識(shí)別過程是通過調(diào)用攝像頭進(jìn)行拍照,進(jìn)行人臉圖像采集,而后進(jìn)行圖像預(yù)處理、圖像特征提取以及匹配與識(shí)別,達(dá)到人臉識(shí)別的目的,在圖像識(shí)別方面具有重要的實(shí)用價(jià)值與研究意義。
參考文獻(xiàn):
[1]劉翠響,肖伶俐.基于視頻的人臉檢測綜述[J.電子設(shè)計(jì)工程,2011,19(14):172-174.
[2]洪洋.基于人臉識(shí)別技術(shù)的門禁系統(tǒng)及其嵌入式實(shí)現(xiàn)[D].大連海事大學(xué),2012.
[3]鄭鐵.基于多分類器的人臉識(shí)別算法的研究與實(shí)現(xiàn)[D].東北大學(xué),2008.