張偉池 雷俊杰
摘要:答題卡掃描圖像糾偏處理是自動(dòng)化閱卷系統(tǒng)中的重要環(huán)節(jié)。使用無定位點(diǎn)答題卡可以降低閱卷的成本,有利于自動(dòng)化閱卷系統(tǒng)在中小規(guī)??荚囍型菩小榱送晟拼痤}卡掃描圖像糾偏處理的過程,文章提出了一種適用于無定位點(diǎn)答題卡掃描圖像糾偏的算法。本算法利用了無定位點(diǎn)答題卡中的設(shè)計(jì)元素和排版規(guī)律進(jìn)行輔助糾偏。經(jīng)測(cè)試此算法有著較好的糾偏成功率。
關(guān)鍵詞:自動(dòng)化閱卷系統(tǒng);圖像處理;圖像糾偏;無定位點(diǎn)答題卡
隨著計(jì)算機(jī)圖像處理技術(shù)和人工智能技術(shù)的高速發(fā)展,自動(dòng)化閱卷系統(tǒng)不僅廣泛應(yīng)用于大型考試場(chǎng)景,如今絕大多數(shù)學(xué)校的月考、期末考等中小規(guī)??荚嚲捎昧俗詣?dòng)化閱卷系統(tǒng)。近年來,國家提倡“互聯(lián)網(wǎng)+教育”的模式,導(dǎo)致線上教育行業(yè)的快速興起。加上移動(dòng)智能設(shè)備性能的不斷提升,目前基于移動(dòng)智能終端的自動(dòng)化閱卷系統(tǒng)技術(shù)也得到了快速發(fā)展。
用機(jī)器代替人工閱卷,不僅大幅度提高了閱卷的速度和準(zhǔn)確率,還能快速采集并統(tǒng)計(jì)每位考生的答題情況。這樣就能運(yùn)用數(shù)據(jù)挖掘技術(shù)分析考生歷史答題記錄,個(gè)性化推薦合適的習(xí)題給考生,從而提升考生的成績(jī)。
自動(dòng)化閱卷系統(tǒng)的工作流程分為答題卡模板學(xué)習(xí),答題卡掃描圖像預(yù)處理、答題區(qū)域定位、答案識(shí)別四大部分。掃描圖像預(yù)處理中的圖像糾偏環(huán)節(jié)十分關(guān)鍵。紙質(zhì)版試卷會(huì)受擺放位置和掃描儀機(jī)械結(jié)構(gòu)的影響,導(dǎo)致掃描后的圖像有著不同程度的傾斜。如果不針對(duì)傾斜圖像進(jìn)行糾偏,會(huì)使得答題區(qū)域定位出錯(cuò),導(dǎo)致識(shí)別率降低。
最常用的糾偏方法需要結(jié)合有定位點(diǎn)答題卡進(jìn)行,有定位點(diǎn)答題卡會(huì)在答題卡的4個(gè)角印刷定位標(biāo)識(shí),如實(shí)心正方形。糾偏過程需要識(shí)別出每個(gè)定位標(biāo)識(shí)的坐標(biāo)值,利用該值計(jì)算出兩個(gè)定位點(diǎn)構(gòu)成直線的傾斜角度,最后使用該傾斜角度對(duì)掃描圖像進(jìn)行旋轉(zhuǎn)矯正操作。雖然有定位點(diǎn)答題卡可以較好地輔助糾偏,但是仍存在某些不足。有定位點(diǎn)答題卡需要精度極高的打印機(jī)印刷,用戶也無法自制答題卡,只能在供應(yīng)商處購買,這增加了答題卡的制作成本。導(dǎo)致自動(dòng)化閱卷系統(tǒng)不利于在中小規(guī)??荚囍型菩?。
為了降低閱卷成本,自動(dòng)化閱卷系統(tǒng)技術(shù)正往無定位點(diǎn)答題卡識(shí)別方向發(fā)展。因?yàn)闇p少了定位點(diǎn)的制作,無定位點(diǎn)答題卡不僅降低了制作成本,還方便用戶自制樣式。然而上述的糾偏技術(shù)就無法運(yùn)用在無定位點(diǎn)答題卡中。目前無定位點(diǎn)答題卡自動(dòng)化閱卷系統(tǒng)的技術(shù)還沒發(fā)展成熟,因此急需建立一種能應(yīng)對(duì)無定位點(diǎn)答題卡掃描圖像糾偏的算法。對(duì)此,本文提出了一種基于圖像處理的無定位點(diǎn)答題卡掃描圖像糾偏算法。
1 無定位點(diǎn)答題卡掃描圖像糾偏算法
答題卡掃描圖像糾偏算法的核心是找出圖像的傾斜角度。有定位點(diǎn)答題卡因?yàn)榇嬖诙ㄎ稽c(diǎn),只需準(zhǔn)確識(shí)別出定位點(diǎn)的坐標(biāo)位置,就能很好地計(jì)算出傾斜角度。
經(jīng)過對(duì)無定位點(diǎn)答題卡樣式的觀察,雖然無定位點(diǎn)答題卡不存在固定的定位點(diǎn),但是仍然可以利用無定位點(diǎn)答題卡中普遍存在的元素或特性來輔助糾偏。其中本文利用到的元素和特性有:用于分割答題區(qū)域的矩形邊框元素和答題卡排版左對(duì)齊特性,如圖1所示。利用上述兩個(gè)輔助內(nèi)容,本文分別提出了一種利用分割答題區(qū)域的矩形邊框的糾偏算法和一種利用排版左對(duì)齊特性的最小二乘法直線擬合糾偏算法。實(shí)際使用時(shí),讓經(jīng)過二值化處理的樣本進(jìn)行上述兩個(gè)算法的處理,綜合兩種方法的運(yùn)算結(jié)果,得出更為準(zhǔn)確的傾斜角度。算法運(yùn)行流程如圖2所示。
1.1 利用分割答題區(qū)域的矩形邊框的糾偏算法
經(jīng)過觀察,無定位點(diǎn)答題卡中普遍存在用于分割答題區(qū)域的矩形邊框。本文提出一種利用該矩形邊框的糾偏算法,矩形邊框?yàn)閷?duì)應(yīng)答題區(qū)域的最外層輪廓。因此算法的核心在于如何在樣本中找出最大連通區(qū)域的最外層輪廓,找到了合適的矩形邊框輪廓,就可以使用多邊形去逼近該輪廓,使輪廓頂點(diǎn)數(shù)目變少,再計(jì)算出逼近后輪廓的最小外接矩形,最小外接矩形的傾斜角度即為掃描圖像的傾斜角度。算法的實(shí)現(xiàn)使用了OpenCV開源庫中的函數(shù),算法執(zhí)行過程如下。
(1)使用cvResize函數(shù),采用立方插值方式縮小樣本圖像。(2)使用cvDilate形態(tài)學(xué)函數(shù)對(duì)樣本圖像進(jìn)行膨脹處理。(3)使用cvFindContours函數(shù)獲取樣本中所有最外層輪廓。(4)使用cvApproxPoly函數(shù),讓多邊形逼近輪廓。(5)獲取最大面積的多邊形逼近處理后的輪廓,判斷該輪廓面積是否大于一定值,如果大于則繼續(xù)執(zhí)行步驟6,否則跳轉(zhuǎn)到步驟2,再一次對(duì)樣本進(jìn)行膨脹處理。(6)使用cvMinAreaRect2函數(shù)獲取最大輪廓的最小外接矩形,得出輪廓的傾斜角度,即樣本圖像的傾斜角度。
上述算法步驟1中為了加快執(zhí)行速度,在不影響精度的條件下,適當(dāng)縮小樣本圖像的尺寸。由于二值化處理后的樣本可能會(huì)出現(xiàn)矩形邊框缺口的情況,經(jīng)過步驟2的膨脹操作,可以使有缺口的矩形邊框復(fù)原成封閉矩形,有助于檢索出更多有效輪廓。為了只獲取最外層的輪廓,使用CV RETR—EXTERNAL作為cvFindContours函數(shù)提取模式參數(shù)的值。步驟4讓多邊形逼近輪廓,獲得近似于矩形的多邊形,從而更容易計(jì)算出輪廓的最小外接矩形。步驟5中判斷當(dāng)前最大輪廓的面積是否大于某個(gè)閾值,是為了防止因缺口無法檢索到有效矩形邊框的情況,增強(qiáng)算法的魯棒性。
1.2 利用排版左對(duì)齊特性的最小二乘法直線擬合糾偏算法
無定位點(diǎn)答題卡可能存在沒有分割答題區(qū)域的矩形邊框,此時(shí)就無法使用11的算法進(jìn)行糾偏,但是仍然可以利用答題區(qū)域排版的左對(duì)齊特性,找出答題區(qū)域的最左側(cè)對(duì)齊基準(zhǔn)線,如圖lb所示。利用排版左對(duì)齊特性的最小二乘法直線擬合糾偏算法的核心分為點(diǎn)抽樣、點(diǎn)過濾、點(diǎn)擬合直線3個(gè)部分。其步驟如下。
(1)在樣本圖像某一行中最左邊像素點(diǎn)開始向右逐列遍歷像素點(diǎn)。(2)直到連續(xù)3列像素點(diǎn)的值為黑色像素值。(3)獲得一個(gè)抽樣點(diǎn)(x,y),加入到一個(gè)集合中。(4)跳過一定行數(shù),跳轉(zhuǎn)到步驟1,直到行數(shù)大于樣本圖像的高度,得到一個(gè)包含多個(gè)抽樣點(diǎn)的集合。(5)再過濾集合中抽樣點(diǎn)縱坐標(biāo)值分布在兩端的抽樣點(diǎn)。(6)把剩下的抽樣點(diǎn)進(jìn)行最小二乘法擬合直線,得到最左側(cè)對(duì)齊基準(zhǔn)線的傾斜角度。
上述算法通過下抽樣的方式選擇特定像素行進(jìn)行抽樣,不僅加快了執(zhí)行速度,還能一定程度消除考生筆跡帶來的干擾。步驟2中為了消除黑色噪點(diǎn)的影響,連續(xù)遍歷出多個(gè)黑色像素值才采納該點(diǎn)為有效抽樣點(diǎn)。步驟5為了進(jìn)一步過濾掉特殊干擾點(diǎn),將集合中的所有抽樣點(diǎn)(原點(diǎn)為左上角,x軸往右方向遞增,v軸往下方向遞增)按縱坐標(biāo)值v大小進(jìn)行排序,再排除一定數(shù)量位于頭尾兩端的抽樣點(diǎn),最終得到過濾后的抽樣點(diǎn)集合。最后使用最小二乘法對(duì)這些抽樣點(diǎn)進(jìn)行直線擬合,得出最左側(cè)對(duì)齊基準(zhǔn)線的傾斜角度。因?yàn)榇嬖诜指畲痤}區(qū)域的矩形邊框的無定位點(diǎn)答題卡也遵守左對(duì)齊基準(zhǔn)線排版,所以利用排版左對(duì)齊特性的最小二乘法直線擬合糾偏算法也可以適用于該樣式的答題卡。
2 測(cè)試結(jié)果和分析
本測(cè)試中使用了120張無定位點(diǎn)答題卡掃描圖像作為測(cè)試樣本,其中既包括有明顯分割答題區(qū)域的矩形邊框樣式,也包括了完全沒有分割答題區(qū)域的矩形邊框樣式。首先使用圖片編輯軟件對(duì)這120張無傾斜的掃描圖像進(jìn)行隨機(jī)角度的旋轉(zhuǎn)處理,隨機(jī)角度的取值范圍為5。至+5。。再將隨機(jī)旋轉(zhuǎn)處理后的樣本經(jīng)過圖2算法流程進(jìn)行處理,計(jì)算出樣本傾斜的角度。通過統(tǒng)計(jì),對(duì)該糾偏處理算法得出的傾斜角度與事先對(duì)樣本旋轉(zhuǎn)處理的角度進(jìn)行比較,如果兩者度數(shù)相差小于0.l。時(shí),我們可以認(rèn)為該樣本成功糾偏。
經(jīng)過測(cè)試得出,120張樣本中有114張糾偏成功,有6張樣本糾偏失敗,糾偏成功率達(dá)到了95%。分析糾偏失敗的樣本,發(fā)現(xiàn)失敗的原因是:(1)樣本二值化的效果不佳,使得分割答題卡區(qū)域的矩形邊框有很大缺口,導(dǎo)致無法識(shí)別到有效的矩形邊框,從而影響了糾偏效果。(2)存在不正常的填涂筆跡導(dǎo)致糾偏的效果不佳。因此,為了進(jìn)一步提高算法準(zhǔn)確率和魯棒性,需要優(yōu)化查找最大連通域輪廓和抽樣點(diǎn)采集過濾的過程。
3 結(jié)語
圖像糾偏是自動(dòng)化閱卷系統(tǒng)預(yù)處理部分中的一個(gè)關(guān)鍵環(huán)節(jié),糾偏算法的優(yōu)化對(duì)提高自動(dòng)化閱卷系統(tǒng)的準(zhǔn)確率具有重要意義。為了解決無定位點(diǎn)答題卡掃描圖像糾偏難的問題,本文提出了一種無定位點(diǎn)答題卡掃描圖像糾偏算法。該算法可以在一定程度上完善適用于無定位點(diǎn)答題卡的自動(dòng)化閱卷系統(tǒng)。