本文档简要介绍了detectron2中内置命令行工具的用法。
step1:从模型Zoo中选择一个模型及其配置文件 ,例如:
mask_rcnn_R_50_FPN_3x.yaml
step2:我们提供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
实例测试:
python demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --input input1.jpg input2.jpg --opts MODEL.WEIGHTS ../models/model_final_f10217.pkl
这些配置是为了进行训练而设计的,因此我们需要MODEL.WEIGHTS从模型zoo中指定一个模型进行评估。此命令将运行推断并在OpenCV窗口中显示可视化效果。
有关命令行参数的详细信息,请参阅或查看其源代码以了解其行为。一些常见的参数是:demo.py -h
要在您的网络摄像头上运行,请替换为。--inputfiles--webcam
要播放视频,请替换为。--inputfiles--video-inputvideo.mp4
要在cpu上运行,请在之后添加。MODEL.DEVICEcpu--opts
要将输出保存到目录(用于图像)或文件(用于网络摄像头或视频),请使用--output。
在“ tools / {,plain_} train_net.py”中提供了一个脚本,该脚本用于训练detectron2中提供的所有配置。可能希望将其用作编写自己的训练脚本的参考。
在环境中设置数据集环境变量,DETECTRON2_DATASETS变量值设置为:F:\dataset\coco2017,数据集结构如下:
要使用“ train_net.py”训练模型,请首先在datasets / README.md之后设置相应的数据 集,然后运行:
cd tools/
python train_net.py --num-gpus 8 \
--config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml
这些配置是为8-GPU训练而设计的。要在1个GPU上训练,您可能需要更改一些参数,例如:
python 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
写成一行:
python 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
对于大多数模型,不支持CPU训练。
要评估模型的性能,请使用:
cd tools
python 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
请参阅我们的 Colab Notebook 以了解如何使用detectron2 API来:
1.对现有模型进行推断
2.在自定义数据集上训练内置模型
有关在detectron2 上构建项目的更多方法,请参见detectron2 / projects。
Detectron2内置了对一些数据集的支持。假定数据集存在于环境变量指定的目录中 DETECTRON2_DATASETS。在该目录下,detectron2希望在下面描述的结构中查找数据集。
您可以通过设置内置数据集的位置。如果未设置,则默认为相对于您当前的工作目录。export DETECTRON2_DATASETS=/path/to/datasets./datasets
该 model zoo 包含CONFIGS并使用这些数据集内置构建机制。
coco/
annotations/
instances_{train,val}2017.json
person_keypoints_{train,val}2017.json
{train,val}2017/
# image files that are mentioned in the corresponding json
您也可以使用2014年版本的数据集。
某些内置测试(dev/run_*_tests.sh)使用了COCO数据集的小版本,您可以使用下载./prepare_for_tests.sh。
coco/
annotations/
panoptic_{train,val}2017.json
panoptic_{train,val}2017/ # png annotations
panoptic_stuff_{train,val}2017/ # generated by the script mentioned below
通过以下方式安装panopticapi:
pip install git+https://github.com/cocodataset/panopticapi.git
然后,运行,从全景标记中提取语义标记。python prepare_panoptic_fpn.py
coco/ {train,val,test}2017/ lvis/ lvis_v0.5_{train,val}.json lvis_v0.5_image_info_test.json
通过以下方式安装lvis-api:
pip install git+https://github.com/lvis-dataset/lvis-api.git
运行以准备“ cocofied” LVIS注释,以评估在COCO数据集上训练的模型。python prepare_cocofied_lvis.py
cityscapes/
gtFine/
train/
aachen/
color.png, instanceIds.png, labelIds.png, polygons.json,
labelTrainIds.png
...
val/
test/
leftImg8bit/
train/
val/
test/
通过以下方式安装城市景观脚本:
pip install git+https://github.com/mcordts/cityscapesScripts.git
注意:labelTrainIds.png是使用城市景观脚本创建的:
CITYSCAPES_DATASET=$DETECTRON2_DATASETS/cityscapes python cityscapesscripts/preparation/createTrainIdLabelImgs.py
实例细分不需要它们。
VOC20{07,12}/
Annotations/
ImageSets/
Main/
trainval.txt
test.txt
# train.txt or val.txt, if you use these splits
JPEGImages/
研究是以新的方式做事。这给如何在代码中创建抽象带来了压力,这对于任何规模很大的研究工程项目都是一个挑战:
一方面,它需要具有非常薄的抽象,以允许以新方式进行所有操作。打破现有的抽象并将其替换为新的抽象应该相当容易。
另一方面,这样的项目也需要合理的高级抽象,以便用户可以轻松地以标准方式执行操作,而不必担心仅某些研究人员关心的细节。
在detectron2中,有两种类型的接口可以共同解决这种压力:
1、带有config(cfg)参数的函数和类(有时只有几个额外的参数)。
这些函数和类实现“标准默认”行为:它将从配置中读取所需内容并执行“标准”操作。用户只需要加载一个给定的配置并传递它,而不必担心使用了哪些参数以及它们的含义。
2、具有定义明确的自变量的函数和类。
这些都是整个系统的一个很小的组成部分。他们需要用户的专业知识来理解每个参数应该是什么,并且需要付出更多的努力才能将它们组合成一个更大的系统。但是它们可以以更灵活的方式缝合在一起。
当您需要实现detectron2所包含的“标准默认值”不支持的功能时,可以重复使用这些定义明确的组件。
3、(实验性的)一些类通过 @configurable 装饰器实现-可以使用config或显式参数来调用它们。它们的显式参数接口目前处于试验阶段,可能会发生变化。
如果仅需要标准行为,则“ 初学者的教程” 就足够了。如果需要将detectron2扩展到自己的需要,请参阅以下教程以了解更多详细信息:
Detectron2包含一些标准数据集。要使用自定义数据集,请参阅 使用自定义数据集。
Detectron2包含创建用于从数据集中进行训练/测试的数据加载器的标准逻辑,但是您也可以编写自己的逻辑。请参阅使用自定义数据加载器。
Detectron2实现许多标准的检测模型,并为您提供覆盖其行为的方法。请参见使用模型和编写模型。
Detectron2提供了默认的训练循环,适用于常见的训练任务。您可以使用挂钩自定义它,也可以编写自己的循环。见训练。
detectron2配置安装,总目录:
1、coco数据集下载格式解析
2、win10下detectron2环境配置
3、windows10离线安装pycocotools
4、detectron2代码运行及数据集配置
5、detectron2使用自定义数据集及数据加载
6、detectron2模型使用、读写、训练及测试
7、detectron2配置与部署