本文整理自11月2日第七屆達觀杯專家培訓(xùn)講堂上復(fù)旦大學(xué)計算機科學(xué)技術(shù)學(xué)院研究員、博導(dǎo)李斌教授《基于先驗信息的中文場景文本識別》的主題分享。
在當(dāng)下,隨著數(shù)字化技術(shù)的快速發(fā)展和應(yīng)用場景的多樣化,中文字符和文本識別成為了許多領(lǐng)域的重要任務(wù),包括自然語言處理、光學(xué)字符識別(OCR)、智能輸入法、信息檢索等。而利用先驗信息來輔助中文場景下的中文字符和文本的識別,則成為提高準(zhǔn)確性和效率的關(guān)鍵手段。先驗信息指的是根據(jù)已有知識和經(jīng)驗構(gòu)建的模型或規(guī)則,用于指導(dǎo)識別過程,其可以解決中文文字復(fù)雜多樣的特點帶來的挑戰(zhàn),推動相關(guān)領(lǐng)域的發(fā)展和應(yīng)用。
中文字符的先驗信息
一、層次結(jié)構(gòu)
在報告中,李斌教授分享到,截止2005年,我國共收錄27533個漢字,其中的3755個被列為常用字,其余文字在自然場景中出現(xiàn)的頻率較低,屬于嚴(yán)重的長尾分布。但文字可以分為12種不同的解構(gòu)方式,這12種解構(gòu)如圖所示,可以經(jīng)過遞歸的層級,形成像樹一樣的結(jié)果,比如右邊所示的“刺繡”的”繡”,它形成了一個兩層的棵樹,這是這我們稱為部首樹的樹。
二、少量筆畫
李斌教授表示,中文字符不僅在部首上存在官方定義的結(jié)構(gòu)方式,我們還可以自定義一些特定的解構(gòu)方式。比如說中文字符可以拆解成一個五種筆畫組合而成的筆畫序列。當(dāng)然中文漢字本身不止這么多筆畫,但是在漢字識別的任務(wù)當(dāng)中,我們把它定義成5種筆畫就是橫、豎、撇、點、折。當(dāng)然這個折它包含很多的不同的子類,但是我們都認(rèn)為它也是,比如說豎折鉤、豎彎鉤、橫折鉤等。再比如說右上角這邊3個漢字,它是用5種筆畫的表示,12345就表示不同的筆畫的序號,然后筆畫序號來用一個序列來表示漢字的筆畫構(gòu)成。由于中文字符較多的是方正的字,所以這個筆畫均有較為特定方向,因此中文字符可以在橫豎斜,在橫、豎、左斜和右斜4個方向上進行拆解,得到方向性的變化信息。
三、空間布局
同時,李斌教授提到,中文的文本還存在布局上的先驗信息。像這邊左圖就是單文本行,橫向文本的長度往往大于整行寬度,而縱向文本的長要小于寬度。所以這個信息其實我們在做文本判斷的時候,大家都會用到的先驗信息,另外針對多文本古籍中均為自右向左,然后自上而下的這種模式,而現(xiàn)代文中均為自上而下,自左向右。這一類的先驗信息能夠提供相應(yīng)的閱讀順序,進而為模型引入特定的布局先驗信息。
中文字符識別方法
一、開放集下的中文字符識別方法
李斌教授介紹到,該任務(wù)要求模型能夠有效的識別機制,識別出訓(xùn)練及見過的這些漢字,而且能夠發(fā)現(xiàn)新的字符,新的詞匯,也就是說訓(xùn)練集中未見過,如一個日本字,然后能通過不重新訓(xùn)練模型的方式快速調(diào)整模型來識別發(fā)現(xiàn)的新字符。為了從根本上解決新樣本字符問題,我們提出了基于筆畫先驗的中文字符識別方法。提出的方法如圖所示:
模型整體是有三個模塊,一個是圖像-特征編碼器,另一個是特征-筆畫解碼器,還有一個是筆畫-字符解碼器。在訓(xùn)練階段,我們僅需要對前兩個模塊進行訓(xùn)練,并用相應(yīng)的筆畫序列對這種模型的預(yù)測進行監(jiān)督,采用交叉熵?fù)p失。
然后在測試階段我們引入筆畫-字符解碼器,將這個筆畫序列映射到相應(yīng)的字符類別上,筆畫字符解碼器的具體結(jié)構(gòu)就是上圖的下半部。得到預(yù)測的筆畫序列之后,我們利用邊際距離找到和預(yù)測筆畫序列最接近的字,筆畫序列,我們稱其為校正后的一個筆畫序列。由于一個筆畫序列可能對應(yīng)多個字符,所以我們是通過特征匹配的方式完成這個最終字符的分類。
二、豎直中文文本識別方法
此外,李斌教授及其研究團隊,還提出了一種朝向獨立的中文文本識別方法,所謂的朝向獨立,也就是說我們把朝向單獨的特征給解耦出來,在識別的時候我們不考慮朝向的特征,只考慮漢字本身的特征,然后我們怎么來達到這個目的,我們就提出了這么一個訓(xùn)練的框架,是我們在訓(xùn)練階段采用包含豎直和水平的這種文本圖像,對于這個豎直文本圖像,這個模型將其逆時針旋轉(zhuǎn)90度后再送入識別器。
然后在這個特征提取之后,我們用提出的重構(gòu)模塊,先對豎直和水平字分別進行內(nèi)容信息和朝向信息的解耦,所以這個核心其實就是要把這個內(nèi)容和朝向進行解耦,然后接著利用這個字符圖像重構(gòu)模塊重構(gòu)具備相應(yīng)朝向的印刷體字。最后我們僅將內(nèi)容信息的特征表示送入到解碼器中,以此來避免朝向信息對識別器的影響。所以我們是通過識別的監(jiān)督信號,讓它反作用于前面朝向信息的去除。
三、基于部件的中文文本識別方法
基于部件的中文文本識別方法是一種將文本識別任務(wù)分解為字符級或部件級別的方法。以下是一種基于部件的中文文本識別方法的簡要步驟:
- 部件切割:首先,對輸入圖像進行字符或部件的切割。這可以通過傳統(tǒng)的圖像處理技術(shù),如邊緣檢測、連通區(qū)域分析和輪廓提取等來實現(xiàn)。
- 部件分類:對于每個切割得到的字符或部件,使用機器學(xué)習(xí)或深度學(xué)習(xí)方法進行分類。傳統(tǒng)的機器學(xué)習(xí)方法可以使用特征提取和分類算法,如支持向量機(SVM)或隨機森林等。深度學(xué)習(xí)方法可以使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)或循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等進行訓(xùn)練和分類。
- 字符序列重組:根據(jù)部件的分類結(jié)果,將字符或部件按照正確的順序重新組合成文本序列。這可以通過應(yīng)用序列匹配算法或者使用語言模型來實現(xiàn)。
- 后處理:對于得到的文本序列,可以進行后處理步驟,如去除冗余字符、糾正錯誤或者使用語言模型進行更準(zhǔn)確的推斷。
基于部件的中文文本識別方法可以有效地處理中文字符的復(fù)雜結(jié)構(gòu)和變體,并提供較高的識別準(zhǔn)確度。然而,該方法的性能往往依賴于部件切割的準(zhǔn)確性和對部件分類模型的訓(xùn)練質(zhì)量。因此,在實際應(yīng)用中,合適的數(shù)據(jù)集和有效的訓(xùn)練策略是關(guān)鍵要素。