win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)

 win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)_第1张图片

环境

  • window10 + 2080Ti

  • cuda 11.1 

  • pytorch 1.8

  • python3.6

  • VS2019

  • Detectron2 0.4


安装步骤

  1. 使用anconda 创建新的虚拟环境 ,  python 3.6
  2. 安装 numpy , opencv-python ,matplotlib..
  3. 安装pytorch
    pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio===0.8.0 -f https://download.pytorch.org/whl/torch_stable.html

    和cuda版本对应,比如我安装的是  cuda11.1 + pytorch1.8

  4. 验证 pytorch

    python 
    import torch 
    torch.cuda.is_available() 
    exit()

    返回True,代表安装成功

  5. 安装 cocoapi  地址:GitHub - philferriere/cocoapi: Clone of COCO API - Dataset @ http://cocodataset.org/ - with changes to support Windows build and python3  (因为cocoapi官方暂不支持Windows)

    1. pip install -e. (注意后面带个.)

  6. 安装 fvcore 地址: GitHub - facebookresearch/fvcore: Collection of common code that's shared among different research projects in FAIR computer vision team.

    1. python setup.py build --force develop

  7. 安装 detectron2 

    1. python setup.py build --force develop

  8.  如果编译成功,输入conda list ,则会出现 detectron2

                 win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)_第2张图片


验证

  1. 目标检测
    python demo/demo.py   --config-file configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml --input image/test.jpg --output outputs/  --opts MODEL.WEIGHTS 'model/model_final_b275ba.pkl'

    win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)_第3张图片

  2. 实例分隔
    python demo/demo.py  --config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --input image/test.jpg --opts MODEL.WEIGHTS 'model/model_final_f10217.pkl'

    win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)_第4张图片

  3. 关键点检测

    python demo/demo.py  --config-file configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x.yaml --input image/test.jpg --opts MODEL.WEIGHTS 'model/model_final_a6e10b.pkl'

    win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)_第5张图片

  4. 全景分隔

    python demo/demo.py  --config-file configs/COCO-PanopticSegmentation/panoptic_fpn_R_101_3x.yaml --input image/test.jpg --opts MODEL.WEIGHTS 'model/model_final_cafdb1.pkl'

    win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)_第6张图片


遇到的问题 

  • 如果存在多个vs版本需要设置
    • SET MSSdk=1
    • SET DISTUTILS_USE_SDK=1
    • call “C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build/vcvarsall.bat” amd64 -vcvars_ver=14.28(根据自己路径修改.)
  • Error checking compiler version for cl: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte.
    • 打开cpp_extension.py,把编码改成' gbk'。 参考 Pytorch编译maskRCNN问题:cpp_extension.py:189: UserWarning: Error checking compiler version for cl..._高精度计算机视觉的博客-CSDN博客
  • Command '['ninja', '-v']' returned non-zero exit status 1 (参考 Win10编译Detectron2和TensorMask - 知乎 )
    • 网上有说 将 -v 修改成  --v 或 --vision 千万别这么改, 虽然这个错误没有,但会引起别的错误。
    • 解决办法就是往上面找报错的地方,比如我的报错信息是:
      • calling a host function(”__floorf") from a global function("op::resize8TimesKernel “) is not allowed
        • 找到报错的那个文件, 将 floor 改成 floorf.  同理还有有个ceilf好像报错,照葫芦画瓢,也将ceil 改成ceilf.(单词可能拼的不对,忘保存报错信息了。)
      • 修改这个文件 "安装位置\envs\detectron2\Lib\site-packages\torch\include\torch\csrc\jit\runtime\argument_spec.h " (路径自行更改)
        • static constexpr size_t ARG_SPEC_DEPTH_LIMIT = 128;; --> static const size_t ARG_SPEC_DEPTH_LIMIT = 128;
      • namespace "at::cuda" has no member "ATenceilfDiv" (参考: win10 手把手教你安装 detectron2_Pikathu_zp的博客-CSDN博客_win10安装detectron)
        • 找到报错文件将 ATenceilfDiv 改成 ATenCeilDiv
    • 重新编译。
      • python setup.py clean --all 

      • python setup.py build --force develop

  •  ModuleNotFoundError: No module named 'win32con'
    • 尝试过使用 pip install pypiwin32  ,但貌似不好用
    • 解决办法:下载源码:GitHub - mhammond/pywin32: Python for Windows (pywin32) Extensions
    • cd pywin32 
    • python setup.py install --skip-verstamp
  •  再次重新编译即可成功.
    • python setup.py clean --all
    • python setup.py build --force develop

End

以上内容本人亲测,编译通过,有需要的小伙伴可以参考。如有问题,欢迎留言指正。

win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)_第7张图片

你可能感兴趣的:(CV,detectron2)