CAD-Recode: Обратная разработка кода CAD из облаков точек
CAD-Recode: Reverse Engineering CAD Code from Point Clouds
December 18, 2024
Авторы: Danila Rukhovich, Elona Dupont, Dimitrios Mallis, Kseniya Cherenkova, Anis Kacem, Djamila Aouada
cs.AI
Аннотация
Моделирование на компьютере (Computer-Aided Design, CAD) обычно создается путем последовательного создания параметрических эскизов и применения операций CAD для получения 3D-модели. Проблема обратной инженерии 3D CAD заключается в восстановлении последовательности эскизов и операций CAD из 3D-представлений, таких как облака точек. В данной статье мы решаем эту задачу с помощью новаторских вкладов на трех уровнях: представление последовательности CAD, проектирование сети и набор данных. В частности, мы представляем последовательности CAD-выдавливания эскизов в виде кода Python. Предложенный CAD-Recode преобразует облако точек в код Python, который при выполнении восстанавливает CAD-модель. Используя предварительно обученные большие языковые модели (Large Language Models, LLMs) на коде Python, мы используем относительно небольшую LLM в качестве декодера для CAD-Recode и сочетаем ее с легким проектором облака точек. CAD-Recode обучается исключительно на предложенном синтетическом наборе данных из миллиона разнообразных последовательностей CAD. CAD-Recode значительно превосходит существующие методы на трех наборах данных, требуя меньшего количества входных точек. Особенно он достигает в 10 раз меньшего среднего расстояния Хамфера по сравнению с передовыми методами на наборах данных DeepCAD и Fusion360. Кроме того, мы показываем, что наш вывод CAD Python-кода интерпретируем с помощью готовых LLMs, что позволяет редактировать CAD и отвечать на вопросы, специфичные для CAD, по облакам точек.
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