Mask3D实例分割模型复现

基于Mask3D实现自制3D点云数据集的实例分割模型

1.数据集制作

参考S3DIS数据格式:

一级文件夹为Area_x(1-6)
二级文件夹 场景名:
	Annotations
		实例名1_1.txt
		实例名1_2.txt
		实例名2_1.txt
	场景名.txt

将场景拉入CloudCompare 进行对应的分割并按着上述格式进行制作

2.Mask3D实例分割模型的准备

GitHub - JonasSchult/Mask3D: Mask3D predicts accurate 3D semantic instances achieving state-of-the-art on ScanNet, ScanNet200, S3DIS and STPLS3D.

实验环境

根据readme.md文件命令搭建python的conda环境(注意点:注意命令行间的安装目录)

基于S3dis类型: 修改自身数据集

1.将自制数据集放于data文件夹下raw中

2:更改自身数据目录为s3dis 运行python -m datasets.preprocessing.s3dis_preprocessing preprocess \

会生成对于数据的yaml文件

运行前根据自身数据集更改代码中实例数,实例颜色数:

即代码中s3dis_presprocessing.py中的self.class_map self.color_map这两个数据集

在这里插入图片描述

训练模型

1.注意模型的参数:按需更改参数

save_visualizations:保存后续可视化

workspace:注意改成自己的wandb账号:

num_tagrget:修改成自身实例数+1

在这里插入图片描述

2训练脚本:
在这里插入图片描述

3成功运行:

在这里插入图片描述

可视化结果

保存结果位于save文件夹

cd该文件夹位置

使用python -m http.server 6008即可运行

化结果

保存结果位于save文件夹

cd该文件夹位置

使用python -m http.server 6008即可运行

之后就是提取分割点云
后面有时间再写

#####引用
Mask3D模型
CloudCompare

### 实例分割深度学习复现方法 实例分割是一种计算机视觉任务,旨在识别图像中的每个对象并为其提供像素级掩码。以下是基于PyTorch和TensorFlow实现实例分割的方法。 #### 使用PyTorch进行实例分割 Mask R-CNN 是一种流行的用于实例分割的算法,在 PyTorch 中可以通过 `torchvision` 库轻松实现。以下是一个简单的代码示例: ```python import torch from torchvision.models.detection import maskrcnn_resnet50_fpn, MaskRCNN_ResNet50_FPN_Weights # 加载预训练模型 weights = MaskRCNN_ResNet50_FPN_Weights.DEFAULT model = maskrcnn_resnet50_fpn(weights=weights) # 设置为评估模式 model.eval() # 假设输入图片已经转换为张量形式 input_tensor = ... # 图片张量 (C, H, W) with torch.no_grad(): prediction = model([input_tensor]) masks = prediction[0]['masks'] # 获取预测的掩码 scores = prediction[0]['scores'] # 获取置信度分数 labels = prediction[0]['labels'] # 获取类别标签 ``` 上述代码展示了如何加载预训练的 Mask R-CNN 模型,并对其进行推理[^1]。为了自定义数据集,可以继承 `torch.utils.data.Dataset` 类来创建自己的数据管道[^2]。 #### 使用TensorFlow进行实例分割 在 TensorFlow 中,同样可以利用官方提供的模型库(如 TF Models 或者 Tensorflow Hub)快速构建实例分割模型。下面是一段使用 TensorFlow 的例子: ```python import tensorflow as tf from object_detection.builders import model_builder from object_detection.utils import config_util # 载入配置文件路径 pipeline_config_path = 'path/to/pipeline.config' configs = config_util.get_configs_from_pipeline_file(pipeline_config_path) detection_model = model_builder.build(model_config=configs['model'], is_training=False) def load_image_into_numpy_array(path): img_data = tf.io.gfile.GFile(path, 'rb').read() image = tf.image.decode_jpeg(img_data, channels=3) return np.array(image) image_np = load_image_into_numpy_array('test.jpg') input_tensor = tf.convert_to_tensor(np.expand_dims(image_np, axis=0), dtype=tf.float32) detections = detection_model(input_tensor) ``` 此代码片段演示了如何加载一个预先配置好的检测模型并对单幅图像执行推断操作。对于特定的数据集适配,则需调整 `pipeline.config` 文件以匹配目标数据结构。 #### 环境搭建注意事项 无论是采用 PyTorch 还是 TensorFlow 来完成实例分割项目,都需要确保开发环境满足最低硬件需求及软件版本兼容性。例如,推荐使用的 GPU 配置应至少具备 RTX 2080Ti 同等级别的计算能力;操作系统建议选用稳定版 Linux 发行版如 Ubuntu 20.04 LTS;CUDA 和 cuDNN 版本也应当与所选框架相适应[^3]。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值