大話文本檢測經典模型:CTPN

文字識別是AI的一項重要應用,例如將包裝盒上的文字識別出來、將產品說明書上的文字識別出來、將大街上廣告牌的文字識別出來等等,在現實生活中能給我們帶來很大的便利,有着非常廣泛的應用。

一個簡單的文字識別流程如下:

Step 1. 通過手機、攝像機等設備採集含有待識別字符的圖像,作爲輸入;

Step 2. 對圖像進行尺寸縮放、明暗調整、去噪等預處理操作;

Step 3. 將圖像中的單個字符、或者是連續幾個字符所在的區域檢測出來;

Step 4. 根據文本檢測結果從圖像中將文本所在區域分割出來,然後導入到模型中進行文本識別,進而得到圖像中的字符信息。

其中,這個流程有兩個環節非常關鍵,一個是“文本檢測”、另一個是“文本識別”,本文將介紹“文本檢測”的經典模型CTPN,而“文本識別”模型將在後面另外介紹,敬請關注。

對於印刷字體的檢測,由於排版很規範,現在的檢測、識別技術已經很成熟了,我們日常使用的微信、QQ裏面就有提取圖片中文字的功能。而對於自然場景下的文字檢測,由於光照環境以及文字存在着很多樣的形式,要將文字檢測出來則有比較大的難度,例如要檢測出大街上廣告牌中的文字,如下圖: 

本文主要介紹文本檢測的經典模型:CTPN,它不僅可以用於檢測自然場景下的文字,印刷文字的檢測自然也不在話下。

1、文字分佈的特點

在瞭解文字檢測之前,先來看一下文字分佈的特點。無論是印刷文字,還是自然場景下的文字,一般文字是水平排列,連續字符的長度可變,但高度基本相同,如下圖: 

這也是CTPN的基本思路,既然寬度是可變、不確定的,那麼就按照固定的高度進行檢測,看看圖像中有哪些區域是連續出現了一片同樣高度特徵的區域,並且其邊緣符合文字的特點,就將其圈出來。

2、什麼是CTPN

CTPN,全稱是“Detecting Text in Natural Image with Connectionist Text Proposal Network”(基於連接預選框網絡的文本檢測)。該模型主要是對圖片中的文本行進行準確定位,其基本做法是直接在卷積獲得的feature map(特徵圖)上生成的一系列適當尺寸的文本proposals(預選框)進行文本行的檢測。下圖可以很好地看出該模型的檢測思路(注意:CTPN模型實際上是在feature map上生成proposals,而不是在原圖像上生成,以下只是個示意圖): 

3CTPN技術原理

CTPN模型利用了RNN和CNN的無縫結合來提高檢測精度。其中,CNN用來提取深度特徵,RNN用於序列的特徵識別,二者無縫結合,在檢測上性能更好。其中:

1CNN(採用VGG16

CTPN模型通過利用VGG16卷積輸出的 feature map(特徵圖)生成一系列proposals(預選框)進行檢測。VGG是卷積神經網絡的經典模型,具體原理可詳見本公衆號之前發佈的文章:白話卷積神經網絡(VGGNet)

2RNN

由於文字信息是由“字符、字符的一部分、多字符”組成的一個序列,所以文字這個檢測目標並不是獨立、封閉的,而是有前後關聯的,因此在CTPN中採用了RNN(Recurrent Neural Networks,循環神經網絡)來利用前後文的信息進行文本位置的預測。關於RNN的介紹詳見本公衆號之前發佈的文章:白話循環神經網絡(RNN)

CTPN模型的網絡結構如下圖所示: 

整個過程主要分爲六個步驟:

第一步:輸入3×600(h)×900(w)的圖像,使用VGG16進行特徵的提取,得到conv5_3(VGG第5個block的第三個卷積層)的特徵作爲feature map,大小爲512×38×57;

第二步:在這個feature map上做滑窗,窗口大小是3×3,即512×38×57變爲4608×38×57(512按3×3卷積展開);

第三步:將每一行的所有窗口對應的特徵輸入到RNN(BLSTM,雙向LSTM)中,每個LSTM層是128個隱層,即57×38×4608變爲57×38×128,Reverse-LSTM同樣得到的是57×38×128,合併後最終得到結果爲 256×38×57;

第四步:將RNN的結果輸入到FC層(全連接層),FC層是一個256×512的矩陣參數,得到512×38×57的結果;

第五步:FC層特徵輸入到三個分類或者回歸層中。第一個2k vertical coordinate和第三個k side-refinement是用來回歸k個anchor的位置信息(可以簡單理解爲是要確定字符位置的小的矩形框,上面示意圖中的紅色小長框,寬度固定,默認爲16),第二個2k scores 表示的是k個anchor的類別信息(是字符或不是字符);

第六步:使用文本構造的算法,將得到的細長的矩形框,將其合併成文本的序列框。其中文本構造算法的主要的思路爲:每兩個相近的候選區組成一個pair,合併不同的pair直到無法再合併爲止。

以上就是CTPN主要原理的介紹,使用CTPN模型對自然場景下的文字進行檢測,結果如下圖所示: 

4、小結

綜上,CTPN模型最大的亮點是引入RNN來進行檢測。先用CNN得到深度特徵,然後用固定寬度的anchor(固定寬度的,細長的矩形框)來檢測文本區域,將同一行anchor對應的特徵串成序列,然後輸入到RNN當中,再用全連接層來做分類或迴歸,最後將小的候選框進行合併,從而得到了文本所在的完整區域。這種把RNN和CNN無縫結合的方法有效地提高了檢測精度。

 

牆裂建議

2016年,Zhi Tian 等人發表了關於CTPN的經典論文《Detecting Text in Natural Image with Connectionist Text Proposal Network》,在論文中詳細介紹了CTPN的思想和技術原理,建議閱讀該論文以進一步瞭解該模型。

關注本人公衆號“大數據與人工智能Lab”(BigdataAILab),然後回覆“論文”關鍵字可在線閱讀經典論文的內容

 

推薦相關閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章