一、前言
1、如果你是从零开始安装mmdet,那么可以参考我之前写的,去安装基础环境:
2、这次安装提供两种安装方式:pip镜像源安装和本地安装。
其中本地安装的文件夹,已经放到了百度云下:
mmdet相关文件https://pan.baidu.com/s/1cdYN6BYxB6ZZQj6_9u7Wsg?pwd=6666%C2%A0
两个选一个安装就好,有时候pip会因为版本问题安装不了,这时候就可以转战本地安装。
二、安装过程
1、环境配置
显卡:4090和1660s(两个环境都安装了,没有问题)
CUDA :11.1
python:3.7
torch:1.10.1+cu111
torchvision:0.11.2+cu111
mmdet:2.25.1
mmdet3d:1.0.0 rc6
2、本次所有相关的安装文件都打包好了:
mmdet相关文件https://pan.baidu.com/s/1cdYN6BYxB6ZZQj6_9u7Wsg?pwd=6666%C2%A0
二、安装过程
1、配置mmdet环境
(1)创建虚拟环境(无需安装包,Anconda自动安装python):
conda create -n mmdet python=3.7
(2)激活环境
conda activate mmdet
(3)安装torch、torchvision
安装说明:推荐本地安装,否则pip会不小心安装成cpu版本。
①下载文件
百度云:找到以下文件夹,放着torch、torchvision安装包。
②安装
使用pip指令实现本地安装:
pip install torch-1.10.1+cu111-cp37-cp37m-linux_x86_64.whl torchvision-0.11.2+cu111-cp37-cp37m-linux_x86_64.whl
③测试
先输入python进入环境,输入以下指令:
import torch # 如正常则静默
torch.__version__ #查看torch版本
import torchvision
torchvision.__version__ #查看torchvision版本
torch.cuda.is_available() #正常的话返回“True”
a = torch.Tensor([1.]) # 如正常则静默
a.cuda() # 如正常则返回"tensor([ 1.], device='cuda:0')"
from torch.backends import cudnn # 如正常则静默
cudnn.is_acceptable(a.cuda()) # 如正常则返回 "True"
显示可以正常使用:
④官方下载网站
如果不想用百度云,下面是官方下载网站:
torch下载网站:https://download.pytorch.org/whl/torch_stable.html
torch 1.10.1(python3.7):https://download.pytorch.org/whl/cu111/torch-1.10.1%2Bcu111-cp37-cp37m-linux_x86_64.whl
torchvision 0.11.2(python3.7):
https://download.pytorch.org/whl/cu111/torchvision-0.11.2%2Bcu111-cp37-cp37m-linux_x86_64.whl
(4)安装mmcv-full 1.5.2
安装说明:这个mmdet和mmdet3d都需要安装,pip安装可能会报:error,具体看“四、报错”。
①pip安装(不一定能装上)
pip install mmcv-full==1.5.2
②本地安装
利用pip指令实现本地安装:
pip install mmcv_full-1.5.2-cp37-cp37m-manylinux1_x86_64.whl
有mmcv-full就不要再安装mmcv了。
(5)安装mmsegmentation
安装说明:仅mmdet3d需要安装。
①pip 安装
pip install mmsegmentation==0.27.0
②本地安装
进入到/mmsegmentation-master文件夹下,执行:
pip install -r requirements.txt
python setup.py develop
(6)安装mmdet
安装说明:如果你想运行mmdet而非mmdet3d,推荐本地安装,方便后面跑数据
①pip安装mmdet
pip install mmdet==2.25.1
②本地安装mmdet
进入到/mmdetection文件夹下,执行:
pip install -r requirements.txt
python setup.py develop
(7)安装mmdet3d
安装说明:这个推荐本地安装,因为后面还要生成数据
①pip安装
pip install mmdet3d==1.0.0rc4
②本地安装
这里安装个版本比较低的,否则mmdet3d会对mmcv要求很高。
进入到/mmdetection3d-master文件夹下
执行:
pip install -r requirements
python setup.py develop
三、测试程序
1、下载数据集
有数据集的可以用自己的数据集,没有数据集的,我给你们提供一个编译好的小数据集:
kitti小型数据集https://pan.baidu.com/s/175VowZs0goXZe8ZKUJ5XDg?pwd=6666
和大数据集:
kitti大型数据集https://pan.baidu.com/s/1C1gz9GmYIaFUHlA4C--Q0w?pwd=6666
2、训练
①进入到tools文件夹下:
/mmdetection3d-master/tools
②生成数据文件
生成说明:在运行代码之前必须要生成必要文件,否则会出现keyerror的错误。
python tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti --extra-tag kitti
这一步后会生成下方所示的kitti_gt_database及.pkl .json文件
# 这一步后会生成下方所示的kitti_gt_database及.pkl .json文件
kitti
├── ImageSets
│ ├── test.txt
│ ├── train.txt
│ ├── trainval.txt
│ ├── val.txt
├── testing
│ ├── calib
│ ├── image_2
│ ├── velodyne
│ ├── velodyne_reduced
├── training
│ ├── calib
│ ├── image_2
│ ├── label_2
│ ├── velodyne
│ ├── velodyne_reduced
├── kitti_gt_database
│ ├── xxxxx.bin
├── kitti_infos_train.pkl
├── kitti_infos_val.pkl
├── kitti_dbinfos_train.pkl
├── kitti_infos_test.pkl
├── kitti_infos_trainval.pkl
├── kitti_infos_train_mono3d.coco.json
├── kitti_infos_trainval_mono3d.coco.json
├── kitti_infos_test_mono3d.coco.json
├── kitti_infos_val_mono3d.coco.json
关键是下面几个json,如果不生成,就会报错“Keyerror:image_path”等错误。
③测试
a. 官方测试集
可通过去官网下载相应的权重:
以pointpillars为例:
训练(依然使用我们的):
python ./tools/train.py ./configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py
测试(使用官方pth权重文件):
python ./tools/test.py ./configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py ./work_dirs/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class/latest.pth --eval 'mAP' --eval-options 'show=True' 'out_dir=./test_results/pointpillars_test_result'
④自定义数据集
a.创建一个新文档:MFAF(mvxnet文件copy)
b.更改一下MVXNet.py里的路径,在134行位置更改数据集路径
c.下载pth文件,在MVXNet.py文件里有下载路径(load_from)
当然你们可以自行选择下载,或者用自己训练好的pth
d.训练和测试
训练:
python ./tools/train.py ./configs/MVXNET-COPY/MVXNet.py
测试:
python ./tools/test.py MVXNet.py ./work_dirs/MVXNet/latest.pth --eval 'mAP' --eval-options 'show=True' 'out_dir=./test_results/pointpillars_test_result'
参考:
四、报错
mmdet安装的相关问题,放在了另一篇博客中:
https://blog.csdn.net/weixin_44013732/article/details/130694483https://blog.csdn.net/weixin_44013732/article/details/130694483