張 瑞,張希厚,曹嘉玲,羅彬杰,萬永菁
(華東理工大學,上海 200237)
由于學業競爭壓力大,如今的中小學生往往需要通過大量做題來提升解題能力,因此會積累大量批改過的試卷。做過的試卷中含有許多典型題目以及重要知識點,對隨后階段的查漏補缺、知識點鞏固作用巨大。同時,對試卷中錯題種類及數量的統計還有利于學生監測自身學習動態和學科弱點。靠學生手動收集整理錯題往往要耗費大量時間精力,效率過低。因此,如何將舊試卷變廢為寶,并結合時下流行的智能科學技術,方便快捷地對其進行整理、提取以重新利用,是非常值得探究的課題。
目前已有相關學者對試卷題目處理的方法進行了研究[1-3],這些研究的共同特點是基于一張專用試卷,該試卷經過特殊排版,并印刷有識別標記,能夠準確定位題目位置,精確切割。部分研究還運用光學字符識別(optical character recognition,OCR)技術[4]對圖片上的文字進行識別,生成文檔。但由于OCR技術尚不完全成熟,加上試卷題目類型復雜,公式、圖片種類繁多,造成識別結果出現差錯。同時,專用試卷的特殊性也使得其缺乏廣泛適用性。因此,該文探討通過圖像處理技術,對批改后試卷中的題目以及批改痕跡進行自動識別切割,并運用ResNet深度殘差網絡[5]判斷題目的正誤,從而進行分類整理。
HSV顏色空間由A.R.Smith在1978年提出,是計算機視覺中常用的一種顏色空間,其三個參數分別是色相H、飽和度S和明度V。其中,色相是顏色的基本屬性,由光線波長決定;飽和度描述顏色的純度,S越高顏色越深,S越低顏色越淺;明度描述顏色的明暗[6]。
HSV顏色空間是一種基于人的感受的顏色空間,與RGB色彩空間使用紅綠藍三個分量相加表示顏色相比,HSV顏色空間在顏色表示上更為直觀,因此顏色識別時一般使用HSV顏色空間[7]。由于試卷批改痕跡多為紅色,故此處以紅色為例說明顏色識別的流程,如圖1所示。

圖1 顏色識別流程
首先將圖片由RGB顏色空間轉換為HSV顏色空間,轉換公式為式(1)~式(3),式中R、G、B分別是像素點的紅色、綠色和藍色分量值。
V=max(R,G,B)
(1)
(2)
(3)
然后遍歷所有像素點,判斷每個像素點的HSV三個分量的值是否在紅色的HSV區間內。表1顯示了常見顏色的HSV區間,可以看出紅橙黃綠等顏色的HSV值主要區別在H分量的范圍,數值上容易區分,這也是選擇HSV顏色空間做顏色識別的原因之一。根據表1中所示紅色的HSV三分量值,得到判斷條件為:
0 43 表1 HSV顏色值對照 最后,將符合條件的像素點保留,令不符合條件的像素點灰度為255,就能夠將紅色的批改痕跡從試卷中提取出來。 圖像膨脹是一種常用的圖像形態學處理方法,經常和圖像腐蝕一起用于處理二值化圖像,其主要作用是消除圖像內部不連續的點、連接鄰近物體、使圖像邊緣更為平滑等。膨脹的數學定義如下: (4) 霍夫變換由Paul Hough于1962年提出,是一種常用的從圖像中檢測出物體形狀的方法。霍夫變換的基本原理是建立了圖像空間與霍夫參數空間中點與線的對偶性。圖像空間中的直線y=kx+b映射成為霍夫參數空間中的點(k,b),而圖像空間中的點則是參數空間中的一條直線。霍夫直線檢測的優點在于抗干擾能力強,對直線的殘缺部分不敏感,同時對光照引起的噪點等具有魯棒性。該文采用霍夫直線檢測將試卷與背景分離出來,并對傾斜的試卷進行校正。 文中系統框架如圖2所示。為了便于圖像處理,由學生在試卷題號處用紅筆畫圈作為標記。將有標記和紅筆批改痕跡的試卷作為系統的輸入,為了便于進一步處理,首先通過霍夫直線檢測切割出試卷的卷面部分,去除拍照的背景,并進行直線校正,將傾斜的試卷旋轉至水平。 圖2 系統設計框架 之后通過在HSV顏色空間識別顏色,從原始圖像中獲得圖層一紅色字跡層。之后切割得到圖層二題號標簽層和圖層三批改痕跡層。在圖層二題號標簽層檢測出題號標記的上界,并依此切割圖層二和圖層三,得到每道題的批改痕跡和題目[9]。 然后通過深度學習判斷批改痕跡的類型,并將批改痕跡對應題目分類至對、錯、半對三個文件夾。至此,系統完成了自動識別、切割試卷題目并智能分類將其保存為三個題庫的任務。 題目切割是該系統的關鍵部分,是后續判斷批改痕跡、生成題庫的基礎,其具體流程如圖3所示。 圖3 題目切割流程 首先,對圖像進行預處理。通過霍夫直線檢測,將試卷的卷面部分與背景部分分離,獲得待處理的試卷卷面部分,并對傾斜的試卷進行直線校正。 具體流程如圖4所示。首先用Sobel算子對圖片進行邊緣提取并二值化,然后將每一條經過邊緣點的直線映射至霍夫參數空間,并對其進行統計學投票,設定閾值并去除干擾直線后得到最可能的參數點,將其反變換至圖像空間即可得到物體的輪廓直線。之后獲得輪廓直線的交點,并以此將圖片切割,從整張照片中去除了拍照背景,得到試卷卷面。 圖4 卷面切割流程 由于傾斜試卷會影響之后的圖像處理算法有效性,所以要對試卷做直線校正。在得到了試卷卷面后,通過霍夫直線檢測返回的傾斜角度得到仿射變換矩陣,將原始圖像乘以變換矩陣得到變換后圖像。由于數字圖像像素點的坐標均為整數,在經過變換后卻有可能得到不是整數的點,因此要對圖像進行插值重采樣。插值方法主要有:最近鄰插值、雙線性插值、立方插值法等,綜合實時性與準確性考慮,該文選用雙線性插值法,在x、y方向分別進行兩次插值,由周圍四個近鄰像素點得到待采樣點的灰度值。經過仿射變換后得到的試卷已經被校正為水平。 之后,在HSV色彩空間中得到紅色字跡圖層,如1.1節所述,遍歷試卷中每一個像素點,判斷其HSV的值是否在紅色的區間內,保留符合區間條件的像素點,令其他不符合條件的點灰度值為255,得到紅色字跡:包括題號標記和批改痕跡[10],對該圖層進行一系列預處理,包括:二值化、取反、降噪[11]、膨脹[12]。 二值化處理是圖像處理中一種常見的處理方法。二值化圖像中,一個像素點的灰度值要么是0,要么是255。通過二值化可以將圖像中像素接近白色的批改痕跡從背景中取出來。文中選定閾值為110,對圖像進行二值化處理,處理過程如式(5)所示,即(i,j)點處像素的灰度值為I(i,j),當I(i,j)>110時,令I(i,j)=255;當I(i,j)<110時,令I(i,j)=0。 (5) 去噪采用中值濾波的方法。中值濾波是一種非線性的濾波方法,其原理是將某一點的灰度值用其某鄰域的中值代替,從而去除圖像中灰度極值點。與均值濾波比較而言,中值濾波既能很好地保留試卷中的細節,對椒鹽噪聲的抑制效果也較好。 膨脹操作對改善圖片的質量具有顯著作用[13]。由圖5可以看到,未經膨脹操作的批改痕跡有許多斷點,并且批改痕跡特征不明顯,十分不利于進一步的處理,而經過膨脹處理的批改痕跡內部已經消除了斷點,并且特征變得顯著,便于對批改痕跡進行識別分類。 圖5 膨脹前后對比 對提取出的經過二值化和取反的題號標記層進行處理,逐行掃描圖像,得到第i行像素的灰度和S(i): S(i)=I(i,1)+I(i,2)+…+I(i,cols) (6) rows和cols分別為圖像行數和列數,I(i,j)是(i,j)點的灰度值,認為在滿足如下條件時表示第i行開始試題號的標記,也即得到了一道題目的上界。 S(i)=0;S(i+1)>0 S(i+2)>0 通過上述處理檢測到每一道題目的上界,作為切割的依據,每兩個題號上界之間為完整的題目區域,同時也是切割每道題目對應的批改痕跡的標志。其中,最后一道題的題號標記的上界到試卷底部進行切割得到最后一道題對應的題目區域與批改痕跡。 獲得切割后的批改痕跡后,運用深度學習網絡自動提取圖片的抽象特征和語義特征,對批改痕跡進行分類。該文搭建了批改痕跡的數據集對網絡進行訓練,數據集由true、half、wrong三類共2 592張手寫批改痕跡組成,并對圖片標記相應的類別標簽。圖像均通過resize函數統一大小,隨后將這些統一大小的圖片送入深度殘差網絡進行訓練,網絡通過給圖片分類,并在分類的同時進行反饋修正,以逐漸減小分類錯誤率。 2.2.1 數據集搭建 首先搭建一個批改痕跡數據集,數據集由true、half、wrong三類共864張手寫批改痕跡組成,并標記相應的類別標簽使用resize函數對圖片進行處理,將圖片統一為224*224的尺寸。對這864張圖片做圖像增強,循環隨機讀取數據集中的數據,使用random_flip_left_right()函數隨機左右翻轉、random_flip_up_down()函數隨機上下翻轉、random_brightness()函數隨機調節亮度,再將所得圖片輸入到原數據集中,將數據集增大3倍,總計2 592張圖片。 2.2.2 深度殘差網絡(ResNet) 深度殘差網絡(ResNet)由何凱明于2015年提出[14],以152層的網絡結構模型在素有國際“計算機視覺奧林匹克”之稱的ImageNet2015上獲得第一名,將錯誤率降低到了3.75%。ResNet網絡參考了VGG19[15-16]網絡,它在普通網絡的基礎上,每兩層增加一個短路機制,插入捷徑連接,形成殘差學習,利用更深層次的網絡解決了網絡性能隨著深度的增加而退化的問題。當輸入和輸出的尺寸相同時,可以直接利用式(7)實現恒等捷徑連接。 H(x)=F(x,wi)+x (7) 其中,F(x)為殘差映射,令H(x)=F(x)+x為理想映射。通過將理想的原始函數H(x)轉變為擬合殘差函數F(x),把輸出變為擬合和輸入的疊加。 該文利用Caffe框架構建網絡模型,在網絡層數和訓練參數上都有明顯的優勢。基于ResNet34設計網絡結構,網絡的輸入是224*224大小的圖片,第一個卷積層conv1的參數是7*7的卷積核,步長設置為2,余下卷積層為三個3*3,channel為64的conv_2、4個3*3,channel為128的conv_3、6個3*3,channel為256的conv_4和3個3*3,channel為512的conv_5,與最后的平均池化層和全連接層,共34層組成。其中每層的輸入輸出信道長度均相同,而且每一個卷積層之后都需要設置一個BatchNorm層,可以增加模型的容納能力。由于每次輸入的圖片具有相同的尺寸,所以在每層采用時都使用相同數量的濾波器,選用Relu函數作為模型的激活函數,在步幅為2的卷積層直接執行下采樣。最終的輸出結果為3類,所以將最后全連接層的個數設置為3,回歸輸出的結果為圖片的類別。 2.2.3 獲取分類結果 將通過圖像處理獲得的批改痕跡圖像統一大小送入ResNet網絡,然后結合閾值來劃分為不同的種類,獲取分類結果。為了測試ResNet對批改痕跡分類的準確性,該文對238個隨機樣本進行分類,將結果進行統計,如圖6所示。可以看出,分類的正確率達到了99.16%,較為準確,分類錯誤的可能原因是半對的批改痕跡中叉號太小,與正確的勾號過于接近,因此分類錯誤。 圖6 樣本測試結果 為了驗證整個系統的有效性,選取數學試卷作為樣本,首先通過圖像處理實現題目切割,得到每一題的批改痕跡,將批改痕跡送入ResNet網絡,通過ResNet網絡判斷其批改痕跡類型,依此將對應的題目分類至正確、錯誤、半對三個文件夾中。圖7展示了圖像處理及切割效果,可以看出切割出的圖像準確清晰,批改痕跡的分類結果也是正確的,題目成功進入三個不同的文件夾,從而完成此題目智能分類系統。 圖7 處理及切割效果 實驗結果證明了該算法的有效性,可以準確快速地切割題目、提取批改痕跡、判斷批改痕跡正誤、分類保存題目,可以幫助學生快速整理做過的試卷。 研究并實現了一個基于圖像處理與深度學習的智能試卷整理系統。通過圖像處理切割出題目和批改痕跡,用ResNet網絡判斷批改痕跡類別,并最終獲得正確、錯誤、半對三個題庫。實驗結果表明,與現存的手動框選題目以及專用試卷等方法相比,該系統能夠方便學生整理試卷錯題,效率更高,具有很高的實用價值。文中所采用的算法有效易行,處理時間短。下一步工作是開發更具魯棒性、適用于多種學科試卷處理的算法與試卷整理系統。
1.2 圖像膨脹


1.3 霍夫直線檢測
2 系統實現

2.1 題目切割




2.2 基于ResNet的批改痕跡圖像分類

3 實驗結果



4 結束語