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

Introduction:

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

意義:傳統的OCR應用於掃描文本,因此其依賴於把文本從背景像素中正確分離。這對於掃描文原本說是很簡單的,可是天然圖像因爲存在色彩噪聲,模糊,遮擋,很難將文本從背景中分離。算法

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

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

previous work :

1.基於紋理的

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

2.基於區域的

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

The flowchart of the algorithms:

step1 step2

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

1.筆畫寬度變換

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

First pass:pdf

 

 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見下篇。

相關文章
相關標籤/搜索