趙金龍 寧媛
摘 要: 目前答題卡識(shí)別主要分為人工閱卷和機(jī)器閱卷兩種,但是人工閱卷存在效率低、勞動(dòng)強(qiáng)度大和準(zhǔn)確率不高等問(wèn)題;而傳統(tǒng)的機(jī)器閱卷主要是光標(biāo)閱卷機(jī),其對(duì)答題卡的要求較高,存在通用性較差、使用成本高和使用率低等缺點(diǎn)。針對(duì)這一問(wèn)題,設(shè)計(jì)一款基于數(shù)字圖像處理技術(shù)的自動(dòng)識(shí)別答題卡系統(tǒng),該系統(tǒng)通過(guò)Matlab GUI編程,操作簡(jiǎn)單方便,在普通計(jì)算機(jī)上就可以實(shí)現(xiàn)答題卡自動(dòng)識(shí)別功能,既減輕了教師的閱卷壓力,又克服了光標(biāo)閱卷機(jī)必須??▽S玫娜秉c(diǎn)。結(jié)果表明該系統(tǒng)對(duì)答題卡具有識(shí)別精度高、魯棒性強(qiáng)和成本低廉等優(yōu)點(diǎn),具有很高的使用價(jià)值。
關(guān)鍵詞: 答題卡; 網(wǎng)上閱卷; 圖像處理; Matlab GUI; Hough變換
文章編號(hào): 2095-2163(2021)03-0190-06 中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A
【Abstract】At present, answer sheet recognition is mainly divided into manual scoring and machine scoring. However, manual scoring has problems such as low efficiency, high labor intensity and low accuracy. The traditional machine scoring is mainly a cursor scoring machine, which has higher requirements for answer sheets. There are disadvantages such as poor versatility, high use cost and low use rate. In response to this problem, an automatic answer sheet recognition system based on digital image processing technology is designed. The system is programmed by Matlab GUI, and the operation is simple and convenient. The automatic answer sheet recognition function can be realized on an ordinary computer, which not only reduces the pressure on the teacher to mark the exam, but also overcomes the shortcoming that the cursor marking machine must be dedicated to a special card. The results show that the system has the advantages of high recognition accuracy, robustness and low cost for answering question sheets, and has high use value.
【Key words】 answer sheet; online marking; image processing; Matlab GUI; ?Hough transform
0 引 言
時(shí)下,隨著各類考試數(shù)量的不斷增多,試后的閱卷工作量也有明顯增加。傳統(tǒng)的人工閱卷弊端較為突出,不僅效率低下,還會(huì)耗費(fèi)閱卷人大量的時(shí)間和精力,同時(shí)繁重的閱卷工作也很容易給閱卷老師造成大腦疲勞和視覺疲勞,由此就會(huì)帶來(lái)閱卷錯(cuò)誤。當(dāng)前,互聯(lián)網(wǎng)科技及新興技術(shù)的蓬勃發(fā)展則使得傳統(tǒng)的人工閱卷已經(jīng)不能滿足現(xiàn)代化需求,網(wǎng)上閱卷系統(tǒng)應(yīng)運(yùn)而生。而傳統(tǒng)的光標(biāo)閱卷機(jī)(Optical Mark Reader,OMR)雖然可以克服人工閱卷的弊端,但是其購(gòu)買和維護(hù)成本均頗為可觀,并且對(duì)答題卡有很高的要求,通用性較差,難以在高校內(nèi)部中小型考試中普及使用。
近年來(lái),隨著數(shù)字圖像處理技術(shù)和計(jì)算機(jī)視覺的飛速進(jìn)步,基于數(shù)字圖像處理技術(shù)的自動(dòng)閱卷系統(tǒng)也開始逐漸興起,楊青燕等人[1]提出基于灰度圖像的答題卡定位識(shí)別;郝平[2]提出耦合模板定位答題卡識(shí)別;付清雨等人[3]提出基于模板匹配的答題卡識(shí)別系統(tǒng);韋溢輝等人[4]基于OpenCV來(lái)實(shí)現(xiàn)答題卡生成及批閱。但卻都是基于模板匹配的方法來(lái)定位識(shí)別答題卡,算法應(yīng)用有很大的局限性。本文提出一種基于Hough變換算法來(lái)實(shí)現(xiàn)答題卡自動(dòng)識(shí)別系統(tǒng),以Matlab GUI編程實(shí)現(xiàn)閱卷系統(tǒng)搭建。
1 系統(tǒng)設(shè)計(jì)
基于圖像處理的答題卡自動(dòng)識(shí)別系統(tǒng)主要分為答題卡采集、答題卡預(yù)處理、答題卡校正、答題卡分割與答題卡識(shí)別等部分。首先,通過(guò)手機(jī)相機(jī)或掃描儀來(lái)采集答題卡圖像信息,并將其保存為jpg或mbp格式作為答題卡自動(dòng)識(shí)別系統(tǒng)的輸入圖像;其次,系統(tǒng)將獲取到的答題卡圖像信息進(jìn)行圖像預(yù)處理,預(yù)處理操作主要包括答題卡圖像歸一化、答題卡圖像灰度化、答題卡圖像二值化和答題卡圖像濾波等操作;接著,對(duì)預(yù)處理后的答題卡圖像應(yīng)用Hough變換算法檢測(cè)出圖像中較長(zhǎng)的3條直線,其中最長(zhǎng)的直線與特征直線位置可以判斷出答題卡傾斜的角度,根據(jù)計(jì)算所得到的角度可以實(shí)現(xiàn)答題卡圖像的校正;然后,對(duì)校正后的答題卡圖像進(jìn)行區(qū)域分割,可以得到考生信息與答題卡客觀題信息區(qū)域;最后,對(duì)分割后的答題卡填涂信息進(jìn)行分析識(shí)別,完成系統(tǒng)閱卷操作。答題卡自動(dòng)識(shí)別系統(tǒng)的流程圖如圖1所示。
該系統(tǒng)算法通過(guò)Matlab GUI實(shí)現(xiàn),系統(tǒng)主界面如圖2所示。
該系統(tǒng)的菜單欄由“文件”、“答題卡處理”和“成績(jī)統(tǒng)計(jì)”三部分所組成,點(diǎn)擊“文件”命令后可顯示下一級(jí)子菜單,包括“打開”、“保存”和“退出”三個(gè)命令;點(diǎn)擊“答題卡處理”命令會(huì)出現(xiàn)“答題卡預(yù)處理”、“答題卡校正”和“答題卡標(biāo)記”三個(gè)命令,其中“答題卡預(yù)處理”命令又包含3個(gè)子菜單,分別為:“答題卡歸一化”、 “答題卡濾波”、“答題卡灰度化”和“答題卡二值化”;點(diǎn)擊“成績(jī)統(tǒng)計(jì)”命令,會(huì)在系統(tǒng)界面功能區(qū)左側(cè)顯示答題卡分析識(shí)別后的結(jié)果圖像,在功能區(qū)右側(cè)顯示經(jīng)過(guò)系統(tǒng)分析識(shí)別后答題卡使用者的準(zhǔn)考證號(hào)、考試科目和成績(jī)信息。相關(guān)菜單欄界面如圖3所示。
2 圖像預(yù)處理
用戶在使用本系統(tǒng)時(shí),存在設(shè)備參數(shù)不一、攝像角度不同和光照環(huán)境各異等問(wèn)題使得答題卡在拍攝過(guò)程中受到外界因素的影響而會(huì)出現(xiàn)傾斜、變形和噪聲等不利因素,若直接將其傳輸?shù)较到y(tǒng)會(huì)嚴(yán)重影響系統(tǒng)識(shí)別的準(zhǔn)確度,因此在系統(tǒng)對(duì)填涂信息識(shí)別前需要進(jìn)行必要的預(yù)處理操作以盡量減小噪聲和人為操作對(duì)填涂信息識(shí)別的影響。圖像預(yù)處理包括圖像歸一化、圖像濾波、圖像灰度化和圖像二值化等操作。對(duì)此擬展開研究論述如下。
2.1 圖像歸一化
圖像歸一化是對(duì)數(shù)字圖像信息進(jìn)行處理后將其限制在特定的某一范圍內(nèi),使得數(shù)據(jù)間對(duì)比性更加明顯。Matlab中,提供歸一化函數(shù)mapminmax進(jìn)行處理。
2.2 圖像濾波
答題卡在采集過(guò)程中難免會(huì)出現(xiàn)噪聲,噪聲的出現(xiàn)會(huì)嚴(yán)重降低后續(xù)答題卡識(shí)別的準(zhǔn)確度,因此答題卡去噪是圖像預(yù)處理中的關(guān)鍵一步,常見的濾波方法有中值濾波、均值濾波和高斯濾波等。其中,中值濾波是將數(shù)字圖像中像素鄰域的像素值排序取中位數(shù)值作為中心像素的新灰度值。答題卡的噪聲大多是隨機(jī)噪聲干擾,該噪聲主要是鄰域內(nèi)亮度隨機(jī)發(fā)生突變的像素點(diǎn),經(jīng)過(guò)排序后會(huì)出現(xiàn)在序列的隊(duì)首或隊(duì)尾,因此本系統(tǒng)采用中值濾波可有效消除隨機(jī)噪聲。
2.3 圖像灰度化
灰度圖像是只有像素信息而沒有顏色信息的圖像,灰度圖像只需要一個(gè)數(shù)據(jù)矩陣來(lái)表示,矩陣中每個(gè)元素對(duì)應(yīng)像素的灰度值。直接應(yīng)用答題卡采集的彩色圖像計(jì)算量相對(duì)復(fù)雜,為了提高系統(tǒng)識(shí)別答題卡填涂信息的速度,需要將彩色圖像轉(zhuǎn)換為灰度圖像,即可降低圖像矩陣所占據(jù)的內(nèi)存空間,又提高系統(tǒng)的計(jì)算速度。本系統(tǒng)采用加權(quán)分量法將其轉(zhuǎn)換為灰度圖像,轉(zhuǎn)換過(guò)程是從三維矩陣轉(zhuǎn)換為二維矩陣,但矩陣中元素類型不變,轉(zhuǎn)換后的灰度仍可以表示系統(tǒng)所需要的所有圖像信息特征。所謂加權(quán)分量法就是根據(jù)人眼對(duì)紅、綠和藍(lán)三原色的敏感度不同,分別賦予不同的權(quán)值系數(shù)進(jìn)行加權(quán),此處涉及的數(shù)學(xué)公式為:
2.4 圖像二值化
經(jīng)過(guò)灰度化處理后的圖像每個(gè)像素僅有一個(gè)灰度值,灰度值也決定了像素的明暗程度,圖像二值化是為了將目標(biāo)信息從圖像內(nèi)容中提取更加方便。由于不同考生填涂答題卡的深淺度不同,每張答題卡二值化的閾值也并不相同,因此本系統(tǒng)采用局部平均閾值法來(lái)確定閾值,該算法在不同圖像區(qū)域所選擇的閾值會(huì)自動(dòng)調(diào)整,可以消除光照不均勻等外在因素的干擾。當(dāng)每張答題卡圖像確定好一個(gè)閾值threshold后,會(huì)遍歷整幅圖像的像素值,當(dāng)源圖像某一像素灰度值src(x,y)大于閾值threshold,將該像素置為255,否則置為0,運(yùn)算公式見(2):
圖像預(yù)處理相關(guān)操作見圖4。
3 圖像校正
3.1 Hough變換算法
本系統(tǒng)采用Hough變換算法來(lái)檢測(cè)傾斜角度,再利用坐標(biāo)變換得到校正后的圖像信息。Hough變換算法是1962年由Paul Hough首次提出的,初期僅是用于檢測(cè)圖像中的直線,但缺點(diǎn)是需要預(yù)先知道目標(biāo)邊界的解析方程,后來(lái)經(jīng)過(guò)改進(jìn),現(xiàn)在廣義的Hough變換算法可以在不知道邊界的情況下檢測(cè)出直線和曲線,且具有不錯(cuò)的穩(wěn)定性。其原理主要是基于表決原理的參數(shù)估計(jì)技術(shù),將提取直線上點(diǎn)的坐標(biāo)轉(zhuǎn)換為過(guò)直線的系數(shù)域,利用共線和直線相交的關(guān)系,使直線提取問(wèn)題轉(zhuǎn)換為計(jì)數(shù)問(wèn)題。
直角坐標(biāo)系中直線由兩點(diǎn)A=x1,y1 和B=x2,y2 定義,經(jīng)A點(diǎn)的所有直線可以由y1=kx1+q表示,其中k和q為參數(shù)值。也就是說(shuō),同一方程可以解釋為參數(shù)空間k,q的方程,因此通過(guò)A點(diǎn)的所有直線可以表示為方程q=-x1k+y1,類似地,點(diǎn)B可以表示為q=-x2k+y2,在參數(shù)空間k,q中,2條直線的公共點(diǎn)就是原圖像空間中表示連接點(diǎn)A和B的直線[5],Hough變換原理圖如圖5所示。
也就是說(shuō),原圖像中的任意一條直線可在參數(shù)空間中由單獨(dú)的一個(gè)點(diǎn)來(lái)表示,但由于在直角坐標(biāo)系中具有斜率不存在的直線,所以多是應(yīng)用極坐標(biāo)的方程來(lái)表示直線,即:
采用極坐標(biāo)的表達(dá)形式Hough變換沒有這些限制,極坐標(biāo)系下的直線經(jīng)過(guò)變換后還是會(huì)變?yōu)閱为?dú)的點(diǎn),如圖6所示。
基于Hough變換算法會(huì)檢測(cè)出很多直線,從中選取一條最長(zhǎng)的直線,如圖7所示。
3.2 傾斜角度檢測(cè)
基于Hough變換算法可以檢測(cè)出圖像中存在的直線,按長(zhǎng)度排序找到最長(zhǎng)的那條直線,并根據(jù)特征直線位置計(jì)算傾斜角度,再按照所得到的角度進(jìn)行校正,圖8為答題卡圖像的傾斜校正結(jié)果。
4 區(qū)域分割
由于考生信息區(qū)與答案填涂區(qū)位置是固定的,可繼續(xù)采用Hough變換算法檢測(cè)直線來(lái)分割上區(qū)域(考生信息區(qū))和下區(qū)域(答案填涂區(qū)),再經(jīng)過(guò)圖像二值化和形態(tài)學(xué)濾波后可以得到上下區(qū)域,并通過(guò)畫線來(lái)確定每個(gè)小格的界限,其中藍(lán)色橫線分割出來(lái)的為上區(qū)域、主要包括考生信息和考試科目等,紅色橫線分割出來(lái)的為下區(qū)域、主要是答案填涂區(qū),每個(gè)答案填涂位置都嚴(yán)格分布在分割出來(lái)的小網(wǎng)格中,便于后續(xù)分析識(shí)別。區(qū)域分割結(jié)果如圖9所示。
5 填涂區(qū)標(biāo)記
通過(guò)上面得到的區(qū)域分割結(jié)果,應(yīng)用Matlab中自帶的bwlabel函數(shù)來(lái)標(biāo)記答案填涂區(qū)域,并以此來(lái)確定填涂位置及識(shí)別。啟動(dòng)系統(tǒng),點(diǎn)擊答題卡處理菜單下的答題卡標(biāo)記命令,可得到標(biāo)記后的答題卡如圖10所示。
6 成績(jī)統(tǒng)計(jì)
成績(jī)統(tǒng)計(jì)需要預(yù)先設(shè)置好各個(gè)題號(hào)所對(duì)應(yīng)的正確答案和分值,系統(tǒng)識(shí)別到填涂區(qū)域的答案后與正確答案依次做對(duì)比,如果答案匹配則存入一個(gè)數(shù)組,否則跳過(guò),繼續(xù)執(zhí)行循環(huán)指令,則循環(huán)結(jié)束后可以統(tǒng)計(jì)出考生正確答案,再將各個(gè)正確題目與所對(duì)應(yīng)的分?jǐn)?shù)值相乘,最后將各個(gè)題目得分依次相加就可以實(shí)現(xiàn)成績(jī)統(tǒng)計(jì)。啟動(dòng)系統(tǒng),點(diǎn)擊“成績(jī)統(tǒng)計(jì)”命令,左側(cè)區(qū)域顯示的是考生各個(gè)題目所對(duì)應(yīng)的答案,右側(cè)區(qū)域顯示考生的準(zhǔn)考證號(hào)、考試科目和考試分?jǐn)?shù),執(zhí)行成績(jī)統(tǒng)計(jì)命令后如圖11所示。
7 結(jié)束語(yǔ)
本系統(tǒng)實(shí)現(xiàn)了應(yīng)用Matlab GUI搭建答題卡自動(dòng)識(shí)別系統(tǒng),主要應(yīng)用Hough變換算法來(lái)實(shí)現(xiàn)答題卡校正和答題卡區(qū)域分割,進(jìn)一步可以實(shí)現(xiàn)精確定位答題區(qū)坐標(biāo),再利用bwlabel函數(shù)來(lái)識(shí)別填涂點(diǎn),最后通過(guò)和后臺(tái)設(shè)置的標(biāo)準(zhǔn)答案依次做對(duì)比來(lái)實(shí)現(xiàn)分?jǐn)?shù)自動(dòng)統(tǒng)計(jì)識(shí)別。實(shí)驗(yàn)結(jié)果表明該系統(tǒng)操作簡(jiǎn)單便捷、識(shí)別率高,在普通計(jì)算機(jī)上就可以實(shí)現(xiàn),具有廣泛的應(yīng)用前景和使用價(jià)值。
參考文獻(xiàn)
[1] 楊青燕,彭延軍. 基于灰度圖像的答題卡識(shí)別技術(shù)[J]. 山東科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,28(3):99-102.
[2] 郝平. 圖像處理耦合模板定位的答題卡識(shí)別研究與應(yīng)用[J]. 計(jì)算技術(shù)與自動(dòng)化,2015,34(4):105-109.
[3] 付清雨,陳婧. 基于OpenCV的答題卡識(shí)別系統(tǒng)[J]. 數(shù)字化用戶,2018,24(10):249.
[4] 韋溢輝,劉漢英. 基于OpenCV的答題卡生成及批閱分析系統(tǒng)[J]. 電腦知識(shí)與技術(shù),2020,16(29):23-27.
[5] 韓濤,楊洋. 基于Hough變換的圖像目標(biāo)檢測(cè)與識(shí)別[J]. 計(jì)算機(jī)與數(shù)字工程,2019,47(2):412-416.