聶逸菲
(長江大學電子信息學院,湖北 荊州 434023)
大學生課堂考勤制度作為校園制度文化建設的重要環節,其所實施的效果將直接影響著學校的規范管理和人才培養質量。課堂教學是學校教學的重要部分,現在高校中,學生逃課的現象卻非常普遍,甚至出現了經常不上課的高校“逃課一族”。上課點名的目的是統計學生人數,督促學生按時上課,進而提高學生自覺性,提高教學質量。傳統的課堂考勤由任課教師通過花名冊進行點名實現,但這種傳統的課堂考勤方式通常會占用很多課堂時間,降低了課堂教學質量,且紙質的考勤記錄容易丟失,不利于數據的查閱與匯總分析。隨著近年來人工智能和電子商務迅速的發展,人臉自動識別技術被視為最有潛力的生物識別技術和生物身份驗證的手段之一。人臉識別技術可以被應用在多種不同安全領域,比如證件(如駕駛執照)、護照中的身份認證,數字樓進出的安全控制、智能卡的身份認證等。隨著高速度、高性能計算機的出現,人臉識別方法有了重大突破,進入了真正的機器自動識別階段。目前的人臉識別方法集中在:基于局部特征、模板匹配、彈性圖匹配、特征臉的匹配、隱馬爾科夫模型、多種分類器結合以及神經網絡的人臉識別的研究中。
為了解決課堂考勤問題,本文設計并實現了一個基于人臉識別的課堂簽到系統,將人臉識別技術與課堂簽到融為一體,通過攝像頭采集到的圖像進行人臉識別,最終將課堂簽到信息保存并匯總。
本系統是調用OpenCV開源庫設計的一款人臉識別課堂簽到軟件,主要以LabVIEW為開發平臺。OpenCV是一個基于BSD許可開源的計算機視覺和機器學習庫,該庫可運行在Linux、Windows、Android和MacOS操作系統上且包含成千上萬優化過的算法,為各種計算機視覺應用提供了通用開發工具包。LabVIEW是美國國家儀器公司(NI)提供的一種程序開發環境,采用圖形化編程語言和流程圖的形式開發應用程序。其中IMAQVision工具包在LabVIEW中增加了機器視覺和圖像處理的功能,提供了大量的圖像預處理、圖像分割、圖像理解函數庫和開發工具,用于完成灰度、彩色以及二值化圖像的顯示圖像處理,用戶可以很方便地進行圖像采集分析,創建功能強大的嵌入式圖像應用系統,與用傳統的語言進行圖像處理系統的開發相比,大幅度地降低了難度和開發周期。
本系統實現了一種單機帶普通攝像頭在教室場景下的人臉識別課堂簽到的功能。通過LabVIEW動態鏈接庫實現人臉識別算法的調用,該算法主要用于人臉檢測、人臉對齊、特征提取等功能實現。LabVIEW主要用于簡單圖像處理、人臉信息匹配、人臉庫信息管理、軟件前面板設計、簽到信息管理設計等。
系統基本框架如圖1所示。首先需要建立一個人臉庫,圖片需用學生的基本信息命名,格式為班級+姓名+學號,然后依次通過人臉檢測、人臉特征點定位、人臉特征值提取獲得人臉庫特征值二維數組,并獲取學生基本信息數組,調用攝像頭實時采集人臉圖像,通過人臉檢測、人臉特征點定位、人臉特征值提取獲得實時人臉特征值一維數組,再經過人臉特征值相似度的比對獲取匹配的人臉及其基本信息并在界面顯示出來,最后通過對比班級名單信息,篩選出未簽到人員名單。

圖1 系統基本框架
首先將彩色圖片灰度化,通過IMAQGetImageSize.vi和IMAQ ImageToArray.vi分別獲取圖像的大小(分辨率),提取像素至二維數組中,通過調用detection start函數(該函數通過調用動態鏈接庫實現),通過返回參數判斷是否檢測到人臉,若檢測到人臉則會返回人臉框坐標,可通過矩形框來標定人臉在圖像中所處的位置。
首先將彩色圖片灰度化,通過調用detection_start函數,分別得到兩眼中心,鼻尖和兩個嘴角這五個特征點的x和y坐標,以此坐標來對齊人臉,最后將其捆綁成簇數組以便于大量數據的提取與檢索。
通過IMAQGetImageSize.vi和IMAQ ColorImageToArray.vi分別獲取彩色圖像大小(分辨率),提取彩色圖像中的像素至R、G、B三個二維數組中,通過調用face_Identification函數,得到人臉特征值數組,該特征提取模塊是基于深度卷積神經網絡VIPLFaceNet的,引用之前獲得的人臉特征點簇數組,直接采用VIPLFaceNet FC2層的2048個結點的輸出。
人臉識別是通過1:N比對(N>=1),因此需要事先存儲不同人臉特征數組及其基本信息,其理論基礎是不同人臉由不同的特征組成,同一個人在不同照片里的臉,在特征空間中非常接近,不同人臉在特征空間中相聚較遠,因此進行人臉識別的關鍵是提取出泛化能力強的特征。本系統通過使用余弦相似度算法來計算人臉特征值數組相似度,再通過設定的閾值和排序獲得相似度最高的人臉信息。余弦相似度是一個向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小。余弦值越接近1,就表明夾角越接近0度,也就是兩個向量越相似,這就叫“余弦相似性”。余弦相似度原理如圖2所示。

圖2 余弦相似度原理圖
通過余弦定理變形成以下形式:
如果向量a和b不是二維而是n維,上述余弦的計算法仍然正確。假定a和b是兩個n維向量,則a與b的夾角的余弦等于
每個學生的人臉特征值是2048維向量,人臉庫所有學生的人臉特征值構成一個二維數組,獲取實時采集的人臉圖像的特征值數組與人臉庫中的特征值數組中的每一行數組進行余弦相似度比對,取出最大值對應的索引,從而獲得出匹配到的學生基本信息。
考勤系統包括以下幾個方面的功能:
讀取人臉庫中的圖片獲取24位像素圖(即二維數組)以及學生基本信息,再通過IMAQArrayToColorImage.vi將其轉換為image類型,通過調用動態鏈接庫獲取人臉庫特征值數組。
當圖像控件中的自動識別框中未檢測到人臉時,錄入按鍵處于Disenabled and Grayed Out模式下,只有當圖像控件中的自動識別框中檢測到人臉時,錄入按鍵才處于 Enabled模式下,此時點擊錄入按鍵將會彈出對話框,輸入需要錄入學生的基本信息。若人臉庫中存在相同的學生信息,可選擇是否進行人臉圖片信息替換。
在人臉庫名單列表中進行選擇要刪除的學生,根據數組索引刪除選擇的學生的基本信息和特征值數組,并同時刪除掉人臉庫中該學生的全部信息,以致于之后運行不會存在該學生的信息。
當發現某位學生多次識別均無結果時,說明可能存在本人與人臉庫中圖片人臉相似度相差較大的情況,此時可修改該學生的人臉信息,重新錄入該學生的人臉特征值,并更新到人臉庫中。
選擇本地文件夾批量載入人臉信息,比對新載入人員與原人臉庫中的人臉信息是否存在相似度極高的情況,當出現該種情況時,將彈出對話框提示用戶“添加庫中存在與原人臉庫中相同的人臉信息,是否全部進行替換”,選擇“是”后將進行全部信息添加并替換相同信息或者僅添加未重復的信息。該模塊減少了大量學生人臉信息錄入的工作量,實現了批量錄入人臉庫信息的功能。批量載入人臉模塊部分程序框圖設計如圖3所示。

圖3 批量載入人臉模塊設計
當人臉正對攝像頭且處于圖像控件中的自動識別框中時,將框出人臉區域并進行人臉信息自動匹配,并將匹配到的學生信息顯示出來,若未出現學生信息,則表示未匹配到符合的人臉信息。
學生在簽到后,通過人臉信息在特征值數組中的索引獲取到與之相對應的學生的基本信息,實時更新簽到學生信息以及簽到時間,獲取教室在相應課堂時間的班級以及該班級的學生名單,比對簽到信息篩選出未簽到的學生名單。
本系統在實際測試過程中準確率高達99%,在正常環境中當人面部戴上眼鏡,做出表情變化、發型改變等一系列不遮擋大量面部細節的變化時,其人臉相似度均在80%~90%左右浮動。經反復測試,該考勤系統能夠很好地應用于實際教室場景中,但系統仍然存在一些問題。如:當人臉角度偏轉較大時,無法準確檢測到人臉位置;當環境光線較暗時,人臉識別相似度會有一定程度的下降,導致無有效的匹配結果。
本文介紹了一種基于LabVIEW的人臉識別智能考勤系統,該系統具有精度較好,效率較高的優點,能夠簡單地應用于教室場景下。通過動態鏈接庫對算法進行調用,在LabVIEW上實現了簡單的圖像處理與學生簽到信息的管理,相較于紙質簽到信息記錄,提高了課堂點名的效率,實現了簽到信息自動保存的功能。