趙晟然 伍常亮
摘 要:為了解決傳統(tǒng)紙質(zhì)試卷人工統(tǒng)分過(guò)程存在工作量大、錯(cuò)誤率高、統(tǒng)分效率低等問(wèn)題,設(shè)計(jì)開(kāi)發(fā)一款基于SVM的智能統(tǒng)分自學(xué)習(xí)系統(tǒng)。該系統(tǒng)由前端用戶界面、后臺(tái)手寫(xiě)分?jǐn)?shù)識(shí)別子系統(tǒng)和自學(xué)習(xí)子系統(tǒng)構(gòu)成。系統(tǒng)采用C#編程語(yǔ)言和Microsoft Visual Studio軟件設(shè)計(jì)前端用戶界面;使用Matlab作為系統(tǒng)運(yùn)算后臺(tái),并構(gòu)建SVM多分類器識(shí)別手寫(xiě)分?jǐn)?shù);使用C#編程語(yǔ)言設(shè)置定時(shí)器,在系統(tǒng)空閑時(shí)間定時(shí)啟動(dòng)Matlab執(zhí)行自學(xué)習(xí)程序。經(jīng)過(guò)MNIST數(shù)據(jù)集的訓(xùn)練和測(cè)試,SVM多分類器的測(cè)試精度達(dá)到97.74%。完成系統(tǒng)設(shè)計(jì)開(kāi)發(fā)后,使用試卷統(tǒng)分欄圖片測(cè)試系統(tǒng)。測(cè)試結(jié)果表明,該系統(tǒng)可以有效實(shí)現(xiàn)智能識(shí)別、統(tǒng)分欄內(nèi)手寫(xiě)分?jǐn)?shù)匯總以及自學(xué)習(xí)功能,并將運(yùn)行結(jié)果清晰準(zhǔn)確地顯示在前端用戶界面上。
關(guān)鍵詞:SVM;手寫(xiě)數(shù)字識(shí)別;自學(xué)習(xí)系統(tǒng);統(tǒng)分系統(tǒng)
DOI:10. 11907/rjdk. 191927 開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2019)008-0127-04
Design and Implementation of Intelligent Unified Self-learning System
Based on SVM
ZHAO Sheng-ran, WU Chang-liang
(College of Mechanical and Electrical Engineering,Kunming University of Science and Technology, Kunming 650500,China)
Abstract: In order to solve the problems of traditional paper test papers in the manual integration process, such as large workload, high error rate and low efficiency, this paper designs and develops an intelligent unified self-learning system based on SVM. The system consists of a front-end user interface, a background handwritten score recognition subsystem, and a self-learning subsystem. The system uses C# programming language and Microsoft Visual Studio software to design the front-end user interface, uses Matlab as the system operation background, and builds SVM multi-classifier to recognize the handwritten score, C# programming language is used to set the timer and Matlab to perform self-learning in the system idle time is started. After training and testing of the MNIST dataset, the SVM multi-classifier has a test accuracy of 97.74%. After completing the system design and development, use the test paper system to test the system. The test results show that the system can effectively realize the functions of intelligent recognition, handwritten scores in the presidential column and self-learning, and display the running results clearly and accurately in the front-end user interface.
Key Words: SVM; handwritten digit recognition; self-learning system; unified system
作者簡(jiǎn)介:趙晟然(1993-),男,昆明理工大學(xué)機(jī)電工程學(xué)院碩士研究生,研究方向?yàn)槠髽I(yè)集成及信息化、機(jī)器學(xué)習(xí);伍常亮(1995-),男,昆明理工大學(xué)機(jī)電工程學(xué)院碩士研究生,研究方向?yàn)槠髽I(yè)集成及信息化、機(jī)器學(xué)習(xí)。
0 引言
傳統(tǒng)紙質(zhì)試卷以其使用方便、成本低廉等優(yōu)點(diǎn),在教育領(lǐng)域得到了廣泛應(yīng)用。同時(shí),試卷的人工批改、手動(dòng)統(tǒng)分等工作貫穿其整個(gè)使用過(guò)程。試卷卷頭的統(tǒng)分欄常由分項(xiàng)得分欄和總分欄構(gòu)成,最常見(jiàn)的統(tǒng)分方法是將試卷題目的分項(xiàng)得分登記到對(duì)應(yīng)的分項(xiàng)得分表中,再依靠人工匯總統(tǒng)分欄內(nèi)的分項(xiàng)分?jǐn)?shù),最終得到試卷總分并將其手動(dòng)填入總分欄。此種方法在實(shí)施過(guò)程中需要大量依靠人工,人的影響因素較為明顯,在工作量大時(shí)容易出現(xiàn)效率低、錯(cuò)漏多等問(wèn)題。
分析試卷人工統(tǒng)分過(guò)程,其本質(zhì)就是一個(gè)識(shí)別手寫(xiě)數(shù)字并將識(shí)別結(jié)果匯總的過(guò)程。隨著人工智能技術(shù)的不斷發(fā)展,使用手寫(xiě)識(shí)別技術(shù)代替人工已經(jīng)不是難題。手寫(xiě)數(shù)字識(shí)別屬于光學(xué)字符識(shí)別技術(shù)(OCR)的分支,本質(zhì)是圖片分類問(wèn)題,其原理是將阿拉伯?dāng)?shù)字0~9分為相對(duì)應(yīng)的10個(gè)類別,進(jìn)而對(duì)圖片進(jìn)行分類,最終選取與標(biāo)準(zhǔn)樣本數(shù)字具有最大相似度的數(shù)字作為匹配結(jié)果。手寫(xiě)數(shù)字識(shí)別相關(guān)研究一直是領(lǐng)域熱點(diǎn)問(wèn)題。2011年,吳忠[1]等提出一種基于圖像識(shí)別技術(shù)的手寫(xiě)數(shù)字識(shí)別方法,提高了數(shù)字識(shí)別率和實(shí)時(shí)性;2012年,焦微微[2]等提出了一種用BP神經(jīng)網(wǎng)絡(luò)識(shí)別手寫(xiě)數(shù)字的方法,識(shí)別效果較好。支持向量機(jī)(Support Vector Machine,SVM)作為一種以統(tǒng)計(jì)學(xué)理論為基礎(chǔ)的機(jī)器學(xué)習(xí)算法,可以有效解決非線性、高維數(shù)等問(wèn)題。經(jīng)過(guò)不斷改進(jìn)和發(fā)展,SVM在人像識(shí)別、手寫(xiě)字符識(shí)別等模式識(shí)別領(lǐng)域得到了廣泛應(yīng)用。多年來(lái)有關(guān)SVM的研究從未間斷,1995年Cortes[3]等首次提出SVM,數(shù)據(jù)訓(xùn)練結(jié)果表明SVM在解決非線性及高維數(shù)問(wèn)題中表現(xiàn)出許多特有優(yōu)勢(shì),具有優(yōu)秀的泛化能力;2017年Vapnik[4]等對(duì)SVM和神經(jīng)網(wǎng)絡(luò)中的知識(shí)轉(zhuǎn)移進(jìn)行了前瞻性研究。此間許多學(xué)者展開(kāi)了對(duì)SVM的相關(guān)研究并將其靈活運(yùn)用于手寫(xiě)字符識(shí)別領(lǐng)域。2005年,蒙庚祥[5]等闡述了支持向量機(jī)技術(shù)和手寫(xiě)數(shù)字識(shí)別技術(shù)發(fā)展現(xiàn)狀,基于SVM進(jìn)行手寫(xiě)體數(shù)字識(shí)別系統(tǒng)設(shè)計(jì);2006年,吳琳琳[6]將支持向量機(jī)應(yīng)用于手寫(xiě)數(shù)字識(shí)別,嘗試開(kāi)發(fā)了SVM. HDR軟件系統(tǒng),有效提高了手寫(xiě)數(shù)字識(shí)別精度;2010年,李文趨[7]以手寫(xiě)數(shù)字樣本圖像的像素點(diǎn)作為輸入對(duì)SVM進(jìn)行訓(xùn)練,獲得了最佳參數(shù)并取得了較高識(shí)別率;2013年,石會(huì)芳[8]通過(guò)研究SVM 核函數(shù)的參數(shù)優(yōu)化方法,提出基于改進(jìn)的 PSO-LSSVM 的手寫(xiě)數(shù)字識(shí)別方法,有效提高了數(shù)字識(shí)別準(zhǔn)確度。
隨著人工智能技術(shù)的不斷發(fā)展,近幾年將SVM應(yīng)用于手寫(xiě)數(shù)字識(shí)別技術(shù)的研究逐漸深入。2017年,李陽(yáng)陽(yáng)等[9]發(fā)明了一種基于卷積神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)的手寫(xiě)數(shù)字識(shí)別方法,將卷積神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)相結(jié)合提高手寫(xiě)數(shù)字識(shí)別準(zhǔn)確率;2018年,Sharma等[10]設(shè)計(jì)了基于SVM的字符識(shí)別系統(tǒng),同年郭偉林等[11]進(jìn)行了多分類支持向量機(jī)應(yīng)用的研究與探索,并將其與手寫(xiě)數(shù)字識(shí)別相結(jié)合;2019年,胡霖[12]提出了一種基于改進(jìn)的C-支持向量機(jī)的手寫(xiě)體數(shù)字高識(shí)別率方法,并通過(guò)實(shí)驗(yàn)證明了該方法有效可行。
雖然SVM在手寫(xiě)數(shù)字識(shí)別領(lǐng)域得到了廣泛應(yīng)用,但鮮少將其應(yīng)用于試卷統(tǒng)分欄手寫(xiě)分?jǐn)?shù)的識(shí)別。為了解決傳統(tǒng)紙質(zhì)試卷統(tǒng)分過(guò)程存在依賴人工識(shí)別和匯總分?jǐn)?shù)所導(dǎo)致的效率低、易出錯(cuò)等問(wèn)題,本文設(shè)計(jì)并實(shí)現(xiàn)了一款基于SVM進(jìn)行試卷智能統(tǒng)分的自學(xué)習(xí)系統(tǒng)。
1 系統(tǒng)需求分析
該系統(tǒng)應(yīng)具備識(shí)別準(zhǔn)確、響應(yīng)迅速、自學(xué)習(xí)等功能,可實(shí)現(xiàn)對(duì)統(tǒng)分欄圖片內(nèi)的手寫(xiě)分?jǐn)?shù)進(jìn)行正確識(shí)別和智能統(tǒng)分;對(duì)于用戶反饋的識(shí)誤數(shù)據(jù)文件,系統(tǒng)后臺(tái)可在設(shè)置的空閑時(shí)間內(nèi)進(jìn)行自學(xué)習(xí),使系統(tǒng)在自學(xué)習(xí)過(guò)程中不斷自我完善和提高;同時(shí)要求系統(tǒng)運(yùn)行穩(wěn)定,魯棒性強(qiáng),能夠有效滿足使用需求。
2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
基于SVM的智能統(tǒng)分自學(xué)習(xí)系統(tǒng)由前端用戶界面、后臺(tái)手寫(xiě)分?jǐn)?shù)識(shí)別子系統(tǒng)和自學(xué)習(xí)子系統(tǒng)構(gòu)成。系統(tǒng)前端用戶界面需要有圖片導(dǎo)入鍵、清除鍵、保存鍵、識(shí)別鍵并能顯示后臺(tái)分?jǐn)?shù)識(shí)別系統(tǒng)識(shí)別結(jié)果;后臺(tái)分?jǐn)?shù)識(shí)別系統(tǒng)需具備圖片預(yù)處理、手寫(xiě)數(shù)字準(zhǔn)確識(shí)別和智能統(tǒng)分功能;自學(xué)習(xí)系統(tǒng)要能將用戶反饋的識(shí)錯(cuò)數(shù)字保存下來(lái),有批次地在服務(wù)器空閑時(shí)間加入新樣本重新訓(xùn)練分類器。
經(jīng)過(guò)需求分析確定該系統(tǒng)體系結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)體系結(jié)構(gòu)
3 前端設(shè)計(jì)與實(shí)現(xiàn)
C#作為一門(mén)現(xiàn)代、通用、面向?qū)ο蟮木幊陶Z(yǔ)言,可以產(chǎn)生高效率的程序[13];Microsoft Visual Studio軟件可以幫助開(kāi)發(fā)者在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)過(guò)程中兼顧美感與功能[14]。本文使用C#編程語(yǔ)言,結(jié)合Microsoft Visual Studio軟件設(shè)計(jì)系統(tǒng)前端用戶界面。
前端用戶界面包含了選擇顏色、畫(huà)筆精度、設(shè)置圖片大小、導(dǎo)入圖片以及對(duì)圖片進(jìn)行清除、保存、識(shí)別的功能鍵。用戶可以點(diǎn)擊“導(dǎo)入”鍵導(dǎo)入需要識(shí)別的試卷卷頭統(tǒng)分欄圖片,點(diǎn)擊“識(shí)別”鍵識(shí)別統(tǒng)分欄中各分項(xiàng)得分。若用戶發(fā)現(xiàn)導(dǎo)入錯(cuò)誤,可以點(diǎn)擊“清除”鍵清除當(dāng)前圖片,便于重新選擇圖片。同時(shí)在顯示框下方設(shè)置統(tǒng)分欄顯示區(qū)域,清晰、直觀、有序地向用戶展示系統(tǒng)所識(shí)別的分項(xiàng)得分及智能統(tǒng)分結(jié)果。界面整體設(shè)計(jì)簡(jiǎn)潔大方,可以幫助用戶方便地進(jìn)行相關(guān)操作,快速獲取有效信息。
4 后臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
本文采用Matlab作為系統(tǒng)運(yùn)算后臺(tái)。Matlab作為一款功能強(qiáng)大的數(shù)學(xué)軟件,被廣泛應(yīng)用于圖像處理等領(lǐng)域[15]。通過(guò)Matlab對(duì)圖片進(jìn)行處理和分割,有效提取圖片特征,利用其強(qiáng)大的計(jì)算能力完成對(duì)試卷卷頭統(tǒng)分欄圖片的預(yù)處理,并且以欄為單位對(duì)試卷卷頭統(tǒng)分欄圖片進(jìn)行分割。在此基礎(chǔ)上對(duì)分割得到的每個(gè)分?jǐn)?shù)欄內(nèi)分?jǐn)?shù)的小圖片進(jìn)行識(shí)別,最終實(shí)現(xiàn)正確識(shí)別分項(xiàng)得分和智能統(tǒng)分的功能,并將結(jié)果傳送至系統(tǒng)前端界面進(jìn)行顯示。
4.1 試卷統(tǒng)分欄圖像處理過(guò)程
系統(tǒng)中主要涉及對(duì)試卷卷頭統(tǒng)分欄內(nèi)的分?jǐn)?shù)圖片進(jìn)行圖像分割。首先對(duì)前端輸入的圖片進(jìn)行預(yù)處理,此過(guò)程中首先對(duì)圖片進(jìn)行適當(dāng)縮放,然后根據(jù)顏色配比從圖片中提取出分?jǐn)?shù),最后進(jìn)行形態(tài)學(xué)閉運(yùn)算和膨脹運(yùn)算并使用自動(dòng)閾值法對(duì)圖片進(jìn)行二值化處理。圖片預(yù)處理的作用是利用圖像分割技術(shù)將試卷統(tǒng)分欄中的分?jǐn)?shù)整體分割出來(lái),用形態(tài)學(xué)方法將分割得到的圖像進(jìn)行去噪、膨脹、腐蝕等操作,最終得到清晰、無(wú)噪聲、只存在手寫(xiě)分?jǐn)?shù)的圖片[16]。
在得到清晰無(wú)噪的手寫(xiě)分?jǐn)?shù)圖片后,開(kāi)始對(duì)分項(xiàng)得分圖片進(jìn)行分割。本系統(tǒng)采用當(dāng)前主流文本識(shí)別技術(shù)實(shí)現(xiàn)對(duì)試卷頭手寫(xiě)分?jǐn)?shù)的識(shí)別功能,即對(duì)單個(gè)文本進(jìn)行逐步識(shí)別后再加以組合[17]。首先對(duì)預(yù)處理后的圖片提取包絡(luò)矩形,然后判斷并糾正圖片方向并對(duì)圖片進(jìn)行適度增廣,最后利用密度聚類法對(duì)圖片進(jìn)行聚類,根據(jù)密度聚類結(jié)果單獨(dú)提取出單個(gè)數(shù)字的像素點(diǎn),并分別取最小包絡(luò)進(jìn)行保存。
4.2 SVM多分類器構(gòu)建
SVM算法最初是為二值分類問(wèn)題而設(shè)計(jì),當(dāng)處理多類問(wèn)題時(shí),就需要構(gòu)造合適的多類分類器。目前,構(gòu)造SVM多類分類器的方法主要有直接法和間接法。間接法又包括“一對(duì)多”法和“一對(duì)一”法。其中“一對(duì)一”法在處理過(guò)程中無(wú)需重新訓(xùn)練所有的支持向量機(jī),只需重新訓(xùn)練與增加樣本相關(guān)的分類器即可。因此,在單個(gè)模型訓(xùn)練過(guò)程中具有較快速度。
本文結(jié)合系統(tǒng)實(shí)際需要,確定采用“一對(duì)一”方法構(gòu)建多分類支持向量機(jī)。具體做法是在任意兩類樣本之間設(shè)計(jì)一個(gè)支持向量機(jī),對(duì)于k個(gè)類別的樣本,就需要設(shè)計(jì)k(k-1)/2個(gè)支持向量機(jī)。由于該系統(tǒng)需要識(shí)別0~9共10種類別的數(shù)字,即k=10,因此需要構(gòu)建45個(gè)SVM分類器。SVM分類器在分類過(guò)程中的工作原理是:將45個(gè)二分類器分別應(yīng)用于單個(gè)數(shù)字的判別,同時(shí)記錄數(shù)字被判別的次數(shù)[18]。某一個(gè)標(biāo)準(zhǔn)樣本數(shù)字被判別的次數(shù)越多,意味著被識(shí)別數(shù)字與標(biāo)準(zhǔn)樣本數(shù)字間的相似度越大。選取與標(biāo)準(zhǔn)樣本數(shù)字具有最大相似度的數(shù)字作為最終識(shí)別結(jié)果,在完成手寫(xiě)數(shù)字的識(shí)別過(guò)程后,將識(shí)別結(jié)果輸送至前端用戶界面。
4.3 SVM多分類器訓(xùn)練與測(cè)試
本文選取MNIST數(shù)據(jù)集作為初始SVM多分類器的訓(xùn)練集和測(cè)試集。MNIST包含7萬(wàn)張黑底白字手寫(xiě)數(shù)字圖片,其中55 000張為訓(xùn)練集,5 000張為驗(yàn)證集,10 000張為測(cè)試集。其中,訓(xùn)練數(shù)據(jù)集包含60 000個(gè)樣本,測(cè)試數(shù)據(jù)集包含10 000樣本。在 MNIST 數(shù)據(jù)集中的每張圖片由28×28個(gè)像素點(diǎn)構(gòu)成,每個(gè)像素點(diǎn)用一個(gè)灰度值表示。MNIST數(shù)據(jù)集示例圖片如圖2所示。由于樣本量較大,此處選用像素點(diǎn)的分布特征作為支持向量機(jī)的訓(xùn)練數(shù)據(jù),并對(duì)所有樣本進(jìn)行最小包絡(luò)處理以期提高訓(xùn)練效果。測(cè)試結(jié)果表明,用此方法得到的SVM多分類器的測(cè)試精度達(dá)到97.74%,說(shuō)明該SVM多分類器的可信度較高。
圖2 MNIST數(shù)據(jù)集示例圖片
4.4 截圖報(bào)錯(cuò)功能實(shí)現(xiàn)
截圖報(bào)錯(cuò)功能是通過(guò)使用C#編程語(yǔ)言[19],借助Microsoft Visual Studio軟件這一載體,結(jié)合系統(tǒng)的前端用戶界面實(shí)現(xiàn)。當(dāng)系統(tǒng)的手寫(xiě)數(shù)字識(shí)別結(jié)果出現(xiàn)錯(cuò)誤時(shí),用戶可以根據(jù)識(shí)別出錯(cuò)的具體內(nèi)容,將識(shí)錯(cuò)部分的圖像進(jìn)行截取、保存,并反饋到系統(tǒng)后臺(tái)。同時(shí)系統(tǒng)中包含的臨時(shí)文件會(huì)將用戶輸入的新圖像數(shù)據(jù)樣本與之前的圖像數(shù)據(jù)樣本進(jìn)行融合,為系統(tǒng)后續(xù)自學(xué)習(xí)過(guò)程奠定基礎(chǔ)。
4.5 自學(xué)習(xí)功能實(shí)現(xiàn)
作為人工智能領(lǐng)域的關(guān)鍵技術(shù),自學(xué)習(xí)功能可以幫助基于SVM的智能統(tǒng)分系統(tǒng)隨著時(shí)間的推移和學(xué)習(xí)循環(huán)過(guò)程的進(jìn)行不斷完善和提高,進(jìn)而具備更精確的識(shí)別率和更強(qiáng)大的處理能力[20]??紤]到系統(tǒng)在應(yīng)用初期,可能會(huì)由于數(shù)據(jù)量不足而產(chǎn)生手寫(xiě)分?jǐn)?shù)識(shí)別錯(cuò)誤的問(wèn)題,該系統(tǒng)采取如下對(duì)策:通過(guò)使用C#編程語(yǔ)言中的Timer類語(yǔ)句,即設(shè)置一個(gè)定時(shí)器,定時(shí)啟動(dòng)Matlab軟件,開(kāi)始執(zhí)行自學(xué)習(xí)程序。定時(shí)器啟動(dòng)后,系統(tǒng)將自動(dòng)建立一個(gè)新的線程,執(zhí)行用戶指定的函數(shù)(用戶反饋的識(shí)錯(cuò)內(nèi)容),實(shí)現(xiàn)系統(tǒng)在夜間(0點(diǎn)以后)空閑時(shí)間自動(dòng)開(kāi)啟Matlab軟件,對(duì)白天用戶的使用情況進(jìn)行重新學(xué)習(xí)[21]。
系統(tǒng)能夠根據(jù)前端用戶對(duì)識(shí)別結(jié)果的反饋,將識(shí)別錯(cuò)誤的手寫(xiě)數(shù)字圖像保存到一個(gè)臨時(shí)文檔中,在服務(wù)器空閑時(shí)間,后臺(tái)可以將這些識(shí)錯(cuò)圖像作為新樣本加入到樣本集中重新對(duì)SVM分類器進(jìn)行訓(xùn)練,最終實(shí)現(xiàn)優(yōu)化系統(tǒng)功能、提高識(shí)別精度和學(xué)習(xí)效率的目的。
隨著自學(xué)習(xí)功能的不斷進(jìn)行,系統(tǒng)將會(huì)“記住”越來(lái)越多不同手寫(xiě)風(fēng)格的樣本,從而不斷增強(qiáng)和完善系統(tǒng)識(shí)別功能,保證系統(tǒng)良性循環(huán),真正意義上實(shí)現(xiàn)“機(jī)器學(xué)習(xí)”。
選取樣本圖片對(duì)系統(tǒng)自學(xué)習(xí)功能進(jìn)行測(cè)試過(guò)程如下:樣本圖片如圖3所示,前端用戶對(duì)系統(tǒng)識(shí)別錯(cuò)誤的內(nèi)容進(jìn)行截圖并對(duì)其正確命名,然后將其反饋到系統(tǒng)后臺(tái)。系統(tǒng)首先將命名為9的樣本圖片進(jìn)行識(shí)別,識(shí)別結(jié)果顯示為5,與圖片實(shí)際內(nèi)容(正確命名)不符,此時(shí)系統(tǒng)發(fā)現(xiàn)識(shí)別錯(cuò)誤,將在設(shè)置好的空閑時(shí)間內(nèi)開(kāi)啟自學(xué)習(xí)功能。自學(xué)習(xí)功能實(shí)現(xiàn)過(guò)程如圖4所示。
圖3 樣本圖片? ? ? ? ? ? ? ? ? ? ? ? ? 圖4 自學(xué)習(xí)過(guò)程
5 系統(tǒng)運(yùn)行結(jié)果
在前端用戶界面顯示框中點(diǎn)擊“導(dǎo)入圖片”鍵,導(dǎo)入試卷卷頭統(tǒng)分欄圖片,然后選擇合適的顏色、畫(huà)筆粗度和圖片大小,確認(rèn)無(wú)誤后點(diǎn)擊“識(shí)別”鍵,系統(tǒng)開(kāi)始對(duì)圖片進(jìn)行識(shí)別,如圖5所示。
圖5 圖片選擇及導(dǎo)入
系統(tǒng)運(yùn)行完畢后,會(huì)將運(yùn)行結(jié)果顯示在前端用戶界面顯示框下端的分?jǐn)?shù)表中,如圖6所示。
圖6 識(shí)別結(jié)果
該系統(tǒng)在Matlab運(yùn)行環(huán)境下的運(yùn)行結(jié)果與運(yùn)行時(shí)間如圖7所示。
圖7 Matlab運(yùn)行結(jié)果與運(yùn)行時(shí)間
系統(tǒng)運(yùn)行結(jié)果表明,該系統(tǒng)后臺(tái)預(yù)期功能基本實(shí)現(xiàn),能夠?qū)崿F(xiàn)對(duì)試卷卷頭統(tǒng)分欄中的分?jǐn)?shù)進(jìn)行正確識(shí)別和統(tǒng)分。該系統(tǒng)在運(yùn)行條件為Matlab2016a、計(jì)算機(jī)系統(tǒng)處理器1.80GHz、運(yùn)行內(nèi)存(RAM)為3.89GB時(shí),總運(yùn)行時(shí)間為7.22s,其中加載支持向量機(jī)分類器結(jié)構(gòu)體耗時(shí)5.57s。
6 結(jié)語(yǔ)
本文針對(duì)傳統(tǒng)紙質(zhì)試卷統(tǒng)分方法存在工作效率低、容易出錯(cuò)等問(wèn)題,使用C#編程語(yǔ)言,結(jié)合Matlab與Microsoft Visual Studio軟件,設(shè)計(jì)并實(shí)現(xiàn)了基于SVM的智能統(tǒng)分自學(xué)習(xí)系統(tǒng)。系統(tǒng)通過(guò)構(gòu)建SVM多分類器并使用MNIST數(shù)據(jù)集對(duì)其進(jìn)行訓(xùn)練和測(cè)試,取得了97.74%的測(cè)試精度。通過(guò)前端用戶界面導(dǎo)入統(tǒng)分欄圖像,采用Matlab作為運(yùn)算后臺(tái),首先對(duì)圖片進(jìn)行預(yù)處理,對(duì)分項(xiàng)得分圖片進(jìn)行分割,然后使用SVM多分類器識(shí)別手寫(xiě)分?jǐn)?shù)。系統(tǒng)利用Matlab的強(qiáng)大計(jì)算能力完成對(duì)試卷卷頭統(tǒng)分欄手寫(xiě)分?jǐn)?shù)的識(shí)別,智能計(jì)算總分并將識(shí)別結(jié)果傳送到前端用戶界面。在服務(wù)器空閑時(shí)間對(duì)識(shí)錯(cuò)數(shù)字圖像進(jìn)行自學(xué)習(xí),最終完成試卷卷頭統(tǒng)分欄內(nèi)手寫(xiě)分?jǐn)?shù)的智能識(shí)別、統(tǒng)分和自學(xué)習(xí)過(guò)程。驗(yàn)證結(jié)果表明,該系統(tǒng)可以顯著降低試卷統(tǒng)分工作強(qiáng)度,提高工作效率和統(tǒng)分正確率,具有一定的應(yīng)用價(jià)值。
隨著系統(tǒng)自學(xué)習(xí)過(guò)程的不斷循環(huán),系統(tǒng)功能將得到進(jìn)一步完善和提高,預(yù)測(cè)SVM多分類器的識(shí)別精度可以超過(guò)97.74%。但是該系統(tǒng)仍然存在不足:當(dāng)前系統(tǒng)運(yùn)行時(shí)間較長(zhǎng),如何有效縮短系統(tǒng)運(yùn)行時(shí)間,實(shí)現(xiàn)對(duì)試卷統(tǒng)分表欄圖片內(nèi)手寫(xiě)數(shù)字的快速識(shí)別、匯總和結(jié)果輸出,將是下一步的主要研究方向。
參考文獻(xiàn):
[1] 吳忠,朱國(guó)龍,黃葛峰,等. 基于圖像識(shí)別技術(shù)的手寫(xiě)數(shù)字識(shí)別方法[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2011, 21(12):48-51.
[2] 焦微微,巴力登,閆斌. 手寫(xiě)數(shù)字識(shí)別方法研究[J]. 軟件導(dǎo)刊, 2012,11(12):172-174.
[3] CORTES C, VAPNIK V. Support-vector networks[J]. Machine Learning,1995,20(3):273-297.
[4] VAPNIK V, IZMAILOV R.Knowledge transfer in SVM and neural networks[J]. Annals of Mathematics and Artificial Intelligence,2017.
[5] 蒙庚祥,方景龍. 基于支持向量機(jī)的手寫(xiě)體數(shù)字識(shí)別系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2005,26(6):1592-1594.
[6] 吳琳琳. 基于SVM技術(shù)的手寫(xiě)數(shù)字識(shí)別的研究[D]. 濟(jì)南:山東師范大學(xué),2006.
[7] 李文趨.? SVM在手寫(xiě)數(shù)字識(shí)別中的應(yīng)用[J]. 泉州師范學(xué)院學(xué)報(bào), 2010,28(4):18-21.
[8] 石會(huì)芳. 支持向量機(jī)及其在手寫(xiě)數(shù)字識(shí)別中的應(yīng)用[D]. 重慶:重慶大學(xué), 2013.
[9] 李陽(yáng)陽(yáng),周林浩,焦李成,等. 基于卷積神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)的手寫(xiě)數(shù)字識(shí)別方法[P]. 中國(guó),CN201611136985.6,2017-04-26.
[10] SHARMA S,SASI A, CHEERAN A N.A SVM based character recognition system[C]. 2017 2nd IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT),2018.
[11] 郭偉林,鄧洪敏,石雨鑫. 基于局部二進(jìn)制和支持向量機(jī)的手寫(xiě)體數(shù)字識(shí)別[J]. 計(jì)算機(jī)應(yīng)用,2018,38(S2):287-290,294.
[12] 胡霖. 基于改進(jìn)的C-支持向量機(jī)的手寫(xiě)體數(shù)字高識(shí)別率方法研究[J]. 數(shù)字通信世界,2019,169(1):252-272.
[13] Derek Beyer. C# COM+編程指南[M]. 龔小平,史艷輝,杜大鵬,譯. 北京:中國(guó)水利水電出版社,2002.
[14] SNELL M,POWERS L.Microsoft visual studio 2015 unleashed[M]. Indianapolis :Sams Publishing,2010.
[15] 李根強(qiáng).? MATLAB及Mathematica軟件應(yīng)用[M]. 北京:人民郵電出版社, 2016.
[16] 江明,劉輝,黃歡. 圖像二值化技術(shù)的研究[J]. 軟件導(dǎo)刊,2009(4):175-177.
[17] 邊肇祺,張學(xué)工. 模式識(shí)別[M]. 第2版. 北京:清華大學(xué)出版社,2000.
[18] 陳永義,熊秋芬. 支持向量機(jī)方法應(yīng)用教程[M]. 北京:氣象出版社,2011.
[19] 莫勇騰. 深入淺出設(shè)計(jì)模式(C#/JAVA版)[M]. 北京:清華大學(xué)出版社,2006.
[20] 周志華. 機(jī)器學(xué)習(xí)[M]. 北京:清華大學(xué)出版社,2016.
[21] 趙海濱.? MATLAB應(yīng)用大全[M]. 北京:清華大學(xué)出版社,2012.
(責(zé)任編輯:孫 娟)