CAD-Recode: Engenharia Reversa de Código CAD a partir de Nuvens de Pontos
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
Resumo
Os modelos de Projeto Assistido por Computador (CAD) são tipicamente construídos sequencialmente desenhando esboços paramétricos e aplicando operações CAD para obter um modelo 3D. O problema de engenharia reversa CAD 3D consiste em reconstruir as sequências de esboços e operações CAD a partir de representações 3D, como nuvens de pontos. Neste artigo, abordamos esse desafio por meio de contribuições inovadoras em três níveis: representação de sequência CAD, design de rede e conjunto de dados. Em particular, representamos sequências de esboço-extrusão CAD como código Python. O CAD-Recode proposto traduz uma nuvem de pontos em código Python que, quando executado, reconstrói o modelo CAD. Aproveitando a exposição de Modelos de Linguagem Grandes (LLMs) pré-treinados ao código Python, utilizamos um LLM relativamente pequeno como decodificador para o CAD-Recode e o combinamos com um projetor leve de nuvem de pontos. O CAD-Recode é treinado exclusivamente em um conjunto de dados sintético proposto de um milhão de sequências CAD diversas. O CAD-Recode supera significativamente os métodos existentes em três conjuntos de dados, exigindo menos pontos de entrada. Notavelmente, ele alcança uma distância média de Chamfer 10 vezes menor do que os métodos de ponta nos conjuntos de dados DeepCAD e Fusion360. Além disso, demonstramos que nosso código Python CAD de saída é interpretável por LLMs prontos para uso, possibilitando edição CAD e resposta a perguntas específicas de CAD a partir de nuvens de pontos.
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