2023.1.4 更新,经过测试,直接使用“二、修复VS2022的链接错误”这个方法即可成功解决VS进行编译时的报错问题

2023.1.3 更新,关于使用VS进行编译时的报错问题

部分vs版本,例如最新的vs2022可能在detectron2编译时报错:

lazy_init_num_threads@internal@at@@YAXXZ@4_NA vision.obj : error LNK2001: 无法解析的外部符号 __imp___tls_index_?init@?1??

可能的原因是vs2022的线程初始化有一些问题,这可能是vs的一个bug,也有可能是pytorch的bug,在未来的版本可能会修复,我在安装detectron2时是没有遇到这个问题的。这里给出解决办法:

一、添加环境变量

方法一:添加临时的环境变量

注意!这种方法添加的环境变量在关闭命令行之后就会失效

找到vs安装目录下的vcvars64.bat文件,使用命令行打开,例如我的文件位置在E:\VSIDE\VC\Auxiliary\Build\vcvars64.bat,那么在命令行中输入:

E:\VSIDE\VC\Auxiliary\Build\vcvars64.bat

开启VS2022的x64环境,接着输入三条指令:

set MAX_JOBS=4
set DISTUTILS_USE_SDK=1
set OMP_NUM_THREADS=1

然后尝试在当前命令行窗口中重新安装detectron2.

方法二:在系统环境变量中添加

这个方法就是在环境变量中添加,自行搜索win10/11添加系统环境变量。这种方法优点是不需要每次开启新命令行是都使用set XXX命令

方法三:在vcvars64.bat中添加

使用记事本打开vcvars64.bat,在原有的文本后输入三个set命令:

不推荐这种办法,因为会修改vs文件。


添加环境变量后如果安装还是报错,请尝试第二个解决办法:

二、修复VS2022的链接错误

该解决办法来自github的pull89511,pytorch的源码中有模棱两可的说法的问题,最简单的办法如下:

将pytorch源码的parallel.h中第32行的(如果你是base环境,那么位置在anaconda3\Lib\site-packages\torch\include\ATen\Parallel.h)

inline TORCH_API void lazy_init_num_threads() {

更改为:

inline void lazy_init_num_threads() {

注意,如果你有多个python环境安装了多个pytorch,那会有很多个Parallel.h,要找到你在使用的环境的pytorch源码目录(一定要找对,不然修改了不起作用)。例如我有一个叫py38的环境,那么我pytorch源码的路径就是anaconda3\envs\py38\Lib\site-packages\torch\include\ATen\Parallel.h

如果觉得找文件很麻烦,这里推荐一个软件everything,可以非常快搜索电脑上的文件。

想要进一步了解错误产生原因的建议进pull89511仔细看一下。


下面是原文章(2022.11.28):

由于Facebook的detectron2没有对windows平台做官方支持,所以在安装的时候发生了很多问题,于是有了这篇问题记录的贴子。截至2022.11.28GitHub上detectron2的版本为0.6。

如果文章对你有帮助请给我一个小小的赞。

1.安装环境

pyhon 3.7.6

cuda 11.6

pytorch 1.13

由于安装需要编译,请安装VS的C++开发环境

2.下载源码

官方github源码地址

使用git命令下载

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

3.下载安装pycocotools-windows

使用pip命令安装

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

如果需要前置安装包,按要求下载即可。

为什么要手动安装pycocotools?

首先是pycocotools官方不支持windows系统,detectorn2却需要pycocotools,到时候安装detectron2时也会自动调用pip安装,但是会安装失败(因为直接pip install pycocotools会报错)。

4.修改detectron2的安装配置文件(重要)

1)修改setup.py

将setup.py中install_requires内容做如下修改(大概在165行):

"pycocotools>=2.0.2" 修改为 "pycocotools"

因为windows版本的pycocotools最新为2.0版本,故需要删除版本要求。修改完成后保存即可。

2)修改detectron2\detectron2\layers\csrc\nms_rotated\nms_rotated_cuda.cu文件

将using namespace detectron2;这一行之前(其实就是1-12行)的内容用如下程序段替代(其实就是注释了部分内容):

#include <ATen/ATen.h>
#include <ATen/cuda/CUDAContext.h>
#include <c10/cuda/CUDAGuard.h>
#include <ATen/cuda/CUDAApplyUtils.cuh>
/*#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"

这样改的原因参见GitHub网页的issues2769

5.安装detectron2

上述步骤都完成后,就可以安装detectron2了,使用官方安装文档的代码:

python -m pip install -e detectron2

注意此时终端的路径应该是detectron2的上一级目录,比如你使用git clone将源码拷贝到了D:/detectron2,那么你的pip命令执行时终端的目录应该在D盘根目录。

安装过程中请保持网络畅通,pip需要下载detectron2的依赖包,因为网络原因下载失败的话请多试几次。

等待几分钟安装就完成了。 注意,如果pip出现红字提醒你版本不匹配或者有其他包没有安装的话,请安装提示更新或者安装对应版本的包即可。

6.测试detectron2

参考官方文档的Getting Started部分,切换终端路径到demo,输入代码:

python demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml  --webcam  --opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl

--webcam 使用摄像头测试,如果要测试图片,使用--input指令:

python demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml \--input input1.jpg input2.jpg  --opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl

得到检测结果

以上就是detecron2安装的全部内容了,如果有什么问题或者疑问欢迎在评论区或私信指出。

【安装教程】Windows10/11安装detectron2教程相关推荐

  1. 硬盘安装opensuse linux 11.4 图文教程,硬盘安装openSUSE Linux 11.4 图文教程

    本文介绍在Windows XP和Windows 7下面通过grub引导来硬盘安装openSUSE Linux 11.4操作系统.xp下安装较简单,win7下可能要用EasyBCD修复BCD引导,文中有 ...

  2. Windows10/11安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机

    很多优秀的生物信息学软件,如QIIME.QIIME 2.LEfSe等没有Windows版,而使用VirutalBox虚拟机不仅效率低,而且挂载外部硬盘和使用中也经常遇到各种问题,配置和使用详见 - 扩 ...

  3. Centos7安装RabbitMQ3.8.11

    Centos7安装RabbitMQ3.8.11 安装Erlong RabbitMQ是erlong语言编写的,故安装前需先安装erlong语言环境,并且RabbitMQ版本有对应的erlong版本要求. ...

  4. 解决Windows10/11系统DWcc2021安装失败打不开问题 Adobe Dreamweaver CC2021详细安装教程

    最初为美国MACROMEDIA公司开发 ,2005年被Adobe公司收购.dw是集网页制作和管理网站于一身的所见即所得网页代码编辑器.利用对 HTML.CSS.JavaScript等内容的支持,设计师 ...

  5. Nvidia30系显卡+Windows系统的CUDA 11安装100%成功教程

    一.环境 显卡:Nvidia RTX 3090.3060.3080.3050.3070 系统:Windows11 Windows10 CUDA:CUDA(ComputeUnified Device A ...

  6. Windows10家庭版安装MySQL(无法启动服务问题和卸载教程)

    环境: windows10家庭版,mysql-installer-community-8.0.25.0.msi 官网就可以下载 MySQL 下载安装教程可以看 windows10上安装mysql(详细 ...

  7. detectron2安装在win10并运行测试--呕心沥血教程

    记录不易,继续加油 目录 一. 环境要求 1.Pycharm 2.anaconda自带的python3.8.8 3.cuda11.2+torch 4.vs2019 5.conda4.11.0 二.安装 ...

  8. MySQL-mysql 8.0.11安装教程

    网上的教程有很多,基本上大同小异.但是安装软件有时就可能因为一个细节安装失败.我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的. 安装环境:win7 1.下载zip安装包: MySQL ...

  9. win10下安装tensorflow-gpu==1.11.0的详细教程

    20200313 更新 当前配置,用了3个月了,运行良好 系统:win10 显卡:Nvidia 1080Ti python:3.6.8 CUDA:9.0.176 cuDNN:7.0.5 tensorf ...

最新文章

  1. flashpaper打印机没有被正确安装_没有正确保存与安装,可导致80%的轴承提早失效...
  2. 软件测试--测试Demo
  3. git如何merge github forked repository里的代码更新?
  4. 牛客网--牛牛的闹钟
  5. MFC多线程失败:Create Instance failed
  6. xcode 4 制作静态库(转)
  7. HDU2021 发工资咯:)【入门】
  8. android仿美丽说登录拖拽Layout
  9. 国外除了Google还有什么搜索引擎?
  10. Visual Studio 2022安装配置
  11. java孢子进化_孢子的进化起源
  12. 用MATLAB仿真AM调制
  13. Pytorch(一) —— 相关库和函数
  14. 新手理解光猫和路由器
  15. Git与Github入门资料
  16. 浅谈FineReport常用函数及使用时报错的解决办法
  17. 有哪些好用的抠图网站?这种方法超好用
  18. 《哪吒》票房破25亿,我用AI分析了它20W+评论数据
  19. 【Centos】sshd 无法启动(解决问题篇,附问题排查思路和解决方法)
  20. java json字符串转JSONObject对象、转JAVA对象、转List<T>对象

热门文章

  1. 从宇宙长城谭宇宙的历史
  2. 个人基本信息分类与代码 第1部分:人的性别代码 GB/T 2261.1-2003
  3. 公交线路换乘代码PHP,微信开发之公交换乘功能代码详解
  4. 初中计算机ppt速学,图片基本处理方法ppt课件初中信息技术苏科课标版七年级全一册课件_3.ppt...
  5. html网页获取点击按钮获取当前时间
  6. jzoj3545. 【清华集训2014】杰杰的女性朋友
  7. 杰杰带你解读【机智云】环形缓冲区源码
  8. YOLOv5眨眼检测
  9. HTPC知识普及第四讲:解码需软硬兼施2
  10. CentOS搭建Elasticsearch6.8.0集群