馬燕芹,陳海田,張振峰,王健
(1.南京工業職業技術大學,江蘇南京 210023;2.中國電子科技集團公司第五十八研究所,江蘇南京 214000)
考試是學校教育檢查學生知識掌握效果的重要形式,是所有教學過程中的一個重要環節,是與教育同生共存的,是檢查教學質量高低和教學目標實施過程中的重要手段[1]。隨著互聯網技術、人工智能技術以及計算機視覺技術的快速發展和落地應用,在線考試逐步替代傳統的紙質考試[2-3]。
尤其是受近年來新冠疫情的影響,教育方式的變革迫在眉睫,對遠程、線上教育的需求越來越高[4-5],傳統的紙質化考試形式也受到了挑戰。隨著信息技術飛速發展、計算機技術的更新迭代以及人工智能技術的廣泛應用,在線考試以其可靠、公開、安全、公正、高效的特點正逐步成為教育現代化、信息化的重要組成部分[6],也將逐步替代紙質考試,成為主要的考試方式之一。
高校計算機等級考試作為無紙化的考試方式之一,其有區別于在線考試管理系統,該系統屬于離線無紙化考試系統,通過考生的賬號和密碼就可以登錄考試系統,考試試題是在題庫中隨機抽取的,而且考試管理系統不能聯Internet 網,在一定程度上避免了考生在考試過程中作弊的可能性,另外,考試的閱卷是系統自動批閱,大大降低了教師的工作量。但是計算機等級考試的監考也由教師參與,不能實現在線智能監考。
在線考試系統一般需要網絡化的環境,使得考試可以網絡上進行,極大方便了教師組卷和組織考試,學生端的在線考試系統不但可以遠程進行,也可以在局域網環境下進行。另外經過精細設計數據庫,可以使得上千人同時訪問。
在線考試系統一般要包含三大模塊:管理員模塊、學生模塊和教師模塊。管理員模塊要對學生進行管理,由此涉及學生所述學院、專業、班級等信息,而且管理員要對考試信息進行管理和發布,同時要對考試在線監考的日志信息進行管理等。教師端模塊要對試題的題庫進行刪除、添加和編輯的需求,對試卷的生成和批閱管理,以及對試卷的智能分析的需求。學生端模塊最主要的功能是能實現在線智能考試,而且系統能夠智能監考,防止學生在線考試作弊。與此同時,錯題庫功能和學生本人成績的分析功能也需要考慮。總而言之,在線考試系統是一個相對復雜的軟件應用。
實現在線考試的智能化是本系統設計的基本思想,基本目的推進學校在線考試管理的信息化建設。本系統主要根據實際紙質化考試的要求,依托先進的云服務技術[7]、人工智能技術和計算機視覺技術等相關理論支持,提高了在線考試的效率[8],降低了在線考試的工作量,同時保證在線考試的智能性[9]。
本論文參考微服務架構風格和云原生架構思想。采用Nacos 作為服務中心以及配置中心。使用Spring Cloud Gateway作為服務網關搭建集群,接收各端的請求。通過技術中臺的認證服務進行鑒權。同時通過Ribbon/Sentinel 做服務轉發、熔斷和限流。人工智能采用Mediapipe、TensorFlow、OpenCV 等技術在Python端實現,通過flask 進行開放接口。Devops 采用git、docker、jenkins、k8s 進行持續集成與發布。考試服務中核心功能的數據庫表結構:該結構的核心表是文本內容表,使用該表存儲題目、選項、試卷內容、任務內容等json 數據。而文本表的內容使用MongoDB 進行存儲,用于后續查詢使用。題目表必須包含學科信息和學院名稱。將試卷存儲到文本內容中只需要存儲題目id和題目的大標題如選擇題、多選題、簡答題等。用戶的答卷信息使用用戶答卷表和用戶答卷題目表進行存儲。如圖1 所示,系統的權限管理采用RBAC(Role-Based Access Control),即基于角色的訪問控制,是一種權限設計思想。將用戶信息以及菜單權限信息等綁定對應的角色。從而通過角色擁有的權限進行統一認證和鑒權。

圖1 考試服務數據庫表結構
從在線考試系統的功能方面來講,本文將在線考試的3大核心功能進行深入研究和完善,大大提高了系統的實用性和智能性[9]。教師端:組卷可以實現智能化組卷,教師編輯好組卷的邏輯,系統會自動生成符合要求的試卷,降低了教師的工作量。同時閱卷可以實現一鍵完成,大大提高閱卷效率。與傳統的紙質考試相比,教師在考試前、考試中以及考試后的工作量都得到大大緩解,也可以解決考試周學校教室安排擁擠的狀況。學生端:智能監考主要基于計算機視覺的相關技術,實現攝像頭實時監控考生在線考試過程的人臉動作,當考生存在作弊可疑動作時,系統會給予提醒,提醒次數達到設定的閾值,系統會強制考生交卷。
本系統完善的系統管理機制,主要功能模塊包含3 部分:教師端、學生端、管理端,如圖2 所示。首先,可靠的系統運維功能,各功能模塊統籌規劃且支持獨立運行,并提供完備的數據安全和運維保障服務。完全響應式布局(支持電腦、平板、手機等所有主流設備)Maven 多項目依賴,模塊及插件分項目,盡量松耦合,方便模塊升級、增減模塊;另外,系統具備完備的角色管理功能,分層級的獨立組織架構和角色權限管理,滿足學校所有專業在線考試需求。

圖2 系統的功能模塊
教師端模塊的主要功能包含3 方面:高效的題庫管理、多樣化的組卷和多樣化的閱卷方式。
題庫管理:多樣化試題類型包含:選擇、填空、判斷、簡答、論述和分析等多種題型。負責教師可以通過網絡對題庫進行管理,如新增試題、編輯試題和刪除試題等。其中,新增試題可以手動單個錄入或者通過模板進行試題的自動批量導入。新增試題時,可以設置試題的難度、分值和答案,試題難易分1~5級。
多樣化的組卷:手動組卷和智能組卷。手動組卷:主要由組卷教師根據考試需求,手動從試題庫中選取試題,組合成符合要求的試卷。手動組卷效率低、人為因素干擾大,而且容易造成試題的泄露。智能組卷:教師可以通過設置試卷的組成分布、試題難易程度、組卷邏輯以及考試時長等,系統根據組卷要求從試題庫中自動抽取試題組合產生試卷。智能組卷效率高、試題選取的隨機性大,在一定程度上降低了試題的泄露風險。在智能組卷中點擊自定義按鈕,會顯示下列自定義選項,可根據用戶需求,選擇題目難度、題型、題目數量和題目分數。點擊“生成”,會根據自定義需求生成考題。
多樣化的閱卷方式,考試系統具有自動閱卷和手動閱卷兩種方式,教師可以選擇手動閱卷,自主進行試卷的批閱,也可以使用自動閱卷,實現一鍵閱卷。考試的自動閱卷根據不同類型的試題,閱卷原理存在差異,如圖3所示。考試的試題主要包含客觀題和主觀題:單選題、多選題、判斷題、填空題、簡答題。客觀題(單選題、多選題、判斷題)的批閱通過直接與正確答案進行匹配,如果完全匹配則給分,否則不給分;而主觀題(填空題、簡答題)的批改采用TF 特征向量和simhash 算法計算中文文本的相似度,從而根據相似度給定對應分值。使用simhash算法比較兩個特征向量的相似性時,采用了漢明距離。智能閱卷和成績分析,選擇題和判斷題直接進行比較答案,從而實現試卷自動批閱。另外,教師端還可以對學生的考試成績進行全方位的分析:考試分析、考情分析和考生分析。

圖3 智能閱卷原理
成績分析:教師端可對考試成績進行全方位的分析,如圖4所示,包含考試分析、考情分析和考生分析。考試分析主要針對考試時間、考試班級、考試人數、考試成績分布(包含平均分、分數段占比、最高分、最低分)、考試成績檔次分布(優秀率、良好率、及格率和不及格率)等進行統計管理;考情分析主要分析試題分析(試題類型、占比)、試題正確率、錯題分布;考生分析主要針對每一個考生進行考試時長、考試成績、成績檔次、班級排名等進行分析。

圖4 成績多維度分析頁面
學生端模塊的主要功能而且也是本系統的核心功能之一為在線考試防作弊功能。本系統采用兩種方式來防止考生作弊,實現智能監考,如圖5所示。一是考試機監控,通過前端js的功能將禁止鍵盤復制粘貼、切屏以及實現考試過程全屏的方式避免web考試時的作弊行為;二是考生監控,通過Mediapipe、OpenCV 和tensorFlow 等方式實現考試系統登錄人臉識別校驗和考試過程中的人臉實時監測。考試前,不但需要用戶和密碼,還基于虹軟AI提供的ArcFace 技術,通過比對人臉庫中的考生的人臉信息和考生登錄的人臉信息,人臉匹配成功后才可以進入考試系統。

圖5 智能監考原理
考試中,人臉檢測作弊判定依據主要歸結為2 種類型。具體而言,1)基于ArcFace 技術的人臉實時識別。考試全程開啟攝像頭,定時采集考生人臉信息進行識別。如果考試過程出現人臉遮擋、人臉移出攝像頭區域或者攝像頭拍攝到非考生的人臉圖像,且時間超過2s,系統判定考生有潛在作弊行為,給予提醒。2)基于Mediapipe 虹膜跟蹤模型的雙眼深度測量,即監測考生的兩眼距離考試屏幕的距離。根據該數據判定考生是否東張西望、遠離(靠近)攝像頭。正常考試情況下,考生的兩眼距離考試屏幕的距離在一定的范圍內,如果考生在考試過程中出現東張西望或者人臉遠離考試機屏幕的動作時,且動作持續超多2s,系統根據檢測到的左眼虹膜和右眼虹膜的深度值,判定考生有潛在作弊行為,給予提醒。
同時,考試過程中考試機的智能監控包含通過設置試卷全屏初步防止考生考試過程中的切屏行為;鼠標監控主要監測考生考試過程中鼠標是否在考試機屏幕的有效區域內動作來防止考生通過第二屏幕作弊;鍵盤監控主要監控考試在考試過程中是否使用了禁止使用的快捷鍵,如切屏、復制/粘貼(考試過程禁用了復制/粘貼功能)、縮放等。如考試過程考生有上述無效考試行為,將進行提醒,并累計提醒次數,當提醒次數到設定閾值,將強制考生交卷。
Mediapipe 虹膜跟蹤模型的原理圖如圖6 所示。對大部分人來說,人眼的水平虹膜直徑基本保持在i=11.7±0.5 mm 范圍內。根據針孔攝像頭的成像模型,虹膜與相機之間的距離d可以通過相機的焦距f估計得出。

圖6 虹膜跟蹤模型
焦距則可以使用相機的相關拍攝API 或直接從拍攝圖像的EXIF 元數據中獲取,也可以通過其他相機內參數獲取。確定焦距后,虹膜圖像大小可以從根據相機圖像中直接讀取,然后轉化成物理尺寸,記為h。則虹膜與相機之間的距離d:
考試過程,通過考試機的攝像頭定時采集考生臉部圖像,進行識別和監控,一旦人臉移出攝像頭的拍攝范圍、拍攝到非考生的人臉或者考生人臉被遮擋超過2s,系統會給予提醒。其次,考生虹膜的實時跟蹤。通過MediaPipe Iris虹膜跟蹤模型,該模型還能夠在不使用深度傳感器的情況下確定相對誤差小于10%的考生雙眼到和考試機攝像頭之間的距離,當測量到的雙眼到攝像頭的距離超出合理的范圍,且時間持續2s,系統會給予提醒。當提醒次數或時長超過設定范圍,將強制考生交卷。
如圖7 所示,系統會根據實際計算的距離判斷考試學生是否東張西望或人臉距離攝像頭太遠(近)。當離開課桌、東張西望、退出全屏等作弊行為發生,將進行提醒。超過三次強制交卷,并判斷為作弊。

圖7 虹膜跟蹤模型判斷考生動作狀態
本系統的管理員模塊主要包含通知公告和系統管理。管理員可以在通知公告部分發布系統更新和修改的一些公告,并且考試通知也由管理員在此發布。系統管理模塊主要是對學生、教師等用戶信息進行維護,如學生所屬學院,所屬專業以及所在班級等。通過用戶信息的管理,可以將學生和考試相關信息進行關聯。
本文搭建的智能在線考試系統是基于人工智能技術、微服務、云原生服務等新媒體技術開發的新一代在線考試系統。系統基于在線教學平臺構建的考試功能體系,涵蓋了目前各類院校的常用考試流程和功能使用需求,針對教考分離模式進行深化設計,各功能模塊統籌規劃且支持獨立運行,并提供完備的數據安全和運維保障服務。考試結束可自動生成的全方位的考試分析數據,由此可以讓教師更全面地掌握學生的學習情況,讓考試不僅局限于教學效果的驗收,而是伴隨教學全過程,促進教學改革,提升教學效率。