快捷方式

变更日志 v2.x

v2.25.0 (2022 年 5 月 31 日)

亮点

  • 支持专用 WandbLogger hook

  • 支持 ConvNeXtDDODSOLOv2

  • 支持 Mask2Former 用于实例分割

  • 重命名 Mask2Former 的配置文件

向后不兼容的更改

  • 重命名 Mask2Former 的配置文件 (#7571)

    v2.25.0 之前 v2.25.0 之后
    • mask2former_xxx_coco.py 代表用于 **全景分割** 的配置文件。

    • mask2former_xxx_coco.py 代表用于 **实例分割** 的配置文件。

    • mask2former_xxx_coco-panoptic.py 代表用于 **全景分割** 的配置文件。

新功能

错误修复

  • 在不同设备上启用 YOLOX 训练 (#7912)

  • 修复使用 interval != 1 进行评估时的日志绘图错误 (#7784)

  • 修复 HTC 的 RuntimeError (#8083)

改进

  • 支持专用 WandbLogger hook (#7459)

    用户可以在配置文件中设置

    cfg.log_config.hooks = [
      dict(type='MMDetWandbHook',
           init_kwargs={'project': 'MMDetection-tutorial'},
           interval=10,
           log_checkpoint=True,
           log_checkpoint_metadata=True,
           num_eval_images=10)]
    

    以使用 MMDetWandbHook。示例可以在此 colab 教程 中找到

  • 添加 AvoidOOM 以避免 OOM (#7434, #8091)

    尝试使用 AvoidCUDAOOM 以避免 GPU 内存不足。它将在调用 torch.cuda.empty_cache() 后重试。如果仍然失败,它将通过将输入类型转换为 FP16 格式来重试。如果仍然失败,它将尝试将输入从 GPU 复制到 CPU 以继续计算。尝试在代码中使用 AvoidOOM,以便在 GPU 内存不足时继续运行代码

    from mmdet.utils import AvoidCUDAOOM
    
    output = AvoidCUDAOOM.retry_if_cuda_oom(some_function)(input1, input2)
    

    用户也可以尝试使用 AvoidCUDAOOM 作为装饰器,以便在 GPU 内存不足时继续运行代码

    from mmdet.utils import AvoidCUDAOOM
    
    @AvoidCUDAOOM.retry_if_cuda_oom
    def function(*args, **kwargs):
        ...
        return xxx
    
  • 支持从 cfg.evaluation.gpu_collect 读取 gpu_collect (#7672)

  • 通过加速数据加载阶段来加速视频推理 (#7832)

  • 支持将 ${key} 替换为 cfg.key 的值 (#7492)

  • analyze_result.py 中加速结果分析。评估时间提高了 10 ~ 15 倍,现在只需要 10 ~ 15 分钟即可完成任务。(#7891)

  • 支持在 DilatedEncoder 中设置 block_dilations (#7812)

  • 支持全景分割结果分析 (#7922)

  • 发布带有 Swin-Large 主干的 DyHead (#7733)

  • 文档更新和添加

    • 修复 SwinTransformeract_cfg 的错误默认类型 (#7794)

    • 修复教程中的文字错误 (#7959)

    • 重写 安装指南 (#7897)

    • 有用的钩子 (#7810)

    • 修复文档中的标题锚点 (#8006)

    • mdformat 替换 markdownlint 以避免安装 ruby (#8009)

贡献者

总共有 20 位开发人员为此次发布做出了贡献。

感谢 @ZwwWayne、@DarthThomas、@solyaH、@LutingWang、@chenxinfeng4、@Czm369、@Chenastron、@chhluo、@austinmw、@Shanyaliux @hellock、@Y-M-Y、@jbwang1997、@hhaAndroid、@Irvingao、@zhanggefan、@BIGWangYuDong、@Keiku、@PeterVennerstrom、@ayulockin

v2.24.0 (2022 年 4 月 26 日)

亮点

新功能

  • 支持 简单复制粘贴是实例分割的一种强大数据增强方法,请参阅 示例配置文件 (#7501)

  • 支持类感知采样器,用户可以在配置文件中设置

    data=dict(train_dataloader=dict(class_aware_sampler=dict(num_sample_class=1))))
    

    以使用 ClassAwareSampler。示例可以在 OpenImages 数据集的配置文件 中找到。(#7436)

  • 支持根据 GPU 数量和每个 GPU 的样本数自动缩放 LR。(#7482) 在每个配置文件中,都有一个与之对应的自动缩放 LR 的配置文件,如下所示,

    auto_scale_lr = dict(enable=True, base_batch_size=N)
    

    其中 N 是配置文件中使用的批处理大小(也等于 samples_per_gpu * GPU 数量,用于训练此配置文件)。默认情况下,我们设置 enable=False,因此原始用法不会受到影响。用户可以在每个配置文件中设置 enable=True,或者在命令行后添加 --auto-scale-lr 来启用此功能,并且应该检查自定义配置文件中 base_batch_size 的正确性。

  • 支持在配置文件中设置数据加载器参数,并添加函数来处理配置文件兼容性。(#7668) 旧用法和新用法的比较如下所示。

    v2.23.0 v2.24.0
    data = dict(
        samples_per_gpu=64, workers_per_gpu=4,
        train=dict(type='xxx', ...),
        val=dict(type='xxx', samples_per_gpu=4, ...),
        test=dict(type='xxx', ...),
    )
    
    # A recommended config that is clear
    data = dict(
        train=dict(type='xxx', ...),
        val=dict(type='xxx', ...),
        test=dict(type='xxx', ...),
        # Use different batch size during inference.
        train_dataloader=dict(samples_per_gpu=64, workers_per_gpu=4),
        val_dataloader=dict(samples_per_gpu=8, workers_per_gpu=2),
        test_dataloader=dict(samples_per_gpu=8, workers_per_gpu=2),
    )
    
    # Old style still works but allows to set more arguments about data loaders
    data = dict(
        samples_per_gpu=64,  # only works for train_dataloader
        workers_per_gpu=4,  # only works for train_dataloader
        train=dict(type='xxx', ...),
        val=dict(type='xxx', ...),
        test=dict(type='xxx', ...),
        # Use different batch size during inference.
        val_dataloader=dict(samples_per_gpu=8, workers_per_gpu=2),
        test_dataloader=dict(samples_per_gpu=8, workers_per_gpu=2),
    )
    
  • 支持内存分析钩子。用户可以使用它来监控训练期间的内存使用情况,如下所示 (#7560)

    custom_hooks = [
        dict(type='MemoryProfilerHook', interval=50)
    ]
    
  • 支持在带有 MLU 芯片的 PyTorch 上运行 (#7578)

  • 支持使用标签重新拆分数据批次 (#7641)

  • 支持 DiceCost,该方法由 K-NetMaskHungarianAssigner 中使用 (#7716)

  • 支持拆分 COCO 数据以用于半监督目标检测 (#7431)

  • 支持 Pathlib 用于 Config.fromfile (#7685)

  • 支持在 OpenImages 数据集中使用文件客户端 (#7433)

  • 在 Mosaic 转换中添加概率参数 (#7371)

  • 支持在 Resize 管道中指定插值模式 (#7585)

错误修复

  • 避免 deform_sampling 后的无效 bbox (#7567)

  • 修复导出混淆矩阵时参数 color_theme 不起作用的问题 (#7701)

  • 修复 Necks 中的 end_level,它应该是结束输入主干级别的索引 (#7502)

  • 修复了mix_resultsMultiImageMixDataset中可能为 None 的 bug (#7530)

  • 修复了 ResNet 插件中使用两个插件时的 bug (#7797)

改进

  • 增强了 analyze_logs.py 中的 load_json_logs 用于恢复训练日志 (#7732)

  • 在 image_demo.py 中添加了参数 out_file (#7676)

  • 允许使用 SimOTAAssigner 进行混合精度训练 (#7516)

  • 将 INF 更新为 100000.0,与官方 YOLOX 中的相同 (#7778)

  • 添加了以下内容的文档:

    • 如何获取新主干的通道数 (#7642)

    • 如何解冻主干网络 (#7570)

    • 如何训练 fast_rcnn 模型 (#7549)

    • 可变形 DETR 中的 proposals (#7690)

    • get_started.md 中的从头开始安装脚本 (#7575)

  • 发布以下内容的预训练模型:

    • Mask2Former (#7595, #7709)

    • 带有 ResNet-18 的 RetinaNet 和发布模型 (#7387)

    • 带有 EfficientNet 主干的 RetinaNet (#7646)

贡献者

共有 27 位开发者为本次发布做出了贡献。感谢 @jovialio、@zhangsanfeng2022、@HarryZJ、@jamiechoi1995、@nestiank、@PeterH0323、@RangeKing、@Y-M-Y、@mattcasey02、@weiji14、@Yulv-git、@xiefeifeihu、@FANG-MING、@meng976537406、@nijkah、@sudz123、@CCODING04、@SheffieldCao、@Czm369、@BIGWangYuDong、@zytx121、@jbwang1997、@chhluo、@jshilong、@RangiLyu、@hhaAndroid、@ZwwWayne

v2.23.0 (2022 年 3 月 28 日)

亮点

新功能

  • 支持 Mask2Former(#6938)(#7466)(#7471)

  • 支持 EfficientNet (#7514)

  • 支持通过环境变量 MMDET_DATASETS 设置数据根目录,用户不再需要修改配置文件中的相应路径。 (#7386)

  • 支持为不同的排名设置不同的种子 (#7432)

  • 更新了 dist_train.sh,以便该脚本可以用于在没有 slurm 的机器上支持启动多节点训练 (#7415)

  • 为使用 Torchvision 预训练的高精度 ResNet 主干找到了一种好的微调方案 (#7489)

错误修复

  • 修复了 VOC 单元测试中删除数据目录的错误 (#7270)

  • 调整了 get_classesFileClient 的顺序 (#7276)

  • 将 yolox_head 中 get_bboxes 的输入强制转换为 float32 (#7324)

  • 修复了 LoadPanopticAnnotations 中参数位置错误的问题 (#7388)

  • 修复了 CELoss 中 reduction=mean 的问题。 (#7449)

  • 更新了 CrossEntropyCost 的单元测试 (#7537)

  • 修复了全景分割评估中的内存泄漏问题 (#7538)

  • 修复了 YOLOv3 中形状广播的错误 (#7551)

改进

  • 添加了 onnx2tensorrt.md 的中文版 (#7219)

  • 更新了 Colab 教程 (#7310)

  • 更新了关于定位蒸馏的信息 (#7350)

  • 添加了 finetune.md 的中文版 (#7178)

  • 更新了非正方形输入的 YOLOX 日志 (#7235)

  • coco_panoptic.py 中添加了 nproc 用于计算全景质量 (#7315)

  • 允许在 LoadImageFromFile 中设置 channel_order (#7258)

  • 将点采样相关函数从 mask_point_head 中分离出来 (#7353)

  • 为 coco_panoptic 添加了实例评估 (#7313)

  • 增强了 analyze_logs.py 的鲁棒性 (#7407)

  • 同步随机种子的补充说明 (#7440)

  • 更新了交叉熵损失的文档字符串 (#7472)

  • 更新了 Pascal VOC 结果 (#7503)

  • 我们创建了“如何操作”文档来记录有关“如何做 xxx”的任何问题。在本版本中,我们添加了

    • 如何使用 Mosaic 增强 (#7507)

    • 如何使用 mmcls 中的主干 (#7438)

    • 如何在 COCO test-dev 集上生成和提交全景分割模型的预测结果 (#7430)

贡献者

共有 27 位开发者为本次发布做出了贡献。感谢 @ZwwWayne、@haofanwang、@shinya7y、@chhluo、@yangrisheng、@triple-Mu、@jbwang1997、@HikariTJU、@imflash217、@274869388、@zytx121、@matrixgame2018、@jamiechoi1995、@BIGWangYuDong、@JingweiZhang12、@Xiangxu-0103、@hhaAndroid、@jshilong、@osbm、@ceroytres、@bunge-bedstraw-herb、@Youth-Got、@daavoo、@jiangyitong、@RangiLyu、@CCODING04、@yarkable

v2.22.0 (2022 年 2 月 24 日)

亮点

新功能

  • 支持 MaskFormer (#7212)

  • 支持 DyHead (#6823)

  • 支持 ResNet Strikes Back (#7001)

  • 支持 OpenImages Dataset (#6331)

  • 支持 TIMM backbone (#7020)

  • 支持全景分割的可视化 (#7041)

重大变更

为了支持全景分割的可视化,使用 get_palette 函数来确定是否使用全景调色板时,num_classes 不能为 None

错误修复

  • 修复了当 key_score 为 None 时,无法保存最佳检查点的错误 (#7101)

  • 修复了 MixUp 变换过滤器框失败的情况 (#7080)

  • 在 SABLHead 中添加了缺少的属性 (#7091)

  • 修复了混淆矩阵中存在 NaN 时的错误 (#7147)

  • 修复了下游任务中的 PALETTE AttributeError (#7230)

改进

  • 加速 SimOTA 匹配 (#7098)

  • 添加了 docs_zh-CN/tutorials/init_cfg.md 的中文翻译 (#7188)

贡献者

共有 20 位开发者为本次发布做出了贡献。感谢 @ZwwWayne、@hhaAndroid、@RangiLyu、@AronLin、@BIGWangYuDong、@jbwang1997、@zytx121、@chhluo、@shinya7y、@LuooChen、@dvansa、@siatwangmin、@del-zhenwu、@vikashranjan26、@haofanwang、@jamiechoi1995、@HJoonKwon、@yarkable、@zhijian-liu、@RangeKing

v2.21.0 (2022 年 2 月 8 日)

重大变更

为了标准化 OpenMMLab 项目中配置文件的 README 和元数据文件的内容,每个配置文件目录中的 README 和元数据文件已发生重大变化。该模板将在未来发布,目前,您可以参考以下内容的 README 示例:算法数据集主干。为了与标准保持一致,dcn 中的配置文件被放入了两个名为 dcndcnv2 的目录中。

新功能

  • 允许在可视化期间自定义不同类别的颜色 (#6716)

  • 支持 CPU 训练 (#7016)

  • 添加了 COCO、LVIS 和 VOC 数据集的下载脚本 (#7015)

错误修复

  • 修复了带有 Swin-S 的 RetinaNet 的权重转换问题 (#6973)

  • 更新了 __repr__Compose (#6951)

  • 修复了构建 Docker 时的 BadZipFile 错误 (#6966)

  • 修复了非分布式多 GPU 训练/测试中的错误 (#7019)

  • 修复了 PyTorch 1.10 中的 bbox 钳位问题 (#7074)

  • 放宽了数据集包装器中 PALETTE 的要求 (#7085)

  • 在 PAA 头中重新分配之前保留相同的权重 (#7032)

  • 更新了文档中的代码演示 (#7092)

改进

  • 通过允许设置多处理的变量来加速训练 (#6974, #7036)

  • 在 readme 中添加了中文教程的链接 (#6897)

  • 默认情况下禁用 cv2 多处理以进行加速 (#6867)

  • 弃用对“python setup.py test”的支持 (#6998)

  • 重新组织元数据文件和配置文件的 readme (#7051)

  • 通过添加 SigmoidGeometricMean 来修复 TOOD 训练期间的 None grad 问题 (#7090)

贡献者

共有 26 位开发者为本次发布做出了贡献。感谢 @del-zhenwu、@zimoqingfeng、@srishilesh、@imyhxy、@jenhaoyang、@jliu-ac、@kimnamu、@ShengliLiu、@garvan2021、@ciusji、@DIYer22、@kimnamu、@q3394101、@zhouzaida、@gaotongxiao、@topsy404、@AntoAndGar、@jbwang1997、@nijkah、@ZwwWayne、@Czm369、@jshilong、@RangiLyu、@BIGWangYuDong、@hhaAndroid、@AronLin

v2.20.0 (2021 年 12 月 27 日)

新功能

  • 支持 TOOD: Task-aligned One-stage Object Detection (ICCV 2021 Oral) (#6746)

  • 支持从最新检查点自动恢复 (#6727)

错误修复

  • 修复了 PAA 头的错误 bbox loss_weight (#6744)

  • 修复了批次合并中 gt_semantic_seg 的填充值问题 (#6837)

  • 修复了使用 classwise 时 lvis 的测试错误 (#6845)

  • 避免 get_local_path 的 BC-breaking (#6719)

  • 修复了当 BN 层不存在时,sync_norm_hook 中的错误 (#6852)

  • 无论平台如何,都直接使用 pycocotools (#6838)

改进

  • 为 SimOTA 添加了没有有效 bbox 的单元测试 (#6770)

  • 使用 precommit 检查 readme (#6802)

  • 支持在非分布式测试时间选择 GPU-id (#6781)

贡献者

共有 16 位开发者为本次发布做出了贡献。感谢 @ZwwWayne、@Czm369、@jshilong、@RangiLyu、@BIGWangYuDong、@hhaAndroid、@jamiechoi1995、@AronLin、@Keiku、@gkagkos、@fcakyon、@www516717402、@vansin、@zactodd、@kimnamu、@jenhaoyang

v2.19.1 (2021 年 12 月 14 日)

新功能

  • 发布 YOLOX COCO 预训练模型 (#6698)

错误修复

  • 修复 DenseHead 中的 DCN 初始化 (#6625)

  • 修复 ConvFCHead 的初始化 (#6624)

  • 修复 RCNN 中的 PseudoSampler (#6622)

  • 修复 Swin 和 PVT 中的权重初始化 (#6663)

  • 修复 BaseDenseHead 中的 dtype 错误 (#6767)

  • 修复 SimOTA 无有效 bbox 的问题 (#6733)

改进

  • 添加将 swin 和单阶段模型结合的示例 (#6621)

  • 在 dataset_wrappers 中添加 get_ann_info (#6526)

  • 支持在 YOLOX 的多尺度训练中保持图像比例 (#6732)

  • 支持 YOLOX 增强中的 bbox_clip_border (#6730)

文档

  • 更新元文件 (#6717)

  • 在 readme 中添加 mmhuman3d (#6699)

  • 更新 FAQ 文档 (#6587)

  • 添加 detect_anomalous_params 的文档 (#6697)

贡献者

共有 11 位开发人员贡献了此版本。感谢 @ZwwWayne,@LJoson,@Czm369,@jshilong,@ZCMax,@RangiLyu,@BIGWangYuDong,@hhaAndroid,@zhaoxin111,@GT9505,@shinya7y

v2.19.0 (2021/11/29)

亮点

  • 支持 标签分配蒸馏

  • 支持 Pytorch >= 1.7 的 persistent_workers

  • 将准确率与更新后的官方 YOLOX 对齐

新功能

错误修复

  • 修复重复输出警告消息的问题 (#6584)

  • 避免在分布式训练中无限等待 GPU (#6501)

  • 修复 SSD512 配置错误 (#6574)

  • 修复 MMDetection 模型到 ONNX 的命令 (#6558)

改进

  • 重构 FP16 模型的配置 (#6592)

  • 将准确率与更新后的官方 YOLOX 对齐 (#6443)

  • 使用 PhotoMetricDistortion 时,加快训练速度并减少内存消耗。 (#6442)

  • 使 OHEM 与 seesaw 损失一起工作 (#6514)

文档

  • 更新 README.md (#6567)

贡献者

共有 11 位开发人员贡献了此版本。感谢 @FloydHsiu,@RangiLyu,@ZwwWayne,@AndreaPi,@st9007a,@hachreak,@BIGWangYuDong,@hhaAndroid,@AronLin,@chhluo,@vealocia,@HarborYuan,@st9007a,@jshilong

v2.18.1 (2021/11/15)

亮点

  • 发布 QueryInst 预训练权重 (#6460)

  • 支持绘制混淆矩阵 (#6344)

新功能

  • 发布 QueryInst 预训练权重 (#6460)

  • 支持绘制混淆矩阵 (#6344)

错误修复

  • 修复预测 bbox 数为 0 时,aug 测试错误 (#6398)

  • 修复 PVT 中的 SpatialReductionAttention (#6488)

  • 修复 PVT 和 Swin-Transformer 中错误使用 trunc_normal_init (#6432)

改进

  • 将 COCO API 的打印的 AP 信息保存到记录器 (#6505)

  • 在加载检查点时始终将位置映射到 cpu (#6405)

  • 在用户未设置种子时设置随机种子 (#6457)

文档

  • Corruption Benchmarking 的中文版 (#6375)

  • 修复文档中的配置路径 (#6396)

  • 更新 GRoIE 自述文件 (#6401)

贡献者

共有 11 位开发人员贡献了此版本。感谢 @st9007a,@hachreak,@HarborYuan,@vealocia,@chhluo,@AndreaPi,@AronLin,@BIGWangYuDong,@hhaAndroid,@RangiLyu,@ZwwWayne

v2.18.0 (2021/10/27)

亮点

  • 支持 QueryInst (#6050)

  • 重构密集头部,将 onnx 导出逻辑与 get_bboxes 分离,并加快推理速度 (#5317, #6003, #6369, #6268, #6315)

新功能

  • 支持 QueryInst (#6050)

  • 支持无限采样器 (#5996)

错误修复

  • 修复 fcn_mask_head 中的 init_weight (#6378)

  • 修复 RPN 的 imshow_bboxes 中的类型错误 (#6386)

  • 修复 MMDetection 教程中损坏的 colab 链接 (#6382)

  • 确保 scale_factor 的设备和 dtype 与 bboxes 相同 (#6374)

  • 移除采样硬编码 (#6317)

  • 修复 RandomAffine bbox 坐标校正 (#6293)

  • 修复 convfc 头部中最终 cls/reg 层的初始化错误 (#6279)

  • 修复 auto_augment 中 img_shape 损坏 (#6259)

  • 修复 two_stage 中缺少 kwargs 参数错误 (#6256)

改进

  • 统一东西头部和全景头部接口 (#6308)

  • 润色自述文件 (#6243)

  • 添加代码拼写预提交钩子并修复一个拼写错误 (#6306)

  • 修复拼写错误 (#6245, #6190)

  • 修复采样器单元测试 (#6284)

  • 修复 YOLACT 的 forward_dummy 以启用 get_flops (#6079)

  • 修复配置文档中的链接错误 (#6252)

  • 调整顺序以美化文档 (#6195)

重构

  • 重构单阶段 get_bboxes 逻辑 (#5317)

  • 重构单阶段模型的 ONNX 导出 (#6003, #6369)

  • 重构 dense_head 并加速 (#6268)

  • 迁移到在密集头的训练中使用 prior_generator (#6315)

贡献者

共有 18 位开发人员贡献了此版本。感谢 @Boyden,@onnkeat,@st9007a,@vealocia,@yhcao6,@DapangpangX,@yellowdolphin,@cclauss,@kennymckormick,@pingguokiller,@collinzrj,@AndreaPi,@AronLin,@BIGWangYuDong,@hhaAndroid,@jshilong,@RangiLyu,@ZwwWayne

v2.17.0 (2021/09/28)

亮点

  • 支持 PVTPVTv2

  • 支持 SOLO

  • 支持大规模抖动和新的 Mask R-CNN 基线

  • 加速 YOLOv3 推理

新功能

  • 支持 PVTPVTv2 (#5780)

  • 支持 SOLO (#5832)

  • 支持大规模抖动和新的 Mask R-CNN 基线 (#6132)

  • 添加模型结果的通用数据结构 (#5508)

  • 添加单阶段实例分割的基类 (#5904)

  • 加速 YOLOv3 推理 (#5991)

  • 发布 Swin Transformer 预训练模型 (#6100)

  • 支持 YOLOX 中的混合精度训练 (#5983)

  • 支持 YOLACT 中的 val 工作流程 (#5986)

  • 添加脚本以测试 torchserve (#5936)

  • 支持具有动态输入形状的 onnxsim (#6117)

错误修复

  • 修复 model_wrappers 中的函数命名错误 (#5975)

  • 修复输入为空张量时的回归损失错误 (#5976)

  • 修复 centernet_head 中的分数不连续错误 (#6016)

  • 修复 imshow_bboxes 中缺少参数的错误 (#6034)

  • 修复 HTCaug_test 中的错误,当 det_bboxes 的长度为 0 时 (#6088)

  • 修复一些两阶段模型训练中的空提案错误 (#5941)

  • 修复 ONNX 动态形状导出中的 dynamic_axes 参数错误 (#6104)

  • 修复 SyncRandomSizeHookdynamic_shape 错误 (#6144)

  • 修复配置中 Swin Transformer 配置链接错误 (#6172)

改进

  • Mosaic 变换中添加过滤规则 (#5897)

  • 在 get flops 中添加大小除数以避免一些潜在的错误 (#6076)

  • 添加 docs_zh-CN/tutorials/customize_dataset.md 的中文翻译 (#5915)

  • 添加 conventions.md 的中文翻译 (#5825)

  • 添加数据管道输出的描述 (#5886)

  • PanopticFPN 的 README 文件中添加数据集信息 (#5996)

  • 添加 DropBlock 层的 extra_repr 以在模型打印中获得详细信息 (#6140)

  • 修复 CI 内存不足并添加 PyTorch1.9 Python3.9 单元测试 (#5862)

  • 修复一些模型的下载链接错误 (#6069)

  • 改进 XML 数据集的泛化能力 (#5943)

  • 润色断言错误消息 (#6017)

  • 通过 albumentations 移除 opencv-python-headless 依赖项 (#5868)

  • 在变换单元测试中检查 dtype (#5969)

  • 将文档的默认主题替换为 PyTorch Sphinx 主题 (#6146)

  • 更新元文件中的论文和代码字段 (#6043)

  • 支持自定义分割图的填充值 (#6152)

  • 支持调整多个分割图的大小 (#5747)

贡献者

共有 24 位开发人员贡献了此版本。感谢 @morkovka1337,@HarborYuan,@guillaumefrd,@guigarfr,@www516717402,@gaotongxiao,@ypwhs,@MartaYang,@shinya7y,@justiceeem,@zhaojinjian0000,@VVsssssk,@aravind-anantha,@wangbo-zhao,@czczup,@whai362,@czczup,@marijnl,@AronLin,@BIGWangYuDong,@hhaAndroid,@jshilong,@RangiLyu,@ZwwWayne

v2.16.0 (2021/08/30)

亮点

新功能

  • 支持 全景 FPN 并发布模型 (#5577, #5902)

  • 支持 Swin Transformer 主干网络 (#5748)

  • 发布使用多尺度 3x 计划预训练的 RetinaNet 模型 (#5636)

  • 添加脚本将未标记图像列表转换为 coco 格式 (#5643)

  • 添加钩子以检查损失值是否有效 (#5674)

  • 添加 YOLO 锚优化工具 (#5644)

  • 支持导出不带后处理的 onnx 模型。 (#5851)

  • 支持 CocoPanopticDataset 中的类别级评估 (#5896)

  • 为连接的数据集调整 browse_dataset。 (#5935)

  • 添加 PatchEmbedPatchMerging,并使用 AdaptivePadding (#5952)

错误修复

  • 修复 YOLOX 的单元测试 (#5859)

  • 修复 imshow_det_bboxes 中的随机性损失 (#5845)

  • 使 ImageToTensor 的输出结果连续 (#5756)

  • 修复在某些情况下 RoIHead 中调用 regress_by_class 时的推理错误 (#5884)

  • 修复 CIoU 损失中的错误,其中 alpha 不应具有梯度。 (#5835)

  • 修复 HRNet 中 multiscale_output 被定义但未使用的问题 (#5887)

  • 将 EvalHook 的优先级设置为 LOW。 (#5882)

  • 修复测试模式下应用 bbox 重新缩放时的 YOLOX 错误 (#5899)

  • 修复马赛克坐标错误 (#5947)

  • 修复 RandomAffine 中 bbox 的数据类型。 (#5930)

改进

  • 添加 data_pipeline 的中文版本和 (#5662)

  • 支持在发布模型时移除 EMA 的状态字典。 (#5858)

  • 重构 HTC 和 SCNet 中的损失函数 (#5881)

  • 使用警告代替 logger.warning (#5540)

  • 在 VOC 的度量标准中使用传统坐标 (#5627)

  • 添加 customize_losses 的中文版本 (#5826)

  • 添加 model_zoo 的中文版本 (#5827)

贡献者

共有 19 位开发者为本次发布做出了贡献。感谢 @ypwhs, @zywvvd, @collinzrj, @OceanPang, @ddonatien, @@haotian-liu, @viibridges, @Muyun99, @guigarfr, @zhaojinjian0000, @jbwang1997,@wangbo-zhao, @xvjiarui, @RangiLyu, @jshilong, @AronLin, @BIGWangYuDong, @hhaAndroid, @ZwwWayne

v2.15.1 (11/8/2021)

亮点

新功能

  • 支持 YOLOX(#5756, #5758, #5760, #5767, #5770, #5774, #5777, #5808, #5828, #5848)

错误修复

  • 更新正确的 SSD 模型。 (#5789)

  • 修复掩码结构中的类型转换错误 (#5820)

  • 修复 MMCV 部署文档链接。 (#5790)

改进

  • 在 TorchServe dockerfile 中使用动态 MMCV 下载链接 (#5779)

  • 将函数 upsample_like 重命名为 interpolate_as 以便于更广泛的应用 (#5788)

贡献者

共有 14 位开发者为本次发布做出了贡献。感谢 @HAOCHENYE, @xiaohu2015, @HsLOL, @zhiqwang, @Adamdad, @shinya7y, @Johnson-Wang, @RangiLyu, @jshilong, @mmeendez8, @AronLin, @BIGWangYuDong, @hhaAndroid, @ZwwWayne

v2.15.0 (02/8/2021)

亮点

  • 支持在 pip 安装期间添加 MIM 依赖项

  • 支持 MobileNetV2 用于 SSD-Lite 和 YOLOv3

  • 支持中文文档

新功能

  • 添加函数 upsample_like (#5732)

  • 支持输出 pdf 和 epub 格式的文档 (#5738)

  • 支持并发布 Cascade Mask R-CNN 3x 预训练模型 (#5645)

  • 向 CrossEntropyLoss 添加 ignore_index (#5646)

  • 支持在 pip 安装期间添加 MIM 依赖项 (#5676)

  • 添加 MobileNetV2 配置和 YOLOv3 模型 (#5510)

  • 支持 COCO 全景数据集 (#5231)

  • 支持级联模型的 ONNX 导出 (#5486)

  • 支持带有 RetinaNet 的 DropBlock (#5544)

  • 支持 MobileNetV2 SSD-Lite (#5526)

错误修复

  • 修复 multiclass_nms 中标签的设备问题 (#5673)

  • 修复配置文件中从预训练检查点初始化主干网络的错误 (#5603, #5550)

  • 修复 RegNet 预训练权重的下载链接 (#5655)

  • 修复给定空提案的双阶段运行时错误 (#5559)

  • 修复 DETR 中的浮点运算计数错误 (#5654)

  • 修复 NumClassCheckHook 未使用时的单元测试 (#5626)

  • 修复使用自定义数据集的描述错误 (#5546)

  • 修复 multiclass_nms 返回全局索引的错误 (#5592)

  • 修复 RPNHead 中的 valid_mask 逻辑错误 (#5562)

  • 修复预训练配置的单元测试错误 (#5561)

  • 修复 anchor_head.py 中的拼写错误 (#5555)

  • 修复使用数据集包装器时的错误 (#5552)

  • 修复 demo/MMDet_Tutorial.ipynb 中的拼写错误 (#5511)

  • 修复 cfg.log_level 不为 None 时 get_root_logger 中的崩溃问题 (#5521)

  • 修复 docker 版本 (#5502)

  • 修复使用 IterBasedRunner 时的优化器参数错误 (#5490)

改进

  • 为 MMTracking 添加单元测试 (#5620)

  • 添加文档的中文翻译 (#5718, #5618, #5558, #5423, #5593, #5421, #5408. #5369, #5419, #5530, #5531)

  • 更新资源限制 (#5697)

  • 更新 InstaBoost 的文档字符串 (#5640)

  • 支持所有损失函数中的键 reduction_override (#5515)

  • 使用 repeatdataset 加速 CenterNet 训练 (#5509)

  • 删除 autoassign 中不必要的代码 (#5519)

  • 添加有关 init_cfg 的文档 (#5273)

贡献者

共有 18 位开发者为本次发布做出了贡献。感谢 @OceanPang, @AronLin, @hellock, @Outsider565, @RangiLyu, @ElectronicElephant, @likyoo, @BIGWangYuDong, @hhaAndroid, @noobying, @yyz561, @likyoo, @zeakey, @ZwwWayne, @ChenyangLiu, @johnson-magic, @qingswu, @BuxianChen

v2.14.0 (29/6/2021)

亮点

  • 向密集头部添加 simple_test 以提高单阶段和双阶段检测器的一致性

  • test_mixins 回滚到单图像测试,以提高效率和可读性

  • 添加使用多尺度训练(3x 计划)的 Faster R-CNN 和 Mask R-CNN 配置

新功能

  • 支持来自 MoCo v2 和 SwAV 的预训练模型 (#5286)

  • 添加使用多尺度训练(3x 计划)的 Faster R-CNN 和 Mask R-CNN 配置 (#5179, #5233)

  • 在 MSELoss 中添加 reduction_override (#5437)

  • 稳定支持将 DETR 导出到具有动态形状和批处理推理的 ONNX (#5168)

  • 稳定支持将 PointRend 导出到具有动态形状和批处理推理的 ONNX (#5440)

错误修复

  • 修复 multiclass_nms 中的大小不匹配错误 (#4980)

  • 修复 MultiScaleDeformableAttention 的导入路径 (#5338)

  • 修复 GCNet ResNext101 模型配置中的错误 (#5360)

  • 修复 Grid-RCNN 没有 bbox 结果时的错误 (#5357)

  • 修复设置 reg_class_agnostic 时 bbox_head 的 onnx_export 中的错误 (#5468)

  • 修复文档中 AutoAssign 的类型错误 (#5478)

  • 修复以 .md 结尾的网页链接 (#5315)

改进

  • 向密集头部添加 simple_test 以提高单阶段和双阶段检测器的一致性 (#5264)

  • 添加对 TTA 中掩码对角线翻转的支持 (#5403)

  • test_mixins 回滚到单图像测试,以提高效率和可读性 (#5249)

  • 使 YOLOv3 Neck 更灵活 (#5218)

  • 重构 SSD 以使其更通用 (#5291)

  • 重构 anchor_generatorpoint_generator (#5349)

  • 允许配置 HTC 算法的 mask_head (#5389)

  • 删除 FPN 中已弃用的警告 (#5311)

  • model.pretrained 移动到 model.backbone.init_cfg (#5370)

  • 使部署工具更易于使用 (#5280)

  • 阐明安装文档 (#5316)

  • 添加 ImageNet 预训练模型文档 (#5268)

  • 添加关于训练损失=nan 解决方案和 COCO AP 或 AR =-1 的常见问题解答 (# 5312, #5313)

  • 将所有 http 权重链接更改为 https (#5328)

v2.13.0 (01/6/2021)

亮点

新功能

错误修复

  • 修复 YOLOv3 FP16 训练错误 (#5172)

  • 修复当 det_bboxes 长度为 0 时 Cascade R-CNN TTA 测试错误 (#5221)

  • 修复 VOC 回调计算函数中 iou_thr 变量命名错误 (#5195)

  • 修复 Faster R-CNN 在 ONNX Runtime 中性能下降的问题 (#5197)

  • 修复在迭代过程中使用 python 3.8 时 DETR 字典发生变化的错误 (#5226)

改进

  • 重构两阶段检测器的 ONNX 导出 (#5205)

  • 为了保持一致性,将 MMDetection 的 EvalHook 替换为 MMCV 的 EvalHook (#4806)

  • 更新 ONNX 的 RoI 提取器 (#5194)

  • 在 YOLOv3 头部使用更好的参数初始化,以提高性能 (#5181)

  • 通过混合精度训练发布 Mask R-CNN 的新 DCN 模型 (#5201)

  • 更新 YOLOv3 模型权重 (#5229)

  • 添加 DetectoRS ResNet-101 模型权重 (#4960)

  • 丢弃大小等于 min_bbox_size 的边界框 (#5011)

  • 删除 DETR 头部中的重复代码 (#5129)

  • 删除类定义中的不必要对象 (#5180)

  • 修复文档链接 (#5192)

v2.12.0 (2021/01/05)

亮点

向后不兼容的更改

从 v2.12.0 到 v2.15.0 (可能更长) 的版本中,MMDetection 正在进行大规模重构,以便更通用和便捷地使用。在 v2.12.0 中,MMDetection 不可避免地带来了一些 BC-breakings,包括 MMCV 依赖项、模型初始化、模型注册表和 mask AP 评估。

  • MMCV 版本。MMDetection v2.12.0 依赖于 MMCV 1.3.3 中的最新功能,包括 BaseModule 用于统一的参数初始化、模型注册表,以及 CUDA 运算符 MultiScaleDeformableAttn 用于Deformable DETR。请注意,MMCV 1.3.2 已经包含了 MMDet 使用的所有功能,但存在已知问题。因此,我们建议用户跳过 MMCV v1.3.2 并使用 v1.3.3,尽管 v1.3.2 可能在大多数情况下有效。

  • 统一模型初始化 (#4750)。为了统一 OpenMMLab 项目中的参数初始化,MMCV 支持 BaseModule,它接受 init_cfg,以允许模块的参数以灵活和统一的方式初始化。现在,用户需要在训练脚本中显式调用 model.init_weights() 来初始化模型(如此处所示,以前这是由检测器处理的)。MMDetection 中的模型已重新基准测试,以确保基于 PR #4750 的精度。**下游项目应相应更新其代码以使用 MMDetection v2.12.0**。

  • 统一模型注册表 (#5059)。为了轻松使用其他 OpenMMLab 项目中实现的骨干网络,MMDetection 迁移到继承在 MMCV (#760) 中创建的模型注册表。这样,只要骨干网络在 OpenMMLab 项目中得到支持,并且该项目也使用 MMCV 中的注册表,用户就可以通过简单地修改配置文件来在 MMDetection 中使用该骨干网络,而无需将该骨干网络的代码复制到 MMDetection 中。

  • Mask AP 评估 (#4898)。以前的版本在计算小、中、大实例的 mask AP 时,通过边界框来计算 mask 的面积。为了真正使用 mask 的面积,我们在 mask AP 计算过程中弹出键 bbox。此更改不会影响整体 mask AP 评估,并且与其他项目(如 Detectron2)中类似模型的 mask AP 保持一致。

新功能

改进

  • 使用 MMCV MODEL_REGISTRY (#5059)

  • 统一参数初始化,以更灵活地使用 (#4750)

  • 重命名变量名并在锚点头中修复文档字符串 (#4883)

  • 支持使用 Cascade RPN 进行空 GT 训练 (#4928)

  • 在文档中添加有关 test_robustness 使用的更多详细信息 (#4917)

  • 更改为使用 pycocotools 而不是 mmpycocotools,以便在一个环境中完全支持 Detectron2 和 MMDetection (#4939)

  • 更新 torch serve dockerfile 以支持更多版本的 docker (#4954)

  • 添加对使用单类数据集进行训练的检查 (#4973)

  • 重构转换器和 DETR 头部 (#4763)

  • 更新 FPG 模型库 (#5079)

  • 更准确的小/中/大实例的 mask AP (#4898)

错误修复

  • 修复 mean_ap.py 在通过 11 个点计算 mAP 时出现的错误 (#4875)

  • 修复当键 meta 不在旧检查点中时发生的错误 (#4936)

  • 通过更改 reduce_mean 的位置来修复在 VFNet、GFL 和 FCOS 中使用空 GT 训练时的挂起错误 (#4923, #4978, #5058)

  • 修复异步推理错误并提供相关演示 (#4941)

  • 修复 IoU 损失维数不匹配错误 (#4982)

  • 修复使用 PyTorch 1.8 时 torch.randperm 错误 (#5014)

  • 修复使用 CARAFE 时 mask_head 中的空边界框错误 (#5062)

  • 修复当存在零大小 RoI 时 supplement_mask 错误 (#5065)

  • 修复在 RoI 头部中使用空 RoI 进行测试 (#5081)

v2.11.0 (2021/01/04)

亮点

新功能

改进

  • 支持在 RetinaNet 的头部进行批处理推理 (#4699)

  • 在 Faster-RCNN 的第二阶段添加批处理维度 (#4785)

  • 支持在边界框编码器中进行批处理推理 (#4721)

  • COCODataset 中添加对 ann_ids 的检查,以确保其唯一性 (#4789)

  • 支持显示 FPN 结果 (#4716)

  • 支持对 grid_anchor 进行动态形状 (#4684)

  • 将 pycocotools 版本检查移动到使用它时 (#4880)

错误修复

  • 修复 TridentNet 在进行批处理推理时出现的错误 (#4717)

  • 修复 FASF 中 Pytorch2ONNX 的错误 (#4735)

  • 修复使用浮点类型显示图像时的错误 (#4732)

v2.10.0 (2021/01/03)

亮点

  • 支持新方法:FPG

  • 支持 ONNX2TensorRT 用于 SSD、FSAF、FCOS、YOLOv3 和 Faster R-CNN。

新功能

  • 支持 ONNX2TensorRT 用于 SSD、FSAF、FCOS、YOLOv3 和 Faster R-CNN (#4569)

  • 支持Feature Pyramid Grids (FPG) (#4645)

  • 支持视频演示 (#4420)

  • 为采样器添加种子选项 (#4665)

  • 支持自定义运行器类型 (#4570, #4669)

  • 支持在 EvalHook 中同步 BN 缓冲区 (#4582)

  • 添加用于 GIF 演示的脚本 (#4573)

错误修复

  • 修复 ConfigDict AttributeError 并添加 Colab 链接 (#4643)

  • 避免在 GFL 头部的空 gt 训练中崩溃 (#4631)

  • 修复 RPN 评估中的 iou_thrs 错误 (#4581)

  • 修复升级模型版本时配置文件的语法错误 (#4584)

改进

  • 重构单元测试文件结构 (#4600)

  • 重构 nms 配置 (#4636)

  • 通过直接检查类而不是通过配置文件字符串来获取加载管道 (#4619)

  • 为 mask 目标生成和 mask 结构添加 doctests (#4614)

  • 在复制管道参数时使用深拷贝 (#4621)

  • 更新文档 (#4642, #4650, #4620, #4630)

  • 删除调用 import_modules_from_strings 的冗余代码 (#4601)

  • 清除已弃用的 FP16 API (#4571)

  • 检查 CLASSES 是否在 XMLDataset 的初始化中正确初始化 (#4555)

  • 支持在推理 API 中进行批处理推理 (#4462, #4526)

  • 清除已弃用的警告并修复“meta”错误 (#4695)

v2.9.0 (2021/01/02)

亮点

  • 支持新方法:SCNetSparse R-CNN

  • train_cfgtest_cfg 移动到配置文件中的模型中

  • 支持根据预测质量可视化结果

新功能

  • 支持SCNet (#4356)

  • 支持Sparse R-CNN (#4219)

  • 支持通过多个 IoU 评估 mAP (#4398)

  • 支持连接数据集进行测试 (#4452)

  • 支持根据预测质量可视化结果 (#4441)

  • 向 Pytorch2ONNX 脚本添加 ONNX 简化选项 (#4468)

  • 添加挂钩以检查头部和数据集中类数的兼容性 (#4508)

错误修复

  • 修复 Cascade RPN 的 CPU 推理错误 (#4410)

  • 修复当没有预测框时 CornerNet 的 NMS 错误 (#4409)

  • 修复 CornerNet 推理中的 TypeError (#4411)

  • 修复 PAA 在使用背景图像训练时的错误 (#4391)

  • 修复当 out_file is not Noneshow==False 时,窗口数据未销毁的错误 (#4442)

  • 修复 NMS score_factor 的顺序问题,该问题会导致 YOLOv3 的性能下降 (#4473)

  • 修复 HTC TTA 在检测框数量为 0 时的错误 (#4516)

  • 修复掩码数据结构中的大小调整错误 (#4520)

改进

  • 允许在 LVIS 数据集中自定义类别 (#4382)

  • 添加使用现有数据集构建新模型的教程 (#4396)

  • 在文档中添加 CPU 兼容性信息 (#4405)

  • 添加已弃用的 ImageToTensor 用于批量推理的文档 (#4408)

  • 在文档中添加更多关于自定义数据集的详细信息 (#4430)

  • imshow_det_bboxes 可视化后端从 OpenCV 切换到 Matplotlib (#4389)

  • image_demo.py 中弃用 ImageToTensor (#4400)

  • 将 train_cfg/test_cfg 移入模型 (#4347, #4489)

  • 更新 bbox 头中 reg_decoded_bbox 选项的文档字符串 (#4467)

  • 更新文档中的数据集信息 (#4525)

  • 发布使用多尺度 3x 训练计划的预训练 R50 和 R101 PAA 检测器 (#4495)

  • 添加速度基准测试指南 (#4537)

v2.8.0 (04/01/2021)

亮点

新功能

错误修复

  • 修复 async_benchmark 中显示结果的错误 (#4367)

  • 修复 MaskTestMixin 中的缩放因子 (#4366)

  • 修复 multiclass_nms 中返回索引时的错误 (#4362)

  • 修复 resnext 主干中经验性注意力的错误 (#4300)

  • 修复 FCOS-HRNet 模型中 img_norm_cfg 的错误,并更新了性能和模型 (#4250)

  • 修复 Cityscapes 数据集中 Mask R-CNN 模型的无效检查点和日志 (#4287)

  • 修复数据集过小时分布式采样器的错误 (#4257)

  • 修复“PAFPN has no attribute extra_convs_on_inputs” 的错误 (#4235)

改进

  • 将模型 URL 从 aws 更新到 aliyun (#4349)

  • 更新 ATSS 以支持 PyTorch 1.6+ (#4359)

  • 更新脚本以在 pre-commit 安装中安装 ruby (#4360)

  • 删除已弃用的 mmdet.ops (#4325)

  • 重构匈牙利分配器,以便在 Sparse R-CNN 中更通用地使用 (#4259)

  • 处理 DETR 中的 scipy 导入以减少包依赖项 (#4339)

  • 更新 MMCV (1.2.3) 支持覆盖配置中的列表后,配置选项使用方式的文档 (#4326)

  • 更新在 COCO 子集上训练的 faster rcnn 的预训练模型 (#4307)

  • 避免 Dynamic R-CNN 中的 beta 为零或太小 (#4303)

  • 添加 Pytorch2ONNX 的文档 (#4271)

  • 添加已弃用的警告 FPN 参数 (#4264)

  • 支持在使用 nms 时返回保留的 bbox 的索引 (#4251)

  • 更新创建张量 GFLHead 时的类型和设备要求 (#4210)

  • 更新在 CrossEntropyLoss 中创建张量时的设备要求 (#4224)

v2.7.0 (30/11/2020)

  • 支持新方法:DETRResNest,Faster R-CNN DC5。

  • 支持将 YOLO、Mask R-CNN 和 Cascade R-CNN 模型导出到 ONNX。

新功能

  • 支持 DETR (#4201, #4206)

  • 支持在训练中链接最佳检查点 (#3773)

  • 支持通过 inference.py 中的选项覆盖配置 (#4175)

  • 支持将 YOLO、Mask R-CNN 和 Cascade R-CNN 模型导出到 ONNX (#4087, #4083)

  • 支持 ResNeSt 主干 (#2959)

  • 支持取消边界 bbox 回归 (#4076)

  • 在评估 AP 时添加 tpfp 函数 (#4069)

  • 支持使用其他主干的 SSD 检测器的混合精度训练 (#4081)

  • 添加 Faster R-CNN DC5 模型 (#4043)

错误修复

  • 修复分布式训练模式下的 gpu_id 错误 (#4163)

  • 支持版本高于 0.5 的 Albumentations (#4032)

  • 修复 faster rcnn 配置中的 num_classes 错误 (#4088)

  • 更新 docs/2_new_data_model.md 中的代码 (#4041)

改进

  • 确保 DCN 偏移与 VFNet 中的特征具有相同的类型 (#4198)

  • 在模型的 README 文件中添加配置链接 (#4190)

  • 添加损失约定的教程 (#3818)

  • 添加 30 系列 GPU 安装问题的解决方案 (#4176)

  • 更新 get_started.md 中的 docker 版本 (#4145)

  • 添加模型统计信息并在配置 README 中润色一些标题 (#4140)

  • 在 FreeAnchor 中将负概率钳制 (#4082)

  • 加速扩展大图像 (#4089)

  • 修复 Pytorch 1.7 不兼容问题 (#4103)

  • 更新故障排除页面以解决分段错误 (#4055)

  • 更新项目页面中的 aLRP-Loss (#4078)

  • 清理重复的 reduce_mean 函数 (#4056)

  • 重构问答 (#4045)

v2.6.0 (1/11/2020)

  • 支持新方法:VarifocalNet.

  • 重构文档,添加更多教程。

新功能

  • 支持 BboxOverlaps2D 中的 GIoU 计算,并使用 bbox_overlaps 重新实现 giou_loss (#3936)

  • 支持 CPU 模式下的随机采样 (#3948)

  • 支持 VarifocalNet (#3666, #4024)

错误修复

  • 修复 Cascade R-CNN 中 SABL 验证错误 (#3913)

  • 避免 num_pos=0 时 PAA 头部的零除 (#3938)

  • 修复多节点测试错误的临时目录错误 (#4034, #4017)

  • 修复测试脚本中的 --show-dir 选项 (#4025)

  • 修复 GA-RetinaNet r50 模型 URL (#3983)

  • 更新文档中的代码并修复损坏的 URL (#3947)

改进

  • 重构 pytorch2onnx API 到 mmdet.core.export 并使用 generate_inputs_and_wrap_model 用于 pytorch2onnx (#3857, #3912)

  • 更新 RPN 升级脚本以支持 v2.5.0 兼容性 (#3986)

  • 使用 mmcv tensor2imgs (#4010)

  • 更新测试鲁棒性 (#4000)

  • 更新故障排除页面 (#3994)

  • 加速 PAA 训练速度 (#3985)

  • 支持验证中的 batch_size > 1 (#3966)

  • 在 CPU 模式下的推理中使用 MMCV 中实现的 RoIAlign (#3930)

  • 文档重构 (#4031)

v2.5.0 (5/10/2020)

亮点

向后不兼容的更改

FP16 相关方法从 mmdet 导入到 mmcv。 (#3766, #3822) mmdet.core.fp16 中的混合精度训练实用程序已移至 mmcv.runner,包括 force_fp32auto_fp16wrap_fp16_modelFp16OptimizerHook。如果用户尝试从 mmdet.core.fp16 导入这些方法,将发出弃用警告,并在 V2.10.0 中最终删除。

[0, N-1] 代表所有模型的前景类别,N 代表背景类别。 (#3221) 在 v2.5.0 之前,RPN 的背景标签为 0,其他头的背景标签为 N。现在所有模型的行为都一致。因此,dense_heads 中的 self.background_labels 已删除,所有头都使用 self.num_classes 来指示背景标签的类别索引。此更改不会影响 v2.x 模型库中的预训练模型,但会影响具有 RPN 头的所有模型的训练。使用 softmax 的两阶段检测器的 RPN 头将受到影响,因为类别顺序已更改。

仅在 test_mode=Trueself.filter_empty_gt=True 时调用 get_subset_by_classes (#3695) 数据集中的函数 get_subset_by_classes 已重构,仅在 test_mode=Trueself.filter_empty_gt=True 时过滤掉图像。在原始实现中,get_subset_by_classes 与标志 self.filter_empty_gt 无关,并且无论 test_modeTrue 还是 False,都只会在初始化时设置类别时调用。这在许多情况下带来了模糊的行为和潜在的错误。在 v2.5.0 之后,如果 filter_empty_gt=False,无论在数据集中是否指定了类别,数据集都将使用注释中的所有图像。如果 filter_empty_gt=Truetest_mode=True,无论是否指定了类别,数据集都将调用 ``get_subset_by_classes` 来检查图像并过滤掉不包含 GT 框的图像。因此,用户应负责测试数据集的数据过滤/清理过程。

新功能

  • 单阶段检测器的测试时间增强(#3844,#3638)

  • 支持在训练期间显示实验名称(#3764)

  • 添加 ShearRotateTranslate 增强 (#3656, #3619, #3687)

  • 添加仅图像变换,包括 ConstrastEqualizeColorBrightness。 (#3643)

  • 支持 YOLACT (#3456)

  • 支持 CentripetalNet (#3390)

  • 在 Docker 中支持 PyTorch 1.6 (#3905)

错误修复

  • 修复在没有地面真值框的情况下训练 ATSS 的错误 (#3702)

  • 修复当 num_pos 为 0 时使用 Focal Loss 的错误 (#3702)

  • 修复数据集浏览器中的标签索引映射 (#3708)

  • 修复当没有正样本 rois 时 Mask R-CNN 训练卡死问题 (#3713)

  • 通过在 rpn 头中使用 self.rpn_head 来修复 RPNTestMixin 中的 self.rpn_head.test_cfg 错误 (#3808)

  • 修复来自 mmcv.ops 的已弃用 Conv2d (#3791)

  • 修复 RepPoints 中的设备错误 (#3836)

  • 修复 SABL 验证错误 (#3849)

  • 使用 https://download.openmmlab.com/mmcv/dist/index.html 安装 MMCV (#3840)

  • 修复 PyTorch 1.6.0 中 NMS 中的非零问题 (#3867)

  • 修复 PAA 的 API 更改错误 (#3883)

  • 修复 bbox_flip 中的拼写错误 (#3886)

  • 修复 Dockerfile 中 ligGL.so.1 的 cv2 导入错误 (#3891)

改进

  • 更改为使用 mmcv.utils.collect_env 收集环境信息,以避免重复代码 (#3779)

  • 更新文档中到 v2.0 模型的检查点文件名 (#3795)

  • 更新教程以更改运行时设置 (#3778),修改损失 (#3777)

  • 改进 SABL 中 simple_test_bboxes 的功能 (#3853)

  • 在将 mask 用作 img 的索引之前将其转换为 bool,以提高鲁棒性和速度 (#3870)

  • 改进模块和数据集定制的文档 (#3821)

v2.4.0 (5/9/2020)

亮点

  • 修复了许多问题/错误,并重新组织了故障排除页面

  • 支持新方法 SABLYOLOv3PAA Assign

  • 支持批量推理

  • 从 v2.3.0 开始将 mmdet 包发布到 PyPI

  • 将模型库切换到 download.openmmlab.com

向后不兼容的更改

  • 支持批量推理 (#3564, #3686, #3705): 从 v2.4.0 开始,MMDetection 可以使用单个 GPU 推理多个图像的模型。 此更改影响 MMDetection 和下游代码库中的所有测试 API。 为了帮助用户迁移代码,我们使用 replace_ImageToTensor (#3686) 在数据集初始化期间转换遗留测试数据管道。

  • 支持带有水平/垂直/对角方向的 RandomFlip (#3608): 从 v2.4.0 开始,MMDetection 支持数据增强中的水平/垂直/对角翻转。 这影响了数据增强过程中的边界框、掩码和图像变换,以及将这些数据映射回原始格式的过程。

  • 迁移到使用 mmlvismmpycocotools 用于 COCO 和 LVIS 数据集 (#3727)。 API 与原始 lvispycocotools 完全兼容。 用户需要先在环境中卸载现有的 pycocotools 和 lvis 包,然后安装 mmlvismmpycocotools

错误修复

  • 修复 onnx 的默认均值/标准差 (#3491)

  • 修复 coco 评估并添加度量指标项 (#3497)

  • 修复 install.md 中的拼写错误 (#3516)

  • 修复当采样器每 gpu 为 1 时 atss 的问题 (#3528)

  • 修复 fuse_conv_bn 的导入 (#3529)

  • 修复 gaussian_target 的错误,更新 heatmap 的单元测试 (#3543)

  • 修复 VOC2012 评估 (#3553)

  • 修复 rescale 的比例因子错误 (#3566)

  • 修复 base 检测器中的 with_xxx_attributes (#3567)

  • 修复当数量为 0 时盒子缩放问题 (#3575)

  • 修复当 neck 配置为列表时 rfp 检查 (#3591)

  • 修复 benchmark.py 中 fuse conv bn 的导入 (#3606)

  • 修复网络摄像头演示 (#3634)

  • 修复教程中的拼写错误和项目化问题 (#3658)

  • 修复当 FPN 的某些级别没有分配边界框时分布式训练中的错误 (#3670)

  • 修复有效标志生成中 stride 的宽度和高度顺序 (#3685)

  • 修复 Res2Net DCN 中的权重初始化错误 (#3714)

  • 修复 OHEMSampler 中的错误 (#3677)

新功能

  • 支持 Cutout 增强 (#3521)

  • 支持通过 ConcatDataset 在多个数据集上进行评估 (#3522)

  • 支持 PAA assign #(3547)

  • 支持使用 pickle 结果进行评估度量 (#3607)

  • 支持 YOLOv3 (#3083)

  • 支持 SABL (#3603)

  • 支持在 github-action 中发布到 Pypi (#3510)

  • 支持自定义导入 (#3641)

改进

  • 重构文档中的常见问题 (#3530)

  • 将 pytorch 1.6 添加到 CI 配置中 (#3532)

  • 将配置添加到运行器元数据中 (#3534)

  • 为测试添加 eval-option 标志 (#3537)

  • 将 init_eval 添加到评估钩子中 (#3550)

  • 将 include_bkg 添加到 ClassBalancedDataset 中 (#3577)

  • 在 inference_detector 中使用配置的加载 (#3611)

  • 在模型库中添加 ATSS ResNet-101 模型 (#3639)

  • 将 url 更新到 download.openmmlab.com (#3665)

  • 支持 CocoDataset 的非掩码训练 (#3711)

v2.3.0 (5/8/2020)

亮点

  • CUDA/C++ 运算符已移至 mmcv.ops。 为了向后兼容,mmdet.ops 被保留为 mmcv.ops 的包装器。

  • 支持新方法 CornerNetDIOU/CIOU 损失,以及新数据集:LVIS V1

  • 提供更详细的 colab 训练教程和更完整的文档。

  • 支持将 RetinaNet 从 Pytorch 转换为 ONNX。

错误修复

  • 修复 DetectoRS 的模型初始化错误 (#3187)

  • 修复 NASFCOSHead 中的模块名称错误 (#3205)

  • 修复 publish_model.py 中的文件名错误 (#3237)

  • 修复当 inside_flags.any() 在密集头部中为 False 时的维度错误 (#3242)

  • 修复在 MultiScaleFlipAug 中忘记传递翻转方向的错误 (#3262)

  • 修复由 stem_channels 的默认值引起的错误 (#3333)

  • 修复 CPU 推理的模型检查点加载错误 (#3318, #3316)

  • 修复当框数小于预期的 topk 数时 ATSSAssigner 中的 topk 错误 (#3361)

  • 修复 center_region_assigner.py 中的 gt 优先级错误 (#3208)

  • 修复 iou_loss.py 中的 iou 计算的 NaN 问题 (#3394)

  • 修复 iou_thrs 在 coco.py 中的评估过程中没有实际使用的错误 (#3407)

  • 修复 RepPoints 的测试时间增强 (#3435)

  • 修复 Res2Net+DCN 中由不连续张量引起的 runtimeError (#3412)

新功能

  • 支持 CornerNet (#3036)

  • 支持 DIOU/CIOU 损失 (#3151)

  • 支持 LVIS V1 数据集 (#)

  • 支持训练中的自定义钩子 (#3395)

  • 支持广义焦点损失的 fp16 训练 (#3410)

  • 支持将 RetinaNet 从 Pytorch 转换为 ONNX (#3075)

改进

  • 支持在 ATSS 分配器中处理忽略框 (#3082)

  • 允许在 RandomCrop 中裁剪没有地面真值的图像 (#3153)

  • 启用 Accuracy 模块以设置阈值 (#3155)

  • 重构单元测试 (#3206)

  • 统一 RegNets 配置中 to_float32norm_cfg 的训练设置 (#3210)

  • 为初学者添加 colab 训练教程 (#3213, #3273)

  • 将 CUDA/C++ 运算符移至 mmcv.ops,并保留 mmdet.ops 作为包装器以实现向后兼容 (#3232)(#3457)

  • 更新文档中的安装脚本 (#3290) 和 dockerfile (#3320)

  • 支持设置图像调整大小后端 (#3392)

  • 删除版本文件中的 git 哈希值 (#3466)

  • 检查 mmcv 版本以强制版本兼容性 (#3460)

v2.2.0 (1/7/2020)

亮点

错误修复

  • 修复当图像中没有 gt 时 FreeAnchor 的问题 (#3176)

  • 清理 register_module() 的已弃用用法 (#3092, #3161)

  • 修复 NAS FCOS 中的预训练错误 (#3145)

  • 修复 SSD 中的 num_classes (#3142)

  • 修复 FCOS 热身 (#3119)

  • 修复 tools/publish_model.py 中的 rstrip

  • 修复 RandomFLip 管道中 flip_ratio 的默认值 (#3106)

  • 修复使用 ms_rcnn 的 cityscapes 评估 (#3112)

  • 修复 RPN softmax (#3056)

  • 修复 LVIS@v0.5 的文件名 (#2998)

  • 通过过滤 COCO 中的帧外 gt_bboxes 修复 nan 损失 (#2999)

  • 修复 FSAF 中的错误 (#3018)

  • 添加 FocalLoss num_classes 检查 (#2964)

  • 修复当没有 gts 时 PISA 损失 (#2992)

  • 避免 iou_calculator 中的 nan (#2975)

  • 防止由浅拷贝引起的加载和转换中的潜在错误 (#2967)

新功能

  • 添加 DetectoRS (#3064)

  • 支持通用焦点损失 (#3097)

  • 支持 PointRend (#2752)

  • 支持动态 R-CNN (#3040)

  • 添加 DeepFashion 数据集 (#2968)

  • 实现 FCOS 训练技巧 (#2935)

  • 使用 BaseDenseHead 作为基于锚点的头的基类 (#2963)

  • 为 BasicBlock 添加 with_cp (#2891)

  • 为 ResNet 添加 stem_channels 参数 (#2954)

改进

  • 添加无锚点基础头部 (#2867)

  • 迁移到 Github Actions (#3137)

  • 为数据集、管道、核心模块和方法添加文档字符串 (#3130, #3125, #3120)

  • 添加 VOC 基准测试 (#3060)

  • 在 GRoI 中添加 concat 模式 (#3098)

  • 删除命令行参数 autorescale-lr (#3080)

  • 使用 len(data['img_metas']) 来指示 num_samples (#3073, #3053)

  • 切换到 EpochBasedRunner (#2976)

v2.1.0 (2020 年 8 月 6 日)

亮点

错误修复

  • 将 CLI 参数 --validate 更改为 --no-validate,默认情况下在训练轮次后启用验证。 (#2651)

  • 在 Dockerfile 中添加缺少的 Cython (#2713)

  • 修复 NMS CPU 实现中的 bug (#2754)

  • 修复显示遮罩结果时的 bug (#2763)

  • 修复 GCC 要求 (#2806)

  • 修复异步测试中的 bug (#2820)

  • 修复测试 API 中的遮罩编码-解码 bug (#2824)

  • 修复测试时增强中的 bug (#2858, #2921, #2944)

  • 修复 apis/train 注释中的错别字 (#2877)

  • 修复 RandomCrop 中原始图像中没有 gt 边框时返回 None 的 bug。修复 RandomCropMinIoURandomCropExpand 模块中没有处理 gt_bboxes_ignoregt_label_ignoregt_masks_ignore 的 bug。 (#2810)

  • 修复 regnet 的 base_channels 的 bug (#2917)

  • 修复基础检测器中加载预训练权重时记录器的 bug (#2936)

新功能

  • 添加 IoU 模型 (#2666)

  • 添加用于推理的 Colab 演示

  • 支持类别无关 NMS (#2553)

  • 添加仅供开发使用的基准收集脚本 (#2676)

  • 添加基于 MMDetection 的项目链接 (#2736, #2767, #2895)

  • 在训练中添加配置转储 (#2779)

  • 添加 ClassBalancedDataset (#2721)

  • 添加 Res2Net 骨干网络 (#2237)

  • 支持 RegNetX 模型 (#2710)

  • 使用 mmcv.FileClient 来支持不同的存储后端 (#2712)

  • 添加 ClassBalancedDataset (#2721)

  • 代码发布:目标检测中的主样本注意力 (CVPR 2020) (#2626)

  • 实现 NASFCOS (#2682)

  • 在 CrossEntropyLoss 中添加类别权重 (#2797)

  • 支持 LVIS 数据集 (#2088)

  • 支持 GRoIE (#2584)

改进

  • 允许锚点头部中的不同 x 和 y 步长。 (#2629)

  • 使 FSAF 损失对没有 gt 的情况更健壮。 (#2680)

  • 计算纯推理时间而不是 (#2657) 并更新推理速度 (#2730)

  • 避免裁剪面积为 0 的补丁。 (#2704)

  • 在使用已弃用的 imgs_per_gpu 时添加警告。 (#2700)

  • 添加用于配置的 Mask R-CNN 示例 (#2645)

  • 更新模型库 (#2762, #2866, #2876, #2879, #2831)

  • 添加 ori_filename 到 img_metas 并在测试显示目录中使用它 (#2612)

  • 使用 img_fields 来处理图像转换期间的多个图像 (#2800)

  • 在 FPN 中添加 upsample_cfg 支持 (#2787)

  • 添加 ['img'] 作为默认 img_fields 以实现向后兼容性 (#2809)

  • 将预训练模型从 open-mmlab://resnet50_caffeopen-mmlab://resnet50_caffe_bgr 重命名为 open-mmlab://detectron/resnet50_caffeopen-mmlab://detectron2/resnet50_caffe。 (#2832)

  • 在 test.py 中添加 sleep(2) 以减少挂起问题 (#2847)

  • 在 CARAFE 中支持 c10::half (#2890)

  • 改进文档 (#2918, #2714)

  • 在 mmcv 中使用优化器构造函数并清理 mmdet.core.optimizer 中的原始实现 (#2947)

v2.0.0 (2020 年 6 月 5 日)

在此版本中,我们进行了许多重大重构和修改。

  1. 更快的速度。我们优化了常用模型的训练和推理速度,训练速度提高了 30%,推理速度提高了 25%。有关详细信息,请参阅 模型库

  2. 更高的性能。我们更改了一些默认超参数,没有额外成本,这导致大多数模型的性能提升。有关详细信息,请参阅 兼容性

  3. 更多文档和教程。我们添加了许多文档和教程,以帮助用户更顺利地入门。在此处阅读 此处

  4. 支持 PyTorch 1.5。对 1.1 和 1.2 的支持已取消,我们切换到了一些新 API。

  5. 更好的配置系统。支持继承以减少配置的冗余。

  6. 更好的模块化设计。为了简化和灵活性的目标,我们简化了一些封装,同时添加了更多其他可配置模块,如 BBoxCoder、IoUCalculator、OptimizerConstructor、RoIHead。目标计算也包含在头部中,调用层次结构更简单。

  7. 支持新的方法:FSAF 和 PAFPN(PAFPN 的一部分)。

重大变更 使用 MMDetection 1.x 训练的模型与 2.0 不完全兼容,请参阅 兼容性文档 以了解详细信息以及如何迁移到新版本。

改进

  • 统一自定义操作的 CUDA 和 CPP API。 (#2277)

  • 使用继承的新配置文件。 (#2216)

  • 将第二阶段封装到 RoI 头部中。 (#1999)

  • 将 GCNet/EmpericalAttention 重构为插件。 (#2345)

  • 在基于 IoU 的边界框分配器中将低质量匹配设置为一个选项。 (#2375)

  • 更改代码库的坐标系。 (#2380)

  • 重构头部中的类别顺序。0 现在表示第一个正类别而不是背景。 (#2374)

  • 添加边界框采样器和分配器注册表。 (#2419)

  • 加快 RPN 的推理速度。 (#2420)

  • 在所有锚点头部中添加 train_cfgtest_cfg 作为类成员。 (#2422)

  • 将目标计算方法合并到头部中。 (#2429)

  • 添加边界框编码器以支持不同的边界框编码和损失。 (#2480)

  • 统一回归损失的 API。 (#2156)

  • 重构锚点生成器。 (#2474)

  • 使 lr 成为优化器的可选参数。 (#2509)

  • 迁移到 MMCV 中的模块和方法。 (#2502, #2511, #2569, #2572)

  • 支持 PyTorch 1.5。 (#2524)

  • 放弃对 Python 3.5 的支持并在代码库中使用 F 字符串。 (#2531)

错误修复

  • 修复未保持纵横比的调整大小图像的比例因子。 (#2039)

  • 在 NMS 中切片之前检查 max_num 是否大于 0。 (#2486)

  • 修复没有实例时可变形 RoI Pooling。 (#2490)

  • 修复分配标签的默认值。 (#2536)

  • 修复 Cityscapes 的评估。 (#2578)

新功能

  • 在 ResNet 中添加 deep_stem 和 avg_down 选项,即支持 ResNetV1d。 (#2252)

  • 添加 L1 损失。 (#2376)

  • 支持实例遮罩的 多边形 和 位图。 (#2353, #2540)

  • 支持用于推理的 CPU 模式。 (#2385)

  • 添加优化器构造函数以支持优化器的复杂配置。 (#2397, #2488)

  • 实现 PAFPN。 (#2392)

  • 支持某些模块的空张量输入。 (#2280)

  • 支持自定义数据集类,而无需覆盖它。 (#2408, #2443)

  • 支持训练 COCO 数据集的子集。 (#2340)

  • 添加 iou_calculator 以潜在地支持更多 IoU 计算方法。 (2405)

  • 支持按类别计算平均 AP(在上一版本中已删除)。 (#2459)

  • 添加选项以保存测试结果图像。 (#2414)

  • 支持 MomentumUpdaterHook。 (#2571)

  • 添加演示以推理单个图像。 (#2605)

v1.1.0 (2020 年 2 月 24 日)

亮点

  • 数据集评估使用统一的 API 重写,该 API 被评估钩子和测试脚本使用。

  • 支持新的方法:CARAFE

重大变更

  • 新的 MMDDP 继承自官方 DDP,因此 __init__ API 已更改为与官方 DDP 相同。

  • HTC 配置文件中的 mask_head 字段已修改。

  • 评估和测试脚本已更新。

  • 在所有转换中,实例遮罩存储为形状为 (n, h, w) 的 NumPy 数组,而不是 (h, w) 数组的列表,其中 n 是实例的数量。

错误修复

  • 修复 ignore_iof_thr > 0 且没有预测框时的 IOU 分配器。 (#2135)

  • 修复没有忽略框时的 mAP 评估。 (#2116)

  • 修复可变形 RoI Pooling 的空 RoI 输入。 (#2099)

  • 修复多个工作流程的数据集设置。 (#2103)

  • 修复 PyTorch 1.4 中与 torch.uint8 相关的警告。 (#2105)

  • 修复除 gpu:0 之外的设备上的推理演示。 (#2098)

  • 修复 Dockerfile。 (#2097)

  • 修复 pad_val 在 Pad 转换中未使用的 bug。 (#2093)

  • 修复没有地面真实边界框时的 Albumentation 转换。 (#2032)

改进

  • 使用 torch 而不是 numpy 进行随机采样。 (#2094)

  • 迁移到 MMCV v0.3 中的新 MMDDP 实现。 (#2090)

  • 在日志中添加元信息。 (#2086)

  • 使用 PyTorch 扩展重写 Soft NMS 并删除 Cython 作为依赖项。 (#2056)

  • 重写数据集评估。 (#2042, #2087, #2114, #2128)

  • 在转换中使用 NumPy 数组作为遮罩。 (#2030)

新功能

  • 实现“CARAFE:特征的内容感知重新组装”。 (#1583)

  • 在设置种子时,在数据加载器中添加 worker_init_fn()。 (#2066, #2111)

  • 添加日志记录实用程序。 (#2035)

v1.0.0 (2020 年 1 月 30 日)

此版本主要提高了代码质量并添加了更多文档字符串。

亮点

  • 文档现已上线:https://mmdetection.pythonlang.cn

  • 支持新模型:ATSS

  • DCN 现在可通过 API build_conv_layerConvModule 使用,与普通卷积层类似。

  • 提供了一个收集环境信息的工具,用于故障排除。

错误修复

  • 修复了最新 numpy 和 pycocotools 的不兼容问题。 (#2024)

  • 修复了分布式包不可用时的状况,例如在 Windows 上。 (#1985)

  • 修复了 refine_bboxes() 的维度问题。 (#1962)

  • 修复了当 seg_prefix 是一个列表时的拼写错误。 (#1906)

  • 在 RandomCrop 中添加了分割图裁剪功能。 (#1880)

  • 修复了 ga_shape_target_single() 的返回值。 (#1853)

  • 修复了空建议的加载形状问题。 (#1819)

  • 修复了使用 albumentation 时的遮罩数据类型。 (#1818)

改进

  • 增强了 AssignResult 和 SamplingResult。 (#1995)

  • 添加了在 Registry 中覆盖现有模块的功能。 (#1982)

  • 重新组织了需求,并将 albumentations 和 imagecorruptions 设置为可选。 (#1969)

  • 检查 SSDHead 中的 NaN。 (#1935)

  • 将 ResNe(X)t 中的 DCN 封装到 ConvModule 和 Conv_layers 中。 (#1894)

  • 重构了 mAP 评估,并支持多进程和日志记录。 (#1889)

  • 在构建 Runner 之前初始化根日志记录器,以记录更多信息。 (#1865)

  • SegResizeFlipPadRescale 拆分为不同的现有转换。 (#1852)

  • init_dist() 移至 MMCV。 (#1851)

  • 改进文档和文档字符串。 (#1971, #1938, #1869, #1838)

  • 修复了遮罩可视化中相同类的颜色问题。 (#1834)

  • 删除了 HTC 和 Cascade R-CNN 中的 keep_all_stages 选项。 (#1806)

新功能

  • 为遮罩头添加了两个测试时间选项 crop_maskrle_mask_encode。 (#2013)

  • 支持将灰度图像加载为单通道。 (#1975)

  • 实现了“通过自适应训练样本选择弥合基于锚点和无锚点检测之间的差距”。 (#1872)

  • 添加了 sphinx 生成的文档。 (#1859, #1864)

  • 为 FLOPs 计算添加了 GN 支持。 (#1850)

  • 收集环境信息,用于故障排除。 (#1812)

v1.0rc1 (2019/12/13)

RC1 版本主要侧重于改善用户体验和修复错误。

亮点

  • 支持新模型:FoveaBoxRepPointsFreeAnchor

  • 添加了一个 Dockerfile。

  • 添加了一个 Jupyter Notebook 演示和一个网络摄像头演示。

  • 设置了代码风格和 CI。

  • 添加了大量文档字符串和单元测试。

  • 修复了大量错误。

重大变更

  • 在计算针对不同尺度(AP_s、AP_m、AP_l)的 COCO 风格 mAP 时存在一个错误,该错误由 #621 引入。 (#1679)

错误修复

  • 修复了 Libra R-CNN 中的采样间隔错误。 (#1800)

  • 修复了 SSD300 WIDER FACE 中的学习率问题。 (#1781)

  • 修复了当 keep_ratio=False 时的缩放问题。 (#1730)

  • 修复了拼写错误。 (#1721, #1492, #1242, #1108, #1107)

  • 修复了 build_dataloader 中的 shuffle 参数。 (#1693)

  • 在计算遮罩目标时裁剪了建议框。 (#1688)

  • 修复了一些极端情况下采样器出现的“索引超出范围”错误。 (#1610, #1404)

  • 修复了在 GPU:0 以外的设备上的 NMS 问题。 (#1603)

  • 修复了 CPU 上的 SSD 头部和 GHM 损失问题。 (#1578)

  • 修复了当存在太多 gt bbox 时出现的 OOM 错误。 (#1575)

  • 修复了 HTC 中的错误关键字参数 nms_cfg。 (#1573)

  • 在 Expand 和 MinIoUCrop 转换中处理遮罩和语义分割。 (#1550, #1361)

  • 修复了 Non Local 操作中的尺度错误。 (#1528)

  • 修复了当 gt_bboxes_ignore 为 None 时转换中的错误。 (#1498)

  • 修复了当 img_prefix 为 None 时的错误。 (#1497)

  • 将设备参数传递给 grid_anchorsvalid_flags。 (#1478)

  • 修复了 test_robustness 的数据管道。 (#1476)

  • 修复了可变形池化的参数类型。 (#1390)

  • 修复了当只有两个类别时 coco_eval 的错误。 (#1376)

  • 修复了当 deformable_group>1 时调制可变形卷积中的错误。 (#1359)

  • 修复了 RandomCrop 中的遮罩裁剪。 (#1333)

  • 修复了当不在 cuda:0 上运行时可变形卷积中的零输出问题。 (#1326)

  • 修复了 Expand 中的类型问题。 (#1288)

  • 修复了推理 API。 (#1255)

  • 修复了 Expand 中的原位操作。 (#1249)

  • 修复了从头开始的训练配置。 (#1196)

  • 修复了 RoIExtractor 中的原位添加,该问题导致 PyTorch 1.2 出现错误。 (#1160)

  • 修复了当输入图像没有正样本时 FCOS 的问题。 (#1136)

  • 修复了递归导入。 (#1099)

改进

  • 在日志中打印配置文件和 mmdet 版本。 (#1721)

  • 在 travis CI 中编译之前检查代码。 (#1715)

  • Expand 转换添加了一个概率参数。 (#1651)

  • 更新了 docker 文件中的 PyTorch 和 CUDA 版本。 (#1615)

  • 当在非分布式训练中指定 --validate 时发出警告。 (#1624, #1651)

  • 美化了 mAP 打印。 (#1614)

  • 添加了预提交钩子。 (#1536)

  • 为骨干网络添加了 in_channels 参数。 (#1475)

  • 添加了大量文档字符串和单元测试,感谢 @Erotemic。 (#1603, #1517, #1506, #1505, #1491, #1479, #1477, #1475, #1474)

  • 在没有共享存储时添加了对多节点分布式测试的支持。 (#1399)

  • 优化了 Dockerfile 以减小映像大小。 (#1306)

  • 更新了 HRNet 的新结果。 (#1284, #1182)

  • 在 FPN 中添加了一个 no_norm_on_lateral 参数。 (#1240)

  • 测试了 CI 中的编译过程。 (#1235)

  • 将文档移至单独的文件夹。 (#1233)

  • 添加了一个 Jupyter Notebook 演示。 (#1158)

  • 支持不同类型的训练数据集。 (#1133)

  • 在 CUDA 内核中使用 int64_t 代替 long。 (#1131)

  • 支持 bbox 和遮罩头部的非方形 RoI。 (#1128)

  • 手动添加类型提升,以使其与 PyTorch 1.2 兼容。 (#1114)

  • 允许使用验证数据集来计算验证损失。 (#1093)

  • 使用 .scalar_type() 代替 .type() 来抑制一些警告。 (#1070)

新功能

  • 添加了一个 --with_ap 选项来计算每个类别的 AP。 (#1549)

  • 实现了“FreeAnchor:学习为视觉目标检测匹配锚点”。 (#1391)

  • 支持 Albumentations 用于数据管道中的增强。 (#1354)

  • 实现了“FoveaBox:超越基于锚点的目标检测器”。 (#1339)

  • 支持水平和垂直翻转。 (#1273, #1115)

  • 实现了“RepPoints:点集表示用于目标检测”。 (#1265)

  • 为 HTC 和 Cascade R-CNN 添加了测试时间增强。 (#1251)

  • 添加了一个 COCO 结果分析工具。 (#1228)

  • 添加了 Dockerfile。 (#1168)

  • 添加了一个网络摄像头演示。 (#1155, #1150)

  • 添加了 FLOPs 计数器。 (#1127)

  • 允许 ConvModule 的任意层顺序。 (#1078)

v1.0rc0 (2019/07/27)

  • 实现了大量新的方法和组件(混合精度训练、HTC、Libra R-CNN、引导锚点、经验性注意力、遮罩评分 R-CNN、Grid R-CNN(Plus)、GHM、GCNet、FCOS、HRNet、权重标准化等)。感谢所有合作者!

  • 支持两个额外的数据集:WIDER FACE 和 Cityscapes。

  • 重构了损失 API,使其更加灵活,可以采用不同的损失和相关的超参数。

  • 加速了多 GPU 测试。

  • 将所有编译和安装集成到单个脚本中。

v0.6.0 (2019/04/14)

  • 与模型库相比,速度提高了 30%。

  • 支持 PyTorch 稳定版和 nightly 版。

  • 用 Pytorch CUDA 扩展替换了 NMS 和 SigmoidFocalLoss。

v0.6rc0 (2019/02/06)

  • 迁移至 PyTorch 1.0。

v0.5.7 (2019/02/06)

  • 添加了对可变形卷积网络 v2 的支持。(非常感谢作者和 @chengdazhi

  • 这是最后一个基于 PyTorch 0.4.1 的版本。

v0.5.6 (2019/01/17)

  • 添加了对组规范化的支持。

  • 使用 AnchorHead 统一了 RPNHead 和单阶段头部(RetinaHead、SSDHead)。

v0.5.5 (2018/12/22)

  • 为 COCO 和 PASCAL VOC 添加了 SSD。

  • 添加了 ResNeXt 骨干网络和检测模型。

  • 重构了采样器/分配器,并添加了 OHEM。

  • 添加了 VOC 数据集和评估脚本。

v0.5.4 (2018/11/27)

  • 添加了 SingleStageDetector 和 RetinaNet。

v0.5.3 (2018/11/26)

  • 添加了 Cascade R-CNN 和 Cascade Mask R-CNN。

  • 在配置文件中添加了对 Soft-NMS 的支持。

v0.5.2 (2018/10/21)

  • 添加了对自定义数据集的支持。

  • 添加了一个脚本,用于将 PASCAL VOC 注释转换为预期格式。

v0.5.1 (2018/10/20)

  • 添加了 BBoxAssigner 和 BBoxSampler,配置文件中的 train_cfg 字段进行了重构。

  • ConvFCRoIHead / SharedFCRoIHead 重命名为 ConvFCBBoxHead / SharedFCBBoxHead,以保持一致性。