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

你可能感兴趣的:(小白的ai学习之路)