摘 要:隨著網(wǎng)絡(luò)學(xué)習(xí)平臺在企業(yè)培訓(xùn)中的應(yīng)用,網(wǎng)絡(luò)考試質(zhì)量評價顯得尤為突出,只有嚴把網(wǎng)絡(luò)考試質(zhì)量關(guān),才能對網(wǎng)絡(luò)學(xué)習(xí)的質(zhì)量進行準確地評價。因此,有必要研發(fā)專門針對網(wǎng)絡(luò)學(xué)習(xí)平臺的分布式考試防作弊技術(shù)。
關(guān)鍵詞:網(wǎng)絡(luò)考試;分布式;防作弊
1 開發(fā)背景
網(wǎng)絡(luò)學(xué)習(xí)平臺在我國還處于新興事物階段,由于不受時間、地點、空間限制,且支持移動(手機登錄)學(xué)習(xí)模式,受到廣大用戶的喜愛,已成為當(dāng)今最熱門的企業(yè)內(nèi)部培訓(xùn)模式。
隨著網(wǎng)絡(luò)學(xué)習(xí)平臺在企業(yè)培訓(xùn)中的應(yīng)用,網(wǎng)絡(luò)考試質(zhì)量評價日益突出,只有把好網(wǎng)絡(luò)考試質(zhì)量關(guān),才能對網(wǎng)絡(luò)學(xué)習(xí)的質(zhì)量進行準確地評估。因此,研發(fā)專門針對網(wǎng)絡(luò)考試平臺的分布式考試防作弊技術(shù)具有重要意義。
2 系統(tǒng)分析
網(wǎng)絡(luò)考試防作弊技術(shù)與在考場集中考試的防作弊技術(shù)有許多相同的地方,都需要用到攝像機采集圖像信號,通過音頻采集部件和話筒采集現(xiàn)場的語音信號。對于考場來說,可以通過控制器來控制攝像機采集圖像信號,以及控制話筒采集現(xiàn)場的語音信號,并對其進行壓縮抒包處理,然后通過網(wǎng)絡(luò)接口向外部發(fā)送。同時,控制器還能通過網(wǎng)絡(luò)接口接收遠端控制中心發(fā)出的控制指令,并根據(jù)控制指令,通過焦距控制器和視角控制器實現(xiàn)對攝像機焦距和視角進行控制。
然而,在分布式網(wǎng)絡(luò)考試中所用的攝像機是學(xué)員自帶筆記本或臺式機上的攝像頭,話筒是筆記本或臺式機上的麥克風(fēng)。這就無法在服務(wù)器端控制學(xué)員的攝像機焦距和視角,在防作弊操作上存在缺陷。針對現(xiàn)有技術(shù)所存在的不足,提供一種基于網(wǎng)絡(luò)平臺的分布式考試防作弊系統(tǒng)和防作弊方法。
2.1 分布式考試防作弊系統(tǒng)構(gòu)想
基于網(wǎng)絡(luò)平臺的分布式考試防作弊系統(tǒng),包括相互連接的用戶端和服務(wù)端。其中,服務(wù)端接收用戶端傳輸?shù)目荚嚨顷戲炞C信息并處理后反饋至用戶端,用戶端向服務(wù)端發(fā)送考試信息并存儲在服務(wù)端中。
用戶端包括考前登錄模塊、網(wǎng)頁攝像模塊、網(wǎng)頁錄音模塊、網(wǎng)頁異步提交模塊。
考前登錄模塊分別與網(wǎng)頁攝像模塊、網(wǎng)頁錄音模塊連接,網(wǎng)頁攝像模塊、網(wǎng)頁錄音模塊連接分別與網(wǎng)頁異步提交模塊連接;考前登錄模塊驗證用戶的考試登錄信息并通過網(wǎng)頁攝像模塊、網(wǎng)頁錄音模塊發(fā)送至服務(wù)端,網(wǎng)頁攝像模塊、網(wǎng)頁錄音模塊分別采集圖像信息、語音信息傳輸至網(wǎng)頁異步提交模塊并通過網(wǎng)絡(luò)傳輸至服務(wù)端。
服務(wù)端包括服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊、用戶考試記錄數(shù)據(jù)庫、作弊查閱和驗證模塊:
服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊與用戶考試記錄數(shù)據(jù)庫、作弊查閱和驗證模塊連接,作弊查閱和驗證模塊與用戶考試記錄數(shù)據(jù)庫連接;服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊接收用戶端發(fā)送的考試登錄信息并傳輸至作弊查閱和驗證模塊,作弊查閱和驗證模塊驗證考試登錄信息并反饋至用戶端;服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊處理服務(wù)端接受的圖像信息、語音信息并存儲在用戶考試記錄數(shù)據(jù)庫中;作弊查閱和驗證模塊,調(diào)取用戶考試記錄數(shù)據(jù)庫中的圖像信息、語音信息判定是否作弊。
2.2 分布式考試防作弊方法構(gòu)想
基于網(wǎng)絡(luò)平臺的分布式考試防作弊方法,包括如下步驟:
考前登錄模塊檢測防作弊考試環(huán)境并驗證用戶信息,網(wǎng)頁異步提交模塊控制網(wǎng)頁錄音模塊、網(wǎng)頁攝像模塊實時采集用戶的考試信息發(fā)送至服務(wù)端。
服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊分別對接收的用戶語音信息、圖像信息預(yù)處理并存儲在用戶考試記錄數(shù)據(jù)庫中。
管理員通過作弊查閱和驗證模塊查閱預(yù)處理后的語音信息和圖像信息驗證用戶的考試信息。
圖1 分布式考試防作弊系統(tǒng)的結(jié)構(gòu)示意圖
3 系統(tǒng)實現(xiàn)
3.1 用戶端實現(xiàn)
3.1.1 圖像信息采集
用戶在登錄頁面上輸入登錄信息時,該登錄頁面中的JavaScript程序會調(diào)用錄音函數(shù)、攝照函數(shù)控制用戶端的攝像頭、麥克風(fēng)隨機拍照/錄像或錄音,得到隨機拍攝的照片/一小段錄像和錄下的一小段錄音。當(dāng)用戶提交登錄頁面時,所錄下的聲音數(shù)據(jù)和所拍的照片數(shù)據(jù)/錄像數(shù)據(jù)一同傳送到服務(wù)端。
考慮到網(wǎng)絡(luò)傳輸速度差異,采用定時拍照傳輸圖片的方式。兼顧用戶作弊的動作速度及網(wǎng)頁異步傳輸?shù)乃俣?,拍照的時間間隔定為3秒較合適。利用定時獲取的圖片,在服務(wù)端由機器輔助管理員隨時判斷用戶是否作弊,而不是監(jiān)考員在考場監(jiān)視或集中監(jiān)視,避免干擾用戶自主考試。
圖像信息采集實現(xiàn):在考試頁面添加JavaScript定時模塊:setTimeout(function()(要執(zhí)行的代碼),3000),其中3000的單位是毫秒,即每隔3秒執(zhí)行一次function的代碼。采用Flash來實現(xiàn)網(wǎng)頁的圖像采集和語音采集功能,為此需要使得JavaScript可以調(diào)用Flash的函數(shù)。Flash的AddCallback方法允許JavaScript調(diào)用其時間上的函數(shù),基本的調(diào)用語法如下:
External Interface.addCal lback(functionID:String, instance:Object,functionName:Function)。與call方法類似,它也是一個靜態(tài)方法,有三個參數(shù):functionID為從JavaScript調(diào)用ActionScript函數(shù)時可使用的名稱。此名稱不必與ActionScript方法的實際名稱匹配;instance是在該方法中被解析成的對象。此對象不一定是在其上可找到該方法的對象,可以指定任何對象(或1);functionName為要從JavaScript調(diào)用的ActionScript方法。
圖像信息采集時,主要用到Flash的Camera類,加入以下代碼實現(xiàn)圖像信息采集功能:myCam=Camera. get();myCam. setMode(400,300,10);my_video.attachVideo(myCam)。再通過以下代碼實現(xiàn)視頻的撲捉:
function saveCamera(){
lv.bm = new Flash.display.BitmapData(400, 300,true,0);
lv.bm. draw(camera);
var tempObj=_root.createEmptyMovieClip(\"photo\",100);
tempObj._x=400; tempObj._y=300;
tempObj.attachBitmap(lv. bm,1);
}
3.1.2 音頻信息采集
為使服務(wù)端并行處理錄音文件,同時可分段對是否作弊進行校驗,采用定時錄音并發(fā)送的方式。兼顧用戶作弊的交談時長及網(wǎng)頁異步傳輸?shù)乃俣龋浺魰r長為30秒較合適。語音信號在服務(wù)端由機器判斷用戶是否有作弊嫌疑,避免干擾用戶自主考試。另外,考試開始前提示用戶選擇相對安靜的環(huán)境考試,避免服務(wù)端誤判作弊。
語音信息采集實現(xiàn):在考試頁面上的JavaScript調(diào)用Flash的下列類來實現(xiàn)用戶語音信息采集功能:
import org.as3wavsound.WavSound;
import org.bytearray.micrecorder.MicRecorder;
import org.bytearray.micrecorder.encorder.WaveEncoder;
import org.bytearray.micrecorder.events.RecordingEvent;
import Flash.display.MovieClip;
var recorder:MicRecorder=new MicRecorder(new WavEncoder() );
var player:WavSound;
recorder.addEventListener(RecordingEvent.RECORDING,onRecording);
recorder.addEventListener(Event.COMPLETE,onRecordComplete);
recorder.record();
recorder.stop();
new WavSound(recordar.output);
3.1.3 圖像、音頻信息傳輸
用戶在考試頁面上答題的時間一般較長,以3秒作為記錄時長的圖像信息文件和語音信息文件需要及時送到服務(wù)端,而不能先暫時保存在頁面數(shù)據(jù)中。因此,每張考試網(wǎng)頁中都包含用AJAX寫的異步JavaScript腳本,其功能是將定時采集到的照片和語音信息推送到服務(wù)端。AJAX指的是異步JavaScript及XML(Asynchronous JavaScript And XML)。AJAX是一種獨立于Web服務(wù)器軟件的用于創(chuàng)建更好、更快,以及交互性更強的Web應(yīng)用程序的技術(shù)。AJAX應(yīng)用程序獨立于瀏覽器和平臺并被所有的主流瀏覽器支持,可使因特網(wǎng)應(yīng)用程序更小、更快、更友好。AJAX能夠涉及廣大的用戶、更易安裝及維護,也更易開發(fā)。在AJAX中很好地定義了使用的Web標準,AJAX基于下列Web標準:JavaScript、XML、HTML和CSS。
通過使用AJAX,用戶的考試頁面可通過JavaScript的XML Http Request對象直接與服務(wù)器進行通信。通過這個對象,用戶考試頁面中的JavaScript腳本程序在定時器的作用下,定時獲得該時長內(nèi)的語音數(shù)據(jù)和圖像數(shù)據(jù),而后建立要連接的URL,打開到具有給URL的服務(wù)器的連接,并設(shè)置服務(wù)器在接收完數(shù)據(jù)后要運行的函數(shù),最后發(fā)送請求。
3.2 服務(wù)端實現(xiàn)
服務(wù)端存儲有每個用戶考試的錄音文件和圖片文件,并且還存有服務(wù)端語音處理模塊和服務(wù)端圖像處理模塊理過的文件,作弊查閱可從語音信息和圖像信息兩方面來進行。
3.2.1 音頻處理
音頻信息采用定時錄音并發(fā)送的方式,可使服務(wù)端并行處理錄音文件,同時可分段校驗是否作弊。兼顧用戶作弊的交談時長及網(wǎng)頁異步傳輸?shù)乃俣龋浺魰r長為30秒較合適??紤]到音頻信號會帶入背景噪音,利用這些幀的倒譜系數(shù)平均值作為背景噪聲倒譜系數(shù)估計值;計算每幀信號的倒譜系數(shù),計算每幀信號的倒譜系數(shù)與噪聲倒譜系數(shù)估計值的倒譜距離;按各幀倒譜距離得到倒譜距離軌跡;然后利用近似能量方法中門限判決的方法檢測語音段和噪聲段;最后處理得到語音的起始點和終止點,通過中值濾波作處理;將處理過的波形數(shù)據(jù)連同原始錄音數(shù)據(jù)一同存入對應(yīng)數(shù)據(jù)庫中的表單內(nèi)。用戶在考試期間的所有錄音文件按時間先后順序,以時間軸上的輪廓模式展示在頁面中,極大地方便管理員查找用戶在考試時是否有作弊的行為。
目前,語言邊界檢查算法有許多,鑒于倒譜被認為是語音信號一種較好的時頻表示,故采用倒譜系數(shù)法。倒譜系數(shù)包含線性預(yù)測倒譜系數(shù)(LPC2CEP)或Mel刻度倒譜系數(shù)(MFCC),這里用MFCC倒譜向量取代簡單特征參數(shù)作為語音端點檢測的判決特征向量。信號倒譜可以看成是信號能量譜密度函數(shù)S(w)的對數(shù)的傅里葉級數(shù)展開:
(1)
其中,Cn是倒譜系數(shù),它是實數(shù),且Cn=C,logS(?棕)是信號能量譜密度函數(shù)。
(2)
其中,C0為倒譜系數(shù),d?棕表示對角速度進行積分運算。
對于一對譜密度函數(shù)S(?棕)和S'(?棕),應(yīng)用Parsavel定理可用倒譜距離來表示對數(shù)譜的均方距離:
式中,Cn和C'n 為對應(yīng)于譜密度函數(shù)S(?棕)和S'(?棕)的倒譜系數(shù)。
倒譜距離測量法根據(jù)每個信號幀與噪聲幀的倒譜距離的軌跡進行檢測,它采用門限判決的方法,其過程如下:
(1)假定抽樣信號的前幾幀信號是背景噪聲。利用這些幀的倒譜系數(shù)C0的平均值作為背景噪聲倒譜系數(shù)的估計值,用向量C表示。
(2)計算每幀信號的倒譜系數(shù),然后用式(4)計算每幀信號的倒譜系數(shù)與噪聲倒譜系數(shù)估計值的倒譜距離:
式中:C'n為對應(yīng)于Cn的倒譜系數(shù);P為倒譜系數(shù)的階數(shù)。
(3)由步驟(2)計算的各幀倒譜距離得到倒譜距離軌跡。然后利用近似能量方法中門限判決的方法檢測語音段和噪聲段。
(4)為使背景噪聲倒譜系數(shù)的估計值C能夠適應(yīng)噪聲的變化,采用一個平滑處理過程。背景噪聲倒譜估計C利用已經(jīng)檢測過的上一信號幀的倒譜向量,按照下式進行更新:
C(k)=?滓C(k)+(1-?滓)C(k-1) (5)
其中,k為信號幀幀號,C為上一信號幀倒譜向量,?滓為一個時間調(diào)整因子,并且這一幀被認為是非語音幀。
(5)最后處理得到語音的起始點和終止點,通過中值濾波作處理后,再將處理過的波形數(shù)據(jù)連同原始語音數(shù)據(jù)一同存入該用戶在用戶考試記錄數(shù)據(jù)庫中的表單內(nèi)。
3.2.2 圖像處理
圖像信息采用定時拍照傳圖片的方式。兼顧到用戶作弊的動作速度及網(wǎng)頁異步傳輸?shù)乃俣龋恼盏臅r間間隔定為3秒較合適,即每隔3秒執(zhí)行一次function的代碼。圖像采集傳輸至服務(wù)端處理,由機器輔助隨時判斷用戶是否在作弊。
服務(wù)端圖像處理模塊在服務(wù)端對接收的圖像縮放處理過程是這樣的:原圖像長為400像素,寬為300像素,現(xiàn)縮小到長為80像素,寬為60像素。將接收到的每張圖像分割成多個小區(qū)域,這個小區(qū)域的長為5像素,寬為5像素;找出每個小區(qū)域中每個像素點RGB值;對小區(qū)域中的像素點RGB值求平均值得到新的RGB值,進一步通過小區(qū)域中各像素的R(紅)值之和、G(綠)值之和以及B(藍)值之和,采用取平均值的方法求出該點的RGB值;將新的RGB值按照小區(qū)域的位置重新排列得到縮放后的圖片;將縮放后的圖片依序存儲在該用戶在用戶考試記錄數(shù)據(jù)庫中的表單內(nèi)。具體算法的語義描述如下:
For (w=0;w<80;w++){
For (h=0;h<60;h++){
Sum=0;
For (i=0;i<5;i++)
Sum+=rb[w*5+I,h*5]+rb[w*5+I,h*5+1]+rb[w*5+I,h*5+2]+rb[w*5+I,h*5+3]+ rb[w*5+I,h*5+4];
Nb[w,h]=sum/25;
}
3.2.3 管理員查驗
服務(wù)端存儲了每個用戶考試期間的錄音、圖片原文件和處理過的縮小文件。管理員可以從圖像信息、語音信息兩方面檢查考生是否存在作弊嫌疑。
首先,管理員可以查看用戶的錄音處理文件,查看用戶被處理過的語音圖形信息,服務(wù)端將用戶考試期間經(jīng)倒譜處理后的坐標圖形呈現(xiàn)在管理員的顯示屏上,它展現(xiàn)為時間軸上的輪廓信息,坐標上有用戶語音的地方呈凸起圖形。若有凸起的輪廓,說明用戶在交談,管理員可認為此時用戶存在作弊嫌疑,點擊這個凸起區(qū)域,可進一步調(diào)取原始錄音文件進行驗證。管理員可聽到用戶此刻的原音回放,以此來驗證用戶是否在交談。
其次,管理員可以查看用戶考試期間的圖像信息,由于圖片做了縮放,服務(wù)端一次就將256張小圖片呈現(xiàn)在管理員的顯示屏上。管理員可按PgDn鍵來看下一屏的256張小圖片,按PgUp鍵來看上一屏的256張小圖片。用戶一個小時考試的圖片僅需5個滿屏就可全部瀏覽完(用戶每隔3秒拍攝一幅圖片),相當(dāng)快捷方便。通過瀏覽圖片,就可回放用戶考試現(xiàn)場的情形,從而發(fā)現(xiàn)用戶是否存在作弊。
綜上,通過實時采集用戶的圖像信息和音頻信息,有效防止網(wǎng)絡(luò)用戶在自主考試時作弊,間接促使用戶切實從提高自身技能方面來加強網(wǎng)絡(luò)學(xué)習(xí),杜絕投機、僥幸考試現(xiàn)象發(fā)生,客觀反映每位用戶的技能水平,從而有效提高網(wǎng)絡(luò)學(xué)習(xí)平臺的使用效能。
參考文獻
[1]董爽,于麗娟.基于B_S模式的物業(yè)管理信息系統(tǒng)的設(shè)計與實現(xiàn)[J].中國管理信息化,2010(6).
[2]蔡明朝.教育考試防作弊技術(shù)之人臉識別技術(shù)的應(yīng)用探討[J].關(guān)愛明天,2015(3).
[3]徐巧枝,劉東升.網(wǎng)絡(luò)考試防作弊系統(tǒng)的研究與設(shè)計[J].計算機教育,2010(5).
[4]劉思堯.在線考試系統(tǒng)防作弊策略研究[J].軟件導(dǎo)刊,2013,12(10).
[5]張艷軍.基于ASP.NET在線考試系統(tǒng)防作弊策略[J].2010,6(33).