SegFormer
代码:https://github.com/NVlabs/SegFormer
论文:https://arxiv.org/abs/2105.15203
训练语义分割模型可以选择经典的SegFomer模型作为基准,训练融合图像进行下游任务的测试。但是由于SegFormer的推出已有几年之久,且官方似乎并没有继续维护代码,因此在新设备上不是很容易运行。

1.下载官方代码
bash
git clone https://github.com/NVlabs/SegFormer.git
cd SegFormer
2. 预训练权重下载
官方提供的预训练权重已失效,无法下载。我们可以在对应网站下载预训练的b1权重,然后放到SegFomer/pretrained/中
下载地址:https://github.com/open-mmlab/mmsegmentation/tree/main/configs/segformer

3. 环境配置-准备
由于官方推荐的是cuda10.1,但4090显卡已然不支持对应的老版本cuda,因此环境容易报错。我们用下面的环境进行安装:
关键就是下载对应的torch版本和mmcv_full版本
- torch离线版本下载:https://download.pytorch.org/whl/(选择torch(1.8.0+cu111)和torchvision(0.9.0+cu111)下载对应版本)



- 下载完对应离线包之后,把它上传到服务器中
4. 环境配置-安装
bash
# 创建环境
conda create -n segformer python=3.8
conda activate segformer
# 安装包(需离线下载)
pip install torch==1.8.0+cu111-xxxx.whl
pip install torchvision==0.9.0+cu111-xxxx.whl
pip install mmcv_full-1.2.7-cp38-cp38-manylinux1_x86_64.whl
# 操作
cd SegFormer
pip install -e . --user
# 继续安装余下的包
pip install opencv-python==4.5.1.48
pip install IPython
pip install attr
pip install timm==0.3.2
pip install yapf==0.40.1
pip install numpy==1.23.5
5. 修改代码
待补充
6. 模型训练
bash
python tools/train.pylocal_configs/segformer/B1/segformer.b1.512x512.ade.160k.py
7. 模型验证
bash
python tools/test.py local_configs/segformer/B1/segformer.b1.512x512.ade.160k.py /home/yida/PyCharmProject/Comparison/SegFormer/work_dirs/segformer.b1.512x512.ade.160k/latest.pth
8. 模型推理
bash
python tools/test.py local_configs/segformer/B1/segformer.b1.512x512.ade.160k.py work_dirs/segformer.b1.512x512.ade.160k/latest.pth --eval mIoU --show-dir ./seg_results