安装MMSegmentation

OpenMMLab官方安装教程

说明

本教程使用jupyter notebook编写, 可新建一个目录,将代码下载运行

本机环境

!uname -v
#91~18.04.1-Ubuntu SMP Fri Jul 23 13:36:29 UTC 2021
!lspci | grep -i vga
02:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1)
03:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1)
!nvidia-smi
Fri Apr 28 15:15:23 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.63.01    Driver Version: 470.63.01    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:02:00.0 Off |                  N/A |
|  0%   39C    P8    10W / 280W |     13MiB / 11178MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  Off  | 00000000:03:00.0 Off |                  N/A |
|  0%   36C    P8     9W / 250W |    226MiB / 11178MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1393      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A      2225      G   /usr/lib/xorg/Xorg                  4MiB |
|    1   N/A  N/A      1393      G   /usr/lib/xorg/Xorg                 18MiB |
|    1   N/A  N/A      1578      G   /usr/bin/gnome-shell               72MiB |
|    1   N/A  N/A      2225      G   /usr/lib/xorg/Xorg                101MiB |
|    1   N/A  N/A      2372      G   /usr/bin/gnome-shell               24MiB |
|    1   N/A  N/A      2582      G   ...setup/gnome-initial-setup        2MiB |
+-----------------------------------------------------------------------------+

Conda虚拟环境

步骤0. 安装conda
步骤1. 创建一个 conda 环境,并激活

conda create --name openmmlab python=3.8 -y
conda activate openmmlab
%conda create --name openmmlab python=3.8 -y
# 在notebook中使用无法conda activate,需要手动切换,新环境需要安装ipykernel
# %conda activate openmmlab

步骤2. 参考pytorch官网安装pytorch

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y

查看是否torch能否成功调用GPU

%conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y
import torch
torch.cuda.is_available()
True

安装mmseg

步骤0. 安装MMCV

pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"
%pip install -U openmim
!mim install mmengine
!mim install "mmcv>=2.0.0"

步骤1. MMSegmentation

git clone -b main https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -v -e .
# 连接不到github可以把连接换成gitee
!git clone -b main https://gitee.com/open-mmlab/mmsegmentation.git
%cd mmsegmentation
%pip install -v -e .

验证是否安装成功

为了验证 MMSegmentation 是否正确安装,MMSegmentation提供了一些示例代码来运行一个推理 demo 。
步骤1. 下载配置文件和模型文件

!mim download mmsegmentation --config pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 --dest .

步骤 2. 验证推理 demo

!python demo/image_demo.py demo/demo.png configs/pspnet/pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --out-file result.jpg

查看推理结果

import matplotlib.pyplot as plt
from PIL import Imageimg = Image.open('demo/demo.png')
pred = Image.open('result.jpg')plt.figure(figsize=(12, 6))
plt.subplot(121)
plt.xticks([])
plt.yticks([])
plt.imshow(img)
plt.title('image')
plt.subplot(122)
plt.imshow(pred)
plt.xticks([])
plt.yticks([])
plt.title('predict')
plt.show()

使用现有模型进行训练和测试(CHASE_DB1数据集)

MMSegmentation官网教程:准备数据集

步骤1. 准备CHASE_DB1数据集

!wget https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip
!python tools/dataset_converters/chase_db1.py CHASEDB1.zip

步骤2. 使用UNet进行训练
选择configs/unet/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128.py进行训练,为了缩短时间,仅作示例,在文件中添加一行
train_cfg = dict(type=‘IterBasedTrainLoop’, max_iters=4000, val_interval=400)
完整unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128.py文件内容如下

_base_ = ['../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/chase_db1.py','../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
]
crop_size = (128, 128)
data_preprocessor = dict(size=crop_size)
model = dict(data_preprocessor=data_preprocessor,test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))train_cfg = dict(type='IterBasedTrainLoop', max_iters=4000, val_interval=400)
!python tools/train.py configs/unet/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128.py

将mmsegmentation/mmseg/datasets/chase_db1.py的最后一行注释掉
assert self.file_client.exists(self.data_prefix[‘img_path’])
重新运行

!python tools/train.py configs/unet/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128.py

步骤3. 测试

运行测试发现指定–show-dir参数后,并没有输出结果图,通过debug发现,根据SegVisualizationHook的文档,interval默认值为50,及50个iter显示一次,但CHASE_DB1测试集数据不足50张,所以没有输出。通常测试输出时期望能够可视化查看所有图片,但在schedules中修改SegVisualizationHook会影响到训练,于是选择在mmsegmentation/mmseg/.mim/tools/test.py中对trigger_visualization_hook函数进行修改,添加visualization_hook[‘interval’] = 1,代码如下

def trigger_visualization_hook(cfg, args):default_hooks = cfg.default_hooksif 'visualization' in default_hooks:visualization_hook = default_hooks['visualization']# Turn on visualizationvisualization_hook['draw'] = True# 指定添加interval为1visualization_hook['interval'] = 1if args.show:visualization_hook['show'] = Truevisualization_hook['wait_time'] = args.wait_timeif args.show_dir:visulizer = cfg.visualizervisulizer['save_dir'] = args.show_direlse:raise RuntimeError('VisualizationHook must be included in default_hooks.''refer to usage ''"visualization=dict(type=\'VisualizationHook\')"')return cfg
# 根据自己的情况修改checkpoint和show-dir的路径
!python tools/test.py configs/unet/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128.py work_dirs/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128/iter_4000.pth --show-dir work_dirs/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128/result

查看测试图片

img = Image.open('work_dirs/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128/result/vis_data/vis_image/test_Image_11L.png_0.png')
plt.imshow(img)
plt.xticks([])
plt.yticks([])
plt.show()

MMSegmentation安装相关推荐

  1. mmsegmentation安装过程报错记录

    mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28Type 一般是因为mmcv的版本不对,直接使用 pip ...

  2. win10 + GTX1660S + CUDA 11.1 + VS 2019 + py3.8+ Pytorch 1.8.1 安装 MMCV + mmdetection + mmsegmentation

    当前环境版本: Python 3.8.6 (anaconda 虚拟环境) PyTorch 1.8.1 CUDA 11.1 VS 2019 (需要在path设置环境变量) MMCV 1.3.5 mmde ...

  3. 常见深度学习库mmlab系列安装(mmdetection/mmdetection3d/mmyolo/mmsegmentation/mmocr/mmselfup/mmdeploy/mmrazor)

    目录 1 DL系统基础搭建 2 安装前置必备环境(pytorch/mmcv/mmengin) 2.1 pytorch 2.2 mmcv & mmengin 3 mmdetection 1 安装 ...

  4. 【Python】mmSegmentation语义分割框架教程(自定义数据集、训练设定、数据增强)

    文章目录 0.mmSegmentation介绍 1.mmSegmentation基本框架 1.1.mmSegmentation的model设置 1.2.mmSegmentation的dataset设置 ...

  5. PspNet在MMsegmentation框架下成功训练Pascal VOC2012数据集及踩坑实录

    时间:2021/08/29/05:45:28 一晚上了,难以置信,我竟然还不困,还有着整理博客的冲动.也就在这周,熬夜能力突然就在几个晚上的不归宿中突破了,一夜过后天壤之别,一晚比一晚能熬,之前还会担 ...

  6. 2021.08.28-MMsegmentation0.16.0+Cuda10.1+Ubuntu16.04+Pytorch1.8环境安装

    个人在目标检测方向的学习比较深入,但在深度学习的图像处理中,语义分割也是一个很重要的方向,所以也想一探究竟,熟悉一下基本流程和工作原理. 现打算在LINUX系统Ubuntu16.04上安装mmsegm ...

  7. mmsegmentation 训练自制数据集全过程

    1.简介 mmsegmentation是目前比较全面和好用的用于分割模型的平台,原始的github链接 https://github.com/open-mmlab/mmsegmentation 2.G ...

  8. mmdetection3d的安装和使用

    MMdetection3D安装步骤 创建环境,并激活 conda create -n open-mmlab python=3.7 -y # 激活 conda activate open-mmlab 安 ...

  9. MMDetection框架入门教程(一):Anaconda3下的安装教程(mmdet+mmdet3d)

      本博客基于下列文档整理得到,有兴趣的同学可以直接阅读原文. GitHub - MMDetection GitHub - MMCV GitHub - MmDetection3D 官方说明文档 - M ...

最新文章

  1. 戴尔-EMC联邦:存储业务该如何处理?
  2. 【设计模式】—— 命令模式Commond
  3. Exception in thread “main“ org.apache.ibatis.exceptions.PersistenceException奇葩解决方案
  4. Python基础教程:input()输入与数据类型转换
  5. Angular Reactive Form 的一个具体使用例子
  6. python requests编码的问题_python requests 编码问题
  7. 从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了
  8. FPGA时钟激励编写(方法一)
  9. Mac M1 环境下CV标注工具建设
  10. java core 之 泛型
  11. python获取当前时间的源代码_python怎么获取当前系统时间
  12. 使用readLine()方法遇到的坑
  13. 万能硬盘数据恢复软件注册码真的可以用吗?
  14. mysql成绩是什么数据类型_mysql数据类型
  15. 《自己动手写操作系统》第二章——Bochs调试及相关仿真工具的使用方法
  16. caffe教程 (2)
  17. 直流电机双闭环调速系统matlab,双闭环直流调速系统的课程设计(MATLAB仿真).pdf
  18. php eclipse 插件安装,phpeclipse插件下载-phpeclipse插件官方版 v1.2.3 官方最新版 - 安下载...
  19. 开源软件与自由软件的区别
  20. Ubuntu 设置桥接网络

热门文章

  1. Scrutiny of Partner's individual project Code
  2. Java——打印双休日
  3. windows安装Git客户端与Toroise图像化工具
  4. 活动回顾丨那些闪闪发光的女开发者们
  5. android之跳转相册选择图片/照相
  6. [论文笔记|sonar+VIO]:Sonar Visual Inertial SLAM of Underwater Structures
  7. Mybatis-Plus--QueryWrapper--使用/实例
  8. Android color大全
  9. jquery对textarea写入_「textarea赋值」JQuery给textarea取值和赋值 - seo实验室
  10. 成都哪家前端培训比较好?如何选择机构?