局部特征(Local Feature)

文章首发:xmoon.info

局部特征(Local Feature)

对于图像处理时经常需要提取特征点分析图片结构,将照片进行拼接,实现全景拍摄,那么在照片特征点提取时所采用的具体算法是什么呢?

局部特征(Local Feature)

解决思路

  1. 提取特征点
  2. 匹配特征点
  3. 使用RANSAC方法将两张图片的对应的特征点转换的方式拟合出来,在对图片采用相同的转换方式进行转换,在进行拼接

特征点——Corner

好的特征点是什么样的?

  1. 可重复性:在一张图可以被观测到的,在其他同场景的图也可以被观测到
  2. 显著性:检测的特征点需要是在某一类图像中“独有的”,尽量剔除“普遍性”的点,目的是为了将不同类的图区分开
  3. 简洁和高效:尽可能的减少计算量,提高计算效率
  4. 局部性:匹配特征时要匹配特征点之间的相对关系,通过局部特征相对位置来判断是否为同一张图,来拟合转动镜头角度,图像位置

什么样的点满足条件

局部特征(Local Feature)
通过观察图片的特征,发现存在“”的地方承载着更多的信息,角点是梯度在两个或以上方向上有变化的点。

Basic Idea

  1. 使用一个较小的窗口在图像上延各个方向滑动
  2. 不同的变化趋势显示了不同的特征
  3. 图像内部所在的窗口延各个方向都没有变化;边缘所在的窗口延边缘方向无变化;角点所在窗口会在各个方向上都有显著的变化
    局部特征(Local Feature)

数学描述

局部特征(Local Feature)

  • uuvv是平移量
  • 求平移后的窗口与平移前的窗口的对应位置差的平方,再累加
  • 乘上窗口权重,考虑每个点对窗口影响的不同程度,例如第二种的高斯函数权重,就是考虑中间的点的差值在整个窗口的影响度更大
  • 二阶泰勒展开:为了能够直接观察到E(u,v)E(u,v)[u,v][u,v]之间的联系

    E(u,v)E(u,v)(0,0)(0,0)的二阶展开作为近似解
    局部特征(Local Feature)
    计算化简泰勒展开式
    局部特征(Local Feature)
    其中Ix,IyI_x,I_y分别表示点(x,y)(x,y)xx方向,yy方向的偏导,MM是由一个二阶矩矩阵加权求和得到

矩阵MM

类比方程y=ax+by=ax+b决定方程特性的是a,ba,b。则决定E(u,v)E(u,v)特性的是MM,分析矩阵MM就可以得到E(u,v)E(u,v)的特性
局部特征(Local Feature)

函数图像延竖直方向截取为一个椭圆,当梯度为零时,截面为圆,此时窗口位于图像内部;当延某一方向梯度为零时,界面为一个“正椭圆”,此时窗口位于边;当窗口位于角时,界面椭圆的形状反映了当前窗口下角的特性

  • 正交矩阵RR:使所截取的椭圆旋转RR角度,变为一个“正椭圆”

    局部特征(Local Feature)

    1. Ix,IyI_x,I_y任意一个趋于0,用λ\lambda表示,任意一个λ\lambda趋于0,都表示这个点不是角点
    2. 椭圆的半轴长度反应的是梯度变化的快慢,越长则梯度变化越快(将E(u,v)E(u,v)展开就可以得到椭圆的半轴表示为λ12\lambda^{-\frac12}
  • 可视化
    局部特征(Local Feature)

  • 特征值简化——角点响应函数R
    局部特征(Local Feature)
    λ1,λ2\lambda_1,\lambda_2特征转化给RR最后判断只需判断RR就可以确定是否为角点

Harris检测器

  1. 计算每个像素处的高斯导数
  2. 计算每个像素周围的高斯窗口中的二阶矩矩阵M
  3. 计算角点响应函数R
  4. 设置门限R
  5. 寻找响应函数的局部最大值(非最大抑制)

局部特征(Local Feature)

Harris的特性

  1. 当光线强度,明暗改变时,只是改变了部分角点的值,还有大部分的点可以用于检测,可以进行检测,
  2. 当改变位置,角度时,没有改变相对位置,可以检测
  3. 当改变窗口大小时,大窗口下是角点,而小窗口下是线或者边缘,无法检测
    局部特征(Local Feature)

学习资源:北京邮电大学计算机视觉——鲁鹏