大数跨境
0
0

系统性综述:特征点检测与匹配

系统性综述:特征点检测与匹配 极市平台
2023-03-13
0
导读:本文先从图像特征开始介绍,后分点阐述特征子和描述子的相关分类及特点,最后以图像展示了特征匹配的关系。
↑ 点击蓝字 关注极市平台

作者丨梦寐mayshine@知乎(已授权)
来源丨https://zhuanlan.zhihu.com/p/128937547
编辑丨极市平台

极市导读

 

本文先从图像特征开始介绍,后分点阐述特征子和描述子的相关分类及特点,最后以图像展示了特征匹配的关系,完整的叙述了整个建模过程中特征点检测与匹配的知识。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

一、图像特征介绍

1、图像特征点的应用

  • 相机标定:棋盘格角点阴影格式固定,不同视角检测到点可以得到匹配结果,标定相机内参
  • 图像拼接:不同视角匹配恢复相机姿态
  • 稠密重建:间接使用特征点作为种子点扩散匹配得到稠密点云
  • 场景理解:词袋方法,特征点为中心生成关键词袋(关键特征)进行场景识别

2、图像特征点的检测方法

  • 人工设计检测算法:sift、surf、orb、fast、hog
  • 基于深度学习的方法:人脸关键点检测、3D match点云匹配
  • 场景中的人工标记点:影视场景背景简单的标记,特殊二维码设计(快速,精度低)

3、图像特征点的基本要求

  • 差异性:视觉上场景上比较显著点,灰度变化明显,边缘点等
  • 重复性:同一个特征在不同视角中重复出现,旋转、光度、尺度不变性

二、特征检测子

1、Harris 角点检测(早期,原理简单,视频跟踪,快速检测)

梦寐mayshine:角点检测(2) - harris算子 - 理论与Python代码

https://zhuanlan.zhihu.com/p/90393907

  • 动机:特征点具有局部差异性
  • 以每个点为中心取一个窗口,例如,5×5/7×7的像素,描述特征点周围环境
  • 此点具有差异性->窗口往任意方向移动,则周围环境变化较大->具有局部差异性
  • 最小二乘线性系统
  • 加和符号:表示窗口内每个像素
  • w:表示权重,权值1或者以点为中心的高斯权重(离点越近权重越大)
  • I:表示像素,RGB/灰度
  • u,v:窗口移动的方向
  • H:harris矩阵,由两个方向上的梯度构建而成
  • 图像梯度:
  • Harris矩阵:
  • Harris矩阵H 的特征值分析
  • 两个特征值反映相互垂直方向上的变化情况,分别代表变化最快和最慢的方向,特征值大变化快,特征值小变化慢
  • λ1 ≈ λ2 ≈ 0, 两个方向上变化都很小,兴趣点位于光滑区域
  • λ1 > 0 , λ2 ≈ 0 ,一个方向变化快,一个方向变化慢,兴趣点位于边缘区域
  • λ1 , λ2 > 0 , 两个方向变化都很快,兴趣点位于角点区域(容易判断)
  • Harris角点准则代替矩阵分解:
  • 反映特征值情况,trace为迹
  • k的值越小,检测子越敏感
  • 只有当λ1和λ2同时取得最大值时,C才能取得较大值
  • 避免了特征值分解,提高检测计算效率
  • 非极大值抑制(Non-maximal Suppression) 选取局部响应最大值,避免重复的检测
  • 算法流程:
  • 0)滤波、平滑,避免出现阶跃函数

  • 1)计算图像水平和垂直方向的梯度





  • 2)计算每个像素位置的Harris矩阵





  • 3)计算每个像素位置的Harris角点响应值




  • 3+)非极大值抑制
  • 4)找到Harris角点响应值大于给定阈值且局部最大的位置作为特征点
  • 检测结果:

2、基于LoG的多尺度特征检测子

  • 动机:Harris角点检测不具有尺度不变性,让特征点具有尺度不变性
  • 解决方法:尺度归一化LoG算子,处理尺度的变化
  • LoG算子:Lindeberg(1993)提出Laplacian of Gaussian (LoG)函数的极值点对应着特征点

  • 尺度空间



  • 一副图像使用不同大小滤波核滤波(e.g.高斯滤波),越大的滤波核越模糊,分辨率越小,不同滤波核滤波后的空间为尺度空间=3维空间(图像+尺度),模拟人类视觉,较远物体模糊,一系列滤波核构成的不同分辨率图像为尺度空间->LoG能够处理不同尺度的图像


  • LoG算子[1]形式:高斯滤波性质:卷积->求拉普拉斯算子==求拉普拉斯算子->卷积 其中 是LoG算子
  • 尺度归一化LoG[2](使得具有可比性=汇率):其中 是尺度归一化LoG算子
  • 不同尺度下的LoG响应值不具有可比性
  • 构建尺度空间,同时在位置空间和 尺度空间寻找归一化LoG极值(极大 /极小)点作为特征点
  • 不同尺度下 的响应值

  • LoG特征检测算法流程
  • 1)计算不同尺度上的尺度归一化LoG函数值
  • 2)同时在位置和尺度构成的三维空间上寻找 尺度归一化LoG的极值点
  • 3)进行非极大值抑制,减少重复检测 (去除冗余、保持稳定性)
  • 检测结果:效果好,LoG计算量大

3、基于DoG的多尺度特征检测子(SIFT)——稳定和鲁棒

  • LoG可以由DoG近似:Lowe(2004)提出归一化LoG近似等价于相邻尺度的高斯差分(DoG)
  • 高斯空间:
  • 高斯差分DoG:相邻的空间做差,极点处对应特征点
  • 尺度空间的构建

    • 阶数:O=3 (octave=阶,每阶图像尺寸减少一半,阶数高->运算量大->尺度变化大)
    • 每阶有效差分数:S=3(每个阶内划分数)
    • 每阶层数:N=S+3
    • 高斯空间

    • 高斯差分

    • 有效差分 (尺度空间有上下两个邻域才行,边界无效)

    • 任意设置

  • 特征点位置的确定:
  • 1)尺度空间和图像空间上:3*3窗口,26个邻域,找极值点比其他都要大DoG,LoG找极大值或极小值
  • 2)横轴向代表离散位置,纵轴代表DoG响应值,在极值点邻域内求二阶函数的极值=准确像素位置
  • 亚像素特征点位置的确定

    • x: 为三维,坐标空间+尺度空间
    • f(x): 为DoG值
    • x0: 检测到离散坐标下的极大值点
    • 任务:在x0附近近似一个二阶函数,求二阶函数极值得到更准确的亚像素极值位置
  • 矩阵的表达-1阶
  • 矩阵的表达-2阶
  • 极值点有可能是边缘点,->除去边缘点:DoG在边缘处值较大,需要避免检测到边缘点
  • 计算主方向:通过统计梯度直方图的方法确定主方向,使算法具有旋转不变性
  • SIFT特征检测流程:旋转不变性、尺度不变性、亮度 变化不变性,对视角变化、仿射变换有一定程度的稳定性

    • 1)计算图像尺度空间:
【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读919
粉丝0
内容8.2k