计算机视觉特征点检测(1) —— Harris特征点检测器
前言
在计算机视觉中,特征点又称为兴趣点或者角点,它通常具有旋转不变性和光照不变性和视角不变性等有点,是图像的重要特征直以,常被应用到目标匹配、目标跟踪、三维重建等应用中。
本篇介绍较为基础的Harris角点检测算法。
基础知识
角点
使用一个滑动窗口在图中滑动时,不管朝哪个方向移动,像素值都会发生很大变化。这个称之为角点。
角点有以下几个类型:
算法原理
算法的核心是利用局部窗口在图像上进行移动,判断灰度是否发生较大的变化。从而判断角点。
Harris角点检测算法分为以下三步:
- 当窗口(局部区域)同时向 x x x(水平)和 y y y(垂直)两个方向移动时,计算窗口内部的像素值变化量 E ( x , y ) E(x,y) E(x,y);
- 对于每个窗口,都计算其对应的一个角点响应函数 R R R;
- 然后对该函数进行阈值处理,如果 R > t h r e s h o l d R > threshold R>threshold,表示该窗口对应一个角点特征。
Harris特征点检测器的数学模型
- 窗口移动引起的灰度值的变化值: ∣ I ( x + u , y + v ) − I ( x , y ) ∣ |I(x+u, y+v) - I(x, y)| ∣I(x+u,y+v)−I(x,y)∣。
- w ( x , y ) w(x, y) w(x,y)表示位置 ( x , y ) (x, y) (x,y)处的窗口函数,即表示窗口内各像素的权重。
- E ( u , v ) = ∑ x , y w ( x , y ) [ I ( x + u , y + v ) − I ( x , y ) ] 2 E(u, v) = \sum_{x, y}^{}w(x, y)[I(x+u, y+v) - I(x, y)]^{2} E(u,v)=∑x,yw(x,y)[I(x+u,y+v)−I(x,y)]2,其中用均值滤波表示 w ( x , y ) = 1 w(x, y) = 1 w(x,y)=1
Taylor展开
这里引用二维的Taylor展开式:
T ( x , y ) = f ( u , v ) + ( x − u ) f x ( u , v ) + ( y − v ) f v ( u , v ) + . . . T(x,y) = f(u,v) + (x-u)f_{x}(u,v) + (y-v)f_{v}(u,v) + ... T(x,y)=f(u,v)+(x−u)fx(u,v)+(y−v)f