Ай Дайджест

Свежая выжимка ml и AI статей - каждый день

CAD-Recode: Обратная инженерия CAD-кода из облаков точек

Компьютерное проектирование (CAD) является стандартным методом для создания трехмерных моделей, используемых в различных отраслях, от производства до архитектуры. Однако процесс создания 3D CAD модели требует значительных временных затрат и специализированных знаний. Это связано с тем, что модель должна не только отражать форму объекта, но и учитывать его функциональные требования, известные как проектные намерения. Обратная инженерия CAD моделей из 3D сканированных объектов предоставляет более быстрый и доступный способ создания CAD, что делает автоматизированную обратную инженерию CAD важной задачей.

Существует множество подходов к автоматизированной обратной инженерии CAD, которые развивались вместе с прогрессом в области компьютерного зрения и графики. Эти методы варьируются от идентификации CAD-частей в 3D облаках точек до предсказания последовательности шагов, которые дизайнер может предпринять для воссоздания 3D сканированного объекта в CAD программном обеспечении. Последняя цель особенно привлекательна, так как она не только позволяет создать конечную параметрическую модель CAD, но и захватывает проектные шаги, что позволяет производить дальнейшие изменения в CAD программном обеспечении.

В данной статье мы представим CAD-Recode, метод, который использует предобученные большие языковые модели (LLM) для преобразования облаков точек в CAD-код на Python. CAD-Recode разработан для предсказания последовательностей операций "эскиз-экструзия", представленных в виде Python кода, что позволяет создавать интерпретируемые и изменяемые CAD модели.

CAD Репрезентация как Код

Современное проектирование CAD основывается на последовательностях 2D эскизов и операций для создания 3D моделей. Проектировщики сначала рисуют геометрические примитивы на выбранной плоскости, а затем применяют такие операции, как экструзия или вращение, для генерации 3D геометрии. В отличие от существующих методов, которые часто используют специальные представления CAD, CAD-Recode базируется на коде Python с использованием библиотеки CadQuery. Это позволяет создавать модульные и интерпретируемые представления CAD, которые легко интегрируются с LLM.

Преимущества представления CAD-кода

  1. Модульность: Использование CadQuery позволяет создавать более сложные и разнообразные CAD модели, так как библиотека включает в себя как низкоуровневые, так и высокоуровневые геометрические функции.

  2. Интерпретируемость: Код на Python легко читаем и может быть изменен или дополнен без необходимости в сложных преобразованиях.

  3. Совместимость с LLM: Кодовая репрезентация позволяет эффективно использовать предобученные LLM для генерации и модификации CAD-кода.

CAD-Recode: Архитектура и Обучение

CAD-Recode состоит из двух основных компонентов: модуля проекции облаков точек и декодера на основе LLM. Модуль проекции преобразует 3D облака точек в последовательность обучаемых токенов, которые затем передаются декодеру LLM для генерации CAD-кода.

Модуль Проекции Облаков Точек

Модуль проекции выполняет несколько шагов:

  1. Случайная выборка: Облако точек уменьшается до фиксированного количества точек.
  2. Сортировка: Точки сортируются по координатам для обеспечения последовательности.
  3. Позиционное кодирование: Применяется кодирование Фурье для улучшения представления пространственной информации.
  4. Линейный слой: Кодированные координаты проецируются в последовательность токенов.

Декодер CAD-кода

Декодер CAD-кода использует предобученные LLM, такие как Qwen2-1.5B, для генерации последовательностей CAD-кода на Python. Он принимает на вход токены от модуля проекции и генерирует полную последовательность кода, используя авторегрессионный подход.

Обучение

CAD-Recode обучается на синтетическом наборе данных, состоящем из одного миллиона различных последовательностей CAD, что позволяет избежать ограничений существующих реальных наборов данных. Обучение включает минимизацию отрицательной логарифмической вероятности (NLL) для целевой последовательности CAD-кода.

Результаты и Оценка

CAD-Recode был протестирован на нескольких публичных наборах данных, включая DeepCAD и Fusion360. Результаты показывают, что CAD-Recode значительно превосходит существующие методы по всем метрикам, включая среднее расстояние Чамфера и коэффициент пересечения.

Сравнение с Существующими Методами

Таблица результатов показывает, что CAD-Recode достигает значительных улучшений, таких как:

  • Среднее расстояние Чамфера на уровне 0.308, что на порядок лучше, чем у большинства предыдущих методов.
  • Коэффициент пересечения (IoU) на уровне 87.6%, что также свидетельствует о высоком качестве реконструкции.

Интерпретируемость и Редактирование CAD-кода

CAD-код, сгенерированный CAD-Recode, легко интерпретируется и может быть использован для редактирования CAD моделей. С помощью GPT-4o можно задавать вопросы о CAD моделях и получать точные ответы, что открывает новые возможности для интерактивного проектирования.

Заключение

CAD-Recode представляет собой значительный шаг вперед в области обратной инженерии CAD. Используя предобученные LLM и кодовую репрезентацию, CAD-Recode позволяет эффективно преобразовывать облака точек в интерпретируемый CAD-код, что открывает новые горизонты для автоматизации проектирования и редактирования CAD моделей. Мы надеемся, что это исследование послужит основой для дальнейших разработок в области CAD и обратной инженерии.