張方舟 袁 野
(東北石油大學(xué)計算機與信息技術(shù)學(xué)院 大慶 163318)
國民教育行業(yè)中,為了減輕教職工們的負(fù)擔(dān),提高他們的工作效率,越來越多的應(yīng)用軟件、實用性系統(tǒng)被應(yīng)用于日常的學(xué)習(xí)工作中[1~3]。在現(xiàn)有的評卷模式中,盡管有讀卡機的存在,但主觀題無法被徹底摒棄,評卷人員的任務(wù)仍舊繁重,不僅要對答案的正確性及合理性做出評判,還要對最后的分?jǐn)?shù)進行匯總,且匯總分?jǐn)?shù)占用了大量的時間,無形中降低了評卷人員的工作效率[4]。而累分系統(tǒng)的提出可以有效解決人工分?jǐn)?shù)匯總的問題[5],相對于人工進行的分?jǐn)?shù)匯總來說,累分系統(tǒng)的正確率及可靠性更高,速度更快。
本研究基于圖像處理的累分系統(tǒng)主要是指對采集到的圖片信息依次做降噪處理、利用霍夫變換提取直線、對偏斜直線按照偏轉(zhuǎn)角度做旋轉(zhuǎn)校正得到水平直線、搜尋紅色數(shù)字所在具體位置并對分?jǐn)?shù)實行分割、最后分?jǐn)?shù)累加。該系統(tǒng)對分?jǐn)?shù)實行分割后,采用人工神經(jīng)網(wǎng)絡(luò)算法對手寫數(shù)字進行字符識別,并通過錯誤回饋法得到更高準(zhǔn)確率的字符識別結(jié)果。
霍夫變換是一種使用表決原理的參數(shù)估計技術(shù)[6],主要用來從原始圖像中分離出某種具有統(tǒng)一特征的幾何形狀。其將原始圖像中的直線或曲線上的所有點集投影到參數(shù)空間中所有直線的相交點上,在參數(shù)空間里對各個分割出來的累加器單元內(nèi)存在的點進行簡單的累加運算,尋找各個累加器的峰值[7],而這些峰值所存在的參數(shù)空間中累加器單元所對應(yīng)的原始圖像中的位置便是直線或曲線的存在之處,由此可以檢測出圖像中的直線或曲線。
1)霍夫變換檢測直線
依據(jù)點線的對偶特性[8],輸入空間中每一個點對應(yīng)輸出空間中的一條直線,當(dāng)同一條直線上的不同點映射到輸出空間上有共同的交點,在x-y空間上有 (xi,yi),(xj,yj)兩點確定一條直線,由此申請一個累加器A(q,k),用一個二維數(shù)組來表示記錄q-k空間直線經(jīng)過該點的次數(shù),初始記錄為0。對于點(xi,yi),映射到參數(shù)q-k空間為一條直線方程:
將對直線經(jīng)過的所有的點對應(yīng)為累加器空間:
同理,對于點(xj,yj)得到直線方程:
累加器加1,此時兩條直線的交點 (q′,k′)的累加器,q′值為就為兩點確定的直線的截距,k′為斜率。為了增加精確性,將直線 y=kx+q上所有的點都進行Hough映射[9],得到映射空間k-q中一系列的直線,并對累加器投票,這些直線的交點的票數(shù)一定是局部最高的。此時設(shè)定一個閾值T,可以認(rèn)為累加器值大于T的都是直線的參數(shù)。具體的輸入空間直線與對應(yīng)輸出空間直線分別如圖1和圖2所示。
圖1 輸入空間直線
圖2 對應(yīng)輸出空間直線
2)霍夫變換檢測曲線
對于曲線視為圓上的一段弧,若圓的方程(x-a)2+(y-b)2=r2,因為有3個參數(shù),如果要映射到參數(shù)空間會是三維的,無論是計算速度還是邏輯上難度都增加了很多。但是很多情況下,可以認(rèn)為待檢測目標(biāo)的半徑是固定的或者是在一定的范圍內(nèi)的,這樣就可以將圓的方程也映射到只有a、b兩個參數(shù)的二維空間。例如點對應(yīng)的輸入空間a-b的參數(shù)方程為
由方程可以知道,在a-b空間該曲線是一個半徑為r的圓,因此在半徑已知的情況下,圓的輸入空間與輸出空間是一個點圓的關(guān)系。同樣申請一個累加器空間 A(a,b,r),則圓上所有點對應(yīng)的累加器值:
當(dāng)輸入空間多個點映射到輸出空間時可以發(fā)現(xiàn),這些圓也都有一個共同的交點,這個交點即為輸入空間中圖形圓心的坐標(biāo),如圖3所示。
圖3 多點映射到輸出空間
反應(yīng)到累加器中,A(a',b',r')的值為局部最高,如果有多個圓我們可以同樣設(shè)定一個閾值T,對于A(a,b,r)內(nèi)所有大于T的點都可以認(rèn)為是半徑為r,圓心為(a,b)的圓。
HSV彩色模型是從CIE三維顏色空間演變而來的[10]。在HSV彩色模型中,每一種顏色都是由色調(diào)(H),飽和度(S)和色明度(V)所表示的。如圖4所示的六棱錐立體示意圖即是它的三維空間表示圖。
在該模型中,六棱錐的底面位于坐標(biāo)系的水平面上,該平面上包括了模型的兩個重要參數(shù),一個是色調(diào)一個是飽和度。色調(diào)是圍繞著坐標(biāo)系的縱軸旋轉(zhuǎn)變化的,圖上標(biāo)示出了六個標(biāo)準(zhǔn)色的位置,相鄰純色之間相隔60°。飽和度是沿著水平方向變化的,最低的飽和度位于坐標(biāo)系的原點位置。色明度是位于坐標(biāo)系的縱軸上的,沿垂直方向不斷變化。
圖4 六棱錐立體示意圖
從RGB色彩空間到HSV色彩空間通過非線性變換,如圖4所示,假設(shè)橢圓的中心坐標(biāo)點為“白”,H軸在橢圓上的焦點與“白”之間的距離為半徑r,其中“黃”與“白”之間為最大半徑 rmax,“綠”與“白”之間為最小半徑rmin,對于色調(diào)H控制著紅、黃、綠、青和品紅的色差區(qū)域,從H軸逆時針旋轉(zhuǎn)過程中距離最大半徑rmax和最小半徑rmin的距離分別設(shè)為g和h,則每一種顏色在色調(diào)H上的變換依據(jù)“黃”與“白”之間最大半徑rmax與g、b和r共同控制,具體的變換形式為
對于飽和度S的變換則可僅依據(jù)最大半徑rmax控制,具體變換形式如下:
對于色明度V即為“黃”與“白”之間最大半徑rmax:
本文中所研究的累分系統(tǒng)的實現(xiàn)步驟如下:
Step.1:圖像輸入:將要待處理照片傳入計算機后載入識別系統(tǒng);
Step.2:圖像預(yù)處理:對圖像進行圖像轉(zhuǎn)換、圖像邊緣檢測、去噪、直線提取和圖像旋轉(zhuǎn)等;
Step.3:區(qū)域定位與分割:從預(yù)處理后的登分區(qū)域圖像中搜尋到手寫體分?jǐn)?shù)所在的大致位置,對圖像形態(tài)學(xué)去噪然后分割出試卷中分?jǐn)?shù)所在的矩形區(qū)域;
Step.4:字符分割:從分?jǐn)?shù)所在的矩形區(qū)域中分離出各個題目的分?jǐn)?shù),再對每個分?jǐn)?shù)進行單個字符的分離;
Step.5:單字符識別:該步驟是在上一步驟所得中間結(jié)果的基礎(chǔ)上進行的,對于分割出的每一個字符圖像分析并提取特征,利用建立好的神經(jīng)網(wǎng)絡(luò)不斷學(xué)習(xí)訓(xùn)練,確定字符的類別;
Step.6:分?jǐn)?shù)匯總:對識別出的字符在分?jǐn)?shù)中所占用的權(quán)值進行判斷,確定它是處于十位還是個位,然后計算各個題目的分?jǐn)?shù),再將所有題目分?jǐn)?shù)取和,輸出結(jié)果。
圖像預(yù)處理是本文實驗的第一個環(huán)節(jié),起著至關(guān)重要的作用。原始圖像中不僅僅有圖像的輪廓、邊緣信息,更有圖像的顏色信息,而這些信息都將占用一定量的存儲空間,這就導(dǎo)致了系統(tǒng)解決問題時執(zhí)行速度在一定程度上的降低,如圖像輸入為圖5所示。
圖5 圖像輸入
圖像預(yù)處理是對圖像進行分析之前所必須做的準(zhǔn)備工作,這樣能夠使圖像中所包含的各種信息得到簡化,使我們更加清晰、直接地了解圖像中的客體特征。圖像的邊緣指的是圖像中局部亮度變化相對來說較明顯的部分,它可以充分體現(xiàn)圖像的紋理和形狀等基本特征。為了方便之后利用霍夫變換這一方法來提取圖像中的直線從而完成我們所需目標(biāo)位置的確定與校正,這里先對圖像進行邊緣檢測。具體步驟如下:
Step.1:對圖像進行灰度轉(zhuǎn)換,把原始圖像變成二值圖像;
Step.2:采用canny算子對圖像進行邊緣檢測并在此過程中去噪[11];
Step.3:利用霍夫變換提取圖像中的直線;
Step.4:對傾斜圖像進行適當(dāng)角度的調(diào)整校正。
具體的邊緣檢測和圖像旋轉(zhuǎn)矯正如圖6和圖7所示。
圖6 邊緣檢測
圖7 圖像旋轉(zhuǎn)矯正
分?jǐn)?shù)區(qū)域的定位與分割是本文實驗中累分系統(tǒng)實現(xiàn)的重要步驟之一,隨著這一步驟的實現(xiàn),我們可以確定校正之后的圖像中分?jǐn)?shù)區(qū)域的具體位置,并準(zhǔn)確地切分出手寫體分?jǐn)?shù)所在的區(qū)域子圖。這一過程中得到的圖像結(jié)果是用于之后步驟的,因此分割的準(zhǔn)確率直接同整個累分系統(tǒng)最終的識別率密切相關(guān)。
1)分?jǐn)?shù)區(qū)域的定位
為了完成區(qū)域的成功定位與分割,觀察圖像的基本特征,教師評判卷子時均采用紅色簽字筆,分?jǐn)?shù)區(qū)域的顏色屬性與周邊區(qū)域有明顯的不同,利用這一特征很方便對分?jǐn)?shù)區(qū)域的定位。采用彩色分割的方法,首先將圖像由RGB轉(zhuǎn)換為HSV[12],同時得到圖像的H、S、V三個分量,查閱資料得到紅色的三個基本分量的大致范圍,對于從HSV圖像中得到的三個分量同時進行限定,便可定位出分?jǐn)?shù)區(qū)域的位置,區(qū)域定位如圖8所示。
圖8 區(qū)域定位
2)分?jǐn)?shù)區(qū)域的分割
對分?jǐn)?shù)區(qū)域進行分割,找到分?jǐn)?shù)區(qū)域所在位置的X和Y方向上的值,并記錄其中的最小值和最大值,這樣便可以個根據(jù)這四個數(shù)據(jù)勾畫出分?jǐn)?shù)所在的矩形區(qū)域,將其分割出來。由于圖像的質(zhì)量及清晰度等問題,在這里應(yīng)用到了由開啟和閉合這兩個基本運算構(gòu)成的所謂的形態(tài)學(xué)上的噪聲濾波器[13],去除了對象中不相關(guān)的小對象,分?jǐn)?shù)區(qū)域分割效果如圖9所示。
圖9 分?jǐn)?shù)區(qū)域分割效果圖
對單字符進行分割這一環(huán)節(jié)在累分系統(tǒng)的實現(xiàn)過程中發(fā)揮著承上啟下的作用。實現(xiàn)這一步驟的基本思想是采用矩陣投影的方式確定X方向上的值對應(yīng)的位置是否有分?jǐn)?shù)字符像素點的存在。以二維矩陣的形式存放在計算機中,矩陣中的每一個元素非0即1,對這個矩陣進行投影可以得到一個一維向量,這個一維向量中存放了非0元素,也存放了值為0的元素,其中0元素所存在的位置說明圖像中相對應(yīng)的位置沒有字符的存在,這樣可以根據(jù)0和非0元素的位置來分割字符。對于此實驗中的圖像,各個題目的分值不同,存在個位數(shù)的題目,同樣存在兩位數(shù)的題目,因此不僅需要將字符分割開來,同樣需要將各個題目的分?jǐn)?shù)分割開來。在此次實驗中,首先將各個題目的分?jǐn)?shù)分割開來,然后再進行字符的分割。為了區(qū)分題目分?jǐn)?shù)的分割與單個字符的分割,實驗中定義了一個一維數(shù)組來記錄圖像中存在的所有字符之間的間距,再對數(shù)組里保存的這些間距值求平均值,則對于大于所求平均值的間距值我們認(rèn)定它就是圖像中各個題目之間的間隔,而對于小于等于平均值的間距值我們認(rèn)為是單個題目中各個單字符之間的間距,對應(yīng)的字符分割效果如圖10所示。
圖10 字符分割
在整個系統(tǒng)的研究、實現(xiàn)過程中,對于字符進行識別是非常重要的一個環(huán)節(jié),它決定了最終結(jié)果的正確與否,我們可以利用的方法有很多種。而最常見的方法有利用模板匹配算法的實現(xiàn)方法和利用人工神經(jīng)網(wǎng)絡(luò)算法的實現(xiàn)方式[14]。對核分系統(tǒng)進行綜合分析,由于試卷中分?jǐn)?shù)字符均采用手寫的方式,因此認(rèn)為模式匹配算法的成功率應(yīng)該不會很高,為了保證字符識別和最終結(jié)果的準(zhǔn)確率,最終選擇了自編碼神經(jīng)網(wǎng)絡(luò)重構(gòu)的算法,該算法是基于BP神經(jīng)網(wǎng)絡(luò)算法的。
實驗中采用的自編碼神經(jīng)網(wǎng)絡(luò)算法是利用分?jǐn)?shù)字符分割后的單個字符的圖像和它的Gabor特征作為網(wǎng)絡(luò)的輸入節(jié)點進行單個字符識別的實驗[15],我們對前面基礎(chǔ)上得到的每個單個字符圖像構(gòu)造一個自編碼神經(jīng)網(wǎng)絡(luò),利用建立好的網(wǎng)絡(luò)訓(xùn)練樣本對各個圖像進行重構(gòu)訓(xùn)練學(xué)習(xí),并且根據(jù)訓(xùn)練學(xué)習(xí)之后得到的網(wǎng)絡(luò)權(quán)重值重構(gòu)出訓(xùn)練樣本集中的各個字符的圖像或特征。最后,輸入我們之前已經(jīng)得到的圖像到網(wǎng)絡(luò)中,計算樣本與最終結(jié)果這二者間的相關(guān)值。比較各個樣本字符類別與輸入字符圖像間相關(guān)數(shù)值的大小,其中數(shù)值最大的相關(guān)值對應(yīng)的識別類型就是我們最終想要得到的結(jié)果。
分?jǐn)?shù)匯總是整個實驗的最后一步。這一過程中主要任務(wù)是計算各個題目的真實分值,最后做加法運算,輸出結(jié)果。輸出的分?jǐn)?shù)匯總展示如圖11所示。
圖11 分?jǐn)?shù)匯總展示
本文通過對累分系統(tǒng)的研究并結(jié)合累分系統(tǒng)最終的實現(xiàn)過程,很大程度上減少了教師工作量。本文中累分系統(tǒng)的實現(xiàn)準(zhǔn)確率較高,得益于選擇了合理的圖像處理方法,如對分割出的字符的大小、位置的歸一化等方法。并通過改進神經(jīng)網(wǎng)絡(luò),選擇合適的參數(shù),進一步提高分?jǐn)?shù)計算的準(zhǔn)確率。同時實驗程序在滿足一定要求下相對來說比較簡潔,程序運行效率高。