1. 程式人生 > 實用技巧 >CRAFT:Character region awareness for text detection 論文閱讀

CRAFT:Character region awareness for text detection 論文閱讀

CRAFT:Character region awareness for text detection 論文閱讀

Reference

Y. Baek, B. Lee, D. Han, S. Yun, and H. Lee, “Character region awareness for text detection,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2019, pp. 9365–9374.

正文

摘要

從前用嚴格的詞邊界訓練方法來表示一個任意形狀的文字區域存在一定的限制。本文給出的方法通過探索每個字元以及字元之間的相似性來實現。為了克服缺少字元級別註釋的情況,我們的工作不僅使用了合成影象的字元標註,同時也使用了模型學習過程中估計出的真實字元級註釋。實驗結果表明提出的方法在複雜自然場景下,如任意方向、彎曲、以及形變文字都具有較高的靈活性。

引言

框架CRAFT,會產生一個字元區域得分和一個緊密關聯得分。區域得分是用來定點陣圖像中的單個字元,關聯得分是用來分組每個字元成為一個單獨例項。為了補償字元水平標註的缺點,我們提出了弱監督學習框架來評估真實資料集中字元水平的標註。

相關工作

在深度學習方法出現之前,主流方法都是自底向上的,大多數利用人工設計特徵,如MSER或SWT。最近深度學習的方法被採用,像物體檢測方法SSD,以及語義分割方法FCN。

基於迴歸的文字檢測方法
不像一般的物體檢測方法,文字經常是不規則的形狀以及各種長寬比。為了處理這些問題,TextBoxes++系列修改卷積核以及anchor boxes來捕獲各種文字形狀。Rotation-Sensitive Regression Detector (RSDD)充分利用旋轉不變形特徵來進行檢測。這種檢測方法只能檢測矩形以及旋轉矩形的文字區域,因此存在較大限制。
基於語義的文字檢測方法
通過畫素級的水平來尋找文字區域。SSTD通過注意力機制結合迴歸與語義分割方法在特徵水平來增強文字區域聯絡減少背景的干擾。最近,TextSnake被提出通過預測文字區域以及幾何特徵的文字線。
端到端的文字檢測

端到端的方法能同時檢測文字以及識別文字,而且識別結果有助於增強檢測結果。FOTS和EAA聚合了流行的檢測與識別方法,以端到端的方式訓練它們。Mask TextSpotter利用它模型統一的優勢來對待識別任務作為一個語義分割任務。很明顯,識別模組能幫助檢測器更好的檢測文字。
大多數檢測文字的方法把單詞作為基本單元,但是對於檢測來說定義一個單詞的大小是困難的,因為單詞可以被各種規則分割,如含義,空格以及顏色。此外,單詞分割的邊界不能被嚴格的限制,所以單詞分割本身沒有明顯的語義含義。這種單詞模糊的標註無論對於迴歸還是對於語義分割方法來說都淡化了真實標註的意義。
字元級別的文字檢測
Seglink 尋找部分文字區域並且聯絡這些區域用額外的連線預測。雖然Mask TextSpotter預測一個字元級水平的概率圖,它是被用來文字識別而不是定位。
本文工作是受WordSup思想的啟發,用一個弱監督框架來訓練字元級水平的檢測器。WordSup的一個缺點是字元表示是以矩形框的錨來展示的,由於不同角度拍攝造成的字元形變不容易被檢測出來,而且它受到基本骨架效能的影響(如SSD的anchor數量以及尺寸大小)。

方法

我們的主要目標是精確的定位自然場景中每個字元,我們訓練一個深度學習網路來預測字元區域以及字元間的緊密程度,因為沒有公共的資料集可以利用,因此模型是以弱監督的方式來進行訓練

架構

基於VGG-16的全卷積神經網路,帶有BN作為骨架。我們的模型在解碼階段跳過連線,就像U-net聚合底層特徵一樣。最後的輸出有兩個通道作為分數圖,區域分數和緊密連線分數。
在這裡插入圖片描述

訓練

真實標籤生成

在這裡插入圖片描述
region score:直接對樣本中已知的每個box做2d高斯變換,得到區域分數GT
affinity score:利用字元級別的box,分別連線兩對角的點,這樣可以得到兩個三角形,取三角形的中心作為affinity的角點,兩個相鄰的box的四個角點就構成了一個新的四邊形。對生成的這些新的box做2d高斯變換,得到連線分數GT。

弱監督學習

不像合成的資料集,真實圖片只有單詞級別的註釋。
在這裡插入圖片描述
最開始訓練的是藍色線,其利用Synth80k資料集進行有監督的訓練。模型訓練到一定強度後,進行弱監督訓練(紅色線與綠色線)
首先,從原影象裁剪單詞級別的影象塊;然後訓練的模型預測區域分數;再用watershed演算法來分割字元區域,即獲得字元的標註框。最後再將標註轉換到原圖上。
但是,這樣得到的“偽標籤”未必是準確的。考慮到對文字識別區域是否準確的一個判斷因素是單詞長度,可利用該點來衡量偽標籤的置信度:對於一個單詞級別的標註樣例W,讓R(w)表示邊框區域,l(w)表示w的長度。通過字元分割過程,我們可以獲得字元邊界框以及它們對應的長度,置信度Sconf(w)的得分計算為:
在這裡插入圖片描述
如果Sconf(w)置信度分數小於0.5,預測得到的字元邊界框應該被忽視,因為在訓練過程中它們會產生不利的影響。
對於單個畫素p,畫素置信圖Sc被計算為:
在這裡插入圖片描述
損失函式L定義為在這裡插入圖片描述
S*r( p ) 表示生成標註的區域分數,S*a( p )表示生成標註的連線分數圖。Sr( p )和Sa( p )分別表示預測的區域分數和連線分數。當用合成數據訓練時,我們可以獲得真實標註,所以Sc( p )設定為1。

推理

從Sr和Sa生成單詞水平的邊界box。首先,用二進位制圖M覆蓋整個圖片,初始化為0。M§設為1,如果Sr( p) > τr或Sa( p) > τa, τr是區域閾值,τa是連線閾值。隨後執行M上的CCL(連通區域分析)。最後,四邊形包圍框通過尋找包圍連線部分的最小旋轉矩形來獲得。
CRAFT的一個優勢是不需要後處理方法,如NMS。因為我們有通過CCL進行單詞區域分割的影象塊。對於一個單詞的包圍框是通過封閉的矩形來定義的。特別指出的是,我們的字元連線過程是在畫素水平進行的,與其它顯式依靠搜尋文字連線部分連線方法不同。

結論

尺度不變性的粗壯性:本方法在所有資料集上都進行單尺度的測試,不像其它資料集依靠多尺度測試來解決尺度變化大的問題。這個優勢來自於模型的對字元的定位。
多語言問題:我們的模型不能辨別孟加拉和阿拉伯字元,因為在合成的訓練集不包含這些。
與端到端的方法對比:我們的方法僅僅來檢測,但是它可以跟端到端的方法相媲美。
通用能力:我們的方法不用額外的資料在3個數據集上實現了最好的效能。這展現了我們模型的普遍適用性。

個人總結

核心思想:
1.提出單字分割以及單字間分割的方法,更符合目標檢測這一核心概念,不是把文字框當做目標,這樣使用小感受野也能預測大文字和長文字,只需要關注字元級別的內容而不需要關注整個文字例項
2.提出如何利用現有文字檢測資料集合成資料得到真實資料的單字標註的弱監督方法

優勢:
1)尺度不變性的粗壯性:本方法在所有資料集上都進行單尺度的測試,不像其它資料集依靠多尺度測試來解決尺度變化大的問題。這個優勢來自於模型的對字元的定位。
2)不需要後處理方法。字元連線過程是在畫素水平進行的,與其它顯式依靠搜尋文字連線部分連線方法不同。
3)經改進後可識別多種形狀的文字區域,如拱形等。
4)可結合字元分析器,直接實現字元的提取
不足:
不能很好的處理多語言問題,因為不是每種語言都可以被劃分到一個個字元。