摘 要:本文綜合運用圖像處理,模式識別的理論來構建答題卡的識別系統(tǒng)。當前使用的答題卡閱讀機,均采用光反射閱讀方式。要求使用指定的鉛筆,按嚴格的格式涂填。這與平時的習慣差距較大,容易發(fā)生人為失誤。這里,采用圖象處理和模式識別技術,對答題卡進行閱讀,希望解決對書寫工具約束、需要特制答題卡等問題。實現(xiàn)了答題卡的計算機識別 ,采用打鉤的方法答題,方便,快速。
關鍵詞:灰度分割;夾線法;小波變換;霍夫變換;區(qū)域連通
針對答題卡的識別,光電識別技術已是應用多年的成熟技術,在世界范圍內廣泛使用,而基于影像模式的OMR識別技術,識別準確率超過了傳統(tǒng)光標OMR閱讀機,但是其兩者都對其填題方式進行了限制,即應用2B鉛筆填涂,超出答題區(qū)域在方框外答題的,答案無效,這很大程度上減慢了考生的填題時間,并都存在其誤率,如機械傳動機構復雜、使用壽命短、維護量大、設備一致性差、答題卡出現(xiàn)污點[1]等。
本文設計的系統(tǒng)支持考生使用任何深色筆做答,且最大程度上放寬了對填圖區(qū)域的限制,最大優(yōu)點在于考生可以使用劃鉤子或其他方式來選擇答案,系統(tǒng)采用圖像處理和模式識別技術來自動識別答題卡信息,方便且快速。
1 系統(tǒng)設計流程
(一)讀取并顯示BMP圖象,讀取的BMP圖像如圖1所示。
圖1 原始答題卡
(二)運用雙峰算法計算閾值,二值化圖象,二值化后的圖像如圖2所示。
圖2 二值化后的圖像
(三)運用夾線法求水平與垂直的各投影線,處理后的圖像如圖3所示。
圖3 夾線法求水平與垂直的各投影線
(四)對圖象進行水平與垂直投影,小波變換求投影線中點坐標,處理后的圖像如圖4所示。
圖4小波變換求投影線中點坐標
(五)根據(jù)色調的不同,二值化提取鉤子,處理后的圖像如圖5所示。
圖5二值化提取鉤子
(六)識別圖像得到結果圖,如圖6所示。
圖6輸出結果圖
2 系統(tǒng)主要實現(xiàn)技術
(一)求水平和垂直投影線算法的實現(xiàn)
用兩條間距較小的水平夾線平移至線條兩端,橫向掃描兩條直線間的象素點,記錄每水平行象素點的個數(shù),如果大于一定的值,則其為一直線,取其中一條象素點最多的作為水平投影線。這里采用visual c++編碼實現(xiàn)[5],具體實現(xiàn)代碼省略。
(二)閾值確定算法的實現(xiàn)
圖象的二值化需要一個閾值,先對圖象進行縱向掃描,利用雙峰算法找到圖象中線條部分與空白部分的一系列中心坐標,對各自的一系列中心坐標點的灰度進行最大概率值計算,取各自概率最大的值的平均值,以此值作為閾值,二值化圖象。
(三)Hough變換算法的實現(xiàn)
Hough變換的應用可用如下的方法實現(xiàn):
在(x,y)域中每一離散數(shù)據(jù)點變換為域中的曲線。將和分成許多小段,每一個小段和每個小段構成一個小單元。對應于每一個小單元可設一累加器(可定義一個二維數(shù)組Accumulator)。在(x,y)域中可能落在直線上的每一點對應于變換域中一條曲線。分別使等于0,,2,3…,便可求出相應的值,并分別計算落在各個小單元的次數(shù),待全部的(x,y)域內數(shù)據(jù)點變換完后,可對小單元進行檢測,這樣,落入次數(shù)最多的單元(也就是求二維數(shù)組Accumulator元素的最大值),說明此點為較多曲線的公共點,而這些曲線對應的(x,y)平面上的點可以認為是共線的。檢測出(x,y)平面上n點后,將曲線交點坐標,便可得到逼近n點的直線方程。
Hough變換的一個最大的優(yōu)點[2-3]就是其抑制噪聲的能力強,它能夠提取處在噪聲背景中的直線,并且能夠把斷了的線段連接起。
(四)連續(xù)小波變換的計算機實現(xiàn)
采用連續(xù)小波函數(shù)Marr小波,就可以根據(jù)連續(xù)小波變換的卷積定義對信號進行運算。計算機采集實際波形信號時必須以一定的時間間隔采樣數(shù)據(jù),只要這個時間間隔滿足先農采樣定理,就可以完全反映連續(xù)信號的全部信息[4]。鑒于計算機離散采樣的特點,在算法實現(xiàn)上必須考慮這一特點,即要按照數(shù)字信號處理的方法實現(xiàn)連續(xù)信號的處理,采用連續(xù)小波變換的離散化形式進行計算。
借鑒Mallat的定義方法,直接按卷積來定義小波變換,與之不同的是,我們仍然采用歸一化系數(shù),而不是Mallat定義的:
由于選取的Marr小波是關于t=0對稱的,即,因此
時移因子b的實際意義是平行移動,當時移因子b>0時,沿橫向坐標軸右移,否則向相反方向移動。因此,我們可以將上式改寫成以下形式,而不會改變小波變換的實際意義。
(1)
尺度a的選擇可以根據(jù)需要直接調整,計算是直接依賴于最原始的。Marr小波函數(shù)的系數(shù)只是影響波形的幅值,其有無不會使波形失真,因此選取的小波基函數(shù)為:
(2)
可以近似地認為其支集為[-7,7],在這個區(qū)間以外,Marr小波基本為0。由于涉及到指數(shù)函數(shù)的計算,我們采用插值的技術來計算Marr小波的近似值,即預先計算好從[0,7]的每隔0.05的值共141點(在程序初始化或某個類的構造中如此選定),然后通過普通的插值來實現(xiàn)小波基函數(shù)的計算。又由于該小波基函數(shù)的對稱性,可以得到自變量小于0的各個函數(shù)值。求解Marr小波函數(shù)的具體算法如下:
由于Marr小波函數(shù)的對稱性,我們只離散化采樣其非負時間軸的值,并且認為時Marr小波值為0。采樣時間為取采樣時間間隔(采樣步長)為0.05,由式(2),Marr小波離散化采樣值為:
(3)
當Marr小波時間變量time不是0.05的整數(shù)倍時,需要用插值計算法求出。在此之前,要考慮time<0的情況。由于Marr小波是關于t=0對稱的,可作如下變換:
time= -time,time<0(4)
此時無論原始時間變量是否為正,time都已轉換成非負值。進一步:
(5)
設int[x]表示取的整數(shù)部分,引入整數(shù)變量:
(6)
此時,就可以用插值法完成對各個具體點的Marr小波函數(shù)值wave(time)的求?。?/p>
(7)
下面敘述如何用計算機實現(xiàn)式(1)定義的連續(xù)小波變換。采用最簡單的數(shù)值積分方法—矩形法,也就是按照數(shù)字信號處理的習慣將式(1)按時間,時移因子作處理:
其中,是采樣時間間隔,取,則:
其中f(j.dt),是待分析信號按照采樣時間間隔連續(xù)采集的數(shù)據(jù),設存放于數(shù)組tp[j]中,將式(3)~(7)求出的小波函數(shù)的離散化形式帶入,得出:
(8)
上述小波變換結果存放在數(shù)組中,即:
(9)
(五) 區(qū)域填充的掃描線算法的實現(xiàn)
區(qū)域填充可以使用遞歸算法實現(xiàn),其原理和程序都很簡單,但由于多次遞歸,費時、費內存,效率不高。為了減少遞歸次數(shù),提高效率可以采用采用掃描線算法。
算法的基本過程如下:當給定種子點(x,y)時,首先填充種子點所在掃描線上的位于給定區(qū)域的一個區(qū)段,然后確定與這一區(qū)段相連通的上、下兩條掃描線上位于給定區(qū)域內的區(qū)段,并依次保存下來。反復這個過程,直到填充結束。
區(qū)域填充的掃描線算法可由下列四個步驟實現(xiàn):
(1)初始化:堆棧置空。將種子點(x,y)入棧。
(2)出棧:若??談t結束。否則取棧頂元素(x,y),以y作為當前掃描線。
(3)填充并確定種子點所在區(qū)段:從種子點(x,y)出發(fā),沿當前掃描線向左、右兩個方向填充,直到邊界。分別標記區(qū)段的左、右端點坐標為xl和xr。
(4)確定新的種子點:在區(qū)間[xl,xr]中檢查與當前掃描線y上、下相鄰的兩條掃描線上的象素。若存在非邊界、未填充的象素,則把每一區(qū)間的最右象素作為種子點壓入堆棧,返回第(2)步。
上述算法對于每一個待填充區(qū)段,只需壓棧一次;而在遞歸算法中,每個象素都需要壓棧。因此,掃描線填充算法提高了區(qū)域填充的效率。
3 實驗結果與分析
實驗采用數(shù)碼相機拍攝答題卡圖像,進行圖像預處理、答題卡的標定位置識別,答題卡的涂填處識別,判定矩形框中有無字符、是什么字符,最后對答題卡信息分析和統(tǒng)計。實驗采用80份試卷作為樣本,對12份試卷進行測試,結果識別率達到100%。
4 結論
本文采用圖象處理和模式識別技術,對答題卡進行閱讀。在實驗中以深色筆對答題卡進行勾選,經(jīng)過數(shù)碼相機拍攝答題卡,采集樣本,進行答題卡的自動識別。實驗表明識別率達到100%,解決了對書寫工具約束、采用打鉤的方法答題,方便,快速。
參考文獻
[1]吳元君,張婷,雷驚鵬.一種改進的OMR 技術在標準化考試中的應用[J].計算機教育,2007(13):250-272.
[2] 龐東虎,金偉杰.英文字符特征提取系統(tǒng)[J].計算機仿真,2007,24(12):208-210.
[3] 楊玲,毛以芳,吳天愛.基于多特征多分類器的脫機手寫漢字識別研究[J].計算機與網(wǎng)絡,2008(01):217-217.
[4] 覃勝,劉曉明.基于圖像的OMR技術的實現(xiàn)[J].電子技術應用,2003,29(10):17-19.
[5] 何斌,《Visual C++數(shù)字圖象處理》[M],人民郵電出版社,2002-4
作者簡介
陳偉華(1977-),湖北襄樊, 講師, 碩士,主要研究方向:計算機教學與.net項目開發(fā)。