0
本文作者: 汪思穎 | 2018-08-31 18:13 |
雷鋒網(wǎng) AI 科技評論按:隨著互聯(lián)網(wǎng)的飛速發(fā)展,圖片成為信息傳播的重要媒介,圖片中的文本識別與檢測技術(shù)也一度成為學(xué)界業(yè)界的研究熱點(diǎn),應(yīng)用在諸如證件照識別、信息采集、書籍電子化等領(lǐng)域。
然而,一直以來存在的問題是,尚沒有基于網(wǎng)絡(luò)圖片的、以中文為主的 OCR 數(shù)據(jù)集?;谶@一痛點(diǎn),阿里巴巴「圖像和美」團(tuán)隊(duì)推出 MTWI 數(shù)據(jù)集,這是阿里首個公開的 OCR 數(shù)據(jù)集,也是現(xiàn)有難度最大、內(nèi)容最豐富的網(wǎng)絡(luò)圖片 OCR 數(shù)據(jù)集。
基于該數(shù)據(jù)集,阿里巴巴「圖像和美」團(tuán)隊(duì)聯(lián)合華南理工大學(xué)共同舉辦 ICPR MTWI 2018 挑戰(zhàn)賽,這場比賽共分為三個獨(dú)立賽道,一是識別單文本行(列)圖片中的文字,二是檢測并定位圖像中的文字行位置,三是識別整圖中的文字內(nèi)容。三場賽道各自獨(dú)立,每場賽道都吸引了超過一千支隊(duì)伍參賽。
來自 NELSLIP(National Engineering Laboratory for Speech and Language Information Processing,中科大語音及語言國家工程實(shí)驗(yàn)室)的杜俊教授、戴禮榮教授團(tuán)隊(duì)與科大訊飛合作,包攬全部三項(xiàng)任務(wù)的冠軍。以下便是在這項(xiàng)比賽中分別負(fù)責(zé)識別和檢測任務(wù)的中科大學(xué)生張建樹和朱意星對比賽方案的描述,對于第三個賽道,他們則是結(jié)合了識別和檢測的方案。
此次比賽中,主辦方提供 20000 張圖像作為數(shù)據(jù)集。其中 50% 作為訓(xùn)練集,50% 作為測試集。該數(shù)據(jù)集全部來源于網(wǎng)絡(luò)圖像,主要由合成圖像、產(chǎn)品描述、網(wǎng)絡(luò)廣告構(gòu)成,每一張圖像或包含復(fù)雜排版,或包含密集的小文本或多語言文本,或包含水印,這對文本檢測和識別均提出了挑戰(zhàn)。以下是典型圖片。
文本識別
這次比賽提交的方案大體上可以分為兩種,一種是基于 CTC 的方案,另外一種是基于注意力的 Encoder-Decoder 方案。NELSLIP 團(tuán)隊(duì)根據(jù)復(fù)現(xiàn)結(jié)果,最終選定第二種方案。
比賽難點(diǎn)
首先是 OCR 長期面臨的難題,比如連續(xù)文本,以及自然場景背景復(fù)雜,噪聲干擾比較大。
其次,深度學(xué)習(xí)模型需要很大的數(shù)據(jù)量來進(jìn)行訓(xùn)練。如果訓(xùn)練樣本很少,很難將模型訓(xùn)練好。這次識別存在一些繁體字,而關(guān)于繁體字的訓(xùn)練樣本比較少,會導(dǎo)致識別比較困難。
解決方案
Radical Analysis Network 網(wǎng)絡(luò)
這次比賽 NELSLIP 團(tuán)隊(duì)用到 Radical Analysis Network,該網(wǎng)絡(luò)主要用于解決少樣本問題,這一網(wǎng)絡(luò)基于張建樹在 ICME2018 上的論文 Radical analysis network for zero-shot learning in printed Chinese character recognition,在比賽中做了一些優(yōu)化,有如下明顯優(yōu)點(diǎn):
這是一種基于注意力機(jī)制的編解碼方法,而不是通過滑窗的形式來切分字符,不管輸入是橫排還是豎排,它只關(guān)注相應(yīng)的像素點(diǎn)。
在這個方案之前,大家都是把漢字當(dāng)成整個字符或一張圖片來識別,所用到的方法跟圖像識別,或者 ImageNet 圖像分類的方案差不多,忽略了漢字本身的重要性質(zhì)——漢字由偏旁部首構(gòu)成。比賽中,他們以偏旁部首的形式將漢字拆解。拿「殿」字舉例,這個字是左右結(jié)構(gòu),先是「共」字旁和「八」字旁行成上下結(jié)構(gòu),然后「尸」字旁左上包圍這一上下結(jié)構(gòu)。右邊由「幾」和「右」上下組成。
可以通過深度優(yōu)先遍歷的方式,將這種樹形結(jié)構(gòu)遍歷成字符串的形式,然后再通過識別字符串來識別漢字。在這里有一個預(yù)先定義好的 IDS2char 字典。例如「聚」、「黔」、「坊」這三個字,將這些字的字符串識別出來之后,在字典里就能索引出結(jié)構(gòu)類別,進(jìn)而進(jìn)行漢字識別。
這一方法可以帶來兩個好處:
漢字類別很多,通過拆解成偏旁部首,可以將數(shù)量大大壓縮,去除掉冗余性。
雖然看起來把漢字拆解成了一個很長的序列,但實(shí)際上提高了運(yùn)算速度。如果想將識別做得很好,肯定要涵括全部漢字,如果把一些古代用的字全部算上,字?jǐn)?shù)達(dá)到 10 萬。如果做一個十萬種類別的分類器,效率將會很低。因此,雖說每個詞的序列由原先的一被拆解成五、六或者更多,但序列中每個類別的類別數(shù)變少,搜索空間會相應(yīng)變小,折中下來,解碼效率相對得到提高。
能識別低頻詞,例如在訓(xùn)練集里沒有出現(xiàn)過的詞,這時候不需要額外收集數(shù)據(jù),也不需要重新訓(xùn)練模型。
舉個例子,之前很火爆的 duang 字,上成下龍。雖然這個字很簡單,但是因?yàn)橛?xùn)練集中沒有,普通的模型沒辦法識別,很有可能將其識別成「成」、「龍」或其他字。對 RAN 模型來說,可以在 OOV 場景下將其識別出來。例如把 duang 字作為輸入,會解出成和龍,同時會出現(xiàn)一個表示成和龍上下結(jié)構(gòu)的序列。
在識別繁體字時也是同理。
如下圖所示,由于圖像都是基于真實(shí)場景,所以出現(xiàn)了「薬」和「購」這樣的繁體字。雖然一般的語言模型,能夠?qū)ⅰ复彙棺R別成「代購」,這在語義上是對的,但其實(shí)還是存在問題。通過 RAN 網(wǎng)絡(luò),就能很好地解決這里的 OOV 問題,正確識別出繁體字。
他們對 RAN 網(wǎng)絡(luò)的改進(jìn)還有一點(diǎn),以前的網(wǎng)絡(luò)是針對單字識別,模型的 encoder 只有一個 CNN,這一次的任務(wù)是文本行識別,為了建模文本的常識信息,他們在 encoder CNN 之后添加了一個雙向 RNN 網(wǎng)絡(luò)。另外,從單字識別到文本行識別,對于模型來說,這兩者的隔閡不是特別大,在這里用來提取偏旁部首的注意力機(jī)制還可以區(qū)分字和字之間的間隔,實(shí)際上只需要在每個字的偏旁部首中間加上標(biāo)志符。
針對注意力機(jī)制的改進(jìn)
他們還對注意力機(jī)制進(jìn)行了改進(jìn),以前是單 head 注意力機(jī)制,在此次比賽中,增加到 4-head 注意力機(jī)制,還額外在注意力上添加了一個 coverage actor,coverage actor 會把歷史的注意力信息告訴當(dāng)前時刻的注意力模型,這樣能提高注意力的對齊能力。
另外,他們還使用了 attention guider 技術(shù),除了把模型當(dāng)成一個黑盒子讓它自己學(xué)習(xí),還會給注意力模型更強(qiáng)的指導(dǎo)。在這種真實(shí)場景的情況下,當(dāng)噪聲很大時,注意力模型很難學(xué)好,通過給予模型更好的指導(dǎo),注意力會學(xué)得更快,模型也會收斂得更好。
RGB+HSV 主要用來解決通用 OCR 的一些問題,比如復(fù)雜的背景。一些通過人的眼睛看不清的圖片可以通過 HSV 凸顯出色調(diào)的差異性,從而就能正確識別。
此外,他們還做了一些數(shù)據(jù)增強(qiáng)工作,比如文本旋轉(zhuǎn),壓縮等。
難以解決的案例:
第一種例子是背景噪聲太大。如下圖是人眼都看不清的比較復(fù)雜的例子。這個例子中背景是粉紅色,前景是淡黃色,雖然可以通過 HSV 對圖像進(jìn)行色調(diào)增強(qiáng),但可以看到,它的真實(shí)標(biāo)注是漂亮寶貝 NO1,如果不用 HSV,結(jié)果錯得很離譜。用了之后,漂亮兩個字還是難以檢測出來。
第二種例子是一些從真實(shí)場景中摳出來的圖片,如果圖片本身特別小,將其放大到一定程度,機(jī)器識別就會變得很模糊。
第三個比較難的例子就是前面提到的低頻詞問題,通過 RAN 網(wǎng)絡(luò)可以正確識別。
檢測
這次比賽中,檢測存在四個方面的問題:
一是多角度問題。之前學(xué)術(shù)界的檢測都是用矩形框標(biāo)注的,比如檢測沙發(fā)或人體,但如果做文本檢測,比如一個 45 度角的傾斜文本,這時候如果用矩形框,就會多出來很多噪聲。
二是文本之間的交疊問題。例如下面這幅圖,兩行字重疊在一起了。
三是文本模糊問題。如下圖中框出來的部分,連人眼也看不清。
四是文本長度差距比較大。有的文本特別長,有的文本特別短。
針對這些問題的優(yōu)化
這是此次比賽中使用的網(wǎng)絡(luò)結(jié)構(gòu)圖,這是一個下采樣過程,把不同尺寸下的特征進(jìn)行了融合。
第二個要解決的是多角度問題。對于多角度問題,如果在第一步直接擬合四個頂點(diǎn)會產(chǎn)生歧義,為了避免這種情況,他們在第一步使用了 LocSLPR,會對輸入圖像構(gòu)建空間金字塔,在各個尺度上描繪出文本的輪廓,從而完成文本行的準(zhǔn)確定位。
這里使用了堆疊 R-CNN,第一次 proposal box 是水平矩形框,使用 LocSLPR 擬合輪廓,第二次的時候已經(jīng)有了輪廓信息,所以第二步 proposal box 是旋轉(zhuǎn)矩形框。
剩下的圖片模糊問題靠神經(jīng)網(wǎng)絡(luò)的魯棒性就可以解決,雖然說這一問題也比較難解決,但此次比賽中沒有特意來設(shè)計(jì)網(wǎng)絡(luò)。
比賽中碰到的實(shí)際問題
CVPR、ICCV 等計(jì)算機(jī)視覺會議上,每年都會有不少論文和方案,在這次比賽中,想拿第一名得參考各種不錯的方案。
識別有一個比較大的難點(diǎn),即有些圖片過小,放大之后看不清楚,或者圖片失真,圖像分辨率不高,他們想做一些超分辨率的方法,提升放大后的圖像質(zhì)量,也篩選了 CVPR 上一些不錯的超分辨率方案,但做完之后發(fā)現(xiàn)效果不是很理想,此外旋轉(zhuǎn)上的一些問題也比較難解決。
另外,現(xiàn)在針對注意力的研究也非常多,包括 NLP,機(jī)器翻譯等方向都有很多注意力機(jī)制的改進(jìn)方案。但這些方案不是針對文本問題,所以在最開始嘗試的時候并不能確定方案對任務(wù)的改進(jìn)效果如何。在選擇一些看起來比較合適的注意力機(jī)制方案進(jìn)行改進(jìn)和嘗試的過程中,也遇到不少問題。
這一方案目前在手寫字符識別上還需要改進(jìn)。人在手寫時,會非常隨意,有時候會出現(xiàn)連筆,抹消掉了漢字本該有的偏旁部首和空間結(jié)構(gòu),這時候基于 RAN 的方法獲得的性能提升就沒有打印體的大。
未來,可能主要會針對注意力以及編碼器進(jìn)行改進(jìn)。
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。