CS131专题-6:图像特征(Blob检测、LoG算子、Harris-Laplacian)
?本專題介紹的技術應用已不廣,但是這些有利于理解SIFT算法的原理,也有助于感悟CV傳統技術的發展變遷,以及解決問題的思路。
速記要點:
blob是什么:blob是描述圖像中局部區域的平均像素強度的特征。而圖像中局部的平均像素強度具有尺度不變性。blob特征畫在圖像上就是個圓。
blob特征有什么性質:具備光強強度、旋轉不變性,但是不具備尺度和仿射不變性。
blob檢測的大概流程:用不同尺度的拉普拉斯核(需要歸一化),對原圖上每個像素點做卷積,如果某個結果有鄰域內最大值,則這個像素點位置,就有個根號2乘以該拉普拉斯核σ尺寸的blob圓。
如果忘記原理細節,可看下面的詳細版(語言和章節沒有過仔細整理)
目錄
速記要點:
1 問題的引發
2 Blob塊檢測
2.1 高斯一階導能求邊緣圖
2.2 高斯二階導(拉普拉斯核:Laplacian of Gaussian)也能求邊緣
2.3 高斯二階導(拉普拉斯核:LoG)和信號進行卷積的特性
2.4 拉普拉斯核與圓做卷積的情況
2.5 Blob塊的特征尺度是什么
2.6 實際上怎么判定一個Blob
2.7 Blob檢測效果
2.8 Blob檢測流程
2.9 Blob檢測的缺點和改進(Harris角點+拉普拉斯)
1 問題的引發
上次介紹了Harris 角點檢測,雖然對于光照強度、旋轉改變具有較好的檢測不變性,但是卻不具有尺度不變性和仿射不變性。
本專題介紹擁有對光照強度、旋轉、尺度有較好檢測不變性的特征:Blob
下圖是使用不同焦長拍攝的兩張圖片,我們希望找到某種特征提取器,能夠實現下面這種兩張不同尺度圖片中找到相同的內容:
2 Blob塊檢測
blob塊是描述圖像中局部區域的平均像素強度的特征。而圖像中局部的平均像素強度具有尺度不變性。下面講解Blob檢測的整個來龍去脈和原理。
2.1 高斯一階導能求邊緣圖
前面專題我們講過圖像邊緣檢測原理,如下圖:
忘了的可看下面解釋:
- 通常邊緣檢測流程是:高斯核對圖像進行平滑去噪,然后對去噪后圖像進行求導,從而得到原圖的邊緣圖。
- 但是為了減少計算量,根據卷積性質,可以先對高斯求一階導,然后把它和圖像進行卷積,也能得到整個圖像的邊緣圖。上圖中第3行圖像中波峰位置就是邊緣。
高斯核的一階導(x方向偏導、y方向偏導)模樣可視化如下:
2.2 高斯二階導(拉普拉斯核:Laplacian of Gaussian)也能求邊緣
高斯二階導同樣也能用來求邊緣,下圖第3行圖中上下兩個波峰的中間位置即為邊緣位置。
高斯二階導(拉普拉斯核:LoG)可視化如下圖所示:
σ=1.4時的離散拉普拉斯核如下:
2.3 高斯二階導(拉普拉斯核:LoG)和信號進行卷積的特性
如上圖所示,第一列是信號,它們有不同的寬度(也就是不同尺度),第2列是用σ=1的拉普拉斯核和信號進行卷積的結果。
分析4種情況會發現,當信號尺度和拉普拉斯核尺度一致時,結果會出現一個絕對值最大的波谷。(要記住:高斯核或拉普拉斯核只要確定了σ值,那么核寬度其實也就確定了。)
真實情況是我們不知道信號(圖像)情況,所以需要用不同σ值拉普拉斯核去試。
但直接用不同σ值的拉普拉斯核去和信號做卷積,隨著σ值逐漸變大,卷積的結果會逐漸衰減,如下是取不同σ值時的卷積結果:
為什么信號會被衰減?原因如下:
下圖是高斯核一階導和紅粗線信號的卷積示意圖,卷積結果卷積結果就是高斯核一階導函數曲線小的面積。當σ變大,面積即能量會變小。
所以,要確保隨著σ變大后,信號不被衰減,如果是高斯核一階導,就要乘以一個σ值,做個尺度歸一化,使得能量不被衰減;如果是高斯核二階導(拉普拉斯核),就要乘以σ^2。
這么做后,使用拉普拉斯核卷積結果變成如下:
如上圖,會發現σ=8時,信號和拉普拉斯核會有一個絕對值極大值點。
2.4 拉普拉斯核與圓做卷積的情況
如上圖,假設有個上圖左邊這樣的圖像,中心區有個黑色的圓(像素值為0),四周是白色(像素值為255),如果用拉普拉斯核在該圖像的中心位置對該圖像做卷積,根據拉普拉斯核尺度與圓的直徑尺度關系不同,會有3種情況,如下:
- 上圖紅色線條是拉普拉斯核的一個切面曲線,根據拉普拉斯核定義,它中心區的元素值是小于0的,中心區外圍一段區域的元素值是大于0的。
- 黑色線條是上面那個image圖像的切面表示,把那張圖像想象成3D,黑色的圓區域內像素值全為0,圓之外區域像素都為255。
如上圖,只有圓的直徑剛好和拉普拉斯核的零值區間寬度一致時,卷積結果(累加求和)才會是最大的。
所以,只要拉普拉斯核的零值區間寬度剛好和圖像中圓的寬度一致,也即拉普拉斯核的零值區間寬度所形成的圓和圖像中圓剛好重合,那么這個尺度的拉普拉斯核就能和圖像中這個圓有最大值響應。
拉普拉斯核的簡化常量參數后的公式如下:
上述拉普拉斯核公式=0時,剛好就是拉普拉斯核的零值元素所形成的那個圓。上述公式=0也即e前面的計算結果要為0,如果要讓拉普拉斯核零值元素所形成的圓剛好和圖像中圓重合,那么只要σ取下面這個值就行:
2.5 Blob塊的特征尺度是什么
我們將Blob的特征尺度定義為在Blob中心產生拉普拉斯響應峰值的尺度。
2.6 實際上怎么判定一個Blob
預設一批待取的σ值,遍歷圖像中每一個像素點,在每個像素點上用不同σ的拉普拉斯核進行卷積,每3個臨近的σ值的拉普拉斯核卷積結果作為1個判定組,如下圖示例:
假設對圖像中某像素點位置做3個不同σ值的拉普拉斯核卷積,結果如上,如果上圖中黑色'x'位置處的像素點,即σ=1.5時的拉普拉斯卷積,如果這個位置響應結果值比圖中其他26個位置或情況下的響應結果都大,那么這個像素點位置,就有一個Blob特征,尺度可以根據此處σ=1.5的拉普拉斯核求得。
簡單說就上述歸納為兩句話:
- 找到不同σ尺度下最大響應。
- 要做非極大值抑制。(不然只滿足第一條,有時候臨近像素點位置都會判定為有Blob)
注意:即便滿足上述兩條規則,同一個像素點位置,可能會有、也可以有不同尺度的Blob,這是合理的。
2.7 Blob檢測效果
2.8 Blob檢測流程
??? 1)使用不同尺度Gassian函數的歸一化二階梯度分別于圖像卷積;
??? 2)合并不同尺度下卷積圖像形成三維圖像;
??? 3)在三維圖像中尋找局部極大值,該極大值即為檢測到的Blob塊 。
2.9 Blob檢測的缺點和改進(Harris角點+拉普拉斯)
很顯然,運算量非常大!需要用不同尺度的拉普拉斯核對圖像做卷積,σ越大,計算量也越大,計算很慢。
一個改進的方法是:先檢測圖像中的Harris角點,然后去判定這些角點附近在不同尺度空間是否有拉普拉斯特性。這種方法源自:K.Mikolajczyk, C.Schmid. “Indexing Based on Scale Invariant Interest Points”. ICCV 2001
比較好的參考:
Blob檢測 - luofeiju - 博客園
區域檢測——Blob檢測 - Moonx5 - 博客園
總結
以上是生活随笔為你收集整理的CS131专题-6:图像特征(Blob检测、LoG算子、Harris-Laplacian)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CS131专题-4:拟合(最小二乘、RA
- 下一篇: CS131-专题7:图像特征(SIFT算