# point2cyl **Repository Path**: mecwind/point2cyl ## Basic Information - **Project Name**: point2cyl - **Description**: AI开源大讲堂 课程作业 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-24 - **Last Updated**: 2023-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Point2Cyl:从点云到拉伸柱体的3D对象逆向工程 ![pic-network](teaser_v4-compressed.png) ## 简介 Point2Cyl是一个将原始三维点云转换为一组拉伸柱体的监督网络。从原始几何体到CAD模型的逆向工程是一项重要的任务,通过逆向工程,可以在形状编辑软件中对三维数据进行操作,从而拓展其下游应用。特别是,CAD模型的形式中,一种广泛使用的形式为一组拉伸柱体(一个二维草图加上一个拉伸轴和范围)以及它们的布尔组合,该形式与有限的基元类型(如平面、球体和圆柱)相比,具有强大的形状表达能力。下图展示了典型的通过拉伸柱体创建三维模型的过程。![CAD模型的创建形式](1.png) 在论文中,引入了一个神经网络,通过首先学习基础的几何代理,以几何为基础的方式解决拉伸柱体的分解问题。准确地说,该方法首先预测每个点的分割、基平面/柱面的标签和法线,然后以可微调的闭合形式估计基础拉伸参数。 ## 网络结构 ![网络结构图](net.png) ## 环境配置 相关的系统与硬件配置如下: - Windows 10(本地)/ Ubuntu 18.04(远程) - Python 3.7 - CUDA 10.2 - Python依赖库在 requirements.txt 中列出 ## 数据集 使用 [DeepCAD](http://download.cs.stanford.edu/orion/Point2Cyl/data.tar.gz) 数据集。 ## 训练网络 运行以下代码进行训练: ``` python train_Point2Cyl_without_sketch.py --logdir=log/Point2Cyl_without_sketch/ --pred_seg --pred_normal --pred_bb --data_dir=data/ ``` ## 评估网络性能 运行以下代码评估网络性能: ``` # For Point2Cyl without sketches. python eval.py --logdir=results/Point2Cyl_without_sketch/ --dump_dir=dump/Point2Cyl_without_sketch/ --data_dir=data/ ``` ## 可视化 运行以下代码获得实验结果的可视化展示: ``` python visualizer.py --logdir=results/Point2Cyl --model_id=55838_a1513314_0000_1 --dump_dir=dump_55838_a1513314_0000_1 --output_dir=output_55838_a1513314_0000_1 --data_dir=data/ ``` ## 实验结果 ### 对样例点云的逆向工程 输入点云: ![输入](output_55838_a1513314_0000_1/screen1.png) 两个中间模型:
合并后的重建模型: 输出 ### 网络性能评估 Loss_bb_CE、Loss_normal:
Loss_segmentation_mIOU、Loss_total:
``` Model num evaluated= 1108 Mean mIOU= 0.7122877560999742 Mean normal angle error (degrees) = 8.99443913495928 Mean base/barrel accuracy= 0.91022687009956 Mean extrusion angle error (degrees) = 8.15877876485217 Mean centroid difference = 0.05875903186562811 Mean per-extrusion cylinder fitting loss= 0.06660981704766732 Mean global fitting loss= 0.031630549589314896 ``` ## 参考文献 1. [Uy M A, Chang Y Y, Sung M, et al. Point2Cyl: Reverse Engineering 3D Objects From Point Clouds to Extrusion Cylinders[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 11850-11860.](https://arxiv.org/abs/2112.09329)