mmsegmentation学习笔记

mmsegmentation教程

下载预训练权重

github–>mmsegmentation–>model zoo–>XXX model(如:PSPNet)–>找到预选连权重与config的前缀一致:pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 (model)

了解配置文件

查看配置文件,可以运行 python tools/misc/print_config.py /PATH/TO/CONFIG 来查看完整的配置文件。

python tools/misc/print_config.py configs/deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py
准备数据集
  1. 按照同济子豪兄的西瓜语义分割数据集进行制作
  2. 建立mmseg/datasets/My_Dataset.py
构建模型
  1. 执行以下两步生成完整的配置文件,在文件夹work_dirs中
cd mmsegmentation_ours
python tools/train.py configs/deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py
  1. 复制在configs/deeplabv3plus并命名为:my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py
  2. 修改完整的配置文件的num_classes,所有的num_classes=背景+类别数
  3. 修改完整的配置文件的dataloader的路径
  4. 找到路径mmseg/datasets,复制pascal_context.py模仿建立my_pascal_context.py,在init.py中导入,并随后在配置文件中修改数据集格式。
  5. 将type='SyncBN’修改成type=‘BN’
  6. 添加更多的评估指标’mDice’,'mFscore’等等
  7. 修改完成后请pip install -v -e .或者python setup.py install
模型训练
  1. 浏览数据集
 python tools/analysis_tools/browse_dataset.py configs/deeplabv3plus/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py 
  1. 模型训练

方法一:注意tools/train.py ‘xxx’和’–xxx’的区别,有’–‘可以添加也可以不添加,无’–'是必须添加。

python tools/train.py configs/my_deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py

方法二: train.py–>Configuration–>Parameters: E:/Python_Project/mmsegmentation_ours/configs/my_deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py --work-dir mmseg_log -->apply–>run train.py

模型测试
  1. 对验证集或者测试集上图片进行测试
python tools/test.py configs/deeplabv3plus/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py work_dirs/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480/iter_500.pth --work-dir work_dirs/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480/test  --show  --show-dir work_dirs/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480/test_img
  1. 单张图像分割显示:参考同济子豪兄
  2. 批量图像分割显示:参考同济子豪兄
模型分析实用工具
  1. 计算参数量(params)和计算量( FLOPs)
python tools/analysis_tools/get_flops.py configs/deeplabv3plus/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py --shape 512 512

注意:将tools/analysis_tools/get_flops.py进行以下修改:

outputs = get_model_complexity_info(model,# input_shape,#注释掉inputs=data['inputs'],show_table=False,show_arch=False)
  1. 计算FPS,特别注意,在同一个benchmark上面对比性能指标,才有意义,200张以上才有效。
python tools/analysis_tools/benchmark.py configs/deeplabv3plus/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py work_dirs/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480/iter_5000.pth
  1. 获得Grad-CAM热力图
python tools/analysis_tools/visualization_cam.py
MMDeploy-在线模型转换工具

在线模型转换工具:https://platform.openmmlab.com/deploee
在线模型测速工具:https://platform.openmmlab.com/deploee/task-profile-list

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

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

相关文章

TikTok 将开源“云中和”边缘加速器

“从某种意义上说,我们正在努力破解云的骨干网,以造福于我们,”TikTok产品管理基础设施经理Vikram Siwach指出,他解释了该公司即将开源的“全球服务加速器”的好处,这是一个可编程的边缘平台,可将应用程序需…

JavaScript 中松散类型的理解

JavaScript 是一种动态类型语言,它的松散类型是其独特的特性之一。本文将深入探讨 JavaScript 中松散类型的概念以及如何在代码中应用。 引言 JavaScript 是一种强大而灵活的语言,它的松散类型使得变量的类型可以在运行时动态改变。这为开发人员带来了…

Linux常用命令——bg命令

在线Linux命令查询工具 bg 用于将作业放到后台运行 补充说明 bg命令用于将作业放到后台运行,使前台可以执行其他任务。该命令的运行效果与在指令后面添加符号&的效果是相同的,都是将其放到系统后台执行。 在Linux系统中执行某些操作时候&…

【通讯协议】gRPC和Webhook

RPC(Remote procedure Call)之所以被称为“远程”,是因为在微服务架构下,当服务部署到不同的服务器上时,它可以实现远程服务之间的通信。从用户的角度来看,它的作用就像本地函数调用。 下图说明了gRPC的整…

【漏洞复现】Array VPN任意文件读取漏洞

漏洞描述 华耀(中国)科技有限公司(简称:Array)于2003年创建于北京,是优秀的网络功能平台解决方案提供商,也是应用交付解决方案、移动应用接入(SSL VPN)解决方案的全球领导者。华耀现有员工200余人,其中研发团队占到100余人,总部位于北京。并在北京、上海、广州、杭…

[Android]常见的数据传递方式

Demo:https://github.com/Gamin-fzym/DataTransferDemo 1.Intent 发送页面 A 到页面 B 的 Intent 时,可以通过 Intent 的 putExtra() 方法将数据附加到 Intent 上。 在页面 B 中,通过 Intent 的 getXXXExtra() 方法获取传递的数据。 1).在A页面发送 …

文件属性和路径

文件属性 我们先补充一个知识: 任何新建的文件刚开始都是在磁盘上的 假设我们在文件夹中新建一个1.txt文本文档,他的大小是0KB,但是不能说明这个文件不占用磁盘空间 文件由 文件属性文件内容 组成,这里只能说明文件内容是空 文件…

用户增长常用的ChatGPT通用提示词模板

用户画像:请帮助我了解目标用户的特点和需求,包括年龄、性别、职业、兴趣等方面的内容,以便我能够更好地定位和推广。 用户获取渠道:请帮助我了解用户主要从哪些渠道获取我们的产品或服务,以便我能够更好地优化获取渠…

嵌入式硬件基础知识——1

目录 SOC、MCU、MPU、CPU SPI STM32的时钟系统 can是什么 串口和并口 传感器输出引脚高阻抗好还是低阻抗好? iic 运算放大器特点 MOS管和三极管 同步电路和异步电路 SOC、MCU、MPU、CPU SOC 片上系统 手机的核心芯片 MCU 微控系统 单片机 MPU 嵌入式微处…

美国季节性干旱数据集

美国季节性干旱数据集 美国干旱展望栅格数据集由国家气象局气候预测中心生成。它在每个月的最后一天发布,提供下个月的干旱前景信息。“美国季节性干旱展望”数据集每月发布一次,特别是每月的第三个星期四。该数据集对美国不同地区发生干旱的可能性进行…

MySQL性能优化,SQL调优,SQL调优的手段

文章目录 对MySQL性能的优化的理解硬件和操作系统层面的优化架构设计层面的优化MySQL程序配置优化SQL优化 SQL调优有哪几种方式1.EXPLAIN2.SQL语句中IN包含的值不应过多3.SELECT语句务必指明字段名称4.当只需要一条数据的时候,使用limit 15.如果排序字段没有用到索引…

vue.config.js

proxy代理 proxy选项用于配置开发服务器的代理。下面是proxy的全部属性: 1. target (String | Object | Function): 指定要代理的目标主机的URL。可以是一个字符串,也可以是一个对象或函数,用于动态返回目标URL。 2. forward (Boolean): 控…

04 _ 系统设计目标(二):系统怎样做到高可用?

这里将探讨高并发系统设计的第二个目标——高可用性。 高可用性(High Availability,HA)是你在系统设计时经常会听到的一个名词,它指的是系统具备较高的无故障运行的能力。 我们在很多开源组件的文档中看到的HA方案就是提升组件可…

Unity编译报错Copying Assembly-CSharp.dll问题解决

Unity编译报错Copying Assembly-CSharp.dll问题解决 最近unity编译时经常碰到一个报错: Copying assembly from “Temp/XXXX”Failed... 一开始去查资料发现可能是杀毒软件一直在后台读取文件的原因引起的 但是关闭各种杀毒软件,并且关闭windows安全中…

调试器gdb

目录 一、调试 1、前言 2、 debug和release 二、基本操作 1、退出 quit 2、开始调试 r 3、打断点 b 4、查看断点 info b 5、查看代码 l 6、删除断点 d 7、逐过程 n 8、打印变量内容 p 9、逐语句(进入函数) s 10、查看函数调用堆栈 bt 11、…

力扣打卡 1457-二叉树中的伪回文路径

Problem: 1457. 二叉树中的伪回文路径 思路 首先想用最暴力的深度优先DFS,使用traversePaths方法来遍历二叉树并存储所有路径。该方法接收当前节点、当前路径和路径列表作为参数。当到达叶子节点时,将当前路径添加到路径列表中。 然后,我们…

linux rpm安装软件卸载 以卸载mysql为例

查看rpm包 rpm -qa | grep 内容 卸载rpm rpm -e --nodeps rpm名称

【Unity实战】切换场景加载进度和如何在后台异步加载具有庞大世界的游戏场景,实现无缝衔接(附项目源码)

文章目录 最终效果前言一、绘制不同的场景二、切换场景加载进度1. 简单实现2. 优化 三、角色移动和跳跃控制四、添加虚拟摄像机五、触发器动态加载场景六、最终效果参考源码完结 最终效果 前言 观看本文后,我的希望你对unity场景管理有更好的理解,并且能…

java - 二分查找

一、什么是二分查找 二分查找(Binary Search),也称为折半搜索或对数搜索,是一种在有序数组或列表中查找特定元素的算法。它的工作原理是将待查找的区间一分为二,并确定目标值位于哪个子区间中,然后通过不断…