斯坦福大学提出在类别层级对多零件多关节三维拼装新方法

来源:投稿 作者:橡皮
编辑:学姐

paper:https://arxiv.org/pdf/2303.06163.pdf

背景:

形状装配通过排列一组简单或基本的零件几何图形来组成复杂的形状几何图形。许多重要的任务和应用都依赖于形状装配算法。

计算机辅助设计建模要求设计者重新定位和对齐一组零件几何图形,以创建复杂的设计。精确和稳健的形状装配算法对于开发家具装配或CAD建模的自主系统至关重要。

这些先前的工作采用了从零件建模形状的整体几何视角。它们制作的形状具有很高的美学价值。然而,这种纯粹的几何视角对零件的旋转和反射对称性是不可知的,因此会产生倒置、翻转和旋转的零件姿态预测。这些有噪声的预测可能导致关节不匹配或关节之间的不匹配,使其难以直接用于自主装配或功能形状建模。在多部件多关节装配设置中存在许多挑战:1)大的匹配搜索空间,2)非连续优化,以及3)误差复合。

在由两部分组成的装配设置中,关节的配对是明确的,因此可以通过连续的姿势优化直接实现所需的装配。然而,我们的多部分多关节任务需要在非常大的匹配空间中求解二部分联合配对。此外,我们的任务需要交错的离散和连续优化。联合配对是离散解空间中的组合问题,而姿态估计是在连续解空间中。

主要贡献:

针对类别级多零件三维形状装配问题,考虑了接头的概念。引入了一个联合注释零件数据集以及一组评估指标来检查性能。

提出了一种新的层次图网络,该网络同时优化整体形状结构和关节对齐精度。

进行了广泛的实验,以证明方法在整体形状结构和关节对准精度这两个任务目标上优于先前的工作。

方法介绍:

在本文中,目标是解决多部件多关节形状装配的任务。该任务模拟了真实世界的家具装配设置,其中多个造型零件通过接触接头以不同的方式连接,以形成复杂的造型几何结构。如图所示,我们得到了(a)多个形状的零件,其中每个零件都包含多个接头。

对于我们的设置,使用桩孔接头对来表示允许的连接,类似于螺栓和螺母,其中只允许在相同接触几何形状的公件和母件之间进行匹配。我们的目标是(b)将所有销钉接头与孔接头正确连接,(c)将这些零件拼接在一起,(d)形成所需形状。

方法概览:

我们的多级图网络由两个主要的GNN模块组成:零件图模块和联合图模块。零件图模块负责预测每个零件的姿态,以构建所需的形状结构。联合图模块有助于校正零件姿势,以连接匹配的关节。联合图消息传递(b)包含四个消息传递层:

方法细节1:问题设置与概述

问题设置:多零件多关节形状装配任务定义如下:给定 1)一组3D零件点云

和2)每个零件都应该包含多个销钉和/或孔接头

,我们旨在预测一组6-DoF零件姿态

对于所有输入零件P,以满足双边目标:1)变换零件

其形成期望的3D形状,2)所有关节匹配,并且匹配的桩J^P和孔J^h彼此靠近。

概述:我们的多部件多关节形状装配任务有几个挑战1)从非常大的匹配搜索空间(O(M2))中找到一组一对一的栓孔匹配,2)预测所有部件的姿态,使它们同时实现连接所有匹配的关节和形成所需形状结构的两个目标,3)局部关节匹配或姿态预测误差可以容易地传播到整个形状并导致退化。

为了应对第一个挑战,我们引入了形状先验启发式算法来减少匹配搜索空间。受先前工作的启发,我们使用零件几何信息通过零件图提出初始粗略形状结构。然后,我们的关节图与粗略的形状结构一起工作,以找到初始的桩孔匹配。我们通过让两个层次的图表示学习专注于两个目标中的每一个来解决第二个挑战。关节图模块匹配关节。零件图构造形状。

然后,我们使用层次特征聚合将关节级和零件级信息相结合,以预测符合这两个目标的零件姿态。我们通过在两种表示之间交替来逐渐细化零件姿势,以实现两个期望的目标。

方法细节2:零件图姿势建议

零件图旨在从给定的一组零件几何形状中提出所需的形状结构。受先前工作的启发,我们直接从零件几何图形中回归零件姿态。因此,我们通过对每个图节点v_i^p和在所有零件节点之间运行的边e_{i,j}^p上的零件几何形状P特征进行编码来初始化我们的零件图

。使用 PointNet 提取零件几何特征。为了明确地对零件之间的关系进行建模,以形成所需的形状,我们使用图来消息传递,这是一种节点通过边缘连接与邻居交换信息的机制。部分级消息传递是通过迭代更新边缘特征来实现的和节点特征

。我们使用更新后的图进行姿态预测,如图所示。在部分图卷积的第一次迭代中,从部分节点特征中解码部分姿态向量,

。对于任何后续迭代,在给定先前步骤姿态预测和更新的节点特征

的情况下,预测姿态向量

方法细节3:关节图关系推理

我们使用关节图来推断和细化关节连接关系。如图所示,我们首先使用 PointNet 初始化关节节点特征v_i^j ,以提取关节几何特征向量。关节边eij被初始化为在所有桩节点和所有孔节点

之间运行的一组二分边,以反映所有可能的允许连接。然后,我们使用消息传递来迭代地更新边缘和节点特征。具体来说,我们首先用从其连接节点特征计算出的神经消息更新每个边缘eij的特征,

对于接下来的步骤,我们通过聚合来自所有连接的关节边v0i=fe的信息来更新节点特征

。我们通过显式地建模关节连接关系来进一步更新关节节点特征vi。关节连接性取决于两个关键信息,即接触曲面几何图形和相对零件位置。因此,我们根据关节几何形状p_i^{joint}和零件位置q_i对关节匹配关系进行建模。

我们学习了一个关节连通性矩阵r_j^i∈[0,1]来反映关节是如何连接的。然后,连接矩阵被用作应用于边缘特征e_j^i的边缘权重,并且我们通过聚合加权的边缘特征来进一步更新联合节点:

方法细节4:关节感知姿势预测

为了生成同时实现关节匹配和形状结构目标的零件姿态,我们需要结合来自零件图和关节图的信息。关节-零件关系是分层的,因为关节是零件上的接触位置。我们建议使用分层特征聚合来对这种关系进行建模。

具体而言,我们对零件

的所有相关关节节点使用池化操作,以形成新的以关节为中心的零件特征,如图2底部的(c)部分所示。

然后,通过部分特征级联将这些联合聚合的部分节点特征与原始部分图相结合,用于联合感知姿态预测,如图2中的(d)部分所示。2。现在,由于新的零件特征包含关节和零件信息,我们使用新更新的零件图进行关节感知姿势建议。以先前图迭代生成的零件姿态{qi,t+1}为条件,我们预测了一个精化零件姿态算子

新的姿态预测由预测的姿态算子和前一阶段的部分姿态组成,

其中,通过将新的旋转差应用于先前的旋转预测来计算新的旋转,并且通过添加平移差和先前的平移预测来更新平移。

方法细节5:损失函数

我们利用两组损失函数:形状损失和联合损失来优化我们的多级图网络。 旨在帮助零件图网络生成有效的形状结构, 帮助关节图匹配和连接所有关节。

形状损失:在设计形状损失时,我们专注于平移、旋转和整体形状结构方面,其中=λ1Lt+λ2Lr+λ3La。我们使用L2损失来监督翻译,使用CD来监督旋转和整体形状结构。

其中,倒角距离(CD)定义为:

此外,我们确保我们的形状损失是一个阶不变的损失度量,以解决几何上一致的部分,例如椅子的腿。具体来说,我们在每个全等部分类中执行匈牙利匹配,以使用最接近的基本事实部分姿势进行监督。

关节损失:关节匹配任务对预测误差非常敏感;一个小的匹配误差可能导致整个形状的恶化。因此,我们以从粗到细的方式监督关节匹配目标,包括三个损耗分量:=λ4+λ5+λ6。第一损失项直接校正翻转姿势预测。我们使用旋转L2损失来校正具有反射对称性的零件的倒置预测:

第二损失项提供了粗略的引导以连接匹配的接头。我们使用匹配的桩j_a^p和孔j_b^h之间的L2距离。我们使用n_{joint}表示关节点的数量,

受先前工作的启发,最后一个损失分量使用关节几何线索来细化关节对齐。

我们使用成对的桩j_a^p和孔j_b^h之间的倒角距离,并应用预测的姿态,

联合损耗的后两个分量以联合匹配分配

为条件。由于全等部分类中的任何任意排列也是有效的预测,我们不能直接使用地面实况联合匹配Φgt作为我们的监督信号。因此,为了保证关节匹配的顺序不变性,我们设计了一种具有图遍历方案的关节匹配算法,以分配全等零件类之间的关节匹配 。

实验结果:

关注下方【学姐带你玩AI】🚀🚀🚀

免费领取人工智能学习大礼包(电子书、论文、教程视频...)

码字不易,欢迎大家点赞评论收藏!

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

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

相关文章

棱镜七彩正式加入龙蜥社区安全联盟(OASA)

近日,龙蜥社区安全联盟(OASA)正式成立,棱镜七彩成为该联盟成员单位。 龙蜥社区安全联盟是促进产业合作的非营利组织,致力于打造中立开放、聚焦操作系统信息安全的交流平台,推进龙蜥社区乃至整个产业安全生态…

js实现原型链污染,沙箱绕过

一、沙箱绕过 1.概念 沙箱绕过"是指攻击者利用各种方法和技术来规避或绕过应用程序或系统中的沙箱(sandbox)。沙箱是一种安全机制,用于隔离和限制应用程序的执行环境,从而防止恶意代码对系统造成损害。它常被用于隔离不受信…

2023 电赛E题--可能会出现的问题以及解决方法

2023年电赛E题报告模板(K210版)--可直接使用 本文链接:2023年电赛E题报告模板(K210版)--可直接使用_皓悦编程记的博客-CSDN博客 解决激光笔在黑色区域无法识别 本文链接: 2023 电赛 E 题 激光笔识别有误-…

Stable Diffusion AI绘画学习指南【插件安装设置】

插件安装的方式 可用列表方式安装,点开Extensions 选项卡,找到如下图,找到Available选项卡,点load from加载可用插件,在可用插件列表中找到要装的插件按install 按扭按装,安装完后(Apply and restart UI)应…

ER系列路由器多网段划分设置指南

ER系列路由器多网段划分设置指南 - TP-LINK 服务支持 TP-LINK ER系列路由器支持划分多网段,可以针对不同的LAN接口划分网段,即每一个或多个LAN接口对应一个网段;也可以通过一个LAN接口与支持划分802.1Q VLAN的交换机进行对接,实现…

【八】mybatis 日志模块设计

mybatis 日志模块设计 简介:闲来无事阅读一下mybatis的日志模块设计,学习一下优秀开源框架的设计思路,提升自己的编码能力 模块设计 在Mybatis内部定义了4个级别:Error:错误 、warn:警告、debug:调试、trance,日志优…

windows编译zookeeker动态库供C++链接使用以及遇到的错误处理方法

windows下面C链接zookeeper资料不多,特此记录一下 编译环境VS 2015 一. 相关安装包安装下载 1. zookeeper zookeeper3.6.4 下载zip包解压即可 2. ant apache-ant-1.9.16 将包进行解压D:project\apache-ant-1.9.16,然后配置环境变量 新建 ANT_HOME 系…

Portraiture 4.0.3 for windows/Mac简体中文版(ps人像磨皮滤镜插件)

Imagenomic Portraiture系列插件作为PS磨皮美白必备插件,可以说是最强,今天它更新到了4.0.3版本。但是全网都没有汉化包,经过几个日夜汉化,终于汉化完成可能是全网首个Portraiture 4的汉化包,请大家体验,有…

【Kubernetes】Kubernetes之二进制部署

kubernetes 一、Kubernetes 的安装部署1. 常见的安装部署方式1.1 Minikube1.2 Kubeadm1.3 二进制安装部署2. K8S 部署 二进制与高可用的区别2.1 二进制部署2.2 kubeadm 部署二、Kubernetes 二进制部署过程1. 服务器相关设置以及架构2. 操作系统初始化配置3. 部署 etcd 集群4. 部…

2023.8.1号论文阅读

文章目录 MCPA: Multi-scale Cross Perceptron Attention Network for 2D Medical Image Segmentation摘要本文方法实验结果 SwinMM: Masked Multi-view with SwinTransformers for 3D Medical Image Segmentation摘要本文方法实验结果 MCPA: Multi-scale Cross Perceptron Att…

Pytorch深度学习-----神经网络之卷积层用法详解

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Co…

visual studio 生成dll文件以及修改输出dll文件名称操作

目录 visual studio 生成dll文件以及修改dll文件名称一、准备测试代码二、设置导出dll属性三、生成dll文件 .lib .dll .pdb 的简单介绍dll文件使用方式lib文件使用方式1、动态链接 (原理)2、静态链接: visual studio 生成dll文件以及修改dll文…

刷题学算法

刷题学算法 数据结构 一、数组 1. 数组创建: // 方式1:先创建,再逐个存储元素 String[] cityArray1 new String[5]; cityArray1[0] "北京"; cityArray1[1] "上海"; cityArray1[2] "广州"; cityArray1[3…

【无公网IP】在公网环境下Windows远程桌面Ubuntu 18.04

【无公网IP】在公网环境下Windows远程桌面Ubuntu 18.04 文章目录 *【无*公网IP】在公网环境下Windows远程桌面Ubuntu 18.04一、 同个局域网内远程桌面Ubuntu1. 更新软件仓库2. 安装支持包3. 安装XFCE4桌面环境4. 安装XRDP5. 环境设置5.1 XFCE桌面配置5.2 在配置文件中&#xff…

cmake配置Qt工程

cmake 工程配置 # 指定版本和项目 cmake_minimum_required(VERSION 3.10) set(TARGET_NAME labelDeviceView) project(${TARGET_NAME} ) include(${CMAKE_CURRENT_LIST_DIR}/../../../../../../ossLib/ossLib/env.cmake) set(CMAKE_PREFIX_PATH "D:/Qt6/6.5.2/msvc2019…

“Why Should I Trust You?” Explaining the Predictions of Any Classifier阅读笔记

“Why Should I Trust You?” Explaining the Predictions of Any Classifier阅读笔记 1. 论文贡献2. 背景 [ 1 ] ^{[1]} [1]3. LIME解释单个样本3.1 总体思想3.2 构建可解释的数据表示 [ 1 ] ^{[1]} [1]3.3 可解释性和忠实度的权衡3.4 局部采样3.5 稀疏线性解释3.6 使用SVM进…

电脑选睡眠、休眠还是关机?

关机 这是大家最熟悉的。关机时,系统首先关闭所有运行中的程序,然后关闭系统后台服务。随后,系统向主板请求关机,主板断开电源的供电使能,让电源切断对绝大多数设备的供电(只剩一些内部零件仍会维持电源供应…

测试岗?从功能测试进阶自动化测试开发,测试之路不迷茫...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 测试新人在想什么…

软件测试需求分析的常用方法

软件测试需求分析时,应要求产品人员对需求进行讲解,并使用相对应的方法进行科学分析,否则无法保障软件测试的完整性和科学性,从而造成在项目中后期Bug频出、风险增大等问题。 而常用的测试需求分析的方法: 1、功能分解…

基于 FFlogs API 快速实现的 logs 颜色查询小爬虫

文章目录 找到接口解析响应需要平均颜色和过本次数? 找到接口 首先试了一下爬虫,发现和wow一样官网上有暴露的 API,链接在:FFlogs v1 API 文档链接 通过查询官方提供的 API 接口得知: user_name 角色名字 api_key …