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