Pointnet++分类和分割数据集准备和实验复现

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设置如下:

image-20240328194431635

打开后,这是10000个点的点云

image-20240328194514584

cloudcompare可视化

用cloudcompare打开

image-20240328194735957 image-20240328194703219

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_msg

python3 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文件夹,里面保存了日志文件和网络参数

训练结果

image-20240328202118499

因为时间关系,我只测试了3个epoch,用小的batch-size可能会导致accuracy降低,

以下是官方测试结果

image-20240328201247320

测试命令

python3 test_classification.py --use_normals --log_dir pointnet2_cls_msg

测试结果

image-20240328202257655

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

image-20240328204943595

meshlab无法打开以上数据格式,用

cloudcompare打开

image-20240328205134165 image-20240328205350724

能看到红绿蓝三种颜色

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

image-20240329192514645

训练结果

image-20240329192639146

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/ .

image-20240329194553887

处理后的数据是npy,产生这样的文件后

image-20240329194324025

这个训练任务需要很高的显存,这里就不做了

执行训练命令

Check model in ./models

E.g. pointnet2_ssg

python 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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-02 08:50:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-02 08:50:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-02 08:50:01       82 阅读
  4. Python语言-面向对象

    2024-04-02 08:50:01       91 阅读

热门阅读

  1. 分布式机房运维管理解决方案

    2024-04-02 08:50:01       35 阅读
  2. 32-5 XXE漏洞 - xml数据格式

    2024-04-02 08:50:01       38 阅读
  3. 机器视觉系统-分辨率、信噪比、动态范围

    2024-04-02 08:50:01       35 阅读
  4. 6-88 Print the right subtree of X in BST

    2024-04-02 08:50:01       32 阅读
  5. 如何重置woocommerce,如何批量删除woocommerce产品

    2024-04-02 08:50:01       38 阅读
  6. StarRocks部署

    2024-04-02 08:50:01       32 阅读
  7. WPF —— 动画

    2024-04-02 08:50:01       39 阅读