DeepCAD là một mạng tạo sinh (generative network) chuyên dụng cho các mô hình CAD, được nhóm tác giả Rundi Wu, Chang Xiao, Changxi Zheng giới thiệu tại ICCV 2021. Repo này cung cấp mã nguồn để huấn luyện và sinh các chuỗi dựng hình CAD, giải quyết vấn đề thiếu dữ liệu CAD có cấu trúc cho học sâu. Nó dành cho các nhà nghiên cứu AI, kỹ sư CAD muốn khám phá sinh thiết kế tự động.
Thank you for reading this post, don't forget to subscribe!Những điểm chính
- DeepCAD sử dụng autoencoder kết hợp GAN để sinh chuỗi lệnh CAD có cấu trúc, giúp tái tạo và sinh ngẫu nhiên các mô hình phức tạp.
- Hỗ trợ xuất file STEP và trực quan hóa bằng OpenCASCADE, tương thích với hầu hết phần mềm CAD hiện đại.
- Yêu cầu môi trường Linux, GPU CUDA, Python 3.7 và PyTorch 1.5+, không dành cho Windows mặc định.
- Dữ liệu huấn luyện được trích xuất từ Onshape qua bộ công cụ đi kèm, phù hợp nghiên cứu hơn là sản xuất thực tế.
DeepCAD là gì và giải quyết vấn đề gì?
DeepCAD là mô hình học sâu có khả năng học biểu diễn và sinh ra các chuỗi dựng hình CAD (construction sequences) dưới dạng vector. Thay vì chỉ sinh mesh hay point cloud, DeepCAD hiểu được quy trình thiết kế CAD thực tế. Nó giải quyết bài toán thiếu hụt dữ liệu CAD có cấu trúc và nhãn, đồng thời mở ra hướng tạo sinh thiết kế tự động. Bạn có thể xem chi tiết tại repository gốc trên GitHub.
Những tính năng nổi bật của DeepCAD
DeepCAD nổi bật nhờ khả năng làm việc trực tiếp với chuỗi lệnh CAD thay vì hình học rời rạc. Autoencoder mã hóa chuỗi dựng hình thành vector ẩn, sau đó latent GAN (WGAN-GP) sinh ra các vector mới. Mô hình đạt độ chính xác cao trên tập test với các chỉ số command accuracy và chamfer distance. Nó cũng cung cấp script trực quan hóa và xuất sang STEP, giúp kiểm tra kết quả dễ dàng.
Hướng dẫn cài đặt và sử dụng DeepCAD
Để chạy DeepCAD, bạn cần môi trường Linux có GPU NVIDIA. Dưới đây là các bước cơ bản:
- Clone repo:
git clone https://github.com/rundiwu/DeepCAD.git - Cài đặt dependencies:
pip install -r requirements.txtvàconda install -c conda-forge pythonocc-core=7.5.1 - Tải dữ liệu từ link trong README, giải nén vào thư mục data.
- Huấn luyện autoencoder:
python train.py --exp_name newDeepCAD -g 0 - Mã hóa dữ liệu:
python test.py --exp_name newDeepCAD --mode enc --ckpt 1000 -g 0 - Huấn luyện latent GAN:
python lgan.py --exp_name newDeepCAD --ae_ckpt 1000 -g 0 - Kiểm tra tái tạo:
python test.py --exp_name newDeepCAD --mode rec --ckpt 1000 -g 0 - Xuất kết quả ra STEP:
python utils/export2step.py --src {source folder}
Lưu ý: bạn cần điều chỉnh tham số ckpt theo số epoch đã huấn luyện.
Ai nên dùng DeepCAD và ai không nên?
DeepCAD phù hợp với nhà nghiên cứu AI/CAD muốn thử nghiệm sinh thiết kế, sinh viên làm luận văn về generative model cho 3D, hoặc kỹ sư muốn khám phá khả năng tự động hóa CAD. Tuy nhiên, nó không dành cho người cần công cụ sẵn sàng sản xuất vì yêu cầu cấu hình cao, quy trình cài đặt phức tạp và mô hình chưa tối ưu cho mọi loại thiết kế. Nếu bạn mới bắt đầu với PyTorch hoặc không có GPU mạnh, hãy cân nhắc kỹ trước khi đầu tư thời gian.
Câu hỏi thường gặp
DeepCAD có chạy trên Windows không?
Repo khuyến nghị Linux vì phụ thuộc vào pythonocc và CUDA. Bạn có thể thử trên WSL2 nhưng chưa được hỗ trợ chính thức.
Có cần GPU không?
Có, DeepCAD yêu cầu GPU NVIDIA với CUDA và CuDNN để huấn luyện. CPU chỉ đủ cho inference nhỏ lẻ nhưng rất chậm.
Làm sao để xuất mô hình ra file STEP?
Chạy script python utils/export2step.py --src {source folder} sau khi có kết quả từ autoencoder. File STEP có thể mở bằng SolidWorks, Fusion 360, v.v.
Tôi có thể dùng dữ liệu CAD của riêng mình không?
Có, repo cung cấp onshape-cad-parser để parse dữ liệu từ Onshape. Bạn cần tự thu thập và chuyển đổi sang định dạng json.
DeepCAD có hỗ trợ sinh mô hình parametric không?
Hiện tại DeepCAD sinh chuỗi dựng hình cố định, chưa hỗ trợ parametric editing. Đây là hướng phát triển tương lai.
Kết luận
DeepCAD là một công trình nghiên cứu chất lượng cao, mở ra hướng tiếp cận mới cho sinh thiết kế CAD dựa trên học sâu. Nếu bạn đam mê AI và CAD, hãy thử nghiệm repo này, tham khảo bài báo ICCV 2021, và đừng quên trích dẫn nếu sử dụng. Bạn muốn tìm hiểu thêm? Truy cập DeepCAD trên GitHub và bắt tay vào code nghen!

