| 特征检测 |
| --- |
| 典型角检测算法的输出 |
| 边缘检测 |
| * Canny
* Canny–Deriche
* Differential
* Sobel
* Prewitt
* Roberts cross
 |
| 角检测 |
| * 哈里斯算子
* Shi and Tomasi
* Level curve curvature
* SUSAN
* FAST
 |
| 斑点检测 |
| * Laplacian of Gaussian (LoG)
* 高斯差
* Determinant of Hessian (DoH)
* 最大稳定极值区域
* PCBR
 |
| 脊检测 |
| 霍夫变换 |
| * 霍夫变换
* 广义霍夫变换
 |
| 结构张量 |
| 
仿射不变特征检测 |
| * 仿射形态修改
* 仿射不变性特征
* Hessian affine
 |
| 
特征描述 |
| * SIFT
* SURF
* GLOH
* HOG
 |
| 尺度空间 |
| * 尺度空间公理
* 实现细节
* 金字塔
 |
| * 
* 论
* 编
 |

**哈里斯邊角偵測**(Harris Corner Detector)是被廣泛運用在電腦視覺的演算法，主要是用於從影像中找出代表邊角的特徵點。最早是由Chris Harris 和Mike Stephens在1988年所提出，在當時是莫拉維克邊角偵測器的改進版本。與 莫拉維克邊角偵測器相比，不是對局部小塊區域作45度角移動，而是考量了方向性值直接算出邊角的微分值，這個方法在當時已被證明可以更準確地去分辨出邊角。自從哈里斯邊角偵測器被提出後，後續有很多演算法試著去改良它，而這類的演算法也在很多影像處理的應用上被採用作為前處理。

概要介紹
----

角落的概念就是它相鄰的區域有兩條截然不同方向的邊，換句話說，角落也是兩條邊的接點，而這條邊的附近有劇烈的亮度變化。邊角是影像重要的特徵，基本上邊角的特性不會受到旋轉、平移以及影像亮度的影響。雖然邊角只是一張影像中的一小部分，但是通常卻代表著一張影像中最重要的特徵，因為它們的資訊相較於整張影像，富有代表性且可以被應用在影像接合，動作追蹤，建立二維馬賽克，立體視覺，以及相關的電腦視覺領域。

為了找出影像中的邊角，科學家們提出了很多不同種的邊角測試器包含Kanade-Lucas-Tomasi (KLT) 算子，哈里斯算子是其中最簡單，有效，及可信賴的方法。這兩種受歡迎的方法均是以局部結構矩陣來當作基礎，相較於Kanade-Lucas-Tomasi (KLT)邊角偵測，就算影像經過旋轉或者是亮度的調整，哈里斯邊角偵測具有良好的結果重現性，因此，它更被常使用在立體匹配及影像資料庫檢索。雖然仍有不少的缺點及限制，哈里斯邊角偵測依然在電腦視覺的應用中是相當重要且基礎的技術。

哈里斯邊角偵測的發展
----------

在不失去一般性的狀況下，我們假設使用的是一張二維的灰階影像。在這裡以I代表這張影像，假設我們現在針對一小塊局度區域{\displaystyle (x,y)\in W}移動了{\displaystyle (\Delta x,\Delta y)}，以f代表這兩塊小區域的加總平方差(SSD)，可以寫作

{\displaystyle f(\Delta x,\Delta y)={\underset {(x,y)\in W}{\sum }}\left(I(x,y)-I(x+\Delta x,y+\Delta y)\right)^{2}.}
{\displaystyle I(x+\Delta x,y+\Delta y)} 可以用泰勒展開去近似，以{\displaystyle I\_{x}}和{\displaystyle I\_{y}}分別代表I在x和y方向的偏微分，於是可以近似成

{\displaystyle I(x+\Delta x,y+\Delta y)\approx I(x,y)+I\_{x}(x,y)\Delta x+I\_{y}(x,y)\Delta y,}
所以f(x,y)可以寫成

{\displaystyle f(\Delta x,\Delta y)\approx {\underset {(x,y)\in W}{\sum }}\left(I\_{x}(x,y)\Delta x+I\_{y}(x,y)\Delta y\right)^{2}.}
如果以矩陣的形式來表達,

{\displaystyle f(\Delta x,\Delta y)\approx {\begin{pmatrix}\Delta x&\Delta y\end{pmatrix}}M{\begin{pmatrix}\Delta x\\\Delta y\end{pmatrix}},}
其中M代表結構張量,

{\displaystyle M={\underset {(x,y)\in W}{\sum }}{\begin{bmatrix}I\_{x}^{2}&I\_{x}I\_{y}\\I\_{x}I\_{y}&I\_{y}^{2}\end{bmatrix}}={\begin{bmatrix}{\underset {(x,y)\in W}{\sum }}I\_{x}^{2}&{\underset {(x,y)\in W}{\sum }}I\_{x}I\_{y}\\{\underset {(x,y)\in W}{\sum }}I\_{x}I\_{y}&{\underset {(x,y)\in W}{\sum }}I\_{y}^{2}\end{bmatrix}}.}

哈里斯邊角偵測的流程
----------

一般而言，哈里斯邊角偵測演算法可以分成下列幾個步驟:

1. 彩色影像轉換成灰階影像
2. 空間微分的計算
3. 建構結構張量
4. 計算哈里斯響應
5. 非極大值抑制

### 彩色影像轉換成灰階影像

如果輸入是一張彩色影像，第一步便是轉換成灰階影像，可以加快處理速度

### 空間微分的計算

第二步是計算整張圖的{\displaystyle I\_{x}(x,y),I\_{y}(x,y)} 。

### 建構結構張量

有了{\displaystyle I\_{x}(x,y),I\_{y}(x,y)}的資訊後，我們便可以建構結構張量M。

### 計算哈里斯響應

在這一步，我們會運用下列的近似的式子來計算結構張量矩陣的最小的特徵值:

{\displaystyle \lambda \_{min}\approx {\frac {\lambda \_{1}\lambda \_{2}}{(\lambda \_{1}+\lambda \_{2})}}={\frac {det(M)}{trace(M)}}}

{\displaystyle trace(M)=m\_{11}+m\_{22}}

另外一種常見的哈里斯響應是

{\displaystyle R=det(M)-k(trace(M))^{2}=\lambda \_{1}\lambda \_{2}-k(\lambda \_{1}+\lambda \_{2})^{2}}

而k是一個由經驗所訂出來的常數，{\displaystyle k\in [0.04,0.06]}。

### 非極大值抑制

由於只靠前面的步驟選出的特徵點很可能會在一小塊區域有很多個，我們希望能在局部區域選出值最大的，因此會設定各個擁有局部最大值的特徵點的距離不能太接近，如此便可以有效選出比較分散在整張圖的特徵點。

改進的偵測演算法
--------

1. 哈里斯-拉普拉斯邊角偵測

2. Differential Morphological Decomposition Based Corner Detector

3. Multi-scale Bilatera Structure Tensor Based Corner Detector

應用
--

1. 影像對齊，影像縫合，影像配準

2. 建立二維馬賽克

3. 三維場景建模及重建

4. 動作偵測

5. 物體識別

6. 基于内容的影像檢索

7. 影片追蹤

更多
--

* Structure tensor（英语：）
* Harris affine region detector（英语：）
* Corner detection
* Feature detection (computer vision)（英语：）
* Computer vision
* List of computer vision topics

參考資料
----

1. 1 2  Chris Harris and Mike Stephens (1988). "A Combined Corner and Edge Detector". *Alvey Vision Conference*. **15**.
2. ↑  Konstantinos G. Derpanis (2004). *The harris corner detector*. York University.
3. ↑ . scholar.google.com.  [2015-11-29].
4. ↑ . scholar.google.com.  [2015-11-29].
5. ↑  Bellavia, F.; Tegolo, D.; Valenti, C.. IET Computer Vision. 2011-03-01, **5** (2)  [2018-07-05]. doi:10.1049/iet-cvi.2009.0127. （原始内容存档于2018-11-27）.
6. ↑  Rosten, Edward; Drummond, Tom. Leonardis, Aleš; Bischof, Horst; Pinz, Axel , 编.. Lecture Notes in Computer Science. Springer Berlin Heidelberg. 2006-05-07: 430–443  [2018-07-05]. ISBN 978-3-540-33832-1. doi:10.1007/11744023\_34#page-1. （原始内容存档于2020-08-08） （英语）.
7. ↑ . scholar.google.com.  [2015-11-29].
8. ↑  Gueguen, L.; Pesaresi, M.. Pattern Recognition Letters: 1714–1719.  [2018-07-05]. doi:10.1016/j.patrec.2011.07.021. （原始内容存档于2017-10-14）.
9. ↑ . scholar.google.com.  [2015-11-29].
10. ↑  Kang, Juan; Xiao, Chuangbai; Deng, M.; Yu, Jing; Liu, Haifeng.. 2011 International Conference on Electronic and Mechanical Engineering and Information Technology (EMEIT). 2011-08-01, **7**: 3434–3437. doi:10.1109/EMEIT.2011.6023066.
11. ↑ . scholar.google.com.  [2015-12-02].
12. ↑ . scholar.google.com.  [2015-12-02].
13. ↑  Liu, Meng; Wu, Chengdong; Zhang, Yunzhou.. Control and Decision Conference, 2008. CCDC 2008. Chinese. 2008-07-01: 5287–5291. doi:10.1109/CCDC.2008.4598340.
14. ↑ . scholar.google.com.  [2015-11-29].
15. ↑ . scholar.google.com.  [2015-12-02].
16. ↑ . scholar.google.com.  [2015-12-02].
17. Chris Harris and Mike Stephens (1988). "A Combined Corner and Edge Detector". *Alvey Vision Conference*. **15**.
18. Dey, Nilanjan and; et al. (2012). "A Comparative Study between Moravec and Harris Corner Detection of Noisy Images Using Adaptive Wavelet Thresholding Technique". *arXiv preprint*. p. 1209.1558. CS1 maint: Explicit use of et al. (link)
19. Konstantinos G. Derpanis (2004). *The harris corner detector*. York University.

外部連結
----

* "Learn OpenCV by Examples : Harris Corner Detection"（页面存档备份，存于）
* "Harris Corner Detection - OpenCV Documentation"（页面存档备份，存于）
* "Harris Corner Detection - OpenCV-Python Tutorials"（页面存档备份，存于）