arXiv:2412.14042cs.CV2024-12ICCV被引 74

将点云逆向生成可执行的CAD代码,实现3D模型自动重构。

CAD-Recode: Reverse Engineering CAD Code from Point Clouds

  • 用Python代码表示CAD草图与拉伸操作序列
  • 在百万级合成数据上训练,显著优于现有方法
  • 输出代码可被通用大模型理解,支持编辑与问答

计算机辅助设计(CAD)模型通常通过顺序绘制参数化草图并应用操作构建。三维CAD逆向工程的目标是从点云等三维表示中重建草图与操作序列。本文提出CAD-Recode,从三个层面创新:CAD序列表示、网络设计和训练数据。我们将草图-拉伸序列表示为Python代码,使模型能将点云转换为可执行的代码,运行后还原原CAD模型。利用预训练大语言模型对Python代码的熟悉度,采用轻量级语言模型作为解码器,并结合轻量点云投影器。模型在百万级程序生成的数据集上训练,在DeepCAD、Fusion360和真实世界CC3D数据集上均显著优于现有方法。此外,生成的Python代码可被现成大模型解析,实现基于点云的CAD编辑与特定问题问答。

原文摘要 · Abstract (English)

Computer-Aided Design (CAD) models are typically constructed by sequentially drawing parametric sketches and applying CAD operations to obtain a 3D model. The problem of 3D CAD reverse engineering consists of reconstructing the sketch and CAD operation sequences from 3D representations such as point clouds. In this paper, we address this challenge through novel contributions across three levels: CAD sequence representation, network design, and training dataset. In particular, we represent CAD sketch-extrude sequences as Python code. The proposed CAD-Recode translates a point cloud into Python code that, when executed, reconstructs the CAD model. Taking advantage of the exposure of pre-trained Large Language Models (LLMs) to Python code, we leverage a relatively small LLM as a decoder for CAD-Recode and combine it with a lightweight point cloud projector. CAD-Recode is trained on a procedurally generated dataset of one million CAD sequences. CAD-Recode significantly outperforms existing methods across the DeepCAD, Fusion360 and real-world CC3D datasets. Furthermore, we show that our CAD Python code output is interpretable by off-the-shelf LLMs, enabling CAD editing and CAD-specific question answering from point clouds.

逆向工程CAD生成代码生成点云处理

Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。