论文笔记:《3D Correspondences by Deep Deformation》

本文提出Shape Deformation Networks,通过深度学习方法实现模板驱动的形状对应。网络包括编码器和解码器,编码器将输入形状转化为特征向量,解码器将模板变形为目标形状。训练过程包含监督和无监督损失,优化过程涉及形状重构的优化。实验结果显示,该方法在FAUST、SCAPE和TOSCA数据集上表现优秀,证明了其在3D形状对应问题上的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Introduction:

本文提出了Shape Deformation Networks,来做template-driven形状对应。
这个网络学习 变形模板的形状,并与输入形状做对应。
训练:shape deformation networks(encoder-decoder)
编码网络:将目标形状作为输入,生成全局特征向量
解码网络:模板作为输入,将模板变形为目标形状

Method:

论文方法分为三大块:
(a)network training:
figure1a这个是网络的训练过程。(对应论文中的3.1)
**编码器Eφ:**先输入一个三维点云S,它将输入的每一个3D点都与一个多层感知器相连(MLP隐藏特征大小为64,128,1024),经过一个线性层后,对每一个点得到的特征结果做maxpooling,得到1024维的Eφ (S)特征。
(直观理解,输入一个点云S,利用前向传播将S编码成隐藏代码E,然后利用pointnet将E码弄成特征向量E(S)。)

解码器Dθ:它的输入是上面得到的特征向量和模板A上的一个点P的3D坐标。
这个网络是一个多层感知器,隐藏层大小为1024 , 512 , 256 , 128。后面跟着一个双曲正切。该结构是将模板域的任意点映射到重构表面上,通过对模板进行采样,反复操作,从而输出任意数量的输出点。

在这个过程中,包含了两种损失。
supervised loss
这种情况下,模板A 与 训练形状 S 之间的对应是已知的。qj是训练形状上的点,pi是模板上的点。 pj ↔ qj 。
the reconstruction loss:

pcl::Correspondences是PCL中用于描述点云间对应关系的数据结构。它包含了两个属性:index_query和index_match,分别表示源点云和目标点云中对应点的索引。 下面是一个创建pcl::Correspondences的示例代码: ```cpp pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_src(new pcl::PointCloud<pcl::PointXYZ>); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_tgt(new pcl::PointCloud<pcl::PointXYZ>); pcl::search::KdTree<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>); pcl::CorrespondencesPtr correspondences(new pcl::Correspondences()); // 填充源点云和目标点云 // 初始化一个KdTree tree->setInputCloud(cloud_tgt); // 设置匹配阈值 const float max_distance = 0.1; // 对于源点云中的每个点,寻找其在目标点云中的最近邻,并计算它们之间的距离 for (size_t i = 0; i < cloud_src->size(); ++i) { std::vector<int> indices(1); std::vector<float> distances(1); tree->nearestKSearch(cloud_src->at(i), 1, indices, distances); if (distances[0] < max_distance) { pcl::Correspondence correspondence(indices[0], static_cast<int>(i), distances[0]); correspondences->push_back(correspondence); } } ``` 在上述代码中,我们首先创建了两个PointCloud指针,分别表示源点云和目标点云。然后创建了一个KdTree用于快速查找最近邻。接着,我们遍历源点云中的每个点,使用KdTree查找其在目标点云中的最近邻,并计算它们之间的距离。如果它们之间的距离小于给定的匹配阈值,就将它们的索引和距离存储在一个pcl::Correspondence中,并添加到pcl::Correspondences中。最终,pcl::Correspondences中存储了所有的匹配对应关系。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值