CharNet算法详解
Convolutional Character Networks-論文鏈接-代碼鏈接
目錄
- 1、需求解讀
- 2、CharNet算法簡介
- 3、CharNet網絡架構詳解
- 3.1 字符檢測分支詳解
- 3.2 文本檢測分支詳解
- 3.3 迭代字符檢測
- 4、CharNet算法實現步驟
- 5、CharNet算法效果展示
- 5.1 主觀效果展示
- 5.2 客觀效果展示
- 6、個人總結
- 參考資料
- 注意事項
1、需求解讀
??Charnet,即字符檢測與識別算法,其主要被用來識別圖片或者視頻中的字符,包括商場中門店名稱的識別和菜單等其它物體上面的字符識別等。它在我們的現實生活中得到了廣泛的應用,比較成功的案例包括文檔中的OCR識別、車牌識別等。由于該問題并不是一個新的研究問題,當前已經了存在了很多性能魯棒的算法,但是這些算法都存在著幾個嚴重的問題,問題1-學者們將文本檢測和文本識別劃分為兩個不同的研究課題,而在現實場景中這兩個問題通常都是結合在一起的;問題2-以前的那些文本檢測與識別算法僅僅能夠處理一些簡單的場景,并不能很好的處理一些復雜的場景,而現實中的多個場景恰恰都是復雜場景。本文介紹的CharNet是一個將文本檢測和文本識別兩個任務結合在一起的一個端到端的文本檢測與識別網絡;該算法可以很好的處理一些復雜場景下的文本檢測與識別問題,并在多個文本檢測與識別數據集上面獲得多項state-of-art。比如我需要檢測并識別這個紐扣上面的文字。
2、CharNet算法簡介
??CharNet文本檢測與識別算法是一個基于單階段檢測算法、融合文本檢測和文本識別任務的端到端的文本處理算法。該算法可以直接輸出圖片中文本和字符所在的位置和相應的字符標簽;該算法的初衷是為了解決雙階段文本檢測與識別算法中ROI Pooling層對識別精度的影響。除此之外,本文提出了一個迭代字符檢測算法用來更好的將在合成數據中訓練好的模型應用到真實場景中的數據中,這些方法使得CharNet可以很好的處理多方向和曲線文本,并在3個標準的文本檢測和識別數據集上面獲得較大的性能提升。
3、CharNet網絡架構詳解
??上圖展示了CharNet算法的網絡框架。整個網絡分為兩個大的分支,上面的分支用來進行字符檢測和識別(整體);下面的分支用來檢測字符中的每一個文本(單個文字或字符)。
3.1 字符檢測分支詳解
??該分支的主要作用是對圖片中的文字進行檢測和識別。該分支首先使用ResNet50作用backbone;然后使用兩個Hourglass模塊來獲取特征表示,期間經過了4個池化層,即最終的輸入特征的大小是輸入圖片的1/4;接著將這個特征映射分別輸入到3個不同的子分支中,包括文本實例分割子分支、字符檢測分支和字符識別分支,前兩個分支中包含3個卷積層,其對應的濾波器的大小為3x3,3x3和1x1,字符識別分支包含4個卷積核為3x3的卷積層。
??文本實例分割子分支的作用是輸出一個2通道的特征映射來表示每一個像素中是否包含文本;字符檢測分支輸出一個5通道的特征映射,分別表示當前位置到上下左右4條邊的距離和BB的方向;字符識別分支輸出一個68通道的特征映射,每一個通道分別表示不同字符所對應的特征映射,具體包括26個英語字符、10個數字和32個特定的符號;這3個分支最終輸出同等大小的一個特征映射;最后過濾掉概率值低于0.95的矩形框。
3.2 文本檢測分支詳解
??該分支的主要作用是獲取圖片中字符所在的大致位置,并用一個不規則的形狀來將不同的字符所在的位置標記出來。文本檢測分支可以根據文本實例的類型定義不同的形式,并且可以通過最小的修改來適應現有的動態文本檢測器。
??對于多方向的文本而言,使用改變的EAST算法作為文本檢測器分支,它包含兩個子分支,即文本實例檢測分支和使用IoU_loss作為實例級的BB回歸。預測的邊界框由五個參數組成,包含x,y,w,h,d(方向),我們在每個空間位置計算密集預測,這個特征映射由兩個3×3卷積層和一個1×1卷積層構成。最后,文本檢測分支輸出指示文本或非文本概率的2通道特征映射,以及5通道檢測(帶方向的BB)。我們僅僅保持置信值大于0.95的邊界框。
??對于曲線文本檢測而言,本文使用添加了方向場的Textfield算法,它對遠離文本邊界的方向進行編碼,方向場分支用于分隔相鄰的文本實例,并且由一個新的分支與文本檢測分支和字符分支并行預測。這個分支是由兩個3×3卷積層,和一個1x1卷積層構成。
3.3 迭代字符檢測
??對于CharNet而言,該算法在訓練過程中需要使用字符級和單次級別的標簽,而標注這些標簽需要昂貴的代碼;除此之外,常見的文本檢測benchmark中一般都沒有這些標簽,因而本文最終使用像Synth800k的合成數據集來進行網絡的訓練。
??一個比較簡單的思路是直接在合成網絡上訓練模型;然后使用訓練好的模型在真實場景中的圖片上面執行推理,但是由于合成的圖片和真實場景中的圖片之間具有較大的分布差異,因而直接將在合成數據上面訓練好的模型應用到真實場景中的數據上面并不能取得好的結果,為了很好的解決這個問題,本文提出了迭代字符檢測方法,該方法的實現細節如下所示:
- 首先使用包含實例和字符標簽的合成數據上面訓練一個初始模型,然后將訓練好的模型應用到真實場景中的圖片中,并做一個簡單的預測。
- 然后在真實場景上的圖片上面根據相應的規則收集一些正確的字符BB,(如果文本中字符邊界框的數量與字符標簽的數目完全相等,則認為這個預測是正確的)將使用它們來對模型執行進一步的訓練,需要注意的是這里并沒有去使用預測的BB標簽。
- 重復執行上面的兩個步驟來逐步提升模型的泛化能力,隨著預測的正確BB數目的增加,模型的識別能力得到了加強。具體的效果如下圖所示,通過觀察我們可以發現隨著迭代次數的增加,正確預測的BB(藍色)的數據逐漸增加。
4、CharNet算法實現步驟
步驟1-讀取輸入圖片,并對圖片執行預處理操作;
步驟2-搭建CharNet網絡,并將預處理之后的圖片分別送入兩個不同的分支中執行處理,首先將其送入Backbone網絡ResNet50中獲取特征映射;然后將處理后的特征映射輸入到Hourglass網絡中進一步提取高級的語義特征(主要用來做實例分割);接著分別將這個特征映射送入字符分支和檢測分支獲得預測的結果;最后將檢測閾值低于0.95的邊界框過濾掉。
步驟3-接著在Synth800k合成數據上面執行5個epochs的訓練,batch=32,每個GPU裝載4張圖片,lr=0.0002,power=0.9, 具體的計算公式如下所示。
lrbase×(1?itermax-iter)powerl r_{\text {base}} \times\left(1-\frac{\text {iter}}{\text {max}_{\text {-iter}}}\right)^{\text {power}} lrbase?×(1?max-iter?iter?)power
步驟4-然后使用上面提到的迭代訓練方法來在真實場景中的數據(ICDAR 2015和Total-Text)上面執行訓練,lr=0.002,并使用數據增強和OHEM方法。
步驟5-將訓練好的模型應用到測試圖片中做預測。
5、CharNet算法效果展示
5.1 主觀效果展示
??上圖展示了CharNet算法的檢測和識別結果。通過觀察我們可以發現該算法可以在多種復雜的場景中獲得較好的檢測和識別結果,包括扭曲的文字、密集的文字、彎曲的文字等,基本上可以滿足我們在現實場景中的需求。
5.2 客觀效果展示
??上圖展示了CharNet和其它文本檢測和識別算法在ICDAR 2015數據集上面的效果。通過觀察我們可以發現,與性能優異的EAST、Mask TextSpotter和FOTS算法相比,CharNet算法均獲得了較大的性能提升,基本上在檢測和識別任務中都獲得了最好的結果。
??上圖展示了CharNet和其它的文本檢測算法在Total-Text數據集上面的效果。通過觀察我們可以發現,與性能優異的TextNet和TextFied算法相比,CharNet在回調率R、準確率P和F1上面都獲得了較大的性能提升。
??上圖展示了CharNet和其它的文本檢測算法在ICDAR 2017 MLT數據集上面的效果。通過觀察我們可以發現,與性能優異的FOTS和FOTS MS算法相比,CharNet在回調率R、準確率P和F1上面都獲得了較大的性能提升。
6、個人總結
??總而言之,CharNet是一個端到端的、性能優異的單階段文本檢測和識別算法,該算法將文本檢測、文本識別、字符實例分割等多個算法結合起來,在多個文本檢測和識別數據中取得了較大的性能提升;除此之外,本文的一個亮點在于如何很好的將在合成數據集上訓練的模型成功的應用在真實場景中的數據中,這個問題在很多子研究課題中都會有所涉及。
參考資料
[1] 原始論文
注意事項
[1] 該博客是本人原創博客,如果您對該博客感興趣,想要轉載該博客,請與我聯系(qq郵箱:1575262785@qq.com),我會在第一時間回復大家,謝謝大家的關注.
[2] 由于個人能力有限,該博客可能存在很多的問題,希望大家能夠提出改進意見。
[3] 如果您在閱讀本博客時遇到不理解的地方,希望您可以聯系我,我會及時的回復您,和您交流想法和意見,謝謝。
[4] 本人業余時間承接各種本科畢設設計和各種小項目,包括圖像處理(數據挖掘、機器學習、深度學習等)、matlab仿真、python算法及仿真等,有需要的請加QQ:1575262785詳聊,備注“項目”!!!
總結
以上是生活随笔為你收集整理的CharNet算法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 妙手跨境电商erp下载_跨境电商平台开源
- 下一篇: wireshark捕获tcp数据包_抓包