怎樣理解結構張量?

在圖像處理中,經常見到結構張量,怎樣理解?它與張量由什麼關係?有怎樣幾何意義或物理意義?


首先,我覺得結構張量裡面那個矩陣並不是Hessian矩陣,怕記錯還特意查了一下。hessian矩陣裡面是二階導,而結構張量里的矩陣是由一階導的乘積組成的。

兩個月前第一次接觸這個概念,搜了知乎,搜到了這個問題,那時候答案數為零,我就邀請了很多人來答,一直沒得到滿意的答案。五月的時候碰巧學到了這個概念,今天終於找到了個時間來自己答一下。如有錯誤望指出~

  • 從corner detection 說起

corner detection 和 edge detection 最大的不同是,在轉角位置局部結構信息的方向有著劇烈的變化。也就是說,檢測這些轉角的過程,其實是在尋找圖像灰度變化最大(正交與該轉角的方向)也就是所謂梯度方向和最小(該轉角)方向的過程。這也就意味著我們建立的數學方程中需要包含一個局部區域內所有梯度方向的信息。

  • corner detection 方程建立

從上面的分析中我們可以知道,需要局部結構轉角的信息,意味著在一個鄰域B_{
ho } (x,y)內,尋找與梯度垂直和平行的單位向量n

建立包涵局部區域內梯度方向均值信息的方程。

平方消除了同一方向上不同指向的正負差異,這些差異對轉角的檢測是沒有用的。並且還可以幫助我們建立對稱矩陣(
abla u*
abla u^T)。

此時n垂直與梯度時E有最小值,平行與梯度時方程E有最大值。

  • 什麼是結構張量

通常在應用中我們不會直接求均值,而是會用一個高斯權重來求鄰域梯度信息的均值,因此上圖中兩個單位向量中間夾著的部分經常被寫成:

也就是所謂的結構張量了。

想要知道結構張量究竟怎麼用的,我們還需要對上面建立的方程結合轉角的檢測進行分析。

從線性代數中我們知道,由於實對稱矩陣的特徵值畢為實數,使其二次型最大化的向量正是它最大特徵值所對應的特徵向量,使其二次型最小化的向量正是它最小特徵值所對應的特徵向量。J是個2*2的矩陣,最多也就兩個特徵值,兩個特徵向量。

也就是說我們將尋找「梯度垂直和平行的單位向量n」,轉化為了尋找「結構張量的特徵值對應的特徵向量」。

  • 分析結構張量

結構張量是個實對稱矩陣

結構張量正交的特徵向量描述了
ho 鄰域內的相對與梯度變化最大最小方向。

平面:特徵值1=特徵值2=0 (沿著梯度和垂直梯度都沒有灰度變化)

直線:特徵值1&>&>特徵值2=0(垂直梯度方向的向量大小為零,證明此方向無變化;沿著梯度方向的向量較大,證明這個方向上有灰度變化。)

轉角:特徵值1&>=特徵值2&>&>0(沿著梯度方向與垂直梯度方向的向量大小均不為零,證明這兩個方向上都有灰度變化。)


網上搜結構張量都是對那個「lena」圖像做的一個小程序,但是像他那麼做的話,結構張量不就是奇異矩陣了嗎,特徵值只有一個,還怎麼分析?


推薦閱讀:

圖像分割領域常見的loss fuction有哪一些?
如何使用js獲取圖片像素矩陣?
圖像上的頻率指的是什麼?
數字圖像處理處理中的數學怎麼提高?
圖像處理和機器學習有什麼關係?

TAG:圖像處理 | 微分幾何 | 張量 |