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

PDF52December 19, 2024