【计算机图形学】3D Implicit Transporter for Temporally Consistent Keypoint Discovery

对3D Implicit Transporter for Temporally Consistent Keypoint Discovery的简单理解

在这里插入图片描述

文章目录

  • 1. 现有方法限制和文章改进
  • 2. 方法
    • 2.1 寻找时间上一致的3D特征点
      • 2.1.1 3D特征Transporter
      • 2.1.2 几何隐式解码器
      • 2.1.3 损失函数
    • 2.2 使用一致特征点的操纵

1. 现有方法限制和文章改进

用于探测特征点的、已经存在的2D和3D方法主要依赖于几何一致性来获得空间上的对齐,而忽视了时间上的一致性。

为了解决这个问题,Transporter在2D数据上,聚合时间和空间信息,进而从原始帧重建目标帧。然而2D Transporter不能直接应用于3D点云上,因为3D点云和2D图像存在结构上的差异。

因此,文章提出了第一个3D版本的Transporter,充分利用混合3D表示、跨注意力机制、隐式重建。在3D铰接物体和非刚性动物(人类和啮齿动物)上应用这种新的学习系统,从而展示了学习到的特征点在时空上的一致性。另外提出了一种closed-loop的控制策略,利用学习到的特征点来进行3D物体操纵,证明其表现。

2. 方法

文章的感知方法提出了一种新的方式,以自监督的方式,在一系列点云中发现移动物体和物体部件在时间和空间上一致的3D特征点。

一旦训练好,学习到的特征点可以被用于设计从初始状态到目标状态的铰接物体的操纵策略,从而避免了UMPNet和Where2Act策略搜集的试错。

2.1 寻找时间上一致的3D特征点

根据[23],数据集的组成是一对对的、从一系列策略中提取出来的帧,每一帧是一个3D点云。一对点云之间是通过物体的姿态/几何(有点类似于Template的概念吗?同一类别下的物体可以泛化?)来辨别差异的。文章的目标是去寻找从源帧到目标帧的、能够描述物体或物体运动部件的对应特征点。文章对这个问题的处理方式是从源帧构建目标帧的基本形状。如下图所示。

在这里插入图片描述

2.1.1 3D特征Transporter

混合的3D表示: 2D图像这种规则数据的对应不适用于不规则的3D点云数据。将点云统一成3D体素网格是最直接的方式,但转换成体素也会引起一些几何结构的信息丢失,比如表面可能不够精确等。尽管可以使用高分辨率的体素网格,但也会带来计算和空间上的成本。

相反,基于点的模型凭借其稀疏表示可以大大减少这些成本,因此,文章利用了基于点的backbone来从稀疏的点钟提取局部特征,利用给予体素的模型来实现局部特征迁移。

给定一帧 o ∈ R N 1 × 3 o∈\R^{N_1×3} oRN1×3 N 1 N_1 N1是输入点的数量,利用PointNet P P P来获得逐点特征 P ( o ) ∈ R N 1 × C 1 P(o)∈\R^{N_1×C_1} P(o)RN1×C1 C 1 C_1 C1是特征维度数。这些特征局部池化并投影到结构化网格 v ∈ R C 2 × C h × C w × C d v∈\R^{C_2×C_h×C_w×C_d} vRC2×Ch×Cw×Cd中。使用3D-UNet U U U来处理特征体素得到输出 U ( v ) ∈ R C 3 × C h × C w × C d U(v)∈\R^{C_3×C_h×C_w×C_d} U(v)RC3×Ch×Cw×Cd。这些步骤通过图2的特征编码器 Φ Φ Φ实现。


注意力特征点探测: 当被要求在一对帧之间寻找移动物体或移动部件时,采用迭代检查和筛选的方式来在帧之间寻找多个试探性区域。受启发于之前的工作,提出使用跨注意力机制模块来聚集两帧的几何信息来定位特征点。

利用基于点的模型来提取输入点云多层特征,进而实现两帧点云之间的关联。给定一对帧 o s , o t o_s,o_t os,ot,利用共享的PointNet++ P ^ \hat{P} P^来获得两个下采样的点特征 f s = P ^ ( o s ) f_s=\hat{P}(o_s) fs=P^(os) f t = P ^ ( o t ) f_t=\hat{P}(o_t) ft=P^(ot),且 f s , f t ∈ R N 2 × C 4 f_s,f_t∈\R^{N_2×C_4} fs,ftRN2×C4。接着使用跨注意力机制来混合这对输入之间的点特征:

在这里插入图片描述

模块的输出( f s ′ , f t ′ f'_s,f'_t fs,ft)是输入特征和注意力特征的concatenation。接着通过PointNet++解码器上采样 f s ′ , f t ′ f'_s,f'_t fs,ft以获得dense features f s ′ , f t ′ ∈ R N 1 × C 5 f'_s,f'_t∈\R^{N_1×C_5} fs,ftRN1×C5

通过以上操作,通过投影和3D UNet U k U_k Uk 将dense point features转换为keypoint saliency volumes(不知道怎么翻译)。整个检测模块的输出表示为 Ψ Ψ Ψ,分别为 Ψ ( o s , o t ) s , Ψ ( o s , o t ) t ∈ R m × C h × C w × C d Ψ(o_s,o_t)_s,Ψ(o_s,o_t)_t∈\R^{m×C_h×C_w×C_d} Ψ(os,ot)s,Ψ(os,ot)tRm×Ch×Cw×Cd,从中可以提取出 m m m个3D关键点 k s , k t ∈ R m × 3 k_s,k_t∈\R^{m×3} ks,ktRm×3,如图2的蓝色部分所示。 k s 和 k t k_s和k_t kskt的第 i i i个特征点彼此对应。


Feature Transportation: 类似于2D Transporter,下一步就是feature transportation以从 o s o_s os中重建 o t o_t ot。Transport Φ ( o t ) Φ(o_t) Φ(ot) k t k_t kt周围的特征至 Φ ( o s ) Φ(o_s) Φ(os)中,压缩 Φ ( o s ) Φ(o_s) Φ(os) k t , k s k_t,k_s kt,ks的特征。如图2绿色部分所示。首先擦除 Φ ( o s ) Φ(o_s) Φ(os)中两个集的特征得到 Φ − ( o s ) Φ^-(o_s) Φ(os),接着从 o t o_t ot中提取特征点 k t k_t kt周围的特征,最后连接到 Φ ( o s ) Φ(o_s) Φ(os)中生成 Φ + ( o s ) Φ^+(o_s) Φ+(os),公式化为:

在这里插入图片描述

其中 H Ψ H_Ψ HΨ表示由固定方差 σ \sigma σ各向同性高斯线组成的3D热力图,以 Ψ Ψ Ψ表示的 m m m个关键点为中心。

2.1.2 几何隐式解码器

由于源和目标帧之间除运动部件外的几何形状保持相同,使用探测到的移动部件上的特征点可以重新合成目标视觉输入。受到3D重建中深度隐式函数的启发,这里使用几何隐式解码器。

给定查询集 Q Q Q中的点 q ∈ R 3 q∈\R^3 qR3,文章的方法使用MLP将点编码成 C e C_e Ce维的向量 q e q_e qe。接着,通过三线性插值从 Φ + ( o s ) Φ^+(o_s) Φ+(os)查询 Φ q + ( o s ) Φ^+_q(o_s) Φq+(os)。隐式解码器 Ω Ω 将特征 q e q_e qe Φ q + ( o s ) Φ^+_q(o_s) Φq+(os)连接后的结果map到目标表面占用率: Ω ( q e , Φ q + ( o s ) ) → P r o b ( q ∣ o t ) Ω(q_e,Φ^+_q(o_s))→Prob(q|o_t) (qe,Φq+(os))Prob(qot)

2.1.3 损失函数

所有模块都可以通过表面重建损失来优化。在预测的目标表面占用率 P r o b ( q ∣ o t ) Prob(q|o_t) Prob(qot)和目标帧的GT标签 P r o b g t ( q ∣ o t ) Prob^{gt}(q|o_t) Probgt(qot)中使用二分类交叉熵损失。如果 q q q来自目标点云,则 P r o b ( q ∣ o t ) Prob(q|o_t) Prob(qot)为1,反之为0,损失函数为:

在这里插入图片描述

除此之外,还使用了额外的损失项 L o c c s L_{occ_s} Loccs,通过利用其自身的特征网格 Φ ( o s ) Φ(o_s) Φ(os)来辅助源帧的重建。

2.2 使用一致特征点的操纵

使用特征点作为中层表示,对于接触丰富的机器人3D空间操纵任务来说是一种合适的方式。之前的工作仅关注与2D特征点表示,或在面对巨大的shape变化或物体拓扑改变的情况下,难以探测到时空一致的3D特征点。由于3D Transporter特征点的长期一致性,文章的方法很好地处理了3D操纵任务。此处以铰接物体操纵作为基线来证明。

在UMPNet工作中,给定目标状态 o g o_g og,目标是生成机器人的end-effector从当前状态 o c o_c oc转变到目标状态 o g o_g og的一组动作。在本片工作中,每个状态使用点云而不是2D图像表示,使用吸盘手以实现对物体表面任意一个点的抓取。

特征点一致性损失: 由于预测的特征点分布在预测的移动部件上,可以使用它来生成源和目标之间的刚性部件运动姿态假设:

在这里插入图片描述

可以使用奇异值分解在封闭形式下计算。强制所有特征点满足刚性转换,使关键点几何对齐:

在这里插入图片描述

关节一致性损失: 铰接运动过程中,轴的方向要么保持不变要么平行。给定预测的姿态,可以通过Rodrigues旋转公式计算轴的方向 μ μ μ和角度 θ \theta θ,惩罚不同时间步下的轴的方向:

在这里插入图片描述

其中, μ a b μ_{ab} μab表示在时间步 a a a和时间步 b b b中预测的轴方向。

完整的损失就是occupancy loss加上这个corr和axis。


在训练后设计了一个基于3D Implicit Transporter keypoint的对象无关的操纵策略,避免了低效探索。对于每个将物体从current state移动到goal state的动作 A c , g A_{c,g} Ac,g,6-Dof姿态表示吸盘手的位置 A c , g p o s ∈ R 3 A^{pos}_{c,g}∈\R^3 Ac,gposR3和移动方向 A c , g d i r ∈ R 3 A^{dir}_{c,g}∈\R^3 Ac,gdirR3,策略由两个部分组成:

位置和方向推理: 第一步是获得预测特征点 k c , k g k_c,k_g kc,kg,轴 μ c , g μ_{c,g} μc,g,角度 θ c , g \theta_{c,g} θc,g。接着从对应特征点计算系数铰接流 F c , g i = k g i − k c i F^i_{c,g}=k^i_g-k^i_c Fc,gi=kgikci。为有效驱动铰接部件,根据杠杆原理选择具有最高magnitude flow的关键点位置 k c s k^s_c kcs作为吸力点,表示为 A c , g p o s = k c s A^{pos}_{c,g}=k^s_c Ac,gpos=kcs

对于旋转轴, k c s k_c^s kcs被限制在垂直于旋转轴的半径为 r s r^s rs的2D圆上,其中 r s r^s rs是从 k c s k^s_c kcs到关节的最短向量。因此, k c s k_c^s kcs的理想行动方向与 A c , g d i r s A^{dir_s}_{c,g} Ac,gdirs相切。若当前状态和目标状态的运动范围较小,则 F c , g s F^s_{c,g} Fc,gs将近似平行于 A c , g d i r s A^{dir_s}_{c,g} Ac,gdirs,则可被设置为运动方向。然而随着旋转范围的增加,它们之间的差异也会越来越显著,减轻这个问题的方法就是根据预测的轴多插值几个中间状态。

对于平移轴, A c , g d i r s A^{dir_s}_{c,g} Ac,gdirs平行于每个移动点的GT铰接流的。直接设置 F c , g s F^s_{c,g} Fc,gs作为铰接方向。不需要区分关节类型,两种方法在极小的差异内都是一样的。

闭环操纵: 与使用单个步骤动作实现目标不同,该工作生成一系列动作来逐渐改变铰接状态。应用一个closed-loop的控制系统,依赖于反馈来逐渐调整当前动作。特别地,基于物体当前状态和目标状态来预测下一个动作。不同于UMPNet使用一个常数移动距离,这里利用 F c , g s F^s_{c,g} Fc,gs的大小来动态调整移动距离。受到PID控制器的启发,设置 ∣ ∣ A c , g d i r s ∣ ∣ = λ ⋅ ∣ ∣ F c , g s ∣ ∣ ||A^{dir_s}_{c,g}||=\lambda·||F^s_{c,g}|| ∣∣Ac,gdirs∣∣=λ∣∣Fc,gs∣∣作为当前状态, λ \lambda λ是一个比例系数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/576704.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库索引及优化

数据库索引及优化 什么是索引? MySQL官方对索引的定义为:索引(INDEX)是帮助MySQL高效获取数据的数据结构。 索引的本质: 数据结构 为什么要引入索引? 引入索引的目的在于提高查询效率,就好像是…

fast_bev学习笔记

目录 一. 简述二. 输入输出三. github资源四. 复现推理过程4.1 cuda tensorrt 版 一. 简述 原文:Fast-BEV: A Fast and Strong Bird’s-Eye View Perception Baseline FAST BEV是一种高性能、快速推理和部署友好的解决方案,专为自动驾驶车载芯片设计。该框架主要包…

QT布局管理和空间提升为和空间间隔

QHBoxLayout:按照水平方向从左到右布局; QVBoxLayout:按照竖直方向从上到下布局; QGridLayout:在一个网格中进行布局,类似于HTML的table; 基本布局管理类包括:QBoxLayout、QGridL…

平台介绍-搭建赛事运营平台(3)

上文介绍了品牌隔离的基本原理,就是通过不同的前端和微服务来实现。但是确实很多功能是类似的,所以从编程角度还是有些管理手段的。 前端部分:前端部分没有什么特别手段,就是两个独立的项目工程,分别维护。相同的部分复…

IMU评估产后腹直肌分离康复训练

腹直肌分离(Diastasis Recti Abdominis,DRA)是由腹部纤维联结组织——腹白线的过度伸张所致,这项研究的目标是通过惯性测量单元(IMU)感应器信号来分析产后康复。传统的康复方式通常包括针对性的物理疗法&am…

位操作符

简介: &,|,^,~都是常见的位操作符,操作对象是二进制数,运算时须将原码转换成补码(符号位为0,即正数时,补码与原码一致,不需要再转换),位数不一致时&#…

docker部署ubuntu

仓库: https://hub.docker.com/search?qUbuntu 拉一个Ubuntu镜像 docker pull ubuntu:18.04 查看本地镜像: docker images 运行容器 docker run -itd --name ubuntu-18-001 ubuntu:18.04 通过ps命令可以查看正在运行的容器信息 docker ps 进入容器 最…

CAN总线系列一:初识CAN总线

CAN协议简介 CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。 一、总线特点&#…

排序大乱炖

目录 一:插入排序 1.1直接插入排序 1.2希尔排序 二:选择排序 2.1选择排序 2.2堆排序 三:交换排序 3.1冒泡排序 3.2快速排序 3.2.1Hoare版本 3.2.2双指针法 3.2.3非递归 一:插入排序 1.1直接插入排序 直接插入排序…

第P1周:实现mnist手写数字识别

>- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客** >- **🍖 原作者:[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/)** 目录 一、前言 二、我…

基于springboot实现网上超市管理系统项目【项目源码+论文说明】

基于springboot实现网上超市管理系统演示 摘要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的…

从零开始的软件开发实战:互联网医院APP搭建详解

今天,笔者将以“从零开始的软件开发实战:互联网医院APP搭建详解”为主题,深入探讨互联网医院APP的开发过程和关键技术。 第一步:需求分析和规划 互联网医院APP的主要功能包括在线挂号、医生预约、医疗咨询、健康档案管理等。我们…