SIFT/SURF、haar 特征、广义 hough 变换的特性对比分析 SIFT/SURF 基于灰度图, 一、首先建立图像金字塔,形成三维的图像空间,通过 Hessian 矩阵获取每一层的局部极大值,然后进行在极值点周围 26 个点进行 NMS,从而得到粗略的特征点,再使用二次插值法得到精确特征点所在的层(尺度),即完成了尺度不变。 二、在特征点选取一个与尺度相应的邻域,求出主方向,其中 SIFT 采用在一个正方形邻域内统计所有点的梯度方向,找到占 80%以上的方向作为主方向;而 SURF 则选择圆形邻域,并且使用活动扇形的方法求出特征点主方向,以主方向对齐即完成旋转不变。 三、以主方向为轴可以在每个特征点建立坐标,SIFT 在特征点选择一块大小与尺度相应的方形区域,分成 16 块,统计每一块沿着八个方向占的比例,于是特征点形成了 128 维特征向量,对图像进行归一化则完成强度不变;而 SURF 分成 64 块,统计每一块的 dx,dy,|dx|,|dy|的累积和,同样形成 128 维向量,再进行归一化则完成了对比度不变与强度不变。 haar 特征也是基于灰度图, 首先通过大量的具有比较明显的 haar 特征(矩形)的物体图像用模式识别的方法训练出分类器,分类器是个级联的,每级都以大概相同的识别率保留进入下一级的具有物体特征的候选物体,而每一级的子分类器则由许多 haar 特征构成(由积分图像计算得到,并保存下位置),有水平的、竖直的、倾斜的,并且每个特征带一个阈值和两个分支值,每级子分类器带一个总的阈值。识别物体的时候,同样计算积分图像为后面计算 haar 特征做准备,然后采用与训练的时候有物体的窗口同样大小的窗口遍历整幅图像,以后逐渐放大窗口,同样做遍历搜索物体;每当窗口移动到一个位置,即计算该窗口内的 haar 特征,加权后与分类器中 haar 特征的阈值比较从而选择左或者右分支值,累加一个级的分支值与相应级的阈值比较,大于该阈值才可以通过进入下一轮筛选。当通过分类器所有级的时候说明这个物体以大概率被识别。 广义 hough 变换同样基于灰度图, 使用轮廓作为特征,融合了梯度信息,以投票的方式识别物体,在本 blog 的另一篇文章中有详细讨论,这里不再赘述。 特点异同对比及其适用场合: 三种算法都只是基于强度(灰度)信息,都是特征方法,但 SIFT/SURF 的特征是一种具有强烈方向性及亮度性的特征,这使得它适用于刚性形变,稍有透视形变的场合;haar 特征识别方法带有一点人工...