mmdetection3d框架安装与Demo模型运行--基于Ubuntu18.04+Cuda10.1

news/2024/11/8 17:33:47/

1.NVIDIA Driver和Cuda安装

在Ubuntu18.04机器上安装好NVIDIA Driver4.18和CUDA10.1,版本号分别为4.18和10.1

查看NVIDIA Driver版本号:nvidia-smi

查看CUDA版本号:nvcc -V

2.安装MiniConda,并创建和管理虚拟环境

2.1 安装MiniConda,官网:Miniconda — conda documentation

2.2 创建名为openmmlab虚拟环境

conda create --name openmmlab python=3.8 -y

2.3 激活并进入该虚拟环境

conda activate openmmlab

3.安装与CUDA版本号匹配的pytorch,这里安装的是1.8.1

#CUDA 10.1

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

与具体CUDA版本号对应匹配的pytorch可查询如下页面:

Previous PyTorch Versions | PyTorch

安装过程与结果:

4.安装openmim

pip install openmim -i Simple Index

安装过程与结果: 

5.安装mmcv-full

mim install mmcv-full -i Simple Index

安装过程与结果:

6.安装mmdet

mim install mmdet -i Simple Index

7. 安装mmsegmentation

mim install mmsegmentation -i Simple Index

8.克隆mmdetection3d框架并安装

git clone https://github.com/open-mmlab/mmdetection3d.git

cd mmdetection3d

pip install -e . -i Simple Index

安装过程与结果:

9. 下载模型文件

在mmdetection3d/model_zoo.md at 1.0 · open-mmlab/mmdetection3d · GitHub下载Demo运行所需模型文件,比如,我下载的是PointPillars模型(Kitti数据集):

在mmdetection3d/configs/pointpillars at 1.0 · open-mmlab/mmdetection3d · GitHub下载这两个模型文件:

hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class_20220301_150306-37dc2420.pth

hv_pointpillars_secfpn_6x8_160e_kitti-3d-car_20220331_134606-d42d15ed.pth

在mmdetection3d目录下创建checkpoints目录并将这两个文件放入

10.运行Demo程序:

python demo/pcd_demo.py demo/data/kitti/000008.bin configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py checkpoints/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car_20220331_134606-d42d15ed.pth --show

运行结果如下:

附:一些常用的命令

查看pytorch和CUDA版本号:

     python -c 'import torch;print(torch.__version__);print(torch.version.cuda)'

退出conda虚拟环境:

     conda deactivate

删除虚拟环境:

    conda env remove -p 要删除的虚拟环境路径


http://www.ppmy.cn/news/77134.html

相关文章

从零实现一个数据库(DataBase) Go语言实现版 5.B树实现(Part2))

英文源地址 紧接着上一篇进行b树的实现. b树中删除操作 删除叶子节点 从叶子节点中删除一个key的代码很像其他nodeReplace*函数 func leafDelete(new BNode, old BNode, idx uint16) {new.setHeader(BNODE_LEAF, old.nkeys() - 1)nodeAppendRange(new, old, 0, 0, idx)node…

2023年25个Java8面试问题和答案

Java是一种非常流行的编程语言,从Android应用程序到物联网(IoT)无处不在。事实上,根据Codeplatoon的数据,Java在1年的招聘信息中排名#2022。考虑到它的普遍存在,对精通Java的专业人员的需求仍然很高也就不足…

【投毒情报】PyPI中 colorara 等组件包泄漏主机截屏等敏感信息

漏洞描述 PyPI仓库中受影响版本的 colorara 和 libida组件在安装过程中会根据不同操作系统分别执行恶意逻辑,针对Windows执行White Snake远控木马,针对Linux收集系统截屏、主机名、用户名、IP等主机敏感信息发送至telegram。 漏洞名称PyPI中 colorara …

Vue 中动态引入图片为什么要是 require

在vue中动态的引入图片为什么要使用require? 因为动态添加src被当做静态资源处理了,没有进行编译,所以要加上require, 我倒着都能背出来...... emmm... 乍一看好像说的很有道理啊,但是仔细一看,这句话说…

AntDB数据库参加开源数据库技术沙龙,分享全栈业务能力

5月12日,由PostgreSQL中文社区和PolarDB开源数据库举办的开源数据库技术沙龙温州站于温州大学举办。此次活动邀请了众多数据库领域的专家和技术大咖,旨在促进数据库与温州产业界和学术界的交融发展与合作,共同探讨数据库产业未来的发展趋势&a…

Java中六种关联查询

六种关联查询 交叉连接(CROSS JOIN) 内连接(INNER JOIN) 外连接(LEFT JOIN/RIGHT JOIN) 联合查询(UNION与UNION ALL) 全连接(FULL JOIN) 交叉连接…

如何利用弹性伸缩服务降低80%的机器成本

一、引言 弹性伸缩服务是一种应用在云计算平台上的技术,能够自动根据工作负载和业务需求来调整资源,从而达到优化成本和提高资源利用率的目的。本文将分享一些在实际操作中使用弹性伸缩服务的技巧,并探讨其在企业中的应用效果和价值。 二、概…

文字转语音软件哪个好?安利三款2023宝藏配音软件

手机上面会有很多的语音转文字,就是你说话说了之后就会转成文字,那么反过来呢,文字转语音就没有那么好操作了,因为其中最关键的是配音上面,很多的配音看起来就不太正常,没有什么感情,就和机器人…