• 沒有找到結果。

名片文字行方向分析

第三章 研究方法

第二節 名片文字行方向分析

為了將前一節得到的文字連通元件建構成文字行,需要作文字行方向分

析,在此需要找到文字行的排列角度,本節使用 Hough 轉換和角度投影量統計

分析不同區域文字行的排列角度,再用 RLSA (Run-length smoothing algorithm)

[15]將混雜兩種排列角度的區域分開,最後得到名片各個區域的文字行方向。

3.2.1 Hough 轉換

在此研究中,使用 Epshtein 的 Hough 轉換方法[24],修改為針對特定區域

尋找文字行排列的角度。Hough(1962)首次提出一種方法,用來辨識影像中,特

定的圖形,如影像中的直線或是圓弧等可以用簡單的數學公式表現出來的圖

形。此方法將影像中的點由座標空間轉換到參數空間( Parameter Space ),使得

經過轉換後原圖上所有點都集中到轉換後空間的某些位置上。極座標(ρ,θ)

為參數空間,(x,y)為空間中之一點,直線方程式為:

xsin ycos (7)

其中ρ為直線到原點的垂直距離,θ代表ρ和 X 軸的夾角,如圖 18。

圖 18、參數空間示意圖

若影像大小為 m*m,則ρ的最大範圍為 2m ,θ介於90 90之間 ,可

以用 0 到 179 代換,初始化一個大小為 2m *180 之二維累加用表格 Hough

accumulator,此表格中的每格累計暫存器稱為 Hough cell。將原始影像點座標

(x,y)轉換到參數空間,找出相對應的(ρ,θ)值,並在 Hough accumulator

相對應的位置處加 1,所有原始影像點座標皆計算完後,將 accumulator 中累計

值超過門檻值之 Hough cell 取出,此時這些 Hough cell 所對應的(ρ,θ)值即

代表影像中的直線方程式參數。

Epshtein 修改之 Hough 轉換,方法為利用文字行與行之間的空白處計算文 件影像傾斜角度,流程如下:

1. 文件影像轉換為二值化影像 B,1 為前景色,0 為背景色。

2. 以 B 產生一複本影像 M,並做 dilate 運算。

3. 將 B 中的每個 pixel 分為兩類,若 pixel 值為 0,且其 M 相對應位置 pixel

值為 1,此 pixel 可能屬於文字行之間空白處,則在 Hough accumulator 中

對應的所有 Hough cell 之值皆加 1;若 pixel 值為 1,此 pixel 可能是文字的

一部份,對應的所有 Hough cell 之值皆減去一固定值δ,δ值實驗中為 8。

4. 計算一門檻值 T,T 值為所有 Hough cell 累積值之第 99 百分位數

5. 將累積值大於 T 之 Hough cell 保留,其餘歸零。

6. 最後對θ軸作一投影,投影量最大之對應θ值即為文件傾斜角度,也

就是主要文字行的排列角度。

由於名片影像不一定只有一種文字行排列角度,見圖 19(a),左方文字為直

排,右方文字為橫排,因此針對特定區域各別尋找文字行排列的角度可以更精

確達到文字行方向分析的效果。

本研究和 Epshtein 最大的不同為,使用 dilation 運算製作出影像 M 後,利

用影像 M(見圖 19(b))作相連元件抽取,並將較大的封閉區域視為分割不同方

向文字行之特定區域,見圖 19(c),一次以一個封閉區域內的範圍進行上述步驟

3 到步驟 6,分別計算文字行排列角度,如圖 19(d)所示。

(a)連通元件偵測影像 (b) dilation 操作

(c)影像分割成數個區域 (d) 各區域找出的文字方向

圖 19、計算文字行排列角度示意圖

3.2.2 角度投影量統計分析

前段之 Hough 轉換作法可找出大多數文字行的正確排列角度,但有一種情

況是,一個封閉區域內有兩種不同的的文字行排列角度。探究其原因,由於封

閉區域是以 dilate 運算得到,若兩種不同排版方式的文字行太過靠近,在切割

封閉區域時會被合併為同一區域來計算,見圖 20(a),(b)。而在英文名片中這樣

的情況並不常見,因直排會令可讀性(legibility)受影響,所以混合兩種排版

方式的研究並不多,中文是方塊字型,可讀性不受直排或橫排影響,在中文存

在直橫混排的情況下,需要分析文字行區域內是否有此情況,此處藉由觀察前

一節(3.2.1)所述對θ軸作投影之 histogram,如果出現雙峰情況,判斷此區域有

兩種文字排版角度,之後以 RLSA 將區域分割,將不同文字排版角度之區域分

開。若 histogram 為單一峰值,則直接延續本章第三節的方法。

(a)原始影像 (b) 右方和下方相連區域的文字方向

圖 20、區域內存在直橫混排示意圖

區域分割方法為:

1. 針對單一封閉區域,統計前一步驟(3.2.1)的 Hough transform 結果,每一 個有值的 Hough cell,以θ為橫軸,累積數目為縱軸繪出 histogram,如 圖 21

0 90 179

圖 21、角度投影 histogram

2. 如果 histogram 出現非單峰情況,表示此區域需要分割,此時只知道此 區域有兩種文字排版角度,但尚未得知此兩種排版角度的個別所在位

置,需藉 Run-length smoothing algorithm (RLSA)輔助文字行方向選

取。

3. 在需要分割的區域內使用 RLSA,若 histogram 最高峰橫座標為 90,則 以水平塗抹,如圖 22,若 histogram 最高峰靠近 0 或 179,則以垂直塗

抹。

圖 22、水平方向 RLSA 塗抹

4. RLSA 塗抹後,將較長的塗抹區域合併,捨去過短的塗抹區域,如圖

23,合併後的塗抹區域內文字排列角度為最高峰之橫座標值,剩餘區 域內文字排列角度為次高峰之橫座標值。

圖 23、RLSA 水平塗抹篩選區域

最後每個封閉區域內都得到一個代表文字排列角度的值(見圖 19)。假設 有 n 個區域,每個區域的角度值以 θk表示,k 1,2,...,n

圖 24、區域分割後的文字排列角度示意圖

相關文件