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,应该有如下效果:
-
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<type *>(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 <time.h>
(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