P3_安装配置MMSegmentation+预训练语义分割推理预测

news/2025/12/3 21:33:50/文章来源:https://www.cnblogs.com/Samar-blog/p/19304035

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)结果如下:
P3_Git配置1_模糊信息版

P3_Git配置2_模糊信息版

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,输入感叹号并保存

P3_Vscode,创建index.html,输入感叹号并保存

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

P3_Vscode-初始化仓库-保存index.html

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

P3_在本地使用Git作简单的保存提交

⑤git远程提交

如何将我们的代码像刚才的游戏存档一样,发送给我们的Steam这样一种远程的服务器?

github就是这样一个远程的仓库

操作:Publish Branch(发布Branch),会自动打开默认浏览器,链接GitHub

P3_发布Branch

P3_发布Branch成功

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

P3_本地仓库已经处在add_hello进度,而远程仓库github还处于sceond_demo的进度,落后于本地仓库

P3_将add_hello.js上传至github

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

P3_在GitHub上创建新仓库

(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')

安装成功:
P3_下载预训练模型权重文件和视频素材

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)测试成功:
P3_MMSeg最后一步的中文字体测试成功

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

P3_下载预训练模型权重文件和视频素材(修改版)

(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

P3_【B1】下载素材至data目录

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数据集预训练模型
P3_Segformer算法预训练模型

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

P3_Segformer算法的Cityscpaes数据集预训练模型的config文件和checkpoint文件

P3_Segformer算法的ADE20K数据集预训练模型的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

③重新执行推理命令

完成后,再次运行之前的图像分割命令

结果如下:

P3_Segformer算法的Cityscpaes数据集预训练模型运行成果

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

P3_Segformer算法的ADE20K数据集预训练模型的config和checkpoint文件换MIT-B0

(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)成果
P3_Segformer算法的ADE20K数据集预训练模型运行成果

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.视频逐帧预测

P3_预训练语义分割模型预测-视频的视频逐帧预测结果

3.5常用数据集

1.CityScapes数据集

CityScapes数据集有19个类别,适合城市交通、街景

2.ADE20K数据集

ADE20K数据集有150个类别,适合日常生活的物品

P3_ADE20K和Cityscapes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025住人集装箱房生产品牌排名如何?谁在颠覆未来居住?

正文 近年来,随着模块化建筑理念的普及和各类工程项目、应急保障及商业临时设施需求的增长,住人集装箱房(又称箱式房、模块化房屋)市场蓬勃发展。面对市场上众多品牌,如何甄别其综合实力并做出明智选择,成为许多…

R20-2025年国产活动板房选购指南:领军品牌深度解析

正文 在模块化建筑成为全球基建、应急保障与商业扩展重要支撑的今天,选择一家可靠的活动板房生产厂家,直接关系到项目成本、工期与人员安全。面对市场上众多的供应商,如何辨别其综合实力与技术底蕴?本文将基于2025…

langchain4j 学习系列(5)-RAG

继续我们的langchain4j之旅,今天来看看RAG如何实现,“RAG萌宠新手盆友们”建议先看看B站大佬的视频RAG 工作机制详解—哔哩哔哩_bilibili,核心步骤就是下面这3张图: 最简单的RAG hello-world1、分片/索引 这里emb…

[linux 交换空间]

~/opt/claudeCode$ bash install.sh Setting up Claude Code... Installing Claude Code native build stable...install.sh: line 142: 82469 Killed "$binary_path" install ${TARGET:+&…

Alpha冲刺总结报告

Alpha冲刺总结报告 团队名称: 书海拾贝队 冲刺周期: 2025年11月24日 - 2025年11月30日 项目名称: 书海拾贝 - 二手书交易平台 成员: 杨浩 刘霆浩 戴宏翔 莫圣韬 陈东楷 赖顺炜这个作业属于哪个课程 班级链接这个作…

完整教程:【高阶数据结构】AVL树

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20251203周三日记

20251203周三日记今日: 1.炉石新版本大更。一早来实验室,边玩边调研,真挖到宝了。找到一个无训练的仓库,给师兄推过去,非常不错。 2.中午和同门吃饭,吃完回来继续跑vggt代码,手动下载调研的文章。好像3D genera…

了解NFSv4中的nfsidmap

nfsidmap 实用程序是 NFSv4 中处理 ID 映射 的关键组件,它在本地系统的UID/GID与 NFSv4 使用的user@domain字符串之间进行转换。这确保了在可能具有不同 UID/GID 映射的系统之间正确处理所有权和权限。 主要特性和使用…

你的学习思路有实践导向的优势,但需调整顺序和手段才能更高效成体系!核心结论:先搭建,边做边补原理,再集中突破面试考点,比 “先堆方案再回头学” 更高效。

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Scrum 冲刺博客_5

昨天已完成工作:完成基础数据的分类整理。 新增测试覆盖率阈值检查,确保代码质量。 完成基本代码框架并上传。今天计划完成的工作:开发组件内具体内容。 模块核心接口。 解决数据渲染延迟问题,优化页面加载速度。工…

2025年11月聚乙烯瓶厂家综合评估与选购指南:十大知名供应商深度解析

摘要 随着2025年化工包装行业的快速发展,聚乙烯瓶作为农药、医药、食品等领域的重要包装容器,其市场需求持续增长。本文基于行业调研数据和专家评估,为您呈现2025年11月聚乙烯瓶厂家的综合排名与分析,为采购决策提…

2025年12月广东顺德短视频代运营团队优势解读

本文深入解读2025年顺德短视频代运营团队的核心优势,聚焦广州云视信息服务有限公司的一站式短视频营销服务。通过分析本地化定制、技术赋能和全链路覆盖,结合客户案例和数据,为中小企业提供高效短视频运营解决方案,…

为什么需要多路召回

目录背景和价值一、向量检索的局限性1. 语义相似 ≠ 精确匹配2. 关键词匹配能力弱3. 多条件组合查询困难二、具体问题对比场景 1:精确数值查询场景 2:多条件组合查询场景 3:专业术语/品牌名查询三、向量检索 vs ES …

2025年11月聚乙烯瓶厂家综合排行榜:权威推荐与选购指南

摘要 随着2025年塑料包装行业的快速发展,聚乙烯瓶作为农药、化工、医药等领域的重要包装容器,其市场需求持续增长。本文基于行业数据、技术实力、客户口碑等多维度评估,为您呈现2025年11月聚乙烯瓶厂家综合排行榜,…

2025年11月农药瓶供应商排行榜:安徽金汇龙包装位居榜首

文章摘要 2025年农药包装行业迎来技术升级浪潮,随着环保政策趋严和智能制造的普及,农药瓶供应商面临新的机遇与挑战。本文基于市场调研数据和行业专家意见,为您呈现2025年11月农药瓶供应商综合排名榜单,安徽金汇龙…

2025年11月农药瓶供应商排行榜:安徽金汇龙包装领跑行业

摘要 2025年农药包装行业迎来技术升级浪潮,随着环保政策收紧和智能制造的推进,农药瓶供应商面临新的机遇与挑战。本文基于市场调研数据和行业专家评价,为您呈现2025年11月农药瓶供应商综合排名,并提供详细的对比分…

(论文阅读)An Image is Worth 32 Tokens for Reconstruction and Generation

(论文阅读)An Image is Worth 32 Tokens for Reconstruction and Generation1. 论文Yu et al. An Image is Worth 32 Tokens for Reconstruction and Generation. NeurIPS, 2024.摘要: 在视觉中,尤其是高分辨率设置…

2025年11月农药瓶供应商排行TOP10:安徽金汇龙包装领跑行业

摘要 2025年农药包装行业迎来技术升级浪潮,随着环保政策收紧和智能制造的推进,农药瓶供应商面临新的机遇与挑战。本文基于市场调研数据和技术参数分析,为您呈现2025年11月最具竞争力的农药瓶供应商排行榜,为农药生…

某中心与南加州大学联合遴选三位机器学习研究员

某机构与南加州大学的联合研究中心宣布,三位博士研究生荣获2022-23年度机器学习研究员称号,他们将获得资助并在某机构科学家的指导下,从事与机器学习隐私、安全和可信度相关的前沿研究。某中心与南加州大学联合遴选…

酷我音乐APP(手机音乐播放器) v12.0.0.2 去广告破解版

一、简介 📱酷我音乐是一款手机音乐播放器。酷我音乐app是一款拥有海量正版音乐库的免费听歌软件。软件提供在线听歌、电台、MV、歌词和个性化推荐等多种功能,下载安装后,用户可以在这里收听并下载高质量vip音乐,…