windows10下安装detectron2(最新版maskRCNN)

离最初玩maskrcnn快两年了,detectron2上线后还没尝试过,决定在windows上试一下,地址

https://github.com/facebookresearch/detectron2

官方明确说没有专门考虑支持windows,但我看了一下issues中的评论,基本上安装还是问题不大。我只碰到两个问题,这里列出来供大家参考。

(1) clone到本地

git clone https://github.com/facebookresearch/detectron2.git

cd detectron2

(2) 修改cocoeval.cpp第483行

这个主要是因为windows上没有localtime_r这个函数,该函数是threadsafe的,windows上相应的函数为localtime_s。如果不修改的话,报错是这样的,

D:\detectron2\detectron2\layers\csrc\cocoeval\cocoeval.cpp(483): \ C3861: “localtime_r”: 找不到标识符

如何修改?

在D:\devPytorch\detectron2\detectron2\layers\csrc\cocoeval/cocoval.cpp中,添加(不加应该也可以,但我加了)
#include <time.h>
这个一定要改
localtime_s(&local_time,&rawtime); // changed bymc, originally it is localtime_r(&rawtime, &local_time)

(3) setup.py修改,安装pycocotools

因为pip install pycocotools不会成功,会报错,类似 cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”,所以我们要手动安装pycocotools。

注释掉下面这一行,
#"pycocotools>=2.0.1"

然后手动安装 pycocotools

方案一 (我用的这个)
CMD 终端中使用 pip 安装:
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
方案二
https://github.com/philferriere/cocoapi下载源码,并进行解压。以管理员身份打开 CMD 终端,并切换到 cocoapi\PythonAPI目录。运行以下指令:
# install pycocotools locally
python setup.py build_ext --inplace
# install pycocotools to the Python site-packages
python setup.py build_ext install

(4) python setup.py install develop

在detectron2主目录下,输入
python setup.py install develop

会安装很多很多的包(facebook真能折腾啊)。

最后,成功安装。

(5) 测试

用detectron2自带的Demo,测试了一下。

随便跑了几张instance segmentation的图片,在CPU模式下平均耗时4s左右,
~/msCoco2017/test2017\000000000001.jpg: detected 4 instances in 3.84s
~/msCoco2017/test2017\000000000016.jpg: detected 4 instances in 4.36s
~/msCoco2017/test2017\000000000019.jpg: detected 3 instances in 4.45s
~/msCoco2017/test2017\000000000057.jpg: detected 3 instances in 4.31s
~/msCoco2017/test2017\000000000063.jpg: detected 4 instances in 3.93s
~/msCoco2017/test2017\000000000069.jpg: detected 17 instances in 4.46s

用Cuda1080跑的,
~/msCoco2017/test2017\000000000001.jpg: detected 4 instances in 1.55s
~/msCoco2017/test2017\000000000016.jpg: detected 4 instances in 0.21s
~/msCoco2017/test2017\000000000019.jpg: detected 3 instances in 0.21s
~/msCoco2017/test2017\000000000057.jpg: detected 3 instances in 0.19s
~/msCoco2017/test2017\000000000063.jpg: detected 4 instances in 0.18s
~/msCoco2017/test2017\000000000069.jpg: detected 17 instances in 0.23s
~/msCoco2017/test2017\000000000080.jpg: detected 4 instances in 0.18s

速度提升还是很可观的,GPU接近实时检测了。

以前的参考

https://blog.csdn.net/tanmx219/article/details/100829920 (这个问题以前有,现在已经没有了)

猜你喜欢

转载自blog.csdn.net/tanmx219/article/details/107437267