CAD-Recode: Ingeniería Inversa de Código CAD a partir de Nubes de Puntos
CAD-Recode: Reverse Engineering CAD Code from Point Clouds
December 18, 2024
Autores: Danila Rukhovich, Elona Dupont, Dimitrios Mallis, Kseniya Cherenkova, Anis Kacem, Djamila Aouada
cs.AI
Resumen
Los modelos de Diseño Asistido por Computadora (CAD) suelen ser construidos secuencialmente dibujando bocetos paramétricos y aplicando operaciones CAD para obtener un modelo 3D. El problema de ingeniería inversa de CAD 3D consiste en reconstruir las secuencias de bocetos y operaciones CAD a partir de representaciones 3D como nubes de puntos. En este artículo, abordamos este desafío a través de contribuciones novedosas en tres niveles: representación de secuencias CAD, diseño de redes y conjunto de datos. En particular, representamos las secuencias de boceto-extrusión de CAD como código Python. El CAD-Recode propuesto traduce una nube de puntos a código Python que, al ejecutarse, reconstruye el modelo CAD. Aprovechando la exposición de Modelos de Lenguaje Grande (LLM) pre-entrenados al código Python, utilizamos un LLM relativamente pequeño como decodificador para CAD-Recode y lo combinamos con un proyector ligero de nube de puntos. CAD-Recode se entrena únicamente en un conjunto de datos sintético propuesto de un millón de secuencias CAD diversas. CAD-Recode supera significativamente a los métodos existentes en tres conjuntos de datos mientras requiere menos puntos de entrada. Notablemente, logra una distancia de Chamfer media 10 veces menor que los métodos de vanguardia en los conjuntos de datos DeepCAD y Fusion360. Además, demostramos que nuestro código Python de CAD es interpretable por LLMs listos para usar, lo que permite la edición de CAD y responder preguntas específicas de CAD a partir de nubes de puntos.
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 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 solely on a proposed
synthetic dataset of one million diverse CAD sequences. CAD-Recode
significantly outperforms existing methods across three datasets while
requiring fewer input points. Notably, it achieves 10 times lower mean Chamfer
distance than state-of-the-art methods on DeepCAD and Fusion360 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.Summary
AI-Generated Summary