新文本檢測算法TextFuseNet
向AI轉型的程序員都關注了這個號👇👇👇
人工智能大數據與深度學習 公眾號:datayx
TextFuseNet: Scene Text Detection with Richer Fused Features
自然場景中任意形狀文本檢測是一項極具挑戰性的任務,與現有的僅基於有限特征表示感知文本的文本檢測方法不同,本文提出了一種新的框架,即 TextFuseNet ,以利用融合的更豐富的特征進行文本檢測。
該算法用三個層次的特征來表示文本,字符、單詞和全局級別,然后引入一種新的文本融合技術融合這些特征,來幫助實現魯棒的任意文本檢測。另外提出了一個弱監督學習機制,可以生成字符級別的標注,在缺乏字符級注釋的數據集情況下也可以進行訓練。
該算法在ICDAR2013上取得F1分數94.3%,在ICDAR2015上F1分數92.1%,在Total-Text上87.1%,在CTW-1500上86.6%,目前為止最佳成績。
復現代碼 獲取:
關注微信公眾號 datayx 然后回復 文本檢測 即可獲取。
AI項目體驗地址 https://loveai.tech
1. 算法簡介
之前的文本檢測算法大致分為兩種,基於字符級別的檢測和基於單詞級別的檢測。基於字符級別的檢測算法首先提取單個字符,然后再使用字符合並算法合並這些字符成一個單詞,然而這種方法因為要生成大量的字符候選框並且要合並,比較耗時。相比之下,基於單詞級別的檢測算法直接檢測單詞,會更高效和簡單,但這種方法通常無法有效地檢測具有任意形狀的文本。為了解決這個問題,一些基於單詞的方法進一步應用實例分割來進行文本檢測。在這些方法中,前景分割掩碼被估計以幫助確定各種文本形狀。
盡管有很好的結果,但現有的基於實例分割的方法仍然有兩個主要的局限性。一是,這些方法只基於單個感興趣區域(RoI)檢測文本,而不考慮全局上下文,因此它們傾向於基於有限的視覺信息產生不准確的檢測結果。二是,現有的方法沒有對不同層次的單詞語義進行建模,產生假陽性的可能性增大。從圖一中可以看到這種方法的弊端。
本文提出的TextFuseNet能夠有效的解決這些問題,並且可以高效准確的預測任意形狀的文本。TextFuseNet與其他算法相比主要的區別在於,有效的利用各種層次的特征,例如字符級別的、單詞級別的、全局級別的特征,而其他的文本檢測算法往往只使用一種層次的特征。
TextFuseNet網絡結構主要分為三個分支:
第一個是語義分割分支( semantic segmentation branch),該分支用來提取液全局級別的特征;
另外二個是檢測分支和mask分支(detection and mask branches),用來提取字符級別和單詞級別的特征;
在得到三種層次的特征后,使用多路徑特征融合體系結構(Multi-path Fusion Architecture),融合三者特征,生成更具代表性的特征表示,從而產生更准確的文本檢測結果。
目前大部分數據集只包含單詞級別的標注,很少有字符級別的標注,為解決字符級別標注數據集缺乏的問題,提出了一種弱監督學習方案,通過從單詞級注釋數據集學習來生成字符級注釋。
總體的結構如圖2所示。
2. 算法詳解
2.1 網絡結構
具體網絡結構如圖2所示,首先提取多層次的特征,然后執行多路徑融合以進行文本檢測。該結構主要由5部分組成,
-
使用特征金字塔(FPN)作為backbone進行多特征提取;
-
使用RPN生成文本候選框;
-
語義分割分支生成全局語義特征;
-
檢測分支預測單詞和字符;
-
mask分支生成單詞和字符的實例分割;
在TextFuseNet中,使用ResNet作為backbone,RPN生成的文本候選框作為檢測和mask分支的輸入,在語義分割分支來對輸入圖像進行語義分割,並幫助獲得全局級別的特征。
mask在檢測分支中,通過預測文本候選框的類別和采用邊界框回歸來細化文本候選框,提取和融合了單詞和全局級別的特征來檢測單詞和字符。
mask分支,對從檢測分支檢測到的對象執行實例分割;
提取和融合所有字符、單詞和全局級別的特征,以完成實例分割以及最后的文本檢測任務。
2.2節來主要來講解提取多層次的特征表示,在提取多特征后,多路徑融合體系結構來融合不同的特征,用於檢測任意形狀的文本,多徑融合體系結構可以有效地對多層特征進行對齊和合並,以提供健壯的文本檢測,多路徑融合體系結構的實現細節在2.3節中描述。
2.2 Multi-level Feature Representation
在檢測器的檢測和掩碼分支中,通過預測文本候選框中的字符和單詞,能夠很容易的獲得字符級別和單詞級別的特征。這里應用RoIAlign提取不同的特征,並對單詞和字符進行檢測。
除了字符和單詞特征,還要獲取全局的語義特征,如圖2所示,語義分割分支是基於FPN的輸出構建的。將所有特征層的特征融合到一個統一的特征表示中,並在這個統一的特征表示上執行分割,從而獲得全局分段的文本檢測結果。通常,使用1×1的卷積將不同特征層的特征的通道數對齊,並將特征映射調整為相同的大小,以便以后統一。
2.3 Multi-path Fusion Architecture
在獲取到多級特征后,分別在檢測和mask分支采用多徑融合體系結構。
在檢測分支中,基於從RPN獲得的文本候選,提取全局和單詞級特征,用於不同路徑的文本檢測。然后,融合這兩種類型的特征,以單詞和字符的形式提供文本檢測。值得注意的是,在檢測分支的時候,不能提取和融合字符級別的特征,因為,在執行檢測之前,字符尚未被識別。在實際代碼中,給定一個文本候選框,使用RoIAlign從FPN的輸出特征中提取到一個大小為7×7的全局和單詞特征。使用 element-wise相加融合這兩個特征,然后再經過一個3×3的卷積層和一個1×1的卷積層,最終融合后的特征用於分類和坐標回歸。
在mask分支,對於每個單詞級實例,可以在多路徑融合體系結構中融合得到相應的字符、單詞和全局級別特征。圖3詳細說明了多路徑融合結構。
在所提出的體系結構中,從不同的路徑中提取多層次特征,並將它們融合起來,以獲得更豐富的特征,以幫助學習更具鑒別性的特征表示。
通過進一步應用RoIAlign提取單詞的特征和相應的全局語義特征,通過element-wise求和將這三個層次的特征融合起來,然后通過一個3×3卷積層和一個1×1卷積層去獲得更豐富的特征。最后融合的特征用於實例分割。
3.4 loss函數
4. 測試結果
原文地址https://blog.csdn.net/qq_39707285/article/details/113046449
閱讀過本文的人還看了以下文章:
基於40萬表格數據集TableBank,用MaskRCNN做表格檢測
《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼
PyTorch深度學習快速實戰入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
【Keras】完整實現‘交通標志’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類
如何利用全新的決策樹集成級聯結構gcForest做特征工程並打分?
Machine Learning Yearning 中文翻譯稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特征工程
不斷更新資源
深度學習、機器學習、數據分析、python
搜索公眾號添加: datayx
機大數據技術與機器學習工程
搜索公眾號添加: datanlp
長按圖片,識別二維碼