SegNeXt学习记录(一):配置环境 & 测试代码

安装配置MMSegmentation环境

为了验证 MMSegmentation 和所需的环境是否安装正确,我们可以运行示例 python 代码来初始化分段器并推断演示图像:

from mmseg.apis import inference_segmentor, init_segmentor
import mmcv

config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'
checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'

# build the model from a config file and a checkpoint file
model = init_segmentor(config_file, checkpoint_file, device='cuda:0')

# test a single image and show the results
img = 'test.jpg'  # or img = mmcv.imread(img), which will only load it once
result = inference_segmentor(model, img)
# visualize the results in a new window
model.show_result(img, result, show=True)
# or save the visualization results to image files
# you can change the opacity of the painted segmentation map in (0, 1].
model.show_result(img, result, out_file='result.jpg', opacity=0.5)

安装MMCV官方

mmsegmention环境安装
Ubuntu20运行SegNeXt代码提取道路水体(一)——从mmsegmentation安装到测试代码环境配置全过程摸索

怎么把图片保存出来?
在SegNeXt/mmseg/models/segmentors/base.py里的show_result函数里加了out_file = 'demo/result_demo.png'
但是会报错
cv2.error: OpenCV(4.5.5) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'


出现的问题

后面下载了ade数据集,刚开始运行

python tools/train.py configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py  

还能跑起来,但是不知道为什么就报错AttributeError: 'ConfigDict' object has no attribute 'log_level'
解决:AttributeError: ‘ConfigDict‘ object has no attribute ‘log_level‘


训练与测试(pspnet)

训练:

python tools/train.py configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py  

测试

python tools/test.py work_dirs/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k.py work_dirs/pspnet_r50-d8_512x512_80k_ade20k/iter_80000.pth --eval mIoU

测试结果:
SegNeXt学习记录(一):配置环境 & 测试代码_第1张图片

想要把预测的图片生成出来

python tools/test.py work_dirs/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k.py work_dirs/pspnet_r50-d8_512x512_80k_ade20k/iter_80000.pth --show-dir work_results/ --eval mIoU

SegNeXt学习记录(一):配置环境 & 测试代码_第2张图片


使用SegNeXt进行训练及预测

下载ImageNet预训练模型:
SegNeXt学习记录(一):配置环境 & 测试代码_第3张图片
用相同的方法进行训练 看看ade数据效果如何
把这个预训练放在这个路径下:pretrained/mscan_b.pth

在这里插入图片描述
修改数据的位置,放到这个路径下:/root/ADEChallengeData2016/images/training

出现错误:PermissionError: ADE20KDataset: [Errno 13] Permission denied: ‘/root/ADEChallengeData2016/images/training’

修改之后,

训练

python tools/train.py local_configs/segnext/base/segnext.base.512x512.ade.160k.py

预测

python tools/test.py work_dirs/segnext.base.512x512.ade.160k/segnext.base.512x512.ade.160k.py work_dirs/segnext.base.512x512.ade.160k/latest.pth --show-dir work_results_segnext/ --eval mIoU

结果:

SegNeXt学习记录(一):配置环境 & 测试代码_第4张图片

代码详解

代码详解

参考:
Ubuntu20运行SegNeXt代码提取道路水体(一)——从mmsegmentation安装到测试代码环境配置全过程摸索
Ubuntu20运行SegNeXt代码提取道路水体(二)——SegNeXt源代码安装到测试环境配置全过程摸索
MMSegmentation V0.27.0训练与推理自己的数据集(二)

你可能感兴趣的:(SegNeXt,深度学习)