复现open-mmlab的mmsegmentation详细细节

复现open-mmlab的mmsegmentation详细细节

1.配置环境

stage1:创建python环境

复制代码
conda create --name openmmlab python=3.8 -y
conda activate openmmlab

stage2:安装pytorch(这里我是以torch1.10.0为例)

复制代码
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

stage3:安装MMCV,全部都可以加上清华源,-i https://pypi.tuna.tsinghua.edu.cn/simple

复制代码
pip install openmim
pip install mmengine
pip install "mmcv>=2.0.0"

但是,这里在安装mmcv的时候,容易出错,比如:ImportError: DLL load failed while importing _ext: 找不到指定的程序。

很大就是mmcv版本装的有问题。

我们定位到mmcv的安装文档

复制代码
https://mmcv.readthedocs.io/en/latest/get_started/installation.html#install-mmcv

会有根据操作系统、cuda版本,以及torch的版本后,确定自己选择的mmcv版本,进而生成最终的安装指令。

stage4:安装MMSegmentation:

方式1:

复制代码
git clone -b main https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -v -e .

方式2:

复制代码
pip install "mmsegmentation>=1.0.0"

2.数据处理

这里我们以COCO Stuff 10k为例:tools/dataset_converters/coco_stuff10k.py

复制代码
mkdir coco_stuff10k && cd coco_stuff10k
wget http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip
unzip cocostuff-10k-v1.1.zip

下载并解压好,目录如下,我将他们统一放在data/coco_stuff10k文件夹下。

images存放的是.jpg格式的数据集图片。

annotations存放是.mat格式的标注文件,我们后边需要使用脚本转换成mask。

imageLists存放的是划分数据集对应于train和test的.txt文件,里面存放的是数据集的名称。

下面,需要将annotations存放是.mat格式的标注文件转换成mask的png图片,以及划分数据集。

mmsegmentation根路径下的tools/dataset_converters/coco_stuff10k.py。coco_path 指向我们解压好的数据集根路径,out_dir 指向data下的output,用于存放转换的mask。

复制代码
python tools/dataset_converters/coco_stuff10k.py coco_path data/coco_stuff10k --out_dir data/dataset

就会生成如下的文件夹,已经划分好数据集,并且标注文件全部由.mat转换成了.png。

3.训练

训练脚本就是mmsegmentation根路径下的tools/train.py。主要就是指定config文件,以及输出文件夹路径。

config文件包含网络模型和数据的配置,这里就以mask2former和coco_stuff10k数据集为例:

其中,这里我选择的配置文件,就是模型的配置文件等,均以字典形式保存,都在configs文件夹下,我们找到自己想使用的模型。

比如,我们使用mask2former文件下的mask2former_r50_8xb2-90k_cityscapes-512x1024.py这个配置文件,主要看_base_列表。

这里我们因为是使用coco_stuff10k,更改为../_base_/datasets/coco-stuff10k.py,并定位到configs/_base_/datasets/coco-stuff10k.py。将这里的data_root更换为上面处理好的数据集根路径即可。

开始训练:

复制代码
python tools/train.py config configs/mask2former/mask2former_r50_8xb2-90k_cityscapes-512x1024.py --work-dir output
相关推荐
java1234_小锋6 分钟前
Scikit-learn Python机器学习 - 特征预处理 - 标准化 (Standardization):StandardScaler
python·机器学习·scikit-learn
Python×CATIA工业智造7 分钟前
Python带状态生成器完全指南:从基础到高并发系统设计
python·pycharm
向qian看_-_36 分钟前
Linux 使用pip报错(error: externally-managed-environment )解决方案
linux·python·pip
Nicole-----1 小时前
Python - Union联合类型注解
开发语言·python
蓝桉8022 小时前
如何进行神经网络的模型训练(视频代码中的知识点记录)
人工智能·深度学习·神经网络
星期天要睡觉2 小时前
深度学习——数据增强(Data Augmentation)
人工智能·深度学习
笑脸惹桃花3 小时前
50系显卡训练深度学习YOLO等算法报错的解决方法
深度学习·算法·yolo·torch·cuda
anneCoder4 小时前
AI大模型应用研发工程师面试知识准备目录
人工智能·深度学习·机器学习
骑驴看星星a4 小时前
没有深度学习
人工智能·深度学习
youcans_4 小时前
【医学影像 AI】YoloCurvSeg:仅需标注一个带噪骨架即可实现血管状曲线结构分割
人工智能·yolo·计算机视觉·分割·医学影像