前言:
现在朋友们对“开源算法库”大致比较关怀,大家都想要学习一些“开源算法库”的相关知识。那么小编在网上网罗了一些有关“开源算法库””的相关内容,希望大家能喜欢,姐妹们快快来学习一下吧!大家好,我是马建仓。
2018年中,香港中文大学多媒体实验室(MMLab)启动了 OpenMMLab 计划。这项计划的初衷是为计算机视觉的一些重要方向建立统一而开放的代码库,并不断把新的算法沉淀其中。当年10月,MMLab实验室开放初版 MMCV 计算机视觉基础库和第一代 MMDetection 物体检测工具箱,这样的举动是整个 OpenMMLab 统一开源体系进化的开端。后来,商汤科技将 OpenMMLab 贡献到了OpenI 启智社区。
OpenMMLab并非一个单独的开源项目,除了在深度学习领域耳熟能详的MMCV 和MMDetection之外,还有许多其他方向的代码库和数据集,且他们都是基于深度学习 PyTorch 框架。
时至今日,OpenMMLab 已经累计发布了超过 15 个算法库,涵盖分类、检测、分割、视频理解等众多算法领域,拥有超过 300 种算法实现和 2000 个预训练模型。五一假期前,OpenMMLab 正式入驻 Gitee。项目地址:OpenMMLab: 深度学习时代最完整的计算机视觉开源算法体系,10+ 视觉方向全面助力产、学、研打通,GitHub 累计获得 55,000+ star。
OpenMMLab 有许多实用的框架。如下:
今天,我们就给大家推荐 OpenMMLab 框架里的三款优质的开源项目:MMDetection,MMSegmentation,MMDeploy,因篇幅问题,其他项目暂时不详细展开,若有对此感兴趣的开发者可前往此处地址一一学习、研究与复现。
01MMDetectionMMDetection是什么?
MMDetection是一个基于 PyTorch 的深度学习目标检测开源工具箱,也是 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 -yconda activate open-mmlab按照官方说明安装 PyTorch 和Torchvision
例如:
conda install pytorch torchvision -c pytorch克隆 MMDetection存储库
git clone mmdetection安装 MMDetection(其他依赖库将自动安装)
pip install mmcvpython setup.py develop # or "pip install -v -e ."验证代码
为了验证是否正确安装了 MMDetection 和所需的环境,可以按照下列运行示例的 Python 代码来初始化检测器并推理一个演示图像。
如果成功安装 MMDetection,则下列代码可以完整地运行。
from mmdet.apis import init_detector, inference_detectorconfig_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'# 从 model zoo 下载 checkpoint 并放在 `checkpoints/` 文件下# 网址为: = '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:02MMSegmentationMMSegmentation是什么?
MMSegmentation是一个基于 PyTorch 的语义分割的工具箱,能够为社区提供灵活的代码工具,供用户复现已有算法并开发自己的新模型。
语义分割是计算机视觉中的一项基础任务,常应用在自动驾驶或者视频编辑领域。
项目地址: mmsegmentation: 基于 Pytorch 和 MMCV 语义分割开源算法库,也是语义分割算法性能评估框架,已提供超过420个语义分割算法模型,并支持多种分割任务数据集,包括自然图像、遥感图像等。
开源许可证:Apache 2.0
特点集成统一的工具箱基准模块化设计开箱即用训练速度快,效率高如何安装?创建一个 conda 虚拟环境并激活它
conda create -n open-mmlab python=3.10 -yconda 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 {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
此外,也可以采用下面的命令来从源码编译 MMCV (可选)
git clone mmcvMMCV_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 stepcd ..
安装注意: 如果已经安装了 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 mmcvpip install -e .
或直接:
pip install mmcv
注意: MMCV-full 并不完全在 Windows 上支持。
安装 MMSegmentation
pip install mmsegmentation # 安装最新版本
或者
pip install git+ # 安装 master 分支如果想安装 dev 模式的 MMSegmentation, 运行如下命令:
git clone mmsegmentationpip install -e . # 或者 "python setup.py develop"如何验证?
开发者在复现过程中若是想要验证 MMSegmentation 和它所需要的环境是否正确安装,可以使用样例 Python 代码来初始化一个 segmentor 并推理一张 Demo 图像,若是完成 MMSegmentation 的安装时,下列代码应该可以成功运行。
from mmseg.apis import inference_segmentor, init_segmentorimport mmcvconfig_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 in video: result = inference_segmentor(model, frame) model.show_result(frame, result, wait_time=1)Demo演示03MMDeploy是什么?
这是一个开源的深度学习模型部署工具箱,它以各算法库的模型为输入,并把模型转化为推理后端所要求的模型格式,从而运行在多样化的设备中。
项目模块包含 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 MMDeploycd MMDeploygit submodule update --init --recursive
2.按照目标平台,进行编译 因平台不同导致操作差异,开发者们可根据自身目标平台前往安装 MMdeploy mmdeploy 0.4.0 文档,按照说明进行编译。
项目架构图
关于我们
Gitee星球 是 Gitee 旗下的创新研究所。
在这里,我们收集整理了 Gitee 上高品质、有意思的开源项目,同时也挖掘 Gitee 项目作者的一手开源故事,邀请优秀的开发者们讲述自己的开源经历,举办有趣的开源活动。
喜欢就点个Star
如果你对本期项目推荐感兴趣,也欢迎各位转发、评论、点个 star。关于 OpenMMLab 的更多信息,开发者们可前往本期微信次条查阅。
如果你对OpenMMLab的系列项目其他的见解,开源算法平台OpenMMLab来了,Gitee深度学习CV领域再添一员猛将,欢迎在后台留言与我们一同讨论。
同时也欢迎给我推荐有趣的开源项目,如果成功收录 Gitee星球将有小礼品噢~
往期推荐
“我只会用PHP,还能进互联网大厂吗?”
Web3.0来了,花呗借呗前端团队开源的Web图形引擎会成为元宇宙的技术支撑吗?
北京大学白帽黑客创业,做了个开源供应链安全治理引擎
标签: #开源算法库