張菲菲 種蘭祥
摘 ? 要:考試閱卷是一項繁重的重復(fù)性勞動。為了減輕教師的閱卷負(fù)擔(dān),本文采用計算機視覺技術(shù),設(shè)計開發(fā)了單機版和B/S架構(gòu)的客觀考試題的答題卡識別系統(tǒng)。教師只需要使用普通USB攝像頭對具有標(biāo)準(zhǔn)答案的答題卡進(jìn)行標(biāo)定,然后依次拍照待閱試卷,系統(tǒng)即可記錄、輸出成績并做出簡要分析。
關(guān)鍵詞:計算機視覺;答題卡識別;數(shù)據(jù)管理
中圖分類號:TP315 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-8454(2019)11-0051-04
光標(biāo)閱讀機(Optical Mark Reader)作為自動化閱卷工具,在很大程度上能減輕教師在批閱客觀考試題上花費的精力,但由于其屬于光電設(shè)備,本身的價格和維護(hù)成本較高,且只能用閱讀專用鉛筆在專用答題卡上填涂答案,還不能保存答題卡的數(shù)字圖像,難以普及到個人使用。[1][2]本文采用消費級USB攝像頭,以VS2012為開發(fā)平臺,選用MySQL數(shù)據(jù)庫,融合計算機視覺、Ajax和Socket相關(guān)技術(shù),設(shè)計開發(fā)了成本低廉、使用方便,對紙張和填涂筆無特殊要求,適合教師個人、偏遠(yuǎn)地區(qū)和普通學(xué)校使用的客觀題答題卡識別系統(tǒng)。
答題卡識別系統(tǒng)由用戶管理、圖像處理、答卷識別、數(shù)據(jù)管理四部分組成,每一部分有若干個功能模塊,結(jié)構(gòu)如圖1所示。其中,用戶管理包括個人密碼賬號管理、登錄和注銷等日志管理。圖像處理包括圖像采集、圖像存儲、圖像預(yù)處理和答題卡模板設(shè)計。答卷識別包括定位信息提取、精確定位和填涂信息識別。數(shù)據(jù)管理包括學(xué)生信息管理、學(xué)生成績管理和標(biāo)準(zhǔn)答案管理。
圖像處理部分包含三個功能模塊。實際上,系統(tǒng)實現(xiàn)時首先要做好答題卡模板設(shè)計。本文在分析現(xiàn)有答題卡結(jié)構(gòu)與特點的基礎(chǔ)上,考慮到通用性,方便用戶使用普通激光打印機和普通A4復(fù)印紙就可打印答題卡,自行設(shè)計了答題卡模板,由六個分區(qū)構(gòu)成,分別是①標(biāo)題區(qū)、②考生信息填寫區(qū)、③學(xué)號或準(zhǔn)考證號填涂區(qū)、④答案填涂區(qū)、⑤信息提示區(qū)、⑥定位信息區(qū),如圖2所示。本文使用Visio軟件繪制答題卡標(biāo)準(zhǔn)模板后存儲為PDF文件供打印使用,存儲為JPG格式,大小為2480×3508像素作為標(biāo)準(zhǔn)模板圖像。
教師使用本系統(tǒng)時,存在攝像頭性能參數(shù)不一、光照環(huán)境各異、采集的圖像會發(fā)生傾斜或變形等多種情況,故必須對答題卡圖像進(jìn)行圖像灰度化、圖像二值化、圖像傾斜矯正等預(yù)處理,以盡可能地減小噪聲和人工操作對圖像識別的影響,保證后續(xù)圖像識別結(jié)果的正確性。
同樣,本文將待閱答題卡圖像進(jìn)行縮放,使其和答題卡標(biāo)準(zhǔn)模板圖像大小相同,以保證最好的圖像識別效果。
要實現(xiàn)答題卡圖像的傾斜矯正,首先要提取答題卡圖像角定位點坐標(biāo),由于三個點可以確定一個面,因此,在待閱答題卡圖像角定位點的左上角坐標(biāo)?。╱1,v1)、(u2,v2)、(u3,v3),對應(yīng)的在標(biāo)準(zhǔn)模板圖像角定位點的左上角坐標(biāo)?。▁1,y1)、(x2,y2)、(x3,y3);然后,建立待閱答題卡圖像與模板圖像相應(yīng)角定位點坐標(biāo)的映射關(guān)系,將這六個點代入(公式1),解六元一次方程組(見公式2),即可求得待閱答題卡與標(biāo)準(zhǔn)模板圖像之間的仿射變換矩陣A。
最后,根據(jù)仿射變換矩陣A,對待閱答題卡圖像角定位點組坐標(biāo)進(jìn)行插值計算,得出矯正后答題卡圖像角定位點坐標(biāo),對其標(biāo)記并做輸出。即可實現(xiàn)對待閱答題卡圖像的傾斜矯正,進(jìn)而得到矯正后答題卡圖像效果圖(見圖3),為后續(xù)的圖像識別奠定了重要基礎(chǔ)。
識別答題卡圖像,需要進(jìn)行定位信息提取、精確定位和填涂區(qū)識別等。答題卡定位信息包括答題卡四個角定位點信息和定位線信息。定位線包括頂部定位線、右側(cè)定位線和底部定位線,分別由11個、34個、20個矩形定位信息點組成,共有65個定位信息點。
提取答題卡角定位點信息,常用邊緣檢測、輪廓區(qū)域檢測、角點檢測、模板匹配等方法。[6]邊緣檢測和輪廓區(qū)域檢測利用圖像邊緣的突變性質(zhì)來檢測并提取其邊緣信息,適合處理沒有發(fā)生透視情況的傾斜矯正,處理范圍比較局限,[7]由于攝像頭在采集答題卡圖像時避免不了圖像發(fā)生透視的情況,所以這種方法不能實現(xiàn)在透視情況下對答題卡角定位點的提取;采用角點檢測來獲取答題卡圖像的角點特征,其特點是檢測精度高、運算速度慢,[8]由于答題卡四個角定位點簡單明顯,如果采用角點檢測來提取答題卡角定位點信息,其運算速度太慢,延長了角定位點信息提取的時間,因此這種方法不適用于對答題卡角定位點的提取;采用模板匹配方法提取答題卡圖像的角定位點,這種方法簡單易行,能彌補前兩種方法的不足,更適用于答題卡角定位點信息的提取。
模板匹配是當(dāng)模板圖像塊的圖案以圖像的形式表現(xiàn)時,根據(jù)該圖案與待閱答題卡各個局部的相似度來判斷其是否存在,并求得模板圖像塊在待閱答題卡中的位置。[9]待閱答題卡圖像角的定位點是59×59像素的圖像塊,稱為模板圖像塊。設(shè)待閱答題卡圖像函數(shù)為I(x,y),模板圖像塊函數(shù)為T(x,y),相似度函數(shù)為R(x,y),將待閱答題卡圖像分成左上、右上、左下、右下四部分,分別在這四個部分里找每個部分的角定位點信息;采用歸一化相關(guān)系數(shù)匹配法(見公式3)計算,R在(0,1)之間取值,R越大表示匹配程度越高。當(dāng)答題卡圖像掃描完畢時,將最大的R標(biāo)記并以坐標(biāo)點的形式輸出,R取最大值時,即答題卡角定位點的左上角坐標(biāo)信息(以左上部分為例,如圖4所示)。
要提取答題卡圖像的定位線信息,首先是在矯正后的二值化圖像中,從答題卡圖像頂部、右側(cè)、底部分別提取像素大小為2478×60、60×3506、2478×60的感興趣區(qū)域。然后,由于答題卡圖像在水平方向上的投影就是每行的灰度累計值,這些值就構(gòu)成了水平方向的投影曲線;圖像在垂直方向上的投影就是每列的灰度累計值,這些值就構(gòu)成了垂直方向的投影曲線。因此,分別計算答題卡圖像頂部、右側(cè)、底部定位線在水平方向、垂直方向、水平方向的投影曲線。最后,通過分析投影曲線的特征,采用差分遍歷向量法[10]得出投影曲線的波峰位置并做輸出(見圖5),從而獲取到答題卡定位線的信息,即每個矩形定位信息點的波峰位置,對后續(xù)圖像的精確定位起到關(guān)鍵作用。
精確定位,包括對準(zhǔn)考證區(qū)和答案填涂區(qū)每個選項的定位;答題卡頂部、右側(cè)分別由11個、10個矩形定位信息點共同定位110個矩形定位信息點,即準(zhǔn)考證區(qū)域;答題卡底部、右側(cè)分別由20、24個矩形定位信息點共同定位480個矩形定位信息點,即答案填涂區(qū)。采用逐步遍歷的方法定位到每個選項左上角的坐標(biāo)信息并做標(biāo)記(見圖6、7)。
對于答題卡圖像填涂區(qū)域的識別,從每個選項的左上角坐標(biāo)開始,從左到右、從上到下檢索,累計非零像素點的個數(shù)即每個選項的填涂面積,當(dāng)實際填涂面積大于等于平均灰度面積的60%時,就判定為已填涂并且進(jìn)行標(biāo)記,否則視為沒有填涂(見圖8)。
本文完成了單機版和B/S架構(gòu)的答題卡識別系統(tǒng)。在這里,主要闡述B/S架構(gòu)的答題卡識別系統(tǒng)的實現(xiàn)過程。首先,連接好攝像頭、支架、底座等硬件設(shè)備,在計算機中打開客戶端主界面,選擇頁面自動加載目前可以使用的攝像頭,在主界面的下拉菜單里,選擇要采集答題卡的攝像頭,點擊“開啟攝像頭”按鈕,在主界面的左下方區(qū)域會出現(xiàn)攝像頭拍攝的視頻畫面;其次,調(diào)整答題卡位置,使其答題卡圖像四個角定位點完全出現(xiàn)在攝像頭畫面中,并且盡可能保證其位置不傾斜,周圍光照等環(huán)境最佳,點擊“空格鍵”,即開始識別,通過TCP通信[11],將答題卡圖像數(shù)據(jù)傳給應(yīng)用程序,進(jìn)行識別處理;接著,應(yīng)用程序通過服務(wù)器端,收到答題卡圖像數(shù)據(jù),通過圖像處理算法進(jìn)行識別,將識別出的答案與數(shù)據(jù)庫中的標(biāo)準(zhǔn)答案進(jìn)行對比計算出分?jǐn)?shù),將準(zhǔn)考證號、分?jǐn)?shù)、識別后的文件名,存入數(shù)據(jù)庫中,通過TCP通信,將識別結(jié)果返回給客戶端;最后,客戶端將識別的準(zhǔn)考證號、分?jǐn)?shù)顯示在主界面上,同時,主界面顯示了識別之前答題卡圖像填涂情況和識別之后標(biāo)記的答題卡圖像的填涂情況,可以直觀地對比得出考生所填涂的信息是否被識別。
在實現(xiàn)過程中,含有標(biāo)準(zhǔn)答案的答題卡圖像是通過Visio軟件進(jìn)行填涂、打印而得到的。標(biāo)準(zhǔn)答案的數(shù)據(jù)是通過攝像頭采集之后,進(jìn)行圖像處理得到的,同時,需將標(biāo)準(zhǔn)答案數(shù)據(jù)存入數(shù)據(jù)庫中。
測試壞境:主機為宏碁4752G,內(nèi)存4G,Windows 7操作系統(tǒng),攝像頭為普通視頻攝像頭,像素為1200W,共測試300份答題卡,每份120道題,其中含擦除不干凈、填涂深淺不一等各種特殊情況。
測試結(jié)果:對于規(guī)范填涂的答題卡,識別率是100%;對于填涂不規(guī)范并且填涂面積小于矩形框的一半的答題卡誤判率為0.3%。
答題卡識別系統(tǒng)是計算機視覺研究的一個典型應(yīng)用,將教師從繁重重復(fù)的客觀題閱卷勞動中解放出來,并且能夠?qū)Τ煽兣判蚍治?,輔助教師調(diào)整教學(xué)方案。也讓偏遠(yuǎn)地區(qū)和經(jīng)費緊張地區(qū)的中小學(xué)教師能夠使用上信息化的教學(xué)系統(tǒng),享受到信息化發(fā)展的紅利。對于其它類型的大型考試,以及當(dāng)前推行的過程性評價中應(yīng)用隨堂測試,更具有廣泛的應(yīng)用前景和實用價值。當(dāng)然,如何提高答題卡識別的自動化程度,還需要進(jìn)一步研究。
[1]雷俊杰,張偉池,余榮等.一種基于決策樹的選項識別方法[J].無線互聯(lián)科技,2018(1): 113-115,138.
[2]張站,劉政怡,吳建國等.基于圖像識別的閱卷系統(tǒng)的設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2011(4):44-47.
[3]杜聰.基于圖像字符識別的答題卡客觀題識別方法[J].信息與電腦(理論版),2016(15):49-51.
[4]李清.基于圖像識別的網(wǎng)上閱卷系統(tǒng)的設(shè)計實現(xiàn)與優(yōu)化[D].沈陽:東北師范大學(xué),2013.
[5]劉志方.基于數(shù)字圖像處理的答題卡自動識別軟件[D].廣州:華南理工大學(xué),2015.
[6][10]朱偉,趙春光,歐樂慶等.OpenCV圖像處理編程實例[M].北京:電子工業(yè)出版社,2016:75-134.
[7]陳浩鵬.基于圖像識別的移動端閱卷系統(tǒng)的研究與實現(xiàn)[D].廣州:中山大學(xué),2014.
[8]劉濤.圖像角點檢測方法的研究[D].西安:西安建筑科技大學(xué),2017.
[9]Michael Ryan,Novita Hanafiah. An Examination of Character Recognition on ID card using Template Matching Approach[J].Procedia Computer Science,2015:59.
[11]蔣達(dá).基于Socket的網(wǎng)絡(luò)接口編程[J].辦公自動化,2018(23):29-30,32.
(編輯:王天鵬)