秦燕樺
(廈門理工學院計算機與信息工程學院,福建廈門 361024)
教育考試制度是國家人才選拔的重要手段和方式,因而越來越多的人員加入學歷提升、職稱提升、職業(yè)資格等考試??荚囈?guī)模不斷增大給考試過程管理工作帶來新的挑戰(zhàn),如:夾帶小抄、信息化方式作弊、證件偽造、替考等作弊方式層出不窮,如何有效杜絕此類行為是考試管理質量的重要指標之一??忌矸蒡炞C是標準化考試工作的基本要求和管理質量重要指標[1],傳統(tǒng)的驗證技術依賴于人工進行核查比對,煩瑣費時又受主觀因素影響,個人評價標準不一致、寬嚴條件個性化、證卡偽造等導致替考等違法事件層出不窮。針對這種狀況,引入生物特征識別:包括人臉識別[2]、指紋識別技術[3],建立統(tǒng)一標準的考生身份驗證標準,實現(xiàn)具有證件防偽、標準一致、省時又省力的考試驗證方案,是對傳統(tǒng)管理和工作模式弊端的有效補充和支撐。
人體的生物特征具有唯一性和穩(wěn)定性[4],將生物特征識別用于考生身份驗證過程,因其唯一性、用戶友好等特征,易于被考生接受[5]。因此系統(tǒng)設計以時間為節(jié)點,分為三個階段實施。
1)考前階段:考前數(shù)據(jù)采集、存儲、編排。在傳統(tǒng)的采集過程中,并沒有任何技術手段來輔助考務工作人員來甄別和判斷現(xiàn)場采集的考生是否為報名考生本人,只能通過人工辨別的方式進行粗略判斷,此時,與報名考生長相十分相似的考生便有可乘之機,一旦讓其進行指紋的采集,那么驗證階段的任何技術手段都無法對其進行有效的身份鑒別,因此,在采集過程中,系統(tǒng)如何輔助考務工作人員來甄別和判斷現(xiàn)場采集的考生是否為報名考生本人,在源頭上屏蔽“槍手”進行采集,也是本系統(tǒng)的重中之重。本系統(tǒng)設計思路為引入“采集考生照片與二代身份證芯片照片比對”的先進技術手段,通過目前二代身份證上存儲的生物特征與現(xiàn)場采集考生的面頰進行比對,切實達到“人證合一”的效果,從源頭上屏蔽替考考生,讓替考人員無所遁形。通過采集后的數(shù)據(jù)進行考場分配,考試相關信息錄入等后續(xù)工作。
2)考試階段:入場驗證與后臺驗證相結合。系統(tǒng)采用人臉識別技術、二代身份證讀取技術、指紋識別對比技術、數(shù)據(jù)管理應用技術進行組合優(yōu)化,實現(xiàn)考生身份合法性驗證的功能。通過使用終端系統(tǒng)上的二代身份證讀取功能,讀取報名考生的二代身份證里面芯片的信息,結合系統(tǒng)的面部識別技術模塊,自動拍攝考生現(xiàn)場的臉部面相與提取的照片進行對比,判斷持證考生是否為本人。設置異常處理機制,在考生面部識別不過關的情況下,采集考生的指紋信息方便日后取證。信息驗證完成后將考生驗證信息及入場數(shù)據(jù)實時上傳、集中存儲及呈現(xiàn)。
3)考后階段:考后管理,負責終端驗證數(shù)據(jù)包的匯總導入;對異常處理機制人員進行指紋、人臉雙重比對。指紋未通過的考生進行人臉比對;指紋和人臉比對都未通過的考生進行存疑打印復核;對存疑復核通過的考生進行人工審核;對各個考場的缺考進行確認,標記缺考狀態(tài)。
人臉識別技術采集含有人臉的圖像或視頻流,通過屬性定位、特征提取和特征比對三個階段的處理,判斷當前所識別的人臉是否已存在于數(shù)據(jù)庫中,進而實現(xiàn)身份識別或身份認證。其中,屬性定位階段通常包括人臉檢測、關鍵點定位、灰度標準化、數(shù)據(jù)裁剪及增強四個部分,如圖1所示。
圖1 人臉識別算法的流程圖
2.1.1 人臉檢測和對齊算法
MTCNN(Multi-task Convolutional Neural Network)多任務卷積神經網絡,是一種基于深度學習的算法模型,該算法實現(xiàn)了人臉識別和人臉對齊兩個部分的功能[6]。
在使用MTCNN 之前,需要對原始圖像進行預處理:通過構建圖像金字塔對原始圖像進行不同程度的縮放,即通過縮放系數(shù)factor,每次都將原始圖像縮小為原來的factor 倍,直到最小的圖片的長度或寬度小于12則截止。對原始圖像進行縮放目的是通過檢測不同大小的人臉,來實現(xiàn)多尺度目標檢測。當進行原始圖像縮放之后,即可將所有圖像送入MTCNN 中進行訓練。MTCNN 算法從總體上可分為P-Net(Proposal Network) 、R-Net(Refine Network) 以及O-Net(Output Network)三層網絡結構。
1)P-Net網絡的作用是給出圖像中一些候選框的建議位置。其本質是全卷積網絡,通過FCN(全卷積網絡)對經過預處理的不同尺度的輸入圖像進行初步的特征提取,并生成多個候選框,利用這些候選框從原圖中截取出一塊塊候選區(qū)域。因為這些候選框會有一些重疊,所以需要通過非極大抑制挑選出每一個區(qū)域中分數(shù)較大的候選框,把其他與之重合度較大的框進行剔除,因為這些框沒有存在的意義,此時保留下來的是具有一定精度的框。
2)R-Net網絡的作用是將P-Net傳送過來的候選框,通過網絡進行篩選,從而剔除大量的非人臉框和效果不佳的候選框。當P-Net 輸出候選框后,先把候選框代表的圖像都截下來,將其傳入R-Net,R-Net根據(jù)這些截下來的圖像計算它們的可信度來判斷是不是一張臉,然后對這個粗略的框進行長和寬的調整,調整完后會使得這個框更符合人臉的大小,之后再進行非極大抑制,從而保留下來最優(yōu)秀的一些框。
3) O-Net 網絡的作用是使用更多監(jiān)督來檢測面部區(qū)域,并對人臉特征點進行回歸,從而輸出五個人臉特征點。當R-Net 的候選框傳入O-Net 時,首先把候選框對應的圖像區(qū)域截下來,此時O-Net會識別該區(qū)域是否含有人臉,然后還會對該區(qū)域的長和寬進行調整,除此之外,還會識別出左眼、右眼、鼻尖、嘴巴左側、嘴巴右側這五個特征點。
對于MTCNN 模型,從P-Net 到R-Net 再到ONet,隨著網絡深度和卷積層通道數(shù)的增加,識別率也在不斷提高。但網絡的運行速度正好成反比,即PNet的運行速度最快,R-Net次之,O-Net最慢。因此,若直接使用O-Net來檢測圖像,則速度會非常慢。所以,需要使用三個網絡,首先用P-Net 進行初步的檢測,獲取一些粗略框,然后將結果交給R-Net,由RNet 進一步檢測,篩除無用的候選框,再將結果交給O-Net,最后由速度最慢但效果最好的O-Net 進行檢測。這種通過堆疊網絡的做法可以有效減少模型檢測所需的時間,大大提高了算法的運行效率。
2.1.2 人臉識別算法
計算機想要完成一張圖片的人臉識別一般需要兩個步驟:人臉檢測和人臉識別。首先通過常用的人臉檢測算法進行人臉檢測,然后通過獲取到的人臉坐標對原圖片進行截取,獲得人臉圖像。這是一個局部的人臉圖像,它只包含人臉信息。最后通過人臉識別算法對這個局部的人臉圖像進行識別從而獲得它的身份。
FaceNet 作為人臉識別算法,它在人臉識別的后半部分起作用。在對原圖進行人臉圖像截取后,通過FaceNet 對其進行特征提取,而FaceNet 則從輸入的圖像中抽取出128 個特征矢量作為特征向量[7]。與此同時,還必須構建一個包含所有需要被比對的人臉資料庫,并使用相同的FaceNet 模型來提取長度為128 的特征矢量。將當前圖片提取出的長度為128的特征向量和數(shù)據(jù)庫中的所有人臉特征進行比對,比對的方式就是計算當前特征向量和所有保存好的特征向量的歐氏距離。最后,選擇人臉資料庫中與目前圖像距離最近、門限不超過某一特定值的圖像作為檢測結果。若人臉資料庫中有圖片符合上述兩項條件,則表明人臉資料庫有一張與目前照片最相近的面孔,即意味著符合條件。
FaceNet 的輸入是一張人臉圖片,輸出是這張人臉圖片所對應的長度為128的特征向量,該向量是輸入的臉部圖像的特征數(shù)據(jù)濃縮。FaceNet主要分割為三部分:第一部分為主干特征提取網絡,通過對所采集到圖像進行初始的特征提取,從而得到圖像的初步特征;第二部分為對利用獲取到的初步特征進行處理,從而獲得長度為128的特征向量;第三部分為對獲取到的長度為128的特征向量進行L2標準化。
指紋識別技術是國內生物技術應用時間最久、行業(yè)廣泛、最為成熟一項技術[8]。本系統(tǒng)采用了FPC1020 指紋模塊,該模塊具有高精度、高速度和高穩(wěn)定性等優(yōu)點,可以滿足系統(tǒng)對指紋識別的需求。指紋識別的具體實現(xiàn)步驟如下:
1)采集指紋圖像:考生在注冊時需要將手指放置在指紋模塊上進行指紋采集,指紋模塊會自動采集指紋圖像,并將圖像傳輸至后端服務器。
2)圖像預處理:在后端服務器上,采用圖像處理算法對指紋圖像進行預處理,包括圖像去噪、增強、特征提取等步驟。
3)特征匹配:通過比對考生的指紋特征和系統(tǒng)中存儲的指紋特征,判斷考生的身份是否合法。在本系統(tǒng)中,采用Fingerprint Verification Competition(FVC)2002數(shù)據(jù)集進行指紋識別的訓練和測試,可以達到較高的識別準確率。
本系統(tǒng)的流程設計主要包括考生注冊、考生身份識別、考試內容管理和作弊行為監(jiān)控等步驟,考試流程示例如圖2所示。
1)考生注冊:考生注冊時需要輸入個人信息和指紋圖像,個人信息包括姓名、身份證號碼等基本信息,指紋圖像用于后續(xù)的考生身份識別。系統(tǒng)將采集到的信息存儲在數(shù)據(jù)庫中,以便后續(xù)的考試管理。
2)考生身份識別:考生在參加考試前需要進行身份識別,系統(tǒng)會自動采集考生的指紋圖像,并將其與系統(tǒng)中存儲的指紋特征進行匹配,判斷考生的身份是否合法。若匹配成功,則考生可以進入考試環(huán)節(jié);若匹配失敗,則系統(tǒng)會提示考生重新進行身份識別。
3)考試內容管理:考試內容包括試題的管理和考試時間的控制等。系統(tǒng)管理員可以通過系統(tǒng)管理界面上傳試題和設置考試時間等信息,考生在考試開始前可以通過前端界面查看試題,并在規(guī)定時間內完成考試。
4)作弊行為監(jiān)控:在考試過程中,系統(tǒng)會通過攝像頭對考生的行為進行監(jiān)控,包括考生的面部表情、頭部姿勢、眼神等,以便及時發(fā)現(xiàn)作弊行為。同時,系統(tǒng)也可以檢測考生是否使用外部設備,如手機、平板電腦等。若系統(tǒng)發(fā)現(xiàn)考生存在作弊行為,會及時向管理員發(fā)出警報并記錄作弊行為的相關信息。
5)成績管理:考試結束后,系統(tǒng)會自動對考試結果進行統(tǒng)計和分析,并生成成績單。系統(tǒng)管理員可以通過系統(tǒng)管理界面查看考生的成績和考試情況,同時可以對成績單進行導出和打印。
圖2 考試流程示例圖
系統(tǒng)采用前后端分離式架構設計,前端負責用戶交互和展示數(shù)據(jù),后端負責處理業(yè)務邏輯和數(shù)據(jù)存儲。前端采用的框架是React 和Ant Design 組件進行開發(fā),后端采用Node.js和Express框架進行開發(fā),通過中間件和插件的使用,實現(xiàn)了身份認證、異常處理、日志記錄等基本功能提高了系統(tǒng)的穩(wěn)定性和可維護性。數(shù)據(jù)庫采用MySQL 數(shù)據(jù)庫,通過ORM 框架Sequelize對數(shù)據(jù)進行存儲和管理,能夠簡化數(shù)據(jù)庫操作,提高代碼可讀性和可維護性。系統(tǒng)架構圖如圖3所示。
圖3 系統(tǒng)架構圖
1)采集系統(tǒng)功能:考生生物特征采集及存儲。采集面頰、二代身份證信息(根據(jù)實際情況定),將二代身份證讀取模塊中讀取出的身份證芯片內部的照片與現(xiàn)場持證人的現(xiàn)場采集照片進行持證人的真假識別,實現(xiàn)在采集的源頭上做持證人是不是報名考生本人的識別功能,確保源頭采集的人證合一。
2) 身份驗證系統(tǒng)功能:支持驗證數(shù)據(jù)導入與導出,通過與硬件模塊結合,實現(xiàn)入場驗證與后臺驗證相結合。系統(tǒng)采用人臉識別技術、二代身份證讀取技術、指紋識別對比技術、數(shù)據(jù)管理應用技術進行組合優(yōu)化,實現(xiàn)考生身份合法性驗證的功能。通過使用終端系統(tǒng)上的二代證讀取功能,讀取報名考生的二代身份證里面芯片的信息,結合系統(tǒng)的面部識別技術模塊,自動拍攝考生現(xiàn)場的臉部面相與提取的照片進行對比,判斷持證考生是否為本人。設置異常處理機制,在考生面像識別不過關的情況下,采集考生的指紋信息方便日后取證。信息驗證完成后將考生驗證信息及入場數(shù)據(jù)實時上傳、集中存儲及呈現(xiàn)。
3)考前管理功能:基于編排數(shù)據(jù)的網絡或本地導入可進行場次查詢和編排信息查詢;場次查詢查看從平臺獲取的場次信息是否正確;編排信息查詢可查看考生場次、考場號、身份證號碼、姓名、報名號等。
4)考后管理功能:考后管理模塊主要負責終端驗證數(shù)據(jù)包的匯總導入;指紋未通過的考生進行人臉比對;指紋和人臉比對都未通過的考生進行存疑打印復核;對存疑復核通過的考生進行人工審核;對各個考場的缺考進行確認,標記缺考狀態(tài)。錄入違紀考生違紀信息。
本文基于生物特征識別技術設計了一套考務管理系統(tǒng),該系統(tǒng)具有高效、穩(wěn)定、安全和可擴展等特點,能夠滿足現(xiàn)代化考試管理的需求。本系統(tǒng)采用了指紋識別技術進行身份識別,通過前后端分離的架構模式實現(xiàn)了系統(tǒng)的可擴展性和維護性。同時,本系統(tǒng)還具備作弊行為監(jiān)控和成績管理等功能,能夠有效提高考試管理的質量和效率。