在MMDetection中,所有的参数都使用字典dict的形式构建。 先看主要模型model,这里指定了backbone的结构,init_cfg为默认参数,后续载入模型会将其进行覆盖。 后面是train_pipeline和test_pipeline,定义了数据预处理的各种方式。 最后看第一行的_base_,这里相当于引用了另一个文件./faster_rcnn_r50_fpn_1x_coco.py的内...
train_cfg:训练时的各种阈值设置,字典格式。若是一阶段检测器,共四个key:assigner(字典格式),allowborder(允许bbox周围扩充像素,0表示不允许),pos_weight(正样本权重,-1表示不改变原始权重),debug(False表示不是debug模式)。二阶段检测器有所不同 test_cfg:测试时的各种阈值设置。同样,一阶段模型和二阶段模型的...
在其中调用forward_test函数并进一步调用simple_test从而执行测试过程。该函数位于MaskFormer类中,如下 class MaskFormer(SingleStageDetector): def __init__(self, backbone, neck=None, panoptic_head=None, panoptic_fusion_head=None, train_cfg=None, test_cfg=None, init_cfg=None): super(SingleStageDetector...
test_cfg=None, pretrained=None, init_cfg=None): super(RetinaNet, self).__init__(backbone, neck, bbox_head, train_cfg, test_cfg, pretrained, init_cfg) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 我们可以发现RetinaNet类构造函数的参数刚好和配置文件中type='Retina...
[--cfg-options ${CFG_OPTIONS}] {CONFIG}: 是config文件路径 {PREDICTION_PATH}: 是test.py得到的pkl文件路径 {SHOW_DIR}: 是绘制的到的图片存放的目录 --show: 决定是否显示,不指定的话,默认为不显示 --wait-time时间的间隔,若为 0 表示持续显示 ...
但是后续的train_cfg 与 test_cfg是没有指定具体的文件的,只有一些字段的组成:rpn,rpn_proposal,rcnn,首先就是探究这些字段是如何在函数中被调用的,先来直接查看父类TwoStageDetector。 在TwoStageDetector中的__init__函数中可以发现,为什么会在train_cfg中使用rpn,rpn_proposal,rcnn这些字段,是因为这是初始化的...
runner.run(data_loaders,cfg.workflow,cfg.total_epochs) 上面的流程比较简单,一般大家比较难以理解的是runner.run内部逻辑,下小节进行详细分析。而对于测试逻辑,由于比较简单,就不详细描述了。简单来说,测试流程下不需要 runner,直接加载训练好的权重,然后进行 model 推理即可。
model=build_detector(cfg.model,test_cfg=cfg.test_cfg)_=load_checkpoint(model,'https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth')# test a single image img=mmcv.imread('test.jpg')result=inference_detector(model,img,cfg)sh...
forward_train():训练模式的forward方法simple_test():无扩展的单尺度测试aug_test():扩展测试(多尺度、翻转等)TwoStageDetector (https://github.com/hellock/mmdetection/blob/master/mmdet/models/detectors/two_stage.py) 是一个很好的例子,展示了如何做到这一点。迭代管道 我们对单台机器和多台机器都采用...
@DETECTORS.register_module() # 表示这个类已经注册 class RetinaNet(SingleStageDetector): """Implementation of `RetinaNet <https://arxiv.org/abs/1708.02002>`_""" def __init__(self, backbone, neck, bbox_head, train_cfg=None, test_cfg=None, pretrained=None, init_cfg=None): super(RetinaNet...