做移动网站,苏州企业网页制作,wordpress百科主题,网站建设的主要缺陷SIFT、SURF、FAST、ORB 特征提取算法深度解析
前言
在图像处理领域亦或是计算机视觉中#xff0c;首先我们需要先理解几个名词#xff1a;
什么是尺度不变#xff1f;
在实际场景中#xff0c;同一物体可能出现在不同距离#xff08;如远处的山和近处的树#xff09;…SIFT、SURF、FAST、ORB 特征提取算法深度解析
前言
在图像处理领域亦或是计算机视觉中首先我们需要先理解几个名词
什么是尺度不变
在实际场景中同一物体可能出现在不同距离如远处的山和近处的树导致其在图像中的尺度不同也引出了多尺度的概念。算法检测到的特征在图像缩放放大或缩小后仍能被正确识别和匹配即尺度不变性。
什么是旋转不变
物体在现实中的朝向可能任意如手机横屏/竖屏拍摄同一物体。算法检测到的特征在图像旋转后仍能被正确识别和匹配即旋转不变性。
什么是角点
角点是图像中具有显著变化的点通常位于边缘的交汇处。它们在计算机视觉中扮演着重要角色是许多任务的基础特征。通过角点检测算法如Harris、FAST等可以有效地提取和利用这些特征。在数学上通过梯度变化和自相关矩阵进行判断。
什么是斑点:
在图像处理和计算机视觉中斑点Blob是指图像中与周围区域在亮度、颜色或纹理上存在显著差异的连通区域。斑点的检测通常基于二阶导数或高斯滤波响应核心思想是寻找局部极值区域。
斑点 vs. 角点 vs. 边缘
特征类型定义数学表征示例场景斑点闭合的均匀区域周围强度突变二阶导数极值LoG/DoG医学图像中的肿瘤角点多方向强度变化的交点一阶导数的双方向极值棋盘格的交叉点边缘单方向强度突变的线状结构一阶导数的极值物体的轮廓线
什么是图像金字塔
是一种多尺度表示方法通过对图像进行多次下采样缩小或上采样放大生成一系列分辨率逐渐降低或升高的图像集合。 SIFT(尺度不变特征变换)
SIFT尺度不变特征变换是一种用于图像处理的特征检测与描述算法具有尺度、旋转、光照不变性广泛应用于图像匹配、物体识别等领域。其核心步骤分为四个阶段
1. 尺度空间的极值检测
算法通过构建高斯金字塔并计算高斯差分DoG来模拟不同尺度下的图像模糊效果在DoG空间中检测局部极值点作为候选关键点。
2. 关键点定位
在不同尺寸空间下可能找出过多的关键点有些关键点可能相对不易辨识或易受噪声干扰。通过泰勒展开插值修正位置和尺度并剔除低对比度点与边缘响应点以保留稳定的关键点借此消除位于边上或是易受噪声干扰的关键点。
3. 方向分配
为每个关键点分配主方向在其邻域内计算像素梯度幅值和方向生成方向直方图取峰值作为主方向以实现旋转不变性若存在次峰则分配多个方向以增强鲁棒性。
4. 生成关键点描述子
围绕关键点生成描述子将邻域旋转至主方向后划分为4×4子区域每个子区域统计8个方向的梯度直方图形成128维向量并通过归一化和截断抑制光照变化的影响。
具体可以参考这篇博客https://www.cnblogs.com/liuchaogege/p/5155739.html
SURF**(加速稳健特征)**
SURFSpeeded-Up Robust Features是一种高效且鲁棒的特征检测与描述算法旨在解决SIFT算法计算复杂度高的问题同时保持对尺度、旋转和光照变化的鲁棒性。以下是SURF的核心思想与流程
1. 特征点检测 SURF利用积分图像加速计算通过近似Hessian矩阵检测关键点在图像的多尺度空间中采用不同尺寸的盒式滤波器替代传统高斯卷积直接调整滤波器大小而非降采样图像来构建尺度空间显著减少计算量。 对于每个像素点计算其Hessian矩阵的行列式值近似为det(H)LxxLyy−(0.9Lxy)2若该值在三维邻域空间与尺度内为极值则标记为候选关键点。
**2.关键点方向分配**使用Haar小波响应来确定关键点的主方向在关键点周围半径为6σ的圆形区域内计算水平和垂直方向的Haar小波响应用高斯加权函数对这些响应值进行加权。将360°划分为多个扇形区域计算各扇区内响应向量的总和最后选择最长向量的方向作为主方向从而实现旋转不变性。
3. 特征描述子生成 算法首先将关键点邻域旋转至主方向对齐确保坐标系与主方向一致接着将邻域划分为4×4的子区域每个子区域内统计水平与垂直Haar小波响应的值及其绝对值之和形成4维局部特征向量最终将所有子区域的特征串联为64维或128维描述子SURF-64或SURF-128。
**4. 描述子归一化**对描述子进行归一化处理以消除光照变化影响并通过阈值截断如限制最大分量值为0.2进一步提升鲁棒性。
具体可以参考这篇博客https://www.cnblogs.com/zyly/p/9531907.html
SURF vs. SIFT 核心差异
效率提升SURF利用积分图像和盒式滤波器计算速度比SIFT快数倍适用于实时应用。尺度空间构建SIFT通过图像降采样生成多Octave而SURF直接调整滤波器尺寸减少图像重建开销。方向分配SURF使用Haar小波响应统计方向SIFT基于梯度直方图。描述子维度SURF默认64维可扩展至128维低于SIFT的128维但通过优化统计方式保持区分性。
应用与局限性
优势实时性高对模糊、旋转和光照变化鲁棒适用于移动端或实时匹配场景如SLAM、目标跟踪。局限性对视角变换和非刚性形变的适应性弱于SIFT高纹理重复场景易误匹配。
SURF通过算法优化在速度与性能间取得平衡成为传统特征提取方法中的经典选择后续算法如ORB进一步结合二进制描述子推动实时性提升。 FASTFeatures from Accelerated Segment Test
FAST 是一种高效的关键点检测算法专注于在实时系统中快速识别图像中的角点Corner。其核心思想是通过局部像素强度的快速比对筛选候选点牺牲部分鲁棒性以换取极高的计算速度。具体流程如下
首先以候选像素 p 为中心在其周围半径为3像素的圆形邻域共16个像素中选择一组固定点通常取12或9个点通过阈值 T 判断这些点与中心点的强度差异。若邻域中存在连续 N 个点通常 N9的强度均显著高于或低于中心点即 I邻域点IpT 或 I邻域点Ip-T则判定 p 为候选角点。为进一步优化结果FAST 采用非极大值抑制Non-Maximum Suppression去除响应较弱的重复点保留最具显著性的角点。
特点与局限性
优势计算复杂度极低适合实时应用如视频跟踪、移动端SLAM。缺点仅检测角点位置不提供尺度与方向信息且对噪声敏感需依赖后续算法如ORB补全描述子。
ORBOriented FAST and Rotated BRIEF
ORB 是对 FAST 和 BRIEF 算法的融合与改进通过引入方向性与旋转不变性解决了 FAST 缺乏描述能力及 BRIEF 对旋转敏感的问题成为轻量级特征提取的经典方法。其流程分为以下阶段
关键点检测oFAST在 FAST 检测的基础上通过灰度质心法Intensity Centroid为每个关键点分配主方向。具体而言计算关键点邻域内像素的灰度质心即加权平均坐标将质心到关键点的向量方向作为主方向实现旋转不变性。此外ORB 通过构建图像金字塔检测多尺度关键点支持尺度不变性。特征描述rBRIEF传统的 BRIEF 描述子通过随机选取关键点邻域内的像素对进行强度比较生成二进制字符串如256位但直接应用会因旋转导致匹配失效。ORB 改进为 旋转鲁棒的BRIEFrBRIEF根据关键点的主方向旋转像素对的采样位置确保描述子与方向对齐。同时ORB 通过统计学习优化像素对的选择使得生成的二进制描述子具有高区分度和低相关性。匹配优化ORB 描述子通过汉明距离Hamming Distance进行快速匹配利用二进制异或操作加速计算显著提升匹配效率。
特点与应用
效率全程基于二进制操作计算速度远超 SIFT/SURF适用于嵌入式设备或实时场景如无人机导航、AR。鲁棒性通过方向补偿和尺度金字塔支持旋转与尺度不变性但对透视形变和光照剧烈变化的适应性较弱。典型应用ORB-SLAM、移动端图像匹配、低功耗场景下的物体识别。
具体可以参考以下博客
FAST特征点检测https://www.cnblogs.com/ronny/p/4078710.htmlBRIEF特征描述子https://www.cnblogs.com/ronny/p/4081362.html
FAST 与 ORB 的关系
FAST 是纯粹的关键点检测器仅定位角点位置。ORB 是完整的特征提取框架包含检测oFAST与描述rBRIEF两部分本质是 FAST 方向/尺度扩展 旋转鲁棒的二进制描述子。
总结
FAST 以快为核心牺牲描述能力换取毫秒级检测速度适用于对实时性要求极高的场景。ORB 在 FAST 基础上融合方向、尺度与二进制描述平衡速度与鲁棒性成为轻量级特征提取的标杆算法尤其适合资源受限的实时系统。局限性二者均依赖局部强度分布对模糊、大视角变化或非刚性形变的处理能力有限在此类场景中仍需依赖深度学习特征如SuperPoint、D2-Net。 可视化效果 sift len of des: 458, size of des: 128
surf len of des: 1785, size of des: 64
orb len of des: 500, size of des: 32可以看出
sift虽然提取的特征点最少但是效果最好。sift提取的特征点维度是128维surf是64维orb是32维。
BruteForce Matcher特征匹配BFMatcher总是尝试所有可能的匹配从而使得它总能够找到最佳匹配这也是Brute Force暴力法的原始含义。 sift size of kp: 59, after filtering: 20
surf size of kp: 197, after filtering: 35
orb size of kp: 390, after filtering: 47从输出的结果来看orb的效果最好。感兴趣的话还可以用其他图片看看效果pic文件夹还提供其他两组比较的图片。
总结
计算速度: ORBSURFSIFT各差一个量级
旋转鲁棒性SURFORB~SIFT表示差不多
模糊鲁棒性SURFORB~SIFT
尺度变换鲁棒性: SURFSIFTORBORB并不具备尺度变换性
算法关键点类型强度变化形式典型应用场景SIFT边缘/斑点一阶或二阶导数极值高精度匹配、三维重建SURF斑点二阶导数极值Hessian实时性要求较高的匹配FAST角点局部强度突变实时跟踪、SLAMORB角点带方向局部强度突变 强度分布统计嵌入式设备、移动端应用