背景
最近在跑mask-rcnn,看到facebook推荐使用detectron2,所以就去配置了一下detecron2的环境,虽然二者的核心代码是差不多的,但是明显detectron2环境的配置过程比较简单,所以下面就来看看如何配置detecron2的环境吧~
配置
搭建环境之前,先来说一下我的显卡配置,毕竟不同的显卡所支持的cuda版本是不一样的,比如GTX30-系列的显卡只支持11.0以上的cuda版本。
实验室的显卡是GTX3080Ti,所以conda虚拟环境中cuda的版本我安装了11.0,pytorch的版本为1.7.1。
对虚拟环境中安装cuda不熟悉的同学,可以看之前的这篇文章conda虚拟环境中安装cuda和cudnn,再也不用头疼版本号的问题了
这里必须吐槽一下官方!!!最新的detectron2的版本官网要求pytorch的版本必须高于1.8.0,但是1.8.0运行的时候又有bug,已经被很多人提这个问题了。解决的办法主要有两个:升高pytorch的版本到1.9.0,或者降低pytorch的版本到1.7.x,这里我选择了后者。
环境搭建步骤
下载源码
可以从官方github下载之前的版本,也可以从我的网盘下载。
网盘链接:https://pan.baidu.com/s/1Z9ki_9_NX2pE0JMRZEpiUA
提取码:6666
至于为什么不可以下载最新的,因为最新的代码里要求pytorch必须是1.8.x,低版本无法进行安装,所以只能下载以前的代码,希望你看到的时候官方已经解决这个问题了。
创建虚拟环境
conda create -n detectron python=3.7
安装torch,torchvision,cudatoolkit
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0
- 注意我的版本号,你可以按照你的cuda版本去官网查询对应的版本号
- 在安装torch包之前,首先要根据上面提到的那篇文章在虚拟环境中安装cuda
编译detectron2源码
cd到源码所在的文件夹,执行如下命令开始编译detectron2源码
python setup.py build develop
注意:编译完后项目中会多出来一个build文件夹,后期如果改变了pytorch版本,需要先使用命令rm -rf build/ **/*.so删掉build文件夹,再重新编译一下才可以使用!!!
测试demo
源文件中有一个demo文件,可以用来测试。
cd到demo文件夹中,放入一张自己的图片,输入如下命令测试效果。
参数中1.jpg是我随便从网上找的,你可以随便找并放入demo文件夹中,如图:
python demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --input 1.jpg --opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl