jjzjj

【安装教程】Windows10/11安装detectron2教程

K.K.U 2023-05-17 原文

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. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  4. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  5. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  6. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  10. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

随机推荐