图文型官网站,涂鸦智能深圳分公司,贵阳品牌网站建设公司,廊坊网站建设解决方案5.分类数据集Modelnet40及可视化
Modelnet40分类数据集
原始的modelnet40是off文件#xff0c;是cad模型
OFF文件是一种用于存储三维对象信息的文件格式#xff0c;全称为Object File Format。它主要用于存储几何体的顶点、边和面信息#xff0c;以及可能的颜…5.分类数据集Modelnet40及可视化
Modelnet40分类数据集
原始的modelnet40是off文件是cad模型
OFF文件是一种用于存储三维对象信息的文件格式全称为Object File Format。它主要用于存储几何体的顶点、边和面信息以及可能的颜色和纹理数据从而描述了一个或多个三维模型的结构。OFF文件格式因其简洁明了的结构而被广泛用于学术研究和三维图形应用中特别是在计算机图形学、三维建模和可视化领域。
OFF文件的结构相对简单通常以OFF作为文件的开头随后是顶点vertices、面faces和可选的边edges的数量。之后的部分包含了每个顶点的坐标通常是X、Y、Z三维坐标以及每个面的信息包括组成该面的顶点数和这些顶点在文件中的索引。面的部分还可以包含颜色信息。
一个简单的OFF文件示例如下
OFF
# 顶点数 面数 边数
8 6 0
# 顶点坐标列表
-0.5 -0.5 0.5
0.5 -0.5 0.5
0.5 0.5 0.5
-0.5 0.5 0.5
-0.5 -0.5 -0.5
0.5 -0.5 -0.5
0.5 0.5 -0.5
-0.5 0.5 -0.5
# 面的列表每个面的第一个数字是该面的顶点数后面是顶点的索引
4 0 1 2 3
4 7 6 5 4
4 0 4 5 1
4 1 5 6 2
4 2 6 7 3
4 3 7 4 0这个示例描述了一个立方体其中包括8个顶点和6个面。OFF格式的一个重要特点是其灵活性和简单性它允许快速读写三维几何数据而无需处理复杂的文件结构或解析算法。
ModelNet40是一个广泛使用的三维物体识别和分类的标准数据集。它由普林斯顿大学的研究小组创建旨在促进三维形状识别和检索领域的研究。ModelNet40包含了从网络上收集的各种三维CAD模型这些模型代表了40个不同的类别如桌子、椅子、飞机、植物等。总共包括12311个模型其中有9843个用于训练而剩下的2468个用于测试。
ModelNet40的三维模型主要以网格的形式提供每个模型都是由一系列顶点和构成表面的多边形通常是三角形组成的。这些三维模型被用来训练和测试计算机视觉算法特别是深度学习模型以实现对三维形状的自动识别和分类。
使用ModelNet40数据集的研究可以帮助改进三维对象的自动识别技术这对于机器人视觉、自动驾驶汽车、增强现实和许多其他应用都非常重要。数据集的设计旨在提供足够的多样性以确保算法可以学习到从基本几何形状到复杂物体结构的广泛特征。
ModelNet40数据集的发布促进了三维计算机视觉领域的研究和发展许多先进的模型和算法如PointNet和PointNet都是在这个数据集上进行训练和评估的显示出了在处理三维数据方面的突出能力。
meshlab可视化
我们使用的txt文件是经过采样的meshlab设置如下 打开后这是10000个点的点云 cloudcompare可视化
用cloudcompare打开 6.Pointnet形状分类训练和测试
百度网盘下载链接: 链接https://pan.baidu.com/s/15hYqo3leOFXBKekFq561_w 提取码thek 从百度网盘下载modelnet40分类数据集文件modelnet40_normal_resampled.zip并放置到data目录下 解压后产生文件夹data/modelnet40_normal_resampled
训练命令
训练时可选择不同的model
##Check model in ./models##E.g. pointnet2_msgpython3 train_classification.py --model pointnet2_cls_msg --use_normals --log_dir pointnet2_cls_msg 如有显存溢出情况如 RuntimeError: CUDA out of memory. Tried to allocate 1.41 GiB (GPU 0; 11.91 GiB total capacity; 9.99 GiB already allocated; 999.81 MiB free; 104.72 MiB cached) 训练命令改为
python3 train_classification.py --model pointnet2_cls_msg --use_normals --log_dir pointnet2_cls_msg --batch_size 8训练完会自动生成log文件夹里面保存了日志文件和网络参数
训练结果 因为时间关系我只测试了3个epoch用小的batch-size可能会导致accuracy降低
以下是官方测试结果 测试命令
python3 test_classification.py --use_normals --log_dir pointnet2_cls_msg测试结果 7.物体部件分割数据集ShapeNet及可视化
数据准备(Data Preparation) 数据集Preprocessed ShapeNetPart dataset (XYZ, normal and part labels) 从百度网盘下载shapenetcore_partanno_segmentation_benchmark_v0_normal.zip并解压到 data/shapenetcore_partanno_segmentation_benchmark_v0_normal
文件格式
X Y Z Nx Ny Nz Scalar meshlab无法打开以上数据格式用
cloudcompare打开 能看到红绿蓝三种颜色
8.PointNet物体部件分割训练
Run
## Check model in ./models
## e.g., pointnet2_msg
python train_partseg.py --model pointnet2_part_seg_msg --normal --log_dir pointnet2_part_seg_msg
python test_partseg.py --normal --log_dir pointnet2_part_seg_msg训练结果 9.场景语义分割(Semantic Segmentation)任务
数据准备Data Preparation
下载3D indoor parsing dataset (S3DIS)数据集Stanford3dDataset_v1.2_Aligned_Version.zip并解压 到 data/s3dis/Stanford3dDataset_v1.2_Aligned_Version/ .
cd data_utils
python collect_indoor3d_data.py处理后的数据被保存在 data/stanford_indoor3d/ . 处理后的数据是npy产生这样的文件后 这个训练任务需要很高的显存这里就不做了
执行训练命令
Check model in ./modelsE.g. pointnet2_ssgpython train_semseg.py --model pointnet2_sem_seg --test_area 5 --log_dir
pointnet2_sem_seg可视化结果保存在 log/sem_seg/pointnet2_sem_seg/visual/ 这些.obj文件可以用MashLab软件 可视化。 执行测试命令
python test_semseg.py --log_dir pointnet2_sem_seg --test_area 5 --visual