數(shù)理化公式識別軟件(數(shù)理化公式識別方法)
1簡介
OCR(OpticalCharacterRecognition,光學字符識別)是一種將圖片信息(漢字、字母、數(shù)字等)轉(zhuǎn)換為可編輯的電子文本的技術(shù)。隨著人工智能的不斷發(fā)展,基于深度學習的OCR技術(shù)在教育行業(yè)得到廣泛應(yīng)用;智能批改、助教輸入等場景都依賴于OCR技術(shù)。現(xiàn)階段,基于深度學習的OCR技術(shù)對于簡單的一維文本識別可以達到較高的識別精度,但對于數(shù)學、物理公式等二維結(jié)構(gòu)的識別精度較低。針對這個技術(shù)痛點,本文提出了一種可以識別數(shù)學和物理公式的技術(shù)。該技術(shù)可以識別矩陣、方程、分數(shù)、根式等二維結(jié)構(gòu)信息,識別準確率可以達到95%+。
2技術(shù)路線
數(shù)學公式識別是將公式圖像信息數(shù)字化的技術(shù)。該技術(shù)利用Seq2Seq網(wǎng)絡(luò)架構(gòu)來達到識別二維結(jié)構(gòu)的目的。技術(shù)路線如圖1所示,模型輸入為:公式圖片,模型輸出為:公式圖片對應(yīng)的Latex公式序列。
圖1數(shù)學公式識別模型概述
2.1、數(shù)據(jù)準備
為了獲得魯棒的深度學習公式識別模型,訓練數(shù)據(jù)的準備至關(guān)重要。本文采用人才為本的策略來收集數(shù)據(jù):(1)通過分析真實場景中公式數(shù)據(jù)的特征,采用合成數(shù)據(jù)方法,合成真實場景數(shù)據(jù);(2)利用數(shù)據(jù)增強來擴大數(shù)據(jù)的多樣性;(3)通過公式識別置信度收集badcase,迭代收集公式數(shù)據(jù),增強模型的泛化能力。
2.2、Latex公式歸一化
由于Latex的數(shù)學物理公式表達并不唯一,如圖2所示,這種一對多的公式表達方式很容易導(dǎo)致訓練損失函數(shù)不收斂,從而增加模型的學習難度。因此,必須采用歸一化策略來達到一個符號只有一個表達方式,降低模型學習難度的目的。
圖2Latex表達式不唯一
2.3、Seq2Seq網(wǎng)絡(luò)架構(gòu)
Seq2Seq模型是機器翻譯中引入的第一個概念。該模型由編碼器(Encoder)和解碼器(Decoder)組成??梢愿玫貙W習數(shù)學公式的結(jié)構(gòu)特征,例如上下結(jié)構(gòu)公式和周圍結(jié)構(gòu)。公式等
2.3.1.編碼器
編碼器就是提取公式圖片的特征圖。編碼器結(jié)構(gòu)借鑒了Inception-ResNet-V2的網(wǎng)絡(luò)框架。詳細的網(wǎng)絡(luò)框架如圖3所示。其中,(1)采用多個感受野的Inception結(jié)構(gòu),有利于學習不同字體大小的公式特征;(2)介紹PositionEmbedding方法可以有利于獲得字符之間的位置關(guān)系特征。
圖3編碼器網(wǎng)絡(luò)架構(gòu)圖
獲得公式圖片的特征圖后,為了很好地進行序列化學習,將特征圖重塑為一維結(jié)構(gòu)特征向量(語義編碼)。由于PositionEmbedding方法的引入,將特征圖重塑為一維結(jié)構(gòu)后,還可以很容易地保存各個特征向量之間的位置關(guān)系。
2.3.2.解碼器
解碼器的作用是將語義編碼向量解碼成相應(yīng)的識別結(jié)果。通過編碼器獲得公式圖片對應(yīng)的一維結(jié)構(gòu)特征向量后,使用LSTM(長短期記憶)來學習公式圖片對應(yīng)的Latex公式。序列,LSTM是一種時間循環(huán)神經(jīng)網(wǎng)絡(luò),專門為解決一般RNN的長期依賴問題而設(shè)計。其中,在解碼器階段,還使用了Attention機制。注意力機制是一種加權(quán)機制,關(guān)注編碼層獲得的語義編碼中的哪個分量對于當前的預(yù)測更重要。詳細的解碼器網(wǎng)絡(luò)架構(gòu)圖如圖4所示。
圖4解碼器網(wǎng)絡(luò)架構(gòu)圖
2.4、Seq2Seq模型的訓練階段
在訓練階段,由于模型一開始的預(yù)測極不穩(wěn)定,如果將前一個時間片的預(yù)測作為當前時間片的輸入,模型將很難收斂。因此,為了達到模型快速收斂的目的,我們使用標簽序列作為序列預(yù)測的輸入,如圖5所示。
圖5模型訓練階段示意圖
2.5、Seq2Seq模型的推理階段
在推理階段,由于測試樣本沒有標簽序列,所以我們使用當前時間片的輸出作為下一個時間片的輸入,一般使用GreedySearch算法或BeamSearch算法進行解碼。其中,GreedySearch算法是BeamSearch算法的特例(beamsize=1)。集束搜索是尋找全局最優(yōu)值和搜索時間之間的折衷。它計算當前時間片內(nèi)所有假設(shè)的概率,然后選擇最高的組成一組,然后基于這組假設(shè),計算下一個時間片中概率最大的一組,并依此類推,直到最后一個時間片結(jié)束。下圖展示了beamsize=3的搜索過程,紅線是選擇的假設(shè)。
圖6模型推理階段示意圖
2.6、后處理操作(Post-Processing)
通過解碼器可以很好地學習Latex公式的序列特征。然而,在實際場景中,會出現(xiàn)很多種情況。例如,0、o等相似字符就不容易正確識別。因此,后處理操作可以發(fā)揮作用。錦上添花的是根據(jù)先驗知識進行修正,比如將1o修正為10。在測試集上測試后,后處理操作可以在不影響識別性能的情況下提高準確率1%左右。
2.7、識別結(jié)果
數(shù)學公式識別模型可以直接將公式圖片轉(zhuǎn)換成其對應(yīng)的Latex公式。識別樣本如圖7所示(為了方便直觀比較,通過XeLatex和ImageMagick將Latex公式可視化):
圖7識別結(jié)果
3結(jié)論
數(shù)學物理公式識別模型可以很好地解決二維結(jié)構(gòu)的公式識別問題,平均準確率可以達到95%+。但對于結(jié)構(gòu)非常復(fù)雜的公式(對應(yīng)的Latex公式很長),識別精度仍然需要提高。問題出在時間序列解碼階段。雖然LSTM和Attention機制都可以很好地緩解長序列解碼的長期依賴,但都無法從根本上解決。未來我們將探索使用圖模型來求解長序列結(jié)構(gòu)的公式。找出問題所在。
作者:劉騰龍