在win10下尝试一下facebook的detectron2 ,以下是其github的网址和介绍
我的安装过程参考了以下两个博客
https://blog.csdn.net/weixin_43582457/article/details/108525053?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
https://detectron2.readthedocs.io/en/latest/tutorials/models.html
一、我的电脑情况
Win+r dxdiag
如果安装了显卡驱动,可以看到显卡型号, 如果没安装显卡驱动程序,只能看到名称写着:基本图形显示程序
二、安装显卡驱动
NVIDIA驱动下载的网址为: https://www.nvidia.cn/Download/index.aspx?lang=cn
如下图所示,从中选择自己电脑装载的GPU型号,以及电脑里的操作系统型号。 NVIDIA驱动程序下载搜索并下载对应自己显卡驱动型号的驱动程序 在这里插入图片描述顺着步骤完成安装即可(easy~)
三、安装cuda和cudnn
1.这里官方文档介绍采用CUDA10.1(其他旧版本驱动未测试)。
CUDA 下载网址为:https://developer.nvidia.com/cuda-toolkit-archive
因此如果目前cuda的版本不是10.1或10.1以上,就卸载掉。
2.下载cudnn,网址: https://developer.nvidia.com/rdp/cudnn-download
Cudnn需要先注册个账号,然后免费下载。这里注意选择和自己的CUDA版本号相匹配的。
之后选择对应的win10,
下载完成,两个文件下载完成后如下
3.然后一路下一步安装cuda10.1。
4.解压cudnn,可以看到如下图三个文件夹bin,include和lib
把 cuDNN 库压缩包里对应的bin,include,lib的文件放到NVIDIA GPU Computing Toolkit\CUDA\v10.1中进行文件夹替换
5.添加环境变量
新增系统环境变量:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
6.完成后查看版本
四、在Anaconda3下创建环境detection2
conda env list 或 conda info -e 查看当前存在哪些虚拟环境
conda create -n detectron22 python=3.6
# Anaconda 创建环境的一般命令
conda create -n your_name python=x.x
anaconda命令创建python版本为x.x,名字为your_name的虚拟环境。your_name文件可以在Anaconda安装目录envs文件下找到。
接着会让你安装python3.6相关依赖,输入y即可
继续等待其安装完成,直至出现如下界面,
接着,我们要激活我们新创建的环境,因为我们刚刚只是创建了,现在要予以激活,才能把我们对应的库装入到我们希望配置的环境中去,继续输入
activate detectron22
在C盘之前出现detectron22的字样代表激活成功。这里一定要注意,我们之后都是需要在虚拟环境里安装库的,不然都是白费呐!
五、安装detectron2所需的库
1.首先我们安装最基本的2个库numpy,matplotlib.这里就不过多赘述安装过程了。直接pip install numpy matplotlib 或conda install numpy matplotlib即可
如果速度很慢,可以试试清华源
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
2.安装opencv-python
这一步是因为我们后续是要训练自己的数据集的所以需要图片的读入,如果不需要训练自己的数据集,opencv安装可以跳过哦~ 对于安装opencv-python这里题主推荐几种方
方法1:直接pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
一般来说就可以成功,相对来说下载比较缓慢,而且经常可能下载会断。
方法二:在https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv下载对应的python版本和windows系统opencv的whl文件,这里我们选择的是opencv_python-4.4.0-cp36-win_amd64.whl
下载完成后我们把它放到桌面,之后继续在cmd窗口里进行操作。我们在cmd窗口里输入cd desktop而后输入,注意这里还是要在我们构建的detectron2环境下安装哦,不然是无效的,如果不小心关闭了之前的cmd窗口,记得每开一次都要重新activate一下detectron2的环境。这里是个小坑,大家注意。
pip install opencv_python-4.4.0-cp36-win_amd64.whl
3.安装pillow,cython库
pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install cython -i https://pypi.tuna.tsinghua.edu.cn/simple
4.安装Pytorch-gpu版本
首先进入pytorch官网 https://pytorch.org/
https://pytorch.org/get-started/previous-versions/#v160
选择好对应的gpu版pytorch,我这里只测试了pip安装,pytorch=1.6.0,配合cuda=10.1,发现在detectron2上可以完美运行。
直接在虚拟环境中输入相应的语句,等待其安装。
pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
这里一定要注意,先安装对应版本的pytorch和torchvision,再去安装detectron2,因为每次安装完pytorch后,detectron2通常需要重装!!所以这里务必注意顺序!!!不然的话,很容易出现 "ImportError: cannot import name _C’"这个报错,如果出现这个报错,那么就需要重新安装一次detectron2,但是如果detectron2是在pytorch安装后安装就没有问题。这里这个小坑可以注意一下!
安装完成之后我们在cmd中输入python
python
import torch
torch.cuda.is_available()
exit()
如果提示True,那么恭喜你大功告成,pytorch-gpu版安装完成,之后输入exit()退出python
到这里一旦有显示True
那我们的pytorch部分就配置完毕,gpu版得pytorch也大功告成
六、安装pycocotools和detectron2
1.安装detectron2之前,需要先安装pycocotools
下载地址:https://github.com/philferriere/cocoapi
直接下载大概率是龟速,所以使用一个加速网站,地址:http://toolwa.com/github
只需要复制当前 GitHub 地址粘贴到输入框中就可以代理加速下载!然后找到PythonAPI文件夹下,之后输入
pip install -e.
千万不要漏了e后面的点!!
安装成功后
2.安装detectron2
下载地址:https://github.com/facebookresearch/detectron2/
解压后修改 detectron2\layers\csrc\nms_rotated\nms_rotated_cuda.cu
先注释块/* #ifdef WITH_CUDA…#endif*/
然后在后面添加一句 #include “box_iou_rotated/box_iou_rotated_utils.h”
如下
// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
#include <ATen/ATen.h>
#include <ATen/cuda/CUDAContext.h>
#include <c10/cuda/CUDAGuard.h>
#include <ATen/cuda/CUDAApplyUtils.cuh>
//NOTE: replace relative import
/*#ifdef WITH_CUDA
#include "../box_iou_rotated/box_iou_rotated_utils.h"
#endif
// TODO avoid this when pytorch supports "same directory" hipification
#ifdef WITH_HIP
#include "box_iou_rotated/box_iou_rotated_utils.h"
#endif*/
#include "box_iou_rotated/box_iou_rotated_utils.h"
转到setup.py文件夹下
pip install -e.
结果
我们输入pip list这时候看到列表里已经有我们装好的detectron2的库
这时候detectron2也大功告成了~
七、Anaconda prompt运行demo
在detectron2-master目录下建立3个文件夹
1.新建images文件夹,下载些待预测的图片放在里面
2.新建models文件夹,用来保存训练好的模型
到以下网址下载一个训练好的coco模型:model_final_f10217.pkl
https://github.com/facebookresearch/detectron2/blob/master/MODEL_ZOO.md
得到
3.新建results文件夹,用来保存预测结果
4.Anaconda prompt测试
python demo/demo.py --config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --input images/4.jpg --output results --opts MODEL.WEIGHTS models/model_final_f10217.pkl
其他参数:
在摄像头测试,用–webcam替代–input
视频文件测试,用–video-input替代–input
存储结果,给–output参数就行
运行结果
预测结果可以在results文件夹中看到
game over
使用到的detectron2和cocoapi可以到我的csdn资源中下载