劉祖贏 陳庭軒
摘要:手寫體識別現(xiàn)已應(yīng)用到多個行業(yè)之中,常見的如財(cái)務(wù)系統(tǒng)、稅務(wù)系統(tǒng)、金融系統(tǒng)等領(lǐng)域,手寫體識別的出現(xiàn)大大提高了各行各業(yè)的工作效率及精準(zhǔn)性。對于教育行業(yè),手寫體識別主要用于課程作業(yè)的識別,該系統(tǒng)基于該需求,運(yùn)用JavaEE技術(shù)開發(fā)了一個基于Tensorflow框架的手寫體識別算法的公式識別系統(tǒng),使用spring MVC作為應(yīng)用框架,以tomcat作為服務(wù)器進(jìn)行部署。該系統(tǒng)能對公式進(jìn)行識別以及計(jì)算,對在線教育領(lǐng)域具有優(yōu)良的應(yīng)用價(jià)值。
關(guān)鍵詞:JavaEE;手寫體識別;在線教育;spring MVC;公式計(jì)算
中圖分類號:TP319? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)06-0074-02
Abstract: Handwriting recognition has been applied to many industries, such as financial system, tax system, financial system and other fields. The emergence of handwriting recognition greatly improves the efficiency and accuracy of all walks of life. For the education industry, handwriting recognition is mainly used for the recognition of course assignments. Based on this demand, the system uses JavaEE technology to develop a formula recognition system based on a tensorflow algorithm, uses spring MVC as the application framework, and Tomcat as the server for deployment. The system can identify and calculate the formula, which has good application value in the field of online education.
Key words: JavaEE; handwriting recognition; online education; spring MVC; formula calculation
1 背景
隨著全球互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展[1],線上教育逐漸走進(jìn)人們的視野。傳統(tǒng)教育以教師和學(xué)生的課堂互動和學(xué)生課后自主練習(xí)為基準(zhǔn),每一個環(huán)節(jié)都需要教師直接或間接進(jìn)行把控??荚嚭涂荚囬喚硎菍W(xué)校主要教學(xué)工作的一部分,傳統(tǒng)的紙質(zhì)閱卷費(fèi)時費(fèi)力,而且閱卷過程煩瑣且易于出現(xiàn)錯評誤評[2],而現(xiàn)如今興起的深度學(xué)習(xí)技術(shù)則緩解了教師的這一大痛點(diǎn)。手寫體識別技術(shù)可以幫助教師在閱卷、批改作業(yè)等環(huán)節(jié)脫離紙質(zhì)板書,將老師從重復(fù)且枯燥的客觀題批閱中解放出來[3],節(jié)省教師的體力和時間的同時還能避免紙質(zhì)板書出現(xiàn)的謬誤,助其在教學(xué)領(lǐng)域取得更好的成就。
數(shù)學(xué)公式能包含大量的信息,一位職業(yè)數(shù)學(xué)家即使不懂日語,僅僅通過看公式,也能看懂部分日語寫的數(shù)學(xué)專著,并且看出這本書是否值得翻譯[4],由此可見數(shù)學(xué)公式在學(xué)術(shù)和教育中的重要性?;谝陨蠁栴}和方法,本項(xiàng)目實(shí)現(xiàn)了一個將手寫體公式板書識別為計(jì)算機(jī)能識別的公式字符串的智能識別系統(tǒng)。
2 手寫體識別算法
圖像識別問題作為人工智能的一個重要領(lǐng)域,是近年來的研究熱點(diǎn),并已經(jīng)取得了突破性的進(jìn)展[5]。手寫體識別算法作為圖像識別的一個大分支,也處于發(fā)展熱潮。手寫體識別可以分為聯(lián)機(jī)識別和脫機(jī)識別兩大類,聯(lián)機(jī)手寫體也就是用戶在觸屏設(shè)備或手寫板上書寫的同時,算法就對其進(jìn)行實(shí)時識別,由于待處理數(shù)據(jù)是實(shí)時的,聯(lián)機(jī)識別的最大的好處就是可以克服原始數(shù)據(jù)中的噪聲,因此識別難度也相對較低;而脫機(jī)識別指的是用戶將手寫體數(shù)據(jù)在電子設(shè)備或紙質(zhì)媒介上提前書寫好,然后保存為圖片或通過相機(jī)拍攝為圖片再交由手寫體算法進(jìn)行識別,由于處理流程中增加了一次保存操作,因此也不可避免地帶來了更多干擾和噪聲,讓識別也更困難??紤]到廣大師生平時的使用習(xí)慣,本系統(tǒng)采用的是脫機(jī)識別算法,便于師生們先完成公式或算式再提交給系統(tǒng)進(jìn)行識別。
本系統(tǒng)的脫機(jī)手寫體識別算法為由陳庭軒等人提出的一種基于Adam-SGD融合優(yōu)化CNN集成學(xué)習(xí)算法[6]。單獨(dú)使用Adam優(yōu)化算法后期可能會因震蕩而無法收斂引起錯過最優(yōu)解,而SGD優(yōu)化算法相比Adam優(yōu)化算法收斂速度慢但結(jié)果一般較好,該算法在模型訓(xùn)練時結(jié)合Adam優(yōu)化算法和SGD優(yōu)化算法,既能獲得Adam優(yōu)化算法的快速收斂,又能利用SGD優(yōu)化算法獲取最優(yōu)解。
3 系統(tǒng)的總體設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)總體設(shè)計(jì)
本公式識別系統(tǒng)主要分為三個模塊:手寫體識別、公式重組與計(jì)算、前端頁面。手寫體識別算法負(fù)責(zé)對公式字符的識別,獲取到字符識別結(jié)果之后重組為公式并計(jì)算與判斷該答案是否正確,最后將識別的結(jié)果以及提交答案是否正確展示給用戶。在確定系統(tǒng)的基本架構(gòu)之后,系統(tǒng)流程設(shè)計(jì)如圖1所示。
3.2 公式計(jì)算
在手寫體識別算法獲得識別結(jié)果之后,便需要對公式進(jìn)行重組和計(jì)算。本系統(tǒng)數(shù)學(xué)公式的計(jì)算采用的是谷歌公司的Aviator開源框架,該框架可用于動態(tài)的公式計(jì)算、規(guī)則匹配。相比傳統(tǒng)方式中對數(shù)學(xué)表達(dá)式直接解析和計(jì)算的純解釋執(zhí)行,Aviator框架直接將表達(dá)式編譯成JVM字節(jié)碼,交由JVM虛擬機(jī)執(zhí)行,這使得Aviator框架更加輕量和高效。
JAVA語言是一門半編譯半解釋型的語言,也就是說在JAVA語言中,既存在直接編譯為計(jì)算機(jī)能識別的機(jī)器語言的熱點(diǎn)代碼,也存在編譯為只有JAVA虛擬機(jī)JVM能識別的字節(jié)碼的非熱點(diǎn)代碼,而Aviator框架就是利用JAVA虛擬機(jī)規(guī)則來運(yùn)行。它將自己的運(yùn)行規(guī)則編譯為JVM能理解的 .class文件,同時用戶代碼也會被編譯為.class文件,最終一同交由虛擬機(jī)來執(zhí)行,省去了在JAVA代碼層面的調(diào)用,這種方式帶來的是更加高效和簡潔,Aviator框架基本原理如圖2。
3.3 系統(tǒng)實(shí)現(xiàn)
3.3.1 MVC設(shè)計(jì)模式
本系統(tǒng)基于J2EE技術(shù)實(shí)現(xiàn),其中視圖界面基于Spring MVC框架。J2EE是SUN公司面向各大企業(yè)環(huán)境為中心而開發(fā)的一種以應(yīng)用程序?yàn)橹黝}的計(jì)算機(jī)網(wǎng)絡(luò)平臺[7],而MVC是一種設(shè)計(jì)模式,即模型(Model)、視圖(View)、控制器(Controller),其中模型封裝了應(yīng)用程序所需的數(shù)據(jù),視圖負(fù)責(zé)呈現(xiàn)用戶請求的頁面,控制器則負(fù)責(zé)處理用戶發(fā)起的請求。Spring MVC是一種基于java的MVC設(shè)計(jì)模式的輕量級框架的實(shí)現(xiàn),本系統(tǒng)之所以基于Spring MVC,一是因?yàn)樗妮p量、高效和強(qiáng)大的約定式編程,二是它提供了完善的文件上傳能力。
Spring MVC在收到客戶請求后,會首先將請求發(fā)給控制器,由控制器進(jìn)行處理和響應(yīng)之后得到結(jié)果,而控制器會將底層對數(shù)據(jù)的處理工作交由模型層進(jìn)行處理,最后這個結(jié)果會交給視圖解析器進(jìn)行解析,然后便可把視圖展現(xiàn)給用戶,Spring MVC整體請求模式如圖3。由于系統(tǒng)采用了B/S架構(gòu),將系統(tǒng)部署在服務(wù)器上之后,用戶只需要準(zhǔn)備好瀏覽器,即可在PC端和移動端開始使用。
3.3.2 基于MVC模式的系統(tǒng)實(shí)現(xiàn)
當(dāng)在PC端打開本系統(tǒng)時,用戶點(diǎn)擊瀏覽選擇提前書寫好的公式;在移動端打開時,可選擇本地文件,也可以調(diào)用相機(jī)進(jìn)行拍照上傳。在用戶確定選擇的公式圖片之后,圖片會展示給用戶。此時可以點(diǎn)擊開始識別,后端Controller首先會將用戶選擇的圖片上傳至服務(wù)器指定位置;待圖片上傳成功后不能立即進(jìn)行識別,因?yàn)樵紙D像中還含有各種噪聲,而噪聲就是對識別目的而言無價(jià)值的信息,它們?nèi)菀讓罄m(xù)識別過程造成不良影響[8],需要先進(jìn)行去噪處理以及灰度調(diào)整,然后再將圖片交給手寫體識別算法進(jìn)行識別。得到識別結(jié)果之后系統(tǒng)將會進(jìn)行公式重組與計(jì)算,最后就能將結(jié)果交給用戶了。最終結(jié)果展示包括原式圖像、經(jīng)過預(yù)處理的圖像、公式識別結(jié)果和公式計(jì)算結(jié)果,如果原式帶有計(jì)算結(jié)果那么還會對原結(jié)果是否計(jì)算正確進(jìn)行判斷,系統(tǒng)基本界面如圖4及圖5所示。
4 結(jié)束語
文字書寫作為人們?nèi)粘I钪袩o處不在的一部分,隨著通信技術(shù)、計(jì)算機(jī)處理能力和存儲容量的迅速提高,以及各種數(shù)據(jù)信息處理技術(shù)的出現(xiàn)[9],使得在線手寫體識別能夠進(jìn)入實(shí)際應(yīng)用階段且識別精度高?;趯鹘y(tǒng)手寫體識別算法的優(yōu)化,本公式識別系統(tǒng)識別準(zhǔn)確率高、速度快、精簡易用,對教育、教學(xué)領(lǐng)域具有一定的研究價(jià)值。
參考文獻(xiàn):
[1] 王飛,孫錟鋒,蔣興浩.在線簽名認(rèn)證綜述[J].信息安全與通信保密,2015,13(5):107-111,116.
[2] 李彩虹,尹督榮.自動閱卷系統(tǒng)仿真[J].計(jì)算機(jī)仿真,2020,37(9):157-161.
[3] 言俐光.閱卷系統(tǒng)中手寫體字符的提取與識別[D].蘇州:蘇州大學(xué),2019.
[4] 程進(jìn).基本數(shù)學(xué)公式識別技術(shù)的研究[D].沈陽:沈陽工業(yè)大學(xué),2005.
[5] 沈榮,黃晨.深度學(xué)習(xí)在筆跡鑒定中的應(yīng)用研究[J].電子設(shè)計(jì)工程,2020,28(21):159-163.
[6] 陳庭軒,陳文敏,王正陽.基于融合優(yōu)化算法和集成學(xué)習(xí)的數(shù)字識別研究[J].信息通信,2020,33(4):15-17.
[7] 孫媛.討論JAVA語言的現(xiàn)狀及發(fā)展[J].科技傳播,2010,2(13):197,184.
[8] 戶其修.基于OCR開源框架的常用公式識別系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2019.
[9] 許澤寧,肖利君,劉志文.基于移動手機(jī)的在線簽名技術(shù)的應(yīng)用開發(fā)[J].信息化研究,2020,46(4):62-66.
【通聯(lián)編輯:謝媛媛】