《RelPose++: Recovering 6D Poses from Sparse-view Observations》阅读笔记

论文地址:https://arxiv.org/abs/2305.04926

项目地址:https://github.com/amyxlase/relpose-plus-plus

---------------------------------------------------------------------------------------------------------------------------------

任务:

        从稀疏视图图像集(2-8张图像)估计6D相机姿势的任务

挑战:

        这项任务是几乎所有当代(神经)重建算法的重要预处理阶段,但在稀疏视图的情况下仍然具有挑战性,特别是对于具有视觉对称性无纹理表面的对象。

动机:

        虽然几种稀疏视图重建方法已经显示出有希望的结果,但它们严重依赖于已知的(精确或近似)6D相机姿势来进行这种3D推理,并回避了如何首先获得这些6D姿势的问题。

提出:

        开发了一个系统,可以帮助弥合这一差距,并在给定通用对象(例如 Fetch 机器人)的稀疏图像集的情况下稳健地推断(粗略)6D 姿势,即RelPose++,该方法建立在RelPose基础之上。

大致过程:

        首先使用ResNet 50提取全局图像特征。作者对图像索引进行位置编码,并将边界框参数连接为Transformer的输入。

        在对所有图像特征进行联合处理后,分别对旋转和平移进行估计。

        为了处理姿态的模糊性,作者使用基于能量的公式(RelPose)对旋转分布进行建模。因为在最接近所有光轴的唯一世界坐标上预测原点,所以可以直接从学习到的特征中回归相机平移。

贡献:

        本文基于RelPose框架改造,在此基础上添加了两个关键扩展:

                首先,使用注意力transformer层来联合处理多个图像,因为对象的额外视图可能会解决任何给定图像对中的对称性歧义(例如,一个杯子的把手在第三个视图中变得可见)。

                其次,通过定义一个适当的坐标系统来扩展这个网络,以报告相机的平移,从而解耦旋转估计中的歧义与平移预测。

结果:

        1. 在CO3D 数据集的 41 个类别进行训练,并且能够仅从几张图像中恢复对象的 6D 相机姿势

        2. 评估了可见类别、不可见类别甚至新数据集(以零样本方式),将旋转预测提高了 10% 以上现有技术。

        3. 通过测量预测相机中心的准确性来评估完整的6D相机姿势(同时考虑相似性变换模糊性),并展示了我们提出的坐标系的好处。

       

-- Logs begin at 一 2025-10-27 08:33:16 CST, end at 一 2025-10-27 10:33:49 CST. -- 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.885422897+08:00" level=warning msg="could not use snapshotter devmapper in metadata plugin" error="devmapper not c 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.885441706+08:00" level=info msg="metadata content store policy set" policy=shared 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.885756307+08:00" level=info msg="loading plugin \"io.containerd.differ.v1.walking\"..." type=io.containerd.differ. 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.885802649+08:00" level=info msg="loading plugin \"io.containerd.event.v1.exchange\"..." type=io.containerd.event.v 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.885826947+08:00" level=info msg="loading plugin \"io.containerd.gc.v1.scheduler\"..." type=io.containerd.gc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.886041879+08:00" level=info msg="loading plugin \"io.containerd.runtime.v1.linux\"..." type=io.containerd.runtime. 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.886203310+08:00" level=info msg="loading plugin \"io.containerd.runtime.v2.task\"..." type=io.containerd.runtime.v 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.917415427+08:00" level=info msg="loading plugin \"io.containerd.internal.v1.opt\"..." type=io.containerd.internal. 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.917764231+08:00" level=info msg="loading plugin \"io.containerd.warning.v1.deprecations\"..." type=io.containerd.w 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.917813801+08:00" level=info msg="loading plugin \"io.containerd.monitor.v1.cgroups\"..." type=io.containerd.monito 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918586325+08:00" level=info msg="loading plugin \"io.containerd.service.v1.containers-service\"..." type=io.contai 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918647777+08:00" level=info msg="loading plugin \"io.containerd.service.v1.content-service\"..." type=io.container 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918685895+08:00" level=info msg="loading plugin \"io.containerd.service.v1.diff-service\"..." type=io.containerd.s 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918752175+08:00" level=info msg="loading plugin \"io.containerd.service.v1.images-service\"..." type=io.containerd 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918794702+08:00" level=info msg="loading plugin \"io.containerd.service.v1.introspection-service\"..." type=io.con 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918823556+08:00" level=info msg="loading plugin \"io.containerd.service.v1.leases-service\"..." type=io.containerd 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918926203+08:00" level=info msg="loading plugin \"io.containerd.service.v1.namespaces-service\"..." type=io.contai 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918967734+08:00" level=info msg="loading plugin \"io.containerd.service.v1.snapshots-service\"..." type=io.contain 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.918993627+08:00" level=info msg="loading plugin \"io.containerd.service.v1.tasks-service\"..." type=io.containerd. 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919089371+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.containers\"..." type=io.containerd.grpc.v 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919141864+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.content\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919176674+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.diff\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919204795+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.events\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919236095+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.images\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919262844+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.introspection\"..." type=io.containerd.grp 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919288238+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.leases\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919312799+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.namespaces\"..." type=io.containerd.grpc.v 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919338754+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.snapshots\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919364688+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.tasks\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919391442+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.version\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919418401+08:00" level=info msg="loading plugin \"io.containerd.tracing.processor.v1.otlp\"..." type=io.containerd 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919466830+08:00" level=info msg="skip loading plugin \"io.containerd.tracing.processor.v1.otlp\"..." error="skip p 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919491989+08:00" level=info msg="loading plugin \"io.containerd.internal.v1.tracing\"..." type=io.containerd.inter 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919525491+08:00" level=info msg="skip loading plugin \"io.containerd.internal.v1.tracing\"..." error="skip plugin: 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919545652+08:00" level=info msg="loading plugin \"io.containerd.internal.v1.restart\"..." type=io.containerd.inter 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919667652+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.healthcheck\"..." type=io.containerd.grpc. 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.919702900+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.cri\"..." type=io.containerd.grpc.v1 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.920842788+08:00" level=info msg="Start cri plugin with config {PluginConfig:{ContainerdConfig:{Snapshotter:overlay 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.920978994+08:00" level=info msg="Connect containerd service" 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.921201392+08:00" level=info msg="Get image filesystem path \"/var/lib/containerd/io.containerd.snapshotter.v1.over 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.922505800+08:00" level=info msg=serving... address=/run/containerd/containerd.sock.ttrpc 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.922588361+08:00" level=info msg=serving... address=/run/containerd/containerd.sock 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.928178225+08:00" level=info msg="Start subscribing containerd event" 10月 27 10:31:25 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:25.928310496+08:00" level=info msg="Start recovering state" 10月 27 10:31:26 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:26.107750531+08:00" level=info msg="Start event monitor" 10月 27 10:31:26 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:26.107814527+08:00" level=info msg="Start snapshots syncer" 10月 27 10:31:26 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:26.107828321+08:00" level=info msg="Start cni network conf syncer for default" 10月 27 10:31:26 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:26.107834950+08:00" level=info msg="Start streaming server" 10月 27 10:31:26 k8s-master-01 containerd[59620]: time="2025-10-27T10:31:26.107906501+08:00" level=info msg="containerd successfully booted in 0.285624s"
10-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值