PointPainting 复现

本文档详细介绍了PointPainting的复现过程,包括创建虚拟环境,安装OpenPCDet、mmsegmentation和Hierarchical Multi-Scale Attention模块。在下载数据集后,分别使用DeepLab V3+和HMA进行点云语义分割,然后进行雷达点云训练。遇到的常见错误和解决方法也在文中提及,最后讨论了可视化阶段的步骤和可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、下载源码库

下载链接:pointpainting下载

二、安装依赖库

2.1 创建虚拟环境

conda create -n pp python=3.7  # 创建python3.7环境
conda activate pp # 激活环境
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio=0.7.0 cudatoolkit=10.2 -c pytorch
#必要时需要升高torch版本
#pip install torch==1.8.1+cu102 torchvision==0.9.1+cu102 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

2.2 安装OpenPCDet

OpenPCDet 是一个开源的 LiDAR 检测框架。 它支持许多流行的数据集,如 Kitti、Nuscenes 等。我们使用 OpenPCDet 作为 LiDAR 检测器。 要安装 OpenPCDet,请先安装它的requirements。 作者修改了 OpenPCDet 的某些部分(包括数据集加载器和训练配置)以支持绘制的 Kitti 数据集,您可以直接在./detector 中使用修改后的版本。 作者给出的运行命令为:

cd PointPainting/detector
python setup.py develop

但是openpcdet的依赖配置很复杂,尤其涉及点云卷积库spconv的部分,因此可以参考:

OpenPCDet安装及其3D检测算法实现

2.3 安装mmsegmentation

对于基于图像的语义分割,我们使用mmsegmentation (OpenLab V3+) 。 要安装此软件包,mmcv与cuda、pytorch版本兼容有要求,因此您可能需要在安装 mmcv-full时更改地址以匹配您的 torch 和 CUDA 版本(https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html),若此链接中没有自己对应的版本,就参考备注(2)中的网址选择具体命令进行安装。

pip install terminaltables
pip install mmcv-full -f https://download.openmmlab
VTK (Visualization Toolkit) 是一个强大的开源库,用于创建、处理和可视化科学数据。要在 VTK 中绘制凹多边形平面,首先你需要了解一些基本的概念: 1. **PolyData**: 这是 VTK 中的数据结构,用于存储几何形状,包括点、线、面等。你可以通过 `vtkPolyData` 或 `vtkUnstructuredGrid` 类来表示你的凹多边形。 2. **创建凹多边形**: 使用 VTK 的几何构造函数,如 `vtkPolygon` 或 `vtkCellArray`,可以创建凹多边形的顶点列表。例如,如果你有一个包含五个顶点的凹五边形,你可能需要构建一个包含这些点的数组。 ```cpp vtkPoints* points = vtkSmartPointer<vtkPoints>::New(); points->InsertNextPoint(x1, y1, z1); // 第一个顶点 // 添加其他四个顶点 vtkCellArray* cells = vtkSmartPointer<vtkCellArray>::New(); cells->InsertNextCell(5, points->GetIds()); // 五边形的五个顶点 ``` 3. **创建PolyData对象**: 将顶点和细胞信息组合在一起形成 `vtkPolyData` 对象。 ```cpp vtkPolyData* polyData = vtkSmartPointer<vtkPolyData>::New(); polyData->SetPoints(points); polyData->SetPolys(cells); ``` 4. **绘图**: 最后,你可以使用 `vtkActor` 和 `vtkRenderer` 来渲染你的 `polyData`,并将其添加到场景中。 ```cpp vtkActor* actor = vtkSmartPointer<vtkActor>::New(); actor->SetMapper(vtkSmartPointer<vtkDataSetMapper>::New()); actor->SetInputData(polyData); vtkRenderWindow* renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(vtkSmartPointer<vtkRenderer>::New()); renderer->AddActor(actor); renderWindow->Render(); ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值