聶逸菲
(長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
大學(xué)生課堂考勤制度作為校園制度文化建設(shè)的重要環(huán)節(jié),其所實(shí)施的效果將直接影響著學(xué)校的規(guī)范管理和人才培養(yǎng)質(zhì)量。課堂教學(xué)是學(xué)校教學(xué)的重要部分,現(xiàn)在高校中,學(xué)生逃課的現(xiàn)象卻非常普遍,甚至出現(xiàn)了經(jīng)常不上課的高?!疤诱n一族”。上課點(diǎn)名的目的是統(tǒng)計(jì)學(xué)生人數(shù),督促學(xué)生按時(shí)上課,進(jìn)而提高學(xué)生自覺性,提高教學(xué)質(zhì)量。傳統(tǒng)的課堂考勤由任課教師通過花名冊(cè)進(jìn)行點(diǎn)名實(shí)現(xiàn),但這種傳統(tǒng)的課堂考勤方式通常會(huì)占用很多課堂時(shí)間,降低了課堂教學(xué)質(zhì)量,且紙質(zhì)的考勤記錄容易丟失,不利于數(shù)據(jù)的查閱與匯總分析。隨著近年來人工智能和電子商務(wù)迅速的發(fā)展,人臉自動(dòng)識(shí)別技術(shù)被視為最有潛力的生物識(shí)別技術(shù)和生物身份驗(yàn)證的手段之一。人臉識(shí)別技術(shù)可以被應(yīng)用在多種不同安全領(lǐng)域,比如證件(如駕駛執(zhí)照)、護(hù)照中的身份認(rèn)證,數(shù)字樓進(jìn)出的安全控制、智能卡的身份認(rèn)證等。隨著高速度、高性能計(jì)算機(jī)的出現(xiàn),人臉識(shí)別方法有了重大突破,進(jìn)入了真正的機(jī)器自動(dòng)識(shí)別階段。目前的人臉識(shí)別方法集中在:基于局部特征、模板匹配、彈性圖匹配、特征臉的匹配、隱馬爾科夫模型、多種分類器結(jié)合以及神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別的研究中。
為了解決課堂考勤問題,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于人臉識(shí)別的課堂簽到系統(tǒng),將人臉識(shí)別技術(shù)與課堂簽到融為一體,通過攝像頭采集到的圖像進(jìn)行人臉識(shí)別,最終將課堂簽到信息保存并匯總。
本系統(tǒng)是調(diào)用OpenCV開源庫(kù)設(shè)計(jì)的一款人臉識(shí)別課堂簽到軟件,主要以LabVIEW為開發(fā)平臺(tái)。OpenCV是一個(gè)基于BSD許可開源的計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)庫(kù),該庫(kù)可運(yùn)行在Linux、Windows、Android和MacOS操作系統(tǒng)上且包含成千上萬優(yōu)化過的算法,為各種計(jì)算機(jī)視覺應(yīng)用提供了通用開發(fā)工具包。LabVIEW是美國(guó)國(guó)家儀器公司(NI)提供的一種程序開發(fā)環(huán)境,采用圖形化編程語(yǔ)言和流程圖的形式開發(fā)應(yīng)用程序。其中IMAQVision工具包在LabVIEW中增加了機(jī)器視覺和圖像處理的功能,提供了大量的圖像預(yù)處理、圖像分割、圖像理解函數(shù)庫(kù)和開發(fā)工具,用于完成灰度、彩色以及二值化圖像的顯示圖像處理,用戶可以很方便地進(jìn)行圖像采集分析,創(chuàng)建功能強(qiáng)大的嵌入式圖像應(yīng)用系統(tǒng),與用傳統(tǒng)的語(yǔ)言進(jìn)行圖像處理系統(tǒng)的開發(fā)相比,大幅度地降低了難度和開發(fā)周期。
本系統(tǒng)實(shí)現(xiàn)了一種單機(jī)帶普通攝像頭在教室場(chǎng)景下的人臉識(shí)別課堂簽到的功能。通過LabVIEW動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)人臉識(shí)別算法的調(diào)用,該算法主要用于人臉檢測(cè)、人臉對(duì)齊、特征提取等功能實(shí)現(xiàn)。LabVIEW主要用于簡(jiǎn)單圖像處理、人臉信息匹配、人臉庫(kù)信息管理、軟件前面板設(shè)計(jì)、簽到信息管理設(shè)計(jì)等。
系統(tǒng)基本框架如圖1所示。首先需要建立一個(gè)人臉庫(kù),圖片需用學(xué)生的基本信息命名,格式為班級(jí)+姓名+學(xué)號(hào),然后依次通過人臉檢測(cè)、人臉特征點(diǎn)定位、人臉特征值提取獲得人臉庫(kù)特征值二維數(shù)組,并獲取學(xué)生基本信息數(shù)組,調(diào)用攝像頭實(shí)時(shí)采集人臉圖像,通過人臉檢測(cè)、人臉特征點(diǎn)定位、人臉特征值提取獲得實(shí)時(shí)人臉特征值一維數(shù)組,再經(jīng)過人臉特征值相似度的比對(duì)獲取匹配的人臉及其基本信息并在界面顯示出來,最后通過對(duì)比班級(jí)名單信息,篩選出未簽到人員名單。
圖1 系統(tǒng)基本框架
首先將彩色圖片灰度化,通過IMAQGetImageSize.vi和IMAQ ImageToArray.vi分別獲取圖像的大小(分辨率),提取像素至二維數(shù)組中,通過調(diào)用detection start函數(shù)(該函數(shù)通過調(diào)用動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)),通過返回參數(shù)判斷是否檢測(cè)到人臉,若檢測(cè)到人臉則會(huì)返回人臉框坐標(biāo),可通過矩形框來標(biāo)定人臉在圖像中所處的位置。
首先將彩色圖片灰度化,通過調(diào)用detection_start函數(shù),分別得到兩眼中心,鼻尖和兩個(gè)嘴角這五個(gè)特征點(diǎn)的x和y坐標(biāo),以此坐標(biāo)來對(duì)齊人臉,最后將其捆綁成簇?cái)?shù)組以便于大量數(shù)據(jù)的提取與檢索。
通過IMAQGetImageSize.vi和IMAQ ColorImageToArray.vi分別獲取彩色圖像大小(分辨率),提取彩色圖像中的像素至R、G、B三個(gè)二維數(shù)組中,通過調(diào)用face_Identification函數(shù),得到人臉特征值數(shù)組,該特征提取模塊是基于深度卷積神經(jīng)網(wǎng)絡(luò)VIPLFaceNet的,引用之前獲得的人臉特征點(diǎn)簇?cái)?shù)組,直接采用VIPLFaceNet FC2層的2048個(gè)結(jié)點(diǎn)的輸出。
人臉識(shí)別是通過1:N比對(duì)(N>=1),因此需要事先存儲(chǔ)不同人臉特征數(shù)組及其基本信息,其理論基礎(chǔ)是不同人臉由不同的特征組成,同一個(gè)人在不同照片里的臉,在特征空間中非常接近,不同人臉在特征空間中相聚較遠(yuǎn),因此進(jìn)行人臉識(shí)別的關(guān)鍵是提取出泛化能力強(qiáng)的特征。本系統(tǒng)通過使用余弦相似度算法來計(jì)算人臉特征值數(shù)組相似度,再通過設(shè)定的閾值和排序獲得相似度最高的人臉信息。余弦相似度是一個(gè)向量空間中兩個(gè)向量夾角的余弦值作為衡量?jī)蓚€(gè)個(gè)體間差異的大小。余弦值越接近1,就表明夾角越接近0度,也就是兩個(gè)向量越相似,這就叫“余弦相似性”。余弦相似度原理如圖2所示。
圖2 余弦相似度原理圖
通過余弦定理變形成以下形式:
如果向量a和b不是二維而是n維,上述余弦的計(jì)算法仍然正確。假定a和b是兩個(gè)n維向量,則a與b的夾角的余弦等于
每個(gè)學(xué)生的人臉特征值是2048維向量,人臉庫(kù)所有學(xué)生的人臉特征值構(gòu)成一個(gè)二維數(shù)組,獲取實(shí)時(shí)采集的人臉圖像的特征值數(shù)組與人臉庫(kù)中的特征值數(shù)組中的每一行數(shù)組進(jìn)行余弦相似度比對(duì),取出最大值對(duì)應(yīng)的索引,從而獲得出匹配到的學(xué)生基本信息。
考勤系統(tǒng)包括以下幾個(gè)方面的功能:
讀取人臉庫(kù)中的圖片獲取24位像素圖(即二維數(shù)組)以及學(xué)生基本信息,再通過IMAQArrayToColorImage.vi將其轉(zhuǎn)換為image類型,通過調(diào)用動(dòng)態(tài)鏈接庫(kù)獲取人臉庫(kù)特征值數(shù)組。
當(dāng)圖像控件中的自動(dòng)識(shí)別框中未檢測(cè)到人臉時(shí),錄入按鍵處于Disenabled and Grayed Out模式下,只有當(dāng)圖像控件中的自動(dòng)識(shí)別框中檢測(cè)到人臉時(shí),錄入按鍵才處于 Enabled模式下,此時(shí)點(diǎn)擊錄入按鍵將會(huì)彈出對(duì)話框,輸入需要錄入學(xué)生的基本信息。若人臉庫(kù)中存在相同的學(xué)生信息,可選擇是否進(jìn)行人臉圖片信息替換。
在人臉庫(kù)名單列表中進(jìn)行選擇要?jiǎng)h除的學(xué)生,根據(jù)數(shù)組索引刪除選擇的學(xué)生的基本信息和特征值數(shù)組,并同時(shí)刪除掉人臉庫(kù)中該學(xué)生的全部信息,以致于之后運(yùn)行不會(huì)存在該學(xué)生的信息。
當(dāng)發(fā)現(xiàn)某位學(xué)生多次識(shí)別均無結(jié)果時(shí),說明可能存在本人與人臉庫(kù)中圖片人臉相似度相差較大的情況,此時(shí)可修改該學(xué)生的人臉信息,重新錄入該學(xué)生的人臉特征值,并更新到人臉庫(kù)中。
選擇本地文件夾批量載入人臉信息,比對(duì)新載入人員與原人臉庫(kù)中的人臉信息是否存在相似度極高的情況,當(dāng)出現(xiàn)該種情況時(shí),將彈出對(duì)話框提示用戶“添加庫(kù)中存在與原人臉庫(kù)中相同的人臉信息,是否全部進(jìn)行替換”,選擇“是”后將進(jìn)行全部信息添加并替換相同信息或者僅添加未重復(fù)的信息。該模塊減少了大量學(xué)生人臉信息錄入的工作量,實(shí)現(xiàn)了批量錄入人臉庫(kù)信息的功能。批量載入人臉模塊部分程序框圖設(shè)計(jì)如圖3所示。
圖3 批量載入人臉模塊設(shè)計(jì)
當(dāng)人臉正對(duì)攝像頭且處于圖像控件中的自動(dòng)識(shí)別框中時(shí),將框出人臉區(qū)域并進(jìn)行人臉信息自動(dòng)匹配,并將匹配到的學(xué)生信息顯示出來,若未出現(xiàn)學(xué)生信息,則表示未匹配到符合的人臉信息。
學(xué)生在簽到后,通過人臉信息在特征值數(shù)組中的索引獲取到與之相對(duì)應(yīng)的學(xué)生的基本信息,實(shí)時(shí)更新簽到學(xué)生信息以及簽到時(shí)間,獲取教室在相應(yīng)課堂時(shí)間的班級(jí)以及該班級(jí)的學(xué)生名單,比對(duì)簽到信息篩選出未簽到的學(xué)生名單。
本系統(tǒng)在實(shí)際測(cè)試過程中準(zhǔn)確率高達(dá)99%,在正常環(huán)境中當(dāng)人面部戴上眼鏡,做出表情變化、發(fā)型改變等一系列不遮擋大量面部細(xì)節(jié)的變化時(shí),其人臉相似度均在80%~90%左右浮動(dòng)。經(jīng)反復(fù)測(cè)試,該考勤系統(tǒng)能夠很好地應(yīng)用于實(shí)際教室場(chǎng)景中,但系統(tǒng)仍然存在一些問題。如:當(dāng)人臉角度偏轉(zhuǎn)較大時(shí),無法準(zhǔn)確檢測(cè)到人臉位置;當(dāng)環(huán)境光線較暗時(shí),人臉識(shí)別相似度會(huì)有一定程度的下降,導(dǎo)致無有效的匹配結(jié)果。
本文介紹了一種基于LabVIEW的人臉識(shí)別智能考勤系統(tǒng),該系統(tǒng)具有精度較好,效率較高的優(yōu)點(diǎn),能夠簡(jiǎn)單地應(yīng)用于教室場(chǎng)景下。通過動(dòng)態(tài)鏈接庫(kù)對(duì)算法進(jìn)行調(diào)用,在LabVIEW上實(shí)現(xiàn)了簡(jiǎn)單的圖像處理與學(xué)生簽到信息的管理,相較于紙質(zhì)簽到信息記錄,提高了課堂點(diǎn)名的效率,實(shí)現(xiàn)了簽到信息自動(dòng)保存的功能。