0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

新机器视觉 来源:CSDN-hello689 2023-08-07 11:02 次阅读

00实验环境

·Ubuntu 16.04

·RTX 2080

·CUDA 10.1

01安装步骤

1.1 安装之前

1.1.1 验证cmake版本

cmake--version

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

1.1.2 验证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|grepCUDNN_MAJOR-A2##显示安装的cudnn版本

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

1.2 配置环境,安装需要的库

1.2.1 创建虚拟环境

创建虚拟环境

1.2.2 进入该虚拟环境

condaactivateopenpcdet

1.2.3 安装pytorch

注:安装的是gpu版本,安装之后可以测试一下,torch是否能调用cuda。

安装命令,建议去官网复制粘贴,不容易出现cuda和torch版本不匹配的问题。我没有换源,直接用下边的命令行,下载安装也非常快。

1.2.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
pipinstallspconv-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
pipinstall-e.
cuda版本对应的spconv版本:

e472b3cc-32c9-11ee-9e74-dac502259ad0.png

验证是否安装成功:

python
importspconv
1.3 安装OpenPCDet

命令:

gitclonehttps://ghproxy.com/https://github.com/open-mmlab/OpenPCDet.git
cdOpenPCDet
pipinstall-rrequirements.txt
pythonsetup.pydevelop

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

验证pcdet是否安装成功:

python
importpcdet
02可视化部分

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

2.1 安装可视化库

首先需要安装可视化的库,mayavi或者open3d两者都可以,可以安装其中一个,也可以两个都安装。

我在安装mayavi的时候一直有问题,转而安装open3d,下边以open3d为例。

因为新版本不支持ubuntu16.04,所以我这里是指定的open3d版本号,这里要感谢这篇博客,之前没有考虑到open3d的版本选择跟ubuntu的版本号也有关系。

如果不是ubuntu18.04及以上版本,open3d的版本就可以高一些了。

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

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

验证open3d是否安装成功:

python
importopen3d

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

tools/demo.py文件中,优先使用的是open3d,如下图所示,如果想要用mayavi这个库的话,需要把try部分删了,只用except里边的部分。

e48c2e10-32c9-11ee-9e74-dac502259ad0.png

2.2 测试

从官方下载,想要测试的网络模型。

e49bf2e6-32c9-11ee-9e74-dac502259ad0.png

将训练模型和测试的点云数据放在合适的位置,执行下边的命令。

python3 demo.py
 --cfg_file cfgs / kitti_models / pointpillars.yaml 
  --ckpt pointpillars.pth 
--data_path${POINT_CLOUD_DATA}
我用的数据是kitti数据集中的000000.bin,选用pointpillars来进行测试;

测试结果:

e4f6d8be-32c9-11ee-9e74-dac502259ad0.png

03问题汇总

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

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

pip install vtk==8.1.2 # 自动安装的vtk是9,会产生冲突
pip install mayavi==4.7.3
pipinstallPyQt5
报错信息:
AttributeError:typeobject'DialogCode'hasnoattribute'Accepted'
这个问题,我一直没解决,网上很多方法,在我的机子上都解决不了。

3.2 Open3d的问题:

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

情况一:

AttributeError:'open3d.geometry.PointCloud()'objecthasnoattribute'voxel_down_sample'

情况二:

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

e5055510-32c9-11ee-9e74-dac502259ad0.png

我在第二个问题上卡了一段时间,明明版本什么都对了呀,为啥运行demo.py的时候还是出错。

另外,因为我之前安装过open3d,所以在~/.local中有一个版本错误的open3d,在运行demo程序的时候,需要加上-s,-s可以让Python不去查找用户目录中的库。

python-sdemo.py

如何运行python而不在其模块搜索路径中包含~/.local/lib/pythonX.Y/sitepackages

3.3 运行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 2126,628  INFO -----------------Quick Demo of OpenPCDet-------------------------
2022-03-06 2126,628  INFO Total number of samples:    1
/home/auto/anaconda3/envs/pcdet/lib/python3.7/site-packages/torch/functional.py 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 2129,122  INFO ==> Loading parameters from checkpoint pv_rcnn_8369.pth to CPU
2022-03-06 2129,154  INFO ==> Done (loaded 367/367)
2022-03-06 2129,300  INFO Visualized sample index:    1
段错误 (核心已转储)

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 命令
    +关注

    关注

    5

    文章

    683

    浏览量

    22011
  • Ubuntu
    +关注

    关注

    5

    文章

    563

    浏览量

    29703
  • 虚拟环境
    +关注

    关注

    0

    文章

    27

    浏览量

    8930
  • pytorch
    +关注

    关注

    2

    文章

    807

    浏览量

    13198
收藏 人收藏

    评论

    相关推荐

    如何快速高效的完成汽车前盖板的三维检测

    如何快速高效的完成汽车前盖板的三维检测?行业背景汽车的前盖板在生产出来后往往因为焊接和零件的误差难以装配,检测便成了生产和安装两个环节之间的重要步骤。缩短检测时间提高
    发表于 08-11 14:16

    【NanoPi Duo开发板试用体验】基于友善臂的三维扫描仪-汇总帖-结项报告

    路由器、机顶盒到航模控制器、三维扫描仪、智能家居中心,五花八门一应俱全。如下为基于友善臂的三维扫描仪,从友善臂NanoPi Duo开发板的搭建到整台
    发表于 12-16 16:23

    广西扫描服务三维检测三维扫描仪

    HandyPRO,便携式专业级Academia三维扫描仪。搭载完全集成的三维软件平台VXelements,将所有基本因素和工具都融入到一个简便且流畅的工作环境中。并带有扫描至CAD软件模块、尺寸
    发表于 08-29 14:42

    三维设计应用案例

    CAD是目前工业制造产品设计的重要软件之一,广泛应用于机械、建筑等领域。而常用的CAD软件,也就是所谓的三维制图软件,较二的图纸和二的绘图软件,三维CAD软件能够更加直观、准确地反
    发表于 07-03 07:06

    MetraSCAN三维扫描仪对汽车钣金件三维扫描检测解决方案

    都比较困难2. 刚性差,检测过程中易因形变引起误差3. 通常要将汽车覆盖件的尺寸基准置于车身坐标系中来处理所以,采用非接触的MetraSCANSAOMIAO3D,CN手持式三维扫描仪进行检测,就能规避
    发表于 07-15 10:48

    Handyscan汽车三维扫描服务尺寸检测的应用

    `Handyscan汽车三维扫描服务尺寸检测的应用 汽车发动机连杆是将活塞和曲轴连接起来,作为汽车发动机关键传动机构的一部分,将作用于活塞顶部的膨胀气体压力传给曲轴,使活塞的往复直线运动可逆地转
    发表于 08-04 16:07

    三维立体数字沙盘是是什么?

    `  那什么是三维立体数字沙盘呢?三维立体数字沙盘又叫三维数字沙盘、立体数字沙盘,是利用三维技术、地理遥控技术、虚拟现实技术、触控技术等实现的。在计算机中建立一个虚拟
    发表于 08-28 14:40

    三维可视化的应用和优势

    ,为此三维可视化运维系统登场了。  三维可视化的应用  宏观场景可视化:在特定的环境中对随着时间推移而不断变化的目标实体进行检测,可以直观、
    发表于 12-02 11:52

    如何导入机械臂的三维模型

    目的   本文手把手教你如何在 Mathematica 软件中搭建机械臂的三维仿真环境,包括以下几部分:   1. 如何导入机械臂的三维模型;   2. 如何进行(正/逆)运动学仿真;   3.
    发表于 09-07 09:25

    港中文和商汤研究员提出高效的三维点云目标检测​新框架

    与二图像中会相互遮挡的物体不同,三维点云中的物体都是天然分离的,使得三维目标内部各个部分的相对位置可以精确获取,这些方法将有效提高目标
    的头像 发表于 08-02 14:18 3513次阅读
    港中文和商汤研究员提出高效的<b class='flag-5'>三维</b>点云<b class='flag-5'>目标</b><b class='flag-5'>检测</b>​新框架

    手持式三维扫描仪对工业三维检测铸造模具冲压模具三维激光扫描与检测

    手持式三维扫描仪 对 工业三维检测应用 手持式三维扫描设备 因其灵巧,便携,高精度的特点,不受工厂复杂环境的影响,既能满足其
    发表于 04-10 09:52 1608次阅读

    手持式三维扫描仪对工业三维检测应用铸造模具冲压模具三维扫描与检测

    手持式三维扫描仪对工业三维检测应用 手持式三维扫描设备因其灵巧,便携,高精度的特点,不受工厂复杂环境的影响,既能满足其
    发表于 04-20 09:38 1801次阅读

    基于激光雷达点云的三维目标检测算法

    文中提出了一种基于激光雷达点云的三维目标检测算法 Voxeircnn( Voxelization Region-based Convolutional Neural Networks),该算
    发表于 05-08 16:35 45次下载

    基于多视角融合的夜间无人车三维目标检测

    基于多视角融合的夜间无人车三维目标检测 来源:《应用光学》,作者王宇岚等 摘 要:为了提高无人车在夜间情况下对周围环境的物体识别能力,提出一种基于多视角通道融合网络的无人车夜间
    发表于 01-23 15:15 821次阅读

    智慧城市_实景三维|物业楼三维扫描案例分享_泰来三维

    三维激光扫描技术是近年来发展的新型测量方法,通过三维扫描获取大量全面点云数据,形成三维立体模型,实现快速掌握被测目标信息。
    的头像 发表于 05-16 13:56 1045次阅读
    智慧城市_实景<b class='flag-5'>三维</b>|物业楼<b class='flag-5'>三维</b>扫描案例分享_泰来<b class='flag-5'>三维</b>