OpenMMLab开营笔记
摘要
很高兴能加入OpenMMLab AI实战营,成为第二期4班的一名学员。OpenMMLab经过几年的发展和沉淀,其开源项目已经覆盖到计算机视觉的各个领域。OpenMMLab 为香港中文大学-商汤科技联合实验室 MMLab 开源的算法平台,不到两年时间,已经包含众多 SOTA 计算机视觉算法。
OpenMMLab 为香港中文大学-商汤科技联合实验室 MMLab 开源的算法平台,到目前为止,已经包含众多 SOTA 计算机视觉算法。
今年,很多的新算法也是在OpenMMLab的算法库上实现的,比如SeaFormer。在巨人的肩膀上,我们可以很方便的实现自己的算法,也可以将主干网络迁移到下游任务。
OpenMMLab的部署框架包括:MMDeploy。
OpenMMLab的算法框架包括:MMPretrain,MMDetection,MMDetection3D,MMRotate,MMsegmentation,MMPose,MMAction2,MMOCR,MMagic,MMYolo,MMFlow,MMTracking,MMHuman3D,MMFewshot等等,共有30多种的算法库。
视觉基础库:MMCV,MMEngine。
接下来,我们一起去了解OpenMMLab的各个算法库吧!
MMDetection:目标检测工具箱
MMDetection 是一个基于 PyTorch 的目标检测开源工具箱。它是 OpenMMLab 项目的一部分。是目前应用最广的算法库
主分支代码目前支持 PyTorch 1.6 以上的版本。代码链接:https://gitee.com/open-mmlab/mmdetection。
主要特性
模块化设计。MMDetection 将检测框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的检测模型
支持多种检测任务。MMDetection 支持了各种不同的检测任务,包括目标检测,实例分割,全景分割,以及半监督目标检测。
速度快。基本的框和 mask 操作都实现了 GPU 版本,训练速度比其他代码库更快或者相当,包括 Detectron2, maskrcnn-benchmark 和 SimpleDet。
性能高。MMDetection 这个算法库源自于 COCO 2018 目标检测竞赛的冠军团队 MMDet 团队开发的代码,我们在之后持续进行了改进和提升。 新发布的 RTMDet 还在实时实例分割和旋转目标检测任务中取得了最先进的成果,同时也在目标检测模型中取得了最佳的的参数量和精度平衡。
除了 MMDetection 之外,我们还开源了深度学习训练库 MMEngine 和计算机视觉基础库 MMCV,它们是 MMDetection 的主要依赖。
下面的链接是我使用MMDetection实现的算法以及效果。
https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/124647370
MMOCR:全流程文字检测识别理解工具包
MMOCR 是基于 PyTorch 和 mmdetection 的开源工具箱,专注于文本检测,文本识别以及相应的下游任务,如关键信息提取。 它是 OpenMMLab 项目的一部分。
主分支目前支持 PyTorch 1.6 以上的版本。
代码链接:https://github.com/open-mmlab/mmocr
主要特性
全流程。该工具箱不仅支持文本检测和文本识别,还支持其下游任务,例如关键信息提取。
多种模型。该工具箱支持用于文本检测,文本识别和关键信息提取的各种最新模型。
模块化设计。MMOCR 的模块化设计使用户可以定义自己的优化器,数据预处理器,模型组件如主干模块,颈部模块和头部模块,以及损失函数。有关如何构建自定义模型的信息,请参考概览。
众多实用工具。该工具箱提供了一套全面的实用程序,可以帮助用户评估模型的性能。它包括可对图像,标注的真值以及预测结果进行可视化的可视化工具,以及用于在训练过程中评估模型的验证工具。它还包括数据转换器,演示了如何将用户自建的标注数据转换为 MMOCR 支持的标注文件。
MMDetection3D: 新一代通用 3D 目标检测平台
-MMDetection3D 是一个基于 PyTorch 的目标检测开源工具箱, 下一代面向3D检测的平台. 它是 OpenMMlab 项目的一部分,这个项目由香港中文大学多媒体实验室和商汤科技联合发起.
代码链接:https://gitee.com/open-mmlab/mmdetection3d
主要特性
支持多模态/单模态的检测器。支持多模态/单模态检测器,包括 MVXNet,VoteNet,PointPillars 等。
支持户内/户外的数据集。支持室内/室外的3D检测数据集,包括 ScanNet, SUNRGB-D, Waymo, nuScenes, Lyft, KITTI。对于 nuScenes 数据集, 我们也支持 nuImages 数据集。
与 2D 检测器的自然整合。MMDetection 支持的300+个模型 , 40+的论文算法, 和相关模块都可以在此代码库中训练或使用。
性能高。训练速度比其他代码库更快。
MMRotate: 旋转框检测工具箱
MMRotate 是一款基于 PyTorch 的旋转框检测的开源工具箱,是 OpenMMLab 项目的成员之一。
主分支代码目前支持 PyTorch 1.6 以上的版本。
代码链接:https://gitee.com/open-mmlab/mmrotate
主要特性
支持多种角度表示法。MMRotate 提供了三种主流的角度表示法以满足不同论文的配置。
模块化设计。MMRotate 将旋转框检测任务解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的旋转框检测算法模型。
强大的基准模型与SOTA。MMRotate 提供了旋转框检测任务中最先进的算法和强大的基准模型.
MMSegmentation: 语义分割工具箱
MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 OpenMMLab 项目的一部分。
main 分支代码目前支持 PyTorch 1.6 以上的版本。
代码链接:https://gitee.com/open-mmlab/mmsegmentation
主要特性
统一的基准平台。我们将各种各样的语义分割算法集成到了一个统一的工具箱,进行基准测试。
模块化设计。MMSegmentation 将分割框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的分割模型。
丰富的即插即用的算法和模型。MMSegmentation 支持了众多主流的和最新的检测算法,例如 PSPNet,DeepLabV3,PSANet,DeepLabV3+ 等.
速度快。训练速度比其他语义分割代码库更快或者相当。
MMPretrain:预训练开源算法框架
MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络, 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSelfSup,并开发了许多令人兴奋的新功能。 目前,预训练阶段对于视觉识别至关重要,凭借丰富而强大的预训练模型,我们能够改进各种下游视觉任务。
代码链接:https://github.com/open-mmlab/mmpretrain/blob/main/README_zh-CN.md
主要特性
- 支持多样的主干网络与预训练模型
- 支持多种训练策略(有监督学习,无监督学习,多模态学习等)
- 提供多种训练技巧
- 大量的训练配置文件
- 高效率和高可扩展性
- 功能强大的工具箱,有助于模型分析和实验
- 支持多种开箱即用的推理任务
- 图像分类
- 图像描述(Image Caption)
- 视觉问答(Visual Question Answering)
- 视觉定位(Visual Grounding)
- 检索(图搜图,图搜文,文搜图)
MMPose: 姿态估计工具箱
MMPose 是一款基于 PyTorch 的姿态分析的开源工具箱,是 OpenMMLab 项目的成员之一。
主分支代码目前支持 PyTorch 1.6 以上的版本。
代码链接:https://gitee.com/open-mmlab/mmpose
主要特性
支持多种人体姿态分析相关任务。MMPose 支持当前学界广泛关注的主流姿态分析任务:主要包括 2D多人姿态估计、2D手部姿态估计、2D人脸关键点检测、133关键点的全身人体姿态估计、3D人体形状恢复、服饰关键点检测、动物关键点检测等。 具体请参考 功能演示。
更高的精度和更快的速度。MMPose 复现了多种学界最先进的人体姿态分析模型,包括“自顶向下”和“自底向上”两大类算法。MMPose 相比于其他主流的代码库,具有更高的模型精度和训练速度。 具体请参考 基准测试(英文)。
支持多样的数据集。MMPose 支持了很多主流数据集的准备和构建,如 COCO、 MPII 等。 具体请参考 数据集。
模块化设计。MMPose 将统一的人体姿态分析框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的人体姿态分析模型。
详尽的单元测试和文档。MMPose 提供了详尽的说明文档,API 接口说明,全面的单元测试,以供社区参考。
MMAction2: 视频理解工具箱
MMAction2 是一款基于 PyTorch 的视频理解开源工具箱,是 OpenMMLab 项目的成员之一
主分支代码目前支持 PyTorch 1.5 以上的版本。
代码链接:https://gitee.com/open-mmlab/mmaction2
主要特性
模块化设计:MMAction2 将统一的视频理解框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的视频理解模型
支持多种任务和数据集:MMAction2 支持多种视频理解任务,包括动作识别,时序动作检测,时空动作检测以及基于人体姿态的动作识别,总共支持 27 种算法和 20 种数据集
详尽的单元测试和文档:MMAction2 提供了详尽的说明文档,API 接口说明,全面的单元测试,以供社区参考
MMDeploy: 模型部署框架
MMDeploy 是 OpenMMLab 模型部署工具箱,为各算法库提供统一的部署体验。基于 MMDeploy,开发者可以轻松从训练 repo 生成指定硬件所需 SDK,省去大量适配时间。
代码链接:https://gitee.com/open-mmlab/mmdeploy
架构简析
特性简介
支持超多 OpenMMLab 算法库如:mmcls、mmdet、mmseg、mmedit、mmocr、mmpose、mmdet3d、mmrotate、mmaction2。
MMTracking: 一体化视频目标感知平台
MMTracking是一款基于PyTorch的视频目标感知开源工具箱,是OpenMMLab项目的一部分。
主分支代码目前支持PyTorch 1.5以上的版本。
代码链接:https://gitee.com/open-mmlab/mmtracking
主要特性
首个开源一体化视频目标感知平台。MMTracking 是首个开源一体化视频目标感知工具箱,同时支持视频目标检测,多目标跟踪,单目标跟踪和视频实例分割等多种任务和算法。
模块化设计。MMTracking将统一的视频目标感知框架解耦成不同的模块组件,通过组合不同模块组件,用户可以便捷地构建自定义视频目标感知模型。
简洁、高效、强大。
简洁:MMTracking与其他OpenMMLab平台充分交互。MMTracking充分复用MMDetection中的已有模块,我们只需要修改配置文件就可以使用任何检测器。
高效:MMTracking所有操作都在GPU上运行。相比其他开源库的实现,MMTracking的训练和推理更加高效。
强大:MMTracking复现了SOTA性能的模型。受益于MMDetection的持续推进,部分实现精度超出官方版本。
MMYOLO: YOLO 系列工具箱与测试基准
MMYOLO 是一个基于 PyTorch 和 MMDetection 的 YOLO 系列算法开源工具箱。它是 OpenMMLab 项目的一部分。
主分支代码目前支持 PyTorch 1.6 以上的版本。
代码链接:https://gitee.com/open-mmlab/mmyolo
主要特性
🕹️ 统一便捷的算法评测
MMYOLO 统一了各类 YOLO 算法模块的实现, 并提供了统一的评测流程,用户可以公平便捷地进行对比分析。
📚 丰富的入门和进阶文档
MMYOLO 提供了从入门到部署到进阶和算法解析等一系列文档,方便不同用户快速上手和扩展。
🧩 模块化设计
MMYOLO 将框架解耦成不同的模块组件,通过组合不同的模块和训练测试策略,用户可以便捷地构建自定义模型。
MMHuman3D: 人体参数化模型工具箱与测试基准
MMHuman3D 是一款基于 PyTorch 的人体参数化模型的开源工具箱,是 OpenMMLab 项目的成员之一。
主分支代码目前支持 PyTorch 1.7 以上的版本。
代码链接:https://gitee.com/open-mmlab/mmhuman3d
主要特性
使用模块化的框架复现流行的算法。MMHuman3D 重新实现了流行的算法,帮助用户只需一行代码即可完成复现。模块化的框架适合快速验证:用户可以在不修改代码的情况下调试不同的超参数甚至神经网络结构。
通过一个统一的数据规范 HumanData 支持多种数据集。通过一个规范工具箱,我们将所有的支持的数据集都对齐到统一的数据格式 HumanData . 我们同时也提供预处理完成的数据文件。
多功能可视化工具箱。一整套可微的可视化工具支持人体参数化模型的渲染(包括部分分割,深度图以及点云)和传统 2D/3D 关键点的可视化。
MMFlow:光流估计工具箱与测试基准
MMHuman3D 是一款基于 PyTorch 的人体参数化模型的开源工具箱,是 OpenMMLab 项目的成员之一。
主分支代码目前支持 PyTorch 1.7 以上的版本。
代码链接:https://gitee.com/open-mmlab/mmflow
主要特性
首个光流算法的统一框架。MMFlow 是第一个提供光流方法统一实现和评估框架的工具箱。
模块化设计。MMFlow 将光流估计框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的光流算法模型。
丰富的开箱即用的算法和数据集。MMFlow 支持了众多主流经典的光流算法,例如 FlowNet, PWC-Net, RAFT 等, 以及多种数据集的准备和构建,如 FlyingChairs, FlyingThings3D, Sintel, KITTI 等。
其他
这些库上课没有提到,先做个记录。
- MMEngine: OpenMMLab 深度学习模型训练库
- MMCV: OpenMMLab 计算机视觉基础库
- MIM: MIM 是 OpenMMlab 项目、算法、模型的统一入口
- MMEval: 统一开放的跨框架算法评测库
- MMClassification: OpenMMLab 图像分类工具箱
- MMSelfSup: OpenMMLab 自监督学习工具箱与测试基准
- MMRazor: OpenMMLab 模型压缩工具箱与测试基准
- MMFewShot: OpenMMLab 少样本学习工具箱与测试基准
- MMEditing: OpenMMLab 图像视频编辑工具箱
- MMGeneration: OpenMMLab 图片视频生成模型工具箱
AI实战营第二期课程安排
总结
OpenMMLab深度学习时代最完整的计算机视觉开源算法体系,10+ 视觉方向全面助力产、学、研打通,GitHub 累计获得 55,000+ star。欢迎更多的人加入实战营。
- 点赞
- 收藏
- 关注作者
评论(0)