Detectron2 入门指南

本文档简要介绍了detectron2中内置命令行工具的使用方法。

如需了解涉及API实际编码的教程,请参阅我们的Colab Notebook,其中涵盖了如何使用现有模型进行推理,以及如何在自定义数据集上训练内置模型。

使用预训练模型进行推理演示

  1. 模型库中选择一个模型及其配置文件,例如mask_rcnn_R_50_FPN_3x.yaml

  2. 我们提供了demo.py,能够演示内置配置。运行方式如下:

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

这些配置是为训练而设计的,因此我们需要将MODEL.WEIGHTS指定为模型库中的一个模型进行评估。 此命令将运行推理并在OpenCV窗口中显示可视化结果。

有关命令行参数的详细信息,请参阅demo.py -h或查看其源代码以了解其行为。一些常见参数包括:

  • 要在你的网络摄像头上运行,将--input files替换为--webcam

  • 要在视频上运行,将--input files替换为--video-input video.mp4

  • 要在CPU上运行,请在--opts后添加MODEL.DEVICE cpu

  • 要将输出保存到目录(针对图像)或文件(针对摄像头或视频),请使用 --output

命令行中的训练与评估

我们在"tools/plain_train_net.py"和"tools/train_net.py"中提供了两个脚本, 这些脚本用于训练detectron2提供的所有配置。您可能希望 将其作为参考来编写自己的训练脚本。

与“train_net.py”相比,“plain_train_net.py”支持的默认功能较少。它包含的抽象也较少,因此更容易添加自定义逻辑。

要使用“train_net.py”训练模型,首先按照 datasets/README.md 中的说明设置相应的数据集,然后运行:

cd tools/
./train_net.py --num-gpus 8 \
  --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml

这些配置是为8-GPU训练设计的。要在1个GPU上进行训练,您可能需要更改一些参数,例如:

./train_net.py \
  --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml \
  --num-gpus 1 SOLVER.IMS_PER_BATCH 2 SOLVER.BASE_LR 0.0025

要评估模型的性能,请使用

./train_net.py \
  --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml \
  --eval-only MODEL.WEIGHTS /path/to/checkpoint_file

如需更多选项,请参见 ./train_net.py -h

在你的代码中使用Detectron2 API

请参阅我们的Colab Notebook 了解如何使用detectron2 API来实现以下功能:

  1. 使用现有模型运行推理

  2. 在自定义数据集上训练内置模型

查看detectron2/projects 获取更多基于detectron2构建项目的方法。