MMSegmentation笔记02:认识和安装MMSegmentation

官方教程:开始:安装和运行 MMSeg

由于我已经配置好pytorch的环境了,所以这里直接开始安装MMSegmentation

1. 安装MMSegmentation

  1. pip install openmim:应该是类似pip的一个库, 用来安装python包的

  2. mim install mmengine:

  3. mim install “mmcv>=2.0.0”

  4. pip install “mmsegmentation>=1.0.0”

2. 验证MMSegmentation

下载测试配置文件和模型文件,在pycharm的命令行输入:

mim download mmsegmentation --config pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 --dest .

使用官方提供测试代码测试:

from mmseg.apis import inference_model, init_model, show_result_pyplot
import mmcv

config_file = 'pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py'
checkpoint_file = 'pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'

# 根据配置文件和模型文件建立模型
model = init_model(config_file, checkpoint_file, device='cuda:0')

# 在单张图像上测试并可视化
img = 'demo/demo.png'  # or img = mmcv.imread(img), 这样仅需下载一次
result = inference_model(model, img)
# 在新的窗口可视化结果
show_result_pyplot(model, img, result, show=True)
# 或者将可视化结果保存到图像文件夹中
# 您可以修改分割 map 的透明度 (0, 1].
show_result_pyplot(model, img, result, show=True, out_file='result.jpg', opacity=0.5)
# 在一段视频上测试并可视化分割结果
video = mmcv.VideoReader('video.mp4')
for frame in video:
    result = inference_segmentor(model, frame)
    show_result_pyplot(model, result, wait_time=1)
    

2.1 图片推理

直接运行会报错:FileNotFoundError: [Errno 2] No such file or directory: 'demo/demo.png',意思是官方代码提供的路径本地并没有

解决:在网上下载一个图片(这里我下载的是一个城市街道的图片),并命名为demo.png,将它放在工程目录demo下。

在这里插入图片描述

这样就运行出初步的结果了。

在这里插入图片描述

2.2 视频推理

图片测试完,video.mp4也是同样的错误。

这里再搞一段视频来,但是注意:这个视频的目录是根目录

修改好video.mp4之后又有新的错误:NameError: name 'inference_segmentor' is not defined,也就是代码中的inference_segmentor找不到,编辑器里也同样报红。原因是官方修改了命名,但是文档没有及时更新。

在这里插入图片描述

解决:把inference_segmentor改成inference_model

然后又报错TypeError: show_result_pyplot() missing 1 required positional argument: 'result',说show_result_pyplot缺少参数result。

解决:再把show_result_pyplot(model, result, wait_time=1)改为show_result_pyplot(model, frame, result, wait_time=1)

现在就可以推理成功了,视频文件会逐帧plt.show出来。

2.3 修改后的完整代码

贴出修改后的完整代码:

"""
==========================================
@author: Seaton
@Time: 2023/8/15:10:41
@IDE: PyCharm
@Summary:测试MMSegmentation配置
==========================================
"""
import mmseg
from mmseg.apis import inference_model, init_model, show_result_pyplot
import mmcv

print('mmsegmentation版本', mmseg.__version__)
config_file = 'pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py'
checkpoint_file = 'pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'

# 根据配置文件和模型文件建立模型
model = init_model(config_file, checkpoint_file, device='cuda:0')

# 在单张图像上测试并可视化
img = 'demo/demo.png'  # or img = mmcv.imread(img), 这样仅需下载一次
result = inference_model(model, img)
print(result.keys())
# 在新的窗口可视化结果
# show_result_pyplot(model, img, result, show=True)
# 或者将可视化结果保存到图像文件夹中
# 您可以修改分割 map 的透明度 (0, 1].
show_result_pyplot(model, img, result, show=True, out_file='result.jpg', opacity=0.5)
# 在一段视频上测试并可视化分割结果
video = mmcv.VideoReader('demo/video.mp4')  # 这里我把视频跟上面的图片放一起了
for frame in video:
    result = inference_model(model, frame)
    show_result_pyplot(model, frame, result, wait_time=1)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值