Reading 1

Harris Corner Detector

Goal:學習並理解 Harris corner detector 的算法原理和演算步驟以及其特性。

簡介與原理

這是最早使用來做角檢測的做法,他首先定義所謂的「角」就是那些自我相似程度低的點。這個演算法檢查所有圖像中的像素,並考慮以該像素為中心點的一片範圍,該範圍與他周圍覆蓋最大的另一個範圍的相似度做為參考,而相似度通常是將兩個範圍的對應點計算誤差的平方和(SSD: Sum of Squared differences) ,越小代表相似度越高。而角點則是計算SSD後與其周圍相似度都差距非常之大的點,是為局部最大值(最不相似)的點。 

從左到右:

數學表示

流程與演算

缺點

簡介與原理

該算法是由Chris Harris和Mike Stephens在1988年提出,是一種基於灰度強度變化的局部特徵檢測算法,是為Moravec corner detector的改良版本

主要思想是通過計算圖像的局部區域在不同方向上的灰度變化來判斷其是否是角點。首先計算圖像的梯度,在此基礎上計算出每個像素在不同方向上的梯度值,進而得到該像素的M矩陣,M矩陣可以描述該像素周圍的灰度變化情況,再根據M矩陣的特徵值大小判斷該像素是否為角點,具體判斷方式可以使用角點響應函數,該函數利用M矩陣的特徵值來計算該像素的角點響應值,從而進一步判斷是否為角點。

數學式

M會擁有兩個特徵值 λ1和 λ2, 也就是橢圓的長短軸,所以:

流程與演算

1.計算 x 和 y 方向的梯度 Ix ,Iy。(Spatial derivative calculation)

2.使用計算出的梯度 Ix ,Iy 計算H矩陣。(Structure tensor setup)

3.計算Harris response。(Harris response calculation)

4.非最大值抑制 (Non-maximum suppression)

尺度不變性 scale invariance

旋轉不變性 rotational invariance

仿射不變性 affine invariance