王耀宗, 張易誠(chéng), 康宇哲, 沈 煒
(浙江理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 浙江 杭州 310018)
紙質(zhì)試卷作為教學(xué)考試的重要載體,被廣泛應(yīng)用于各種考試中。一直以來(lái),試卷分?jǐn)?shù)的統(tǒng)計(jì)主要有兩種方式:一種是人工閱卷,教師通過(guò)口算或計(jì)算器對(duì)試卷分?jǐn)?shù)進(jìn)行匯總;另一種是使用特定的答題卡,通過(guò)光標(biāo)閱讀器對(duì)答題卡進(jìn)行掃描,進(jìn)而統(tǒng)計(jì)分?jǐn)?shù)。前者不僅需要消耗大量的人力和時(shí)間,而且效率低、錯(cuò)誤率高,后者需要制作特定的答題卡且光標(biāo)閱讀器價(jià)格昂貴,無(wú)法大規(guī)模應(yīng)用[1]。
隨著卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,數(shù)字識(shí)別技術(shù)在教學(xué)考試中得到了廣泛應(yīng)用。周鐵軍等[2]基于Keras構(gòu)建了可以識(shí)別分?jǐn)?shù)為70分以內(nèi)的卷積神經(jīng)網(wǎng)絡(luò),但該網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率不高,只有94%。仝夢(mèng)園等[3]提出了一種融合貝葉斯分類器的分?jǐn)?shù)識(shí)別算法,該算法雖然有著較高的識(shí)別率,但是無(wú)法準(zhǔn)確地定位題目的分?jǐn)?shù),存在漏檢風(fēng)險(xiǎn)。
針對(duì)上述問(wèn)題,本文采用一種帶有特殊分值框的試卷,并在此基礎(chǔ)上提出了一種基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的試卷分?jǐn)?shù)識(shí)別方法。該方法分為兩個(gè)部分,第一部分基于YOLO目標(biāo)檢測(cè)算法對(duì)該分值框進(jìn)行定位,并引入膨脹卷積模塊豐富感受野、優(yōu)化調(diào)整邊框損失函數(shù)、提高收斂速度[4]。第二部分基于ResNet卷積神經(jīng)網(wǎng)絡(luò)對(duì)分?jǐn)?shù)進(jìn)行識(shí)別,并融合注意力機(jī)制提高特征提取能力[5]。實(shí)驗(yàn)結(jié)果表明,該方法可以準(zhǔn)確高效地識(shí)別試卷圖像中的分?jǐn)?shù),大幅度降低人工閱卷的工作量。
1.1.1 YOLOv5模型結(jié)構(gòu)
相較于R-CNN(區(qū)域卷積神經(jīng)網(wǎng)絡(luò))、Fast R-CNN(快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò))等二階段(Two Stage)算法,作為一階段(One Stage)算法的YOLO有著更快的檢測(cè)速度,并且隨著YOLO版本的不斷迭代,其準(zhǔn)確率也有了很大的提高[6-7]。本文基于YOLOv5目標(biāo)檢測(cè)算法實(shí)現(xiàn)對(duì)分?jǐn)?shù)框的定位,該算法結(jié)構(gòu)由輸入端、Backbone(骨干)、Neck(瓶頸)和Head(頭部)四個(gè)部分組成,如圖1所示。
圖1 YOLOv5結(jié)構(gòu)圖Fig.1 The structure of YOLOv5
輸入端使用Mosaic數(shù)據(jù)增強(qiáng)方式隨機(jī)選取數(shù)據(jù)集中的四張?jiān)紙D片進(jìn)行隨機(jī)裁剪、縮放和排布,拼接為一張圖片作為輸入,這樣不僅可以大幅度豐富數(shù)據(jù)集,還能豐富目標(biāo)物體的尺度,提高整個(gè)網(wǎng)絡(luò)的魯棒性。
Backbone中使用了Focus結(jié)構(gòu)和C3結(jié)構(gòu)。Focus使用切片操作把一個(gè)大尺寸特征圖拆分成多個(gè)小尺寸特征圖,然后進(jìn)行Concat(拼接)操作。C3是基于CSP結(jié)構(gòu)將原本的殘差結(jié)構(gòu)分為兩個(gè)部分,一部分僅經(jīng)過(guò)一個(gè)基本的卷積運(yùn)算模塊,另一部分使用了多個(gè)殘差塊堆疊,最后將兩個(gè)部分進(jìn)行Concat操作,這樣不僅可以實(shí)現(xiàn)更豐富的梯度組合,還能在增強(qiáng)網(wǎng)絡(luò)特征提取能力的同時(shí),大幅度減少參數(shù)量[8]。
Neck中使用了特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,FPN)和路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PAN)相結(jié)合的結(jié)構(gòu)[9-10]。FPN自頂向下通過(guò)下采樣將高階的強(qiáng)語(yǔ)義特征和低層的位置信息融合,而PAN自底向上通過(guò)上采樣將低層的強(qiáng)定位特征傳遞到高層,最終實(shí)現(xiàn)高層特征與底層特征相互融合和相互補(bǔ)充,豐富了模型的分類和定位能力。
Head中使用三個(gè)Detect檢測(cè)器分別對(duì)不同尺寸的特征圖進(jìn)行檢測(cè),確保了網(wǎng)絡(luò)對(duì)大目標(biāo)和小目標(biāo)都有不錯(cuò)的檢測(cè)效果。
1.1.2 YOLOv5融合膨脹卷積模塊
膨脹卷積(Dilated Convolution)通過(guò)在標(biāo)準(zhǔn)的卷積核中注入空洞增加模型的感受野[11]。相比常規(guī)的卷積操作,膨脹卷積通過(guò)膨脹率控制卷積核的膨脹程度。感受野的計(jì)算公式如下:
RFi=RFi-1+(k-1)×s
(1)
其中,RFi是當(dāng)前感受野,RFi-1是上一層感受野,k是卷積核的尺寸,s是步長(zhǎng)。
本文使用膨脹率為3和5、卷積核大小為3×3的膨脹卷積對(duì)特征圖進(jìn)行卷積操作,然后將兩個(gè)輸出特征圖拼接構(gòu)成膨脹卷積模塊(Dilated Convolution Module,DCM),如圖2所示。目標(biāo)檢測(cè)為了保證感受野需要依靠下采樣,但是下采樣會(huì)導(dǎo)致圖像的位置信息丟失,因此本文在YOLOv5中SPPF(Spatial Pyramid Pooling Fast)層后添加一個(gè)該模塊的分支,并將輸出特征圖送入第三個(gè)Detect檢測(cè)器,以此豐富不同感受野的上下文信息。
圖2 膨脹卷積模塊Fig.2 Dilated convolution module
1.1.3 改進(jìn)邊界回歸損失函數(shù)
YOLOv5使用CIoU作為衡量邊框損失的函數(shù),如公式(2)和公式(3)所示,b和bgt分別代表預(yù)測(cè)框和真實(shí)框,IoU為預(yù)測(cè)框和真實(shí)框的交并比,ρ2(b,bgt)表示預(yù)測(cè)框與真實(shí)框中心點(diǎn)的歐式距離,c表示預(yù)測(cè)框與真實(shí)框的最小外接矩形的對(duì)角線距離。
(2)
(3)
ZHANG等[12]在CIoU的基礎(chǔ)上提出了EIoU損失函數(shù)。EIoU不僅考慮了CIoU已經(jīng)涉及的重疊面積和中心點(diǎn)距離的影響,還考慮了邊長(zhǎng)的影響,表達(dá)式如下:
LEIoU=LIoU+Ldis+Lasp
(4)
cw和ch是包含預(yù)測(cè)框和真實(shí)框的最小閉包區(qū)域的寬度和高度,w和wgt表示預(yù)測(cè)框與真實(shí)框的寬度,ρ2(w,wgt)表示預(yù)測(cè)框與真實(shí)框?qū)挾鹊臍W式距離,h和hgt表示預(yù)測(cè)框與真實(shí)框的高度,ρ2(h,hgt)表示預(yù)測(cè)框與真實(shí)框高度的歐式距離。
GEVORGYAN[13]提出了SIoU損失函數(shù),SIoU考慮了角度損失、距離損失、形狀損失和IoU損失。角度損失的示意圖(圖3)和表達(dá)式如下:
圖3 角度損失圖Fig.3 Diagram of angle cost
(5)
(6)
(7)
(8)
圖4 形狀損失圖Fig.4 Diagram of shape cost
(9)
(10)
其中,Ω為形狀損失,θ為超參數(shù),w和h為預(yù)測(cè)框的寬和高,wgt和hgt為真實(shí)框的寬和高。距離損失的表達(dá)式如下。
(11)
(12)
其中,Δ為距離損失,cw和ch為預(yù)測(cè)框和真實(shí)框的最小外接矩形的寬和高。最終SIoU損失函數(shù)表達(dá)式如下:
(13)
本文分別使用EIoU和SIoU替換原始的CIoU,并在相同數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn)驗(yàn)證。
1.2.1 ResNet模型結(jié)構(gòu)
相較于LeNet和VGG等相對(duì)淺層的網(wǎng)絡(luò),ResNet使用了殘差塊結(jié)構(gòu),如圖5所示,該結(jié)構(gòu)將特征矩陣X進(jìn)行卷積得到F(X),然后通過(guò)shortcut(短接)分支傳遞特征矩陣X,再將X和F(X)相加后進(jìn)行激活[14-15]。ResNet網(wǎng)絡(luò)解決了網(wǎng)絡(luò)過(guò)深時(shí)的梯度爆炸和梯度消失的問(wèn)題,使得網(wǎng)絡(luò)層數(shù)可達(dá)百層。
圖5 殘差塊結(jié)構(gòu)圖Fig.5 Residual block structure diagram
本文基于ResNet18卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)分?jǐn)?shù)識(shí)別,該網(wǎng)絡(luò)主要由基本殘差塊組成。圖6(a)為基本殘差塊Ⅰ,它包含一條直線路徑和一條跳躍路徑。直線路徑由兩個(gè)3×3的卷積層和兩個(gè)批量歸一化(Batch Normalization,BN)層組成,中間使用ReLU函數(shù)激活。跳躍路徑則直接將輸入特征圖與直線路徑的輸出相加。最后將相加結(jié)果通過(guò)ReLU函數(shù)激活后輸出。圖6(b)是基本殘差塊Ⅱ,它和普通殘差塊結(jié)構(gòu)相似,區(qū)別是跳躍路徑增加了一個(gè)1×1的卷積層和一個(gè)BN層,用于對(duì)輸入特征圖進(jìn)行下采樣。
(a)基本殘差塊Ⅰ
(b)基本殘差塊Ⅱ
ResNet18結(jié)構(gòu)如圖7所示,輸入圖像先進(jìn)行7×7的卷積和最大池化操作,然后經(jīng)過(guò)8個(gè)基本殘差塊進(jìn)行特征提取,最后經(jīng)過(guò)平均池化和全連接輸出預(yù)測(cè)概率。
圖7 ResNet結(jié)構(gòu)圖Fig.7 The structure diagram of ResNet
1.2.2 ResNet融合注意力機(jī)制
當(dāng)我們看到一張圖像時(shí),大腦會(huì)優(yōu)先注意到圖像中的重點(diǎn)信息,因而可能會(huì)忽視其他部分。注意力機(jī)制就是模仿人類大腦處理圖像信息產(chǎn)生的,其可以使網(wǎng)絡(luò)自動(dòng)關(guān)注到一些重點(diǎn)區(qū)域。
卷積注意力模塊(Convolutional Block Attention Module,CBAM)是一種輕量的注意力模塊,結(jié)構(gòu)如圖8所示,其包括通道注意力模塊(Channel Attention Module,CAM)和空間注意力模塊(Spatial Attention Module,SAM)[16]。本文將CBAM融合到ResNet網(wǎng)絡(luò)中,在網(wǎng)絡(luò)的第二層和倒數(shù)第二層加入CBAM,以此提高該網(wǎng)絡(luò)在通道和空間上的特征提取能力。
圖8 CBAM結(jié)構(gòu)圖Fig.8 The structure diagram of CBAM
本文所采用的試卷掃描圖像示例如圖9所示,試卷包含一種特殊的分值框,該分值框由兩個(gè)部分組成,上半部分是可識(shí)別出題號(hào)信息的二維碼,下半部分可供老師填寫分?jǐn)?shù)。除此之外,可通過(guò)試卷左上角的二維碼識(shí)別學(xué)生的學(xué)號(hào)信息,這樣可將學(xué)生的學(xué)號(hào)、題號(hào)和分?jǐn)?shù)信息關(guān)聯(lián)起來(lái)。本文共使用1 000張以24位、150×150 dpi格式保存的浙江理工大學(xué)若干課程試卷掃描圖像作為數(shù)據(jù)集,并按照1∶1的比例將其隨機(jī)分為訓(xùn)練集和驗(yàn)證集。
(a)試卷第1頁(yè)
(b)試卷第2頁(yè)圖9 試卷掃描圖像
本實(shí)驗(yàn)所使用的CPU為Intel(R) Core(TM) i5-10400 CPU @ 2.90 GHz,操作系統(tǒng)為Ubuntu 20.04,GPU為 NVIDIA GeForce GTX1060,軟件環(huán)境為Pytorch1.12和Python3.7等。
為了選擇性能更好的IoU損失函數(shù),在YOLOv5網(wǎng)絡(luò)中基于相同數(shù)據(jù)集分別使用CIoU、EIoU和SIoU對(duì)模型進(jìn)行訓(xùn)練,結(jié)果如表1和圖10所示,其中mAP@0.5∶0.95表示IoU從0.5一直取值到0.95,每隔0.05計(jì)算一次mAP的值。從圖10中可以看出,相較于CIoU,EIoU和SIoU的收斂速度更快且EIoU和SIoU在mAP@0.5∶0.95指標(biāo)上分別比CIoU高了1.1%和1.0%,因此最終選擇EIoU作為邊界框的損失函數(shù)。
表 1 不同IoU的實(shí)驗(yàn)數(shù)據(jù)
為了驗(yàn)證膨脹卷積模塊(DCM)的有效性,研究人員又使用了相同數(shù)據(jù)集分別對(duì)原始YOLOv5和融合膨脹卷積模塊的YOLOv5進(jìn)行實(shí)驗(yàn),并采用mAP@0.5∶0.95作為評(píng)價(jià)指標(biāo),結(jié)果如表2所示,YOLOv5-EIoU-DCM組合相較于YOLOv5-CIoU組合和YOLOv5-CIoU-DCM組合分別有1.7%和1.1%的提升,證明了該模塊的有效性,因此使用該組合對(duì)試卷圖像中的分值框進(jìn)行識(shí)別,試卷的識(shí)別效果如圖11所示。
圖10 不同IoU方法的損失曲線Fig.10 Loss curve of different IoU methods
表 2 YOLOv5實(shí)驗(yàn)數(shù)據(jù)
(a)試卷第1頁(yè)
(b)試卷第2頁(yè)
本文使用ResNet卷積神經(jīng)網(wǎng)絡(luò)對(duì)試卷中分?jǐn)?shù)進(jìn)行識(shí)別。圖像共有11個(gè)分類,即0~9共計(jì)10個(gè)分類和空白分類。因?yàn)槭謱憯?shù)字總是會(huì)有一些傾斜角度,并且掃描的試卷難免會(huì)有一些噪聲,所以需要對(duì)圖像進(jìn)行預(yù)處理,將圖像在(-30°,30°)內(nèi)隨機(jī)旋轉(zhuǎn)一定角度,并添加了10%的椒鹽噪聲。實(shí)驗(yàn)結(jié)果如表3所示,相較于原始的ResNet網(wǎng)絡(luò),融合了CBAM的ResNet網(wǎng)絡(luò)雖然FPS(幀率)降低了6.6%,但是準(zhǔn)確率提高了0.4%。
表 3 ResNet實(shí)驗(yàn)數(shù)據(jù)
為了驗(yàn)證改進(jìn)后網(wǎng)絡(luò)的識(shí)別效果,研究人員分別使用4種不同的網(wǎng)絡(luò)組合對(duì)試卷掃描圖像進(jìn)行識(shí)別。結(jié)果如表4所示,相較于原始的YOLOv5-CIoU與ResNet的組合,YOLOv5-EIoU-DCM與ResNet-CBAM的組合雖然FPS降低了約7.7%,但準(zhǔn)確率提高了2.2%,證明了改進(jìn)模型的有效性。
表 4 實(shí)驗(yàn)結(jié)果數(shù)據(jù)
針對(duì)試卷分?jǐn)?shù)的統(tǒng)計(jì)問(wèn)題,本文采用一種帶有特殊分值框的試卷,并提出一種基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的分?jǐn)?shù)識(shí)別方法。該方法首先基于YOLOv5目標(biāo)檢測(cè)算法對(duì)試卷中的分值框進(jìn)行定位,然后基于ResNet卷積神經(jīng)網(wǎng)絡(luò)對(duì)分?jǐn)?shù)進(jìn)行識(shí)別。研究人員在YOLOv5中引入了膨脹卷積模塊并優(yōu)化調(diào)整了邊框損失函數(shù),相較于原始的YOLOv5,YOLOv5-EIoU-DCM組合在mAP指標(biāo)上有1.7%的提升。此外,本文研究將CBAM融入ResNet中,相較于原始ResNet,融合了CBAM的ResNet準(zhǔn)確率有0.4%的提高。最終結(jié)果表明,改進(jìn)模型對(duì)題目分?jǐn)?shù)的識(shí)別率更加優(yōu)秀,識(shí)別準(zhǔn)確率為99.2%,可以準(zhǔn)確且高效地識(shí)別試卷圖像中的分?jǐn)?shù)。