王軍等
摘 要: 該設(shè)計實現(xiàn)了一種新型的試卷分數(shù)求和器,利用攝像頭直接獲取手寫試卷分數(shù)欄信息,實現(xiàn)分數(shù)求和功能且能夠自動適應(yīng)不同的求分欄數(shù)目。求和器首先利用攝像頭對試卷實時采樣并對其進行二值化、圖像定位和圖像分割等預(yù)處理,然后利用BP神經(jīng)網(wǎng)絡(luò)對分割出的字符進行數(shù)字識別,最后將識別出的數(shù)字加和顯示在GUI界面中。實驗表明,該求和器能夠以較高概率實現(xiàn)對手寫試卷分數(shù)的自動求和,具有較大的應(yīng)用前景。
關(guān)鍵詞: 手寫試卷; 分數(shù)求和器; 圖像處理; 分值識別; BP神經(jīng)網(wǎng)絡(luò)
中圖分類號: TN919?34; G741 文獻標識碼: A 文章編號: 1004?373X(2015)08?0022?04
Design and implementation of A novel score summer system for handwritten test paper
WANG Jun1, SUO Yue2, XIAO Zhen?dong1, ZHANG Min1, QIAO Xiao?lin1
(1.Weihai Branch, Harbin Institute of Technology, Weihai, 264209, China; 2. Skyworth LCD Co., Ltd, Shenzhen 518000, China )
Abstract:A novel score summer system for handwritten test paper is proposed in the paper. The summer system acquires the score information of handwritten test paper by digital camera, and then can automatically output the summation and can adap itself to different number of score?lines. The summer firstly captures the image of test paper by digital camera and then preprocess the image including binaryzation, image positioning and segmentation. The BP neural network is employed to accomplish the score value recognition based on the preprocessed result, and then the summation is displayed on GUI interface. The experiments based on real system show the proposed score summer system can implement automatic summation of handwritten test paper in high probability.
Keywords: handwritten test paper; score summer system; image processing; score value recognition; BP neural network
0 引 言
手寫試卷分數(shù)求和工作量非常大且容易出錯,找到一種能降低人為錯誤和提高效率的求和方法具有現(xiàn)實應(yīng)用意義。本文主要研究試卷分數(shù)求和器的設(shè)計與實現(xiàn),以期能設(shè)計出一種快捷、有效的試卷分數(shù)自動求和器系統(tǒng),可減少人工工作量并能夠提高效率。該分數(shù)求和器對批改好的手寫試卷分數(shù)進行數(shù)字識別,然后自動計算出總分,能大大提高教師試卷批改的效率?,F(xiàn)在的試卷批改方法大體有兩種:手工的傳統(tǒng)方法,耗時長,同時有一定的錯誤率;利用炭對紅外的電敏感性實現(xiàn)的電腦讀卡法,需要專門的填寫和專業(yè)的讀卡設(shè)備,這種方法效率高、準確率高,但成本也高[1]。
本求和器首先利用數(shù)字攝像頭對手寫試卷分數(shù)信息進行獲取,然后利用手寫體數(shù)字識別方法進行圖像處理,以實現(xiàn)對手寫的試卷分數(shù)自動求和功能。
1 圖像信息處理
本求和器系統(tǒng)組成框圖如圖1所示,核心是利用圖像處理方法對攝像頭獲取的圖像進行處理,實現(xiàn)分數(shù)求和。
圖1 系統(tǒng)框圖
在圖像信息處理中,求和器系統(tǒng)實現(xiàn):利用攝像頭實現(xiàn)圖像采集、圖像預(yù)處理、圖像定位和圖像分割。
1.1 圖像采集
圖像采集利用Matlab的Image Acquisition Toolbox工具箱。將攝像頭固定在試卷上方,通過Matlab查詢視頻設(shè)備,直接調(diào)用攝像頭,打開預(yù)覽窗口,對試卷進行瞬時抓拍,并將所采集的圖像進行存儲。在本系統(tǒng)中需要采集的對象為手寫試卷計分欄,圖2所示??梢钥闯觯诓杉膱D像中,有很多與分數(shù)無關(guān)的文字和線條。利用Matlab軟件實現(xiàn)圖像采集的流程圖如圖3所示。
圖2 需要采集的對象
圖3 圖像采集流程圖
1.2 圖像預(yù)處理
采集圖像后,通過imread函數(shù)將圖像讀取為二維矩陣數(shù)據(jù),然后對其進行灰度化、二值化、取反、規(guī)范化[2]等預(yù)處理,圖4是將圖2所示原始采集圖像進行預(yù)處理之后的結(jié)果。
圖4 原圖像灰度化及二值化后圖像、取反后圖像
1.3 圖像定位
要實現(xiàn)對分數(shù)的識別,需要對預(yù)處理后圖像進行定位,通過定位確定分數(shù)圖像的位置。在本系統(tǒng)中,圖像的評分欄定位采用了攝像頭定位與投影法相結(jié)合的方法,畫出取反后圖像的垂直投影及水平投影,如圖5所示。
圖5 取反后圖像的水平投影及垂直投影
對其投影分析可知,評分欄圖像的橫坐標約在60~370之間,縱坐標約在145~275之間。由于攝像頭獲取圖像可能會存在些微的位置誤差,因此,截取圖像時將坐標范圍適當(dāng)擴大,選取了橫坐標55~380之間,縱坐標在140~280之間,以此區(qū)間實現(xiàn)對從預(yù)處理圖像中對評分欄進行定位,定位后的分數(shù)欄圖像如圖6所示[3]。
圖6 定位后圖像
1.4 圖像分割
在定位后圖像中,根據(jù)評分欄進行圖像分割實現(xiàn)不同題目的分數(shù)圖像分離在本設(shè)計中具有非常重要的意義。本設(shè)計中的分割涉及到兩次邊框分割和一次字符分割。每一次分割均采用投影法,通過判斷投影值選取圖像的起止點,分割出所需圖像[4]。第一次投影分割過程如下:首先畫出圖像的水平投影圖,如圖7所示。
圖7 定位后圖像的水平投影
在評分欄圖像的水平投影圖上的橫向從左側(cè)到右側(cè)依次檢測每1個坐標的投影數(shù)值,將檢測到的投影數(shù)值出現(xiàn)第1個大于等于150時,那么將這個投影數(shù)值所屬的像素點即看做是第1行區(qū)域的上邊界限。然后繼續(xù)向右檢測,將檢測到的投影數(shù)值出現(xiàn)第1個大于等于150時,那么將這個投影數(shù)值所屬的像素點即看做是第1行區(qū)域的下邊界限。投影算法流程圖如圖8所示。
圖8 圖像分割流程圖
根據(jù)圖8所示圖像分割流程,設(shè)計Matlab程序,實現(xiàn)對圖像的分割,第1次分割后的圖像圖9所示。從圖中可以看出,經(jīng)過一次分割后,不同計分欄中的分數(shù)已經(jīng)實現(xiàn)分離,但其中包含了不是分數(shù)的文字信息,如在圖9中的第一張子圖中出現(xiàn)漢字“分數(shù)”。
圖9 第一次分割后圖像
與第1次圖像分割同理,第2次及第3次分割也以此流程進行分割。第2次及第3次分割后圖像如圖10、圖11所示。其中第3次分割的目的是若某一題的分數(shù)為兩位數(shù),則對圖像進行第三次分割,將兩位數(shù)字分割成單個的數(shù)字,為實現(xiàn)數(shù)字分數(shù)識別[5]做準備。
圖10 第二次分割后圖像
圖11 第三次分割后圖像
進行三次分割后,對分割出來的圖像進行特征提取,如圖12所示,以便于后續(xù)的數(shù)字識別[6?8]。
圖12 第三次分割后圖像的特征提取
2 數(shù)字識別
在本分數(shù)求和器系統(tǒng)中,基于特征提取結(jié)果,利用BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)手寫體數(shù)字的識別。
2.1 BP神經(jīng)網(wǎng)絡(luò)法
手寫體數(shù)字識別系統(tǒng)主要由訓(xùn)練過程與識別過程兩部分組成,訓(xùn)練過程和識別過程兩部分均包括預(yù)處理、特征提取和模式識別三部分。本課題采用BP神經(jīng)網(wǎng)絡(luò)方法對手寫數(shù)字進行識別。BP神經(jīng)網(wǎng)絡(luò)又稱誤差反向傳遞神經(jīng)網(wǎng)絡(luò),它是一種依靠反饋值來不斷調(diào)整節(jié)點之間的連接權(quán)值而構(gòu)建的一種網(wǎng)絡(luò)模型[9]。它的整個體系結(jié)構(gòu)分為輸入層、隱藏層和輸出層,其中隱藏層根據(jù)具體情況的需要,可以是一層結(jié)構(gòu)也可為多層結(jié)構(gòu)。BP網(wǎng)絡(luò)屬于前向神經(jīng)網(wǎng)絡(luò),給多層網(wǎng)絡(luò)的訓(xùn)練提供了比較有效的辦法,加之多層前向神經(jīng)網(wǎng)絡(luò)能逼近任意線性函數(shù),在科學(xué)技術(shù)領(lǐng)域中有廣泛的應(yīng)用,因此,該算法一直受到人們的廣泛關(guān)注。
2.2 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
將數(shù)字圖像的特征向量作為神經(jīng)網(wǎng)絡(luò)的輸入,所以神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元個數(shù)等于特征向量的維數(shù),即70×50=3 500個輸入神經(jīng)元。因為要識別10個數(shù)字,因此輸出選擇為10×1的矩陣,即輸出節(jié)點數(shù)為10。當(dāng)數(shù)字圖像0~9輸入神經(jīng)網(wǎng)絡(luò)后,在輸出神經(jīng)元對應(yīng)的位置上為1,其他的位置為0。如果輸人數(shù)字0,第1個輸出神經(jīng)元為1,其他輸出神經(jīng)元為0;如果輸入數(shù)字1,第2個輸出神經(jīng)元為1,其他輸出神經(jīng)元為0;依次類推。
建立一個前向BP神經(jīng)網(wǎng)絡(luò)函數(shù),主要程序如下:
net = newff(minmax(alphabet),[S1 S2],{′logsig′ ′logsig′},′traingdx′);
其中:minmax(alphabet)為神經(jīng)網(wǎng)絡(luò)對它的3 500個輸入元素的最大值和最小值的限制;alphabet為訓(xùn)練樣本集合;[S1 S2]為該神經(jīng)網(wǎng)絡(luò)的層結(jié)構(gòu);{′logsig′ ′logsig′}為該神經(jīng)網(wǎng)絡(luò)各層的轉(zhuǎn)移函數(shù),均設(shè)置為對數(shù)S型激活函數(shù)。訓(xùn)練函數(shù)采用traingdx,即梯度下降BP算法訓(xùn)練函數(shù)。最后通過train函數(shù)對目標樣本進行訓(xùn)練,通過sim函數(shù)進行仿真,輸出神經(jīng)元最大值,即識別出的數(shù)字[10?13]。
3 系統(tǒng)實現(xiàn)
實現(xiàn)手寫試卷分數(shù)求和器的實際系統(tǒng)如圖13所示,基于實際系統(tǒng)進行題數(shù)可選功能和報警功能的測試,對識別正確率進行了統(tǒng)計。
圖13 實際系統(tǒng)
3.1 題數(shù)可選功能
本系統(tǒng)具有題數(shù)可選擇功能,七、八、九題均可,選擇出要識別的試卷的題數(shù),即可進行識別,并在總分處顯示出總分。實現(xiàn)方法為:在GUI設(shè)計中,在GUI界面上放置三個按鈕,分別命名為“七道題”、“八道題”、“九道題”,每個按鈕內(nèi)均包括第2次分割、第3次分割、識別及結(jié)果顯示的程序語句,不同之處僅在于第2次分割時,所分割出的圖片數(shù)不同,顯示出的圖片數(shù)也不同。實際系統(tǒng)效果如圖14~圖16所示。
圖14 識別后GUI界面(七道題)
圖15 識別后GUI界面(八道題)
圖16 識別后GUI界面(九道題)
3.2 報警功能
本系統(tǒng)設(shè)計具有報警功能,若所識別的圖像某一大題處為空白,會在總分上面顯示出“there is an enpty!”進行報警,效果如圖17所示。
實現(xiàn)方法:對每道題的圖片取垂直投影histcol3,令mm=sum(histcol3),即對垂直投影histcol3求和,若mm<8,則說明框內(nèi)基本無內(nèi)容,即框內(nèi)空白,則在總分上方的坐標系區(qū)域內(nèi)顯示“There is an empty!”的圖片,實現(xiàn)報警[14]。
圖17 空白報警GUI界面
3.3 系統(tǒng)準確率
對手寫分數(shù)的識別準確率是衡量系統(tǒng)的重要指標,它決定了系統(tǒng)是否具有實際應(yīng)用價值。本設(shè)計中共取20個分數(shù)欄圖像作為訓(xùn)練樣本,每個圖像中含有10個手寫體數(shù)字,共200個測試樣本對系統(tǒng)進行性能測試。測試結(jié)果如表1所示。由表1中的數(shù)據(jù)可知,總體數(shù)字識別的正確率為93.25%,正確率較高。就本設(shè)計而言,數(shù)字識別準確率與攝像頭獲取圖像的亮度、手寫數(shù)字的間距等均有關(guān),因此,在實際運用中,還應(yīng)對圖像獲取、數(shù)字位置等都有準確規(guī)定,以獲得更高的準確率。
表1 求和器準確率
4 結(jié) 論
本文根據(jù)手寫試卷評分特征,利用圖像分割理論和BP神經(jīng)網(wǎng)絡(luò),實現(xiàn)了試卷分數(shù)求和器系統(tǒng)設(shè)計。求和器能夠自動實現(xiàn)對手寫試卷分數(shù)的總分計算,減少了人工統(tǒng)計計算成本;求和器所具有的題數(shù)可選功能和對空白分數(shù)欄的報警提示功能,提高了系統(tǒng)適應(yīng)性,能對試卷評分欄進行檢查,排除分數(shù)漏統(tǒng)計風(fēng)險。經(jīng)過實際測試表明,本分數(shù)求和器的準確率達到93.5%,這表明基于本系統(tǒng)設(shè)計理論的手寫分數(shù)求和器具有實際應(yīng)用意義。通過對圖像分割和數(shù)字識別算法進行改進,可進一步提高系統(tǒng)準確率,將本系統(tǒng)實際應(yīng)用于手寫試卷評分領(lǐng)域。
參考文獻
[1] 郝夢琳.手寫體數(shù)字識別方法的研究與實現(xiàn)[D].太原:太原科技大學(xué),2013.
[2] 康明.手寫體數(shù)字識別技術(shù)研究[D].武漢:武漢理工大學(xué),2010.
[3] 張彤,肖南峰.基于BP網(wǎng)絡(luò)的數(shù)字識別方法[J].重慶理工大學(xué)學(xué)報:自然科學(xué)版,2010,24(3):59?63.
[4] 王巖松.手寫體數(shù)字識別中的關(guān)鍵技術(shù)研究[D].北京:北京郵電大學(xué),2009.
[5] 姜天戟,袁曾任.基于BP和統(tǒng)計的混合法前饋型神經(jīng)網(wǎng)絡(luò)及其應(yīng)用[J].軟件學(xué)報,1996(6):379?384.
[6] 孫少林,馬志強,湯偉.灰度圖像二值化算法研究[J].價值工程,2010(5):142?143.
[7] 李強.圖像分割中的閾值法研究[J].銅仁職業(yè)技術(shù)學(xué)院學(xué)報, 2008(6):52?54.
[8] 戴建輝.自由手寫體數(shù)字識別系統(tǒng)的設(shè)計與實現(xiàn)[EB/OL].[2010?12?15].http://wenku.baidu.com.
[9] 薛智勇,婁雪芳.基于BP神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別[J].儀器儀表與分析監(jiān)測,2009(2):25?30.
[10] 張新峰,沈蘭蓀.模式識別及其在圖像處理中的應(yīng)用[J].測控技術(shù),2004,23(5):28?32.
[11] MAN Zhi?hong, LEE Kevin, WANG Dian?hui, et al. An optimal weight learning machine for handwritten digital image recognition [J]. Signal Processing, 2013, 93(6):1624?1638.
[12] CARDOSO Angelo, WICHERT Andreas. Handwritten digit recognition using biologically inspired features [J]. Neurocomputing, 2013, 99(1):575?580.
[13] KUSSUL Ernst, BAIDYK Tatiana. LIRA neural classifier for handwritten digit recognition and visual controlled microassembly[J]. Neurocomputing, 2006, 69(16):2227?2235.
[14] 孫祥,徐流美,吳清.Matlab 7.0基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2005.