让大家久等啦,OpenMMLab 3 月月刊已新鲜出炉!
首先和大家分享 3 月的贡献之星和活跃之星。
贡献之星
个人主页: https://github.com/ailingzengzzz
个人主页: https://github.com/zhanggefan
活跃之星
星星说
大家好我是五喵-闻星,现 MMDeploy 社区管理员~
一直以来使用 OpenMMLab 全家桶做实验、打比赛、做项目,并给 MMDetection 和 MMCV 提了过几个非高质量 PR,此过程中在社区同学的指点下,熟悉了 OpenMMLab 架构设计哲学,并把 OpenMMLab 的代码规范、单元测试和 CI/CD 等现代化开发链路引入到自己的项目中。
近期正在尝试研究让 MMDeploy 支持 Tengine 推理引擎,希望能成为 MMDeploy 高质量 PR。
MMDeploy 模型部署工具作为 OpenMMLab 生态视觉模型落地的关键一环,作为管理员,希望大家一起来 MMDeploy 语雀小组一起 ①共读源码 ②探索 MMDeploy 宝藏 ③反馈心声 ④分享你和 MMDeploy 的故事~https://www.yuque.com/mmdeploy
后续小编将为月度之星送上 OpenMMLab 限量定制礼品,请注意查收!
下面我们继续了解下 3 月 OpenMMLab 各个算法库都有哪些亮点功能发布吧~
亮点功能抢先看
MMDetection
- 支持了全景分割领域的 SOTA 算法 Mask2Former,目前已发布两个小模型,其余模型正在准备中。此外,当前版本的 Mask2Former 支持全景分割和实例分割的推断和评估。
MMPose
- 支持了多视角 3D 姿态估计数据集 Campus 和 Shelf,并提供了 VoxelPose 预训练模型和 demo。(图片取自 VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Environment ,ECCV 2020)
MMClassification
MMDeploy
- 发布了 2 篇教程、2 篇 TorchScript 解读文章
MMRotate
- 支持了 Circular Sommth Label (CSL, ECCV'20) 模型
MMDetection3D
- 迁移所有算子到 mmcv,mmdet3d 的安装不再需要相关编译
- 支持了并行的 Waymo 数据集转换并修复了不精确的时间戳保存,大大提升了数据转换速度
- 更新了部分坐标系重构后的预训练模型
MMTracking
- 支持 Quasi-Dense Similarity Learning for Multiple Object Tracking 算法
MMOCR
- 新增了 16 个全新的 OCR 数据集,覆盖文档,手写体,场景文字等多个不同场景,并提供了数据集下载脚本和标注格式转换代码
MMEditing
MMSegmentation
MMSelfSup
- 支持新的掩码学习算法 - SimMIM,简单而有效的自监督学习结构
MMGeneration
- 支持了 StyleGANv3 的训练,包括 from scratch 和 finetuning,现在你可以用 MMGeneration 训练当下最好的生成模型之一。
各算法库更新情况
MMDetection
新功能
- 支持了全景分割算法 Mask2Former
- 支持了 EfficientNet 骨干网络,并提供了 RetinaNet+EfficientNet+FPN 的微调结果
- 提供了 TorchVision 高精度预训练权重在下游任务微调的最佳实践
代码改进
- 新增了 How-to 文档教程,后续会不断更新完善 https://mmdetection.readthedocs.io/en/latest/tutorials/how_to.html
- 用户可以通过 MMDET_DATASETS 环境变量来更方便快捷地设置数据集路径,而无需软连接或者修改配置文件
- 更新了分布式训练和测试脚本,方便用户直接在多机多卡上启动 mmdet 任务
- coco_panoptic 支持了实例分割评估
- 允许在 LoadImageFromFile 中设置 channel_order 参数
- YOLOX 新增训练中打印图片宽高信息
Bug 修复
- 修复全景分割评估中的内存泄漏
- 增强 analyze_logs.py 脚本鲁棒性
感谢 @haofanwang, @shinya7y, @yangrisheng, @triple-Mu, @HikariTJU, @imflash217, @274869388,, @matrixgame2018, @jamiechoi1995, @JingweiZhang12, @Xiangxu-0103, @osbm, @ceroytres, @bunge-bedstraw-herb, @Youth-Got, @daavoo, @jiangyitong, @CCODING04, @yarkable 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmdetection/releases/tag/v2.23.0
MMPose
新功能
- 支持了 Campus 和 Shelf 数据集,并提供了 VoxelPose 预训练模型( "3D Pictorial Structures for Multiple Human Pose Estimation", CVPR'2014)
- 新增 Smoother 模块用于姿态估计结果的时序平滑,支持 Gaussian, Savitzky-Golay, OneEuro, SmoothNet 等多种可配置滤波器
- 新增多视角 3D 姿态估计 demo
- 支持多机分布式训练
代码改进
- 更新了 HRFormer 配置文件和预训练模型
- 支持各分布式节点使用不同的随机数种子
- 优化文档内容
Bug 修复
- 修复 RHD 数据集可视化点序错误的问题
- 修复 Windows 下自动生成模型 metafile 时路径格式不统一的问题
- 修复 channel_shuffle 中使用隐式通道数表达导致模型导出报错的问题
- 修复 Webcam API 中检测模型物体类别解析的一处 bug
- 修复 custom_hook 选项未正确暴露给用户的问题
- 更新 DockerFile 中 MMCV 的安装方式
- 修复关键点可视化中未正确跳过不可见点的问题
感谢 @ailingzengzzz,@YoniChechik,@YoniChechik,@YoniChechik,@bladrome,@womeier 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmpose/blob/master/docs/en/changelog.md
MMClassification
新功能
- 添加 CSP Net 系列模型,包括 CSP ResNet、CSP ResNeXt、CSP DarkNet
- 添加了一个
CustomDataset
,帮助大家更方便地使用自定义数据集
- 支持了 ConvMixer 模型
- 支持了 RepMLP 模型
- 支持了 CUB 数据集
- 支持了 ResizeMix 数据增强算法
代码改进
- 支持 KFoldDataset 的
get_cat_ids
和 get_gt_labels
方法
- 在数据集的
worker_init_fn
方法中添加 PyTorch 随机种子的设置
Bug 修复
- 修复了 ConvNeXt 输出特征图不连续导致的问题
感谢 @Hydrion-Qlz, @huyu398, @okotaku 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmclassification/releases/tag/v0.22.0
MMDeploy
新功能
- SDK 支持了 MMPose 模型的推理。包括:HRNet、LiteHRNet、MSPN
- 支持了 MMDetection3D 的模型部署。包括:PointPillars 和 CenterPoint(pillar version)
- 支持了 Android 平台
- 支持了 TorchScript 导出和推理
代码改进
- 优化了TRTMultiLevelRoiAlign 算子
- 复用 ONNXRuntime 的 RoiAlign 算子,移除为之添加的 MMCVRoiAlign 自定义算子
- 新增 TensorRT 算子 DCN
- 重构 Model Converter 中的 rewriter 模块
- 更新 MMDeploy CMake package,消除第三方库的绝对路径
Bug 修复
- 修复 headless installation crash 的问题
- 订正 MMSeg 的部署 config 错误的问题
- 修复预处理模块的 use-after-free 问题
- 解决了与 torch 1.11 不兼容的问题
- 修复 yolox 模型部署失败的问题
感谢 @SemyonBevzuk, @raykindle, @yydc-0, @haofanwang, @LJoson, @PeterH0323 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmdeploy/releases/tag/v0.4.0
MMCV
新功能
- 添加 SegmindLoggerHook 日志钩子
- Config 类支持浅拷贝
- gather_points 算子支持 fp16 训练
- 添加 non-deterministic voxelization 算子
- 添加用于初始化 dataloader worker 随机数的函数
代码改进
- Config 忽视配置中的导入语句
- 更新 detection3d 算子的单元测试
Bug 修复
- 修复 deconv_flops_counter 统计 flops 错误
- 修复 deform_conv python 绑定错误
- 修复 ProfilerHook 不能打印提醒信息
- 更新 http://MANIFEST.in 以将 spconv 算子头文件加入 sdist 包
- 修复 DynamicScatter、MultiScaleDeformableAttention 和 Voxelization 算子
- 修复 ROCm 编译问题
- 修复 torch1.11.0 重命名 _sync_params 出现的兼容问题
感谢 @SuTanTank, @VVsssssk, @zhanggefan, @saurbhc, @XiwuChen, @Xiangxu-0103, @imflash217 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmcv/releases/tag/v1.4.8 & https://github.com/open-mmlab/mmcv/releases/tag/v1.4.7
MMRotate
新功能
- 支持多机训练
- 增加了数据集浏览工具
- 增加了 gather_models 脚本
代码改进
- 移除了 rbbox_overlaps 中的 in-place 操作
Bug 修复
- 修复了 docstring 文档格式错误
- 修复了 HRSCDataset 的 bug
感谢 @canoe-Z, @matrixgame2018 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmrotate/blob/dev/docs/en/changelog.md
MMDetection3D
新功能
- 支持 ScanNet 数据集上的实例分割任务
- 支持不同进程采用不同随机种子
- 支持从 Ceph 加载注释文件
- 支持自动从最新记录节点恢复训练
- 添加 windows CI
代码改进
- 迁移所有算子到 mmcv
- 在 KITTI 的数据转换中是否生成地面文件的选项
- 更新文档中的说明和链接
- 支持并行的 Waymo 数据集转换和真值数据库生成
- 在入门文档中添加快速安装命令
Bug 修复
- 更新 nuimages 配置文件以使用新的 nms 配置格式
- 修正 numpy 的用法使之兼容 windows
- 修复 BasePoints 中不正确的索引
- 修复 pillar_scatter.forward_single 中不正确的索引
- 修复使用 GPU 的单元测试
- 修复由之前升级 PillarFeatureNet 导致的 DynamicPillarFeatureNet 中不正确的特征尺寸
- 删除 PointSample 中的 CameraPoints 约束
- 修复 Waymo 数据集的不精确时间戳保存
感谢 @zjwzcx, @Xiangxu-0103, @EdAyers, @hongye-dev, @zhanggefan 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmdetection3d/blob/master/docs/en/changelog.md
MMOCR
新功能
- 支持对文本中空格的识别,用户仅需将识别标注文件转换为 JSON Line 格式并配置 LineJsonParser 即可;详尽的配置文档也一并进行了同步更新
- MMOCR 现支持调用 Tesseract API 进行文本检测和识别
- 新增 Windows CI,MMOCR 现已支持 Windows 和 MacOS
代码改进
- 重构了识别中的 ResNet,引入 Plugin 机制来统一 ResNet 结构
- 统一了标注文件的 loader,遗弃原先的 LmdbLoader 以及 HardDiskLoader,并采用设计更加合理的 AnnFileLoader 来代替,支持从 http,petrel,disk 进行标注读取
- 新增16个 OCR 数据集的介绍文档以及下载流程文档,并更新了数据集内容的树形图
- 新增 testing.md, getting_started.md, serving.md 3篇文档的中文翻译
Bug 修复
- 修复了 MMDet 版本限制问题
- 修复单元测试 num_worker 问题
- 修复了文字识别字典中空格读取问题
- 修复 SARLoss 中 ignore_index 的默认值
- 修复 PSENet 中可能导致 inplace operation 错误的问题
- 使用分隔符(-)代替参数中的下划线(_)
感谢 @GPhilo, @EighteenSprings, @BeyondYourself, @yangrisheng, @garvan2021 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmocr/releases/tag/v0.5.0
MMEditing
新功能
- 支持 AOT-GAN (#677)
- 使用
--diff-seed
在多卡训练中为 torch 设置不同的初始化种子 (#781)
- 在视频插帧 demo 中支持流帧读取 (#790)
- 支持非 slurm 的 dist_train (#791)
- 在 restoration_video_demo 中将 LQ 存放在 CPU (#792)
- 在 EDSR 中支持处理灰度数据 (#793)
- 支持视频插帧算法 TOFlow (#806, #811)
- 支持在 DistributedSampler 中为不同的 rank 设置不同的随机种子 (#815)
代码改进
- 修复 README 文件中的失效链接 (#782, #786, #819, #820)
- 修复抠图教程 (#795)
- 翻转
RandomAffine
中的 flip_ratio
(#799)
- 修复 preprocess_div2k_dataset.py (#801)
- 修复 SR Colab Demo Installation 方法和 Set5 链接 (#807)
- 修正EDSR README 中的 Y/GRB 错误 (#812)
- 将
README(_zh-CN).md
中的 pytorch 安装命令替换为 conda (#816)
Bug 修复
- 更新 CI (#650)
- 更新 requirements.txt (#725, #817)
- 增加 dataset (#758), pipeline (#779), model (#766) 教程
- 更新 index 和 TOC 结构树 (#767)
- 更新 update_model_index.py 以兼容 Windows (#768)
- 更新文档构建系统 (#769)
- 更新 setuptools 的关键字和分类器 (#773)
- 更新安装文档 (#776, #800)
- 更新 BasicVSR++ 和 RealBasicVSR 文档 (#778)
- 更新 citation (#785, #787)
- 重组文档 (#788)
- 在 metafile 中使用 config 的全名作为 'Name',以支持 mim 下载 (#798)
- 更新 README 中的图片和视频示例 (#802)
- 在视频插帧测试时使用
clamp(0, 1)
(#805)
- 在演示和工具中的命令行参数中使用连字符 (#808), 在python文件中为必选参数保留下划线 (#822)
- 将
dataset.pipeline
作为文档的单列内容 (#813)
- 更新 mmcv-full>=1.3.13 以在 CPU 中支持 DCN (#823)
感谢 @nijkah @wdmwhh @freepoet @quincylin1 在此版本中的贡献。
更多内容请见:
mmediting/changelog.md at master · open-mmlab/mmediting
MMSegmentation
新功能
- 支持 BEiT 骨架网络 (#1404)
- 支持数据集用
file_client
初始化 (#1402)
- 添加 STARE 数据集类别名称函数 (#1376)
- 支持分布式训练时,不同 rank 设置不同随机种子 (#1362)
代码改进
- 为分布式 sampler 同步随机种子 (#1411)
- 为多机分布式训练添加脚本和文档 (#1383)
- 添加 FAQ 文档 (#1420)
Bug 修复
CELoss
添加 avg_non_ignore
以计算只在非 ingore 区域损失 (#1409)
- 修复错误模型链接 (#1336)
- 修改文档中对 config 文件命名规约 (#1414)
- 在
tools/confusion_matrix.py
中添加绘制的标题和颜色主题参数 (#1401)
- 修复 Colab demo 中的链接 (#1392)
- 修复 typo (#1424, #1405, #1371, #1366, #1363)
感谢 @kinglintianxia, @CCODING04, @mob5566, @xiongnemo, @Xiangxu-0103 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmsegmentation/releases/tag/v0.23.0
MMSelfSup
新功能
- 支持 SimMIM (#239)
- 增加 KNN 基准测试,支持中间 checkpoint 和提取的 backbone 权重进行评估 (#243)
- 支持 ImageNet-21k 数据集 (#225)
- 支持自动继续 checkpoint 文件的训练 (#245)
代码改进
- 更新命令行参数模式 (#253)
- 修复 6_benchmarks.md 中命令文档(#263)
- 翻译 6_benchmarks.md 到中文 (#262)
Bug 修复
- 在分布式 sampler 中增加种子 (#250)
- 修复 dist_test_svm_epoch.sh 中参数位置问题 (#260)
- 修复 prepare_voc07_cls.sh 中 mkdir 潜在错误 (#261)
社区贡献者
感谢 @mitming 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmselfsup/blob/master/docs/en/changelog.md
MMRazor
新功能
- 支持使用 MMDeploy 部署
- 新增分类蒸馏算法 Relational Knowledge Distillation (CVPR 2019)
- 使用
--diff-seed
在多卡训练中为 torch 设置不同的初始化种子
- StructurePruner 支持处理包含孔洞卷积的模型,比如 YOLOF
- StructurePruner 支持处理共享模块(比如 RetinaNet 中的共享 head)
代码改进
- 提供 multi-node 训练和测试的脚本
- 更新训练接口,和 mmcls 和 mmdet 保持一致
Bug 修复
- 修复 Pruner 不能正确处理 requires_grad=False 参数的问题
更多内容请见:
https://github.com/open-mmlab/mmrazor/releases/tag/v0.3.0
MMAction2
新功能
- 支持设置不同的seeds
- 提供 multi-node 训练和测试的脚本
- 更新了 error log
代码改进
- 改进了 colab tutorial 里的 install 命令
- 改进了 local rank 的参数命名
Bug 修复
- 修复了 analyze_logs.py 里 num_iters_per_epoch 的 bug
- 修复了 kinetics/rename_classnames.sh 的 bug
- 修复了 Distributed_sampler 的 bug
社区贡献者
感谢 @Stephenfang51, @rlleshi, @CCODING04 在此版本中的贡献。
更多内容请见:
https://github.com/open-mmlab/mmaction2/blob/master/docs/changelog.md
MMGeneration
新功能
- 支持在 EMA 中使用动态的 momentum,你可以自定义更新策略。
- 支持在 static unconditional gan 的训练过程中向生成器传入额外的参数。
- 支持了多机多卡分布式训练。
代码改进
Bug 修复
更多内容请见:
mmgeneration/changelog.md at master · open-mmlab/mmgeneration
MMHuman3D
新功能
- 增加HumanDataCache来解决使用HumanData时内存溢出的问题(例如使用HMR训练时减少96%内存占用)
- 重构可微渲染器并支持UV map渲染
- HumanData支持slice/concat操作
代码改进
- 升级SMPLify,支持更多损失函数、输出HumanData等等
- 重构关键点映射并支持没有mask的转换
Bug 修复
- 修复了一些数据预处理的关键问题(相关数据集有SURREAL和AGORA等)
- 修复了渲染工具箱中顶点相关的问题
- 修复了tensor2dict中shape和device的问题
- 修复了HybrIK中的一些小问题
- 修复了demo中内存溢出的问题
- 修复了文档格式的问题
- 修复了HumanData中重复的肢体的问题
- 更新了依赖(如cdflib, ffmpeg)
更多内容请见:
https://github.com/open-mmlab/mmhuman3d/releases/tag/v0.6.0
MMFlow
新功能
- 支持三个遮挡估计方法:forward-backward consistency;range map of the backward flow;flow forward-backward abstract difference (#106)
- 支持分布式训练时,不同 rank 设置不同随机种子 (#104)
代码改进
- 为分布式 sampler 同步随机种子 (#110)
- 为多机分布式训练添加脚本和文档 (#107)
Bug 修复
- 修复
collect_env
在 Windows 平台上的问题 (#112)
更多内容请见:
https://github.com/open-mmlab/m