Detectorn2篇之介绍和安装

Detectron2篇之介绍与安装

Detectron2是Facebook人工智能研究的下一代软件系统,它实现了最先进的目标探测算法。它是对之前Detectron版本的重写,源自maskrcn -benchmark。github地址:https://github.com/facebookresearch/detectron2
在这里插入图片描述

第二代的更新

  • 它由PyTorch深度学习框架提供支持。第一代用的是caffe
  • 包括更多的功能,如全光分割,密集,Cascade R-CNN,旋转边界框等。全光分割(panoptic segmentation)的方法是何恺明在2019年1月提出的一种方法。论文名叫做Panoptic Feature Pyramid Networks
  • 可以作为一个库来支持它上面的不同项目。我们将以这种方式开源更多的研究项目。
  • 训练起来更快

如何安装?

Github里的创库介绍了,我们的Colab笔记本有安装detectron2的详细步骤说明。Dockerfile还使用一些简单的命令安装detectron2。

需求

  • Linux or macOS with Python ≥ 3.6 (Windows也可以我就是在Windows上使用的)
  • PyTorch >= 1.3
  • PyTorch安装匹配的torchvision。您可以将它们一起安装到pytorch.org以确保这一点。
  • OpenCV, optional都是需要的
  • pycocotools: pip install cython; pip install -U git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI’

从源代码构建Detectron2

有了以上依赖项,且gcc和g++≥5后,运行:

python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'
# (add --user if you don't have permission)

# Or, to install it from a local clone:
git clone https://github.com/facebookresearch/detectron2.git
cd detectron2 && python -m pip install -e .

# Or if you are on macOS
# CC=clang CXX=clang++ python -m pip install -e .

如果想要清除掉原有的detectorn2 可以使用 `rm -rf build/ **/*.so`` 。通常需要在重新安装PyTorch后重新生成detectron2。

安装预构建Detectron2

# for CUDA 10.1:
python -m pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/index.html

你可以用“cu{100,92}”或“cpu”替换cu101。不过我建议使用cpu那样的速度太慢了。

Note:

  • 这种安装必须与最新的官方PyTorch版本(目前是1.4版)一起使用。在你的定制构建的PyTorch环境吓它将不工作。
  • 这样的安装已经过时了。它可能与使用detectron2的研究项目的主分支不兼容

常见的安装问题

如果您在使用预先构建的detectron2时遇到问题,请卸载它并尝试从源代码开始构建它。

每个问题的解决方案:

  • Undefined torch/aten/caffe2 symbols, or segmentation fault immediately when running the library.
  1. 如果detectron2或torchvision没有匹配的PyTorch版本进行编译,就会发生这种情况。
  2. 如果您使用预构建的torchvision,请卸载torchvision & pytorch,并按照pytorch.org重新安装它们。如果您手动构建detectron2或torchvision,请删除您构建的文件(build/, **/*.so)并重新构建它们。
  • Undefined C++ symbols (e.g. GLIBCXX) or C++ symbols not found.
    通常是因为这个库是用一个较新的c++编译器编译的,但你是用一个旧的c++版本进行运行。这经常发生在老anaconda上。尝试conda更新conda update libgcc。然后重建detectron2。基本的解决方案是使用足够新的c++运行时运行代码

  • “Not compiled with GPU support” or “Detectron2 CUDA Compiler: not available”.
    当建造探测器2时没有发现CUDA。你应该确保
    python -c 'import torch; from torch.utils.cpp_extension import CUDA_HOME; print(torch.cuda.is_available(), CUDA_HOME)'在构建detectron2时,打印有效的输出。多数模型可以在没有GPU支持的情况下运行推断(但不支持训练)。若要使用cpu,请设置模型。配置中的设备=‘cpu’。

  • “invalid device function” or “no kernel image is available for execution”.
    两个原因:
    1.你用CUDA的一个版本构建detectron2,但用另一个版本运行它。
    2.Detectron2或PyTorch/torchvision不是为正确的GPU架构(计算兼容性)而构建的。

  • Undefined CUDA symbols or cannot open libcudart.so.
    用于构建detectron2或torchvision的NVCC版本与正在运行的CUDA版本不匹配。这经常发生在使用anaconda的CUDA运行时。使用python -m detectron2.utils.collect_env去找出不一致的CUDA版本。在这个命令的输出中,你应该期望“Detectron2 CUDA Compiler”、“CUDA_HOME”、“PyTorch built with - CUDA”包含相同版本的CUDA库

  • “ImportError: cannot import name ‘_C’”.
    请按照上面的说明建立和安装detectron2。
    如果你正在运行代码从detectron2的根目录,cd到一个不同的目录再试试。否则,您可能无法导入安装的代码。

  • ONNX conversion segfault after some “TraceWarning”.
    使用与PyTorch使用的版本更接近的编译器从其源代码构建和安装ONNX(可在“火炬。config_ .show()”中获得)。

Windows下的安装

如果按照官网的安装教程出现了一些问题可以参考这篇github文章 https://github.com/conansherry/detectron2

<think>我们正在解决一个具体的编译问题:在Windows系统上安装detectron2时,运行`pythonsetup.pybuilddevelop`出现缺少MicrosoftVisualC++14.0或更高版本(即VC++构建工具)的错误。这个问题通常是因为编译某些Python扩展(例如用C++编写的部分)需要MSVC构建工具。以下是一步步的解决方案:###步骤1:安装或修复MicrosoftVisualC++构建工具错误提示表明您的系统缺少必要的C++编译器。detectron2需要VC++14.0(即VisualStudio2015)或更高版本。以下有几种解决方案:-**安装最新的MicrosoftVisualStudio**:安装VisualStudio2019或2022,并确保在安装时勾选“使用C++的桌面开发”工作负载(Workload)。安装后,VC++14.0(2015)及更高版本的构建工具就会包含在内[^1]。-下载地址:[VisualStudio下载页面](https://visualstudio.microsoft.com/downloads/)-**单独安装MSVC构建工具**:如果不想安装完整的VisualStudio,可以只安装构建工具。访问上面的链接,在“工具”部分找到“BuildToolsforVisualStudio”并下载安装安装时同样需要勾选“C++构建工具”组件。-**修复现有的VisualStudio安装**:如果已安装VisualStudio但遇到此错误,可能是因为缺少特定的构建工具。打开VisualStudioInstaller,找到已安装的版本,点击“修改”,确保“C++桌面开发工具”被勾选,然后更新安装。###步骤2:安装完成后设置环境安装构建工具后,您需要确保环境变量设置正确。通常,安装程序会自动设置,但为了保险起见,可以尝试从VisualStudio自带的命令提示符(如“x64NativeToolsCommandPromptforVS2022”)运行编译命令。或者,在普通命令提示符中,运行以下命令以激活环境(假设VS2019):```batcall"C:\ProgramFiles(x86)\MicrosoftVisualStudio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat"x64```然后在该命令提示符下运行编译命令。###步骤3:检查Python版本setuptools确保您使用的是支持当前detectron2版本的Python版本(如Python3.6+)。同时,更新pipsetuptools:```batpython-mpipinstall--upgradepipsetuptoolswheel```###步骤4:尝试直接使用pip安装预编译包(如果可用)如果您只是想使用detectron2而不需要修改代码,可以尝试安装预编译的二进制包(如果有的话)。注意,detectron2官方提供的主要是Linux的预编译包,但社区可能有人提供Windows的版本。您可以查看detectron2的GitHub页面或PyPI页面。不过,由于detectron2在Windows上的官方支持并不完善,您可能需要从源代码编译。因此,前面的步骤是必须的。###步骤5:尝试编译安装在确保安装好构建工具后,再次尝试运行:```batpythonsetup.pybuilddevelop```或者使用pip进行可编辑安装:```batpipinstall-e.```###常见问题处理-如果仍然出现错误,请检查错误日志中是否有详细信息。可能需要安装WindowsSDK或其他组件。-确保您以管理员身份运行命令提示符。-如果遇到关于CUDA或cuDNN的错误,确保已安装合适版本的CUDAcuDNN,并将其路径添加到环境变量PATH中。###替代方案:使用WSL如果问题仍然难以解决,而且您的系统是Windows10或11,可以考虑使用WindowsSubsystemforLinux(WSL)。在WSL中安装Linux(如Ubuntu),然后在其中安装Pythondetectron2。在Linux环境中编译通常会更加顺利。###引用说明[^1]:MicrosoftVisualStudio官方文档指出,构建工具包含在VisualStudio的“使用C++的桌面开发”工作负载中。§§相关问题§§1.如何在Windows上安装CUDAcuDNN以支持detectron22.如何为detectron2配置Python环境?3.使用WSL在Windows上安装detectron2的具体步骤是什么?</think> 针对在 Windows 上安装 detectron2 时出现 `Microsoft Visual C++ 14.0 or greater is required` 错误的解决方案,以下是详细步骤: ### 原因分析 此错误通常发生在编译 C++ 扩展时,系统缺少必要的 Visual C++ 构建工具(MSVC)[^1]。detectron2 的部分组件需要 C++ 编译器才能编译安装。 ### 解决方案步骤 #### 1. 安装最新 Visual Studio 生成工具 1. 下载安装器: - 访问 [Visual Studio 下载页](https://visualstudio.microsoft.com/downloads/) - 选择 "生成工具"(Build Tools)下载 2. 安装必须组件: ```cmd vs_buildtools.exe --norestart --passive ^ --add Microsoft.VisualStudio.Workload.VCTools ^ --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ^ --add Microsoft.VisualStudio.Component.Windows10SDK ``` 或通过安装器勾选: - "使用 C++ 的桌面开发" - "Windows 10 SDK"(最新版本) #### 2. 更新系统环境(关键步骤) 安装完成后: 1. 重新启动计算机 2. 以管理员身份运行命令提示符 3. 执行环境刷新命令: ```cmd "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64 ``` #### 3. 安装 Python 构建依赖 ```cmd pip install wheel setuptools --upgrade pip install cython pycocotools-win ``` #### 4. 安装 CUDA 工具包(如使用 GPU) 从 [NVIDIA CUDA 下载页](https://developer.nvidia.com/cuda-downloads) 安装与 PyTorch 版本匹配的 CUDA #### 5. 重新安装 detectron2 ```cmd # 进入项目目录 cd path/to/detectron2 # 清除旧编译文件 python setup.py clean --all # 重新编译安装 python setup.py build develop ``` ### 备选方案 1. **使用预编译包**(如果有): ```cmd pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu113/torch1.10/index.html ``` 2. **在 Windows 子系统 Linux (WSL) 中安装**: ```bash # WSL 中安装 pip install torch torchvision pip install 'git+https://github.com/facebookresearch/detectron2.git' ``` ### 验证安装 ```python import detectron2 print(detectron2.__version__) # 成功则显示版本号 ``` ### 注意事项 - 确保 Python 版本为 3.6+ - PyTorch CUDA 版本需匹配 - 推荐使用 Python 3.9(兼容性最佳) - 全程使用管理员权限操作 [^1]: 此错误源于 Python 扩展模块需要 MSVC 编译器构建二进制组件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值