三维目标检测之OpenPCDet环境配置及demo测试

这篇具有很好参考价值的文章主要介绍了三维目标检测之OpenPCDet环境配置及demo测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

很久没写过关于环境配置的博客了,这次实在是因为,自己在是在OpenPCDet环境的配置上遇到坑了。一环扣一环,由于我的实验环境是ubuntu16.04,跟网上大多数教程环境不一样,所以遇到了很多版本不匹配问题。

实验环境

  • Ubuntu 16.04
  • RTX 2080
  • CUDA 10.1

一、安装步骤

1. 安装之前

  • 验证cmake版本

    cmake --version
    

    cmake版本要大于等于1.13,不然后边的库的setup过程会报错。不要看网上的博客盲目执行pip install cmake或者apt-get autoremove cmake,这样会导致出一些额外的错误。我参考的是这篇博客进行cmake的升级。

  • 验证cuda和cudnn是否安装好了
      先说一下我遇到的问题,因为这次的机子是我接手别人的,里边看似是cuda和cudnn都配置好了,但是后边运行的时候还是过不去。
      nvcc -V和nvidia-smi两个命令显示的cuda是不一致的,这个问题不大。主要看nvcc -V这条命令显示的cuda版本。nvidia-smi所显示的cuda是,这个台机器安装驱动所能带动的最大cuda版本,nvcc -V显示的cuda版本才是运行是的版本。一般来说nvidia-smi所显示的版本要高一些。但是,我这台机器nvcc -V所显示是10.2,nvidia-smi所显示的是10.1,本着能不改驱动就不改驱动的原则(担心ubuntu的黑屏),我把~/bashrc中的环境变量改成了10.1版本的。

    nvcc -V # 显示安装的cuda版本
    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 ## 显示安装的cudnn版本
    

    参考资料:
    Ubuntu18.04+CUDA10.1+CUDNN7.6.5安装

  • 下边所有库安装好之后,最好验证一下是否安装成功,成功后,再进行下一步,否则后边容易出错,且难定位。

2. 配置环境,安装需要的库

  1. 创建虚拟环境
    conda create -n openpcdet python=3.7
    
  2. 进入该虚拟环境
    conda activate openpcdet
    
  3. 安装pytorch
    :安装的是gpu版本,安装之后可以测试一下,torch是否能调用cuda。
    安装命令,建议去官网复制粘贴,不容易出现cuda和torch版本不匹配的问题。我没有换源,直接用下边的命令行,下载安装也非常快。
    pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
    
  4. 安装spconv
      这一步比较容易出现问题。目前spconv出了2.0以上版本,而spconv2.只支持cuda10.2以上版本,如果cuda版本合适,直接运行pip安装即可,像我的系统安装的是cuda10.1,只能老老实实下载原始的版本。
    找个文件夹,开始安装spconv1.2:
    #安装libboost
    sudo apt-get install libboost-all-dev
    # 下载spconv,并切换分支
    git clone -b v1.2.1 https://ghproxy.com/https://github.com/traveller59/spconv.git
    cd spconv
    # spconv项目中的third_party对应的目录中有三个文件夹是空的,删除了就行;
    #下载pybind11这个包替换掉空文件,并把pybind11放入
    cd third_party
    git clone https://ghproxy.com/https://github.com/pybind/pybind11
    cd .. #退回
    python3 setup.py bdist_wheel
    #如setup.py这一步报错,可能需要你删掉build/ dist/ spconv.egg-info/,这几个文件夹之后再编译
    cd ./dist
    pip install spconv-1.2.1-cp37-cp37m-linux_x86_64.whl# 先检查一下dist里边的文件,有可能是空的
    
    
    如果你所用的机子,可以安装spconv2.x:
    方法一(pip安装):
    pip install spconv-cu102 -i https://pypi.tuna.tsinghua.edu.cn/simple
    方法二(源码安装):
    #cumm安装
    git clone https://ghproxy.com/https://github.com/FindDefinition/cumm
    cd ./cumm
    pip install -e .
    
    #spconv安装
    git clone https://ghproxy.com/https://github.com/traveller59/spconv
    cd ./spconv
    pip install -e .
    
    cuda版本对应的spconv版本:
    三维目标检测之OpenPCDet环境配置及demo测试
    验证是否安装成功:
    python
    import spconv
    
    参考资料:
    spconv1.2.1安装指南
    python ~/.local/lib

3. 安装OpenPCDet

命令:

git clone https://ghproxy.com/https://github.com/open-mmlab/OpenPCDet.git
cd OpenPCDet
pip install -r requirements.txt 
python setup.py develop 

:numpy库不能太低,我的默认安装了1.16.0版本,后边报错信息不会直接显示numpy版本过低,而是显示No Module xxx,很难看出是numpy版本的问题。

验证pcdet是否安装成功:

python 
import pcdet

参考资料
- OpenPCDet安装
- openpcdet环境配置
- 安装 open-mmlab /OpenPCDet并测试demo
- OpenPCDet v0.5版本的安装与测试

二、可视化部分

ros下的可视化,可以参考我另写的一篇博客。三维目标检测之ROS可视化

1. 安装可视化库

  首先需要安装可视化的库,mayavi或者open3d两者都可以,可以安装其中一个,也可以两个都安装,我在安装mayavi的时候一直有问题,转而安装open3d,下边以open3d为例
  因为新版本不支持ubuntu16.04,所以我这里是指定的open3d版本号,这里要感谢这篇博客,之前没有考虑到open3d的版本选择跟ubuntu的版本号也有关系。如果不是ubuntu18.04及以上版本,open3d的版本就可以高一些了。

conda install -c open3d-admin open3d==0.9.0
pip install open3d-python

:open3d的安装用conda来安装,pip安装一直会出问题。

验证open3d是否安装成功:

python
import open3d

如果有错误,可以到文中的第三部分(问题汇总),查看原因,可能是open3d版本不对,也可能是调用了~/.local中的open3d库。
参考资料:

  • Open3D版本和Ubuntu的关系
  • Ubuntu 16.04 安装 open3d

tools/demo.py文件中,优先使用的是open3d,如下图所示,如果想要用mayavi这个库的话,需要把try部分删了,只用except里边的部分。
三维目标检测之OpenPCDet环境配置及demo测试

2. 测试

从官方下载,想要测试的网络模型。
三维目标检测之OpenPCDet环境配置及demo测试
训练模型和测试的点云数据放在合适的位置,执行下边的命令。

python3 demo.py --cfg_file cfgs / kitti_models / pointpillars.yaml \
    --ckpt pointpillars.pth \
    --data_path $ {POINT_CLOUD_DATA}

我用的数据是kitti数据集中的000000.bin,选用pointpillars来进行测试;
测试结果:
三维目标检测之OpenPCDet环境配置及demo测试三维目标检测之OpenPCDet环境配置及demo测试参考资料:
PointPillars点云检测在OpenPCDet推理代码详解

三、问题汇总

mayavi的问题:python3.8安装mayavi4.7.3

安装的顺序,安装的版本都有一定的要求,这几个的先后编译顺序不能颠倒。

pip install vtk==8.1.2 # 自动安装的vtk是9,会产生冲突
pip install mayavi==4.7.3
pip install PyQt5

报错信息

AttributeError: type object 'DialogCode' has no attribute 'Accepted'

这个问题,我一直没解决,网上很多方法,在我的机子上都解决不了。
参考资料:

  • python3.8安装mayavi4.7.3
  • Conda安装mayavi
  • python安装mayavi后报错AttributeError

Open3d的问题:

如果遇到类似下边的情况,大概率为open3d版本问题导致。
情况一:

AttributeError: 'open3d.geometry.PointCloud()' object has no attribute 'voxel_down_sample'

情况二:

ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /home/xxxx/xxxx/lib/python3.7/site-packages/open3d/open3d_pybind.cpython-37m-x86_64-linux-gnu.so)

三维目标检测之OpenPCDet环境配置及demo测试我在第二个问题上卡了一段时间,明明版本什么都对了呀,为啥运行demo.py的时候还是出错。
另外,因为我之前安装过open3d,所以在~/.local中有一个版本错误的open3d,在运行demo程序的时候,需要加上-s,-s可以让Python不去查找用户目录中的库。

python -s demo.py

参考资料:

  • open3d环境错误汇总
  • 如何运行python而不在其模块搜索路径中包含~/.local/lib/pythonX.Y/sitepackages

运行demo时出错

情况一:段错误(核心已转储)

(pcdet) auto@auto-System-Product-Name:~/OpenPCDet/tools$ python demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --ckpt pv_rcnn_8369.pth --data_path ../data/kitti/testing/velodyne/000008.bin 
2022-03-06 21:32:26,628   INFO  -----------------Quick Demo of OpenPCDet-------------------------
2022-03-06 21:32:26,628   INFO  Total number of samples:        1
/home/auto/anaconda3/envs/pcdet/lib/python3.7/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at  ../aten/src/ATen/native/TensorShape.cpp:2157.)
  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]
2022-03-06 21:32:29,122   INFO  ==> Loading parameters from checkpoint pv_rcnn_8369.pth to CPU
2022-03-06 21:32:29,154   INFO  ==> Done (loaded 367/367)
2022-03-06 21:32:29,300   INFO  Visualized sample index:        1
段错误 (核心已转储)

参考资料:文章来源地址https://www.toymoban.com/news/detail-414005.html

  • 段错误(核心已转储)——运行PV-RCNN代码 python demo.py

到了这里,关于三维目标检测之OpenPCDet环境配置及demo测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/132826197 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中… 上一篇:《RK3568开发笔记(七):

    2024年02月07日
    浏览(132)
  • 目标检测与跟踪 (2)- YOLO V8配置与测试

    第一章 目标检测与跟踪 (1)- 机器人视觉与YOLO V8 目标检测与跟踪 (1)- 机器人视觉与YOLO V8_Techblog of HaoWANG的博客-CSDN博客 3D物体实时检测、三维目标识别、6D位姿估计一直是机器人视觉领域的核心研究课题,最新的研究成果也广泛应用于工业信息化领域的方方面面。通过众

    2024年02月14日
    浏览(37)
  • 【计算机视觉 | 目标检测】RegionCLIP的环境部署和代码测试(含源代码)

    RegionCLIP: Region-based Language-Image Pretraining This is the official PyTorch implementation of RegionCLIP (CVPR 2022). 我们提出 RegionCLIP,它显著扩展了 CLIP 以学习区域级视觉表示。 RegionCLIP 支持图像区域和文本概念之间的细粒度对齐,从而支持基于区域的推理任务,包括零样本对象检测和开放词汇

    2024年01月15日
    浏览(50)
  • 【三维目标检测】CenterPoint(一)

    本文为博主原创文章,未经博主允许不得转载。 本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。         CenterPoint是一种anchor free的三维目标检测算法模型,发表在CVPR 2021,论文名称为《Center-based 3D Objec

    2024年02月08日
    浏览(40)
  • 【三维目标检测】3DSSD(一)

    本文为博主原创文章,未经博主允许不得转载。 本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。         3DSSD三维目标检测模型发表在CVPR2020《3DSSD: Point-based 3D Single Stage Object Detector》。目前,基于体素的

    2023年04月10日
    浏览(27)
  • 【计算机视觉 | 目标检测】Grounding DINO 深度学习环境的配置(含案例)

    “ Grounding DINO:Marrying DINO with Grounded Pre-Training for Open-Set Object Detection ”的官方 PyTorch 实现: SoTA 开放集对象检测器。 论文地址: 在 YouTube 上观看介绍视频: Try the Colab Demo: Try Official Huggingface Demo: Grounded-SAM: Marrying Grounding DINO with Segment Anything Grounding DINO with Stable Diffusion

    2024年02月07日
    浏览(77)
  • 三维目标检测之ROS可视化

    实验室有一个镭神C16的激光雷达,最近在我这,想拿来玩一玩。本意是做一个实时的检测,通过ROS获取激光雷达的激光点云,用pointpillars模型来进行实时的三维目标检测任务。但是镭神c16这一个激光雷达,不太好处理,目前只能用自带的驱动,进行一个实时的显示。所以下边

    2024年01月19日
    浏览(43)
  • 【三维目标检测】FCAF3D(一)

    本文为博主原创文章,未经博主允许不得转载。 本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。         FCAF3D是一种anchor-free的全卷积室内三维目标检测算法,由三星公司发表在ECCV 2022 《FCAF3D: Fully Convo

    2024年02月07日
    浏览(47)
  • 【三维目标检测】FCAF3D(二)

    本文为博主原创文章,未经博主允许不得转载。 本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。         FCAF3D数据和源码配置调试过程请参考上一篇博文:【三维目标检测】FCAF3D(一)_Coding的叶子的博客

    2024年02月06日
    浏览(37)
  • MONAI 3D目标检测官方demo实践与理解(二)模型理解

    在上一节介绍了MONAI的3D目标检测案例,以及如何运行训练代码。 MONAI 3D目标检测官方demo实践与理解(一)项目搭建,训练部分的运行 本篇主要是对该项目的模型进行理解 该部分代码如下: 主要作用是根据图像每个像素点生成不同尺寸和大小的anchor 对于anchor的理解推荐阅读

    2024年02月20日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包