没有合适的资源?快使用搜索试试~ 我知道了~
124780CSG-Stump:一种学习友好的CSG-Like表示方法,用于可解释的形状解析0Daxuan Ren 1 , 2 Jianmin Zheng 1 , † Jianfei Cai 3 Jiatong Li 1 , 2 Haiyong Jiang 50Zhongang Cai 2 , 4 Junzhe Zhang 2 , 4 Liang Pan 4 Mingyuan Zhang 2 , 4 Haiyu Zhao 2 Shuai Yi 201 新加坡南洋理工大学(NTU) 2 商汤研究 3 莫纳什大学 4 NTU S-Lab 5中国科学院大学0{ daxuan001, asjmzheng, E180176, haiyong.jiang, junzhe001, liang.pan } @ntu.edu.sg0{ zhangmingyuan, caizhongang, zhaohaiyu, yishuai } @sensetime.com jianfei.cai@monash.edu0摘要0从点云生成可解释且紧凑的3D形状表示是一个重要且具有挑战性的问题。本文提出了CSG-StumpNet,这是一个无监督的端到端网络,用于从点云中学习形状并发现底层的构件建模原语和操作。核心是一个称为CSG-Stump的三级结构,包括底部的补集层、中间的交集层和顶部的并集层。CSG-Stump在表示方面被证明与CSG等效,因此继承了CSG的可解释性、紧凑性和可编辑性,同时摆脱了CSG复杂的树结构。特别是,CSG-Stump具有简单且规则的结构,允许神经网络输出具有恒定维度,使其更适合深度学习。由于CSG-Stump的这些特点,与以前基于CSG的方法相比,CSG-StumpNet取得了更好的结果,并生成了更具吸引力的形状,经过大量实验证实。01. 引言0项目页面:https://kimren227.github.io/projects/CSGStump/ †表示通讯作者。该工作得到了WASP/NTU项目(04INS000440C130)的部分支持。0图1.CAD模型(a)可以表示为CSG表示(b)或CSG-Stump表示(c)。CSG-Stump等效于CSG,但摆脱了CSG的不规则树结构。因此,CSG-Stump对于优化公式和网络设计更友好。这里的节点“I”、“U”、“D”和“C”分别表示交集、并集、差集和(形状)补集。0在3D采集技术中,点云很容易生成,但它们是一组无结构的点,缺乏明确的高级结构和语义信息。将点云转换为高级形状表示具有很大的需求,这有助于识别和理解形状,支持设计师重新创建新产品,并促进建筑等各种应用。124790产品和系统的数字孪生是一种重要的技术,特别是工程领域广泛研究的从点云中重建隐式或参数化(CAD)模型。然而,大多数现有技术涉及繁琐耗时的过程,并且难以完全满足行业的需求,这实际上表明需要一种范式转变。近年来,深度学习在计算机视觉和自然语言处理等领域取得了重大成功,并显示出在解决传统技术难以解决的复杂问题方面的巨大潜力。对于从点云中高级形状重建的深度学习技术的探索也越来越受欢迎。特别是,一些研究利用神经网络技术将点云模型解析为其构造实体几何(CSG)树[13],这是CAD行业中广泛使用的3D表示和建模处理方法。CSG通过对简单的参数化基元进行布尔运算,通常后跟一个二叉树(见图1)来建模形状。因此,CSG是提供紧凑表示、高可解释性和可编辑性的理想模型。然而,二叉CSG树结构引入了两个挑战:1)很难定义具有固定维度公式的CSG树;2)CSG树构建的迭代性质无法表示为矩阵运算,长序列优化会出现梯度消失问题。CSG-Net[28]通过使用RNN进行树结构预测,开创了基于深度学习的CSG解析。然而,CSG-Net需要昂贵的注释和专业知识,难以扩展。BSP-Net [3]和CVX-Net[7]提出利用一组参数化超平面来表示形状,但需要大量的超平面来近似曲面。总的来说,这些方法仍然不够高效、可解释或易于编辑。更重要的是,这些方法在推理过程中假设预测的超平面之间存在固定的组合,从而限制了其理论可表示性。UCSG-Net[11]提出了CSG-Layer,通过多层CSG树迭代生成高度可解释的形状,但由于优化困难,只能支持少数层(UCSG-Net中的五层),这极大地限制了多样性和表示能力。在本文中,我们提出了CSG-Stump,这是CSG树的一种新颖和系统的改进。CSG-Stump具有仅有三层的固定树结构(因此被称为stump)。我们证明了CSG-Stump在表示方面与典型的CSG树等效,即我们可以通过我们的三层CSG-Stump来表示任何复杂的CSG形状(见图1)。因此,CSG-Stump继承了CSG-Tree的理想特性,允许高度紧凑、可解释的形状。0并且可编辑的形状表示,同时摆脱了树结构的限制。此外,CSG-Stump还带来了两个额外的优势:1)高表示能力。与需要多层复杂形状的传统CSG-Tree相比,CSG-Stump可以实现更现实的最大表示能力。2)深度学习友好。CSG-Stump的一致结构使得神经网络可以给出固定维度的输出,使得网络设计更加容易。我们还提出了两种方法来自动构建CSG-Stump,例如从非结构化的原始输入(例如点云)中检测基本原语。第一种方法是使用现成的方法(例如RANSAC[27])检测基本原语,然后将问题转化为二进制规划问题来估计原语的构造关系。为了克服输入的精度要求、手动参数调整和问题的组合性质导致的可扩展性等问题,我们在第二种方法中设计了一个简单的端到端网络,用于联合原语检测和CSG-Stump估计(见第4节)。这种数据驱动的方法更加高效。此外,它可以从大规模数据中学习有用的先验知识,用于原语检测和组装。值得注意的是,这个网络是以无监督的方式进行训练的,即不需要经过训练专业人员的昂贵的CSG解析树注释。实验结果表明,我们的CSG-Stump展现出了显著的表示能力,同时保持了CSG表示的可解释性、紧凑性和可编辑性。总之,本文的贡献如下:0•我们提出了CSG-Stump,这是经典CSG-Tree的三层重构,用于更好地解释、训练和学习友好的表示,并提供了CSG-Stump和CSG-Tree之间等价性的理论证明。0•我们证明CSG-Stump与深度学习高度兼容。在其帮助下,即使是简单的无监督端到端网络也能进行动态形状抽象。0•我们进行了大量实验证明,CSG-Stump在定量和定性上都取得了最先进的结果,同时允许进一步的编辑和操作。02. 相关工作0本节简要回顾了与我们的工作相关的3D形状表示、神经点云学习和高级形状解析与重建。3D形状表示。在3D计算机视觉中,为不同的应用设计和提出了各种表示方法,每种方法都有其优点和缺点。点云是广泛采用的3D数据的原始输入格式,因为它灵活地表示形状细节,并在数据收集中广泛使用[23, 24, 35]。124800但是它的非结构化特性使得编辑变得困难。Mesh易于使用和渲染,但其不同的拓扑结构需要额外的学习过程[9,1]。体积表示将图像的2D网格表示扩展到3D体素,使得在2D中可以容纳创新的网络设计,但其对内存和计算的需求限制了其分辨率,导致几何细节不足[37, 25, 34, 33,6]。隐式表示不受拓扑和分辨率问题的限制,但需要进行镶嵌和网格生成的大量计算[16, 19, 10, 4, 5, 26,17]。此外,这些表示方法没有考虑到3D形状的结构和语义组织。点云学习。3D原始输入通常以点云的形式存在。Qi等人通过引入置换不变特征学习和多尺度特征聚合,开创了基于点云的3D深度学习[23,24]。Wang等人通过动态构建图和边缘卷积来探索邻域信息[35]。最近,Thomas等人提出了KernelPoint作为一种新的卷积算子,并在常见基准测试中取得了最先进的结果[30]。在本文中,我们专注于结构形状拟合,而不是点云特征提取。特别地,为了简化,我们使用DGCNN[35]作为我们的主干网络,切换到其他点云编码器只需要很少的工作量。高级形状解析和重建。最近,对将形状解析为其高级表示的兴趣越来越大。例如,使用数据驱动方法生成参数化形状变得越来越流行。Tulsiani等人通过将形状抽象为一组盒子,开创了基于深度学习的参数化形状表示[31]。Paschalidou等人使用超椭球代替盒子作为基本的原语,以获得更好的近似效果[20]。这两种方法只支持并集操作,这限制了表示能力。与实体原语不同,Li等人提出了SPFN[14],这是一种用于参数化表面预测的监督方法。SPFN不考虑预测的原语之间的相互关系,导致生成的形状不正确。BSP-Net [3]和CVX-Net[7]通过探索半空间划分取得了显著的结果。这两种方法需要大量的平面来近似非平面曲面。因此,尽管是参数化的,它们仍然不够可解释。CSG[13]也是一种用于3D形状的建模过程和表示方法。由于其直观且强大的概念,CSG在工业软件如SolidWorks[29]和OpenSCAD[12]中被广泛使用。在[8]中,提出了一种用于快速渲染的归一化CSG表示,通过将CSG操作重新排列为交集的并集。然而,归一化的CSG仍然是一个具有不同深度的树结构,这使得直接推断变得困难。0通过神经网络进行预测。最近,已经提出了一些方法来解决这个问题。Sharma等人[28]使用RNN以监督方式生成原始形状和操作的序列,然后将序列解析为CSG-Tree。然而,为大量的3D形状标注解析树需要专业知识和繁琐的注释过程。UCSG-Net[11]采用了无监督的方法,但对于每个树分支都需要迭代操作数选择。这个迭代过程使得很难将其扩展到非常深的结构(论文中只有5个层次)由于梯度消失的问题。我们提出的CSG-Stump将任意深度的CSG-Tree压缩成一个固定的三层表示,并使用连接矩阵表示不同CSG关系的变化。这种规则结构缓解了处理树结构的问题,并且更容易被纳入网络中。03. CSG-Stump0本节介绍了CSG-Stump,一种用于3D形状的三层树表示。顶部是一个只有一个节点的联合层。中间是一个交叉层,底部是一个补集层(见图1)。CSG-Stump还包含一组原始对象。补集层的节点与原始对象一一对应。不同层的节点包含一些操作信息,如其名称所示。具体而言,补集层的节点存储其对应原始对象是否执行补集操作的信息。交叉层的节点记录在底层生成的哪些形状被选中进行交叉操作。顶层的节点记录在交叉层生成的哪些形状被选中进行联合操作。为了便于讨论和分析,我们还引入了两个特殊的形状作为原始对象:整个空间和空集,分别用U和�表示。形状的补集通过形状与整个空间的差异来实现。将对象与U相交得到对象本身。类似地,对象与�的并集也返回对象本身。对于CSG-Stump中的每个层,我们引入一个连接矩阵来编码其节点的信息。具体而言,我们为补集层定义一个1×K矩阵WC∈{0,1}K,其中K是原始对象的数量;为交叉层定义一个K×C矩阵WI∈{0,1}K×C,其中C(≤K)是交叉层中节点的数量;为联合层定义一个C×1矩阵WU∈{0,1}C。这些矩阵中的每个条目都取值为1或0。特别地,WC[1,i] =0或1表示补集层的节点i的形状或其补集是否被使用。如果WI[j,i] =1,则表示交叉层中节点j的形状被选中进行交叉操作。Fi(x) = WC[1, i]×(1−Oi(x))+(1−WC[1, i])Oi(x).(2)1≤j≤K(3)1≤j≤C(4)p1 ∩ p2 = (p1 ∩ p2) ∪ ∅(5)p1 ∪ p2 = (p1 ∩ U) ∪ (p2 ∩ U)(6)p1p2 = (p1pc2)(7)β1 ∪ β2 = γ1 ∪ · · · ∪ γm ∪ η1 ∪ · · · ∪ ηh(8)β1 ∩ β2=(β1 ∩ η1) ∪ · · · ∪ (β1 ∩ ηh)=(γ1 ∩ η1) ∪ · · · ∪ (γm ∩ η1)∪...(γ1 ∩ ηh) ∪ · · · ∪ (γm ∩ ηh)(9)124810在交叉层的节点i处选择的形状是顶层联合操作的节点j中的形状。这样,CSG-Stump通过一组基本形状和三个连接矩阵来表示形状。与CSG-Tree类似,CSG-Stump是一种层次化表示,其中节点存储操作信息,但具有固定的三个层次。CSG-Tree表示通常组织为具有许多层次的二叉树,这使得原始形状和布尔操作的预测成为一个繁琐而具有挑战性的迭代过程[11,28]。特别是,处理长序列不仅会导致梯度反馈问题,还会对原始形状和布尔操作的顺序敏感。相比之下,CSG-Stump在每个层次上具有固定类型的布尔操作,并且只需要确定三个二进制连接矩阵,这使得CSG-Stump易于学习。03.1. 函数表示0为了便于形状分析和问题建模,我们用数学函数来描述CSG树桩的节点。首先,我们通过占用函数O(x): R^3 → {0,1}来定义形状O:0O(x) = � 1,x在形状内 0,否则 (1)0其中,O(x)是形状在3D空间中的占用情况。在这里,我们使用O同时表示形状和其占用函数,并在本文的其余部分采用相同的约定,以消除歧义。因此,U(x) ≡ 1,�(x) ≡0。然后,布尔运算可以通过简单的数学函数来表达。特别地,原始对象O_i的补集可以通过函数O_c_i(x) = 1 −O_i(x)来定义,k个对象的交集�k_iO_i可以通过min_i=1...k(O_i(x))来定义,k个对象的并集�k_iO_i可以通过max_i=1...k(O_i(x))来定义,两个对象O_i和O_j的差可以通过min(O_i(x), 1 −O_j(x))来定义。通过二进制连接矩阵W_C、W_I和W_U,CSG树桩结构中的每个节点可以由某个函数来定义。0• 对于第一层中的每个节点i = 1,∙ ∙∙,K,其形状F_i可以由函数F_i(x)来定义:0• 对于第二层中的每个节点i = 1,∙ ∙∙,C,其形状S_i是来自第一层的节点的交集�K_j=1F_j,并且可以由函数S_i(x)来定义:0•对于第三层中的节点,其形状T是来自第二层的节点的并集�C_j=1 S_j,并且可以由函数T(x)来定义:03.2. CSG树桩和CSG树的等价性0很容易验证,由于 ∪ n i =1 p i = p 1 ∪ ( p 2 ∪ ( ∙ ∙ ∙ ( pn − 1 ∪ p n ))) 和 ∩ n i =1 p i = p 1 ∩ ( p 2 ∩ ( ∙ ∙ ∙ ( p n− 1 ∩ p n))),一个CSG树桩结构可以转换为二叉CSG树,反之亦然。也就是说,任意二叉CSG树都可以用CSG树桩结构表示,而不会丢失信息,我们在下面证明这一点。实际上,设 P = p1,p 2,∙ ∙ ∙,p k 是一组基本形状,� = {∩,∪,\}是布尔运算。我们需要证明由基元 P 和布尔运算 �定义的形状可以用CSG树桩结构表示。基本情况:首先我们证明任意两个基元 p 1 和 p 2的布尔运算可以用CSG树桩表示。这是直接的,因为0归纳步骤:接下来,我们假设任何具有少于 n + 1个基元的CSG树都可以用CSG树桩来表示。现在考虑一个由n + 1 个基元组成的形状 β的CSG树。该树在根节点处被分成两个子树:β = β 1 � β2,其中 β 1,β 2 表示由子树定义的形状,�是根节点处的布尔运算。由于显然两个子树中的每个子树最多包含 n 个基元,它们可以由CSG树桩表示。设 β 1 = γ 1∪ ∙ ∙ ∙ ∪ γ m,β 2 = η 1 ∪ ∙ ∙ ∙ ∪ η h,其中 γ i,η j是基元或其补集的交集。我们在不同的布尔运算下检查表达式。0• 并集0• 交集∥T(i) − Oi∥s.t.T(i)axj{Sj(i) × WU[j, 1]}Sj(i) = mink {Fk(i) × WI[k, j] + (1 − WI[k, j])}Fk(i) = (1 − Ok(i))WC[1, k] + Ok(i)(1 − WC[1, k])WI, WU, WC ∈ {0, 1}, Ok(i) ∈ {0, 1}(11)We first enhance the latent feature with three fully-connected layers ([512, 1024, 2048]), and then use two dif-ferent heads to further decode the feature into primitive pa-rameters and connection matrices.Primitive Head.Primitive head decodes latent featuresinto a set of K parametric primitives where each parametricprimitive is represented by intrinsic and extrinsic parame-ters. Intrinsic parameters q model the shape of the primitive,such as sphere radius and box dimensions, whereas extrin-sic parameters model the global shape transformation com-posed of a translation vector t ∈ R3 and a rotation vectorin quaternion form r ∈ R4. We select four typical types ofparametric primitives, i.e., box, sphere, cylinder and cone,as the primitive set, which are standard primitives in CSGrepresentation. For simplicity, we predict equal numbers of124820• 差异0β1 \ β2 = β1 ∩ βc2 = β1 ∩ (ηc1 ∩ ∙ ∙ ∙ ∩ηch) = (γ1 ∩ ηc1 ∩ ∙ ∙ ∙ ∩ ηcn) ∪ ... (γm ∩ηc1 ∩ ∙ ∙ ∙ ∩ ηch)0(10) β2 \ β1的表达式类似地可以推导出来。0以上所有推导表明β可以转换为CSG-Stump。通过数学归纳,我们可以得出任何CSG树都可以用CSG-Stump表示。因此,我们在理论上展示了CSG和CSG-Stump之间的等价性。03.3. 二进制规划形式0现在让我们考虑我们的问题:输入是由点云X = {xi}N组成的形状,我们想要为该形状重建一个类似CSG的表示。使用CSG-Stump,我们可以得出一个可能的解决方案。我们首先通过[16]获得目标形状的占用率Oi,并使用类似RANSAC的方法[27]检测基本体。然后,重建CSG-Stump表示简化为找到三个连接矩阵。这可以被形式化为一个二进制规划问题。特别地,令Ok(i)表示基本体k的测试点i的占用值,T(i)表示点i的估计占用率。选择CSG-Stump的连接矩阵WC,WI和WU是以下最小化问题的解:0min. W {C,I,U } 1 N0N个04. CSG-Stump Net0当需要使用相对较多的基本体来表示一个形状时,由于问题的组合性质,二进制规划通常无法在多项式时间内获得最优解。因此,我们提出了一种基于学习的方法,通过设计CSG-StumpNet来同时检测基本体并估计CSG-Stump连接。如图2所示,CSG-StumpNet首先将点云编码为潜在特征,然后通过基本体头和连接头分别将其解码为基本参数和连接矩阵,随后进行占用计算和CSG-Stump构建。我们直接使用现成的骨干网络,即DGCNN[35],作为编码器。注意,我们的框架也与其他骨干网络完全兼容。我们将在接下来详细讨论解码器、占用计算器和CSG-Stump构造器。0图2. CSG-StumpNet架构。输入点云被输入编码器生成其特征向量。然后特征向量被双头解码器解码为基本参数和CSG-Stump连接权重。然后,占用计算器计算每个预测基本体的测试点上的占用率。最后,CSG-Stump构造器根据预测的连接权重和基本体占用率恢复整体形状占用率。0我们首先使用三个全连接层([512, 1024,2048])增强潜在特征,然后使用两个不同的头进一步将特征解码为基本参数和连接矩阵。基本体头。基本体头将潜在特征解码为一组K个参数化基本体,其中每个参数化基本体由内在参数q和外在参数组成。内在参数q模拟基本体的形状,例如球体半径和盒子尺寸,而外在参数模拟由平移向量t ∈ R3和四元数形式的旋转向量r ∈R4组成的全局形状变换。我们选择了四种典型的参数化基本体,即盒子、球体、圆柱体和圆锥体,作为基本体集合,这些基本体是CSG表示中的标准基本体。为了简化起见,我们预测相等数量的04.1. 双头解码器124830每种类型的基本形状有K个。CSG-Stump连接头。CSG-Stump利用二进制矩阵表示不同基本形状之间的布尔运算。我们使用三个专用的单层感知器将编码特征解码为连接矩阵WC、WI和WU。由于二进制值不可微分,我们通过使用Sigmoid函数预测[0, 1]范围内的软连接权重来放宽这个约束。04.2. 可微分占用计算器0为了以微分方式生成基本的占用函数,我们首先计算基本的有符号距离场(SDF)[19],然后以微分方式将其转换为占用[16]。将基本的外参数的相应操作表示为平移T和旋转R,世界坐标中的点x可以转换为局部基本坐标中的点x',如x' =T-1(R-1(x))。然后,根据不同基本形状的数学公式计算SDF。有关每种类型基本形状的详细SDF计算,请参阅补充材料。受[7]的启发,SDF进一步通过sigmoid函数Φ转换为占用:0O(x) = Φ(-η * SDF(x)),(12)0其中标量η是一个超参数,表示转换为占用的锐度。04.3. CSG-Stump构造器0给定预测的基本占用和连接矩阵,我们可以使用CSG-Stump的公式计算整体形状的占用。请注意,补集层的输出(2)现在可以写成:0F_i(x) = W_C[1, i] * Φ(η * SDF(x))+0(1 - W C [1, i]) * Φ(-η * SDF(x)),(13)0尽管上述CSG-Stump构造过程是可微分的,可以直接在CSG-StumpNet中使用。但由于min和max操作只允许在最小值和最大值上进行梯度反向传播,梯度仍然可能消失。因此,我们提出了一个放松版本min*和max*,使用加权softmax函数:0max�(x) = σ(ψ * x) * x,(14)0min�(x) = σ(-ψ * x) * x,0其中σ是softmax函数,ψ表示调制系数。04.4. 训练和推理0训练。我们以无监督的方式端到端地训练CSG-StumpNet。CSG-StumpNet学习预测具有基本形状和连接的CSG-Stump,而无需明确的真实值。相反,监督信号通过预测和真实占用之间的重构损失来量化。具体而言,我们从形状边界框中采样测试点X ∈ R N ×3,并计算地面真实占用O�和预测占用ˆO之间的差异,如下所示:0L_recon = Ex�X ||ˆOi - O�i||2,(15)0在我们的实验中,我们观察到远离基本表面的测试点的梯度接近于零,从而导致训练过程停滞。为了解决这个问题,我们提出了一个基本损失,将每个基本表面拉到其最近的测试点,防止梯度消失。我们将这个损失项定义为0L_primitive = 10K0k 最小 n SDF 2 k ( x n ),(16)0其中SDF_k(x_n)计算测试点x_n到基本形状k的SDF。最后,总目标可以定义为上述两个项的联合损失:0总损失 = 重构损失 + λ * 原始损失,(17)0其中平衡参数λ经验性地设置为0.001。0推理。在推理过程中,我们遵循与训练相同的步骤,只是我们使用阈值为0.5的二值化方法来满足二进制约束,并生成可解释和可编辑的CSG-Stump表示。05. 实验0在本节中,我们分别评估CSG-Stump和CSG-StumpNet。我们首先通过使用几个玩具示例来演示我们的CSG-Stump理论框架可以实现最优解。然后,我们通过大规模数据集进行广泛的比较和消融研究来评估我们的实用CSG-Stump Net。05.1. 评估CSG-Stump0为了验证CSG-Stump的表达能力,我们使用第3.3节中的二进制编程形式来找到CSG-Stump的最优解。特别地,为了证明CSG-Stump和CSG之间的等价性,我们使用OpenSCAD[12]手动创建了一个玩具数据集,该数据集是通过不同的CSG建模过程构建的。CD2.2591.6562.0851.505124840图3.我们估计的CSG-Stump连接示例,其中节点“I”、“U”和“C”分别表示交集、并集和形状补集。0布尔运算和不同的基元。我们的数据集由六个复杂形状组成,每个形状由不同的CSG树构建而成。数据集的详细信息可以在补充材料中找到。我们通过在形状边界框内随机采样N=1000个测试点来优化问题。为了消除基元检测和目标占用率估计的影响,对于点i和基元k,输入基元占用率ˆOik是直接在真实基元上计算的,而目标占用率Oi是从目标形状计算的。我们使用现成的Gurobi求解器[18]优化二进制CSG-Stump权重变量,即WC,WI和WU。在我们的实验中,求解器可以在一分钟内找到最优解并收敛到零目标损失,对于玩具数据集。图3展示了两个CSG-Stump解析示例。然而,当我们在ShapeNet数据集[2]上测试一些复杂形状时,求解器无法在合理的时间限制内找到最优解。这可能是由于优化问题的组合复杂性和噪声输入形状。因此,我们提出了基于深度学习的CSG-Stump Net解决方案。05.2. 评估CSG-Stump Net0数据集。我们在ShapeNet数据集[2]上使用标准分割评估CSG-StumpNet。我们随机采样2048个点作为输入点云,并在形状边界框内生成N =2048个测试点。测试点的目标占用率是根据[16]获得的。在我们的实验中,我们发现随机采样的测试点往往会错过重建薄结构。因此,我们在训练过程中使用平衡的采样策略(内部点和外部点1:1)。实现细节。CSG-StumpNet使用Pytorch[21]实现,并使用Adam求解器进行优化,学习率为10^-4。我们在16个nVIDIA V100 32GBGPU上分布式训练网络,批量大小为32。在所有13个类别上收敛大约需要一周时间。在我们的实验中,我们设置K =256和C =256作为交集层的参数。我们展示了它们对结果的影响。0在消融研究中。由于ShapeNet数据集中的大多数形状可以只用交集和并集构建,我们直接将补集权重WC设置为零。我们还尝试学习动态补集权重WC,这会导致稍微更好的性能,但学习空间更大,计算负担更高。对于(12)和(14)中的超参数,我们经验性地设置σ = 75和ψ =20。比较。我们将我们的方法与CSG类方法(如UCSG-Net[11])和基元分解方法(包括VP [31]和SQ[20])进行比较。我们根据UCSG-Net在重建形状上的2048个采样点与对应的真实形状之间的L2Chamfer距离进行评估。定量结果报告在表1中。请注意,VP、SQ和UCSGNet的结果是UCSG-Net中报告的结果。我们可以看到,CSG-StumpNet优于这两种方法,并将先前的SOTA结果提高了超过9%。图4显示了与CSG类似的对应方法UCSG-Net的定性比较。我们可以看到,与Oracle形状相比,我们的方法在几何逼近和结构分解方面取得了更好的效果。0表1.在ShapeNet数据集上通过L2倒角距离(CD)测量的3D重建定量结果。我们的CSG-StumpNet在各项指标上均优于基准模型。为了便于阅读,CD值乘以1000。0VP [31] SQ [20] UCSGNet [11] 我们的模型0紧凑性能。图5显示了汽车和灯具示例的生成的CSG-stump结构。我们可以看到,仅使用了一小部分交点节点来构建最终的形状,这表明所得到的结构是紧凑的。有趣的是,自动学习的交点节点与汽车和灯具的语义部件分解一致,这可能对其他任务(如部件分割)有用。可编辑性能。由于CSG-Stump等效于CSG,我们可以编辑基本类型和CSG-Stump连接以进行进一步的设计。具体而言,我们实现了一个简单的适配器,将我们的输出转换为OpenSCAD文件的输入格式,其中OpenSCAD是一个开源的CAD软件。通过利用OpenSCAD的编辑用户界面和CSG-StumpNet,用户可以直接基于点云实现设计目标(见图6)。基本类型数量消融。可用基本类型的最大数量是CSG-Stump的一个重要因素。直观地说,更多的可用基本类型会导致更好的近似。然而,过多的基本类型会使结果复杂且不可编辑,同时还会增加网络复杂性和推理计算。表2显示了不同基本类型数量下的CD结果。我们可以看到,允许更多的基本类型可以提高性能。CD1.221.281.401.44CD1.221.372.282.26CD1.271.241.22124850图4. CSG-Stump Net和UCSG-Net [11]的重建结果比较。0图5.两个示例展示了如何使用少量交点节点的部件构建汽车和灯具。分解是紧凑的、可解释的,并且与汽车和灯具的语义部件一致。请注意,我们仅显示了可见部分。0图6. 编辑工作流程。首先,通过CSG-StumpNet从点云中恢复出与CAD兼容的形状,然后用户可以在CAD软件中对其进行编辑以进行新颖的设计。0交点节点数量消融。除了可用基本类型的数量外,交点节点的数量也会影响结果的整体质量。表3显示了不同交点节点数量下的CD结果。一般来说,更多的交点节点会导致更好的结果,但会降低紧凑性并增加网络复杂性的代价。0表2. 在不同可用基本类型数量下的飞机类别的倒角距离。0# 基本类型 256 128 64 320表3. 在不同交点节点数量下的飞机类别的倒角距离。0# 交点节点 256 128 64 320基本类型消融。CAD建模经验表明,增加基本类型可以增加CSG的建模能力,同时增加建模软件的复杂性。我们在表4中定量地研究了不同可用基本类型对整体结果的影响,并在图7中定性地研究了不同可用基本类型的影响。我们可以看到,CSG-Stump Net可以很好地近似不同类型的形状。0图7.不同类型的基本类型:从左到右依次为仅使用盒子、使用盒子和圆柱体(见机身)以及使用所有类型(例如飞机鼻子使用圆锥体)的结果。0表4. 使用不同基本类型的飞机类别的倒角距离(CD)结果。0盒子 盒子 圆柱体 所有类型06. 结论0我们提出了CSG-Stump,一种用于3D形状的三级CSG类似表示。虽然它继承了CSG-Tree的紧凑,可解释和可编辑的特性,但它对学习友好并具有高度的表示能力。基于CSG-Stump,我们设计了CSG-StumpNet,可以以无监督的方式进行端到端训练。通过大量实验证明,CSG-Stump在性能上显著优于现有方法。124860参考文献0[1] Michael M Bronstein,Joan Bruna,Yann LeCun,ArthurSzlam和PierreVandergheynst。几何深度学习:超越欧几里德数据。IEEE信号处理杂志,34(4):18-42,2017年。0[2] Angel X Chang,Thomas Funkhouser,LeonidasGuibas,Pat Hanrahan,Qixing Huang,Zimo Li,SilvioSavarese,Manolis Savva,Shuran Song,HaoSu等。Shapenet:一个信息丰富的3D模型库。arXiv预印本arXiv:1512.03012,2015年。0[3] Zhiqin Chen,Andrea Tagliasacchi和HaoZhang。Bsp-net:通过二进制空间分割生成紧凑网格。IEEE /CVF计算机视觉和模式识别会议论文集,第45-54页,2020年。0[4] Zhiqin Chen,Kangxue Yin,Matthew Fisher,SiddharthaChaudhuri和HaoZhang。Bae-net:用于形状共分割的分支自动编码器。IEEE /CVF国际计算机视觉会议论文集,第8490-8499页,2019年。0[5] Zhiqin Chen和HaoZhang。学习隐式场进行生成形状建模。IEEE /CVF计算机视觉和模式识别会议论文集,第5939-5948页,2019年。0[6] Christopher B Choy,Danfei Xu,JunYoung Gwak,KevinChen和SilvioSavarese。3d-r2n2:单视图和多视图3D对象重建的统一方法。欧洲计算机视觉会议,第628-644页。Springer,2016年。0[7] Boyang Deng,Kyle Genova,Soroosh Yazdani,SofienBouaziz,Geoffrey Hinton和AndreaTagliasacchi。Cvxnet:可学习的凸分解。IEEE /CVF计算机视觉和模式识别会议论文集,第31-44页,2020年。0[8] Jack Goldfeather,Steven Monar,Greg Turk和HenryFuchs。使用树归一化和几何修剪的近实时CSG渲染。IEEE计算机图形学与应用,9(3):20-28,1989年。0[9] Kan Guo,Dongqing Zou和XiaowuChen。通过深度卷积神经网络进行3D网格标注。ACM图形学交易(TOG),35(1):1-12,2015年。0[10] Zekun Hao,Hadar Averbuch-Elor,Noah Snavely和SergeBelongie。Dualsdf:使用两级表示进行语义形状操作。IEEE /CVF计算机视觉和模式识别会议论文集,第7631-7641页,2020年。0[11] Kacper Kania,Maciej Zieba和TomaszKajdanowicz。Ucsg-net-无监督发现构造实体几何树。arXiv预印本arXiv:2006.09102,2020年。0[12] Marius Kintel和Clifford Wolf。Openscad。GNU通用公共许可证,pGNU通用公共许可证,2014年。0[13] David H Laidlaw, W Benjamin Trumbore和John FHughes。用于多面体对象的构造实体几何。第13届计算机图形学和交互技术年会论文集,第161-170页,1986年。0[14] Lingxiao Li,Minhyuk Sung,Anastasia Dubrovina,LiYi和Leonidas JGuibas。对3D点云进行几何基元的监督拟合。IEEE / CVF02019年计算机视觉和模式识别会议,第2652-2660页。0[15] YangLu。工业4.0:技术,应用和开放研究问题综述。工业信息集成杂志,6:1-10,2017年。0[16] Lars Mescheder,Michael Oechsle,MichaelNiemeyer,Sebastian Nowozin和AndreasGeiger。占用网络:在函数空间中学习3D重建。在IEEE /CVF计算机视觉和模式识别会议论文集中,2019年,第4460-4470页。0[17] Ben Mildenhall,Pratul P Srinivasan,MatthewTancik,Jonathan T Barron,Ravi Ramamoorthi和RenNg。Nerf:将场景表
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功