16
1 1 第三章 測邊-Edge Detection 2 內容 3.1 前言 3.2 拉普拉斯(Laplacian)與Sobel算子 3.3 Marr+Hildreth算子 3.4 鬆弛法 3.5 基底投射法 3.6 輪廓追蹤法 3.7 動態規劃法

第三章 測邊-Edge Detection - ntut.edu.tljkau/Course/981/dip/03-Chapter3.pdf · 3.6 輪廓追蹤 法 3.7 動態 ... 符號I 代表需增加其強度d;符號U代表不改變其強度d;符號

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    1

    第三章測邊-Edge Detection

    2

    內容

    3.1 前言3.2 拉普拉斯(Laplacian)與Sobel算子3.3 Marr+Hildreth算子3.4 鬆弛法3.5 基底投射法3.6 輪廓追蹤法3.7 動態規劃法

  • 2

    3

    3.1 前言

    在影像的前置處理(Preprocessing)中,如何做好測邊(Edge Detection)的工作是非常重要的。

    4

    通過零點(Zero crossing)

    測邊: 灰階的突然變化(Abrupt Change)。兩個區域的邊緣處: 一次微分後形成的波峰(Peak)。若波峰超過門檻值(Threshold),在該處有邊點形成的邊線(Edge Line)。邊緣處不明顯處: 可用二次微分通過零點(Zero Crossing)觀念來判定。

    白黑ab c

    y

    -ab c

    y

    -

    圖3.2.1 兩個同質但不同色的區域

    圖3.2.2 圖3.2.1的一次微分結果

    圖3.2.3通過零點示意圖

    Zero+crossing

  • 3

    5

    通過零點的示意圖 。

    白 黑

    -

    f(-)

    -

    f’(-)

    -

    f″(-)

    (a) (c)(b)

    兩個同質但不同色的區域(edge 不清楚–變化緩慢)

    一次微分結果 通過零點

    6

    3.2 拉普拉斯算子:(Laplacian)先討論中間case: 對 f(-, y) 沿著 - 軸微分得差分:

    再進而對 - 軸微分 (可和差分交換使用)得:

    令 -=--1 以進行參數變換,可得:

    同理,沿著 y 軸微分二次得:

    合併二個軸的二次微分效應,可得拉普拉斯算子如下:

    ),(),1( yxfyxffx −+=∇

    ),(),1(2),2()],(),1([),1(),2(2

    yxfyxfyxfyxfyxfyxfyxffx

    ++−+=−+−+−+=∇

    ),1(),(2),1(2 yxfyxfyxffx −+−+=∇

    )1,(),(2)1,(2 −+−+=∇ yxfyxfyxffy

    ),(4),1()1,(),1()1,(

    222

    yxfyxfyxfyxfyxffff yx

    −−+−++++=

    ∇+∇=∇(3.2.1)

    010

    1+41

    010

    另兩種cases 同理 。

  • 4

    7

    測邊算子

    Sobel測邊算子:其對應的-方向與y方向面罩,(另為45o、135o方向)。

    從 和 的兩個分量,

    我們可知合成的量(Magnitude)為

    而角度

    為了計算更快速,並加上weight

    以 的運算取代的運算。

    Prewitt算子: 另外一個類似Sobel測邊算子的方法。

    1

    1−

    0

    2−

    0

    1

    1−

    0

    2 11−

    02−

    0 11−

    0

    2

    圖3.2.8 Sobel測邊算子

    (a) 測 y 方向的灰階變化 (b) 測 - 方向的灰階變化22 )()( ff yx ∇+∇

    ff

    x

    y

    ∇= −1tanθ

    fx∇ fy∇

    ff yx ∇+∇

    1

    1−

    0

    1−

    0

    1

    1−

    0

    1

    11− 0

    1− 0

    11− 0

    1

    圖3.2.9 Prewitt算子

    (a) 測 y 方向的灰階變化 (b) 測 - 方向的灰階變化

    8

    例如:給一5×5子影像,用Prewitt算子來測邊,假設門檻值 T = 78。

    2124576045

    1818331518

    31227219

    915482112

    1227423915

    使用Prewitt算子決定下面 3-3 pie-ls ((1)~(9))是否為邊點。

  • 5

    9

    (9)(8)(7)

    (6)(5)(4)

    (3)(2)(1)

    ff yx ∇+∇

    39-81 = 120 > T48-27 = 75 39-93 = 132 > T15-69 = 84 > T18-12 = 30 3-78 = 81 > T105-45 = 150 > T81-42 = 123 > T60-75 = 135 > T

    27+36+18= 81-12-6-9= -27-30-39-24= -9336+18+15= 69-6-9+3=-12-39-24-15= -7818+15+12= 45-9+3-36= -42-24-15-36= -75

    (1) -6-18-15= -39(2) -18-15-15= -48(3) -15-15-9= -39(4) +6-6-15= -15(5) -6-15+3= -18(6) -15+3+9= -3(7) 36+39+30=105(8) 39+30+12= 81(9) 30+12+18= 60

    x方向的灰階化y方向的灰階化

    圖3.2.10為使用Prewitt算子得到的相關資訊

    圖3.2.10利用Prewitt算子得到的結果

    10

    (9)(8)(7)

    (6)+(5)+(4)+

    (3)(2)(1)

    ---

    ff yx ∇+∇

    39-81 = 120 > T48-27 = 75 39-93 = 132 > T15-69 = 84 > T18-12 = 30 3-78 = 81 > T105-45 = 150 > T81-42 = 123 > T60-75 = 135 > T

    27+36+18= 81-12-6-9= -27-30-39-24= -9336+18+15= 69-6-9+3=-12-39-24-15= -7818+15+12= 45-9+3-36= -42-24-15-36= -75

    (1) -6-18-15= -39(2) -18-15-15= -48(3) -15-15-9= -39(4) +6-6-15= -15(5) -6-15+3= -18(6) -15+3+9= -3(7) 36+39+30=105(8) 39+30+12= 81(9) 30+12+18= 60

    x方向的灰階化y方向的灰階化

    圖3.2.10為使用Prewitt算子得到的相關資訊

    圖3.2.10利用Prewitt算子得到的結果

    -6 = 9-15;

    -18 = 21-39;

    -15 = 27-42;

  • 6

    11

    從圖3.2.10中可得知像素(1)、(3)、(4)、(6)、(7)、(8)和(9)皆為邊點,所以最後測邊結果為一個如下的倒ㄇ字型。

    ---

    --

    --

    Sobel算子的應用相同。

    12

  • 7

    13

    3.3 Marr+Hildreth算子Marr+Hildreth測邊算子結合了高斯平滑算子和拉普拉斯算子的雙重技巧。

    高斯平滑算子(Gaussian Smoothing Operator):

    LOG (Laplacian of Gaussian):

    表迴積運算,而 表拉普拉斯算子。

    2

    22

    2),( σyx

    eyxG+

    −=

    [ ]),(),,(2 yxfyxGLOG ∗∇= σ

    ∗ 2∇(3.3.2)

    ),()],,([ 2 yxfyxGLOG ∗∇= σ (3.3.3)

    (3.3.1)

    2

    22

    2)(

    4

    222

    )2( σσ

    σ yxeyxcLOG+−−+

    =* ONE CASE: (3.3.4)

    高斯平滑運算Zero+crossing

    14

    Plot of the negative of the LoG

    A 5x5 LoG mask

  • 8

    15

    對式(3.3.4)做解釋:使用的面罩大小仍為5-5,面罩內各像素的位置定義如下:

    (2,+2)(1,+2)(0,+2)(+1,+2)(+2,+2)

    (2,+1)(1,+1)(0,+1)(+1,+1)(+2,+1)

    (2,0)(1,0)(0,0)(+1,0)(+2,0)

    (2,1)(1,1)(0,1)(+1,1)(+2,1)

    (2,2)(1,2)(0,2)(+1,2)(+2,2)

    將面罩內25個位置座標代入下面式子中的(-, y)內

    2

    22

    2)(

    4

    222 2 σσ

    σ yxeyx+−−+

    計算 5-5 mask之 25個值。

    16

    如此一來,可得到25個值,根據這25個值的大小,可將它們分為4類,就得到下面墨西哥帽子式樣的面罩。

    Δ

    **O**

    *O-O*

    O--O

    *O-O*

    **O**

    * 號的值為趨近於零;- 、o 和 號的值都不大,呈現16:+2:+1的比例。△

  • 9

    17

    Example of the LoG

    σ=4N=25Threshold=4% of the maximum value of the image in LoG

    18

    ⎥⎥⎥⎥⎥⎥

    ⎢⎢⎢⎢⎢⎢

    −−−−

    −−−−−−−

    0010001210121621

    0121000100

    圖3.3.1 測試影像 圖3.3.2 利用Marr+Hildreth算子測邊後的結果

    (3.3.4)

    面罩大小為5×5,正規化後則可得下列面罩:

    Marr+Hildreth算子:

  • 10

    19

    3.4.1 Canny algorithms: 偵測邊首先利用高斯平滑算子去除過多的細紋,然後在每個像素上計算其梯度方向和梯度量。假若在這梯度方向上,該像素的梯度量大於二個鄰居的量,則該像素為邊點,否則為非邊點。較弱的邊點可利用磁滯(Hysteresis)門檻化予以去除。

    圖3.3.3 利用Canny測邊法所得到的邊圖(Edge Map)

    20

    3.4 鬆弛法

    有些邊不理想,由稀稀疏疏的邊點構成,而這些邊點並非連接的,可用鬆弛法判定(細節省略)。

    端點類型:

    圖3.4.1二個小例子

    (a) 強邊線例子 (b) 弱邊線例子

    (a) 無邊型端點 (b) 一邊型端點 (c) 二邊型端點 (d) 三邊型端點

    圖3.4.2端點的四個類型

    以上如何判定為連邊 ??

  • 11

    21

    (initial) 開始的信賴度:

    信賴度的疊代式:

    )()()(

    所有eSMax

    eSeCe

    ),(),()( '' yxfyxfeS −= ,此處 代表鄰近 的像素灰階值。

    ),( '' yxf ),( yxf

    (3.4.1)

    (3.4.2)⎪⎩

    ⎪⎨

    ∈−

    ∈+

    =+

    DedeCUeeC

    IedeCeC

    k

    k

    k

    k

     若))(,0max( 若)(

     若))(,1min()(1

    符號 I 代表需增加其強度d;符號U代表不改變其強度d;符號D則代表需減弱其強度d。直到對所有的e而言,時,就可停止這疊代的過程。也可自行設定疊代的次數限制。

    )()(1 eCeC kk =+

    I(加強)0+1,1+01+2 ,2+11+3 ,3+1

    1+1

    D(減弱)0+2,2+00+3,3+0

    0+0

    U(不動)2+2,2+33+3,3+2

    圖3.4.3強度增減表

    0代表無邊型端點,1代表一邊型端點,2代表二邊型端點,3代表三邊型端點。

    越大越是邊

    22

    舉一個小例子以說明式(3.4.1)

    首先將各像素以節點的型式表示,而鄰近兩兩像素的灰階差之絕對值以圖論符號的邊表示,我們由是得到下面的灰階差異圖:

    將{S(e)}集合中的最大值挑出,可得到 ,根據信賴度的定義,上面的灰階差異圖轉換為下面的信賴圖:

    ( )e

    MaxS e∀

    49

    79

    29

    29

    79 2

    929

    59

    29

    19

    19

  • 12

    23

    假設邊的門檻值定為0.5,則對端點A和端點B而言,可得到

    24

    3.5 基底投射法

    在圖3.5.1中任挑二個不同向量,皆可檢定出內積為零,從而知道這九個向量兩兩為正交的。

    令圖3.5.1中的九個向量分

    為 、 、 …和 ,

    則 、

    、…

    和可另外

    構成一組正交且單位化的基

    底。

    2

    2−

    1 1

    1− 1−

    000 2 2−

    1

    1

    1−

    1−0

    0

    0

    2

    1

    1

    1−

    1−

    0

    0

    0

    2−

    2

    2−

    1

    1

    1−

    1−

    0

    0

    0

    1

    1

    1−1−

    0

    0

    0 0

    0 1

    1 1−

    1− 0

    0

    0

    00

    1

    1

    4

    2−

    2−

    2−2−

    1

    1

    1

    1

    4

    2−

    2− 2−

    2−

    1 1

    1

    1

    1 1

    1

    11

    1

    1

    (a) (b) (c)

    (d) (e) (f)

    (g) (h) (i)

    圖3.5.1 基底

    1v 2v 9v

    1

    11 v

    vw =2

    22 v

    vw =

    9

    99 v

    vw =

  • 13

    25

    視窗所框住的 子影像,依列優先(Row Major Order)的順序得向量 。對上述九個正交且單位化的基底投影,

    可得 、 、 … 和 。令

    假設m對應的基底之向量為圖3.5.1(a),則代表有類似圖3.2.8(a)所測得的邊點。若對應的為圖3.5.1(i),則表z的紋理頗平滑的。

    實作時,也需引入門檻值,依迴積的方式進行。

    基底投射法的缺點是,有些基底向量的代表意義不是很明確。

    33×tzzzz ),...,,( 921=

    11 wzmt ⋅= 22 wzm

    t ⋅= 99 wzmt ⋅=

    },...,,{ 921 mmmMaxm =

    26

    Discussion:以上的九個基底向量為何要化成單位正交向量? 可否給一個示意圖以明示基底投射法的觀念?

    每個基底的向量經過單位正交化後,我們在進行基底投射(其實就是做內積運算)時,才有比較公平的尺度。令自影像中取出的3-3子影像為S,而 < , >代表子影像S和單位正交基底向量進行向量內積運算。當完成了所有的九個內積運算後,我們再從中排出最大內積值所對應的 。如果最大內積值大於門檻值,則 能讓我們更了解該邊點(子影像的正中央像素)的紋理特性。以上的運算可以用下面的示意圖來解釋:

    S

    iWiW

    iW

  • 14

    27

    2,S W< >1,S W< > 9,S W< >

    S1W 2W 3W 9W

    Max

    >T

    No

    Yes

    j

    . . .

    . . .

    28

    3.6 輪廓追蹤法(蛇行法 snake ++Active contour)

    在物體邊緣的外側些標識一圈控制點集(可利用雲形曲線集 )。能量函數 (求 minimum)( )dtEtEtEtE imagecurvcont∫ ++= )()()( γβα

    21

    2)(−−== iicont bbdt

    tdcE

    211

    2

    2

    2

    2)( +− +−== iiicurv bbbdttcdE

    IEimage ∇−=

    微分一次後連續項能量(平滑為佳,即 min)

    微分二次後平滑項能量(越小越平滑為佳)

    輪廓受到往影像邊點處的拉力(越大越趨向邊,加上“+"為 min)

    為影像中初步用雲形曲線框住的輪廓且輪廓上構成的點為 、 、 … 和 。通常 、 和 可定為1,但是若碰到角點 (Corner Point) 時, 可定為 0。

    )(tc1b 2b 3b nb iα iβ iγ

  • 15

    29

    雲形曲線(B+spline Curve)

    決定smooth曲線:

    iv 1+iv 2+iv 3+iv)(3,0 tN )(3,1 tN )(3,2 tN )(3,3 tN

    )()( 3,0 tNvtP ii ×= )()()( 3,333,223,11 tNvtNvtNv iii ×+×+×+ +++ 10 ≤≤ t

    )0()1( 3,13,0 NN =

    )0()1( 3,23,1 NN =

    )0()1( 3,33,2 NN =

    )0()1( ' 3,1'

    3,0 NN =

    )0()1( ' 3,2'

    3,1 NN =

    )0()1( ' 3,3'

    3,2 NN =

    )0()1( '' 3,1''

    3,0 NN =

    )0()1( '' 3,2''3,1 NN =

    )0()1( '' 3,3''

    3,2 NN =

    0)0(3,0 =N

    0)0(' 3,0 =N

    0)0('' 3,0 =N

    0)1(3,3 =N

    0)1(' 3,3 =N

    0)1('' 3,3 =N

    33,0 6

    1)( ttN =

    )1333(61)( 233,1 +++−= ttttN

    )463(61)( 233,2 +−= tttN

    )133(61)( 233,3 +−+−= ttttN

    [ ]⎥⎥⎥⎥

    ⎢⎢⎢⎢

    ⎥⎥⎥⎥

    ⎢⎢⎢⎢

    −−

    −−

    =

    +

    +

    +

    3

    2

    123

    0141030303631331

    161)(

    i

    i

    i

    i

    i

    vvvv

    ttttP

    給定四個控制點 , , 和 ,令四個接續的彎曲函數為 , , 和 。且該雲形線

    利用四個彎曲函數(Blending Function)的下列十六個boundary關係

    雲形曲線可表示為:

    30圖3.6.1 輸入的影像 圖3.6.3 最終所找到的輪廓圖3.6.2 初始輪廓

    正規化能量項:

    和 可除以視窗內相關能量的最大值。

    中的 可改為 ,這裡m代表鄰近 的最小值,而M代表鄰近 的最大值。從 出發,首先以 視窗將點 框住,針對視窗內的每一點

    計算其能量。移往能量和所得為最小的點。直到n個點都處理完。不斷地進行疊代直到輪廓不再改變為止。

    contEcurvE

    imageE

    I∇mMmI

    −−∇

    I∇ I∇

    1b 33× 1b

  • 16

    31

    3.7 動態規劃法假設我們給定起始像素集為 如圖3.7.1(a)所示。另外,假設我們想在最終像素 集中找到一個像素 使

    得 到 之間有一條路徑為邊點形成的最佳路徑,這路徑

    可看成物體的邊線。

    { }4321 P,P,P,PS ={ }16151413 P,P,P,PT = TPt ∈

    SPs ∈ tP

    1P

    14P

    12P11P10P

    4P3P2P

    8P6P5P

    9P

    7P

    13P 16P15P

    圖3.7.1(a) 一個小例子

    32

    首先利用拉普拉斯算子算出 , 的邊強度(Edge Strength)。所得的反應值如圖3.7.1(b) 所示。

    iP 41 ≤≤ i

    推進到倒數第二列,即S2 = {P5,P6,P7,P8}。把相關的反應

    值累加並取最大者即33。圖3.7.1(c) 為修正後花費圖。

    20

    19271815

    12251710

    1081315

    6510

    圖3.7.1(b) 初始反應值

    16183335

    圖3.7.1(c)修正後的花費圖

    77857667

    30585245

    16183335

    圖3.7.1(d) 最後的花費圖

    圖3.7.1(e)逆過程以找到最佳路徑

    同樣的計算方式,最後可得圖3.7.1(d) 的花費圖。從圖中可知85為最大的花費。從85所在的節點 往來時路退回去,可得圖3.7.1(e) 箭頭所示的最佳路徑。

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure true /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles true /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /NA /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /LeaveUntagged /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice