Свежая выжимка ml и AI статей - каждый день
Компьютерное проектирование (CAD) является стандартным методом для создания трехмерных моделей, используемых в различных отраслях, от производства до архитектуры. Однако процесс создания 3D CAD модели требует значительных временных затрат и специализированных знаний. Это связано с тем, что модель должна не только отражать форму объекта, но и учитывать его функциональные требования, известные как проектные намерения. Обратная инженерия CAD моделей из 3D сканированных объектов предоставляет более быстрый и доступный способ создания CAD, что делает автоматизированную обратную инженерию CAD важной задачей.
Существует множество подходов к автоматизированной обратной инженерии CAD, которые развивались вместе с прогрессом в области компьютерного зрения и графики. Эти методы варьируются от идентификации CAD-частей в 3D облаках точек до предсказания последовательности шагов, которые дизайнер может предпринять для воссоздания 3D сканированного объекта в CAD программном обеспечении. Последняя цель особенно привлекательна, так как она не только позволяет создать конечную параметрическую модель CAD, но и захватывает проектные шаги, что позволяет производить дальнейшие изменения в CAD программном обеспечении.
В данной статье мы представим CAD-Recode, метод, который использует предобученные большие языковые модели (LLM) для преобразования облаков точек в CAD-код на Python. CAD-Recode разработан для предсказания последовательностей операций "эскиз-экструзия", представленных в виде Python кода, что позволяет создавать интерпретируемые и изменяемые CAD модели.
Современное проектирование CAD основывается на последовательностях 2D эскизов и операций для создания 3D моделей. Проектировщики сначала рисуют геометрические примитивы на выбранной плоскости, а затем применяют такие операции, как экструзия или вращение, для генерации 3D геометрии. В отличие от существующих методов, которые часто используют специальные представления CAD, CAD-Recode базируется на коде Python с использованием библиотеки CadQuery. Это позволяет создавать модульные и интерпретируемые представления CAD, которые легко интегрируются с LLM.
Модульность: Использование CadQuery позволяет создавать более сложные и разнообразные CAD модели, так как библиотека включает в себя как низкоуровневые, так и высокоуровневые геометрические функции.
Интерпретируемость: Код на Python легко читаем и может быть изменен или дополнен без необходимости в сложных преобразованиях.
Совместимость с LLM: Кодовая репрезентация позволяет эффективно использовать предобученные LLM для генерации и модификации CAD-кода.
CAD-Recode состоит из двух основных компонентов: модуля проекции облаков точек и декодера на основе LLM. Модуль проекции преобразует 3D облака точек в последовательность обучаемых токенов, которые затем передаются декодеру LLM для генерации CAD-кода.
Модуль проекции выполняет несколько шагов:
Декодер CAD-кода использует предобученные LLM, такие как Qwen2-1.5B, для генерации последовательностей CAD-кода на Python. Он принимает на вход токены от модуля проекции и генерирует полную последовательность кода, используя авторегрессионный подход.
CAD-Recode обучается на синтетическом наборе данных, состоящем из одного миллиона различных последовательностей CAD, что позволяет избежать ограничений существующих реальных наборов данных. Обучение включает минимизацию отрицательной логарифмической вероятности (NLL) для целевой последовательности CAD-кода.
CAD-Recode был протестирован на нескольких публичных наборах данных, включая DeepCAD и Fusion360. Результаты показывают, что CAD-Recode значительно превосходит существующие методы по всем метрикам, включая среднее расстояние Чамфера и коэффициент пересечения.
Таблица результатов показывает, что CAD-Recode достигает значительных улучшений, таких как:
CAD-код, сгенерированный CAD-Recode, легко интерпретируется и может быть использован для редактирования CAD моделей. С помощью GPT-4o можно задавать вопросы о CAD моделях и получать точные ответы, что открывает новые возможности для интерактивного проектирования.
CAD-Recode представляет собой значительный шаг вперед в области обратной инженерии CAD. Используя предобученные LLM и кодовую репрезентацию, CAD-Recode позволяет эффективно преобразовывать облака точек в интерпретируемый CAD-код, что открывает новые горизонты для автоматизации проектирования и редактирования CAD моделей. Мы надеемся, что это исследование послужит основой для дальнейших разработок в области CAD и обратной инженерии.