巫春玲,馮志文,鐘沈豪,荊明
(1 長(zhǎng)安大學(xué) 電子與控制工程學(xué)院;2 陜西省建筑設(shè)計(jì)研究院(集團(tuán))有限公司)
自動(dòng)考勤系統(tǒng)可以幫助高等教育機(jī)構(gòu)簡(jiǎn)化考勤流程并提高考勤效率。毫無(wú)疑問(wèn),考勤管理系統(tǒng)可以消除大量的包括簽到和記錄在內(nèi)的人工流程,有助于高校節(jié)省時(shí)間和金錢(qián)[1-3]。通過(guò)自動(dòng)考勤系統(tǒng),教師可以更準(zhǔn)確、更快速地跟蹤學(xué)生的上課簽到狀況。
本系統(tǒng)設(shè)計(jì)針對(duì)長(zhǎng)安大學(xué)渭水校區(qū),該校區(qū)教室的特點(diǎn)是種類(lèi)眾多,最大的教室可以容納將近300 人(比如WH1103的設(shè)計(jì)座位為280 座)。目前,人臉檢測(cè)算法在人數(shù)密集的場(chǎng)所中效果并不能令人滿意,無(wú)法從單一圖片中檢測(cè)出教室中所有的人臉。同時(shí),如果圖片尺寸越大,識(shí)別所消耗的時(shí)間也會(huì)越久。所以本設(shè)計(jì)采用學(xué)生主動(dòng)參與簽到的方式,該方式需要學(xué)生在上課前主動(dòng)站到考勤攝像機(jī)前進(jìn)行簽到,簽到成功后可離開(kāi)。
本系統(tǒng)包含以下幾個(gè)部分:初始化部分、簽到部分、記錄部分。
初始化部分內(nèi)容包括簽到信息數(shù)據(jù)庫(kù)的創(chuàng)建、學(xué)生信息(學(xué)號(hào)與姓名)的導(dǎo)入、學(xué)生人臉特征向量的獲取與存儲(chǔ)等。系統(tǒng)必須經(jīng)過(guò)初始化后才能正常使用。
下面是系統(tǒng)在簽到部分必須提供的功能和服務(wù):
(1)在特定時(shí)間內(nèi)通過(guò)面部識(shí)別來(lái)記錄和跟蹤學(xué)生出勤情況。
(2)允許教師修改學(xué)生曠課或遲到。
(3)在屏幕上顯示誰(shuí)未簽到以避免錯(cuò)誤。
簽到流程的說(shuō)明與設(shè)計(jì):在教室門(mén)口設(shè)置一個(gè)簽到裝置,簽到裝置只需要一個(gè)攝像頭,其作用是采集人臉圖像。攝像頭連接到每個(gè)教室自帶的電腦主機(jī)上,學(xué)生可在投影儀上看到自己的簽到狀態(tài)。該系統(tǒng)支持同時(shí)多人簽到,但是為了提高準(zhǔn)確率,建議同時(shí)簽到人數(shù)小于5 人。簽到開(kāi)始時(shí)間為上課前25分鐘。教師能夠在開(kāi)始上課后10 分鐘內(nèi)看到學(xué)生整體的簽到狀況,并且在該時(shí)間內(nèi)可以對(duì)學(xué)生的簽到狀況進(jìn)行修改。上課前25 分鐘內(nèi)未簽到,上課后10 分鐘內(nèi)未被修改為遲到的學(xué)生視為缺勤。上課前簽到流程圖如圖1 所示,上課后簽到流程圖如圖2 所示。
圖1 上課前簽到流程
圖2 上課后簽到流程
簽到流程對(duì)應(yīng)的程序設(shè)計(jì)與說(shuō)明:開(kāi)學(xué)前會(huì)得到學(xué)生的一寸照片,這些照片今后會(huì)成為學(xué)生校園卡上的頭像。系統(tǒng)對(duì)這些照片進(jìn)行特征點(diǎn)提取,并與學(xué)號(hào)姓名對(duì)應(yīng),組成人臉識(shí)別系統(tǒng)的特征數(shù)據(jù)庫(kù)。該數(shù)據(jù)庫(kù)包含三個(gè)標(biāo)簽:學(xué)號(hào)、姓名以及人臉特征向量[4-6]。
在簽到開(kāi)始前,將所有學(xué)生的標(biāo)簽都初始化為“未簽到”。
在進(jìn)行簽到時(shí),系統(tǒng)先獲得攝像頭采集到的圖片,之后用人臉檢測(cè)模塊對(duì)采集到的圖片進(jìn)行人臉檢測(cè)。如果沒(méi)有檢測(cè)到人臉,系統(tǒng)會(huì)對(duì)下一幀圖片進(jìn)行人臉檢測(cè),如果檢測(cè)到人臉,系統(tǒng)會(huì)調(diào)用人臉識(shí)別模塊,對(duì)檢測(cè)到的人臉進(jìn)行特征點(diǎn)提取,獲得人臉特征向量。
之后將所獲得的人臉特征向量與特征數(shù)據(jù)庫(kù)中的人臉特征向量進(jìn)行歐氏幾何距離計(jì)算,計(jì)算的結(jié)果為一個(gè)實(shí)數(shù),我們知道,完全相同的兩張人臉的特征向量距離為0,所以這個(gè)實(shí)數(shù)越小,就說(shuō)明這兩張圖片來(lái)自同一個(gè)人的概率越大。經(jīng)過(guò)測(cè)試,如果兩個(gè)人臉特征向量的歐式距離超過(guò)了0.6,即認(rèn)定這兩張人臉不是來(lái)自同一個(gè)人的準(zhǔn)確率為99.38%,該準(zhǔn)確率來(lái)自一個(gè)白人的人臉集,對(duì)于亞洲面孔存在一定的偏差,可以做適當(dāng)?shù)恼{(diào)整來(lái)提高準(zhǔn)確性。
在本設(shè)計(jì)中采用的判斷方法是,將檢測(cè)到的人臉特征向量與班級(jí)中所有人的人臉特征向量都進(jìn)行一次歐式幾何距離計(jì)算,并將得到的結(jié)果由小到大排序,如果排序后最小的值小于0.55,則認(rèn)為這對(duì)人臉屬于同一個(gè)人,即該學(xué)生成功簽到,將該學(xué)生的標(biāo)簽標(biāo)記為“已簽到”,與此同時(shí)記錄學(xué)生簽到的時(shí)間。流程圖如圖3(a)圖所示。
圖3 人臉識(shí)別簽到流程
這樣課前簽到的部分就結(jié)束了,該部分屬于自動(dòng)化部分,不需要人工參與,其核心是通過(guò)人臉檢測(cè)和人臉識(shí)別技術(shù)實(shí)現(xiàn)自動(dòng)更改學(xué)生簽到狀態(tài)標(biāo)簽。
在實(shí)際簽到過(guò)程中可能會(huì)由于各種原因,使得簽到失敗。即便發(fā)生這種情況的概率很小,為了提高簽到系統(tǒng)的準(zhǔn)確性以及用戶體驗(yàn),系統(tǒng)設(shè)立了人工部分,人工部分由老師操作,并且只能在上課后10 分鐘內(nèi)進(jìn)行。老師可在經(jīng)過(guò)身份認(rèn)證后修改學(xué)生的簽到狀態(tài),簽到標(biāo)簽可修改為“遲到”或者“已簽到”。該部分的核心是標(biāo)簽操作。人工部分流程如圖3(b)圖所示。
人工部分結(jié)束后,當(dāng)節(jié)課的簽到已經(jīng)完成,所有標(biāo)簽為“未簽到”的學(xué)生將會(huì)被重新打上“曠課”的標(biāo)簽。之后系統(tǒng)進(jìn)入記錄部分,記錄部分的內(nèi)容是將當(dāng)節(jié)課的簽到情況寫(xiě)入數(shù)據(jù)庫(kù)。除管理員外任何人不能對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。
本設(shè)計(jì)采用近距離簽到的方式,對(duì)攝像頭的像素要求不高。又因?yàn)閿z像頭安裝在教室內(nèi),相對(duì)于室外環(huán)境對(duì)攝像頭的防水防塵要求不高,所以選用帶有背光補(bǔ)償功能并且分辨率在100w 像素以上的攝像頭。
網(wǎng)絡(luò)攝像機(jī)清晰度按像素區(qū)分,較為常見(jiàn)的像素級(jí)別有100w 像素(720P)、200w 像素(1080P)、500w 像素等。
圖4 背光補(bǔ)償?shù)淖饔?/p>
本設(shè)計(jì)選用型號(hào)為谷客 HD98 的攝像機(jī),在實(shí)際測(cè)試中,使用筆記本自帶的100w 像素集成攝像頭作為替代。
攝像機(jī)部署在每個(gè)的教室的前門(mén)處,位置如圖5 所示,通過(guò)USB 線與教室中的電腦主機(jī)相連。
①人臉識(shí)別系統(tǒng)特征數(shù)據(jù)的設(shè)立
論文中的人臉識(shí)別系統(tǒng)包含三部分,人臉檢測(cè)、特征提取以及人臉識(shí)別[7-8]。在人臉識(shí)別部分,系統(tǒng)使用的方法是將檢測(cè)出的人臉特征向量與數(shù)據(jù)庫(kù)中原先存儲(chǔ)的人臉特征向量進(jìn)行歐氏幾何距離計(jì)算,計(jì)算結(jié)果最小并且小于0.5 這個(gè)閾值時(shí),就認(rèn)為檢測(cè)到的人臉存在于數(shù)據(jù)庫(kù)中,即簽到成功。所以在設(shè)計(jì)中,每個(gè)班級(jí)建立一張數(shù)據(jù)表,班級(jí)號(hào)作為表名,每次人臉識(shí)別只需進(jìn)行30 次左右的對(duì)比,就能確定該人臉是否屬于本節(jié)課上課學(xué)生,數(shù)據(jù)存儲(chǔ)為CSV 格式的文件,CSV 是一種常用的文件格式,能夠被excel、文本文檔等 讀取。
圖5 攝像頭位置布置
特征數(shù)據(jù)CSV 文件存儲(chǔ)結(jié)構(gòu)如表1 所示:
表1 特征數(shù)據(jù)CSV 文件存儲(chǔ)結(jié)構(gòu)
人臉特征d1 來(lái)源于對(duì)校園卡上的一寸照片進(jìn)行特征提取,實(shí)際測(cè)試中使用的是網(wǎng)上找的人臉圖片,圖片格式為JPG。
(116)叉齒異萼苔Heteroscyphus lophocoleoides S.Hatt.熊源新等(2006);楊志平(2006)
特征數(shù)據(jù)CSV 文件的測(cè)試如圖6 所示,可以看到特征向量的格式是一個(gè)包含128 個(gè)浮點(diǎn)數(shù)的列表:
②簽到數(shù)據(jù)庫(kù)的建立
圖6 一張測(cè)試人臉的真實(shí)存儲(chǔ)數(shù)據(jù)
如果按照每個(gè)學(xué)生每周17 節(jié)課,一學(xué)期上16 周的課來(lái)計(jì)算,一個(gè)學(xué)生每學(xué)期的簽到記錄大約有272 次,如果將2 萬(wàn)名學(xué)生的簽到記錄存放在一張數(shù)據(jù)表中,這張表中的數(shù)據(jù)量大約有544 萬(wàn),學(xué)生在查詢簽到記錄時(shí)對(duì)服務(wù)器壓力太大,所以為了方便簽到信息的管理,同時(shí)減少服務(wù)器在大量學(xué)生查詢簽到記錄時(shí)的壓力。在設(shè)計(jì)中,依舊遵循每個(gè)班級(jí)建立一張數(shù)據(jù)表,以班級(jí)號(hào)為表名的原則。
簽到記錄表存儲(chǔ)結(jié)構(gòu)如表2 所示:
表2 簽到記錄表存儲(chǔ)結(jié)構(gòu)
圖像采集功能是點(diǎn)名系統(tǒng)的基礎(chǔ)部分,本系統(tǒng)使用OpenCV 庫(kù)調(diào)用與電腦連接的攝像頭[9-10]。程序流程是先打開(kāi)攝像頭,之后進(jìn)入一個(gè)while 循環(huán),一幀一幀的讀取圖像,讀取到圖像后對(duì)其進(jìn)行人臉檢測(cè)、人臉識(shí)別與人臉標(biāo)記,最后再一幀一幀的顯示圖像,通過(guò)延時(shí)函數(shù)來(lái)調(diào)節(jié)幀率。為了加快人臉檢測(cè)的速度,將攝像頭采集的圖像的尺寸重新設(shè)置為 640*480。
采集功能測(cè)試內(nèi)容包括:打開(kāi)攝像頭,看能否獲得穩(wěn)定、流程的視頻流。測(cè)試結(jié)果顯示,能夠出現(xiàn)穩(wěn)定、流暢的視 頻流。
采集到圖像之后就需要對(duì)圖片進(jìn)行人臉檢測(cè),提取圖片中一個(gè)或者多個(gè)人臉。這是關(guān)鍵一步,只有檢測(cè)到人臉才能提取人臉特征,所以該過(guò)程的準(zhǔn)確性至關(guān)重要。設(shè)計(jì)該人臉識(shí)別系統(tǒng),主要依據(jù)以下兩個(gè)方面來(lái)選擇合適的人臉檢測(cè) 算法[11]:
檢測(cè)率:檢測(cè)率指的是算法檢測(cè)出的人臉數(shù)量與圖片中實(shí)際人臉數(shù)量的比值。
檢測(cè)時(shí)間:檢測(cè)時(shí)間表示算法檢測(cè)完一張圖片所需的時(shí)間,在所選擇的硬件環(huán)境下能夠較快的檢測(cè)出人臉,在算法確定的情況下,檢測(cè)時(shí)間受到圖片尺寸和硬件的影響。圖片尺寸越小檢測(cè)時(shí)間越少;硬件條件越好,檢測(cè)時(shí)間越短。
dlib 庫(kù)中自帶了人臉檢測(cè)器,該人臉檢測(cè)器使用經(jīng)典的方向梯度直方圖加線性分類(lèi)器的方案,檢測(cè)人臉的成功率非常高。人臉檢測(cè)部分測(cè)試內(nèi)容如下:
測(cè)試一:給定一張只有一個(gè)正臉的圖片,對(duì)圖片進(jìn)行人臉檢測(cè),觀察能否正常檢測(cè)出所有的人臉。
測(cè)試二:給定一張只有一個(gè)側(cè)臉的圖片,對(duì)圖片進(jìn)行人臉檢測(cè),觀察能否正常檢測(cè)出所有的人臉。
測(cè)試三:給定一張含有多個(gè)人臉的圖片,對(duì)圖片進(jìn)行人臉檢測(cè),觀察能否正常檢測(cè)出所有的人臉。
測(cè)試四:給定一張含有多個(gè)側(cè)臉的圖片,對(duì)圖片進(jìn)行人臉檢測(cè),觀察能否正常檢測(cè)出所有的人臉。
測(cè)試三結(jié)果如圖7 所示,可以看到,對(duì)于一張含有多個(gè)正臉的圖片,算法能夠準(zhǔn)確檢測(cè)出其中的正臉。
圖7 多人正臉測(cè)試結(jié)果
測(cè)試四結(jié)果如圖8 所示,可以看到,對(duì)于一張含有多個(gè)側(cè)臉的圖片,算法能夠準(zhǔn)確檢測(cè)出其中的側(cè)臉。
圖8 多人側(cè)臉測(cè)試結(jié)果
該過(guò)程需要用到兩個(gè)模型,一個(gè)是人臉關(guān)鍵點(diǎn)檢測(cè)模型,另一個(gè)是人臉識(shí)別模型。人臉關(guān)鍵點(diǎn)檢測(cè)模型的作用是在檢測(cè)出的人臉上繪制68 個(gè)特征點(diǎn),這些特征點(diǎn)包含了嘴巴、鼻子、鼻梁、眼睛、眉毛以及臉的邊緣輪廓。該步驟的目的是將不同姿態(tài)的人臉變換到大致相同的位置,提高下一步的準(zhǔn)確率。人臉識(shí)別模型的作用是在繪制完68 個(gè)特征點(diǎn)的基礎(chǔ)上將人臉信息提取成128 維的向量空間,這相當(dāng)于在給臉部編碼。
人臉識(shí)別模塊測(cè)試內(nèi)容如下:
測(cè)試一:打開(kāi)攝像頭,正常檢測(cè)到多張正臉,觀察能否在人臉標(biāo)識(shí)框下顯示庫(kù)中對(duì)應(yīng)的人臉信息。
測(cè)試二:打開(kāi)攝像頭,正常檢測(cè)到多張側(cè)臉,觀察能否在人臉標(biāo)識(shí)框下顯示庫(kù)中對(duì)應(yīng)的人臉信息。
測(cè)試一結(jié)果如圖9 所示,可以看到在包含有多個(gè)正臉的情況下,算法能夠準(zhǔn)確顯示庫(kù)中對(duì)應(yīng)的人臉信息。
測(cè)試二結(jié)果如圖10 所示,可以看到在包含有多個(gè)側(cè)臉的情況下,算法能夠準(zhǔn)確顯示庫(kù)中對(duì)應(yīng)的人臉信息。
圖9 多張正臉測(cè)試結(jié)果
圖10 多張側(cè)臉測(cè)試結(jié)果
各高等院校及中小學(xué)中,原始的點(diǎn)名簽到方式為教師通過(guò)點(diǎn)名冊(cè)點(diǎn)名的方式記錄出勤率。這種方式費(fèi)時(shí)費(fèi)力,效率低下。本文提出了一種基于人臉識(shí)別的考勤系統(tǒng)設(shè)計(jì)方案,通過(guò)人臉識(shí)別技術(shù)和自動(dòng)化技術(shù)優(yōu)化學(xué)生考勤流程。人臉識(shí)別技術(shù)指的是從圖像或視頻中識(shí)別出一個(gè)人,現(xiàn)如今廣泛應(yīng)用于不同場(chǎng)所,如學(xué)校、銀行、機(jī)場(chǎng)和辦公場(chǎng)所。本文的內(nèi)容包括人臉識(shí)別技術(shù)介紹,需求分析與系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)現(xiàn)與系統(tǒng)測(cè)試三大部分。在分析了大學(xué)考勤的實(shí)際需求后,把考勤系統(tǒng)拆分為圖像獲取、人臉檢測(cè)、人臉識(shí)別以及簽到記錄保存四個(gè)功能,并在這基礎(chǔ)上設(shè)計(jì)了存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)和一個(gè)簡(jiǎn)單的圖形界面,實(shí)現(xiàn)了考勤系統(tǒng)的要求。最后,對(duì)考勤系統(tǒng)的關(guān)鍵功能進(jìn)行了測(cè)試,測(cè)試結(jié)果令人滿意。