复现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
相关推荐
2301_806709382 小时前
国内知名的生活水箱制造厂有哪些
python·生活
学掌门3 小时前
超级菜鸟怎么学习数据分析?
python·学习·数据分析
鸿芯微控科技3 小时前
压电纳米定位分辨率怎么测?噪声、带宽、最小可检测位移与Python分析
开发语言·python·噪声分析·压电执行器·纳米定位·位移测量
用户7783366132113 小时前
从 0 搭一个关键词排名监控:核心思路 + 可运行代码
后端·python·api
Fanta丶3 小时前
14.Python闭包、装饰器
python
崖边看雾3 小时前
OpenCV 图像处理学习笔记|图像运算、边界填充、阈值处理、图像平滑滤波
图像处理·opencv·学习
AI的探索之旅3 小时前
嵌入式视觉学习路线:Qt + OpenCV + 工业相机,从零到综合项目
qt·opencv·学习
码云骑士3 小时前
99-混合搜索Hybrid-Search-BM25-稀疏稠密向量-融合排序
python
doubt。3 小时前
大模型prompt工程Zero-Shot与Few-Shot以及json格式
人工智能·深度学习·机器学习·语言模型·json·prompt