MMSegmentation安装
安装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安装相关推荐
- mmsegmentation安装过程报错记录
mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28Type 一般是因为mmcv的版本不对,直接使用 pip ...
- 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 ...
- 常见深度学习库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 安装 ...
- 【Python】mmSegmentation语义分割框架教程(自定义数据集、训练设定、数据增强)
文章目录 0.mmSegmentation介绍 1.mmSegmentation基本框架 1.1.mmSegmentation的model设置 1.2.mmSegmentation的dataset设置 ...
- PspNet在MMsegmentation框架下成功训练Pascal VOC2012数据集及踩坑实录
时间:2021/08/29/05:45:28 一晚上了,难以置信,我竟然还不困,还有着整理博客的冲动.也就在这周,熬夜能力突然就在几个晚上的不归宿中突破了,一夜过后天壤之别,一晚比一晚能熬,之前还会担 ...
- 2021.08.28-MMsegmentation0.16.0+Cuda10.1+Ubuntu16.04+Pytorch1.8环境安装
个人在目标检测方向的学习比较深入,但在深度学习的图像处理中,语义分割也是一个很重要的方向,所以也想一探究竟,熟悉一下基本流程和工作原理. 现打算在LINUX系统Ubuntu16.04上安装mmsegm ...
- mmsegmentation 训练自制数据集全过程
1.简介 mmsegmentation是目前比较全面和好用的用于分割模型的平台,原始的github链接 https://github.com/open-mmlab/mmsegmentation 2.G ...
- mmdetection3d的安装和使用
MMdetection3D安装步骤 创建环境,并激活 conda create -n open-mmlab python=3.7 -y # 激活 conda activate open-mmlab 安 ...
- MMDetection框架入门教程(一):Anaconda3下的安装教程(mmdet+mmdet3d)
本博客基于下列文档整理得到,有兴趣的同学可以直接阅读原文. GitHub - MMDetection GitHub - MMCV GitHub - MmDetection3D 官方说明文档 - M ...
最新文章
- 戴尔-EMC联邦:存储业务该如何处理?
- 【设计模式】—— 命令模式Commond
- Exception in thread “main“ org.apache.ibatis.exceptions.PersistenceException奇葩解决方案
- Python基础教程:input()输入与数据类型转换
- Angular Reactive Form 的一个具体使用例子
- python requests编码的问题_python requests 编码问题
- 从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了
- FPGA时钟激励编写(方法一)
- Mac M1 环境下CV标注工具建设
- java core 之 泛型
- python获取当前时间的源代码_python怎么获取当前系统时间
- 使用readLine()方法遇到的坑
- 万能硬盘数据恢复软件注册码真的可以用吗?
- mysql成绩是什么数据类型_mysql数据类型
- 《自己动手写操作系统》第二章——Bochs调试及相关仿真工具的使用方法
- caffe教程 (2)
- 直流电机双闭环调速系统matlab,双闭环直流调速系统的课程设计(MATLAB仿真).pdf
- php eclipse 插件安装,phpeclipse插件下载-phpeclipse插件官方版 v1.2.3 官方最新版 - 安下载...
- 开源软件与自由软件的区别
- Ubuntu 设置桥接网络
热门文章
- Scrutiny of Partner's individual project Code
- Java——打印双休日
- windows安装Git客户端与Toroise图像化工具
- 活动回顾丨那些闪闪发光的女开发者们
- android之跳转相册选择图片/照相
- [论文笔记|sonar+VIO]:Sonar Visual Inertial SLAM of Underwater Structures
- Mybatis-Plus--QueryWrapper--使用/实例
- Android color大全
- jquery对textarea写入_「textarea赋值」JQuery给textarea取值和赋值 - seo实验室
- 成都哪家前端培训比较好?如何选择机构?