当前位置: 首页 > ai >正文

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

前言

  • 在刚接触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.xdnf.cn/news/1703.html

相关文章:

  • 《无尽的尽头》今日开播 刘家祎大胆演绎林磊儿的“另一面”
  • python速成
  • 项目《基于Linux下的mybash命令解释器》(二)
  • STM32F407使用ESP8266实现阿里云OTA(中)
  • 第9章 多模态大语言模型
  • Android 智能家居开发:串口是什么,为什么android版本都比较低?粘包半包的原因以及处理思路,缓冲区处理,以及超时清空缓冲区....
  • 操作系统进程管理笔记
  • python 函数与模块
  • 项目中的政治斗争如何化解
  • 如何在 Windows上安装 Python 3.6.5?
  • Python 中 `r` 前缀:字符串处理的“防转义利器”
  • 第十三届蓝桥杯 2022 C/C++组 修剪灌木
  • Blender插件 三维花草植物自然景观生成器 Geo-Scatter 5.4.0
  • MODIS(MOD11A2)中国2000-2024年度平均地表温度(LST)数据集
  • AI下半场,出现了“超体”时刻
  • ctfhow——web入门214~218(时间盲注开始)
  • 13-DevOps-引入容器编排Kubernetes
  • 使用vue2开发一个在线旅游预订平台-前端静态网站项目练习
  • 6.学习笔记-SpringMVC-拦截器(P71-P74)
  • 得物业务参数配置中心架构综述
  • 离线部署kubernetes
  • DeepSeek系列(7):行业专属应用
  • Unity后处理全解析:从入门到优化
  • 序论文42 | patch+MLP用于长序列预测
  • C语言教程(十四):C 语言指针详解
  • 倚光科技:微透镜阵列低成本加工新范式
  • 【数据可视化-27】全球网络安全威胁数据可视化分析(2015-2024)
  • Linux基础命令
  • 容器修仙传 我的灵根是Pod 第10章 心魔大劫(RBAC与SecurityContext)
  • 免费版还是专业版?Dynadot 域名邮箱服务选择指南