openmmlab 教程1

官方文档

安装 MMCV — mmcv 1.6.1 文档

依赖 — MMSegmentation 0.27.0 文档

笔记链接

https://gitee.com/fakerlove/openmmlab

1. 安装

1.1 介绍

  • MIM: MIM 是 OpenMMlab 项目、算法、模型的统一入口
  • MMClassification: OpenMMLab 图像分类工具箱
  • MMDetection: OpenMMLab 目标检测工具箱
  • MMDetection3D: OpenMMLab 新一代通用 3D 目标检测平台
  • MMRotate: OpenMMLab 旋转框检测工具箱与测试基准
  • MMSegmentation: OpenMMLab 语义分割工具箱
  • MMOCR: OpenMMLab 全流程文字检测识别理解工具箱
  • MMPose: OpenMMLab 姿态估计工具箱
  • MMHuman3D: OpenMMLab 人体参数化模型工具箱与测试基准
  • MMSelfSup: OpenMMLab 自监督学习工具箱与测试基准
  • MMRazor: OpenMMLab 模型压缩工具箱与测试基准
  • MMFewShot: OpenMMLab 少样本学习工具箱与测试基准
  • MMAction2: OpenMMLab 新一代视频理解工具箱
  • MMTracking: OpenMMLab 一体化视频目标感知平台
  • MMFlow: OpenMMLab 光流估计工具箱与测试基准
  • MMEditing: OpenMMLab 图像视频编辑工具箱
  • MMGeneration: OpenMMLab 图片视频生成模型工具箱
  • MMDeploy: OpenMMLab 模型部署框架

1.2 安装

安装文档:安装 MMCV — mmcv 1.6.1 文档

安装前提准备,它需要 Python 3.6 以上,CUDA 9.2 以上和 PyTorch 1.3 以上。

  • 安装python
  • 安装conda
  • 安装pytorch

创建openmmlab运行环境,不想使用虚拟环境,可以不操作

conda create --name openmmlab python=3.8 -y
conda activate openmmlab
1) 安装mmcv-full(建议)

运行一下命令

pip install -U openmim
mim install mmcv-full

也可以源码安装,太麻烦了

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html

请将链接中的 {cu_version}{torch_version} 根据自身需求替换成实际的版本号,例如想安装和 CUDA 11.1PyTorch 1.9.0 兼容的最新版 mmcv-full,使用如下替换过的命令

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html

具体下载的命令,如下表,官方的下载页面有

https://mmcv.readthedocs.io/zh_CN/latest/get_started/installation.html

image-20220829160848954

2) 安装mmseg

建议如下安装

pip install mmsegmentation

个人不建议源码安装,感觉没啥用。不过可以把源码下载下来,学习

下面是源码安装

git clone https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -v -e .

"-v "指详细说明,或更多的输出

“-e” 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。

3) mmcv-full和mmcv区别
  • mmcv-full: 完整版,包含所有的特性以及丰富的开箱即用的 CUDA 算子。注意完整版本可能需要更长时间来编译。
  • mmcv: 精简版,不包含 CUDA 算子但包含其余所有特性和功能,类似 MMCV 1.0 之前的版本。如果你不需要使用 CUDA 算子的话,精简版可以作为一个考虑选项。

1.3 验证安装成功

下载配置文件模型文件

mim download mmsegmentation --config pspnet_r50-d8_512x1024_40k_cityscapes --dest .
1) 源码安装

直接运行下面代码就可以了

python demo/image_demo.py demo/demo.png pspnet_r50-d8_512x1024_40k_cityscapes.py pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cpu --out-file result.jpg

如果报错的话,说需要使用gpu 的话

python demo/image_demo.py demo/demo.png pspnet_r50-d8_512x1024_40k_cityscapes.py pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --out-file result.jpg
2) pip 安装

需要编写train.py

from mmseg.apis import inference_segmentor, init_segmentor
import mmcv

config_file = 'pspnet_r50-d8_512x1024_40k_cityscapes.py'
checkpoint_file = 'pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'

# 通过配置文件和模型权重文件构建模型
model = init_segmentor(config_file, checkpoint_file, device='cuda:0')

# 对单张图片进行推理并展示结果
img = 'test.jpg'  # or img = mmcv.imread(img), which will only load it once
result = inference_segmentor(model, img)
# 在新窗口中可视化推理结果
model.show_result(img, result, show=True)
# 或将可视化结果存储在文件中
# 你可以修改 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)

然后运行train.py。如果没有视频,可以把最下面的视频代码去掉,以免报错

运行结果如下

image-20220829160236348

文件夹如下

image-20220829160508967

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐