win10 mmdetection3d环境搭建

这篇具有很好参考价值的文章主要介绍了win10 mmdetection3d环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官网:mmdetection3d/README_zh-CN.md at master · open-mmlab/mmdetection3d · GitHub

安装过程参照:win10 mmdetection3d 训练KITTI_树和猫的博客-CSDN博客_pointnet训练kitti

官网安装过程

前言

3D目标检测框架综述-知乎中描述了当前3D目标检测的数据和模型状况,为了能将数据和评价标准等统一,介绍了4个比较统一的检测算法框架。

OpenPCDet

社区活跃,代码轻量化且可读性强(有些顶刊论文是基于这个框架开发的)

基于Pytorch框架

mmdetection3d

社区活跃,有官方文档,便于上手;代码封装性好,codeview比较吃力(近年的顶刊会议有些是基于这个框架开发的)

基于Pytorch框架

Det3D

和OpenPCDet类似,也比较轻量,但是最近不怎么更新了。

基于Pytorch框架

Paddle3D

2022年8月刚开源出来,暂时还不清楚效果

基于PaddlePaddle框架

小结:

最终选定了应用比较多的OpenPCDet和mmdetection3d,但是OpenPCDet在win10系统下没有安装成功(唯一看到成功的博客,如果有兴趣可以自己尝试),最终选择mmdetection3d进行安装

mmdetection3d的安装(安装失败)

主要是python版本错误导致的,若想看安装教程,直接跳转到正确安装部分。

1. 准备工作

本机环境:

win10 + anaconda3 +python3.9+CUDA11.5 + CUDNN8.3 + torch1.11 + torchvision0.12.

准备工作:下载官网文件到本地文件夹下E:\LCH_Content\Code\1Preparations\mmdetection3d__open-mmlab

(1)安装过程可依照如下步骤

pip install openmim -i https://pypi.tuna.tsinghua.edu.cn/simple
mim install mmcv-full
mim install mmdet
mim install mmsegmentation

mmdet安装时出错,遂改用

# install mmdetection
pip install git+https://github.com/open-mmlab/mmdetection.git

注意,此方法需要提前安装git包,安装方式

conda install git

(2)跳转到本地文件夹下

cd \d E:\LCH_Content\Code\1Preparations\mmdetection3d__open-mmlab

(3) 安装spconv

pip install spconv-cu114 -i https://pypi.tuna.tsinghua.edu.cn/simple

(4) 安装依赖包

pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

注意:

官网说,sponv比原生mmvc sponv使用内存更少,所以先安装了spconv(别人有些最后才安装这个库)。由于网路原因,最后一步可能会报错,多试几次或者加镜像。

2. 测试和验证

(1). 数据集存放的位置

KITTI数据集官网

将下载好的数据集按照下列顺序放到mmdetection3d项目路径下(其中ImageSet文件夹用来存放数据集划分文本)

mmdetection3d
├── mmdet3d
├── tools
├── configs
├── data
│   ├── kitti
│   │   ├── ImageSets
│   │   ├── testing
│   │   │   ├── calib
│   │   │   ├── image_2
│   │   │   ├── velodyne
│   │   ├── training
│   │   │   ├── calib
│   │   │   ├── image_2
│   │   │   ├── label_2
│   │   │   ├── velodyne

主要是testing和training中存放这些数据,目前选择了0-200的编号。

(2). 数据集处理

(1) 在项目mmdetection3d文件夹下,进入cmd,并输入下列内容以创建文件夹。

mkdir .\data\kitti\ImageSets

(2) 在cmd中继续输入下列内容,下载数据划分文件(生成4个txt文件)

wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/test.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/test.txt

wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/train.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/train.txt

wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/val.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/val.txt

wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/trainval.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/trainval.txt

此前需要安装wget,Wget for windows安装方法

注:在环境变量中添加路径时,要先新建,再浏览输入保存。

问题:

Resolving raw.githubusercontent.com (raw.githubusercontent.com)... failed: 请求的名称有效,但是找不到请求的类型的数据。 .
wget: unable to resolve host address 'raw.githubusercontent.com'

解决方案

如,在文件中添加了下列内容:

185.199.108.133 raw.githubusercontent.com

(3) 激活项目的虚拟环境,输入以下命令对数据集进行预处理

python tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti --extra-tag kitti

注意:由于数据只解压了0-200的数据,故需要先将ImageSets中的数据进行修改。(只保留了000200之前的数据)。

错误1:

ImportError: cannot import name 'gcd' from 'fractions' (D:\PythonVirtualEnv\envs\py39\lib\fractions.py)

解决1:同样问题的解决方法

conda install -y networkx">=2.5"

conda install -y networkx==2.2

(4) 处理完成后,得到的目录如下:

win10 mmdetection3d环境搭建

(3). 数据训练

数据训练对训练参数讲的很详细

单GPU训练

python tools/train.py configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py

训练结束后,我们可以在/mmdetection3d/work-dirs/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class文件夹中看到训练结果,包括日志文件(.log)、权重文件(.pth)以及模型配置文件(.py)等。

数据测试

python demo/pcd_demo.py demo/data/kitti/kitti_000008.bin configs/second/hv_second_secfpn_6x8_80e_kitti-3d-car.py checkpoints/hv_second_secfpn_6x8_80e_kitti-3d-car_20200620_230238-393f000c.pth

报错

AttributeError: 'EnforcedForest' object has no attribute 'node'.

根据官网解答, networkx的版本需求如下

pip install 'networkx>=2.2,<2.3'

进一步测试发现,它要求的python版本为3.8, 故宣告失败,按照官网步骤重新来。

mmdetection3d的正确安装

1. 安装步骤

官方安装步骤

由于安装过程也出现一些问题,故重头描述安装过程。

(1) 安装cuda, cudnn

(2) 创建虚拟环境,注最好安装python=3.8(上述已证明3.9不行);

conda create --name mmdet3d python=3.8 -y
conda activate mmdet3d

(3) 安装pytorch和torchvision

官方提供的办法,安装为cpu版本。建议在whl下载中直接下载对应cuda版本的pytorch和torchvision。在whl下载目录下进行安装:

pip install torch-1.11.0+cu115-cp39-cp39-win_amd64.whl
pip install torchvision-0.12.0+cu115-cp39-cp39-win_amd64.whl

(4) 安装spconv

比mmcv spconv使用更少的内存,故提前安装该依赖。

由于cuda11.5没有对应的spconv, 故安装11.4版本的。

pip install spconv-cu114

(5) 安装mmdetection 3d

在想要安装的文件夹下,依次输入下列语句:

pip install openmim
mim install mmcv-full
mim install mmdet
mim install mmsegmentation
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
pip install -e .

2. 测试:

为了将数据可视化,需要提前安装open3d依赖

pip install opend3d -i https://pypi.tuna.tsinghua.edu.cn/simple

(1) 使用官方给定的demo进行测试,其中checkpoints中内容需要在模型库中下载

python demo/pcd_demo.py demo/data/kitti/kitti_000008.bin configs/second/hv_second_secfpn_6x8_80e_kitti-3d-car.py checkpoints/hv_second_secfpn_6x8_80e_kitti-3d-car_20200620_230238-393f000c.pth

若demo文件夹下出现了下列文件夹及其包含的内容,说明安装成功。

win10 mmdetection3d环境搭建

上述obj文件可用MeshLab打开将其可视化.

(2) 可视化数据集(即,数据集中的点云依次用open3d可视化), 在线显示并存入磁盘。

python tools/misc/browse_dataset.py configs/_base_/datasets/kitti-3d-car.py --task det --output-dir data/lch_data/output --online

(3) 显示2D图像以及投影的3d边界框

python tools/misc/browse_dataset.py configs/mvxnet/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py --task multi_modality-det --output-dir data/lch_data/testmulti --online

(4) demo的检测结果。

python demo/pcd_demo.py demo/data/kitti/kitti_000008.bin configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py checkpoints/hv_second_secfpn_6x8_80e_kitti-3d-car_20200620_230238-393f000c.pth --out-dir data/lch_data/out_display --show

python demo/pcd_demo.py demo/data/kitti/kitti_000008.bin configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py checkpoints/hv_second_secfpn_6x8_80e_kitti-3d-car_20200620_230238-393f000c.pth --score-thr 0.7 --out-dir data/lch_data/demo --show

(5) 想要查看检测的准确度,可输入下列指令:

python tools/test.py configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py checkpoints/hv_second_secfpn_6x8_80e_kitti-3d-car_20200620_230238-393f000c.pth --eval 'mAP' --eval-options 'show=True' 'out_dir=./data/lch_data/show_results'

出错:

OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\PythonVirtualEnv\envs\mmdet3d\lib\site-packages\torch\lib\shm.dll" or one of its dependencies.

解决方案文章来源地址https://www.toymoban.com/news/detail-417805.html

到了这里,关于win10 mmdetection3d环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 零基础熟悉mmdetection3d数据提取、模型搭建过程

    本图文从介绍配置文件开始,逐步构建一个新的配置文件,并依次构建相关模型,最终使用一条点云数据简单走了一下处理流程 关于mmdetection3d的安装,参考官方文档安装 — MMDetection3D 1.0.0rc4 文档 1.1 mmdetection3d配置文件的组成 官方文档:教程 1: 学习配置文件 — MMDetection3D 1.

    2024年02月05日
    浏览(67)
  • MMDetection3D简单学习

    我们通常把模型的各个组成成分分成 6 种类型: 编码器(encoder):包括 voxel encoder 和 middle encoder 等进入 backbone 前所使用的基于体素的方法,如  HardVFE  和  PointPillarsScatter 。 骨干网络(backbone):通常采用 FCN 网络来提取特征图,如  ResNet  和  SECOND 。 颈部网络(neck):

    2024年02月13日
    浏览(43)
  • mmdetection3d nuScenes (持续更新)

    本文为博主原创文章,未经博主允许不得转载。 本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。         Mmdetection3d集成了大量3D深度学习算法,其中很大一部分可以在智能驾驶nuScenes数据集上运行。在算法

    2023年04月15日
    浏览(44)
  • 【MMDetection3D】MVXNet踩坑笔记

    原文 代码 MVXNet(CVPR2019) 最近许多关于3D target detection的工作都集中在设计能够使用点云数据的神经网络架构上。虽然这些方法表现出令人鼓舞的性能,但它们通常基于单一模态,无法利用其他模态(如摄像头和激光雷达)的信息。尽管一些方法融合了来自不同模式的数据,这些方

    2024年01月18日
    浏览(50)
  • 新版mmdetection3d将3D bbox绘制到图像

    使用 python mmdet3d/utils/collect_env.py 收集环境信息 以前写过mmdetection3d中的可视化,但mmdetection3d更新后代码已经不适用了,正好我把我的工作全转移到新版mmdetection3d上来了,因此重新写了一下推理结果可视化。整体思路还是构建模型、构建数据、推理、绘制,下面分步讲解 我用

    2024年04月15日
    浏览(47)
  • MMDetection3D库中的一些模块介绍

    本文目前仅包含2个体素编码器、2个中间编码器、1个主干网络、1个颈部网络和1个检测头。如果有机会,会继续补充更多模型。 若发现内容有误,欢迎指出。   MMDetection3D的点云数据一般会经历如下步骤/模块:   下面分别介绍每个部分的一些典型模型。   在介绍体素

    2023年04月17日
    浏览(48)
  • mmdetection3d系列--(1)安装步骤(无坑版)

      最近在看一些基于点云3d目标检测的文章,需要复现甚至修改一些算法,就找到了mmlab开源的mmdetection3d目标检测框架,方便后续学习。     在安装的时候遇到一点坑,比如环境问题,安装完能跑demo但是不能跑训练测试问题等。在解决问题后还是完成了安装。在这里记录一

    2024年02月02日
    浏览(40)
  • mmdetection3d可视化多模态模型推理结果

    参考文献: 带你玩转 3D 检测和分割 (三):有趣的可视化 - 知乎 (zhihu.com) Welcome to MMDetection3D’s documentation! — MMDetection3D 1.0.0rc4 文档 让我们看一下ChatGPT的回答[手动狗头]: mmdetection3D是基于PyTorch框架的3D目标检测工具包,它是mmdetection的3D扩展版本。它提供了一个灵活且高效的

    2024年02月16日
    浏览(44)
  • 点云检测框投影到图像上(mmdetection3d)

    原模型检测时候只有点云的检测框,本文主要是将demo文件中的pcd_demo.py中的代码,将点云检测出的3d框投影到图像上面显示。   

    2024年02月13日
    浏览(40)
  • 【MMDetection3D】基于单目(Monocular)的3D目标检测入门实战

    本文简要介绍单目(仅一个摄像头)3D目标检测算法,并使用MMDetection3D算法库,对KITTI(SMOKE算法)、nuScenes-Mini(FCOS3D、PGD算法)进行训练、测试以及可视化操作。   单目3D检测,顾名思义,就是只使用一个摄像头采集图像数据,并将图像作为输入送入模型进,为每一个感兴

    2024年02月03日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包