2023图像匹配挑战冠军方案|无需提取特征点也能进行弱纹理三维重建!

本文主要是介绍2023图像匹配挑战冠军方案|无需提取特征点也能进行弱纹理三维重建!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3DCV有幸邀请到顶会作者Xingyi He, Jiaming Sun, Yifan Wang与大家一起分享他们的最新文章,如果您有相关工作需要分享,文末可以联系我们!

在公众号「3D视觉工坊」后台,回复「原论文」即可获取pdf或代码。

添加微信:dddvisiona,备注:三维点云,拉你入群。文末附行业细分群。

0. 笔者个人体会

SfM是指给定一组无序图像,恢复出相机位姿以及场景点云。通用场景下的SfM效果已经很好,而且COLMAP这类框架也很好用。但是弱纹理和无纹理场景下的SfM却很麻烦,主要目前主流的SfM框架都是先提取图像中的特征点,然后进行特征匹配。但是在无纹理条件下,很难提取稳定且重复的特征点,这就导致SfM恢复出的位姿和三维点云非常杂乱。

很直接的一个想法就是,如果不提取特征点,直接进行匹配呢?

最近,浙江大学就基于这种思想提出了一种弱纹理场景下的SfM框架,主要流程是首先基于LoFTR这类Detector-Free图像匹配算法获得粗糙位姿和点云,然后使用Transformer多视图匹配算法优化特征点坐标,利用BA和TA进一步优化位姿和点云。这个算法获得了2023 IMC的冠军,整体性能很好。今天笔者就将带领大家一起阅读一下这项工作,当然笔者水平有限,如果有理解不当的地方欢迎大家一起讨论。

1. 效果展示

先来看一下传统基于特征点的SfM在弱纹理场景下的表现:

aa177beef24aa5987ea879c0d47145d6.png

可以发现由于特征点提取的重复性差,匹配性能不好,进一步导致位姿和点云估计的结果很差。那么再来看看Detector-Free SfM这项工作,其主要目的是实现弱纹理场景下的SfM,可以发现在典型场景下运行良好,甚至海底、月球表面这种场景都可以进行定位和重建!推荐学习3D视觉工坊近期开设的课程:国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程

27d4fd87c83e054dfad1aa4f3e330faa.png 0586820868643889c6268ff2342b569c.png

有了精确的位姿和点云,就可以进行很多SfM的下游任务,例如新视点合成和稠密重建:

d1255bf1e82b31933d42e94004258049.png

不幸的是,这个算法暂时还没有开源,感兴趣的小伙伴可以追踪一下Github。下面来看一下论文的具体信息。

我们提出了一个新的SfM框架来从无序的图像中恢复精确的相机姿态和点云。传统的SfM系统通常依赖于跨多个视图的可重复特征点的成功检测,这对于弱纹理的场景来说是困难的,并且较差的特征点检测可能会破坏整个SfM系统。受益于最近无检测器匹配器的成功,我们提出了一种新的无检测器SfM框架,避免了早期特征点的确定,同时解决了无检测器匹配器的多视图不一致问题。具体来说,我们的框架首先从量化的无检测器匹配中重建一个粗略的SfM模型。然后,它通过一个新颖的迭代优化管道对模型进行细化,该管道在基于注意力的多视图匹配模块和几何优化模块之间进行迭代,以提高重建精度。实验表明,所提框架在通用基准数据集上优于现有的基于检测器的SfM系统。我们还收集了一个弱纹理的SfM数据集,以展示我们的框架重建弱纹理场景的能力。

2. 算法解析

算法的Pipeline非常直观,输入是一组无序图像,输出是相机位姿、内参和点云。具体的流程是一个两阶段由粗到精的策略,首先使用一个Detector-Free的特征匹配器(LoFTR)来直接进行图像对的稠密匹配,以此来消除特征点的低重复性带来的影响。然后量化特征位置到粗网格来提高一致性,并重建粗SfM模型,为后续优化提供初始的相机位姿和场景结构。之后,使用轨迹优化和几何优化交替进行的联合迭代优化pipeline,以提高位姿和点云精度。

095cbd93eadaca41785c311d6998cbd7.png

Detector-Free匹配器一般也都采用由粗到精的策略,首先在下采样特征图的粗网格上进行稠密匹配,然后在一幅图像上固定粗匹配的特征位置,而在另一幅图像上用精细的特征图搜索它们的亚像素对应关系。理论上这种思想是可以直接应用到SfM上的,但这里有个问题,也就是在一幅图像中产生的特征位置依赖于另一幅图像,这样在多个视图进行匹配时,特征轨迹就很容易中断!

5161014ddcf17f72a6de4c8e861c1177.png

作者的具体做法是,将匹配的2D位置量化为一个网格⌊x / r⌉(r是网格大小),直接令多个相近的子像素合并为同一网格节点。实际上是以牺牲精度为代价,换取了一致性。

后续的迭代优化过程很有意思,优化的对象就是匹配点的2D坐标,主要思想还是对所有视图中的特征点位置进行局部调整,使其特征之间的相关性最大化

怎么做呢?直接计算所有的关联视图吗?那样计算量就太大了。

作者这里用了一个trick,就是选择一个参考视图,提取参考视图中特征点处的特征,并将其与其他视图(查询视图)中特征点周围大小为p × p的局部特征图进行关联,得到一组p × p的热图,相当于特征点位置的分布。另一方面,还要计算每个热图上的期望和方差,方差之和也就是优化的目标函数。

e79492815c1e38144da31fde68063ac8.png

还有个问题,就是这个参考视图怎么选择呢?这里的准则其实是最小化参考视图和查询视图之间的特征点尺度差异。具体来说,就是根据当前恢复的位姿和点云计算特征点的深度值,然后选择中位数做为参考视图。

还有个细节,就是如何提取以2D特征点为中心的局部特征块?这里是将以每个关键点为中心的p × p个图像块输入到CNN中,得到一组特征块,然后再利用Transformer的自注意力和交叉注意力得到最终的特征图。

ff5ec161a955f99dd6af0862ecfff834.png

最后还有一个级联的BA和TA(Topology Adjustment)优化的过程,来细化位姿和点云。由于经过了Transformer优化和BA,这时候整体的场景已经比较准确了,因此TA优化过程中还加入了之前未能配准的2D点。整个优化过程,也就是不停的交替进行BA和TA,再把优化后的点云投影到图像上来更新2D位置,再进行下一次迭代优化。

3. 实验

整个模型需要训练的地方就是Detector-Free匹配器还有多视图特征提取Transformer,训练是再MegaDepth数据集进行,训练思路就是最小化优化轨迹和真实轨迹之间特征点位置上的平均l2损失。对比方案还是挺全的,有SIFT这种手工特征点,也有R2D2、SuperPoint这类深度学习特征点,数据方面使用了Image Matching Challenge (IMC)、ETH3D还有他们自己采集的Texture-Poor SfM数据集。

结果显示,这个算法搭配LoFTR可以实现比较好的性能(读者也可尝试和其他的匹配算法结合)。值得注意的是,SuperPoint + SuperGlue + PixSfM这个组合的性能也非常棒,也说明SP+SG在很多情况下都是通用的。

b1bd37edfeaba10d45a71e4168522961.png

定性的对比就更直观了,红框代表Ground Truth,显然在低纹理场景下这篇文章提出的算法性能更优,甚至好几个场合SP+SG的组合直接挂掉了。

213d2dac143f90d5111e5441e0edc909.png

再来看看三角化的结果,可以进一步证明位姿和内参估计的准确性。同样是基于LoFTR的组合取得了更高的精度,这里AspanTrans的配置牺牲了一点精度,但是完整性更好。

9764d6093d664c211c7f8cce3fdf04dc.png

下面是一个验证优化模块影响的实验,做的是热力图的比较,O和X分别表示粗糙和精细的特征点位置。结果显示引入优化后,热力图的对比更明显。而且优化后的点云也更精确。

766c427d65fff777c4c501ca3b203329.png

然后是一个消融实验,分别测试的量化比值、迭代次数、视图数量以及各部分模块的消融实验。主要还是通过这组实验确定模型和迭代的最优参数。推荐学习3D视觉工坊近期开设的课程:国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程

384ef751c9c860a6efb95790842f35c2.png

想必大家一定很关心运行的效率和耗时,作者最后做了一个在处理大规模场景时,模型的3D点数、优化时间、内存开销的一个对比。内存占用没有多大,这是因为算法是先进行多视图匹配,再进行几何优化,因此BA不需要像PixSfM那样存储每个2D点的特征块或代价图。

b2933d80c5659e2225562d124996eca5.png

4. 总结

这项工作是针对弱纹理这一特定场景设计的,整体的设计思路很通顺,效果也非常棒。如果要说问题,那就是计算效率了,毕竟LoFTR匹配本身就非常耗时。但本身SfM就不像SLAM那样追求实时性,所以计算效率倒也不是什么大问题,可以尝试通过一些并行BA的方法来优化。另一方面,作者提到可以和深度图、IMU等多模态数据进行融合,也是很不错的研究方向。

—END—

高效学习3D视觉三部曲

第一步 加入行业交流群,保持技术的先进性

目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。

04166883c0cde5f82e9955ec268784f6.jpeg
添加小助理微信:cv3d007, 拉你入群
第二步 加入知识星球,问题及时得到解答

针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」

学习3D视觉核心技术,扫描查看,3天内无条件退款f03632cf65ea69f12b1e405e44119997.jpeg

高质量教程资料、答疑解惑、助你高效解决问题
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行

如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com

基础课程:

[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶

[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]

[3]如何学习相机模型与标定?(代码+实战)

[4]ROS2从入门到精通:理论与实战

[5]彻底理解dToF雷达系统设计[理论+代码+实战]

工业3D视觉方向课程:

[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]

[2]保姆级线结构光(单目&双目)三维重建系统教程

[3]机械臂抓取从入门到实战课程(理论+源码)

[4]三维点云处理:算法与实战汇总

[5]彻底搞懂基于Open3D的点云处理教程!

[6]3D视觉缺陷检测教程:理论与实战!

SLAM方向课程:

[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战

[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化

[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析

[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)

[5](第二期)ORB-SLAM3理论讲解与代码精析

视觉三维重建

[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进)

自动驾驶方向课程:

[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)

[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程

[3]单目深度估计方法:算法梳理与代码实现

[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)

最后

1、3D视觉文章投稿作者招募

2、3D视觉课程(自动驾驶、SLAM和工业3D视觉)主讲老师招募

3、顶会论文分享与3D视觉传感器行业直播邀请

这篇关于2023图像匹配挑战冠军方案|无需提取特征点也能进行弱纹理三维重建!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/253997

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

如何选择SDR无线图传方案

在开源软件定义无线电(SDR)领域,有几个项目提供了无线图传的解决方案。以下是一些开源SDR无线图传方案: 1. **OpenHD**:这是一个远程高清数字图像传输的开源解决方案,它使用SDR技术来实现高清视频的无线传输。OpenHD项目提供了一个完整的工具链,包括发射器和接收器的硬件设计以及相应的软件。 2. **USRP(Universal Software Radio Periphera

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [