2D-3D配准指南[方法汇总]【入门指导向】(二)2D-3D MatchNet +pointnet

这篇具有很好参考价值的文章主要介绍了2D-3D配准指南[方法汇总]【入门指导向】(二)2D-3D MatchNet +pointnet。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

近年来,采用三维和二维数据的应用层出不穷,它们都需要将三维模型二维图像进行匹配。大型定位识别系统可以估算出照片拍摄的位置。在全球定位系统可能失灵的情况下,地理定位系统可以进行地点识别,对自动驾驶非常有用。此外,法医警察也可以利用该系统破案或防止袭击。
本文的目标是总结利用深度学习方法将二维图像到三维点云进行配准的方法。
整个文章系列将介绍LCD、2D-3D MatchNet、三元损失函数、VGG-Net、图神经网络等内容。

2D-3D配准指南[方法汇总]【入门指导向】(二)2D-3D MatchNet +pointnet,3d,cnn,深度学习,神经网络,人工智能,科技

3. 2D-3D MatchNet: PointNet + VGG16 Triplet Loss Architecture

Mengdan Feng, Sixing Hu, Marcelo Ang, and Gim Hee Lee. 2d3d-matchnet: Learning to
match keypoints across 2d image and 3d point cloud, 2019.

2D-3D MatchNet提出了一种三支结构的三元组样式配置架构:通过修改的VGG16构建的用于处理图像patch的一支,以及两个使用共享权重的孪生PointNet架构,用于处理点云patch。这样的模型能够将从图像和点云数据中提取的特征编码为落在相同空间内的embedding。

2.2.1 网络架构

以下是论文中提出的网络架构:

2D-3D配准指南[方法汇总]【入门指导向】(二)2D-3D MatchNet +pointnet,3d,cnn,深度学习,神经网络,人工智能,科技
如图所示,所提出的网络由三个分支组成。一个学习输入图像patch的描述符,而另外两个基于输入的点云生成embedding。
在训练期间,图像patch和点云patch以图像锚点、其匹配点云和随机选择的非匹配点云的形式馈送到网络中: { x a I , x M + , x M − } \{x_a^I, x^+_M, x^-_M\} {xaI,xM+,xM}。网络的任务是学习 G ( x I ; θ I ) : x I → p G(x_I;θ_I): x_I → p G(xI;θI):xIp F ( x M ; θ M ) : x M → a F(x_M;θ_M): x_M → a F(xM;θM):xMa,它们分别将输入图像patch x I x_I xI 映射到其embedding p p p,以及输入点云 x M x_M xM 映射到其embedding q q q
为了实现 G ( x I ; θ I ) G(x_I;θ_I) G(xI;θI),网络使用了带有批标准化的VGG16架构。另一方面, F ( x M ; θ M ) F(x_M;θ_M) F(xM;θM) 是通过基于PointNet架构的孪生网络来实现的。基本上,孪生网络由两个分支组成,这两个分支具有完全相同的架构和相同的权重集。在每个训练元组中,正点云和负点云被馈送到这两个分支中。

2.2.2 PointNet

2D-3D MatchNet架构的第二个分支是经典的PointNet,它分为两个子网络,执行不同的任务:分类和分割。
2D-3D配准指南[方法汇总]【入门指导向】(二)2D-3D MatchNet +pointnet,3d,cnn,深度学习,神经网络,人工智能,科技

分类网络使用多层感知机将输入点云的每个输入点(具有坐标 ( x , y , z ) (x, y, z) (x,y,z))映射到大小为64的更高维度的向量。该过程重复进行,直到为每个点获得大小为1024的特征。然后,通过全局最大池化将所有特征图压缩为全局特征向量,该池化层获取与每个点对应的特征图的最大值。作为最后一步,分类网络将全局特征向量调整到预定义的维度k。

点云是无结构的数据,可以表示为坐标的数字集合(也可以包括其他属性,如点的颜色)。对于具有N个点的点云,存在N!个排列方式,即可以以N!种不同的方式重新排列N个点,而不改变点云结构的几何含义。换句话说,集合中点的顺序不应影响网络的性能。因此,需要在PointNet的架构中使用符合交换律的函数,以便输入的排列不会改变计算的特征。这些函数的例子包括max ( m a x ( a , b ) = m a x ( b , a ) ) (max(a,b) = max(b,a)) max(a,b)=max(b,a)、sum ( s u m ( a , b ) = s u m ( b , a ) ) (sum(a,b) = sum(b,a)) sum(a,b)=sum(b,a)和average ( a v e r a g e ( a , b ) = a v e r a g e ( b , a ) ) (average(a,b) = average(b,a)) average(a,b)=average(b,a)

子网络 “input transform” 和 “feature transform” 负责确保 PointNet 的性能不受输入数据的变换(如平移和旋转)的影响。毕竟,两个相同的点云表示相同的结构,即使其中一个经过旋转。这非常有益,因为避免了需要执行数据增强,使网络学习如何处理输入数据的变体。

“input transform” 模块由两部分组成:T-Net 和 “matrix multiply”。前者是基于多层感知机的网络,学习输入点云上的 3×3 仿射变换。在后者中,输入点云的每个点都与在 T-Net 中找到的变换相乘。这样,输入点云就被规范化为特定姿态。请注意,由于 T-Net 的性质,变换将在训练期间学习,这意味着随着训练的进行,PointNet 将对输入变换变得更加稳健。

上一段的解释可以扩展到 “feature transform” 模块。然而,这种情况下计算出的变换矩阵的大小将为 64×64,因为输入特征的大小为 N×64,其中 N 是输入点云中的点数。

2.2.3 损失函数

整个三支网络有一个唯一的损失函数定义如下:
ln ⁡ ( 1 + e α d ) \ln(1+e^{\alpha d}) \quad ln(1+eαd)
这个损失函数被称为加权软间隔三元组损失(Weighted Soft Margin Triplet Loss),它强制使图像锚点 x a I x_a^I xaI和正点云 x M + x^+_M xM+之间的相似性 d pos = d ( G ( x a I ; θ I ) , F ( x M + ; θ M ) ) d_{\text{pos}} = d(G(x_a^I;\theta_I), F(x^+_M;\theta_M)) dpos=d(G(xaI;θI),F(xM+;θM))较小。
此外,它试图使图像锚点和负点云 x M − x^-_M xM之间的距离尽可能大,以使 d ( G ( x a I ; θ I ) , F ( x M + ; θ M ) ) ≪ d ( G ( x a I ; θ I ) , F ( x M − ; θ M ) ) d(G(x_a^I;\theta_I), F(x^+_M;\theta_M)) \ll d(G(x_a^I;\theta_I), F(x^-_M;\theta_M)) d(G(xaI;θI),F(xM+;θM))d(G(xaI;θI),F(xM;θM)),其中 d neg = d ( G ( x a I ; θ I ) , F ( x M − ; θ M ) ) d_{\text{neg}} = d(G(x_a^I;\theta_I), F(x^-_M;\theta_M)) dneg=d(G(xaI;θI),F(xM;θM))。因此,在方程5中, d = d pos − d neg d = d_{\text{pos}} - d_{\text{neg}} d=dposdneg α \alpha α 是设置为5的收敛参数。
有关三元组损失的更多信息可以参见上篇博文。文章来源地址https://www.toymoban.com/news/detail-754450.html

到了这里,关于2D-3D配准指南[方法汇总]【入门指导向】(二)2D-3D MatchNet +pointnet的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GIS大数据处理框架sedona(塞多纳)编程入门指导

    Apache Sedona™是一个用于处理大规模空间数据的集群计算系统。Sedona扩展了现有的集群计算系统,如Apache Spark和Apache Flink,使用一组开箱即用的分布式空间数据集和空间SQL,可以有效地加载、处理和分析跨机器的大规模空间数据。码云镜像 码云sedona文档持续更新中 common java核

    2024年02月09日
    浏览(52)
  • 【Visual Studio 新手入门指导】包括项目创建、常用快捷键、美化、项目启动、添加文件等多种基础操作,图文详细,准确无误

    本文来自于作者在Visual Studio的使用过程中自己积累经验的总结,主要介绍一些比较实用的技巧,适合新手入门使用。 内容追求细致、有用、基础。 VS的每次运行的是一个一个的项目 (如果有多个项目,则每次执行选定启动项目,后文有所介绍),但是不同项目在一起构成一

    2024年02月08日
    浏览(56)
  • [点云配准]LCD(2D-3D特征配准算法)例程align_point_cloud.py解析

    跨域描述符LCD可以实现二维图片特征点到三维点云特征点的配准,是个具有通用性的深度学习特征描述子。(图片来源于论文 LCD: Learned Cross-Domain Descriptors for 2D-3D Matching ) 在Github开源的源码里面给出了利用LCD进行 三维点云配准 的例程。align_point_cloud.py,这里对例程如何使用

    2024年02月08日
    浏览(40)
  • 【视觉SLAM入门】5.2. 2D-3D PNP 3D-3D ICP BA非线性优化方法 数学方法SVD DLT

    前置事项: 该问题描述为:当我们知道n 个 3D 空间点以及它们的投影位置时,如何估计相机所在的位姿 1.1.1 DLT(直接线性变换法) 解决的问题:已知空间点 P = ( X , Y , Z , 1 ) T P = (X, Y, Z, 1)^T P = ( X , Y , Z , 1 ) T 和它投影点 x 1 = ( u 1 , v 1 , 1 ) T x_1 = (u_1, v_1, 1)^T x 1 ​ = ( u 1 ​ , v 1

    2024年02月12日
    浏览(42)
  • 配准带尺度点云的方法汇总

    如果点集之间不存在缩放关系时(即尺度相同时), 可以用经典ICP( Iterative Closest Point )方法求解得到旋转矩阵R和平移向量t来进行点集对齐。 如果存在缩放关系时,首先估计出点集S1和S2之间的缩放倍数s, 我们就可以利用ICP算法求解。 配准两组三维点集合步骤[参考]: ①找到一个

    2024年02月01日
    浏览(47)
  • CVPR2023最佳论文候选:3D点云配准新方法

    文章:3D Registration with Maximal Cliques 作者:Xiyu Zhang Jiaqi Yang* Shikun Zhang Yanning Zhang 编辑:点云PCL 代码: https://github.com/zhangxy0517/3D-Registration-with-Maximal-Cliques.git 欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。 公众号致力于点云处

    2024年02月08日
    浏览(43)
  • 【医学影像数据处理】2D/3D patch的crop和merge操作汇总

    在做 3D 分割任务中,多数的方法多采用整体缩放,或裁剪成一个个小的 patch 操作,这样做的一个主要原因是内存问题。还有就是有些目标太小,比如分割结节,用整图直接输入网络,正负样本的不均衡是非常大的。 相较于整体缩放,采用裁剪成 patch 的方法,对于小目标会更

    2024年02月11日
    浏览(78)
  • 高光谱图像降噪方法(2D Wavelet, 3D Wavelet, FORPDN, HyRes等方法)

    近年来,随着遥感应用的不断深入,高光谱图像研究已经成为遥感领域发展最迅速的技术之一。与其他传统成像技术相比,高光谱图像具有更多优势:更丰富的信息量、纳米级的光谱分辨率以及范围更广且连续的光谱。因此,在农业、军事、环境监测和食品工业领域有着广泛

    2024年02月20日
    浏览(34)
  • YOLO算法创新改进系列项目汇总(入门级教程指南)

    🚀一、主干网络改进(持续更新中)🎄🎈 🚀二、轻量化网络(持续更新中)🎄🎈 🚀三、注意力机制(持续更新中)🎄🎈 🚀四、检测头部改进(持续更新中)🎄🎈 🚀五、空间金字塔池化(持续更新中)🎄🎈 🚀六、损失函数及NMS改进(持续更新中)🎄🎈 🚀七、其

    2023年04月24日
    浏览(42)
  • PCL - 3D点云配准(registration)介绍

    前面多篇博客都提到过,要善于从官网去熟悉一样东西。API部分详细介绍见 Point Cloud Library (PCL): Module registration 这里博主主要借鉴Tutorial里内容(博主整体都有看完) Introduction — Point Cloud Library 0.0 documentation 接下来主要跑下Registration中的sample例子 一.直接运行下How to use iter

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包