P3_安装配置MMSegmentation+预训练语义分割推理预测
3.1使用终端安装 MMSegmentation
按照顺序逐行运行本代码,即可安装配置 MMCV、MMSegmentation环境
【推荐代码运行云GPU环境:GPU RTX 3060、CUDA v11.3】
1.创建 Python 3.9 的虚拟环境
点击查看代码
#此处MMSeg为我的虚拟环境名称
conda create -n MMSeg python=3.9
按提示输入y确认安装;
2.激活新环境
点击查看代码
#此处MMSeg为我的虚拟环境名称
conda activate MMSeg
3.安装Pytorch
官网https://pytorch.org
输入这个报错:
点击查看代码
!pip3 install install torch==1.10.1+cu113 torchvision==0.11.2+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
改成输入下面这个:
点击查看代码
pip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 -i https://pypi.tuna.tsinghua.edu.cn/simple -f https://download.pytorch.org/whl/cu113/torch_stable.html
接着直接在命令行输入 python 并回车,进入 Python 交互环境(此时会显示>>>提示符)
点击查看代码
(MMSeg) C:\Users\ASUS>python
Python 3.9.25 (main, Nov 3 2025, 22:44:01) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
然后依次输入回车以下代码验证:
点击查看代码
import torch
print(torch.__version__) # 查看PyTorch版本
print(torch.cuda.is_available()) # 检查CUDA是否可用
print(torch.version.cuda) # 查看CUDA版本
我的代码显示如下:
点击查看代码
>>> print(torch.__version__)
1.10.1+cu113
>>> print(torch.cuda.is_available())
True
>>> print(torch.version.cuda)
11.3
退出 Python 交互环境:
点击查看代码
>>> exit()
(MMSeg) C:\Users\ASUS> # 回到命令行环境
4.用MIM安装MMCV
点击查看代码
pip install -U openmim
mim install mmengine
mim install mmcv==2.0.0
5.安装其它工具包
点击查看代码
pip install opencv-python pillow matplotlib seaborn tqdm pytorch-lightning mmdet>=3.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple#!pip install setuptools==59.5 prettytable
命令输入后,终端长时间停留在空白状态(没有任何文字输出),既不报错也不显示安装进度
所以:
(1)在命令行中按 Ctrl+C强制终止当前命令,确保终端恢复到可输入状态
(2)将命令拆分成小部分,先安装单个包测试是否正常:
点击查看代码
# 先测试基础包安装(无复杂依赖)
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
(3)若单个包能正常安装,说明网络和pip基本正常,再逐步添加其他包:
点击查看代码
# 依次添加其他包
pip install pillow matplotlib seaborn tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pytorch-lightning -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install mmdet>=3.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
(4)其中,前面两个库都安装成功了,但是安装到第三个库的时候出现了以下错误:
点击查看代码
Successfully installed aiohttp-3.13.2 pytorch-lightning-2.5.5 torchmetrics-1.8.2(MMSeg) C:\Users\ASUS>pip install mmdet>=3.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
WARNING: Ignoring invalid distribution -orch (d:\anaconda3\envs\mmseg\lib\site-packages)
WARNING: Ignoring invalid distribution -orch (d:\anaconda3\envs\mmseg\lib\site-packages)
WARNING: Ignoring invalid distribution -orch (d:\anaconda3\envs\mmseg\lib\site-packages)(MMSeg) C:\Users\ASUS>
(5)先强制终止并重新执行命令:
按 Ctrl + C 确保命令已终止,然后重新执行,指定具体版本(避免版本范围解析问题):
点击查看代码
(MMSeg) C:\Users\ASUS> pip install mmdet==3.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
(用 ==3.1.0 替代 >=3.1.0,减少版本解析的复杂度)
(6)测试安装成功没:
点击查看代码
(MMSeg) C:\Users\ASUS>python
Python 3.9.25 (main, Nov 3 2025, 22:44:01) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mmdet
>>> print(mmdet.__version__)
3.1.0
>>>
6.下载 MMSegmentation
(1)代码
点击查看代码
# 删掉原有的 mmsegmentation 文件夹(如有)
# Linux/macOS:!rm -rf mmsegmentation
# Windows 命令行:
rd /s /q mmsegmentation
(2)结果如下:
点击查看代码
(MMSeg) C:\Users\ASUS>rd /s /q mmsegmentation
系统找不到指定的文件。
(3)【deepseek】:
这个提示说明当前目录下没有名为 mmsegmentation 的文件夹,所以删除命令执行失败,属于正常现象,无需担心。
原因分析:rd /s /q mmsegmentation 命令的作用是删除当前路径下的 mmsegmentation 文件夹,但系统提示 “找不到指定的文件”,说明该文件夹原本就不存在(或已被删除)。这通常是因为你之前没有下载过 mmsegmentation,或者已经手动删除过,所以无需再执行删除操作。
(4)安装
点击查看代码
# 从 github 上下载最新的 mmsegmentation 源代码
git clone https://github.com/open-mmlab/mmsegmentation.git -b v1.1.2
# !git clone https://github.com/open-mmlab/mmsegmentation.git -b v1.2.0
(5)安装报错了,没有安装git:
点击查看代码
(MMSeg) C:\Users\ASUS>git clone https://github.com/open-mmlab/mmsegmentation.git -b v1.1.2
'git' 不是内部或外部命令,也不是可运行的程序或批处理文件。
(6)现在去安装:
1)官网下载:https://git-scm.com/install/windows
2)根据知乎这篇帖子安装配置:
https://zhuanlan.zhihu.com/p/597447255
3)在D:\DeepLearning\Software\Config_Git右键——>git bash here
配置邮箱和用户名(–global表示全局配置):
点击查看代码
#配置用户名
git config --global user.name "test"#配置邮箱
git config --global user.email abc@163.com
4)结果如下:


5)在Vscode里面配置git:
https://www.bilibili.com/video/BV1Hkr7YYEh8/?spm_id_from=333.337.search-card.all.click&vd_source=27b7c394f170c1b8c810babcdfae23cb
①注册github账号:xxx@163.com
②打开Vscode
③在桌面创建Git_demo文件夹并拖拽到Vscode,创建index.html,输入感叹号并保存

④点击左侧第三个图标:源代码管理-Initialize Repository初始化仓库(创建游戏存档)-Commit提交(保存游戏存档)-first_save:

然后添加一行代码,commit-sceond_demo,这样就在本地,使用我们的git来做简单的提交,进行代码的保存

⑤git远程提交
如何将我们的代码像刚才的游戏存档一样,发送给我们的Steam这样一种远程的服务器?
github就是这样一个远程的仓库
操作:Publish Branch(发布Branch),会自动打开默认浏览器,链接GitHub


⑥新建文件hello.js,并commit为add_hello.js;此时,本地仓库已经处在add_hello进度,而远程仓库github还处于sceond_demo的进度,落后于本地仓库;所以再同步更改到远程服务器,就能保持相同进度,将add_hello.js添加到了github上了;


⑦在GitHub上点击右上角new repository(新建仓库)-仓库名-私有-创建仓库;

(7)安装成功后:
1)关闭当前的 Anaconda Prompt(确保环境变量生效),重新打开。
2)激活 MMSeg 环境:
conda activate MMSeg
3)输入以下命令验证 Git 是否安装成功:
git --version
结果如下:
git version 2.51.2.windows.1
4)重新执行克隆命令
在激活的 MMSeg 环境中,再次执行克隆命令:
git clone https://github.com/open-mmlab/mmsegmentation.git -b v1.1.2
(8)此时会正常下载 mmsegmentation v1.1.2 版本的源代码,完成后当前目录下会生成mmsegmentation 文件夹:
C:\Users\ASUS\mmsegmentation
(9)输入python:
点击查看代码
# 进入主目录
import os
os.chdir('mmsegmentation')
(10)报错如下:
点击查看代码
(MMSeg) C:\Users\ASUS>import os
'import' 不是内部或外部命令,也不是可运行的程序或批处理文件。(MMSeg) C:\Users\ASUS>os.chdir('mmsegmentation')
'os.chdir' 不是内部或外部命令,也不是可运行的程序或批处理文件。
【import os 和 os.chdir(...) 是Python 代码,只能在 Python 交互环境(>>>提示符)中执行,不能直接在命令行((MMSeg) C:\Users\ASUS>)中运行,因此会提示 “不是内部或外部命令”。】
(11)解决方案:
方法 1:在 Python 交互环境中切换目录(执行 Python 代码)
点击查看代码
# 先进入 Python 交互环境:
(MMSeg) C:\Users\ASUS> python
>>> # 出现这个提示符,说明进入了Python环境#然后:
>>> import os
>>> os.chdir("mmsegmentation") # 切换到mmsegmentation文件夹
>>> # 验证是否切换成功
>>> print(os.getcwd()) # 输出当前路径,应包含mmsegmentation
方法 2:直接用命令行切换目录(更简单,推荐):
点击查看代码
(MMSeg) C:\Users\ASUS> cd mmsegmentation # 切换到该文件夹(MMSeg) C:\Users\ASUS\mmsegmentation> # 提示符变化,说明切换成功
7.安装 MMSegmentation
pip install -v -e .
8.下载预训练模型权重文件和视频素材
点击查看代码
import os
# 创建 checkpoint 文件夹,用于存放预训练模型权重文件
os.mkdir('checkpoint')
# 创建 outputs 文件夹,用于存放预测结果
os.mkdir('outputs')
# 创建 data 文件夹,用于存放图片和视频素材
os.mkdir('data')
# 创建 图表 文件夹,用于存放生成的图表
os.mkdir('图表')
# 创建 daiyali-Configs 文件夹,用于存放自己的语义分割模型的 config 配置文件
os.mkdir('daiyali-Configs')
安装成功:

9.检查安装成功
(1)检查 Pytorch
点击查看代码
# 检查 Pytorch
import torch, torchvision
print('Pytorch 版本', torch.__version__)
print('CUDA 是否可用',torch.cuda.is_available())
①本来输出结果应该这样:
点击查看代码
Pytorch 版本 1.10.0+cu113
CUDA 是否可用 True
②结果从输入torch, torchvision就报错:
点击查看代码
(MMSeg) C:\Users\ASUS\mmsegmentation>python
Python 3.9.25 (main, Nov 3 2025, 22:44:01) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import torch, torchvision
D:\anaconda3\envs\MMSeg\lib\site-packages\torchvision\io\image.py:11: UserWarning: Failed to load image Python extension: [WinError 127] 找不到指定的程序。warn(f"Failed to load image Python extension: {e}")
③【核心问题分析】:
版本异常:PyTorch 版本从 1.10.0+cu113 变成了 2.8.0+cpu(可能是后续安装其他库时,自动升级 / 替换了 PyTorch 版本)。
CUDA 失效:+cpu 版本的 PyTorch 不支持 CUDA,因此 torch.cuda.is_available() 输出 False。
④解决方法:
点击查看代码
# 1.退出Python交互环境
>>> exit()# 2.卸载PyTorch、TorchVision(确保清理干净)
(MMSeg) C:\Users\ASUS\mmsegmentation> pip uninstall torch torchvision torchaudio -y# 3.重新安装匹配的 CUDA 版本:用官方源安装,确保版本正确
(MMSeg) C:\Users\ASUS\mmsegmentation> pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple#4.重新进入 Python 环境,检查版本和 CUDA 状态
(MMSeg) C:\Users\ASUS\mmsegmentation> python
>>> import torch, torchvision
>>> print('PyTorch版本:', torch.__version__) # 应显示 1.10.0+cu113
>>> print('CUDA是否可用:', torch.cuda.is_available()) # 应显示 True
>>> print('CUDA版本:', torch.version.cuda) # 应显示 11.3
⑤输出结果如下:
⑤_1【输出结果第一部分】:
点击查看代码
(MMSeg) C:\Users\ASUS\mmsegmentation>pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple
WARNING: Ignoring invalid distribution -orch (d:\anaconda3\envs\mmseg\lib\site-packages)
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Looking in links: https://download.pytorch.org/whl/cu113/torch_stable.html
Collecting torch==1.10.0+cu113Downloading https://download.pytorch.org/whl/cu113/torch-1.10.0%2Bcu113-cp39-cp39-win_amd64.whl (2442.3 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 GB 7.2 MB/s 0:03:57
Collecting torchvision==0.11.1+cu113Downloading https://download.pytorch.org/whl/cu113/torchvision-0.11.1%2Bcu113-cp39-cp39-win_amd64.whl (3.2 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 13.4 MB/s 0:00:00
Collecting torchaudio==0.10.0+cu113Downloading https://download.pytorch.org/whl/cu113/torchaudio-0.10.0%2Bcu113-cp39-cp39-win_amd64.whl (336 kB)
Requirement already satisfied: typing-extensions in d:\anaconda3\envs\mmseg\lib\site-packages (from torch==1.10.0+cu113) (4.15.0)
Requirement already satisfied: numpy in d:\anaconda3\envs\mmseg\lib\site-packages (from torchvision==0.11.1+cu113) (2.0.2)
Requirement already satisfied: pillow!=8.3.0,>=5.3.0 in d:\anaconda3\envs\mmseg\lib\site-packages (from torchvision==0.11.1+cu113) (11.3.0)
WARNING: Ignoring invalid distribution -orch (d:\anaconda3\envs\mmseg\lib\site-packages)
Installing collected packages: torch, torchvision, torchaudio
WARNING: Ignoring invalid distribution -orch (d:\anaconda3\envs\mmseg\lib\site-packages)
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
pytorch-lightning 2.5.5 requires torch>=2.1.0, but you have torch 1.10.0+cu113 which is incompatible.
torchmetrics 1.8.2 requires torch>=2.0.0, but you have torch 1.10.0+cu113 which is incompatible.
Successfully installed torch-1.10.0+cu113 torchaudio-0.10.0+cu113 torchvision-0.11.1+cu113
⑤_2【deepseek具体分析】:
1)torch1.10.0+cu113、torchvision0.11.1+cu113 已成功安装,
(最后一行 Successfully installed 确认),这意味着 CUDA 支持已恢复,后续依赖 PyTorch 1.10 + CUDA 11.3 的功能(如mmsegmentation)可以正常运行。
2)pytorch-lightning 2.5.5 和 torchmetrics 1.8.2 是较新版本,
它们明确要求 torch>=2.1.0 和 torch>=2.0.0,但你现在用的是 torch 1.10.0,版本不匹配,因此会提示 “dependency conflicts”(依赖冲突)。这会导致 pytorch-lightning 和 torchmetrics 可能无法正常使用(如果你的项目用到它们的话)。
⑤_3所以:两个方案
1)方案 1:如果项目需要 pytorch-lightning 和 torchmetrics
那么,降低这两个库的版本,使其与 torch 1.10.0 兼容:
点击查看代码
# 卸载高版本
pip uninstall pytorch-lightning torchmetrics -y# 安装兼容版本(经测试,以下版本与 torch 1.10.0 兼容)
pip install pytorch-lightning==1.5.10 torchmetrics==0.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
2)方案 2:如果项目不需要 pytorch-lightning 和 torchmetrics
可以忽略这个冲突(ERROR 仅为警告性质,不影响 PyTorch 本身和 mmsegmentation 的核心功能),或直接卸载它们。
⑤_4【输出结果第二部分】:
点击查看代码
>>> print('PyTorch版本:', torch.__version__)
PyTorch版本: 1.10.0+cu113
>>> print('CUDA是否可用:', torch.cuda.is_available())
CUDA是否可用: True
>>> print('CUDA版本:', torch.version.cuda)
CUDA版本: 11.3
(2)检查 mmcv
点击查看代码
# 检查 mmcv
import mmcv
from mmcv.ops import get_compiling_cuda_version, get_compiler_version
print('MMCV版本', mmcv.__version__)
print('CUDA版本', get_compiling_cuda_version())
print('编译器版本', get_compiler_version())
输出:
点击查看代码
#本来应该是:
MMCV版本 2.0.0
CUDA版本 11.3
编译器版本 GCC 9.3#我的输出为:
MMCV版本 2.0.0
CUDA版本 11.3
编译器版本 MSVC 192829924
【输出正确:GCC(GNU Compiler Collection)是 Linux/macOS 系统的默认编译器。
MSVC(Microsoft Visual C++)是 Windows 系统的编译器,192829924 对应 Visual Studio 2019 的版本,是 Windows 下编译 MMCV 的正常结果。】
(3)检查 mmsegmentation:
点击查看代码
# 检查 mmsegmentation
import mmseg
from mmseg.utils import register_all_modules
from mmseg.apis import inference_model, init_model
print('mmsegmentation版本', mmseg.__version__)
输出:
mmsegmentation版本 1.1.2
没有报错,即证明安装成功。
10.设置Matplotlib中文字体
(1)代码:
点击查看代码
# windows操作系统
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号# Mac操作系统,参考 https://www.ngui.cc/51cto/show-727683.html
下载 simhei.ttf 字体文件
!wget https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220716-mmclassification/dataset/SimHei.ttf# Linux操作系统,例如 云GPU平台:https://featurize.cn/?s=d7ce99f842414bfcaea5662a97581bd1# 如果遇到 SSL 相关报错,重新运行本代码块即可
!wget https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220716-mmclassification/dataset/SimHei.ttf -O /environment/miniconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf
!rm -rf /home/featurize/.cache/matplotlib
import matplotlib
matplotlib.rc("font",family='SimHei') # 中文字体
(2)运行结果如下:
点击查看代码
(MMSeg) C:\Users\ASUS\mmsegmentation>plt.rcParams['font.sans-serif']=['SimHei']
'plt.rcParams['font.sans-serif']' 不是内部或外部命令,也不是可运行的程序或批处理文件。(MMSeg) C:\Users\ASUS\mmsegmentation>python
Python 3.9.25 (main, Nov 3 2025, 22:44:01) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> plt.rcParams['font.sans-serif']=['SimHei']
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'plt' is not defined
(3)原因:
这个错误是因为你没有先导入 matplotlib.pyplot 库就直接使用 plt 变量导致的。plt 是 matplotlib.pyplot 的常用别名,必须先导入库才能使用。
(4)解决:
点击查看代码
# 1. 先导入 matplotlib.pyplot 并简写为 plt
import matplotlib.pyplot as plt# 2. 再设置中文字体(解决中文显示乱码问题)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号(可选,防止负号显示为方块)
(5)测试:
点击查看代码
import matplotlib.pyplot as pltplt.plot([1,2,3], [100,500,300])
plt.title('matplotlib中文字体测试', fontsize=25)
plt.xlabel('X轴', fontsize=15)
plt.ylabel('Y轴', fontsize=15)
plt.show()
(6)测试成功:

3.2【B1】预训练语义分割模型预测-单张图像-命令行.ipynb
1.在Anaconda中安装Jupyter所需要的kernel
点击查看代码
(MMSeg) C:\Users\ASUS>pip install ipykernel
(MMSeg) C:\Users\ASUS>pip list
#出现了ipykernel
(MMSeg) C:\Users\ASUS>python -m ipykernel install --user --name pytorch_env --display-name "MMSegmentation"
然后打开jupyter:
点击查看代码
(MMSeg) C:\Users\ASUS>D:
(MMSeg) D:\>cd D:\DeepLearning\Learn_SAM\mmsegmentation
(MMSeg) D:\DeepLearning\Learn_SAM\mmsegmentation>jupyter notebook
2.在jupyter打开github的20230816/【B1】预训练语义分割模型预测-单张图像-命令行.ipynb
3.进入 mmsegmentation 主目录
(1)运行第一段代码报错:
点击查看代码
import os
os.chdir('mmsegmentation')---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[6], line 21 import os
----> 2 os.chdir('mmsegmentation')FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'mmsegmentation'
(2)修改mmsegmantation路径
我的jupyter默认地址在D盘,但是昨天安装配置的mmsegmantation在C盘:
【补3.1】
【现在想修改7的步骤,把mmesegmantation修改到D盘】
7_1安装 MMSegmentation
步骤 1:移动 mmsegmentation 文件夹到 D 盘
找到昨天在 C 盘的 mmsegmentation 文件夹(路径:C:\Users\ASUS\mmsegmentation)。
手动将整个文件夹剪切到 D 盘的目标路径(例如 D:\mmsegmentation,确保路径是纯英文,无空格 / 中文)。
步骤 2:重新安装 mmsegmentation 到新路径
①打开 Anaconda Prompt,激活 MMSeg 环境:
conda activate MMSeg
②进入 D 盘的 mmsegmentation 新路径
点击查看代码
# 切换到 D 盘
D:
# 进入新文件夹
cd D:\DeepLearning\Learn_SAM\mmsegmentation
③重新执行 “editable 模式” 安装(更新环境链接到新路径)
点击查看代码
pip install -v -e .
步骤 3:在新路径下重建相关文件夹(如果需要)
如果迁移后原有的 checkpoint、outputs 等文件夹未一起移动(或需要重新创建),在 Jupyter 或 Python 中 执行以下代码(确保当前路径是 D 盘的 mmsegmentation):
点击查看代码
import os# 切换到 D 盘的 mmsegmentation 路径(根据实际路径修改)
os.chdir(r'D:\mmsegmentation')# 重建所需文件夹
folders = ['checkpoint', 'outputs', 'data', '图表', 'daiyali-Configs']
for folder in folders:if not os.path.exists(folder): # 若文件夹不存在则创建os.mkdir(folder)print(f"已创建文件夹:{folder}")else:print(f"文件夹已存在:{folder}")
步骤 4:验证迁移是否成功
在 Jupyter 或 Python 中执行以下代码,确认路径正确:
点击查看代码
import mmseg
import os# 查看 mmsegmentation 安装路径(应指向 D 盘)
print("mmsegmentation 安装路径:", mmseg.__file__)# 查看当前工作路径(应指向 D:\mmsegmentation)
print("当前工作路径:", os.getcwd())
输出结果如下:
点击查看代码
mmsegmentation 安装路径: D:\DeepLearning\Learn_SAM\mmsegmentation\mmseg\__init__.py
当前工作路径: D:\DeepLearning\Learn_SAM\mmsegmentation

(3)打开jupyter调试刚刚那段代码:
(MMSeg) D:\DeepLearning\Learn_SAM\mmsegmentation>jupyter notebook
4.载入测试图像
5.下载素材至data目录
【B1】所有代码基于Linux系统,所以修改代码
(1)代码
点击查看代码
#Windows下载命令:
import requests
import os# 确保 data 文件夹存在
if not os.path.exists('data'):os.mkdir('data')# 要下载的文件链接和保存路径
files = [# 伦敦街景图片("https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220713-mmdetection/images/street_uk.jpeg", "data/street_uk.jpeg"),# 卧室图片("https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20230130-mmseg/dataset/bedroom.jpg", "data/bedroom.jpg"),# 上海驾车街景视频("https://zihao-download.obs.cn-east-3.myhuaweicloud.com/detectron2/traffic.mp4", "data/traffic.mp4"),# 街拍视频("https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220713-mmdetection/images/street_20220330_174028.mp4", "data/street_20220330_174028.mp4")
]# 批量下载
for url, save_path in files:print(f"正在下载:{url}")response = requests.get(url, stream=True)with open(save_path, 'wb') as f:for chunk in response.iter_content(chunk_size=1024*1024): # 1MB 分块下载if chunk:f.write(chunk)print(f"下载完成,保存到:{save_path}\n")
(2)运行结果如下:
点击查看代码
正在下载:https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220713-mmdetection/images/street_uk.jpeg
下载完成,保存到:data/street_uk.jpeg正在下载:https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20230130-mmseg/dataset/bedroom.jpg
下载完成,保存到:data/bedroom.jpg正在下载:https://zihao-download.obs.cn-east-3.myhuaweicloud.com/detectron2/traffic.mp4
下载完成,保存到:data/traffic.mp4正在下载:https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220713-mmdetection/images/street_20220330_174028.mp4
下载完成,保存到:data/street_20220330_174028.mp4

6.从Model Zoo中选择预训练语义分割模型的config文件和checkpoint权重文件
(1)Model Zoo:https://github.com/open-mmlab/mmsegmentation/tree/main#benchmark-and-model-zoo
(2)如jupyter上所示,作者选的是Segformer算法的Cityscpaes数据集预训练模型和Segformer算法的ADE20K数据集预训练模型

(3)config文件和checkpoint文件如下:


(5)复制以上图片处的config和model的网址,如下:
注意,config文件和checkpoint文件是一一对应的
- Segformer算法,Cityscpaes数据集预训练模型
点击查看代码
configs/segformer/segformer_mit-b5_8xb1-160k_cityscapes-1024x1024.py
https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_8x1_1024x1024_160k_cityscapes/segformer_mit-b5_8x1_1024x1024_160k_cityscapes_20211206_072934-87a052ec.pth
Segformer算法,ADE20K数据集预训练模型
点击查看代码
configs/segformer/segformer_mit-b5_8xb2-160k_ade20k-640x640.py
https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_640x640_160k_ade20k/segformer_mit-b5_640x640_160k_ade20k_20210801_121243-41d2845b.pth
7.Segformer算法,Cityscpaes数据集预训练模型
(1)运行jupyter代码,报错:
RuntimeError: Numpy is not available
(2)NumPy 版本不兼容 导致的
(我安装的是 NumPy 2.0.2,而旧版本的 PyTorch 和 MMSegmentation 依赖 NumPy 1.x)
(3)解决:
①1卸载当前的 NumPy 2.0.2
在命令行(或 Jupyter 中加 !)执行:
pip uninstall numpy -y
②安装兼容的 NumPy 1.x 版本
安装 NumPy 1.26.4(与 PyTorch 1.10.0 兼容的稳定版本):
pip install numpy==1.26.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
③重新执行推理命令
完成后,再次运行之前的图像分割命令
结果如下:

8.Segformer算法,ADE20K数据集预训练模型
(1)运行代码:
点击查看代码
!python demo/image_demo.py \data/bedroom.jpg \configs/segformer/segformer_mit-b5_8xb2-160k_ade20k-640x640.py \https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_640x640_160k_ade20k/segformer_mit-b5_640x640_160k_ade20k_20210801_121243-41d2845b.pth \--out-file outputs/B1_Segformer_ade20k.jpg \--device cuda:0 \--opacity 0.5
(2)输出报错:
点击查看代码
RuntimeError: CUDA out of memory. Tried to allocate 7.21 GiB (GPU 0; 4.00 GiB total capacity; 668.59 MiB already allocated; 1.57 GiB free; 704.00 MiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
【如果报错RuntimeError: CUDA out of memory.显存不够
解决方式:换用更大显存的GPU实例、换用占用显存更小的模型、缩小输入图像尺寸、重启kernel】
(3)换用占用显存更小的模型
Segformer算法的ADE20K数据集换用更小的预训练模型
点击查看代码
#点击config,复制configs后面的网址
configs/segformer/segformer_mit-b0_8xb2-160k_ade20k-512x512.py
#右键点击model,“复制链接地址”
https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b0_512x512_160k_ade20k/segformer_mit-b0_512x512_160k_ade20k_20210726_101530-8ffa8fda.pth

(4)运行:
点击查看代码
# !python demo/image_demo.py \
# data/bedroom.jpg \
# configs/segformer/segformer_mit-b5_8xb2-160k_ade20k-640x640.py \
# https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_640x640_160k_ade20k/segformer_mit-b5_640x640_160k_ade20k_20210801_121243-41d2845b.pth \
# --out-file outputs/B1_Segformer_ade20k.jpg \
# --device cuda:0 \
# --opacity 0.5
#(1)报错:RuntimeError: CUDA out of memory.显存不够# !python demo/image_demo.py \
# data/bedroom.jpg \
# configs/segformer/segformer_mit-b0_8xb2-160k_ade20k-512x512.py \
# https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b0_512x512_160k_ade20k/segformer_mit-b0_512x512_160k_ade20k_20210726_101530-8ffa8fda.pth \
# --out-file outputs/B1_Segformer_ade20k.jpg \
# --device cpu \ # 改为 CPU 推理
# --opacity 0.5
# (2)报错: Cell In[14], line 11
# --opacity 0.5
# ^
# IndentationError: unexpected indent!python demo/image_demo.py \
data/bedroom.jpg \
configs/segformer/segformer_mit-b0_8xb2-160k_ade20k-512x512.py \
https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b0_512x512_160k_ade20k/segformer_mit-b0_512x512_160k_ade20k_20210726_101530-8ffa8fda.pth \
--out-file outputs/B1_Segformer_ade20k.jpg \
--device cpu \
--opacity 0.5
#关闭电脑其他进程,以上代码,运行成功
(5)运行成功
点击查看代码
Loads checkpoint by http backend from path: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b0_512x512_160k_ade20k/segformer_mit-b0_512x512_160k_ade20k_20210726_101530-8ffa8fda.pth
(6)成果

3.3【B2】预训练语义分割模型预测-单张图像-Python API
1.进入 mmsegmentation 主目录
目录改一下:r'D:\DeepLearning\Learn_SAM\mmsegmentation'
2.导入工具包
3.载入模型
4.载入测试图像
5.语义分割推理预测
6.语义分割预测结果-定性类别
7.语义分割预测结果-定量置信度
8.可视化语义分割预测结果
方法一、方法二(和原图并排显示)、方法三、方法四(加图例)
3.4【B3】预训练语义分割模型预测-视频-Python API
1.进入 mmsegmentation 主目录
2.导入工具包
3.载入模型
4.输入视频路径
5.创建临时文件夹,存放每帧结果
6.视频单帧预测
7.视频逐帧预测

3.5常用数据集
1.CityScapes数据集
CityScapes数据集有19个类别,适合城市交通、街景
2.ADE20K数据集
ADE20K数据集有150个类别,适合日常生活的物品

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986046.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!