分割文字 基於分割思想的文字檢測演算法

2021-10-16 05:58:32 字數 2203 閱讀 5395

本文使用 zhihu on vscode 創作並發布

在文字檢測任務中,較少出現字元重合的情況(重合的字元人也認不出來啊),所以基於分割思想的文字檢測演算法也能得到很好的效果。

文字檢測領域常見的人工特徵演算法有兩種:swt和mser,這些方法的效率比滑窗法更高,精度也更好。

swt演算法思路:中的文字都具有一致寬度的線條。

其計算步驟如下:

計算梯度圖;

在梯度圖中尋找梯度方向相反的邊緣畫素對;

根據畫素對得到連通域,然後使用人工規則對連通域進行篩選,得到字元區域;

將字元區域拼接成文本行。

mser演算法的思路:單個文字內部的畫素值不會有太大差異, 類似於分水嶺演算法

其計算步驟如下:

從0到255,選擇不同的閾值對進行二值化;

記錄下不同閾值下的二值化影象的各個連通域的面積變化;

尋找在一定閾值範圍內,面積變化較為穩定的連通域;

根據人工規則從這些穩定連通域中篩選出文字區域;

opencv裡面有mser的實現,可以直接拿來用。

連通域法更關注區域性的特徵,這種區域性特徵難以區分中的類字元物體,如何剔除誤檢是這種方法首要解決的問題。

除這兩種演算法以外,還可以嘗試使用一些通用的區域性特徵運算元,我曾經用過harris角點,在文件和證件場景下的效果還是不錯的。

深度學習演算法在誤檢方便表現比傳統方法要好。

另外,雖然文字檢測中比較少有重合字元,卻還是需要處理字元粘連的情況,所以各種深度學習的模型在得到連通域之後,都需要再進行一步特殊的後處理過程。實現字元例項之間的區分。

下面四個演算法採用了四種不同的方式實現了文字例項的分隔。

網路結構如下:

模型的輸出包含兩個部分:

乙個是score map,是中的每個畫素為文字畫素的可能性(text/non-text),其訓練標籤是ground truth基礎上進行收縮之後得到的分割圖

乙個是score map上每個對應的檢測框的座標,這裡的座標有兩種表示方式:(1)點到四個邊界的距離+檢測框的傾斜角度(2)檢測框的四個頂點座標。

因為score map上每個達到閾值的點都會對應乙個檢測框,會產生很多高度重合的檢測框。所以east演算法中在nms之前新增了檢測框融合的操作,稱之為localnms。

注意:傾斜矩形或者四邊形的localnms計算量較大,純靠numpy或者pytorch介面很難實現實時檢測,需要借助shapely、opencv或者用c/c++自己寫。

因為感受野的問題,east對長文字效果較差,有長文字檢測需求的可以嘗試advancedeast。

網路結構如下:

網路的輸出也包含兩個部分:

乙個是score map, 也是中的每個畫素為文字畫素的可能性(text/non-text)。

乙個是link predict, 即每個畫素的八個相鄰位置與該畫素同屬乙個文字例項的可能性。

在**過程時,只要有乙個方向的link成立則認為兩個畫素屬於同乙個文字例項,然後使用並查集演算法將這些畫素點合併,合併之後用opencv找最小包含矩形即可。

網路結構如下:

在訓練之前,將ground truth進行多次不同比例的收縮,並生成對應的分割圖。

**不同粗細的文字區域,從細區域開始使用廣度優先搜尋,逐級膨脹得到連通域。

全名:character region awareness for text detection

網路結構如下:

網路的輸出也包含兩個部分:

乙個是region map, 是字元區域的高斯map 乙個是affinity map, 是字元之間的連線區域的高斯map

對於icdar15這樣的只提供了單詞級標籤的資料集,需要借助預訓練的模型來完成字元分割。

字元級的高斯map讓文字例項的分隔變得更加簡單。

割 分割文字 20140703

割字是用於分割文字,比如有一段文字如下 號40310的內容 如何創造思維 編著者雷 庫茲韋爾。21世紀最具洞察力的思想家和未來學家 庫茲韋爾定律 創立者,美國發明家名人堂獲獎者 美國國家技術獎獲得者 奇點大學校長 谷歌公司工程總監雷 庫茲韋爾最新力作。這是一部洞悉未來思維模式的顛覆之作。庫茲韋爾對於...

python實現文字分割

文字分割是自然語言理解資料預處理中的重要步驟,本段程式實現的是用 分割文章,並且分割子句單句成行 import re pattern r 正則匹配模式,用 表示至少乙個字元 flags sentence txt with open test.txt r encoding utf 8 as reade...

根據大小分割大文字 值得一看的文字檢測方法

前 言 目前深度學習方法做文字檢測比較普遍,但是也存在一些時候gpu資源不夠,這時候就需要一些其他的方法來檢測文字資訊,本文主要介紹不使用深度學習進行文字檢測的方法。文字檢測的瓶頸主要是處理那些對比度不同或嵌入複雜背景的文字。為了解決這些困難,本文主要介紹的方法可以基於不變的特徵,例如邊緣強度,邊緣...