复现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
相关推荐
世辰辰辰8 小时前
批量修改图片/文本名子
开发语言·python·批量修改文件名
weifengma-wish8 小时前
Transformer 注意力为什么用内积? 而不用余弦相识度和cor等
人工智能·深度学习·transformer
AndrewHZ8 小时前
【LLM技术全景】预训练与微调:大模型如何“学习“
人工智能·深度学习·大模型·llm·微调·预训练·rlhf
myenjoy_19 小时前
MQTT 与 Sparkplug B——从车间到云端的最后一公里
网络·python
DeniuHe11 小时前
深度学习中的MLP层
人工智能·深度学习
颜酱11 小时前
LangChain 输出解析器:把模型回复变成你要的数据
python·langchain
2401_8734794011 小时前
企业安全运营中,如何用IP离线库提前发现失陷主机?三步实现风险画像
网络·数据库·python·tcp/ip·ip
weixin_5231853211 小时前
Java基础知识总结(四):引用数据类型与参数传递机制
java·开发语言·python
咸鱼翻身小阿橙12 小时前
在VScode使用C#并且调用opencv库
vscode·opencv·c#