MMsegmentation第一弹-(认识与安装)

news2025/4/25 9:31:35

前言

  • 在刚接触MMsegmentation的时候,我是怎么看都看不明白,那个过程实在是太痛苦了,所以我当时就想着一定要把这个写成文章,希望后来者能很轻松的就上手。
  • 该系列文章不涉及框架的底层原理,仅以一个使用者的身份带领读者学会使用MMsegmentation。若有帮助还望多多支持。

MMsegmentation官方资源

官方代码网站: https://github.com/open-mmlab/mmsegmentation

官方文档网站:https://mmsegmentation.readthedocs.io/zh-cn/0.x/

note: mmseg有多个版本,看文档的时候注意下自己看的是第几版本的文档

MMsegmentation代码下载

note: 本篇教程以 mmseg v0.30.0 版本为例
进入官方网站,点击Tags,选择v0.30.0版本

MMsegmentation目录结构介绍

主要目录介绍
  • 若要看详细介绍,请浏览https://zhuanlan.zhihu.com/p/520397255,官方这篇写的还挺不错的。
mmsegmentation 
| 
|- configs # 配置文件 
|     |- _base_ # 基配置文件 
|     |     |- datasets             # 需要修改
|     |     |- models               # 需要修改 
|     |     |- schedules            # 一般不需要修改
|     |     |- default_runtime.py   # 一般不需要修改
|     |
|	  |- swin                     # 需要修改  
|     |- 配置写在这个位置...                         
|- data                           # 一般把data放在这儿,放在别的地方也ok 
|- mmseg # 配置文件具体实现位置 
|     |- core # 核心组件 一般不需要修改
|     |     |- evaluation         # 评估模型性能代码 
|     |- datasets # 数据集相关代码 
|     |     |- pipelines          # 数据预处理 ---一般不需要修改
|     |     |- samplers           # 数据集采样代码 ---一般不需要修改
|     |     |- ade.py             # 各个数据集的代码 
|     |     |- 自己数据集.py       # 需要修改
|     |     |- ... 
|     |- models # 分割模型具体实现代码 
|     |     |- backbones             # 主干网络 
|     |     |- decode_heads          # 解码头 
|     |     |- losses                # 损失函数 
|     |     |- necks                 # 颈 
|     |     |- segmentors            # 构建完整分割网络的代码 
|     |     |- utils                 # 构建模型时的辅助工具 
|- tools # 一般不需要修改
|     |- model_converters          # 各个主干网络预训练模型转 key 脚本 
|     |- convert_datasets          # 各个数据集准备转换脚本 
|     |- train.py                  # 训练脚本 
|     |- test.py                   # 测试脚本 
|     |- ...                       
|- ...
从我自身使用角度来看,与我们相关的有以下几个文件夹:
  • configs 包括了各个算法的配置文件、存放常用的数据集配置、基础模型以及训练策略的基配置文件 configs/_base_

    • 大白话: 运行代码,就需要在 configs目录下写一个配置文件 File,在 File 中调用 configs/_base_ 的文件

    • 例如:在configs目录中创建了一个文件夹 1.example,然后在里边创建了 demo.py

    • 接下来我在demo.py中调用 configs/_base_ 中的文件

  • mmseg 里面是 MMSegmentation 的算法库,包括核心组件、数据集处理、分割模型代码和面向用户的 API 接口。我们一般情况下修改如下几个地方就足够了

    • backbone:特征提取部分,类似于U-Net的编码器
    • necks:对backbone输出的特征再做一次增强,类似于U-Net中的跳跃连接,可以没有necks
    • decode_heads: 类似于U-Net的解码器
    • losses:损失,如果需要添加一些新的损失,在这个里边添加
  • tools 包括了调用 MMSegmentation 作为训练和测试入口的 tools/train.py tools/test.py,预训练模型和数据集准备的转换脚本,以及部署和可视化相关的脚本。平常用到的基本上就是下边这四个文件。这里的文件我们一般不用进行修改。

MMsegmentation环境安装

note: 本篇教程以 mmseg v0.x版本为例

官方文档网站:https://mmsegmentation.readthedocs.io/zh-cn/0.x/

点击依赖

  • 第一步,默认读者已经安装好了conda或者miniconda

  • 第二步:conda create --name environmentName python=3.8 -y
    • --name 后边的是虚拟环境名称
    • python后边是对应的版本,如果已知要安装torch的版本,需要注意下python和torch的版本需要匹配,这个 大家在网上搜一下就可以查到。
    • -y 就是安装的时候默认yes,不用用户再进行输入。
  • 第三步:这里我以GPU安装为例,点击官方说明四个字

  • 然后在下图中的页面中选择自己需要安装的torch版本即可
    • note: 感觉打开这个网址还需要进行科学上网

  • 第四步:按下图执行命令即可

  • 第五步:一般情况下我们都是在mmseg中开发代码,所以都是选择从源码安装,在前边我已经介绍过代码下载这里就不进行赘述。

  • 下载源码后,我们需要在下图目录中执行pip install -v -e . (e后边间隔后还有一个.)

`

到此安装过程就算完成了

运行MMsegmentation遇到的问题

按照上述步骤运行后,有时会出现 mmcv版本不匹配 的问题
解决方法:在mmseg目录下有一个__init__.py,按下图操作即可。

参考文章

  • 超详细!带你轻松掌握 MMSegmentation 整体构建流程:https://zhuanlan.zhihu.com/p/520397255

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

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

相关文章

React19源码阅读之commitRoot

commitRoot入口 在finishConcurrentRender函数,commitRootWhenReady函数,commitRoot函数。 commitRoot流程图 commitRoot函数 commitRoot 函数是 React 渲染流程中用于提交根节点的关键函数。它的主要作用是设置相关的优先级和状态,然后调…

目标检测:视觉系统中的CNN-Transformer融合网络

一、背景 无人机(UAVs)在城市自动巡逻中发挥着重要作用,但它们在图像识别方面面临挑战,尤其是小目标检测和目标遮挡问题。此外,无人机的高速飞行要求检测系统具备实时处理能力。 为解决这些问题,我们提出…

Turso:一个基于 libSQL的分布式数据库

Turso 是一个完全托管的数据库平台,支持在一个组织中创建高达数十万个数据库,并且可以复制到任何地点,包括你自己的服务器,以实现微秒级的访问延迟。你可以通过Turso CLI(命令行界面)管理群组、数据库和API…

深度学习前沿 | TransNeXt:仿生聚合注意力引领视觉感知新时代

目录 1. 引言 2. 背景与挑战 3. TransNeXt 核心创新 3.1 像素聚合注意力(PAA) 3.2 长度缩放余弦注意力(LSCA) 3.3 卷积 GLU(ConvGLU) 4. 模型架构详解 5. 实验与性能评估 5.1 图像分类(I…

C语言-函数-1

以下是我初学C语言的笔记记录,欢迎在评论区留言补充 一,函数分为几类 * 函数分为两类: 一类是库函数;一类是自定义函数 * 库函数: 系统自己带的,在使用时候,要用到头文件; 查询库函…

openwrt作旁路由时的几个常见问题 openwrt作为旁路由配置zerotier 图文讲解

1 先看openwrt时间,一定要保证时间和浏览器和服务器是一致的,不然无法更新 2 openwrt设置旁路由前先测试下,路由器能否ping通主路由,是否能够连接外网,好多旁路由设置完了,发现还不能远程好多就是旁路由本…

Redis 及其在系统设计中的作用

什么是Redis Redis 是一个开源的内存数据结构存储系统,可用作数据库、缓存和消息代理。它因其快速的性能、灵活性和易用性而得到广泛应用。 Redis 数据存储类型 Redis 允许开发人员以各种数据结构(例如字符串、位图、位域、哈希、列表、集合、有序集合…

爬虫-oiwiki

我们将BASE_URL 设置为 "https://oi-wiki.org/" 后脚本就会自动开始抓取该url及其子页面的所有内容,并将统一子页面的放在一个文件夹中 import requests from bs4 import BeautifulSoup from urllib.parse import urljoin, urlparse import os import pd…

强化学习核心原理及数学框架

1. 定义与核心思想 强化学习(Reinforcement Learning, RL)是一种通过智能体(Agent)与环境(Environment)的持续交互来学习最优决策策略的机器学习范式。其核心特征为: ​​试错学习​​&#x…

【技术派后端篇】技术派中 Session/Cookie 与 JWT 身份验证技术的应用及实现解析

在现代Web应用开发中,身份验证是保障系统安全的重要环节。技术派在身份验证领域采用了多种技术方案,其中Session/Cookie和JWT(JSON Web Token)是两种常用的实现方式。本文将详细介绍这两种身份验证技术在技术派中的应用及具体实现…

【基础】Node.js 介绍、安装及npm 和 npx功能了解

前言 后面安装n8n要用到,做一点技术储备。主要是它的两个工具:npm 和 npx。 Node.js介绍 Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本,是一个基于 C…

助力网站优化利用AI批量生成文章工具提升质量

哎,有时候觉得写东西这事儿吧,真挺玄乎的。你看着那些大网站的优质内容,会不会突然冒出个念头——这些家伙到底怎么做到日更十篇还不秃头的?前阵子我蹲在咖啡馆里盯着屏幕发呆,突然刷到个帖子说现在用AI写文章能自动纠…

SpringBootTest报错

Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or … 解决方案:在SpringTest注解中添加属性(classes )填写启动类 如我的启动类是MainApplication.class javax.websocket.server.ServerContainer no…

w~视觉~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12327888 #几个论文 Fast Charging of Energy-dense Lithium-ion Batteries Real-time Short Video Recommendation on Mobile Devices Semantic interpretation for convolutional neural networks: What makes a ca…

Redis安装及入门应用

应用资料:https://download.csdn.net/download/ly1h1/90685065 1.获取文件,并在该文件下执行cmd 2.输入redis-server-lucifer.exe redis.windows.conf,即可运行redis 3.安装redis客户端软件 4.安装后运行客户端软件,输入链接地址…

NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve

//"dev": " NODE_OPTIONS--openssl-legacy-provider vue-cli-service serve" // 修改后(Windows 适用) "dev": "vue-cli-service serve --openssl-legacy-provider" 升级 Node.js 到 v14,确保依赖…

上篇:深入剖析 BLE 底层物理层与链路层(约5000字)

引言 在无线通信领域,Bluetooth Low Energy(BLE)以其超低功耗、灵活的连接模式和良好的生态支持,成为 IoT 与可穿戴设备的首选技术。要想在实际项目中优化性能、控制功耗、保证可靠通信,必须对 BLE 协议栈的底层细节有深入了解。本篇将重点围绕物理层(PHY)与链路层(Li…

2025 年“泰迪杯”数据挖掘挑战赛B题——基于穿戴装备的身体活动监测问题分析

摘要 本文聚焦于基于穿戴设备采集的加速度计数据,深入研究志愿者在日常活动中的行为特征,构建了多个数学建模框架,实现从身体活动监测、能耗预测、睡眠阶段识别到久坐预警等多个目标。我们依托于多源数据融合与机器学习模型,对人体活动状态进行识别与分析,为健康管理、行…

Linux424 chage密码信息 gpasswd 附属组

https://chat.deepseek.com/a/chat/s/e55a5e85-de97-450d-a19e-2c48f6669234

自定义指令简介及用法(vue3)

一介绍 防抖与节流,应用场景有很多,例如:禁止重复提交数据的场景、搜索框输入搜索条件,待输入停止后再开始搜索。 防抖 点击button按钮,设置定时器,在规定的时间内再次点击会重置定时器重新计时&#xf…