MMdetection 2+unbuntu 18.04+Cuda 10.2 的踩坑实录,从踩坑到配置成功-配置环境之殇

MMdetection 2+unbuntu 18.04+Cuda 10.2 的踩坑实录,从踩坑到配置成功-配置环境之殇


好久没有更新博客了,最近事情有些多,大概已有多半年没有搞过学术了。经和朋友聊天,说商汤科技出的用于目标检测的mmdetection工具箱非常好用,想着试一试,于是就走入了配置mmdetection2的坑中。由于自己是一个在电脑方面不特别灵光的人,每次配置环境的时候都是让我非常头大的一件事。即便是参照官方的安装指南都会出现各种各样的问题。有的时候网上也没有出现过,真的是非常的无语,于是只能卸载了之后在一遍一遍的重新装。总之配置环境这真是一个不断踩坑的过程。

话不多说了,首先有几个不错的网址大家可以参考一些,没准你就是按照我的方法装也报错,到时候你就可以参考一下这些方法:

官网教程:https://mmdetection.readthedocs.io/en/latest/get_started.html

官网的github https://github.com/open-mmlab/mmdetection#readme (注意阅读github上的一些issue,因为你报错的问题会在这里讨论,并有解决办法)

mmcv的安装: https://mmcv.readthedocs.io/en/latest/#installation

一些大神的博客:

https://blog.csdn.net/deeplearningfeng/article/details/105554547

https://blog.csdn.net/deeplearningfeng/article/details/105554547

https://blog.csdn.net/weixin_41010198/article/details/106258366

https://shliang.blog.csdn.net/article/details/107813017


1. 环境的准备

MMdetetion 2依赖很多个库和包,个人认为mmdetetion 2的兼容性并不是非常的好,所以一定要安装对各个库的对应版本(尤其是mmcv和mmdet这两个库)。虽然官方也给出了mmvcv和mmdet各个库的依赖,但是官网只是给出了一个适用的范围,在安装过程中发现,其实即便是在这个范围中选取对应的版本安装也有可能会报错。因此一定要安装所有的版本去试一试。在不行,就严格的按照别人安装成功的配置进行安装。如下是我的用于安装mmdetevtion的配置。大家可以按照这个版本安装。具体的步骤后面会详细的讲述。

cuda = 10.2
python = 3.7.9
pytorch = 1.7.1
mmcv-full = 1.2.0
mmdet = 2.4.0

这里需要注意mmcv和mmcv-full只能装一个,推荐安装mmcv-full。mmcv-full目前最新版本应该是1.5.1,但是请不要安装这个新版本的,应为我没有成功。同样,mmdet现在已经出到了2.8.0,但是安装之后也是各种报错。看来还真不是越新越好啊。

2. conda创建环境

这里我们需要提前安装一个anaconda3,装好之后采用conda 命令生成一个环境,这个环境叫open-mmlab,官网就叫这个名,你也可以自取名

conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab

这里创建好了虚拟环境之后激活。

坑一:

conda创建的环境会自动安装cudatookit,但是这个并不是完整版的,所有如果各位老铁,不能够通过 nvcc -V这个指令查看cuda的版本号的话,就需要安装一下cuda和Cudnn。这两个的安装主要是下载比较费劲,好像是有些墙了。然后再bashrc中写入环境变量,完成之后要重启计算机,有的时候 source ~/.bashrc不完全起作用,我也不知道为什么,这里一定要加入LD_LIBRARY_PATH和CUDA_HOME两个环境变量。

3. 安装pytorch

我安装的是稳定版本的pytorch=1.7.1。pytorch的安装过程如下:

conda install pytorch torchvision torchaudio cudatoolkit=10.2 

 坑二:

安装pytorch要采用国内的清华源,要将清华源的地址加入到conda和pip中去,要不下载速度可够受的了。

安装pytorch时,由于采用的国内源,所以不要有后面的-c pytorch。

4. 安装mmcv

安装mmcv有三种方式,可以直接pip install mmcv-full,可以git clone下源码编译,也可以直接下载编译好的mmcv-full的特定版本。这里我用的就是直接下载安装mmcv-full = 1.2.0

pip install mmcv-full==1.2.0 -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.7.0/index.html

 坑三(大坑):

官网说如果安装mmdet=2.0 ,...,2.7,2.8等版本,只要安装mmcv-full的版本大于1.1.5小于1.3就行,但是实际上我试过了其他的几个版本好像都不太行,比如1.2.5这个版本在cuda=10.2和pytorch=1.7.1时自动下载。

所以推荐下载1.2.0的这个版本。最好不要选择直接pip install mmcv-full和编译mmcv源码。我的环境会报错,有时编译通过了也运行不了demo。

基本上运行不了demo都是这个mmcv-full没有装好。

如果你的环境中既有mmcv又有mmcv-full一定要删掉mmcv

5. 安装mmdetection

mmdetection的安装就是从网上git clone下来进行编译就好。

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection

坑四:(大坑)(一定要修改版本号)

默认安装会安装最新版本2.8,但是这个版本在我的环境上并不work。要安装2.4.0的版本,所以一定要修改版本号

修改方法:

mmdetection文件夹下有个mmdet文件夹,进入之后有个version.py,记事本打开,直接将版本号改为2.4.0,完活儿。

然后继续编译mmdeteion

pip install -r requirements/build.txt
pip install -v -e .  # or "python setup.py develop"

 至此mmdetection的安装完成,如果还有一些问题,那就需要安装一些mmcv的依赖包然后再编译一下,看看是否可行。

pip install addict -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install yapf -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pytest -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

6.选装pycocotools

这个可能在训练数据的时候会用到,有枣没枣先打一杆子吧,我就一下子都装上了。

conda config --add channels conda-forge
conda install pycocotools

7. 测试用的代码

查看torch的版本

import torch, torchvision
print(torch.__version__, torch.cuda.is_available())

查看mmdet的版本 

import mmdet
print(mmdet.__version__)

查看mmcv 的版本 

from mmcv.ops import get_compiling_cuda_version, get_compiler_version
print(get_compiling_cuda_version())
print(get_compiler_version())

 载入mask-rcnn

!mkdir checkpoints
!wget -c http://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth \
      -O checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth

加载模型

from mmdet.apis import inference_detector, init_detector, show_result_pyplot

# Choose to use a config and initialize the detector
config = '../configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco.py'
# Setup a checkpoint file to load
checkpoint = 'checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth'
# initialize the detector
model = init_detector(config, checkpoint, device='cuda:0')

 载入图片并显示结果

img = 'demo.jpg'
result = inference_detector(model, img)
show_result_pyplot(model, img, result)

 8. 结果展示

最后结果如下:我换了一个照片测试。

希望大家都能调通!!!

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值