首页 > 其他分享 >AutoSynth: Learning to Generate 3D Training Datafor Object Point Cloud Registration 论文解读

AutoSynth: Learning to Generate 3D Training Datafor Object Point Cloud Registration 论文解读

时间:2024-08-28 23:51:26浏览次数:7  
标签:Training 配准 AutoSynth Point 算法 点云 数据 3D

目录

一、导言

二、先导知识

1、进化算法概述

2、4pcs算法

3、Super4PCS算法

三、相关工作

1、传统点云配准工作

2、基于深度学习的点云配准

3、生成训练数据集

四、AutoSynth框架

1、搜索空间

2、进化算法

3、代理任务模型

五、实验 

1、测试数据集

2、BOP评估指标

3、对比实验

4、其他实验 


一、导言

        该论文来自于ICCV2023,该论文提出了一种通过进化算法自动生成3D点云训练数据的方法AutoSynth用于点云配准。

(1)提出一种自动生成大规模的3D训练数据用于点云配准任务的方法AutoSynth,来应对收集和标注大规模真实3D数据的挑战。

(2)AutoSynth通过元学习策略搜索最佳训练数据,通过探索包含数百万个潜在数据集的搜索空间,自动生成合成3D数据集。

(3)设计了一个小型自编码器代理网络替代原始点云配准网络,提高了搜索效率。

二、先导知识

1、进化算法概述

        进化算法是一类基于自然选择和遗传学原理的优化算法,并广泛用于解决复杂的优化问题,通过模拟生物进化过程,包括选择、重组、变异等操作逐步改进解的质量。

        在该论文中在自动搜索最优策略时使用到了进化算法。

        算法原理:

(1)初始化一个包含k个随机策略的种群

(2)开始迭代,从种群中随机选择两个个体(其实就是源点云和目标点云)

(3)使用这两个个体生成合成数据集,直到网络收敛

(4)比较这两个个体在目标数据集上的损失,选择最好的个体作为父代

(5)对父代进行变异操作,生成新的子代,加入种群,同时删除表现最差的个体

(6)重复上述步骤(2)-(5)直到最大迭代次数

(7)最终选择在目标数据集上表现最好的策略作为最优策略

2、4pcs算法

        4pcs算法是一种全局配准算法,可以在O(n^2+k)的时间复杂度内从3D点集中提取所有近似共面的4点集,这些4点集中存在刚体变换关系。

        近似共面点集满足:点集中点对之间的距离近似相等,角度关系也近似相等(均在一定误差范围内)。这一方法也使得存在重叠的,存在点云偏差的点也有了一定的松弛。近似共面的4点集就是4对对应点对,也就是八个点。多个近似4点集可以构成两个点云之间的点对关系。

        这些点集具有仿射不变性,在仿射变换下仍然具有相同性质,所以可以用来点云配准。

3、Super4PCS算法

        该算法来自于2014Eurographics(欧洲图像学会议),在4PCS基础上,设计了一种快速的全局配准算法,以最优线性时间运行(一般的点云配准是平方复杂度),并且对输出敏感,适用于大规模场景采集。

        该算法通过一种高效实用的数据结构来解决核心问题,即找到距离在(r-\varepsilon ,r+\varepsilon )一定邻域范围内的所有点对。此时时间复杂度是O(n+k_1+k_2),其中n是点云规模,k_1是给定距离r下邻域范围内的点对数,k_2是相似4点集数量。

三、相关工作

1、传统点云配准工作

        对于传统点云配准工作,旨在估计两个输入点集之间的相对姿态。对于ICP方法缺点在于必须要有一个合理的初始化才能收敛到一个很好的解。

        解决这个问题,需要通过全局优化策略,这也产生了Go-ICP、Super4PCS、FGR等算法。

        另外为了解决噪声和离群点问题,通过后处理方法解决的有TEASER和TEASER++等算法。

2、基于深度学习的点云配准

        早期是PointNet和PointNetLK形成端到端网络,另外DCP、DGCNN、Transformer也可以建立点云配准,但都不能解决部分到部分配准问题。

        RPMNet和RGMNet在DCP基础上处理了软分隔问题,DeepGMR采用高斯混合方法,并制定配准为两个概率分布之间的KL散度最小化处理异常值。

        BPNet通过学习生成合成训练数据,来提高真实场景数据上的泛化能力。

3、生成训练数据集

        利用3D模型库生成合成数据集,如Model40。该方法仍然需要人类监督控制大小、位置、纹理,而大量合成物体仍然很困难。

        利用图像数据生成合成数据集,如Meta-sim,Meta-sim2,该方法需要从图像中学习3D数据对,难以推广到点云数据生成。

        利用简单的3D基元组合生成复杂3D形状,但该方法仍需要人工设计组合规则。

        该论文中使用一个轻量级代理网络替换主任务网络,在保持最终性能的时候,来减少计算量。

四、AutoSynth框架

        AutoSynth框架使用的主任务模型是BPNet和IDAM这两种,其中自动合成的三维数据集为D_{syn},主任务模型配准网络为\psi(\omega,D_{syn}(P))\omega代表网络参数,类似权重。

        \hat{P}指通过进化算法搜索得到的最优策略,通过进化算法逐步迭代生成若干策略P_i,最后选择评估结果最好的策略\hat{P}作为最优策略。

1、搜索空间

        搜索空间定义了元学习方法训练过程中的可以探索的所有策略集,每个策略也对应了用于创建3D数据集的超参数。

        论文中提到对于每一个形状元素(类似于圆柱体、正方体)建立一个隐式曲面函数R^3 \rightarrow R,这样对于在几何体上任何一个点,在体内、体外、表面可以定一个有符号的距离函数。对于任何一个点均可以表示为下式:

        其中\alpha为缩放参数,T_{rot} 代表旋转矩阵、T_{shear}代表一个剪切操作矩阵,T_{stretch}代表控制不同轴尺度的矩阵。对于给定形状元素T(x)上每一个点经过变换后,整个形状元素表示为T(F(x)).

        为了得到更多的形状,考虑切断和组合函数。

        切断函数F_{truncation}:定义F_{plane}为一个平面用于截断原始形状元素。                  

                                                F_{truncation}=max(F(x),F_{plane}(x))

        组合函数F_{union}:多个形状的并集。

                                                 F_{union}=\left \{ {F_1(x),F_2(x),...,F_m(x)} \right \}

       

2、进化算法

        该问题中的进化算法采用锦标赛算法。每次从种群中选取两个个体生成新的策略,并使其网络收敛,若评估损失低于标准,则不加入种群,反之,则加入种群,每次保证种群有一定突变。

        突变的策略就是超参数的选择,在该论文中给定了11个超参数,包括旋转,平移,剪切等操作。

3、代理任务模型

        对于点云配准和三维重建的结构如下,他们均有一个DGCNN和一个解码器模块,这允许我们建立一个大规模的搜索空间,用于自动生成训练数据。另外三维重建的网络也比点云配准小很多,能够更好的指导搜索过程,提高搜索速度。

        由于原模型过于庞大,所以用代理任务模型(点云重建模型)替代原任务模型。

        在本文中使用点云重建网络作为代理任务模型,由于点云重建模型有更轻量级的架构,不添加额外的transformer层,同样通过点云作为输入,也不需要任何标注信息。

        对于我们改进的模型是否在点云重建网络上仍然具有同样的提升这个问题,在多任务学习理论中提到,不同任务在相同输入数据上通常会表现出相似的行为,也就是说提升一个任务也会提升其他输入相同数据的任务。

        对于该代理任务模型,DGCNN提取特征,Encoder将数据投影到一个低维的潜在空间中,Decoder从潜在空间中重构点云。该代理任务模型考虑使用倒角距离计算重构误差。

五、实验 

1、测试数据集

        对于后续实验中使用了三个不同真实场景的数据集:TUD-L、LINEMOD、Occuluded-LINEMOD。

        TUD-L:最为简单,没有对称物体和严重遮挡。

        LM:略有挑战性,存在对称物体和边界轻微遮挡。

        LMO:最困难的,包含严重遮挡。

2、BOP评估指标

        BOP评估指标用于评估6D姿态估计精准,其中下面四个指标在论文实验中提到。

(1)VSD:视觉相似度,一个评估物体6D姿态估计精度的指标,考虑了物体的可见性和遮挡情况。

(2)MSSD:平均对称表面距离,测量预测姿态和真实姿态之间的平均对称表面距离。

(3)MSPD:平均对称投影距离,测量预测姿态和真实姿态之间的平均对称投影距离。

(4)AR:平均精度,综合考虑旋转和平移精度。

3、对比实验

        基于上面三个数据集作为测试数据集,对比不同的配准方法训练Model40,以及使用BPNet和IDAM在AutoSynth数据集下训练后评估性能。

        下面的实验数据分别来自于三个数据集TUD-L、LINEMOD、Occuluded-LINEMOD。

4、其他实验 

(1)证明了代理任务网络与主任务网络有相同的性能,并且随着采样数增加,性能有所提高。

(2)对于生成AutoSynth合成数据集过程中,使用真实扫描物体作为目标数据集可以帮助缩小真实数据与合成数据之间的差距。

(3)对于搜索策略选择中,使用代理任务模型来引导,比随机选择策略(随机选择一个策略)和全范围策略(穷举所有策略)有更好的性能。

(4)另外点云配准网络在AutoSynth合成数据集上预训练后,再到真实数据集上微调,也可以提升性能。 

 论文参考:https://arxiv.org/pdf/2309.11170

标签:Training,配准,AutoSynth,Point,算法,点云,数据,3D
From: https://blog.csdn.net/m0_60177079/article/details/141609870

相关文章

  • 内核模块踩内存问题定位利器- hardware breakpoint
    内核由于共享内存地址空间,如果没有合适的工具,很多踩内存的问题即使复现,也无法快速定位;在新的内核版本中引入了一个新工具hardwarebreakpoint,其能够监视对指定的地址的特定类型(读/写)的数据访问,有利于该类问题的定位;以下是一个使用该工具的例子(来自内核代码linux-3.10/sampl......
  • 在phpmyadmin中使用pinpoint
    >fromhttps://github.com/pinpoint-apm/pinpoint-c-agent/wiki/%E5%9C%A8phpmyadmin%E4%B8%AD%E4%BD%BF%E7%94%A8pinpoint怎样在phpmyadmin中使用pinpoint-c-agent为什么我们要发布这篇文章?分享一些监控PHP项目的经验您能从里面获取到啥?怎样使用pinpoint监控PHP......
  • Java后端微服务架构下的服务链路追踪:Dapper与Pinpoint
    Java后端微服务架构下的服务链路追踪:Dapper与Pinpoint大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务链路追踪是一种关键技术,用于监控和诊断服务间的调用关系和性能问题。Dapper和Pinpoint是两种流行的服务链路追踪系统。服务链......
  • OpenCV(cv::Point、cv::Rect、cv::Mat)
    目录1.cv::Point1.1主要属性:1.2示例:1.3用途:2.cv::Rect2.1主要属性:2.2主要方法:2.3示例:2.4用途:3.cv::Mat3.1主要属性:3.2主要方法:3.3示例:3.4用途:4.总结在OpenCV中,cv::Point、cv::Rect和cv::Mat是三个非常常用的类,分别用于表示点、矩形和图像/矩阵数据。下面是它......
  • JavaScript 程序寻找通过 2 个点的线(Program to find line passing through 2 Points)
              在数学和计算机科学中,找到通过两个点的线的方程是一个基础问题。假设我们有两个点 P1​(x1​,y1​) 和 P2​(x2​,y2​),我们想要找到通过这两个点的直线方程。直线方程的形式直线的方程通常表示为 y=mx+b,其中 m 是斜率,b 是 y 轴截距。计算斜率......
  • C# 程序寻找通过 2 个点的线(Program to find line passing through 2 Points)
              在数学和计算机科学中,找到通过两个点的线的方程是一个基础问题。假设我们有两个点 P1​(x1​,y1​) 和 P2​(x2​,y2​),我们想要找到通过这两个点的直线方程。直线方程的形式直线的方程通常表示为 y=mx+b,其中 m 是斜率,b 是 y 轴截距。计算斜率......
  • SDKD 2024 Summer Training Contest E2补题
    SDKD2024SummerTrainingContestE2A-PaperWatering题意对x进行至多k次操作(平方或开方后向下取整),求可以得到多少不同的数。思路平方完一定不同,且平方完后一定能开方出整数,所以只用额外考虑开方后平方的情况。若开方再平方与原来不同,则答案加上当前变化数的次数,直到变......
  • 如何使用hardware breakpoint
    要使用内核的硬件断点(hardwarebreakpoint)来定位内核模块中的内存访问问题,你可以通过以下步骤进行设置和调试。1.确定要监控的内存地址首先,你需要确定你想要监控的内存地址。这可以是某个变量的地址或者某个内存区域的开始地址。内核模块的内存访问问题通常涉及访问越界、未初......
  • GaLore Memory-Efficient LLM Training by Gradient Low-Rank Projection
    目录概符号说明GaLoreZhaoJ.,ZhangZ.,ChenB.,WangZ.,AnandkumarA.andTianY.GaLore:Memory-efficientllmtrainingbygradientlow-rankprojection.ICML,2024.概本文提出了一种优化器中高效的缓存策略.符号说明\(W_t\in\mathbb{R}^{m\timesn}\),参......
  • [1050] Website endpoints in AWS
    ref:WebsiteendpointsWebsiteendpointexamplesThefollowingexamplesshowhowyoucanaccessanAmazonS3bucketthatisconfiguredasastaticwebsite.Example—RequestinganobjectattherootlevelTorequestaspecificobjectthatisstored......