导读
本文首先介绍图像特征,然后讲解点中特征和描述符的相关分类和特点。最后展示了特征匹配与图像的关系,完整描述了整个建模过程中特征点检测和匹配的知识。
1、图像特征点的应用
相机标定:棋盘角点阴影格式固定。通过检测不同视角的点可以得到匹配结果。标定相机内参考图像拼接:匹配不同视角,还原相机姿态。密集重建:间接利用特征点作为种子点扩散匹配,获得密集点云场景。理解:bag-of-words方法,以特征点为中心生成一个关键词袋(关键特征)用于场景识别2、图像特征点的检测方法
手动设计的检测算法:sift、surf、orb、fast、hog 基于深度学习的方法:人脸关键点检测、3D匹配点云匹配场景中人工标记点:影视场景背景上的简单标记、特殊QR代码设计(速度快,精度低)3、图像特征点的基本要求
差异性:场景中视觉上显着的点、明显的灰度变化、边缘点等重复性:相同的特征在不同的视角、旋转、亮度和尺度不变性下重复出现
1、Harris 角点检测(早期,原理简单,视频跟踪,快速检测)
萌妹Mayshine:角点检测(二)-harris算子-理论与Python代码
https://zhuanlan.zhihu.com/p/90393907
动机:特征点具有局部差异性以每个点为中心取一个窗口,例如,55/77的像素,描述特征点周围环境此点具有差异性-窗口往任意方向移动,则周围环境变化较大-具有局部差异性最小二乘线性系统加和符号:表示窗口内每个像素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)提出了高斯拉普拉斯(LoG)函数的极值点对应于特征点尺度空间:使用不同大小的滤波器核(例如高斯滤波器)对图像进行滤波。滤波器核越大,越模糊,分辨率越小。经过不同滤波器核滤波后的空间是尺度空间=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附近逼近一个二阶函数,并找到二阶函数的极值order函数得到更准确的结果亚像素极值位置矩阵的表达- 一阶矩阵的表达- 二阶极值点可能是边缘点, - 去除边缘点:DoG在边缘处取值较大,它需要避免检测边缘点来计算主方向:通过统计梯度直方图的方法确定主方向,使算法具有旋转不变性SIFT特征检测过程:旋转不变性、尺度不变性、亮度变化不变性、对视角变化和仿射变换具有一定程度的稳定性。
1)计算图像尺度空间:2)DoG极值点检测与定位:保留特征点3)边缘点去除:4)计算主方向5)生成描述符6)检测结果4、快速特征点检测方法:——实时性要求高
FAST特征点[3]:Feature from Accelerated Segment Test
1)以候选点p为圆心构造一个离散圆2)将圆周上的像素与点p的像素值进行比较3)当有n个连续的像素值明显比p更亮或更暗时,p检测为特征点,Fast9和Fast12特征示例:通过检测局部像素灰度变化来确认特征点位置,速度快,是SIFT的100倍;无尺度和旋转不变性
过程:
检测:
Oriented FAST (ORB)
获得尺度不变性:构建图像金字塔并检测金字塔每一层上的关键点。获得旋转不变性:通过灰度质心法(Intensity Centroid)确定图像的主方向。图像块B上的矩定义为:图像块B的质心。 定义为: 计算方向角: 检测结果:
特征描述子 Feature Descriptor
每个特征点都有唯一的身份认证。同一空间不同视角下的特征点具有高度相似的描述符。不同特征点的描述子应该尽可能不同。通常描述符是一个固定长度的向量。特征支持区域
主方向:旋转,特征尺度重新插值:影响支撑区域的大小1、基于直方图的描述子
(1)用于微小运动的描述子 [4](e.g.相邻两帧视频)
定义:以特征点为中心的矩形区域内所有像素点的灰度值作为描述符特征:适用于变化微小的图像对。当存在明显的旋转、缩放、光照和透视变换时,图像不稳定。
(2)Sift描述子——旋转主方向
定义:按照主方向旋转支撑区域,通过双线性插值重构特征:图像归一化处理、去除光照变化统计和局部梯度信息处理:
1)将区域划分为4x4的块; 2)各块内统计梯度方向直方图(高斯加权梯度为系数)(2)Sift描述子——生成描述子
(2)Sift描述子——归一化处理
加工方法
1)阈值处理——直方图各个方向的梯度幅值不超过0.22)描述符长度归一化特性:归一化处理提高了特征点光度变化的不变性
SIFT 描述符变体:PCA-SIFT/SURF
(3)GLOH描述子[5]:Gradient Location-orientation Histogram
总共有1+2x8=17 个块。每个块计算16个方向的直方图描述符,总共16x17=272个维度。通过PCA可以将维度降到128 (4) DAISY描述符[6]:每个圆的半径对应高斯尺度
2、基于不变性的描述子
3、二进制描述子——BRIEF
描述符形式:描述向量由N个0或1组成N=128,256,512
描述符特点:生成速度快(汉明距离)、匹配效率高、简单有效;无旋转不变性
描述一下子流程:
1)进行图像预处理,如高斯滤波器——,去除噪声2)在支持区域中随机采样N对大小为55的patch 3)比较patch中像素总和的大小,并保留结果形成特征向量$au(p; x, y)=left{egin{aligned} 1, ifp(x)
计算两幅图像中特征描述符的匹配关系
1、距离度量
归一化互相关,1 -非常匹配,0-不匹配
2、匹配策略
最近邻:加了距离约束,防止孤立点
3、高效匹配
4、特征匹配验证
审稿人:李茜