程序员开发实例大全宝库

网站首页 > 编程文章 正文

上新啦!OpenMMLab全面更新(openlab论坛)

zazugpt 2024-08-30 04:57:12 编程文章 17 ℃ 0 评论

作者:陈恺

本文转载自知乎,已获原作者授权,请勿二次转载。

https://zhuanlan.zhihu.com/p/269118429


0 / 关于OpenMMLab


为了帮助更多的同学在复现上少走弯路,并且实现可以在一个相同的环境下比较不同的settings, 香港中文大学多媒体实验室(MMLab)推出了OpenMMLab计划。OpenMMLab是一个用于多个重要研究领域的开源的代码库,力求在代码的质量和整体架构比别的代码库更具有优势,其目标是做到“Open-Source、Unified、Reproducible”。


这次OpenMMLab的一大波更新包括:

● MMCV

● MMClassification

● MMSegmentation

● MMEditing

● MMDetection

● MMDetection3D

● MMPose

● MMAction2


在这次更新中,OpenMMLab 的各个项目都支持了 pip install 直接安装,增加了对混合精度训练的支持和 ONNX 转换的支持,Dockerfile 全面升级到 PyTorch 1.6,并启用了新的模型库域名:download.openmmlab.com。从 7 月份的发布以来,共增加了 21 个新算法,目前 OpenMMLab 项目开放的总算法数超过了 120,总模型数达到了 900 以上。


各个算法库的更新简介如下:


1 / MMCV


新特性

● 增加 build_runner 方法,方便下游代码库的 runner 定制化

● 支持对 DCN 中 offset 层学习率的调整

● 增加 EMAHook,支持指数移动平均方法

● 为 Adaptive Average Pooling 提供 ONNX 的支持

● 增加新的算子,

如 TINShift,Conv2dAdaptivePadding

● 增加新模块,

如 DepthwiseSeparableConvModule,Swish activation

● 增加新的数据处理模块,

如 imshear,imtranslate,adjust_brightness 等


代码改进

● JsonHandler 增加对 unserializable 的值与更多默认类型的支持

● 图像处理模块支持对角线翻转

● 优化 batched_nms 以处理框数量过多的情况,自动根据框的类别标签进行序列处理

● 增加了 wrap_fp16_model 的接口

● 改进 train/val_step 接口

● 添加 deconv 的注册器

● 支持在 fp16 optimizer hook 中记录梯度大小

● 允许 imshow_det_bboxes() 同时返回框和图片


项目地址:

https://github.com/open-mmlab/mmcv


2 / MMClassification



新特性

● 增加 inference 的相关代码

● 支持 PyTorch 到 ONNX 的转换

● 增加新的 transform,包括基于 PIL 的 transform 和 albumentations

● 增加新模型,包括 ResNeSt,VGG 等

● 支持新更多数据集

● 增加结果可视化模块


代码改进和 BUG 修复

● 更新了 ShuffleNet 的配置文件,更新多个模型的预训练权重,包括 ShuffleNet 系列与 SE-ResNet 系列

● 解决多个 transform 中存在的错误

● 改进多个模型的参数和初始化问题


项目地址:

https://github.com/open-mmlab/mmclassification


3 / MMSegmentation



新算法/模型

● MobileNet V2

● EMANet

● DNL

● PointRend

● Semantic FPN

● Fast SCNN

● ResNeSt

● ORNet ResNet

● DeepLabV3/DeepLabV3+ Dilate 16


新数据集

● Pascal Context


代码改进

● 支持 ONNX 导出上采样

● 支持 Windows 环境下的安装

● 迁移 DepthwiseSeparableConv,collect_env 到 MMCV

● 支持用户自定义数据集类别和调色板


项目地址:

https://github.com/open-mmlab/mmsegmentation


4 / MMDetection



支持新算法/模型

● YOLACT

● CentripetalNet

● SABL

● YOLOv3

● PAA Assign

● CornerNet

● DIOU/CIOU loss

● 支持新数据集 LVIS V1


文档完善

● 新的colab tutorial:增加了训练教程,教程中包括将新的数据集转为MMDet的格式并对预训练模型进行微调和推理,方便新手了解目标检测中从数据预处理到模型训练和推理的全过程

● 增加trouble shooting页面:总结了mmdet使用过程中的常见issue和解决方案

● 完善了自定义数据集、自定义模型相关的教程


新特性

● 支持batch inference:支持在推理过程单卡 batch size >1的情况,提高模型推理的并行度

● 支持pip install mmdet:从此支持一行命令安装mmdet了

● 支持 RetinaNet 从 Pytorch 到 ONNX的转换:支持和完善了PyTorch2ONNX的功能,后续还会继续支持双阶段和多阶段检测器的Pytorch2ONNX

● 支持了PyTorch 1.6 Dockerfile:更新了Dockerfile,用户可以使用基于PyTorch1.6的docker来使用MMDetection,注意,Pytorch 1.3 - Pytorch 1.5的docker仍然可以使用,用户只需要在Dockerfile中修改PyTorch相应版本即可。


代码改进

● 将所有的CUDA/C++ 算子迁移到了MMCV,统一管理 OpenMMLab 项目对 CUDA 算子依赖。

● 对自定义数据集的灵活支持,支持根据类别自动筛选数据:之前对自定义数据集和自定义类别的数据使用不够友好,在指定训练类别的情况下无法控制剔除无GT图像的行为。最新版使得只有在 filter_empty_gt=True 和 test_mode=True 的情况下才会剔除无 GT 的图像,消除了数据筛选的歧义。

● 统一了代码中的负样本标签定义,RPN head 中 0 代表正样本(第一正类),1 代表负样本,使得 v2.5 以后所有的 head 都使用 self.num_classes 来定义背景框的标签,不再有特殊情况。


项目地址:

https://github.com/open-mmlab/mmdetection


3 / MMDetection3D



支持新算法/模型

● H3DNet

● 3DSSD

● CenterPoint


支持新数据集

● Waymo:支持 Waymo 数据集,开放了 PointPillars 和 SECOND 的预训练模型和模型性能,为研究和开发提供性能基准

● nuImages:支持使用 nuImages 数据集进行目标检测、实例分割任务。包含 Mask R-CNN and Cascade Mask R-CNN 预训练模型和模型性能,提供性能基准的同时也为多模态检测提供了预训练模型。


新特性

● 支持 Batch Inference:支持在推理过程单卡 batch size >1 的情况,提高模型推理的并行度

● 支持 Pytorch 1.6:支持了 Pytorch1.6,清理了 Pytorch1.6 (如 torch.nonzero)相关的warning

● 支持 pip install mmdet3d:支持一行命令安装 mmdetection3d,方便开发者将 mmdet3d 作为基础代码库开发新的项目

● 支持混合精度训练:对 PointPillars / SECOND 等基于 voxel 的模型支持混合精度训练,在 KITTI 和 nuScenes 数据集上显存减半但是精度不掉。


项目地址:

https://github.com/open-mmlab/mmdetection3d


3 / MMEditing



新特性

● 支持 NIQE,一种常用的图像质量评价指标,帮助大家更好地测试自己的模型

● 支持 pip install mmedit

● 加入 FP16 训练所需模块,支持 FP16 的训练,降低资源开销


项目地址:

https://github.com/open-mmlab/mmediting


转眼间,10月的新版本即将发布,从下个月开始,我们将定时推出 OpenMMLab 新闻月刊,来介绍每个月的版本更新和重要进展,欢迎大家关注!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表