摘要本文針對在線考試和身份驗證的需求,設計了一個基于指紋識別的通用在線考試系統,系統采用C/S和B/S的混合結構;介紹了系統總體結構以及指紋識別的關鍵算法、試卷的實時保存等,試驗表明系統具有較好的通用性。
關鍵詞在線考試 指紋識別 J2EEAjax
中圖分類號:G424文獻標識碼:A
1 前言
隨著信息技術的飛速發展,考試方式已經從計算機輔助考試發展到了基于網絡的在線考試,目前,常見的在線考試,采用用戶名和密碼進行登陸,由監考人員根據相關證件上的照片進行核實,很容易出現代考的現象,本文結合指紋識別技術,結合C/S和B/S技術,設計一個通用的在線考試系統,利用該系統,完成對考試信息的管理和對考生指紋的識別。
2 系統簡介
為了使系統具有通用性,系統的要求為:一份試卷中可以有多個科目的題目,可以有多種題型,可以分配給不同的考生進行考試,試卷中的題目在考生進行考試的時候按照設定題型、科目、題量的約束隨機生成,對于單選、多選、判斷等客觀題,在考生提交試卷時,自動進行評分。系統主要功能如圖1所示。
圖1—系統功能結構圖
(1)考生信息管理:錄入考生的基本信息,包含指紋的采集、指紋特征的保存。
(2)課程信息管理: 管理課程的信息,題目按課程進行分類。
(3)題庫管理: 題目分為客觀題(單選、多選、判斷)和主觀題(填空題、簡答題),支持單個題目的錄入和批量從word 中導入。
(4)試卷管理:設置試卷的基本信息(標題、試卷總分、時長、有效時間),分配題型、考試科目、考試人員、評分老師。
(5)在線考試:通過輸入指紋進行身份的驗證,通過后,隨機出題,考生交卷后,自動計算客觀題的分數。
(6)在線評分:對主觀題進行評分。
(7)成績統計與打印:統計考生的成績,導出到Excel表中,并能將考生的試卷打印。
(8)在線監控:對當前登陸的考生進行監控,列出在線考生,可以對舞弊的考生,強行踢出考試系統。
3 系統設計
該系統采用三層的C/S和B/S混合體系結構設計如圖2所示。
圖2—系統主體結構圖
第一層是數據層,采用獨立的兩臺服務器;第二層應用層,是采用Web Service實現中間層的應用服務;第三層是用戶界面層,分別由B/S結構的Web網站和C/S結構的管理端與考場端組成。其中,考生指紋的注冊和考試時身份的驗證采用C/S結構,實現指紋的采集、特征識別和匹配;教師出題時的題庫管理和智能組卷、考完試后主觀題的人工改卷,以及考生查分數和分散式考試中的考生報名等,主要采用B/S結構實現。
為了提高速度和并發能力,考生在線答題部分采用Ajax引擎,Web服務器部分基于MVC設計模式,由JSP負責生成動態網頁,JavaBean負責業務邏輯,Servlet負責流程控制。
4 系統關鍵技術的實現
4.1 指紋特征的提取
對于考生,預先提取指紋,將指紋特征模版存放到服務器中,當考生考試時,按下指紋,進行匹對,找出該考生的身份。指紋特征提取過程如圖3所示。
圖3—指紋特征提取過程圖
通過指紋采集儀獲取原始指紋圖像后,經過分割、增強、二值化、細化、特征提取后獲得某指紋的特征點。本文指紋分割采用基于多級分割的算法,指紋圖象增強采用傳統的傅立葉變換, 在進行二值化時,通過對最大類間方差法(Otsu)的改進,采用局部遞歸分割算法,利用目標與背景的差異決定遞歸的次數和每次分割進行的局部區域,在閾值的選取時,為保持類間距離最大、類內聚性好,獲得最佳的分割效果, 采用公式(1):
其中Pa代表目標部分的比例,Pb代表背景部分的比例,Wa代表目標灰度均值,Wb代表背景灰度均值。當式(2)取最大值時所對應的灰度級即為所求的最佳閾值t*,即
然后,進行細化算法時采用經典的OPTA算法。經過上述處理后,生成只含指紋紋理的清晰的二值圖像,如圖4所示。
(a) 原始指紋(b)二值化(c)細化
圖4 指紋處理對比圖
最后,采用脊線跟隨算法最后得到該條脊線上的特征。
4.2 指紋識別
指紋識別就是根據從所采集到的指紋圖像中所提取的細節特征點集合P={p1,p2,…,pm}和模板中的細節特征點集合Q={q1,q2,…,qn},判斷該兩組特征點集合是否來自于同一枚手指。采用一種基于三角形全等的指紋特征點快速匹配算法,算法的基本思路如下:
(1)通過特征點坐標找出離指紋圖像中心較近的6個像素點,組成20個不同的三元組;
(2)在特征模板中逐個查找對應的三元組,在采集到的指紋特征和待匹配的指紋模板之間查找全等三角形;
(3)根據查找到的兩個三角形的相對位置,通過平移和旋轉操作,使兩個三角形在誤差允許的范圍內重疊,求出相應的平移和旋轉參數;
(4)根據前面所求出的平移和旋轉的相關參數,對全部指紋特征點進行平移和旋轉操作,根據兩組指紋特征中所有特征點的在誤差允許的范圍內重疊程度確定該兩組指紋是否來自同一手指。
4.3 試卷的定時保存
在考試過程中,當遇到交卷失敗、網絡中斷等意外情況時,通常會造成外導致考試中斷,考生也可以重新登錄繼續考試,原先 數據的丟失,實時保存考生的答題情況非常必要。該考試系統采用Ajax技術由JavaScript代碼在后臺為用戶定時存盤,一旦系統出現故障,再次進入考試系統時,可根據保存的信息在故障點處繼續進行考試,原來考試的信息可以從服務器端一次性加載。
5 系統實現與實驗分析
系統采用J2EE架構實現考生基本信息的采集和系統管理員的管理模塊,指紋采集和識別模塊采用Delphi7.0編寫的客戶端,系統運行在HP ProLiant DL380 G6服務器(2GHz /2GB),服務器OS,采用Solarise 10 64位操作系統,數據庫管理系統采用Oracle 10g,WEB應用服務器軟件采用Tomcat6.0.
系統在實驗環境下,使用了本學院近3000枚指紋樣本作為考生指紋進行測試,各個功能的具體測試結果數據如表1。
表1 系統測試結果
通過對測試結果分析,系統能正確完成考生指紋的采集,指紋模板庫的建立,考生指紋的匹配,性能指標都符合基本要求。
6 小結
本文利用指紋識別技術改進現有的在線考試系統,系統綜合采用 C/S和B/S結構的優勢,考生只需手指在指紋采集儀器上輕輕劃過,即可確認用戶身份,而不需要傳統的出示一大堆證件等繁瑣步驟;本系統運行速度快,指紋采集驗證時間在1 s之內完成, 實際運行結果證明本系統具有很強的實用價值。
題目源于:九江學院校級課題《基于生物特征識別的考試系統的研究與實現》
參考文獻
[1]王蓉,汪詩林.基于J2EE架構的網絡考試系統的設計與實現[J].計算機工程與應用,2005(28):211~214.
[2] 丁振凡.Ajax技術在網絡考試分析中的應用[J].華東交通大學學報,2007(5):75~76.
[3]蔡燕柳; 賈振紅.基于改進的Otsu準則的遞歸圖像分割算法.激光雜志[J].2008.4.
[4]梁廣民,蔡學軍.OPTA算法的改進及其在指紋圖像細化中的應用.計算機工程與設計[J].2006.23.
[5]趙應丁,劉金剛.基于嵌入式應用的指紋處理模塊板的設計與實現[J].計算機工程,2006.4.