摘 要: 基于計(jì)算機(jī)視覺技術(shù)設(shè)計(jì)了一個(gè)自動(dòng)閱卷系統(tǒng),為解決試卷填涂信息識(shí)別問題和自動(dòng)判卷問題,提出了基于感知哈希技術(shù)的試卷填涂信息識(shí)別算法和基于圖像比較近似度結(jié)果的判卷算法。通過系統(tǒng)實(shí)現(xiàn)與測試,系統(tǒng)擁有較快的處理速度、較高的準(zhǔn)確性和易用性。
關(guān)鍵詞: 計(jì)算機(jī)視覺;自動(dòng)閱卷;感知哈希算法
目前在試卷自動(dòng)批閱系統(tǒng)中,絕大多數(shù)都是采用光電管掃描技術(shù),也就是常說的機(jī)讀卡和光標(biāo)閱讀機(jī)。在一張帶格式的機(jī)讀卡上填涂相應(yīng)位置的空格,通過光標(biāo)閱讀機(jī)掃描填涂標(biāo)記獲得信息。因?yàn)闄C(jī)讀卡的特殊性質(zhì),在使用中要求不能折疊、必須用2B鉛筆填涂、標(biāo)記填涂必需呈矩形等,造成了這種系統(tǒng)設(shè)備成本、印刷成本較高,并且使用不便,易造成由于填涂不規(guī)范引起的誤讀[1]。
計(jì)算機(jī)視覺技術(shù)目前被廣泛地運(yùn)用在各工業(yè)和制造業(yè)領(lǐng)域,在工業(yè)檢測、統(tǒng)計(jì)、定位匹配等工作中用計(jì)算機(jī)視覺技術(shù)取代人工,可以提供生產(chǎn)效率和產(chǎn)品質(zhì)量。將計(jì)算機(jī)視覺技術(shù)運(yùn)用到試卷自動(dòng)批閱系統(tǒng)中,可在一定程度上解決上述問題,在易用性、處理速度和成本控制上可有較大改進(jìn)。
1 系統(tǒng)結(jié)構(gòu)與技術(shù)路線
本系統(tǒng)基于計(jì)算機(jī)視覺和計(jì)算機(jī)圖像處理技術(shù),對(duì)試卷的客觀題進(jìn)行自動(dòng)閱卷,并輔助教師進(jìn)行主觀題閱卷。系統(tǒng)基本結(jié)構(gòu)示意圖如圖1所示。
系統(tǒng)使用高速掃描儀將學(xué)生完成的試卷掃描形成計(jì)算機(jī)圖像,然后利用圖像匹配算法,將試卷圖像與標(biāo)準(zhǔn)空白試卷圖像進(jìn)行對(duì)比,獲得學(xué)生寫于試卷上的答案填涂信息。根據(jù)學(xué)生在客觀題選項(xiàng)位置的答案填涂標(biāo)記、數(shù)據(jù)庫記錄的判卷規(guī)則和題目答案,系統(tǒng)通過判卷算法處理可直接計(jì)算客觀題的成績。
為解決試卷填涂信息的識(shí)別問題,系統(tǒng)基于圖像感知哈希技術(shù)設(shè)計(jì)了試卷填涂信息識(shí)別算法。算法主要思路是對(duì)原始空白試卷模板進(jìn)行分析,獲得答案填涂位置的子圖集合,然后將掃描的試卷圖像進(jìn)行灰度處理,對(duì)相同填涂位置的子圖與空白試卷模板填涂位置的子圖進(jìn)行圖像比較,若相同位置的兩個(gè)子圖比較結(jié)果差異比高于某一閾值,則可認(rèn)為該位置被填涂,以此獲得填涂在試卷上的標(biāo)記位置。
在識(shí)別填涂信息的基礎(chǔ)上,系統(tǒng)通過判卷算法進(jìn)一步對(duì)試卷進(jìn)行判卷處理。其主要思路是在分析空白試卷模板時(shí),通過對(duì)數(shù)據(jù)庫中題庫答案的判別,獲得標(biāo)準(zhǔn)答案所在選項(xiàng)的填涂位置,形成正確填涂位置的子圖集合,與試卷圖像填涂結(jié)果相比較,若某一題試卷圖像被填涂位置與正確填涂位置相同,則認(rèn)為該題回答正確。
系統(tǒng)通過上述兩個(gè)算法對(duì)一份填寫好的答卷進(jìn)行處理,獲得該試卷的填涂信息并進(jìn)行答卷分析,完成對(duì)試卷的判卷,再結(jié)合題庫中的評(píng)分標(biāo)準(zhǔn),計(jì)算試卷成績,最終實(shí)現(xiàn)對(duì)試卷的機(jī)器自動(dòng)閱卷。
2 系統(tǒng)主要算法
系統(tǒng)使用計(jì)算機(jī)視覺技術(shù)解決自動(dòng)閱卷問題,提出了基于感知哈希技術(shù)的圖像比較算法和基于圖像比較近似度結(jié)果的判卷算法。
2.1 基于感知哈希技術(shù)的試卷填涂信息識(shí)別算法
感知哈希算法(Perceptual Hash Algorithm)是目前較為流行的計(jì)算機(jī)圖像比較算法,被廣泛地運(yùn)用在圖像比較和圖像搜索領(lǐng)域,Google和百度的“以圖搜圖”或“搜索網(wǎng)絡(luò)中相似圖片”等系統(tǒng)就使用了感知哈希算法。其主要思路是為圖片生成一個(gè)指紋(字符串格式),若兩張圖片的指紋越接近,則說明兩張圖片越相似。感知哈希算法在進(jìn)行圖像比較時(shí)速度非??欤貏e適合進(jìn)行大數(shù)據(jù)量的圖像比較[2]。
在本系統(tǒng)中,實(shí)現(xiàn)對(duì)試卷填涂答案的識(shí)別的核心思路就是比較掃描試卷圖像中的答案選框區(qū)域圖像與空白試卷圖像中的相應(yīng)位置答案選框區(qū)域圖像是否相似,以此來判斷該答案選框是否被填涂。
如圖2所示,虛線圍繞部分即為答案選框區(qū)域。空白試卷的答案選框?yàn)榭招木匦慰?,圖3所示答卷圖像的一部分答案選框被進(jìn)行了填涂,表示答題者所選的答案。若兩張圖片相同位置的答案選框區(qū)域圖像比較結(jié)果相似(如選框a和選框a′),則可認(rèn)為該選框未被填涂;若兩張圖片相同位置的答案選框區(qū)域圖像比較結(jié)果有較大差別(如選框a和選框a′′),則可判定該選框被進(jìn)行了填涂。對(duì)所有答案選框區(qū)域進(jìn)行圖像比較后,即可獲得整張答卷的填涂結(jié)果,再結(jié)合試題答案和評(píng)分規(guī)則后,就能夠得到試卷的評(píng)判結(jié)果。
根據(jù)以上思路,設(shè)計(jì)了基于感知哈希技術(shù)的試卷填涂信息識(shí)別算法,其主要步驟如下。
?。?)掃描空白試卷,獲得空白試卷圖像Gm;設(shè)定答案選框形狀為空心矩形(也可設(shè)為其他簡單的空心幾何形狀),并將該空心矩形設(shè)為Gm的子圖sm;對(duì)Gm進(jìn)行子圖搜索,獲得Gm中所有與sm相同的子圖和每一個(gè)子圖在Gm中的位置坐標(biāo)及子圖尺寸(位置坐標(biāo)和尺寸作為子圖對(duì)象的屬性,設(shè)為x,y,w,h),形成子圖對(duì)象集合SM={sm1,sm2,sm3,…,smi,…,smn}。把這一過程稱為“學(xué)習(xí)”,空白試卷圖像稱為“模板”。在圖2中,虛線條圍繞的選框圖形即子圖集合SM。
?。?)掃描答卷,獲得答卷圖像Ge;遍歷集合SM,得到每一個(gè)sm的位置坐標(biāo)和尺寸;按每一個(gè)sm的位置坐標(biāo)和尺寸在Ge中截取相同位置和尺寸的Ge的子圖,獲得Ge的子圖對(duì)象集合SE={se1,se2,se3,…,sei,…,sen},其中smi.x==sei.x;smi.y==sei.y;smi.w==sei.w;smi.h==sei.h.把這一過程稱為“定位”。圖3顯示了對(duì)答卷進(jìn)行定位的結(jié)果,藍(lán)色線條圍繞區(qū)域即為SE。
(3)應(yīng)用圖像感知哈希技術(shù),首先將smi縮小為8×8的尺寸,總共64個(gè)像素,并轉(zhuǎn)換成灰度圖像。然后計(jì)算所有64個(gè)像素的灰度平均值,將圖像中每個(gè)像素的灰度與平均值進(jìn)行比較,大于或等于平均值,記為1;小于平均值,記為0。接著將比較結(jié)果組合在一起,構(gòu)成了一個(gè)64位的整數(shù),得到smi的哈希值,即“指紋”。在本系統(tǒng)中,由于空白選項(xiàng)框圖像基本一致,故無需對(duì)SM中的所有子圖都進(jìn)行指紋計(jì)算,將smi的指紋作為所有SM子圖的指紋??蛇M(jìn)一步降低圖像比較算法的時(shí)間復(fù)雜度。
?。?)計(jì)算得到SE中的所有子圖sei的指紋,依次與smi的指紋進(jìn)行比較。若兩者的漢明距離小于等于10,則表示該sei與smi基本一樣,可認(rèn)為該子圖sei所表示的選項(xiàng)框未被填涂;若漢明距離大于10則表明該sei與smi有較大差距,可認(rèn)為該子圖sei所表示的選項(xiàng)框被進(jìn)行了填涂。將所有漢明距離大于10的sei形成新的集合SS,該集合記錄了答卷上所有被填涂的選項(xiàng)框子圖的位置與尺寸,也即選項(xiàng)框的填涂信息。
圖4截取了空白試卷的一個(gè)選項(xiàng)框子圖和答卷的一部分。在圖4中,sm1為空白選項(xiàng)框,其哈希指紋為“0000000001111110011111100111111001111110011111100111111000000000”。se2的哈希指紋為00000000011111 00011111000111110001111110011111100111111000000000,與sm1哈希指紋的漢明距離為3,可看出這兩張圖基本一致,因此認(rèn)為se2未被填涂;se3,se4,se6,se8,se9,se10, se11,se14,se15計(jì)算的漢明距離也皆小于6,認(rèn)作未被填涂。se1的哈希指紋為“1111111010000110100000001000 000011000010100000001001111011111110”,與sm1哈希指紋的漢明距離為48,大于10,因此認(rèn)為se1被填涂;se5,se7,se12,se13計(jì)算的漢明距離分別為38,32,37,44,皆大于10,故認(rèn)作被填涂。
在圖4所示答卷中,可以看出,特意使用了不規(guī)則的標(biāo)記填涂選項(xiàng)框,如se5,se7,se12,但算法均能識(shí)別出相應(yīng)的填涂狀態(tài)。而一般的光標(biāo)閱讀機(jī)要求填涂盡可能規(guī)則,因此使用該算法可提高不規(guī)則填涂的識(shí)別率,降低對(duì)使用者的填涂要求。
2.2 基于圖像比較近似度結(jié)果的判卷算法
在通過算法2.1完成了填涂信息的識(shí)別后,得到被填涂子圖集合SS,結(jié)合題庫答案和規(guī)則后,完成判卷。該算法基本思路為:
?。?)在對(duì)空白試卷的學(xué)習(xí)中,對(duì)SM中的子圖按答題卡布局進(jìn)行選項(xiàng)框與題目進(jìn)行“綁定”,將一組子圖劃歸某一道題目,例如sm1,sm2,sm3,sm4綁定為單選題的第一小題的ABCD 4個(gè)選項(xiàng)。在系統(tǒng)建立試題對(duì)象時(shí),把對(duì)應(yīng)的子圖對(duì)象設(shè)置為試題對(duì)象的“TrainImage”屬性的值。
?。?)定義題目的答題規(guī)則。對(duì)于判斷和單選題來說,需要規(guī)定只能有一個(gè)選項(xiàng)框被填涂,不填或多填為無效;而多選題則可填涂多個(gè)選項(xiàng)框,并規(guī)定完全與答案一致可得分,或者答對(duì)一部分給分。為了快速進(jìn)行規(guī)則判斷,提出了“規(guī)則字符串”,用一個(gè)字符串來表示填涂規(guī)則。規(guī)則字符串分為3個(gè)部分:第一部分為整數(shù),表示被選項(xiàng)數(shù)量;第二部分為符號(hào),“>”表示唯一選擇、“:”表示至多選擇、“!”表示不能選擇;第三部分也為整數(shù),表示選擇項(xiàng)數(shù)量。復(fù)合規(guī)則用“&”和“|”表示與和或。例如“4>1&4!0”表示該題只能四選一,不能多選,也不能不選;“4:0|4:4”表示可選擇0項(xiàng)或4項(xiàng)。規(guī)則字符串設(shè)置為試題對(duì)象的“Rule”屬性的值。
?。?)通過對(duì)答卷的定位和掃描,能獲得答卷選項(xiàng)框子圖集合SE和被填涂集合SS。由于smi==sei,所以可設(shè)置在答卷中單選題的第一小題的ABCD 4個(gè)選項(xiàng)將分別對(duì)應(yīng)se1,se2,se3,se4 4個(gè)選項(xiàng)框。然后根據(jù)該題規(guī)則,對(duì)SS進(jìn)行搜索,找出SS中對(duì)se1,se2,se3,se4的填涂記錄,結(jié)合題庫答案進(jìn)行邏輯判斷后,可獲得該題的答題結(jié)果。例如單選題的第一小題的答案為A,并且規(guī)則為唯一單選,可由圖5看出在答卷中答題者選擇并填涂的也是A選項(xiàng)。那么在填涂結(jié)果集SS中,se1∈SS(即se1被填涂),且se2?埸SS,se3?埸SS,se4?埸SS(該題無其他項(xiàng)被填涂),又由于se1對(duì)應(yīng)的是A選項(xiàng),因此可判斷答題者該題回答正確。
該算法可實(shí)現(xiàn)自定義規(guī)則的靈活判題,并且對(duì)結(jié)果的判定只需要一次對(duì)象搜索和簡單的邏輯處理,處理速度較快。
3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)采用Microsoft Visual Studio 2008開發(fā)環(huán)境,開發(fā)語言使用C#。由于數(shù)據(jù)存儲(chǔ)量不大,因此選擇Access或MySQL作為數(shù)據(jù)庫管理系統(tǒng)。整個(gè)系統(tǒng)主要分為試卷管理模塊、圖像處理模塊和試卷結(jié)果處理模塊3個(gè)部分。
試卷管理模塊主要負(fù)責(zé)處理對(duì)試卷題庫、答案、試卷布局的增加和修改等操作。同時(shí)該模塊負(fù)責(zé)建立考試,當(dāng)新建一次考試時(shí),從題庫中出題并新建一份試卷,該試卷包括電子試卷數(shù)據(jù)和紙質(zhì)試卷。其中電子試卷數(shù)據(jù)包括題目的電子數(shù)據(jù)、題型、分值、評(píng)分規(guī)則、試卷圖像信息等。當(dāng)紙質(zhì)試卷完成印刷后,由圖像處理模塊將試卷進(jìn)行圖像學(xué)習(xí),建立考試圖像模板和相關(guān)考試數(shù)據(jù)。
圖像處理模塊主要負(fù)責(zé)試卷圖像的獲取和處理任務(wù),包括連接和調(diào)用掃描儀、空白試卷的學(xué)習(xí)、答卷的定位和答卷填涂信息的識(shí)別。試卷管理模塊和試卷結(jié)果處理模塊均向該模塊請(qǐng)求服務(wù)。
試卷結(jié)果處理模塊主要負(fù)責(zé)將答卷的填涂信息進(jìn)行判斷處理,結(jié)合試卷的題型分值、標(biāo)準(zhǔn)答案和評(píng)分規(guī)則為試卷評(píng)分,統(tǒng)計(jì)各題目分?jǐn)?shù),最終完成判卷,并生成一次考試的所有成績的數(shù)據(jù)報(bào)表。
4 系統(tǒng)性能分析
設(shè)計(jì)了一次考試對(duì)系統(tǒng)進(jìn)行性能測試,這次考試試卷有10道判斷題、20道單項(xiàng)選擇題、10道多項(xiàng)選擇題,答卷數(shù)量為100份。處理計(jì)算機(jī)為CPU:Intel i5 2.6 GHz,內(nèi)存4 GB,Windows7操作系統(tǒng)。測試分別使用兩臺(tái)掃描儀進(jìn)行了一次完整的閱卷,目的是分析掃描儀硬件對(duì)系統(tǒng)性能的影響,一臺(tái)為Canon 6050C,掃描速度為單面60 ppm;一臺(tái)為Canon C125,掃描速度為單面25 ppm。并且為與光標(biāo)閱卷機(jī)進(jìn)行比較,同時(shí)填涂了100張機(jī)讀卡,交由光標(biāo)閱卷機(jī)進(jìn)行操作。測試結(jié)果如表1所示。
由表1可以看出,本系統(tǒng)的處理速度很大程度上取決于掃描儀的性能,也通過軟件測試了對(duì)一張答卷的圖像處理和判卷運(yùn)算時(shí)間,為340 ms,綜合速度能達(dá)到2~3張/s。
在測試中,特意使用了鉛筆、黑色記號(hào)筆、藍(lán)色記號(hào)筆、紅色記號(hào)筆、黑色中性筆、鋼筆等書寫工具對(duì)試卷和機(jī)讀卡進(jìn)行填涂,并不規(guī)則地填涂選項(xiàng)框,還折疊了部分試卷及機(jī)讀卡。在這種情況下,本系統(tǒng)的卡紙率為0,僅出現(xiàn)3次選項(xiàng)誤讀,且無論使用任何顏色的筆進(jìn)行填涂,系統(tǒng)均能識(shí)別;而光標(biāo)閱卷機(jī)出現(xiàn)了一次卡紙和近40次誤讀,集中在紅、藍(lán)色記號(hào)筆填涂和不規(guī)則填涂上。
同時(shí)本系統(tǒng)的試卷印制成本較低,無需專用答題卡,試卷紙張可多樣化,甚至可印刷背景圖案,這些都是閱卷答題卡無法做到的。
因此相比較光標(biāo)閱卷機(jī),本系統(tǒng)不僅可在速度上與之相近,還在填涂要求、制卷成本等方面有較大優(yōu)勢,比較結(jié)論如表2所示。
參考文獻(xiàn)
[1] 翟長波.光標(biāo)閱讀機(jī)OMR原理的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2010,23(4):61-62.
[2] KRAWETZ N. Looks like IT[N/OL]. http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html.2011.