windows10系统安装detectron2

Detectron2——0.2.1安装(windows10)

  • 1、 确保已经安装cuda及pytorch。

    pytorch:1.8.1
    cuda:11.1
    OS:Win10
    python:3.6(detectron需要安装在≥3.6的环境上)
    编译环境:VS2019

  • 2、安装pycocotool。

    官网pycocotools不支持windows,因此需要进行修改,参考github开源repo,安装windows版本的pycocotools

https://github.com/philferriere/cocoapi

cd coco/PythonAPI
python setup.py build_ext --inplace
python setup.py build_ext install

最终的安装版本为:pycocotools2.0

  • 3、安装依赖fvcore

    这个比较简单,通过pip install 正常安装即可
    注:有的教程需要安装,有的并不需要

  • 4、安装其他依赖项

pip install cython opencv-python pillow  matplotlib termcolor cloudpickle tabulate tensorboard termcolor tqdm yacs mock fvcore pydot wheel future
  • 5、配置VS2019

    打开anaconda命令终端,注意不是cmd终端!!切换到相应虚拟环境下,输入call “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat”,(搜索vcvars64.bat所在的路径即可,不一定在C盘)以激活生成工具
    输入:cl,应该有如下效果:
    windows10系统安装detectron2_第1张图片

  • 6、代码的修改:

    去facebook官方github下载detectron0.2.1,(其他版本没测试,其他版本网上有少部分安装教程)
    (1). Anaconda3安装位置\envs\XXX\Lib\site-packages\torch\include\torch\csrc\jit\runtime\argument_spec.h (注意此路径与很多旧版本的教程有区别!)
    对第160行代码进行修改:

//static constexpr size_t ARG_SPEC_DEPTH_LIMIT = 128;
    static const size_t ARG_SPEC_DEPTH_LIMIT = 128;

(2). Anaconda3安装位置\envs\XXX\Lib\site-packages\torch\include\pybind11\cast.h
第1538行:

//explicit operator type&() { return *(static_cast(this->value)); }
explicit operator type& () { return ((type)this->value); }

(3). Anaconda3安装位置\envs\XXX\Lib\site-packages\torch\utils\cpp_extension.py
第300行

#match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode().strip())
match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode(' gbk').strip())

(4). Detectron2路径下setup.py文件
第187行,“pycocotools>=2.0.1”,改为"pycocotools>=2.0",或者直接注释掉,我是注释掉的,由第175行也可以发现,Python版本需要大于等于3.6
(5). \detectron2\detectron2\layers\csrc\cocoeval\cocoeval.cpp
(5.1)、添加头文件:

#include 

(5.2)、修改第484行:

  //localtime_r(&rawtime, &local_time);
  localtime_s(&local_time, &rawtime);
  • 7、编译
    先安装ninja库:
conda install ninja

,这一步很重要,也不要随意更改ninja。如果卸载重装ninja,会直接导致虚拟环境瘫痪,比如torch会直接“卸载”!
在这里插入图片描述

打开detectron2\detectron2-0.2.1,进行安装

 python setup.py build develop
  • 8、DEBUG
    (1) 在这里插入图片描述

    该问题是因为电脑装过不同的VS造成的,因此需要进行设置:

SET DISTUTILS_USE_SDK=1

(2)遇到如下报错:
在这里插入图片描述
在这里插入图片描述

解决办法:
可参考:
win10上安装detectron2==0.4运行Mask R-CNN_唉真难起名字的博客-CSDN博客
目前是floor没有问题,但是ceil变成ceilf依旧报错
在这里插入图片描述找到原因了,在一大串地址中,这两个文件名很容易混淆,导致没有修改过来

现在这个问题解决了
在这里插入图片描述

成功安装detectron2
在这里插入图片描述

  • 如果出现类似Command '[‘ninja’, ‘-v’]'这种错误,不要参考网上教程!
    出现这种错误,是因为是要编译的文件内容出错,不要修改成[‘ninja’, ‘–v’]或者[‘ninja’, ‘–version’],检查待编译文件是否有语法错误!可以往上面追溯出错的位置及原因,再修改。

  • 参考:

Win10编译Detectron2和TensorMask (***********)
Win10安装Detectron2纪实
win10上安装detectron2==0.4运行Mask R-CNN_唉真难起名字的博客-CSDN博客
win10下的Detectron2安装,detectron2
Windows10下安装detectron2超详细教程(小白视角)_小白wwj的博客-CSDN博客_detectron2 windows安装
https://github.com/facebookresearch/detectron2
https://github.com/philferriere/cocoapi

你可能感兴趣的:(技术,实例分割,pytorch,深度学习,python)