计算机视觉项目实战(二)、局部特征匹配 Local Feature Matching

局部特征匹配(LoFTR) & 基于全局匹配的光流学习(GMFlow) 局部特征匹配LoFTR与光流匹配GMFlow学习笔记 阅读详情
AI摘要

该博客围绕计算机视觉局部特征匹配项目展开。介绍了项目要求,包括实现兴趣点检测等;阐述了局部特征、Harris角点等原理;详细说明了实验步骤,如读取图像预处理、用Harris检测角点、用ANMS筛选、构建SIFT描述符及特征匹配;最后给出了NotreDame等的实验结果。

项目要求

  1. 实现兴趣点检测
  2. 实现类SIFT局部特征描述
  3. 实现简单匹配算法
    在这里插入图片描述

项目原理

局部特征

全局特征(global features)指的是图像的方差、颜色直方图等等,描绘了图像的整体信息,但是无法分辨出图像中的前景和背景。

局部特征(loacl features)指的是一些局部才会出现的特征,而且该部分需要满足两个条件:1. 能够稳定出现; 2. 具有良好的可区分性。

当我们所关注的对象在图像中受到部分遮挡,全局特征可能会被破坏,但局部特征依然能够稳定存在,以代表这个物体。

图像中的特征点

一幅图像中总存在着其独特的像素点,这些点我们可以认为就是这幅图像的特征,成为特征点。计算机视觉领域中的很重要的图像特征匹配就是一特征点为基础而进行的,所以,如何定义和找出一幅图像中的特征点就非常重要。

在计算机视觉领域,兴趣点(也称关键点或特征点)的概念已经得到了广泛的应用, 包括目标识别、 图像配准、 视觉跟踪、 三维重建等。 这个概念的原理是, 从图像中选取某些特征点并对图像进行局部分析,而非观察整幅图像。 只要图像中有足够多可检测的兴趣点,并且这些兴趣点各不相同且特征稳定, 能被精确地定位,上述方法就十分有效。

好的特征应该有以下几个特点:

  1. 重复性:不同图像的相同区域应该能被重复检测到,而且不受旋转、模糊、光照等因素的影响。
  2. 可区分性:不同的检测子应可通过检测对应的描述子进行区分。
  3. 数量适宜:检测子的数量过多或者过少都会降低识别精度。
  4. 高定位:检测子的大小和位置均应固定。
  5. 有效性:具有较快的检测速度。

Harris角点(Harris Corner Detector)

角点的基本原理:人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上移动这个特征的小窗口,窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点。如果这个特定的窗口在图像各个方向上移动时,窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;如果窗口在某一个方向移动时,窗口内图像的灰度发生了较大的变化,而在另一些方向上没有发生变化,那么,窗口内的图像可能就是一条直线的线段。
在这里插入图片描述

角点具有一些良好的特征:视角变化时也仍然可以很好的辨识;和周围点在任何方向上变化都很大。角点经常被检测在边缘的交界处、被遮挡的边缘、纹理性很强的部分。满足这些条件一般都是稳定的、重复性比较高的点,所以实际上他们是不是角点并不重要(因为我们的目标就是找一些稳定、重复性高的点以作为特征点)。
在这里插入图片描述
Harris Corner是最典型的角点检测子,具有的优点是平移不变、旋转不变,能克服一定光照变化。

NMS(非最大值抑制)

NMS(Non-Maximum Supression)非最大抑制,就是抑制除最大值(局部最优)外的其他元素。比如在下图中要确认人行道上的车辆,需要找到区域内识别概率最大的框,所以将右边0.9的框和左边0.8的框高亮,之后遍历其他边框,如果和高亮的框交并比大于0.5,则将框进行淡化(抑制)。
在这里插入图片描述

SIFT(尺度不变特征变换)

SIFT(Scale-Invariant Feature Transform)尺度不变特征变换,是计算机视觉领域对图像局部特征进行描述的常用方法,有以下四个关键步骤
1. 尺度空间极值检测(Scale-space extrema detection)
建立高斯差分金字塔,采用不同 σ \sigma σ(尺度)的高斯核对原图像进行卷积操作,得到一组不同层的图片,而不同组之间的图片通过降采样(隔点取点)得到。通过不断的变化高斯核和进行降采样,便可以得到高斯金字塔。再通过同一组不同两层之间的图片相减,就得到高斯差分金字塔(又叫尺度空间),如下图所示。
其中,
组数 O = [ l o g 2 ( m i n ( M , N ) ) ] − 3 O=[log_2(min(M,N))]-3 O=[log2​(min(M,N))]−3,其中M和N是图片的长和宽。
层数 S = n + 3 S=n+3 S=n+3,其中n是希望提取从中特征的图片数目,因为做差分的过程中有一张图片无法使用,同时尺度空间上最上面一张和最下面一张图片无法求导,所以S-3=n。
σ \sigma σ取法请见参考资料中原论文,不在此赘述。
在这里插入图片描述
理解:因为SIFT要解决尺度不变性问题,它的理念是不仅在任何尺度下拍摄的物体都能检测到一致的关键点,而且每个被检测的特征点都对应一个尺度因子。 在高斯金字塔中,其实降采样就是模拟了近大远小的尺寸变化,高斯核进行卷积模拟的是近处清晰,远处模糊。(PS:值得注意的是,高斯核是唯一一个可以模拟近处清晰,远处模糊的线性核)
2. 关键点定位(Keypoint Localization)
关键点需要满足:包含很多信息,稳定不易变化。关键点通常是极值位置。
-> 1. 阈值化
a b s ( v a l ) > 0.5 ∗ T / n abs(val)>0.5*T/n abs(val)>0.5∗T/n,其中T=0.04,因为如果太小了可能是噪声,不进行保留。
-> 2. 在高斯差分金字塔中找极值
在考虑了尺度空间后,如果一个像素点的值比周围26个像素点都大(小),那么就认为这个点是一个极值。
在这里插入图片描述
-> 3. 调整极值点的位置
因为像素空间和尺度空间均是离散的,所有需要找到亚像素位置的精确极值点,具体操作是在检测到的极值点处做三元二阶泰勒展开,再对函数进行求导并令导数为零。
-> 4. 舍去低对比度的点
若 ∣ f ( X ) < T / n ∣ |f(X)<T/n| ∣f(X)<T/n∣则认为该像素点事噪声,舍去点X
-> 5. 边缘效应的去除
3. 方向赋值(Orientation assignment)
在最接近关键点尺度值 σ \sigma σ的高斯图像上,统计以特征点为圆心,以该特征点所在的高斯图像的尺度的1.5倍为半径的圆内所有像素的梯度方向以及其梯度幅值,并做 1.5 σ 1.5\sigma 1.5σ的高斯滤波。
4. 关键点描述(Keypoint descriptor)
关键点的描述符是一个128维的向量,用k近临算法进行向量匹配两个图片当中所有关键点的描述符中距离最近的两个描述符,并进行连接。
在每一个子区域内统计八个方向上的梯度的经过高斯加权的长度,将每个子区域内的各个方向上的长度依次写出,便得到描述符。
在这里插入图片描述

Soble算子

索贝尔算子是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。索贝尔算子是把图像中每个像素的上下左右四领域的灰度值加权差,在边缘处达到极值从而检测边缘。
Soble算子模版:
Gx:
在这里插入图片描述
Gy:
在这里插入图片描述

实验步骤

(一) 读取图像,并对图像进行预处理

简介

读取图像,将图片的长和宽放缩为原来的1/2,再转化为灰度图。

深度学习论文: LightGlue: Local Feature Matching at Light Speed LightGlue通过自适应地应对不同难度的图像对来改进视觉匹配,包括视觉重叠程度、外观变化和辨别信息量。对于易于匹配的图像对,其推理速度更快,类似于人类处理视觉信息的方式。它通过在每个计算块后预测对应关系、让模型自我评估是否需要进一步计算,并在早期阶段丢弃不可匹配的点来优化性能。在如SLAM等典型操作条件下,LightGlue在保持性能的同时带来了显著改进,通过动态调整网络大小而非减少其整体容量。 阅读详情

相关推荐

深度学习论文: Raising the Ceiling: Conflict-Free Local Feature Matching with Dynamic View Switching

目前的特征匹配方法主要致力于提升模型的匹配能力,以更精确地接近理论最佳匹配结果,即所谓的“上限”。但这些改进并未解决影响真实匹配效果的根本问题,例如小尺寸图像中匹配点的缺乏、密集匹配方法中的冲突,以及稀疏匹配方法对关键点可重复性的依赖。动态视图切换:通过策略性地交换图像对,解决源图像中匹配点不足的问题。无冲突粗匹配:采用多对一的匹配策略,减少目标图像中的匹配冲突。半稀疏与粗到细架构:结合这两种方法,既保持了高效率,又实现了全局搜索,降低了对关键点可重复性的依赖。

mingo_敏 926

局部特征匹配Local_Feature_Matching配套素材资源和代码

计算机视觉项目实战(二)、局部特征匹配Local_Feature_Matching配套素材资源和代码,项目详解见本人博客https://blog.youkuaiyun.com/Accelerato/article/details/105577679

SAP S4 HANA 新资产会计中的平行分类账估值

在资产会计中,我们可以设置使用折旧区域的平行分类账会计 我们需要根据涉及的会计原则定义折旧区域,在我们的方案中,公司 FR01 是一家国际集团的当地分支机构,公司 FR01 需要按照集团会计准则 IFRS 和当地 GAAP 会计准则报告财务报表。过账到 LG 会计原则(分类帐 2L)-->分类账 2L的 150 欧元损失 -->在 IFRS 折旧区域,我们有 100 欧元的收益,在 LG 折旧区域,我们有 150 欧元的损失,使用平行分类账 0L 和 2L,我们能够根据不同的会计原则进行平行估值。

yanzibing99的博客 1328

保姆级教程:在Jetson Nano上从零移植OV5647 CSI摄像头驱动(附完整调试记录)

本文提供了一份详细的Jetson Nano OV5647 CSI摄像头驱动移植教程,涵盖硬件准备、驱动框架分析、设备树配置、驱动移植核心修改点及调试技巧。通过V4L2框架和Tegra平台适配,开发者可快速实现摄像头驱动的移植与优化,适用于边缘计算和嵌入式视觉应用。

weixin_27869497的博客 518

Zabbix7.0+DeepSeek大模型实现人工智能告警分析

本方案基于Zabbix7.0监控系统,通过底层webhook脚本机制集成Deepseek做故障分析提供解决方案,构建智能化运维体系。

xingdiango的博客 2372

EGO-Planner文章解读(一)——论文原理和算法实现

详细解读egoplanner论文和代码

fegxg的博客 3986

泛微OA与泛微OA之间打通实现统一待办配置

问题:学校OA与集团OA均为泛微Ecology8.0 ,由于流程审批互通的需要,要将两套OA系统打通,实现跨系统的流程流转。

symstandsun的博客 2269

Aurix TC3xx系列MCU ResourceM模块配置(多核资源分配)

为减轻主核的负载率或者平衡各个核的资源分配,通常需要把一些MCU内部资源分配到从核上,在EB tresos工具中,通过ResourceM模块实现多核资源分配。

m0_38045338的博客 1388

Codex 赋能UI自动化测试

✅ 零编码门槛:业务人员也能直接上手✅ 无需复杂配置:跳过部署陷阱,分钟级启用✅ 无权限风险:沙箱隔离 + 操作审计,安全可控✅ 精准匹配 UI 自动化需求:生成代码与执行操作一体化本文我使用CRM系统分类管理功能进行测试演示,手把手教你从测试用例编写,到上传Codex、自动执行浏览器操作,每一步都有细节,看完直接复刻到工作中。

十二测试录 458

uniapp微信小程序 - 解决输入框input软键盘弹起时页面整体上移问题,页面上推导致顶部出现元素遮挡问题,uniapp软键盘导致页面上移头部内容被错位遮住错乱,让页面头固定在顶部不动不会受影响!

解决uni-app微信小程序底部input输入框,键盘弹起时页面整体上移问题,当键盘弹起时,会导致页面整体上移,页面头固定在顶部不动,微信小程序键盘弹起时,底部输入框抬起至键盘上方,顶部导航栏固定不动,uni-app输入框,输入框在底部;当弹出键盘时,页面整体上移,页面头信息会消失不见,小程序底部input输入框,input组件弹起系统键盘时,键盘会顶住页面导致页面会上移,当键盘弹起时整个页面被挤压,导致元素上移或被覆盖,输入框能自动抬起至键盘上方,顶部导航栏保持固定,不被顶上去,如何解决这个问题,动态高度

✅ 精选推荐文章 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 计算机视觉项目实战(三)、基于词袋模型的场景识别 Scene Recognition with Bag of Words
下一篇: 2020-1024
Ace Cheney
博客等级 码龄9年 542粉丝 27原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ace Cheney

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值