CN116934998A - 从图像进行3d重建 - Google Patents

从图像进行3d重建 Download PDF

Info

Publication number
CN116934998A
CN116934998A CN202310402540.1A CN202310402540A CN116934998A CN 116934998 A CN116934998 A CN 116934998A CN 202310402540 A CN202310402540 A CN 202310402540A CN 116934998 A CN116934998 A CN 116934998A
Authority
CN
China
Prior art keywords
cad
primitive
neural network
depth image
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310402540.1A
Other languages
English (en)
Inventor
尼古拉斯·贝尔特朗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of CN116934998A publication Critical patent/CN116934998A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/162Segmentation; Edge detection involving graph-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Architecture (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)

Abstract

本公开尤其涉及一种计算机实现的对包括部件的组件的至少一个真实对象进行3D重建的方法。该3D重建方法包括:提供神经网络,所述神经网络配置为基于输入深度图像生成3D图元CAD对象;提供表示所述真实对象的自然图像和深度图像;至少基于所述自然图像,分割所述深度图像,每个片段至多表示所述组件的各个部件;以及将所述神经网络应用到每个片段。

Description

从图像进行3D重建
技术领域
本公开涉及计算机程序和系统领域,并且更具体地,涉及用于对包括部件的组件的至少一个真实对象进行3D重建的方法、系统和程序。
背景技术
市场上提供了许多解决方案、硬件和软件,用于对象的设计、工程和制造。CAD是计算机辅助设计的首字母缩写,例如,它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的首字母缩写,例如,它涉及用于分析和模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩写,例如,它涉及用于定义产品制造过程和资源的软件解决方案。在这种计算机辅助设计解决方案中,图形用户界面在技术效率方面起重要作用。这些技术可以嵌入到产品生命周期管理(PLM)解决方案中。PLM是一种工程策略,它帮助公司共享产品数据、应用共同的流程、并且利用公司知识,使产品从概念发展到其生命终结,跨越扩展企业的概念。由达索系统(Dassault Systèmes)(商标CATIA、SIMULIA、DELMIA和ENOVIA)提供的PLM解决方案提供了组织产品工程知识的工程中心、管理制造工程知识的制造中心、以及使得企业集成和连接到工程中心和制造中心中的企业中心。所有这些解决方案一起提供了链接产品、过程、资源的公共模型,以实现动态的、基于知识的产品创建和决策支持,从而驱动优化的产品定义、制造准备、生产和服务。
这些系统和程序中的一些提供用于重建3D对象的功能,即,从包含对象的图像推断体素或网格表示以重建。
文献(Gkioxari等人,“网格R-CNN(Mesh R-CNN)”,IEEE/CVF计算机视觉国际会议论文集(Proceedings of the IEEE/CVF International Conference on ComputerVision),2019)公开了一种方法,该方法检测真实世界图像中的对象并产生三角形网格,该三角形网格给出了每个检测到的对象的完整3D形状。该方法利用网格预测分支来增强掩码R-CNN,该网格预测分支通过首先预测粗体素表示来输出具有变化的拓扑结构的网格,该粗体素表示被转换为网格并且利用在网格的顶点和边缘上操作的图形卷积网络来细化。
文献(Wu等“MarrNet:通过2.5D草图进行3D形状重建(MarrNet:3Dshapereconstruction via 2.5D sketches)”,arXiv预印,arXiv:1711.03129,2017)公开了一种顺序地估计2.5D草图和3D对象形状的端到端可训练模型。
这些方法需要大量的应该接近真实数据的训练数据。这样的数据集是不可用的。这些方法的训练主要依赖于由不是真实对象的CAD模型(如ShapeNet,参见https://shapenet.org)构成的CAD数据集,从而在数据集中引入偏差。此外,根据该方法训练的神经网络可能难以推广到未在数据集中表示的新类型的对象、不常见的对象设计、和/或不常见的场景环境(例如,椅子上的枕头、或遮挡要重建的对象的人)。
在本文中,仍然需要一种用于对包括部件的组件的至少一个真实对象进行3D重建的改善的解决方案。
发明内容
因此,计算机实现的对包括部件的组件的至少一个真实对象进行3D重建的方法。该3D重建方法包括:提供神经网络,所述神经网络配置为基于输入深度图像生成3D图元(primitive)CAD对象;提供表示所述真实对象的自然图像和深度图像;至少基于所述自然图像,分割所述深度图像,每个片段(segment)至多表示所述组件的各个部分;以及将所述神经网络应用到每个片段。
该方法可以包括以下的一个或多个:
-所述神经网络包括:卷积网络(CNN),将所述深度图像作为输入,并且输出各个本征矢量;以及子网络,将所述各个本征矢量作为输入,并且输出预定的3D图元CAD对象参数化的值;
-所述3D图元CAD对象由截面和挤压部(extrusion)限定,所述截面由位置参数的列表和线类型的列表限定,并且所述神经网络包括递归神经网络(RNN),所述递归神经网络配置为输出所述位置参数的列表和所述线类型的列表的值;
-所述神经网络还包括完全连接的层,所述完全连接的层输出限定所述挤压部的一个或多个参数的值;
-所述截面还由表示所述截面的类型的数字限定,所述神经网络还配置为计算表示所述数字的概率分布的矢量,并且可选地,输出限定所述挤压部、所述位置参数的列表和/或所述线类型的列表的所述一个或多个参数的所述值还基于表示所述概率分布的所述矢量;
-神经网络包括:
-第一部件,包括:
第一子部件,包括卷积网络(CNN),所述CNN配置为将所述深度图像作为输入,并且输出各个本征矢量,以及
第二子部件,配置为将所述CNN的所述各个本征矢量作为输入,并且输出表示所述数字的概率分布的所述矢量;以及
-第二部件,包括:
第三子部件,配置为将所述CNN的各个本征矢量与表示所述概率分布的所述矢量的级联作为输入,并且输出各个矢量,
第四子部件,配置为将所述第三子部件的所述各个矢量作为输入,并且输出所述位置参数的列表的值、所述线类型的列表的值以及固定长度矢量,以及
第五子部件,配置为将所述第三子部件的所述各个矢量和所述第四子部件的各个固定长度矢量的级联作为输入,并且输出定义所述挤压部的所述一个或多个参数的值;和/或
-所述方法包括在将所述神经网络应用于每个片段之前:从所述片段中去除离群值;和/或重新定心所述片段。
还提供了一种用于学习神经网络的计算机实现的方法。该学习方法包括:提供训练样本的数据集,每个训练样本均包括各个深度图像和地面真值3D图元CAD对象;以及基于所述数据集,训练所述神经网络。
还提供了一种用于形成数据集的计算机实现的方法,包括:合成3D图元CAD对象;以及生成每个合成的3D图元CAD对象的各个深度图像。
该方法可以包括以下的一个或多个:
-生成每个合成的3D图元CAD对象的各个深度图像包括:相对于虚拟相机,渲染所合成的3D图元CAD对象,从而获得像素的集合,并且可选地,在所述渲染之前,对所合成的3D图元CAD对
象进行一个或多个变换;
-还包括:将随机噪声添加到所述像素的至少部分;和/或
-还包括:将随机遮挡添加到所述像素的至少部分。
还提供了一种计算机程序,包括用于执行所述方法的指令。
还提供了一种计算机可读存储介质,其上记录有计算机程序。
还提供了一种系统,包括联接到存储器的处理器,所述存储器上记录有计算机程序。
附图说明
现在将参考附图描述非限制性示例,其中:
-图1示出该方法中的神经网络的示例;
-图2示出根据该方法学习神经网络的示例;
-图3示出系统的图形用户界面的示例;
-图4示出系统的示例;以及
-图5至图13示出该方法。
具体实施方式
提出了一种计算机实现的包括部件的组件的至少一个真实对象的3D重建方法。3D重建方法包括提供神经网络,该神经网络配置为基于输入深度图像生成3D图元CAD对象。3D重建方法还包括提供表示真实对象的自然图像和深度图像。3D重建方法还包括至少基于自然图像分割深度图像,并将神经网络应用于每个片段。每个片段至多表示组件的各个部件。
这种方法通过将神经网络应用于深度图像的各个片段来改善3D重建,该神经网络配置为基于输入深度图像生成3D图元CAD对象,该深度图像的各个片段使得每个片段表示至多一个对应的部件。值得注意的是,与整个输入图像的3D重建相比,训练神经网络来对仅包括一个部件的深度图像的片段进行3D重建是更容易的。因此,所提供的神经网络不需要在不可用的、大的并且现实数据集上进行训练。此外,单个对象比要被3D重建的图像的整体更不复杂,从而将3D重建方法应用于输入深度图像的每个片段分别地改善了最终3D重建的精度。
另一方面,所提供的神经网络配置为输出各个3D图元CAD对象。图元CAD对象(如后面讨论的)能够精确地逼近真实世界对象,同时提供简单和有效的参数化。与诸如离散表示(例如,点云、网格或体素表示)的非参数化3D模型相反,真实对象的这种参数化重建允许在存储器中容易地操作和/或编辑和/或有效地存储。
该方法还利用输入深度图像的片段来推断3D CAD对象,即,通过将(学习/训练的)神经网络应用于输入深度图像的每个片段。与自然(例如RGB)图像相比,使用深度图像对于3D重建的推断是有益的,因为深度图像包括关于视点(例如相机传感器)与深度图像中的对象的位置之间的距离的数据。这种数据提供了关于对象的形状和相对位置的信息,从而改善了3D重建。
此外,由于神经网络配置为通过应用在输入深度图像上来执行3D重建,因此允许用于训练这种神经网络所需的训练数据集覆盖较少各种各样的训练样本。具体地,这些数据集可以不包括颜色的组合和/或部件的组件的阴影,从而在尺寸上更小。获得这种较小的训练数据集更容易,并且可以在这种数据集中更快地(即,以较少的计算成本)学习神经网络。因此,该方法改善了对用于3D重建的神经网络的学习。
“3D重建”是指构建对象的3D表示。3D重建可以被集成在用于设计在3D重建上表示的3D模型化对象的方法中。例如,首先可以执行3D重建方法以获得包括部件的组件的真实对象的一个或多个3D重建。这种3D重建包括一个或多个3D图元CAD对象,从而是可编辑的。然后可以将3D重建输入到用于设计3D模型化对象的方法中。“设计3D模型化对象”指定任何动作或动作系列,其至少是对3D模型化对象进行加工的过程的部分。因此,该方法可以包括从这种3D重建创建3D模型化对象。真实物体可以是机械部件,并且在设计过程完成时被制造。因此,通过该方法获得的3D重建在制造CAD中是特别相关的,即辅助设计过程和制造过程的软件解决方案。实际上,这种3D重建便于从2D输入数据(诸如该对象的图像)获得要制造的对象的模型。在本文中,3D重建是表示制造产品的3D模型,其可以在其设计的下游制造。因此,该方法可以是这种设计和/或制造过程的部分。该方法可以例如形成或作为从所提供的图像(例如,用于逆向工程在图像中显示的机械对象)重建3D CAD模型的步骤的部分。该方法可以包括在许多其它应用中,这些应用使用由该方法参数化的CAD模型。在任何情况下,通过该方法设计的模型化对象可以表示制造对象。因此,模型化对象可以是模型化实体(即,表示实体的模型化对象)。制造对象可以是产品,诸如部件、或部件的组件。因为该方法改善了模型化对象的设计,所以该方法还改善了产品的制造,并且因此提高了制造过程的生产率。
3D重建方法通常操纵模型化对象。模型化对象是由例如存储在数据库中的数据定义的任何对象。通过扩展,表述“模型化对象”指定数据本身。根据系统的类型,模型化对象可以由不同类型的数据定义。该系统实际上可以是CAD系统、CAE系统、CAM系统、PDM系统和/或PLM系统的任何组合。在那些不同的系统中,模型化对象由对应的数据定义。因此,可以说CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统不是排他性的,因为模型化对象可以由与这些系统的任何组合对应的数据来定义。因此,系统可以是CAD和PLM系统两者。
通过CAD解决方案(例如CAD系统或CAD软件),其另外意指至少适于基于模型化对象的图形表示和/或基于其结构化表示(例如特征树)(例如CATIA)来设计模型化对象的任何系统、软件或硬件。在这种情况下,定义模型化对象的数据包括允许表示模型化对象的数据。CAD系统可以例如使用边缘或线(在某些情况下具有面或表面)来提供CAD模型化对象的表示。线、边缘或表面可以用各种方式表示,例如非均匀有理B样条(NURBS)。具体而言,CAD文件包含从其可以生成几何形状的规范,这反过来允许生成表示。模型化对象的规范可以存储在单个CAD文件或多个CAD文件中。表示CAD系统中的模型化对象的文件的典型大小在每部件一兆字节的范围内。并且模型化对象通常可以是数千个部件的组件。
在CAD的上下文中,模型化对象通常可以是3D模型化对象,例如,表示诸如部件或部件的组件的产品、或可能是产品的组件。所谓“3D模型化对象”或“3D CAD对象”是指由允许其3D表示的数据建模的任何对象。3D表示允许从所有角度观看部件。例如,当表示为3D时,可以处理3D模型化对象并围绕其任何轴、或围绕屏幕中其上显示表示的任何轴旋转。这值得注意地排除了未被3D建模的2D图标。换句话说,3D CAD对象允许对象的3D重建。3D表示的显示便于设计(即,增加设计者统计地完成其任务的速度)。这加速了工业中的制造过程,因为产品的设计是制造过程的部分。
3D模型化对象可以表示在其虚拟设计完成之后将在现实世界中制造的产品的几何形状,该虚拟设计例如用CAD软件解决方案或CAD系统,诸如(例如,机械)部件或部件的组件(或等效地部件的组件,因为部件的组件可以从方法的角度看成是部件本身,或该方法可以独立地应用于组件的每个部件),或更一般地,任何刚体组件(例如,移动机构)。CAD软件解决方案允许在各种和无限的工业领域中设计产品,包括:航空航天、建筑、构造、消费品、高技术设备、工业设备、运输、船舶、和/或海上油/气生产或运输。因此,通过该方法设计的3D模型化对象可以表示可以是任何机械部件的工业产品,诸如地面交通工具(包括例如汽车和轻型卡车设备、赛车、摩托车、卡车和汽车设备、卡车和公共汽车、火车)的部件、空中交通工具(包括例如机身设备、航空设备、推进设备、防卫产品、航空设备、空间设备)的部件、海上交通工具(包括例如海军设备、商用船、海上设备、码头和工作船、船舶设备)的部件、一般机械部件(包括例如工业制造机械、重型移动机械或设备、安装设备、工业设备产品、制造金属产品、轮胎制造产品)、机电或电子部件(包括例如消费电子产品、安全和/或控制和/或仪器产品、计算和通信设备、半导体、医疗装置和设备)、消费品(包括例如家具、家庭和花园产品、休闲商品、时尚产品、硬物品零售商的产品、软物品零售商的产品)、包装(包括例如食品和饮料以及烟草、美容和个人护理、家庭产品包装)。
PLM系统另外意指适于管理表示物理制造产品(或要制造的产品)的模型化对象的任何系统。因此,在PLM系统中,通过适于制造物理对象的数据来定义模型化对象。这些通常可以是尺寸值和/或公差值。为了正确地制造物体,具有这样的值确实更好。
CAE解决方案另外意指适于分析模型化对象的物理行为的任何解决方案,即硬件的软件。众所周知和广泛使用的CAE技术是有限元模型(FEM),其在下文中被等效地称为CAE模型。FEM通常涉及将模型化对象划分成元件,即有限元网格,其物理行为可以通过方程式来计算和模拟。这种CAE解决方案由达索系统以商标提供。另一种增长的CAE技术涉及复杂系统的建模和分析,该复杂系统由来自没有CAD几何数据的不同物理领域的多个组件组成。CAE解决方案允许仿真,并因此允许优化、改善和验证要制造的产品。这种CAE解决方案由达索系统以商标/>提供。
CAM解决方案是指适于管理产品的制造数据的任何解决方案,即硬件的软件。制造数据通常包括与要制造的产品、制造过程和所需资源有关的数据。CAM解决方案用于规划和优化产品的整个制造过程。例如,它可以向CAM用户提供关于可在制造过程的特定步骤中使用的可行性、制造过程的持续时间或资源(诸如特定机器人)的数字的信息;从而允许对管理或所需投资的决策。CAM是在CAD过程和潜在CAE过程之后的后续过程。例如,CAM解决方案可以提供关于加工参数的信息、或与CAD模型中所提供的挤压部特征相关的成型参数。这种CAM解决方案由达索系统以商标CATIA、Solidworks或商标提供。
因此,CAD和CAM解决方案是紧密相关的。实际上,CAD解决方案集中在产品或部件的设计,并且CAM解决方案集中在如何制造它。设计CAD模型是朝向计算机辅助制造的第一步。实际上,CAD解决方案提供了关键的功能,例如基于特征的建模和边界表示(B-Rep),以降低在用CAM解决方案处理的制造过程期间的误差风险和精度损失。实际上,CAD模型旨在制造。因此,制造具有两个目的的对象的虚拟孪生(virtual twin),也称为数字孪生:
-检查待制造对象在特定环境中的正确行为;以及
-确保待制造物体的可制造性。
PDM表示产品数据管理。PDM解决方案是指适于管理与特定产品相关的所有类型的数据的任何解决方案,即硬件的软件。PDM解决方案可以由涉及产品的生命周期的所有参与者使用:主要是工程师,还包括项目经理、财务人员、销售人员和购买者。PDM解决方案通常基于面向产品的数据库。它允许参与者在他们的产品上共享一致的数据,并因此防止参与者使用不同的数据。这种PDM解决方案由达索系统以商标提供。
可以自动地从CAD文件生成定制计算机程序。因此,这种生成可能是容易出错的,并且可以确保将CAD模型完美地复制到所制造的产品。与手工加工相比,CNC被认为提供了更高的精度、复杂性和可重复性。其它益处包括更高的精度、速度和灵活性,以及诸如轮廓加工的能力,其允许铣削轮廓形状,包括在3D设计中产生的形状。
该方法可以被包括在生产过程中,该生产过程可以包括在执行该方法之后,生产与由该方法输出的模型化对象对应的物理产品。生产工艺可包括以下步骤:
-(例如自动地)应用该方法,从而获得该方法输出的CAD模型或CAE模型;
-可选地,(例如自动地)使用(例如自动地)CAE到CAD的转换过程,将所获得的CAE模型转换为如前讨论的CAD模型;
-使用所获得的CAD模型制造部件/产品。
将CAE模型转换为CAD模型可以包括执行以下(例如全自动)转换过程,该转换过程将CAE作为输入并将其转换为包括表示产品/部件的特征树的CAD模型。转换过程包括以下步骤(其中存在已知的全自动算法来实现这些步骤中的每个):
-对CAE模型或其外表面/表皮进行分割,从而获得分割CAE模型成片段,例如,每个片段形成模型的表面部分;
-通过处理片段来检测CAD特征的几何形状,例如包括检测各自形成给定CAD特征几何形状(例如,挤压、旋转或任何正则图元)的片段或片段的组,以及任选地其几何特征(例如,挤压轴、旋转轴或轮廓);
-例如基于几何形状和/或基于几何形状的几何特征,对检测到的几何形状进行参数化;
-基于该部分的几何形状,例如通过聚集被检测为相同特征几何形状的部件的相邻片段,将CAD运算符各自拟合到CAE模型的各个部分;
-将几何形状和对应的CAD算子编码为特征树;
-可选地,执行特征树,从而获得产品的B-rep表示;
-输出特征树和可选的B-rep,特征树和可选的B-rep形成CAD模型。
使用用于制造的CAD模型指定涉及/参与由CAD模型表示的产品/部件的制造的任何真实世界动作或一系列动作。使用用于制造的CAD模型例如可以包括以下步骤:
-编辑得到的CAD模型;
-基于CAD模型或基于对应的CAD模型(例如,CAD模型所源自的CAE模型,在CAE到CAD转换过程之后)执行(多个)仿真,诸如用于验证机械、使用和/或制造性质和/或约束的仿真(例如,结构仿真、热力学仿真、空气动力学仿真);
-基于(多个)仿真的结果编辑CAD模型;(即,取决于所使用的制造工艺,机械产品的生产可以包括或可以不包括该步骤)基于(例如,编辑的)CAD模型(例如,自动地)确定制造文件/CAM文件,用于制造产品的生产/制造;
-将CAD文件和/或制造文件/CAM文件发送至工厂;和/或
-基于所确定的制造文件/CAM文件或基于CAD模型,(例如,自动地)生产/制造最初由本方法输出的模型表示的机械产品。这可以包括将制造文件/CAM文件和/或CAD文件(例如自动地)馈送到执行制造过程的(多个)机器。
该最后的生产/制造步骤可以被称为制造步骤或生产步骤。该步骤基于CAD模型和/或CAM文件(例如,基于CAD模型和/或CAD文件被馈送到一个或多个制造机器或控制(多个)机器的(多个)计算机系统)来制造/制作部件/产品。制造步骤可以包括执行任何已知的制造过程或一系列制造过程,例如一个或多个附加制造步骤、一个或多个切割步骤(例如激光切割或等离子切割步骤)、一个或多个冲压步骤、一个或多个锻造步骤、一个或多个模制步骤、一个或多个机加工步骤(例如铣削步骤)和/或一个或多个冲孔步骤。因为设计方法改善了表示部件/产品的模型(CAE或CAD)的设计,该制造及其生产率也得到了改善。
编辑CAD模型可以包括由用户(即设计者)例如通过使用CAD解决方案来执行CAD模型中的一个或多个。CAD模型的修改可以包括一个或多个修改,每个修改都是CAD模型的几何形状和/或参数。修改可以包括在模型的特征树上执行的任何修改或一系列修改(例如,对特征参数和/或规范的修改)和/或在CAD模型的显示表示上执行的修改(例如,B-rep)。修改是保持部件/产品的技术功能的修改,即,用户执行可以影响模型的几何形状和/或参数的修改,但是仅仅是为了使CAD模型在技术上更符合部件/产品的下游使用和/或制造的目的。这种修改可以包括使得CAD模型在技术上符合下游制造过程中使用的(多个)机器的规范的任何修改或一系列修改。这种修改可以附加地或替代地包括任何修改或一系列修改,其使得CAD模型在技术上符合一旦制造的产品/部件的进一步使用,这种修改或一系列修改例如基于(多个)仿真的结果。
CAM文件可以包括从CAD模型获得的制造升级(step up)模型。制造升级可以包括制造机械产品所需的所有数据,使得其具有与由CAD模型捕获的材料对应的材料的几何形状和/或分布,可能达到制造公差误差。确定生产文件可以包括应用任何CAM(计算机辅助制造)或CAD-CAM解决方案以(例如自动地)从CAD模型确定生产文件(例如任何自动CAD到CAM转换算法)。这种CAM或CAD到CAM解决方案可以包括以下软件解决方案中的一个或多个,以下软件解决方案基于要制造的产品的CAD模型,能够自动生成用于给定制造过程的制造指令和工具路径:
-融合360(Fusion 360),
-FreeCAD,
-CATIA,
-SOLIDWORKS,
-在https://my.3dexperience.3ds.com/welcome/fr/compass-world/ rootroles/nc-shop-floor-programmer上示出的达索系统的NC车间(Shop Floor)编程器,
-在https://my.3dexperience.3ds.com/welcome/fr/compass-world/rootroles/nc-mill-turn-machine-programmer上示出的达索系统的NC铣削机器编程器,和/或
-在https://my.3dexperience.3ds.com/welcome/fr/compass-world/rootroles/powder-bed-machine-programmer上示出的达索系统的粉床(Powder Bed)机编程器。
产品/部件可以是可增材制造的部件,即通过增材制造(即3D打印)制造的部件。在这种情况下,通过直接地(例如,以及自动地)向3D打印机馈送CAD模型,生产过程不包括确定CAM文件的步骤,并且直接进行生产/制造步骤。3D打印机配置用于在被馈送表示机械产品的CAD模型时(例如,并且在由3D打印机操作员启动3D打印时),根据CAD模型直接地和自动地3D打印机械产品。换句话说,3D打印机接收被(例如自动地)馈送到其的CAD模型,(例如自动地)读取CAD模型,并通过将材料(例如逐层地)添加在一起来(例如自动地)打印部件,以再现由CAD模型捕获的材料的几何形状和/或分布。3D打印机添加材料,从而在实际中精确地再现由CAD模型捕获的材料的几何形状和/或分布,直到3D打印机的分辨率,并且可选地具有或不具有公差误差和/或制造校正。制造可以包括例如由用户(例如3D打印机的操作员)或自动地(通过3D打印机或控制它的计算机系统)确定这种制造校正和/或公差误差,例如通过修改CAD文件以匹配3D打印机的规范。另外地或可选地,生产过程可以包括根据CAD模型,确定(例如,通过3D打印机或控制它的计算机系统自动地)打印方向,例如以最小化过剩(overhang)体积(如欧洲专利号3327593中所描述的,其通过引用并入本文)、层切片(即,确定每个层的厚度、以及用于3D打印头的逐层路径/轨迹和其它特征(例如,对于激光束,例如路径、速度、强度/温度和其它参数))。
产品/部件可以可选地是机加工部件(即,通过机加工制造的部件),诸如铣削部件(即,通过铣削制造的部件)。在这种情况下,生产过程可以包括确定CAM文件的步骤。该步骤可以通过任何合适的CAM解决方案自动执行,以从加工部件的CAD模型自动地获得CAM文件。确定CAM文件可以包括(例如自动地)检查CAD模型是否具有可能影响生产过程的任何几何特殊性(例如误差或假象)以及(例如自动地)校正这些特殊性。例如,如果CAD模型仍然包括尖锐边缘(因为机加工或铣削工具不能产生尖锐边缘),则可以不执行基于CAD模型的机加工或铣削,并且在这种情况下,确定CAM文件可以包括(例如自动地)对这样的尖锐边缘进行倒圆或倒角(例如,具有对应的圆形或圆角半径,例如基本上等于公差误差、机加工工具的切削头的半径),从而可以进行基于CAD模型的机加工或铣削。更一般地,确定CAM文件可以自动地包括在CAD模型内与机加工或铣削工具的半径不兼容的倒圆或倒角几何形状,以实现机加工/铣削。这种检查和可能的校正(例如几何形状的倒圆或倒角)可以如先前所讨论的那样自动地执行,但是也可以由用户(例如机加工工程师)执行,该用户在CAD和/或CAM解决方案(例如约束用户以执行校正的解决方案)上用手执行校正,该校正使得CAD模型符合在机加工过程中使用的工具的规范。
除了检查之外,确定CAM文件可以包括(例如自动地)确定机加工或铣削路径,即由机加工工具用来加工产品的路径。该路径可以包括坐标和/或参数化轨迹的集合,这些坐标和/或参数化轨迹将由用于机加工的机加工工具遵循,并且确定该路径可以包括(例如自动地)基于CAD模型计算这些坐标和/或轨迹。这种计算可以基于通过机加工工具的CAD模型表示对CAD模型的闵可夫斯基(Minkowski)减法的边界的计算,例如在由达索系统于2021年12月13日提交的欧洲专利申请21306754.9中所讨论的,并且该专利申请通过引用结合到本文中。应当理解,该路径可以是单个路径,例如,该工具连续跟随而不会断开与要切割的材料的接触。可选地,该路径可以是要由工具以某种顺序跟随的序列子路径的级联,例如,每个子路径由工具连续跟随,而不会断开与要切割的材料的接触。可选地,确定CAM文件然后可以包括(例如自动地)设定机器参数(包括切割速度、切割/刺穿高度和/或模具打开行程),例如基于所确定的路径和基于机器的规范。可选地,确定CAM文件然后可以包括(例如自动地)配置嵌套,其中CAM解决方案决定部件的最佳定向以最大化加工效率。
在机加工或铣削部件的情况下,确定CAM文件因此导致并输出CAM文件,该CAM文件包括机加工路径,以及可选的所设置的机器参数和/或所配置的嵌套的规范。然后可以(例如直接地和自动地)将该输出的CAM文件馈送到机加工工具和/或然后可以通过读取该文件来(例如直接地和自动地)编程机加工工具,在该文件上,生产过程包括生产/制造步骤,机器在该生产/制造步骤中根据生产文件(例如通过直接地和自动地执行生产文件)执行产品的机加工。机加工过程包括机加工工具切割真实世界的材料块,以再现由CAD模型捕获的材料的几何形状和/或分布,例如高达公差误差(例如用于铣削的几十微米)。
产品/部件可选地可以是模制部件,即通过模制(例如注射模制)制造的部件。在这种情况下,生产过程可以包括确定CAM文件的步骤。该步骤可以通过任何合适的CAM解决方案自动执行,以从模制部件的CAD模型自动获得CAM文件。确定CAM文件可以包括(例如自动地)基于CAD模型执行模制检查序列,以检查由CAD模型捕获的材料的几何形状和/或分布是否适于模制,以及如果CAD模型不适于模制则(例如自动地)执行适当的校正。执行检查和适当的校正(如果有的话)可以自动地执行,或可选地,由用户(例如模制工程师)执行,例如使用CAD和/或CAM解决方案,其允许用户对CAD模型执行适当的校正,但是限制他/她的校正,其使得CAD模型符合(多个)模制工具的规范。检查可以包括:验证由CAD模型表示的虚拟产品与模具的尺寸一致和/或验证CAD模型包括用于使产品脱模所需的所有拔模角,这从模制本身是已知的。然后,确定CAM文件可进一步包括基于CAD模型确定用于模制的液体材料的量、和/或使液体材料在模具内硬化/凝固的时间,并输出包括这些参数的CAM文件。然后,生产过程包括基于输出文件(例如自动地)执行模制,其中模具在所确定的硬化时间内将液体材料成形为与由CAD模型捕获的材料的几何形状和/或分布相对应的形状,例如高达公差误差(例如高达拔模角的合并或拔模角的修改,用于脱模)。
可选地,产品/部件可以是冲压的部件,也可能称为“冲压部件”,即在冲压过程中制造的部件。在这种情况下,生产过程可以包括基于CAD模型(例如自动地)确定CAM文件。CAD模型表示冲压部件,例如,如果该部件包括一些凸缘,则该冲压部件可能具有一个或多个凸缘,并且在后一种情况下,可能具有要去除的额外的材料,从而形成该部件的一个或多个凸缘的展开状态,这从冲压本身是已知的。因此,CAD模型包括表示没有凸缘的部件(在一些情况下,其是整个部件)的部分,并且可能包括表示凸缘(如果有的话)的外部额外补片(patch)部分,并且可能具有额外材料(如果有的话)。该额外的补片部分可以在特定长度上呈现g2连续性,并且然后在特定长度上呈现g1连续性。
在该冲压情况下,确定CAM文件可以包括基于由CAD模型捕获的虚拟产品的材料的几何形状和/或分布(例如自动地)确定冲压机器的参数,例如冲压模具或冲孔的尺寸和/或冲压力。如果CAD模型还包括要去除的额外材料的表示,以便形成部件的一个或多个凸缘的展开状态,则要去除的额外材料可以例如通过机加工来切割,并且确定CAM文件还可以包括确定对应的机加工CAM文件,例如,如之前所讨论的。如果存在一个或多个凸缘,则确定CAM文件可以包括确定g2连续和g1连续部分的几何规范,其允许在冲压自身和去除额外材料之后,在折叠过程中朝向冲压的部件的内表面并沿着g2连续长度折叠凸缘。由此确定的CAM文件因此可以包括:冲压工具的参数,可选地包括用于折叠凸缘(如果有的话)的该规范、以及可选地包括用于去除额外材料(如果有的话)的机加工生产文件。
然后,冲压生产过程可以例如直接地和自动地输出CAM文件,并基于该文件执行冲压过程(例如自动地)。冲压过程可以包括冲压(例如冲孔)材料的部分以形成由CAD文件表示的产品,其可能具有展开的凸缘和额外的材料(如果有的话)。在适当的情况下,冲压过程然后可以包括基于机加工生产文件切割额外的材料,并且基于该用于折叠凸缘的规范折叠凸缘,从而在凸缘的g2连续长度上折叠凸缘,并为部件的外边界提供平滑的外表。在后一种情况下,部件一旦制造后的形状不同于其由CAD模型表示的虚拟对应物,因为额外的材料被去除并且凸缘被折叠,而CAD模型表示具有额外的材料和凸缘处于展开状态的部件。
该方法包括提供神经网络,该神经网络配置为基于输入的深度图像生成3D图元CAD对象。如从机器学习领域已知的,“神经网络”是包括根据体系结构的操作的函数,每个操作由包括权重值的数据定义。这种操作根据体系结构相互独立地应用于输入。神经网络的体系结构定义了每个运算的操作数和权重值之间的关系。所提供的神经网络可以被训练,即学习和准备使用。因此,神经网络的训练包括基于为这种学习配置的数据集来确定权重的值。
进一步提出了一种学习3D重建方法神经网络的计算机实现方法。该学习方法包括:提供训练样本的数据集,每个训练样本均包括各个深度图像和地面真值3D图元CAD对象;并且基于该数据集训练神经网络。因此,数据集包括数据片,每个数据片形成各个训练样本。神经网络的训练(包括如上所述确定权重的值)可以根据基于训练样本的任何已知的监督学习方法。训练样本表示在学习后将使用神经网络的情况的多样性。本文所提及的任何数据集可包括训练样本的数字高于1000、10000、100000或1000000。所提供的数据集可以是由用于形成这种数据集的计算机产生的“合成”数据集。
还提出了这种用于形成学习方法的数据集的计算机实现的方法。该数据集形成方法包括合成3D图元CAD对象,并生成每个合成的3D图元CAD对象的各个深度图像。
现在,讨论3D重建方法。
如上所述,该方法包括提供神经网络,该神经网络配置为基于输入深度图像生成3D图元CAD对象。“配置为基于输入深度图像生成3D图元CAD对象”意指所提供的神经网络将深度图像作为输入并输出各个3D图元CAD对象。如在3D计算机图形和计算机视野中已知的,“深度图像”或等效地“深度图”是包含与场景对象的表面距视点的距离有关的信息的图像或图像通道。这种图像可以通过激光雷达技术(使用激光束,例如IR激光束)获得,例如Kinect、超声技术,运动结构(即,从几个图像进行3D重建3D)、深度估计方法、深度估计(即,从单个RGB图像获得深度图像以指示相对深度)。所谓“3D图元CAD对象”是指表示图元形状的任何CAD对象,即通过扫掠可获得的形状。换句话说,通过沿着引导曲线扫掠截面(例如,平面段)来定义每个图元形状。该部分可以是任何多边形、任何圆润的多边形(即,具有圆润拐角的多边形)、或形成封闭区域的一个或多个曲线的任何其它集合,例如一个或多个样条曲线。引导曲线可以是直线或连续曲线。
该部分可以沿着引导曲线连续变形。因此,例如,球体是图元形状,因为球体可以通过从半径为零(即,因此是一个点)开始沿着圆的球体直径扫掠,然后在扫掠的同时,连续地增加半径直到球体直径的一半,并且然后连续地减小半径直到再次零来获得球体。
通过将配置用于生成3D图元CAD对象的神经网络应用于每个片段,该方法因此重建每个片段的各个图元形状。特别地,通过将重建限制为图元形状,该方法实现了相对高的可训练性,并且从而实现了相对高的精确度。如果要重建更复杂的形状,则神经网络将不容易训练,或甚至根本不能训练。
该方法可以被限制为使得神经网络配置为每次3D图元CAD对象被应用到输入深度图像时仅生成3D图元CAD对象的特定子类别。例如,神经网络可以配置为仅输出具有未变形部分的3D图元CAD对象(即,沿扫掠固定的部分的扫掠),和/或仅输出其中引导曲线是直线的3D图元CAD对象。
该方法还包括提供表示真实对象的自然图像和深度图像。所谓“自然图像”是指照片,诸如彩色(例如RGB)照片或灰度照片。自然图像可以显示包括真实对象的真实世界场景。深度图像可以与自然图像相关联。换句话说,自然图像和所提供的深度图像都表示相同的真实对象。在示例中,自然图像和相关联的深度图像都可以从同一视点表示真实对象。
该方法可以包括捕获自然图像(例如,利用光传感器)和/或直接捕获深度图像(例如,利用深度传感器)或一个或多个光图像(例如,利用光传感器),然后通过深度估计或运动结构分析转换为深度图像。该方法可以包括利用各个相机捕获自然图像,并且利用不同的各个相机捕获深度图像或(多个)其预变换照片图像,或利用相同的相机(例如,具有不同的传感器,例如包括照片传感器和深度传感器)捕获深度图像和其预变换照片图像。该方法可以包括通过从数据库或永久存储器中检索来提供自然图像和/或深度图像。该方法还可以从数据库中检索一个或多个照片图像,然后可以通过如本领域已知的深度估计或运动结构分析将照片图像变换为深度图像。
该方法还包括至少基于自然图像分割深度图像,使得每个片段至多表示组件的各个部件。换句话说,“至多”意指该各个部件呈现(至少基本上)图元形状,并且该片段表示整个部件,或可选地,该片段仅表示该部件的部分,并且在这种情况下,该部分呈现(至少基本上)图元形状。所谓“基于自然图像”意指在分割中分割使用(即,处理)自然图像。例如,该方法可以包括通过对自然图像应用边缘检测方法来获得边缘图像。这种边缘检测方法可以根据Canny方法、Sobel方法或深度学习方法(例如,整体嵌套边缘检测(HED)方法)或本领域中任何其它已知的方法来执行。具体而言,3D重建方法可以基于由达索系统于2020年7月30日提交的欧洲专利申请号20305874.8(公开号3945495)中公开的相机获取的至少一个图像中分割对象的方法来执行这种分割,该欧洲专利申请通过引用并入本文中。
然后,该方法包括将神经网络应用于每个片段。将神经网络应用于每个片段产生各个3D图元CAD模型,作为真实对象的3D重建的部分。换句话说,该方法逐片段地执行真实对象的3D重建。在示例中,在将神经网络应用到该片段之前,该方法可以处理并且重新定心每个片段。
在示例中,在应用神经网络并从所提供的深度图像的每个片段生成各个3D图元CAD对象时,该方法可以执行捕捉(snapping)方法以组合从每个片段获得的3D图元CAD对象,以便构造真实对象的3D重建。特别地,该捕捉方法可以包括在虚拟场景中一个或多个生成的3D图元CAD对象相对于彼此的位移。可替换地或附加地,该捕捉方法可以包括定义一个或多个生成的3D图元CAD对象之间的关系。定义一个或多个3D图元CAD对象之间的关系可以是定义对象的两个或更多个面之间的关系(例如,并行)。
在应用神经网络并且从所提供的深度图像的每个片段生成各个3D图元CAD对象时,该方法可以进一步包括输出3D图元CAD对象的集合。此外,该方法还可以包括存储和/或显示这种3D图元CAD对象的集合。在示例中,该方法还可以允许用户例如使用GUI来编辑该集合的3D图元CAD对象中的每个。
在示例中,神经网络包括:卷积网络(CNN),其将深度图像作为输入并输出各个本征矢量(latent vector);以及子网络,其将各个本征矢量作为输入并输出预定3D图元CAD对象参数化的值。这种参数化的示例将在后面讨论。
图1表示根据这种示例的神经网络800。神经网络800包括CNN 810,CNN 810获取输入深度图像805并输出各个本征矢量815。神经网络800还包括子网络820,子网络820接收本征矢量815并输出预定的3D图元CAD对象参数化的值825、830、835和855。
在示例中,3D图元CAD对象由截面和挤压部定义。该截面由位置参数的列表和线类型的列表定义。神经网络可以包括递归神经网络(RNN),其配置为输出位置参数的列表和线类型的列表的值。这提供了3D图元CAD对象的简单和紧凑的可编辑参数化,并且形成了用于学习该方法的改善的解决方案(因为可以在较小的数据集上学习神经网络),从而改善3D重建的精度。该截面可以是2D的,即平面的,和/或由两个或更多个侧边组成,每个侧边是直线(片段)或曲形线(弧)。位置参数的列表可以包括截面上点的坐标,例如二乘以二限定截面的每个侧边的顶点的坐标。线类型的列表可以包括指示连接由位置参数的列表指定的两个连续点的线的类型的数字。在截面是多边形的示例中,位置参数是多边形的顶点的坐标。在示例中,线类型的列表的每个值可以指定截面的各个侧边是直线还是曲线,例如圆形曲线或样条曲线。在特定示例中,圆形曲线可具有等于两个点的距离的一半的半径。位置参数的列表和线类型的列表中的每个可以是固定长度矢量。
图1进一步示出根据这些示例的神经网络800。在这种情况下,神经网络800包括RNN 840。RNN 840是子网820的部分,并且配置为输出位置参数的列表的值825和线类型的列表的值830。
在示例中,神经网络还可以包括完全连接的层(FC),完全连接的层输出限定挤压部的一个或多个参数的值。限定挤压部的一个或多个参数的这样的值可以基于RNN的最终状态。换句话说,完全连接的FC层可以接收RNN的最终状态作为输入。限定挤压部的一个或多个参数可以包括当挤压部是直线时的挤压部长度(或等效的挤压部高度),例如垂直于截面。可选地,限定挤压部的一个或多个参数可以包括限定扫掠曲线的一个或多个参数。
在示例中,3D图元CAD对象的预定参数化包括位置参数的列表、线类型的列表以及限定挤压部的一个或多个参数。
图1进一步示出根据这种示例的神经网络800。神经网络800包括完全连接的层845。完全连接的层845接收RNN 840的最终状态850作为其输入851的部分,并且输出限定挤压部的一个或多个参数835的值。
在示例中,该截面还由表示该截面的类型的数字来限定。在这样的示例中,神经网络可以进一步配置为计算表示数字的概率分布的矢量。所谓“表示数字的概率分布的矢量”,其中数字表示截面的类型,这意指矢量的每个自变量/坐标/分量对应于截面的各个类型的(概率)。用于限定挤压部的一个或多个参数、位置参数的列表和/或用于线类型的列表的值的输出进一步基于表示概率分布的矢量。因此,表示截面的类型的数字可以表示形成截面的侧边(例如,片段或弧)的数字(nbSides),例如多边形中的边缘的数字。神经网络可以配置为基于表示该数字的概率分布的计算的矢量来计算表示该截面的类型的数字。神经网络可以使用argmax函数从所计算的矢量中计算该数字。换句话说,神经网络可以通过将argmax函数应用于所计算的矢量来确定数字。如在机器学习领域中已知的,argmax函数是找到从目标函数给出最大值的自变量(例如,在矢量的元素之间)的操作。因此,应用在计算矢量上的argmax函数可以输出该截面的各个类型的表示。
图1进一步呈现根据这种示例的神经网络800,这种示例计算表示数字的概率分布的矢量855。此外,网络800中的剩余计算基于矢量856,矢量856基于矢量855(通过级联)。
在示例中,神经网络包括第一部件,该第一部件包括第一子部件,该第一子部件包括卷积网络(CNN)。CNN可以配置为将深度图像作为输入并输出各个本征矢量。第一部件还可以包括第二子部件,该第二子部件配置为将CNN的各个本征矢量作为输入,并输出表示该数字的概率分布的矢量。换句话说,第二子部件预测截面的侧边的各个数字。在示例中,第二子部件可以是完全连接的层。
神经网络还可以包括第二部件,该第二部件包括第三子部件。第三子部件可以配置为将CNN的各个本征矢量和表示概率分布的矢量的级联作为输入,并输出各个矢量。在示例中,第三子部件可以是完全连接的层。
第二部件还可以包括第四子部件,第四子部件配置为将第三子部件的各个矢量作为输入,并输出位置参数的列表的值、线类型的列表的值以及固定长度矢量。在示例中,第四子部件包括如上所述的RNN。此外,第四子部件可以包括两个完全连接的层,该两个完全连接的层配置为输出值,该值配置为基于(预测的)RNN状态输出位置参数的列表和线类型的列表的值。这种RNN状态可以被隐藏。在这种示例中,固定长度矢量可以是最后的RNN状态。
第二部件可以进一步包括第五子部件。第五子部件可以配置为将第三子部件的各个矢量和第四子部件的各个固定长度矢量的级联作为输入,并输出限定挤压部的一个或多个参数的值。在示例中,第五子部件可以是完全连接的层。
图1进一步呈现根据这些示例的神经网络800。神经网络800的第一子部件包括CNN810,CNN 810获取输入深度图像805并输出各个本征矢量815。神经网络800的第二子部件包括完全连接的层860,完全连接的层860预测3D图元CAD对象的部分的截面的侧边的各个数字。完全连接的层860将第一子部件的CNN 810的各个本征矢量815作为输入,并输出表示数字的概率分布的矢量855。神经网络800的第三子部件包括完全连接的层870,完全连接的层870将CNN 810的各个本征矢量815和矢量855的级联856作为输入。完全连接的层870输出各个矢量871。然后,神经网络800的第四子部件包括RNN 840,RNN 840将各个矢量871作为输入。然后,第四子部件输出用于位置参数的列表的值825、用于线类型的列表的值830、以及固定长度矢量850。神经网络800的第五子部件包括完全连接的层845,完全连接的层845将第三子部件的各个矢量871和第四子部件的各个固定长度矢量850的级联851作为输入。然后,第五子部件输出限定挤压部的一个或多个参数的值845。
在示例中,该方法可以包括,在将神经网络应用于每个片段之前,从该片段中去除离群值,将该段重新定心。重新定心可以包括在片段周围添加填充层。这改善了本方法在统一神经网络的输入为中心方面所提供的解决方案。离群值可能由于传感器的噪声(捕获深度图像),在分割中出现的误差和/或对象相关的深度噪声(例如,由于照明或纹理)而出现在片段中。在示例中,该方法可以通过用3D点云表示深度图像的(片段)并且使用统计点云离群值去除策略来去除深度图像的离群值像素来去除离群值。这种策略可以去除与点云的平均值相比更远离它们的邻域的点。每个离群值去除策略可以导致神经网络的不同输入,从而导致不同的输出(即,不同的3D图元CAD对象)。在示例中,该方法可以对片段应用多个离群值去除策略,从而从神经网络获得片段的多个3D图元CAD对象,每个都与离群值去除策略相对应。多个离群值去除策略可以是任何统计确定策略(例如,将深度图边缘上的像素设置为零)。这通过为片段提出几个3D图元CAD对象来改善该方法。
现在讨论学习方法。
如上所述,学习方法包括提供训练样本的数据集,每个训练样本均包括各个深度图像和地面真值3D图元CAD对象,并基于该数据集训练神经网络。可以通过将如上讨论的预定3D图元CAD对象参数化的各个值相加来将地面真值3D图元CAD对象包括在数据集中。如从机器学习领域已知的,学习(或等效训练)可以包括迭代地处理各个数据集,例如逐个小批量和沿着迭代处理修改神经网络的权重值。这可以根据随机梯度下降来执行。可以为每个训练初始化权重值。权重值可以以任意方式初始化,例如随机地或每个都初始化到零值。在示例中,如果(例如,在权重的值中)实现了收敛,则学习方法可以进行迭代。
该学习可以包括最小化损失函数,其中,损失函数表示训练样本的(地面真值)3D图元CAD对象中的每个与从神经网络从训练样本的各个输入深度图像输出的各个生成的3D图元CAD对象之间的差异。该损失可以导致由神经网络计算和输出的3D图元CAD对象的预定参数化与训练样本的(地面真值)3D图元CAD对象或其参数化之间的差异。
在示例中,差异可以包括限定训练样本的每个3D图元CAD对象的截面的位置参数(例如,点的坐标)与通过神经网络的它们的各个预测值之间的均方误差和/或限定训练样本的每个3D图元CAD对象的挤压部(例如,挤压部长度)的一个或多个参数与通过神经网络的它们的各个预测值之间的均方误差。
可选地或附加地,差异可以包括训练样本的每个3D图元CAD对象的截面的类型与类型之间的差的度量,或由神经网络计算的表示该类型的数字的概率分布的值。
图2示出根据监督学习的学习方法的示例。学习方法利用包括训练样本920的训练数据集910。每个训练样本920均包括与深度图像926相关联的CAD参数化924(作为各个地面真值3D图元CAD对象的表示),该CAD参数化924可能是有噪声的。学习方法通过输入深度图像936并计算预测的CAD参数化960(由模型940输出)与CAD参数化924之间的误差函数(或损失)950来训练深度学习模型930(即,所提供的神经网络),以便更新模型940的权重。学习方法执行迭代直到收敛(例如,权重值的收敛)。
例如,在数据集形成方法之后的示例中,可以至少部分地基于由数据集形成方法形成的数据集来执行神经网络方法的学习。这种机器学习过程是特别有效的,并且提供了改善的精确度。可选地,机器学习过程可包括数据集形成方法,并基于数据集执行用于学习神经网络的任何其它计算机实现的方法(不同于所提出的学习方法)。另外,机器学习过程可包括对由任何其它计算机实现的方法(不同于所提出的数据集形成方法)提供的数据集执行学习方法,诸如用于形成数据集的另一方法或如此检索数据集。在示例中,可以对由数据集形成方法形成的数据集的部分执行神经网络的训练。
在示例中,3D图元CAD对象可以是具有不一定垂直于截面和多边形截面的引导曲线的图元中的一个。在这样的示例中,限定挤压部的一个或多个参数可以包括限定挤压部方向和挤压部长度(在该方向上)的矢量,即挤压部矢量。在具体示例中,引导曲线是垂直于截面的直线。因此,一个或多个挤压部参数是挤压部高度。位置参数可以是多边形的顶点的坐标。在示例中,该方法可以具有多边形的顶点数字的最大值,以通过将学习限制到在实践中更可能出现的对象来更有效地执行学习过程。在这样的示例中,神经网络的训练可以包括监督训练,该监督训练包括最小化损失(L)。损失可以导致以下术语中的一个或多个的总和:
·挤压部损失,具有表示3D图元CAD对象的预测的挤压部矢量和挤压部矢量的差异的类型的项。这里,hn指定该各个挤压部矢量并且/>指定各个预测的hn。在以上讨论的具体示例中,挤压部矢量(及其预测的挤压部矢量)可以是限定挤压部高度的定标器;
·具有以下类型的项的点损失
表示3D图元CAD对象的截面的点的坐标及其对应的预测值的差异。这里,i指定该点,并且每个pn,i指定各个3D图元CAD对象n的地面真值点[i][0]或点[i][1]的该各个坐标,并且指定各个预测的pn,i。此外,SHIFTS(数组)指定将数组的每个元素右移S次的函数。该函数允许不惩罚点的预测集合的循环置换;
·属于以下分类交叉熵损失的类型的线型损失LlineTypes
表示连接3D图元CAD对象的截面的每两个连续点的线的类型与其对应的线的预测类型之间的差异。这里是运算符·是点积,linesTypen,k指定用于各个第k线的(长度等于不同线类型的数字)概率矢量,并指定用于各线的预测概率矢量(长度等于不同线类型的数字)。矢量linesTypen,k的每个分量(分别地表示第k线的线类型是与该分量相关联的各个类型的(分别地,预测的)概率。与第k线的(地面真值)类型相关的矢量linesTypen,k的一个分量可以等于1,而剩余的分量可以是0。/>的分量的和(即,不同概率的和)可以等于1,因为可以对该矢量应用softmax运算。在示例中,可以存在两种类型的线,即直线(即,类型0)和具有半径等于两个点的距离的一半的圆形曲线的曲形的线(即,类型1)。在这样的示例中,/>长度为2,其中对于各个第k线,第一分量是第k线为类型0的预测概率,并且第二分量是第k线为类型1的预测概率。概率之和是1,因为实际上在预测上应用了softmax运算。linesTypen,k是具有相同形状但用于地面真值(目标线类型概率是1)的矢量;以及
·具有以下类型的项的侧边的数字损失
(其中多边形的顶点的数字的最大值设置为5)表示3D图元CAD对象的类型与对应的预测类型的差异。这里,nbSidesn是第n个示例的nbSides(即侧边的数字)地面真值。此外,sn(k)指定各个3D图元CAD对象是类型k的预测概率。此外,nbSidesn==k指定一个函数,当k等于1时,该函数给出1,否则给出0。
这里,N指定训练样本的数字,n表示训练样本的3D图元CAD对象中的每个。此外,λ1、λ2、λ3和λ4指定设置为在变化性和目标重建可靠性之间平衡的权重。在一个示例中,(λ1、λ2、λ3、λ4)可以设置为(10.0,10.0,1.0,1.0)。
现在讨论数据集形成方法。
如以上讨论的,数据集形成方法包括合成3D图元CAD对象,以及生成每个合成的3D图元CAD对象的各个深度图像。可以在学习方法之前执行数据集形成方法。
数据集形成方法可以通过从一个或多个参数域采样(例如,随机采样)来合成3D图元CAD对象。随机采样可以是均匀采样,即,根据均匀概率分布。在示例中,合成可以包括生成表示截面的类型的随机整数,以及基于该数字生成位置参数的列表和用于挤压部的值。因此,完全限定3D图元CAD对象。该截面的位置参数可以对应于该截面的角,并且可以在单元圆上选择。可选地,可以选择截面的位置参数和挤压部长度的值,以获得与这些位置参数和在单位球体中拟合的挤压部的集合对应的最大3D图元CAD对象,例如在缩放时。
在示例中,生成每个合成的3D图元CAD对象的各个深度图像可以包括相对于虚拟相机,呈现合成的3D图元CAD对象,从而获得像素的集合。合成的3D图元CAD对象可以在渲染之前经受一个或多个变换。像素的集合包括背景像素和前景(图元)像素。前景像素是表示在深度图像中具有高于零的强度的对象(即,在图像上由该对象限定的区域内)的像素,而背景像素在对象外部。该一个或多个变换可以是这样的,使得由虚拟相机可看到对象(例如,底部)的区域的至少部分。一个或多个变换可以包括重新定心、缩放、旋转和/或平移中的一个或多个。此外,各个深度图像的生成可以对变换的最终结果应用填充(通过添加具有零值的背景像素),以便获得正方形图像。
在示例中,数据集形成进一步包括将随机噪声添加到像素的至少部分。例如,该方法可以在深度图像的每个前景像素上添加2D柏林(Perlin)噪声,在每个前景像素上添加随机高斯(Gaussian)噪声、和/或在前景像素的边界上添加随机高斯噪声的绝对值。添加这种噪声丰富了形成的数据集,因为它更接近于实际情况(存在噪声),并且改善了在这种数据集上训练的神经网络的精确度。
在示例中,数据集形成方法还包括向像素的至少部分添加随机遮挡。例如,该方法可以以椭圆或矩形的形式添加随机遮挡。这种遮挡可以覆盖(即遮挡)深度图像的特定百分比(例如在5%到50%之间)的前景像素。这种遮挡尤其可以在深度图像的边界附近。可选地或附加地,数据集形成方法可以在前景像素的边界附近添加随机数字的遮挡。根据前景像素的数字,随机数可以具有最大数字。这种遮挡可以是具有从3到10个像素的参数长度的椭圆形或矩形形状。
该方法由计算机实现。这意指该方法的步骤(或基本上所有的步骤)由至少一个计算机或任何类似的系统执行。因此,该方法的步骤由计算机执行,可能完全自动地或半自动地执行。在示例中,可以通过用户-计算机交互来执行对该方法的布置的至少一些的触发。所需的用户-计算机交互的级别可以取决于预见的自动化程度,并且与实现用户的愿望的需要相平衡。在示例中,该程度可以是用户定义的和/或预定义的。例如,用户可以通过由鼠标、触摸垫或任何其它触觉装置输入一些笔划来控制分割深度图像。
方法的计算机实现的典型示例是利用适于该目的的系统来执行该方法。该系统可以包括联接到存储器和图形用户界面(GUI)的处理器,该存储器具有记录在其上的计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。存储器是适于这种存储的任何硬件,可能包括几个物理上不同的部件(例如,一个用于程序,并且可能一个用于数据库)。
图3示出系统的GUI的示例,其中系统是CAD系统,并且模型化对象2000是机械对象的3D重建。
GUI 2100可以是具有标准菜单栏2110、2120以及底部工具栏2140和侧边工具栏2150的典型CAD类界面。这样的菜单和工具栏包含用户可选择的图标的集合,每个图标与一个或多个操作或功能相关联,如本领域中已知的。这些图标中的一些与软件工具相关联,适于编辑和/或处理GUI 2100中显示的3D模型化对象2000。软件工具可以被分组为工作台。每个工作台包括软件工具的子集。特别地,工作台中的一个是编辑工作台,适于编辑模型化产品2000的几何特征。在操作中,设计者可以例如预先选择对象2000的部分,并且然后启动操作(例如,改变维度,颜色等)或通过选择适当的图标来编辑几何约束。例如,典型的CAD操作是冲孔的建模、或显示在屏幕上的3D模型化对象的折叠。GUI可以例如显示与显示的产品2000相关的数据2500。在附图的示例中,显示为“特征树”的数据2500和它们的3D表示2000属于包括制动卡钳和制动盘的制动组件。GUI可以进一步示出各种类型的图形工具2130、2070、2080,例如用于促进对象的3D定向、用于触发编辑产品的操作的模拟或呈现所显示的产品2000的各种属性。光标2060可以由触觉装置控制以允许用户与图形工具交互。
图4示出系统的示例,其中,系统是客户端计算机系统,例如用户的工作站。
该示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU)1010、也连接到总线的随机存取存储器(RAM)1070。客户端计算机还设置有图形处理单元(GPU)1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也被称为帧缓冲器。大容量存储装置控制器1020管理对大容量存储器装置(例如硬盘驱动器1030)的访问。适于有形地体现计算机程序指令和数据的大容量存储器装置包括所有形式的非易失性存储器,例如包括半导体存储器装置(诸如EPROM、EEPROM和闪存装置);磁盘(诸如内部硬盘和可移动盘);磁光盘。前述的任何一个都可以由专门设计的ASIC(专用集成电路)来补充或并入其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉装置1090,例如光标控制装置、键盘等。光标控制装置被用在客户计算机中,以允许用户选择性地将光标定位在显示器1080上的任何期望位置。此外,光标控制装置允许用户选择各种命令和输入控制信号。光标控制装置包括用于向系统输入控制信号的多个信号生成装置。通常,光标控制装置可以是鼠标,鼠标的按钮用于产生信号。可选地或附加地,客户端计算机系统可以包括敏感垫和/或敏感屏幕。
计算机程序可以包括能够由计算机执行的指令,该指令包括用于使以上系统执行该方法的装置。程序可以记录在任何数据存储介质上,包括系统的存储器。该程序例如可以在数字电子电路中实现、或在计算机硬件、固件、软件、或在它们的组合中实现。该程序可以被实现为一种装置,例如,有形地包含在机器可读存储装置中以供可编程处理器执行的产品。方法步骤可以由可编程处理器执行,该可编程处理器执行指令程序以通过对输入数据进行操作并生成输出来执行该方法的功能。因此,处理器可以是可编程的并被联接以从数据存储系统、至少一个输入装置和至少一个输出装置接收数据和指令、以及向数据存储系统、至少一个输入装置和至少一个输出装置传输数据和指令。应用程序可以用高级过程或面向对象的编程语言来实现,或如果需要,可以用汇编或机器语言来实现。在任何情况下,语言可以是编译的或解释的语言。程序可以是完全安装程序或更新程序。程序在系统上的应用在任何情况下导致用于执行该方法的指令。可选地,可以在云计算环境的服务器上存储和执行该计算机程序,该服务器通过网络与一个或多个客户机通信。在这种情况下,处理单元执行由程序所包括的指令,从而使得在云计算环境上执行该方法。
现在讨论这些方法的实现。这种实现方式涉及计算机视觉、深度学习、特别是3D重建的领域。
这些实现方式集中在简单和参数3D图元(即,3D图元CAD对象)的重建:参数化的圆柱体、盒和正棱柱。
图5示出这种图元的示例。任何3D图元的3D模型由扫掠表示来表示,使得每个3D图元CAD对象可以由3D平面截面和垂直于该截面的3D直的挤压线来限定。
在这些实现方式中,每个3D图元CAD对象可以完全描述如下:
-侧边的与限定该截面的点的数字对应的数字(nbSides)。它也可以被看作是图元的类型。在该示例中,侧边的最大数字被限制为5。此外,侧边的数字2至5分别归因于圆柱体、三角形棱柱、盒或立方体,以及五边形棱柱;
-3D点(点)的集合,作为至多5个限定了截面的点的3D点的列表。例如:
-点=[{(X1,Y1,Z1),…,{(X5,Y5,Z5)]
-与每对点相关联的标志,用于表示每两个连续点之间的线类型,以设置各个侧边是片段还是弧。标志等于0表示片段,并且标志等于1表示弧。圆柱体的所有成对点的标志为1,并且盒和正棱柱所有成对点的标志为0;以及
-表示垂直于3D点所在平面的挤压方向的挤压部长度。
在一些变型中,实施方式可以使用用CAD参数化表示的任何形状,诸如挤压部的形状(具有直的或弯曲的挤压部曲线)或旋转的形状。这种CAD参数化可以是根据达索系统于2021年5月21日提交的欧洲专利申请号21305671.6的CAD参数化。
该实现方式包括通过提供表示真实对象的自然图像和深度图像来重建3D对象的流水线(pipeline)方法,即,从包含要重建的对象的整个真实场景的RGB图像和相关联的深度图像来重建3D对象。这种数据可以使用具有LIDAR技术的装置来获得。在该流水线中,对象被分解成多个简单图元。此外,该流水线包括直观的2D分割工具。这种分割工具可以例如根据先前引用的欧洲专利申请号20305874.8的方法起作用。在这种流水线的实现方式中,为了重建整个对象,深度图像被分割。例如,用户可以在2D分割工具的辅助下对对象的每个部件或每个图元执行单独的分割。该流水线利用2.5D的真实数据,即与深度图像相关联的RGB图像来执行3D重建。最后,流水线可以包括自动3D捕捉工具,以将不同的3D重建组装在一起以形成对象。换句话说,在例如自动3D捕捉工具的帮助下,每个图元应该被重新布置(例如,放置和缩放)。
该实现方式还提出了一种训练深度神经网络的方法,该深度神经网络包括:编码器,将深度图像作为输入并且输出本征矢量;以及解码器,将本征矢量作为输入并输出CAD参数化。
这种实现方式不依赖于公共训练数据集,在能够处理一般化挑战(即,从训练数据到实际情况)并且输出对象的CAD参数化时,该公共训练数据集是不够的。此外,该实现方式将对象分解成其多个部件,其中每个单个部件更容易重建,并且可以用图元近似。该策略可用于重建可被分解成简单的部件/图元的集合的任何种类的对象。对于通常是规则的(例如,具有对称性)人造物体来说,通常是这种情况。另外,这种实现方式输出图元的CAD参数化,这是一种紧凑且易于修改的3D表示。
图6示出真实场景的单个捕获,例如通过相机,捕获RGB(即,自然)图像(在左边)和相关联的深度图像(在右边)。深度图像的每个像素强度等于相机传感器和真实场景与投射光线(与像素相关联)的3D交点之间的距离。
图7示出实现方式的示例流水线。
在步骤501中,如果提供RGB图像和相关联的深度图像,则在步骤502(即,“单个图元重建”)中,实现方式识别单个捕获中的每个对象可以被分解为基本部件或图元的集合,或至少被基本部件或图元近似,以便获得多个3D图元(在步骤503)。实现方式可以接收用户输入(例如,经由鼠标或任何触觉装置的输入笔划),以便识别组成整个对象的图元中的每个(以便至少基于RGB图像来分割深度图像)。
图8示出根据该方法的分解的示例。图8显示包含要重建的对象(即椅子600)的原始RGB图像(左边),并将对象分解为8个简单图元(601至608)。
回到图7,在步骤502中,实现方式重建所标识的图元中的每个,如稍后所讨论的。当在3D中重建每个图元时,在步骤504中,实现方式可以运行3D自动捕捉工具,以便将所有这些图元组合成一个单独的3D对象505。
现在参考图9讨论单个图元(即,图7中的502)的重建的示例实现方式。
在这样的示例中,实现方式可以接收交互式2D分割720中的用户输入710,以使用2D分割工具721逐个地选择输入RGB图像711中的每个图元。在这样的示例中,用户可以在输入RGB图像711上绘制简单的笔划713,以分割一个感兴趣的图元,并获得图元的高质量2D二元掩膜722,例如,根据先前引用的欧洲专利申请号20305874.8的方法。这种方法使用图形切割策略来计算2D掩膜,使用用户笔划713和边缘图像712作为输入(其例如通过如以上讨论的任何已知边缘检测方法,例如Canny方法、Sobel方法或深度学习方法,从RGB图像711计算)。实现方式可以使用能够将图像分割成多个图元的任何其它2D分割工具,例如用户引导的方法(诸如图形剪切和有效的N-D图像分割)、或自动方法(诸如根据Chen等人“具有深度卷积网络和完全连接的CRFS的语义图像分割(Semantic image segmentation with deepconvolutional nets and fully connected CRFS),ArXiv预印,arXiv:1412.7062,2014的语义分割,其通过引用并入本文中)。
然后,实现方式将每个2D二值图像映射到2D深度输入图像,以获得分割的深度图像。在该映射时,实现方式将分割的深度图像的所有背景值设置为零。在3D几何形状推断步骤740中,实现方式可以处理730分割的深度图像(如稍后讨论的),以准备深度学习算法742的输入741,该深度学习算法742推断图元的CAD参数化743。
最后,在输出可视化步骤750中,实现方式输出要显示给用户的所推断的图元的可视反馈,使用渲染器从CAD参数化获得3D几何形状(例如,3D网格)。
现在讨论深度图像处理的示例实现方式。
实现方式从二元掩膜和深度图执行二值逐像素运算,以获得分割的深度图像(其背景值是零值)。然后,实现方式计算前景像素的边界矩形(即,非零深度值),以将图元定心到处理后的深度图像中。然后,实现方式可以将零值添加(即,填充)到处理后的深度图像,以获得平方图像,从而获得分割的平方深度图像,其中图元在图像中心。
实际上,由于激光雷达传感器噪声、2D分割误差、对象相关的深度噪声(例如,由于照明或纹理),在深度图像中可能存在离群值(即,不正确的)像素深度值。这种噪声可能是由于真实世界的场景照明(例如,高光、无光、反射等)和/或来自对象本身(例如,纹理、透明度等)并且导致深度测量误差(例如,在深度测量传感器中)。为了去除这样的离群值,实现方式可以使用相机的校准(例如,通过使用其固有矩阵,或如果未知则使用默认校准,使用例如图像大小和45°的默认FOV,而没有传感器失真),来表示具有3D点云的深度图像。然后,利用深度图像的3D点云表示,该实现方式利用统计点云离群值去除策略去除深度图像的离群值像素。与3D点云的平均值相比,这种去除策略(根据open3D库)去除(3D点云的)远离它们的邻域的点。统计点云离群值去除策略将两个输入作为nb_neighbors和std_ratio,nb_neighbors指定考虑多少邻域以便计算给定点的平均距离,std_ratio允许基于点云上的平均距离的标准偏差来设置阈值水平。该数字越低,过滤器的侵略性越强。
该实现方式获得计算出的离群值3D点的索引,并将该索引映射到深度图像的像素索引,以将它们设置为零值。该实现方式可以使用多个不同参数和其它算法/策略,而不是用于离群值去除的该统计点云离群值去除策略,从而获得多个不同深度图像,并且然后提出多个不同的3D预测图元作为建议。实现方式可以使用导致获得接近训练数据集中的合成深度图像的深度图像的策略。在这种训练数据集上训练的深度神经网络给出了更好的3D模型预测。
在示例实现方式中,深度神经网络模型中的CNN的结构是根据AlexNet(参见https://en.wikipedia.org/wiki/AlexNet),其适于深度图像输入。
现在讨论根据数据集形成方法的(训练)数据集生成的示例实现方式。在这样的实现方式中,为了生成合成数据集,实现方式通过从随机CAD参数生成随机3D图元来合成3D图元CAD对象。
实现方式可以对截面的侧边的数字执行随机采样,从而根据来自区间[2,5]中的整数的均匀概率分布来采样nbSides。在该示例的变型中,根据来自区间[2,5]中的整数的非均匀概率分布来采样nbSides。与nbSides的其它值相比,圆柱体(nbSides=2)和盒(nbSides=4)的非均匀概率分布具有更大的值,因为圆柱体和盒在实际的3D设计中更常出现。对区间[hmin,hmax]的最大值和最小值之间的挤压部长度(h)进行均匀取样。值hmin和hmax由用户设置或由数据集形成方法自动地设置为默认值,例如分别设置为1和10。此外,当nbSides=3或5时,计算参数点以获得棱柱的规则截面,例如通过选择在圆周上以均匀距离的nbSides个点。然后,所选择的点在极坐标系中以它们对应的角度的升序排序。对于方框nbSides=4,在获得与其它棱柱相同的规则截面之后,在间隔[rmin,rmax]的最大值和最小值之间,与两个侧边之间的长度比对应,均匀地采样新的随机参数(r)。值rmin和rmax由用户设置或由数据集形成方法自动设置为默认值,例如分别设置为1和10。在数据集形成方法的选项中,当nbSides=3、4或5时,该方法例如通过选择单位盘内的nbSides数字的点来生成3D模型的非规则截面。然后,所选择的点在极坐标系中以它们对应的角度的升序排序。从所述采样的叉积中采样3D图元CAD对象。
参照图10,实现方式然后使用非照片真实感渲染虚拟相机来获得从固定视点校准并具有固定固有参数的图元的深度图像(例如,尺寸h=192,w=256,类似于激光雷达技术深度图像)。相机可以定位在(-1.7,0,0)处,并且观看(0,0,0)点。虚拟相机提供不包括任何噪声(其可包括在实际相机渲染中)的合成渲染(即,非照片)。然后,实现方式对随机生成的图元应用一些变换,包括在(0,0,0)中定心1001、改变大小1002以适合10cm和2m之间的随机直径的球体、应用具有0°和360°之间的随机角度的z轴旋转1003、应用具有-15°和-75°之间的随机角度的y轴旋转1004、以及应用具有取决于图元的边界球直径的两个值之间的随机距离的x轴平移1005中的一个或多个。
因此,实现方式获得随机深度图像的数据集,其具有与背景像素的零深度值和前景(图元)像素的非零值相关的CAD参数。然后,实现方式可以将零值相加,以便获得大小为(256,256)的平方图像。
根据以上讨论的数据集生成的非照片真实感渲染虚拟相机不模拟真实数据噪声,该真实数据噪声是真实传感器噪声、与对象相关的真实深度噪声和/或(多个)最终遮挡的组合。
在图11中呈现了这种噪声的一个示例,其在左边示出对象的真实深度图像(没有以上讨论的异常像素去除过程),并且在右边示出具有类似形状(圆柱形形状)的图元的生成的深度图像。为了使深度图像可视化,使用点云表示(较暗的点是最接近的点,较亮的点是最远的点)。
参考图12,实现方式将随机合成噪声添加到所生成的数据集中,以便使该数据集更接近真实图像。在示例中,实现方式可对输入深度图像(来自所产生的数据集)应用以下步骤:i)在每个前景像素上添加1210随机2D柏林噪声,其频率和幅度取决于图元的(几何)大小,ii)在每个前景像素上添加1220随机高斯噪声N(0.,0.002),iii)在前景像素的边界上添加1230随机高斯噪声N(0.,0.1)的绝对值,iv)添加1240具有椭圆或矩形形状的零或一个随机遮挡,该随机遮挡可以遮挡5%至50%之间的前景像素,v)在前景像素的边界附近添加1250随机数字的遮挡,其最大数字取决于前景像素的数字。这些遮挡可以是具有从3到10个像素的参数长度的椭圆形或矩形形状。添加随机2D柏林噪声的目的是使原始CAD对象的表面(以及因此相应的深度图像的深度值)轻微地波动。在表面上添加几个波也是不现实的。因此,该方法可以包括根据图元的大小调整波纹的频率,使得波纹可以是可见的,但是不会形成多于一个的小山或山谷作为波纹。
图12示出用特定的+或*运算符应用的随机噪声图像的示例,+或*运算符是具有相同大小的两个图像之间的逐像素运算符,这意指+或*运算被映射到每个像素。柏林噪声图像、高斯噪声图像和边界正噪声的背景像素的值是0,较亮的像素颜色意指较大的正值,而较暗的像素颜色意指较大的负值。对于遮挡掩膜图像和(多个)边界遮挡掩膜图像,背景值是1,并且前景值是值0。
图13表示如以上讨论的数据集生成的一般流水线。

Claims (15)

1.一种计算机实现的对包括部件的组件的至少一个真实对象进行3D重建的方法,所述3D重建方法包括:
-提供神经网络,所述神经网络配置为基于输入深度图像生成3D图元CAD对象;
-提供表示所述真实对象的自然图像和深度图像;
-至少基于所述自然图像,分割所述深度图像,每个片段至多表示所述组件的各个部分;以及
-将所述神经网络应用到每个片段。
2.根据权利要求1所述的方法,其中,所述神经网络包括:卷积网络(CNN),将所述深度图像作为输入,并且输出各个本征矢量;以及子网络,将所述各个本征矢量作为输入,并且输出预定的3D图元CAD对象参数化的值。
3.根据权利要求1或2所述的方法,其中,所述3D图元CAD对象由截面和挤压部限定,所述截面由位置参数的列表和线类型的列表限定,并且所述神经网络包括递归神经网络(RNN),所述递归神经网络配置为输出所述位置参数的列表和所述线类型的列表的值。
4.根据权利要求3所述的方法,其中,所述神经网络还包括完全连接的层,所述完全连接的层输出限定所述挤压部的一个或多个参数的值。
5.根据权利要求4所述的方法,其中,所述截面还由表示所述截面的类型的数字限定,所述神经网络还配置为计算表示所述数字的概率分布的矢量,并且可选地,输出限定所述挤压部、所述位置参数的列表和/或所述线类型的列表的所述一个或多个参数的所述值还基于表示所述概率分布的所述矢量。
6.根据权利要求5所述的方法,其中,所述神经网络包括:
-第一部件,包括:
第一子部件,包括卷积网络(CNN),所述CNN配置为将所述深度图像作为输入,并且输出各个本征矢量,以及
第二子部件,配置为将所述CNN的所述各个本征矢量作为输入,并且输出表示所述数字的概率分布的所述矢量;以及
-第二部件,包括:
第三子部件,配置为将所述CNN的各个本征矢量与表示所述概率分布的所述矢量的级联作为输入,并且输出各个矢量,
第四子部件,配置为将所述第三子部件的所述各个矢量作为输入,并且输出所述位置参数的列表的值、所述线类型的列表的值以及固定长度矢量,以及
第五子部件,配置为将所述第三子部件的所述各个矢量和所述第四子部件的各个固定长度矢量的级联作为输入,并且输出定义所述挤压部的所述一个或多个参数的值。
7.根据权利要求1至6中任一项所述的方法,其中,所述方法包括在将所述神经网络应用于每个片段之前:
-从所述片段中去除离群值;和/或
-重新定心所述片段。
8.一种用于学习根据权利要求1至7中任一项所述的神经网络的计算机实现的方法,所述学习方法包括:
-提供训练样本的数据集,每个训练样本均包括各个深度图像和地面真值3D图元CAD对象;以及
-基于所述数据集,训练所述神经网络。
9.一种用于形成根据权利要求7或8所述的数据集的计算机实现的方法,所述数据集形成方法包括:
-合成3D图元CAD对象;以及
-生成每个合成的3D图元CAD对象的各个深度图像。
10.根据权利要求9所述的方法,其中,生成每个合成的3D图元CAD对象的各个深度图像包括:相对于虚拟相机,渲染所合成的3D图元CAD对象,从而获得像素的集合,并且可选地,在所述渲染之前,对所合成的3D图元CAD对象进行一个或多个变换。
11.根据权利要求10所述的方法,还包括:将随机噪声添加到所述像素的至少部分。
12.根据权利要求10或11所述的方法,还包括:将随机遮挡添加到所述像素的至少部分。
13.一种计算机程序,包括用于执行根据权利要求1至11中任一项所述的方法的指令。
14.一种计算机可读存储介质,其上记录有根据权利要求13所述的计算机程序。
15.一种系统,包括联接到存储器的处理器,所述存储器上记录有根据权利要求13所述的计算机程序。
CN202310402540.1A 2022-04-21 2023-04-14 从图像进行3d重建 Pending CN116934998A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP22305599.7A EP4266257A1 (en) 2022-04-21 2022-04-21 3d reconstruction from images
EP22305599.7 2022-04-21

Publications (1)

Publication Number Publication Date
CN116934998A true CN116934998A (zh) 2023-10-24

Family

ID=81580960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310402540.1A Pending CN116934998A (zh) 2022-04-21 2023-04-14 从图像进行3d重建

Country Status (4)

Country Link
US (1) US20230342507A1 (zh)
EP (1) EP4266257A1 (zh)
JP (1) JP2023160791A (zh)
CN (1) CN116934998A (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4008526A1 (en) 2016-11-25 2022-06-08 Dassault Systèmes Orientation of a real object for 3d printing
CN109410318B (zh) * 2018-09-30 2020-09-08 先临三维科技股份有限公司 三维模型生成方法、装置、设备和存储介质
EP3675062A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Learning a neural network for inference of solid cad features

Also Published As

Publication number Publication date
JP2023160791A (ja) 2023-11-02
EP4266257A1 (en) 2023-10-25
US20230342507A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
JP6878011B2 (ja) 3dモデル化オブジェクトの再構築
JP7473335B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
JP7491685B2 (ja) ニューラルネットワークのセット
JP6659336B2 (ja) 3dモデル化オブジェクトのテクスチャリング
JP7473336B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
JP2022036024A (ja) パラメータ化された3dモデルを出力するニューラルネットワーク
JP2023071722A (ja) 画像を入力とする関数を学習するためのデータセット
US11893690B2 (en) 3D reconstruction with smooth maps
US12002157B2 (en) Variational auto-encoder for outputting a 3D model
CN115374546A (zh) Cad模型参数化
CN115631486A (zh) 分割表示机械组装件的3d建模对象
CN113205609A (zh) 变形基础学习
CN112825200A (zh) 处理真实对象上的形状属性的3d信号
US20230306162A1 (en) Sketch-processing
US10783707B2 (en) Determining a set of facets that represents a skin of a real object
EP4266257A1 (en) 3d reconstruction from images
JP2024003783A (ja) Cadフィーチャーツリー生成
JP2024003784A (ja) Cadフィーチャーツリー最適化
CN115374547A (zh) 材料挤压检测方法
JP2022140339A (ja) 3dセグメンテーションのための機械学習
CN116740302A (zh) 处理细分曲面
JP2024050514A (ja) フィレット検出方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication