應用筆畫寬度變換(SWT)來檢測自然場景中的文本


Introduction:

應用背景:是盲人輔助系統,城市環境中的機器導航等計算機視覺系統應用的重要一步。獲取文本能夠為許多視覺任務提供上下文的線索,並且,圖像檢索算法的性能很大部分都依賴於對應的文本檢測模塊。

意義:傳統的OCR應用於掃描文本,所以其依賴於把文本從背景像素中正確分離。這對於掃描文本來說是很簡單的,但是自然圖像由於存在色彩噪聲,模糊,遮擋,很難將文本從背景中分離。

文章提出的方法:文本有着固定的筆畫寬度,利用這一特性就夠從背景中將其恢復。首先求圖像的筆畫寬度變換即每個像素都分配了一個筆畫寬度,然后利用靈活的幾何推理,把有着相似比划寬度的位置都被聚合成詞。這相似並不是很嚴格,在一定范圍內變化都是可以的。

優點:1.沒有提取分離每個像素特征如:顏色,梯度等,而是提出像素組的特征。2.沒有使用在多尺度金字塔上滑動的窗口,而是基於自底向上的方式,把有着相似筆畫寬度的像素歸並成連通域。3.沒有利用特定的語言信息濾除機制,所有能夠用於多語言的文本檢測。

previous work :

1.基於紋理的

在多個尺度上掃描圖像,然后利用一些文本的特性如:高密度的邊緣,文本上下的低梯度,灰度變化明顯,波形的分布,離散余弦變換系數等來分類像素。其缺點是大計算量,缺乏精度。

2.基於區域的

利用像素存在着相似的特性如一樣的顏色來組織像素成連通域。然后利用幾何或者紋理信息來排除那些不可能是文本的連通域。優點是:同時在各個尺度檢測文本,並且不限制於水平方向的文本。

The flowchart of the algorithms:

step1 step2

流程首先計算圖像的canny 邊緣,然后根據邊緣的方向信息計算圖像的SWT ,根據筆畫寬度信息將像素聚集成連通域,利用幾何推理如連通域的高寬比,連通域筆畫的方差,均值,中值等來過濾連通域,將連通域聚集成文本行,最后將文本行分割成一個個詞。流程的核心為SWT和濾除連通域。下面給出這些步驟的詳細闡述,並給出matlab和C++代碼。

1.筆畫寬度變換

輸入的是原始彩色圖像,輸出的是對每個像素都分配了筆畫寬度的圖像。

First pass:

 

 boke_swt bokei1

這個流程圖有兩個問題1.如果一個點被多個路徑掃描到,那么就賦值為最小路徑距離即筆畫寬度。2.在筆畫的轉彎處會出現問題,如上圖右邊,從上到下和從左到右的兩條路徑經過這點,假設從上到下的筆畫寬度為50,從左到右為40,那么這點的筆畫寬度為40.這顯然不符合實際情況。這就需要第二次掃描。

Second pass:

 

image

第二次掃描流程是,對於所有第一次掃描到的路徑,求出路徑上的中值,將所有這條路徑上大於中值的點全部賦值為中值。

2.像素聚成連通域

從第一步我們得到的是筆畫寬度圖像,這時也還是一個個像素,所以我們要根據一些規則把像素合並成區域(即自底向上的一個過程)這個主要通過改變傳統連通域分析的連接條件得到,傳統連通是像素周圍4連接或者8連接的像素都是同一值則是同一連通域,而這里改變了這一條件,中心像素和周圍像素SW(筆畫寬度)比不能超過3.0.

3.連通域濾除

第二步得到的連通域中存在着許多明顯不是字符的區域,我們需要根據一些先驗的知識濾除這些區域。主要是根據以上幾個規則

varianceSW:連通域筆畫的方差。meanSW:連通域筆畫的均值。aspectRatio:連通域高寬比。diameter:連通域直徑。width:連通域寬。height:連通域高

1). 10<height<300;

2).varianceSW/meanSW > .5

3).diameter/medianSW >= 10

4).aspectRatio < 0.1 && aspectRatio > 10

5).連通域的boudingbox不能包含超過兩個的連通部件

4.字符成文本行

同第三步一樣,從上面得到的是一個個候選的字符(連通域),我們需要把字符合並成文本行。依據以下的規則

1).兩個候選字符的中值筆畫寬度比不超過2.0.

2).字符的寬度不超過3倍於最寬的字符寬度。

3).字符的顏色一致

5.文本行分割成詞

通過文本行的水平距離直方圖來分割(??)

論文地址:http://www.math.tau.ac.il/~turkel/imagepapers/text_detection.pdf

核心部分的c++和matlab見下篇。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM