【点云检测】OpenPCDet 教程系列 [1] 安装 与 ROS运行

这篇具有很好参考价值的文章主要介绍了【点云检测】OpenPCDet 教程系列 [1] 安装 与 ROS运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言与参考

主要是介绍库的使用,做笔记区

首先搜索的时候有个问题 一直在我脑子里 hhh 就是MMlab其实还有一个叫mmdetection3d 的库,然后搜的时候发现 hhh 有网友和我一样的疑惑:OpenPCDet和mmdetection3d有什么区别 ? - 知乎 (zhihu.com)

这是OpenMMLab官方的回复:

OpenPCDet 和 mmdetection3d 是两个不同的团队开发和维护的。

从功能角度上讲,mmdet3d 支持的场景和任务更多(包含室内室外场景的物体检测和点云分割),各种模态设定更全面(多模态,以及点云或图像的单模态),总体支持的模型数量更多,覆盖面更广,可以适应不同用户多样的使用和研发需求。OpenPCDet 主要聚焦在基于点云的 3D 目标检测这一种设定上,代码结构相对简单轻量一些。从更新维护的频率上看,MMDet3D 的更新和维护更加频繁,保持了月度的版本更新。

作者:OpenMMLab

链接:https://www.zhihu.com/question/489303511/answer/2206147084

来源:知乎,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关ROS版本的代码参考:

  1. https://github.com/Cram3r95/OpenPCDet-ROS
  2. https://github.com/kwea123/ROS_notes

本博客还有一个视频手把手教程,主要是配合此博文同时教学Docker使用,毕竟不是所有人都想用20.04,视频比较基础 建议倍速播放:https://www.bilibili.com/video/BV1xe4y1j72q


这个系列主要是自己学习过程的记录,本文首次书写于: December 24, 2022 可能会随着时间的变化 此教程会有过时概念哦

测试环境

测试环境:

  • 本机环境:i9-12900KF, GPU 3090, CUDA 11.3
  • 本机系统:Ubuntu 20.04, ROS noetic (Python 3.8)
  • 使用的repo和对应的commit:
    • https://github.com/Kin-Zhang/OpenPCDet commit 977cd1c
    • https://github.com/Kin-Zhang/OpenPCDet_ros commit 7a39361

安装与运行

本机环境的话,建议使用测试环境,如果不想换系统,建议从**目录直接跳转Docker运行**

本机坏境下

数据集 (无ROS)

注意一定要先安装OpenPCDet 才能进行ROS 实时/BAG的显示哈

以下为 能运行的版本

git clone https://github.com/Kin-Zhang/OpenPCDet
cd OpenPCDet
# please install in your own env
pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install spconv-cu113
sudo apt-get install python-setuptools

# have some potential risks
sudo chown -R $USER /usr/local/lib/python3.8/
sudo chown -R $USER /usr/local/bin/
# have some potential risks

python3 setup.py develop

然后截图如下为成功安装:

openpcdet ros,点云检测,深度学习,python,人工智能

然后我们下载一个model 和 放一个kitti的一帧数据,运行demo.py即可看到效果:

cd tools
python3 demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml \
    --ckpt pv_rcnn_8369.pth \
    --data_path 000002.bin
openpcdet ros,点云检测,深度学习,python,人工智能

遇到的错误总结:

  1. pip install failing with: OSError: [Errno 13] Permission denied on directory, reference link

    给权限就行

    # have some potential risks
    sudo chown -R $USER /usr/local/lib/python3.8/
    sudo chown -R $USER /usr/local/bin/
    # have some potential risks
    
  2. CUDA版本必须和自己的本机安装的版本对应上,因为develop.py里会检查安装的pytorch版本、CUDA、spconv

    显卡驱动与CUDA安装:

    Ubuntu下的NVIDIA显卡【驱动&CUDA 安装与卸载】

  3. THC/THC.h: No such file or directory

    !!!Torch不能高于10.0,相关issue链接:https://github.com/open-mmlab/mmdetection3d/issues/1332,https://github.com/1ytic/warp-rnnt/issues/35

  4. RuntimeError: Python version >= 3.8 required.

    解决办法,使用py3.8

ROS 实时/BAG

注意:一定要根据上面先安装好OpenPCDet哈!并且是直接安装在系统默认的py38下的 这样才能和ROS链接起来,后面我放个Dockerfile 这样无论什么版本都能拿这个topic就行

结合参考内容自己进行了一点修改,主要是 以2的boundingbox为主 去掉1的一些没啥必要的依赖,代码地址为:https://github.com/Kin-Zhang/OpenPCDet_ros,依赖处理情况 基本就是有ROS即可,但是仅在ROS noetic测试了 因为noetic 默认的py3.8

我后面再好好重构一下,但是现在也是能用的 hhh 只是README 写的可能太简洁了,配合这个博文读会更好一些

实时跑的情况,就是数据在BAG里,理论上这个跑通了 也可以放在实际车上部署(只是py估计真用上产品实车肯定还是不太行的哈

openpcdet ros,点云检测,深度学习,python,人工智能

遇到的一些问题:

  1. glog print在ros_init后无法log使用,详情见:https://github.com/ros/ros_comm/issues/1384

后面有问题可以评论区留言 我再加进来

Docker container

首先是nvidia-docker的插件安装:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

Build 或者 pull image 选一个:

# choose one!
# option A: pull
docker pull zhangkin/openpcdet:ros
# option B: build by yourself
git clone https://github.com/Kin-Zhang/OpenPCDet_ros.git && cd OpenPCDet_ros
docker build -t zhangkin/openpcdet:ros .

run 一个容器:

# if you want to display open3d, check the reference for more info
xhost +local:docker
docker run -it --net=host --gpus all -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name pcdet_ros zhangkin/openpcdet:ros /bin/zsh

# if not, simple one
docker run -it --net=host --gpus all --name pcdet_ros zhangkin/openpcdet:ros /bin/zsh

编译OpenPCDet

cd OpenPCDet && python3 setup.py develop
# After screen print: Finished processing dependencies for pcdet==0.6.0

# Test step cp model and test pcd to container:
docker cp /home/kin/workspace/OpenPCDet/tools/pv_rcnn_8369.pth pcdet_ros:/home/kin/workspace/OpenPCDet/tools/
docker cp /home/kin/workspace/OpenPCDet/tools/000002.bin pcdet_ros:/home/kin/workspace/OpenPCDet/tools

# test demo
cd tools && python3 demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml \
    --ckpt pv_rcnn_8369.pth \
    --data_path 000002.bin

然后在直接走到ros版本

cd /home/kin/workspace/OpenPCDet_ws
catkin build && source devel/setup.zsh
roslaunch openpcdet 3d_object_detector.launch

如图为示意:

openpcdet ros,点云检测,深度学习,python,人工智能


赠人点赞 手有余香 😆;正向回馈 才能更好开放记录 hhh文章来源地址https://www.toymoban.com/news/detail-624541.html

到了这里,关于【点云检测】OpenPCDet 教程系列 [1] 安装 与 ROS运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Openpcdet 系列 Pointpillar代码逐行解析之POST_PROCESSING模块

    该模块主要负责对检测结果进行滤波、聚类、追踪等操作,以提高检测的准确性和稳定性。 POST_PROCESSING模块通常包含以下几个主要的子模块或步骤: 点云滤波(Point Cloud Filtering):这一步骤用于去除原始点云中的噪声和离群点,常用的滤波方法包括体素下采样(Voxel Downsam

    2024年02月03日
    浏览(61)
  • OpenPCDet系列 | 7.1 KITTI数据集测试流程predicted_boxes预测

    测试流程的结构图如下所示: generate_predicted_boxes函数 一开始的数据传入为: 首先对于各类预测的特征图进行重新reshape处理,将anchor那一维度进行拼接操作,比如:(16, 248, 216, 42) - (16, 321408, 7)。但是这里需要注意。 特征预测的box信息是基于anchor的一个偏移,也就是编码后的

    2024年02月06日
    浏览(38)
  • OpenPCDet安装、使用方式及自定义数据集训练

    个人博客 安装完,就可以运行 demo.py ,测试一下。(需要准备好模型和数据文件) 如果出现 SharedArray 相关的错误的话,可以适当的降低其版本。例如 pip install -U SharedArray==3.1 注意, demo.py 运行成功需要在具有显示设备的条件下,如果只有终端的话是无法运行成功的。 首先需

    2024年02月09日
    浏览(43)
  • 基于OpenPCDet实现自定义数据集的训练,狸花猫看完要打拳系列(一)!

      最近在学习如何基于 OpenPCDet框架进行PointPillars网络训练 ,由于对框架以及完整训练过程都不了解,因此打算记录下自己的学习过程,感谢学习过程中狸花猫sensei的大力支持,目标是实现自定义数据集(因为笔者 只有激光雷达的数据,仿照kitti格式进行标注 )的训练,然后

    2024年02月09日
    浏览(40)
  • Ubuntu 22.04从零开始安装Openpcdet 0.6.0——详细记录过程(含4090+CUDA11.8)

    A、云平台安装和本地安装的差异: 之前在几个 云平台 上的1w算力豆已经用光了,所以这次本地选择 本地安装Pcdet 。 两者安装过程 有很大差异,因为 九天毕昇云平台 使用的是CUDA10.1,且没办法改动,导致pcdet 只能安装0.3.2,且只能选择较低的版本的第三方库:torch1.6.0,sp

    2024年02月16日
    浏览(50)
  • OpenPCDet解析

    OpenPCDet: Open-MMLab 面向LiDAR点云表征的3D目标检测代码库 OpenPCDet的github链接 OpenPCDet 是一套基于 PyTorch 实现的 点云3D目标检测代码库 。 设计思想 : 点云数据集 (KITTI、NuScene、Lyft、Waymo、PandaSet等)在数据格式与3D坐标系上往往定义各不相同,各式各样的 点云感知算法 (point

    2024年02月04日
    浏览(38)
  • Openpcdet训练自己的数据集

    * Openpcdet详细内容请看以下链接: GitHub - open-mmlab/OpenPCDet: OpenPCDet Toolbox for LiDAR-based 3D Object Detection. 1.首先gitclone原文代码 2. 这里我建议自己按照作者github上的docs/install文件夹下指示一步步安装,(之前根据csdn上教程一直有报错),然后下载spconv,以及cumm, github链接如下: GitH

    2024年03月24日
    浏览(38)
  • PointPillars论文解析和OpenPCDet代码解析

            PointPillars是一个来自工业界的模型,整体思想基于图片的处理框架,直接将点云从俯视图的视角划分为一个个的Pillar(立方柱体),从而构成了类似 图片 的数据,然后在使用2D的检测框架进行特征提取和密集的框预测得到检测框,从而使得该模型在速度和精度都

    2024年01月19日
    浏览(45)
  • 基于ROS的自动驾驶 激光雷达点云物体检测 项目实战

    前言: 基于Apollo的preception与Autoware的lidar_apollo_cnn_seg_detect模块,并详细记录ROS系统上进行实时检测全部流程和踩坑,文章最后附上rosbag和rosbag的制作方法。参考文章:https://adamshan.blog.csdn.net/article/details/106157761?spm=1001.2014.3001.5502感谢大佬的杰作。 检测效果视频 环境 RTX 2060(

    2024年02月08日
    浏览(44)
  • 3D目标检测(一)—— 基于Point-Based方法的PointNet点云处理系列

    目录 3D目标检测(一)—— PointNet,PointNet++,PointNeXt, PointMLP 前言 零、网络使用算法 FPS最远点采样法 Ball-query球查询 一、PointNet 二、PointNet++ MSG-PointNet++ 三、PointNeXt 四、PointMLP 总结 在3D目标检测中,可以大致分为基于图像、基于点云和基于多模态融合的三种方法。而基于点

    2023年04月09日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包