我们好,我是马加仓。
2018年中,香港大学影音生物医学(MMLab)开启了 OpenMMLab 方案。此项方案的本意是为计算机系统听觉的许多关键路径创建标准化而对外开放的标识符库,并急速把捷伊演算法结晶当中。当年10月,MMLab生物医学对外开放第一卷 MMCV 计算机系统听觉此基础库和第二代 MMDetection 球体检验widget,这种的行径是整座 OpenMMLab 标准化对外开放源码管理体系变异的转捩点。而后,周武王信息技术将 OpenMMLab 重大贡献到了OpenI 一峰街道社区。
OpenMMLab绝非两个原则上的对外开放源码工程项目,除在广度自学应用领域脍炙人口的MMCV 和MMDetection以外,除了很多其它路径的标识符库和统计数据集,且她们都是如前所述广度自学 PyTorch 架构。
如今,OpenMMLab 早已总计正式发布了少于 15 个演算法库,囊括进行分类、检验、拆分、音频认知等为数众多演算法应用领域,保有少于 300 种演算法同时实现和 2000 个预体能训练数学模型。六一假日前,OpenMMLab 正式宣布进驻 Gitee。工程项目门牌号:OpenMMLab: 广度自学黄金时代最完备的计算机系统听觉对外开放源码演算法管理体系,10+ 听觉路径全面性助推产、学、研贯通,GitHub 总计赢得 55,000+ star。
OpenMMLab 有很多新颖的架构。如下表所示:
今天,我们就给我们推荐 OpenMMLab 架构里的三款优质的对外开放源码工程项目:MMDetection,MMSegmentation,MMDeploy,因篇幅问题,其它工程项目暂时不详细展开,若有对此感兴趣的开发者可前往此处门牌号一一自学、研究与复现。
01MMDetection
MMDetection是什么?
MMDetection是两个如前所述 PyTorch 的广度自学目标检验对外开放源码widget,也是 OpenMMLab 工程项目的一部分,目前支持Faster R-CNN、Mask R-CNN、RetinaNet等等。
2018年,这个数学模型还曾在 COCO Detection 竞赛中拿下了冠军,目前很多广度自学的论文和比赛常会用到这个架构,所以各位开发者直接在大佬们的此基础上进行优化完善是较为方便的。
工程项目门牌号: mmdetection: 如前所述 PyTorch 和 MMCV 的通用目标检验网络平台。支撑了 3D 目标检验、旋转框检验、场景文字识别、姿态估计、目标跟踪等演算法库中检验演算法的同时实现;支持 2D 目标检验、实例拆分、全景拆分任务;支持演算法多样,囊括了单阶段、双阶段和级联数学模型等各任务中的典型演算法和各类体能训练技术;为通用目标检验演算法的研发提供了高性能基准
对外开放源码许可证: Apache 2.0
特点
模块化设计演算法与数学模型即插即用占显存小体能训练速度快如何安装?
前提:需版本对应,安装 MMDetection 需要提前安装 MMCV(面向计算机系统听觉的此基础库)。
流程:
创建两个 conda 虚拟环境并激活它conda create -n open-mmlab python=3.7-y condaactivate open-mmlab按照官方说明安装 PyTorch 和Torchvision例如:
condainstall pytorch torchvision -c pytorch克隆 MMDetection存储库git clone https://gitee.com/open-mmlab/mmdetection.git cd mmdetection安装 MMDetection(其它依赖库将自动安装)pip install mmcv python setup.py develop # or “pip install -v -e .”验证标识符
为了验证是否正确安装了 MMDetection 和所需的环境,可以按照下列运行示例的 Python 标识符来初始化检验器并推理两个演示图像。
如果成功安装 MMDetection,则下列标识符可以完备地运行。
from mmdet.apis import init_detector, inference_detector config_file = configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py # 从 model zoo 下载 checkpoint 并放在 `checkpoints/` 文件下 # 网址为: http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth checkpoint_file = checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth device = cuda:0 # 初始化检验器 model = init_detector(config_file, checkpoint_file, device=device) # 推理演示图像 inference_detector(model, demo/demo.jpg)演示 Demo:
02MMSegmentation
MMSegmentation是什么?
MMSegmentation是两个如前所述 PyTorch 的语义拆分的widget,能够为街道社区提供灵活的标识符工具,供用户复现已有演算法并开发自己的新数学模型。
语义拆分是计算机系统听觉中的一项此基础任务,常应用在自动驾驶或者音频编辑应用领域。
工程项目门牌号: mmsegmentation: 如前所述 Pytorch 和 MMCV 语义拆分对外开放源码演算法库,也是语义拆分演算法性能评估架构,已提供少于420个语义拆分演算法数学模型,并支持多种拆分任务统计数据集,包括自然图像、遥感图像等。
对外开放源码许可证:Apache 2.0
特点
集成标准化的widget基准模块化设计开箱即用体能训练速度快,效率高如何安装?
创建两个 conda 虚拟环境并激活它conda create -n open-mmlab python=3.10 -y conda activate open-mmlab按照官方教程 安装 PyTorch 和 totchvision, 这里 MMSegmentation 使用的是 PyTorch1.11.0 和 CUDA11.3, 开发者们在实操过程种也可以切换至其它版本conda install pytorch=1.11.0 torchvision cudatoolkit=11.3 -c pytorch按照教程安装 MMCV(听觉底层架构) , MMCV 或 MMCV-full 和 MMSegmentation 均兼容,但对于 CCNet 和 PSANet,mmcv-full 里的 CUDA 运算是必须的在 Linux 下安装 MMCV:
为了安装 MMCV, 我们推荐使用下面的这种预编译好的 MMCV.
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html请替换 url 里面的 {cu_version} 和 {torch_version} 为您想要使用的版本。
注意:MMCV-full 仅在 PyTorch 1.x.0 上面编译, 因为在 1.x.0 和 1.x.1 之间通常是兼容的。如果您MMCV-full 而它通常是可以正常使用的。
例如: 用 CUDA 11.1 and PyTorch 1.11.0安装使用 MMCV-full, 使用如下表所示命令:
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11/index.html此外,也可以采用下面的命令来从源码编译 MMCV (可选)
git clone https://gitee.com/open-mmlab/mmcv.git cdmmcv MMCV_WITH_OPS=1 pip install -e .# package mmcv-full, which contains cuda ops, will be installed after this step # OR pip install -e . # package mmcv, which contains no cuda ops, will be installed after this step cd ..安装注意: 如果早已安装了 MMCV, 您需要先运行 pip uninstall mmcv,因为如果 MMCV 和 MMCV-full 被同时安装, 将会报错 ModuleNotFoundError。
在 Windows 下安装 mmcv (有风险):
MMCV 的安装需要本地 C++ 编译工具,例如 cl.exe。 请添加编译工具至 %PATH%。如果您早已在电脑上安装好Windows SDK 和 Visual Studio,cl.exe 的两个典型路径看起来如下表所示:C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.26.28801\bin\Hostx86\x64从 github 克隆 mmcv 并通过 pip 安装:git clone https://gitee.com/open-mmlab/mmcv.git cd mmcv pip install -e .或直接:
pip install mmcv注意: MMCV-full 并不完全在 Windows 上支持。
安装 MMSegmentationpip install mmsegmentation # 安装最新版本或者
pipinstall git+https://gitee.com/open-mmlab/mmsegmentation.git# 安装 master 分支如果想安装 dev 模式的 MMSegmentation, 运行如下表所示命令:git clonehttps://gitee.com/open-mmlab/mmsegmentation.gitcd mmsegmentation pip install -e . # 或者 “python setup.py develop”如何验证?
开发者在复现过程中若是想要验证 MMSegmentation 和它所需要的环境是否正确安装,可以使用样例 Python 标识符来初始化两个 segmentor 并推理一张 Demo 图像,若是完成 MMSegmentation 的安装时,下列代码应该可以成功运行。
from mmseg.apis import inference_segmentor, init_segmentor import mmcv config_file = configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py checkpoint_file = checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth # 从两个 config 配置文件和 checkpoint 文件里创建拆分数学模型model = init_segmentor(config_file, checkpoint_file, device=cuda:0) # 测试一张样例图片并得到结果 img = test.jpg # 或者 img = mmcv.imread(img), 这将只加载图像一次. result = inference_segmentor(model, img) # 在捷伊窗口里可视化结果model.show_result(img, result, show=True) # 或者保存图片文件的可视化结果 # 您可以改变 segmentation map 的不透明度(opacity),在(0, 1]之间。model.show_result(img, result, out_file=result.jpg, opacity=0.5) # 测试两个音频并得到拆分结果 video = mmcv.VideoReader(video.mp4) for frame invideo: result = inference_segmentor(model, frame) model.show_result(frame, result, wait_time=1)Demo演示
03MMDeploy
是什么?
这是两个对外开放源码的广度自学数学模型部署widget,它以各演算法库的数学模型为输入,并把数学模型转化为推理后端所要求的数学模型格式,从而运行在多样化的设备中。
工程项目模块包含 2 个核心要素:数学模型转换器(Model Converter)和应用开发工具包(SDK)。
目前支持6个演算法库和5种后端推理引擎,后续 MMDeploy 仍将不停迭代。MMDeploy 的诞生不仅贯通了从演算法数学模型到应用程序的”最后一公里”,同时也贯通校企的边界。
工程项目门牌号: mmdeploy: 全面性支持 OpenMMLab 演算法库在多种云、边端设备中部署,并提供高度可扩展的 SDK 开发架构,贯通数学模型部署“最后一公里”。。对外开放源码许可证: Apache-2.0
特点
全面性对接 OpenMMLab 各演算法管理体系,并提供演算法快速落地的通道数学模型转换架构标准化管理、运行效率高、支持多后端SDK开发架构可扩展性强输出灵活、开发、多样化,满足不同用户需求如何安装?
1.下载 MMDeploy 标识符仓库
git clone -b master git@gitee.com:open-mmlab/mmdeploy.git MMDeploy cd MMDeploy git submodule update —init –recursive2.按照目标网络平台,进行编译 因网络平台不同导致操作差异,开发者们可根据自身目标网络平台前往安装 MMdeploy mmdeploy 0.4.0 文档,按照说明进行编译。
工程项目架构图
关于我们
Gitee星球 是 Gitee 旗下的创新研究所。
在这里,我们收集整理了 Gitee 上高品质、有意思的对外开放源码工程项目,同时也挖掘 Gitee 工程项目作者的一手对外开放源码故事,邀请优秀的开发者们讲述自己的对外开放源码经历,举办有趣的对外开放源码活动。
喜欢就点个Star
如果你对本期工程项目推荐感兴趣,也欢迎各位转发、评论、点个 star。关于 OpenMMLab 的更多信息,开发者们可前往本期微信次条查阅。
如果你对OpenMMLab的系列工程项目其它的见解,对外开放源码演算法网络平台OpenMMLab来了,Gitee广度自学CV应用领域再添核心人物双枪,欢迎在后台留言与我们一同讨论。
同时也欢迎给我推荐有趣的对外开放源码工程项目,如果成功收录 Gitee星球将有小礼品噢~
往期推荐
Web3.0来了,花呗借呗前端团队对外开放源码的Web图形引擎会成为元宇宙的技术支撑吗?