Detectron2 入门¶
本文档简要介绍 detectron2 中内置命令行工具的使用方法。
有关涉及使用 API 进行实际编码的教程,请参阅我们的 Colab 笔记本,其中涵盖了如何使用现有模型进行推理,以及如何在自定义数据集上训练内置模型。
使用预训练模型进行推理演示¶
从 模型库 中选择一个模型及其配置文件,例如
mask_rcnn_R_50_FPN_3x.yaml
。我们提供了
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 笔记本 以了解如何使用 detectron2 API 来:
使用现有模型进行推理
在自定义数据集上训练内置模型
请参阅 detectron2/projects,了解有关如何在 detectron2 上构建项目的更多方法。