开始使用Detectron2
本文档简要介绍detectron2中内置命令行工具的用法。
有关使用API进行实际编码的教程,请参阅我们的Colab笔记本,其中介绍了如何使用现有模型运行推理,以及如何在自定义数据集上训练内置模型。
(https://colab.research.google.com/drive/16jcaJoc6bCFAQ96jDe2HwtXj7BMD_-m5)
使用预训练模型推理演示
1、在模型集里选择一个模型和它的config文件,例如,mask_rcnn_R_50_FPN_3x.yaml
(https://github.com/facebookresearch/detectron2/blob/master/MODEL_ZOO.md)
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
其中configs用于训练,在模型集中为模型指定MODEL.WEIGHTS用于进行赋值。这个命令会运行推理过程并用OpenCV窗口显示可视化效果。
其它关于命令行参数的细节,使用demo.py -h或者查看源代码理解它的原理,一些公共的参数是:
使用摄像头运行,用--webcam替换--input files
对视频进行检测,用--video-input video.mp4替换--input files
在cpu上运行,在--opts后面加上MODEL.DEVICE cpu
将输出保存到文件目录中(用于图像保存)或者是一个文件(用于摄像头或视频),使用--output参数
在命令行中训练与评估
我们提供了两个脚本文件“tools/plain_train_net.py”和 “tools/train_net.py”,它们被用于训练所有detectron2中提供的configs模型。你可能需要把它们作为编写你自己的训练脚本的参考。
与train_net.py相比,plain_train_net.py支持较少的默认功能,它包含更少的抽象,因此可以更容易添加自定义的逻辑。
使用train_net.py训练模型,首先根据datasets/README.md设置相应的数据集,然后运行:
d 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.py -h
在你的代码中使用Detectron2 APIs
通过查看我们的Colab Notebook来学习如何使用Detectron2 APIs
1、使用已经存在的模型进行推理
2、在自定义的数据集上训练内置的模型
查看detectron2/projects学习更多的方法在detectron2上创建你自己的项目。
(https://github.com/facebookresearch/detectron2/tree/master/projects)