【Bubbliiiing视频记录】Pytorch 搭建自己的Unet语义分割平台

news2024/10/7 16:15:31

来源

b站 地址

什么是语义分割

语义分割:对图像每个像素点进行分类
在这里插入图片描述常见神经网络处理过程:Encoder提取特征,接着Docoder恢复成原图大小的图片
在这里插入图片描述

UNet整体结构

分为三个部分

  1. 主干特征提取部分:
    • 卷积和最大池化的堆叠
    • 获得五个初步有效特征层
  2. 加强特征提取部分:
    • 五个初步有效特征层进行上采样 + 特征融合
    • 获得一个最终融合了所有特征的有效特征层
  3. 预测部分
    最后一个有效特征层对每一个特征点进行分类

在这里插入图片描述

BackBone-主干特征提取网络

bubbliiing使用的是VGG16作为主干特征提取网络。
UNet具体使用VGG16红色框线内的内容
在这里插入图片描述具体实现代码:

  • 卷积核都是1 × 1的,所以不改变高和宽,卷积核个数改变深度
  • M:最大池化,长和宽 / 2
    在这里插入图片描述

加强特征提取网络-FPN的构建

这块的步骤:堆叠->卷积->堆叠->卷积
在这里插入图片描述代码部分,主要unetUp来实现
一小步的实现如下两图:
在这里插入图片描述
在这里插入图片描述所有,最后输出的是512, 512, 64的特征层
在这里插入图片描述

利用特征获得最终的预测结果

利用1 × 1卷积,指定输出类别数目,即可
在这里插入图片描述

预测过程详解

unet的预测效果如下:
在这里插入图片描述代码过程如下所示:
在这里插入图片描述

数据集格式

  • JPEGImages:原图
  • SegmentationClass:标签(灰度图,飞机是1,人是15)
  • Segmentation
    • train.txt:训练集图片名字
    • val.txt:验证集图片名字
      在这里插入图片描述在这里插入图片描述

在这里插入图片描述

数据集的制作

使用一个软件labelme,版本3.16.7

pip install labelme==3.16.7 # 安装
labelme # 运行

在界面中通过一个闭环人工标注(真肝呀,yyds)
在这里插入图片描述
会生成对应的json文件
在这里插入图片描述利用json_to_dataset文件,输入自己的类别,得到分割结果
在这里插入图片描述得到分割结果
在这里插入图片描述

训练参数解析

num_class = 实际类别+1(背景)
在这里插入图片描述
冻不冻结?在这里插入图片描述

使用focal loss可以防止样本不平衡
在这里插入图片描述
核心是给不同的权重
在这里插入图片描述

训练自己的数据集

之前做好的数据集,用voc_annotation进行划分

在这里插入图片描述

miou 评价指标计算

在这里插入图片描述
在这里插入图片描述

看完了,完结撒花,不过想做分割的话,接下来看看sam,unet接下来可以看看变种了!

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

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

相关文章

Snail-Camunda

gitee地址:snail-camunda 当前版本:V1.0 💖💖💖希望大家动动发财的小手帮忙star一下,感谢! ⭐项目介绍 本项目是对Camunda接口…

data和filter协议文件包含

实验目的 通过本实验,了解php封装伪协议,掌握filter协议和data协议的用法 实验环境 操作机:kali 靶机:Windows Server 2003 实验地址:http://靶机ip/exp/include2/filter/ http://靶机ip/exp/include/include3.php…

【C++ OJ练习】1.求和

1.题目链接 求123...n_牛客题霸_牛客网 2.解题思路 利用C构造函数的特性 既然不能使用循环 那么我们可以定义n个对象 就会调用n次构造函数 去代替循环 每次调用的时候进行加法的计算 3.代码 class Sum { public:Sum(){_sum _i;_i;}static void Init(){_i 1;_sum 0;}st…

ruoyi若依 组织架构设计--[ 菜单管理 ]

ruoyi若依 组织架构设计--[ 菜单管理 ] 1. 关于ruoyi组织架构各个表的设计2. 从产品的角度考虑 [ 菜单管理 ]2.1菜单树List页面2.2 菜单树新增2.3 菜单树修改2.4 删除菜单 1. 关于ruoyi组织架构各个表的设计 1.部门表 ancestors字段。 添加这个字段,方便列举所有子…

用maven安装Netty

Netty简单介绍 官网:https://netty.io/index.html Netty是一个异步的、事件驱动的网络应用框架,既可用于开发高性能的服务端,也可用于开发客户端。 Netty是一个NIO的客户端和服务端框架,用于快速、容易地开发网络应用&#xff0c…

Linux·图解Linux网络包接收过程

因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话&…

Paddle OCR 安装使用教程

简介 PaddleOCR是飞浆开源文字识别模型,最新开源的超轻量PP-OCRv3模型大小仅为16.2M。同时支持中英文识别;支持倾斜、竖排等多种方向文字识别;支持GPU、CPU预测,并且支持使用paddle开源组件训练自己的超轻量模型,对于…

微信小程序路由跳转,API调用,页面传值

路由跳转 wx.switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 wx.switchTab({url: /pages/tarbar/index })wx.reLaunch 关闭所有页面,打开到应用内的某个页面。 wx.reLaunch({url: /pages/index/index })wx.redirectTo 关闭当前页面…

13服务端实战:初始化项目

本章开始将进行服务端的实战开发,包含了 Devops、服务端以及其他涉及到的中间件的模块。 由于 NestJS 的文档非常完善以及之前有写过比较完整的 NestJS 的小册,如果对 NestJS 非常熟悉的同学可以快速跳过本章,另外整个实战篇的代码都会按照流…

shell命令以及运行原理、Linux权限、粘滞位

今天我带来Linux重点知识:shell命令以及运行原理、Linux权限、粘滞位的知识点。 目录 shell命令以及运行原理Linux权限的概念Linux下的用户su命令 Linux权限管理文件访问者的分类文件的类型和访问权限文件权限值的表达方法 Linux关于权限的知识点补充1.Linux创建用户…

Unity3d C#使用XCharts数据显示格式说明(如:数据类型、数据显示为百分比%等)

前言 XCharts是开源且比较强大的插件,在Unity3d中搭建UI时常常使用的数据图表的制作插件, 特别是当下的数字沙盘、数字孪生等项目中应用较广。笔者公司也一直在使用该插件,本文主要是在开发过程中的一个小需求引发的整理分享。在项目中需要将…

vue2 若依项目,使用plotly.js-dist图表库,将数据图表一键导出为图片

此代码适用的场景是一个页面有多个数据图表。 首先需要拿到你生成数据图表的数据, 然后赋值给一个数组,数组需要在data定义,还需要去重。 // 检查是否有相同的parameter值const hasDuplicate this.toImageArr.some(iiem > iiem.paramete…

由于找不到xinput1_3.dll,无法继续执行代码的解决方法都有哪些?

关于由于找不到xinput1_3.dll,无法继续执行代码这个问题,其实在网上经常看别人提及,要解决这个问题,还是不难的,今天小编就来给大家详细的说说关于这个问题的解决方法吧,本文会介绍多种的修复方法,下面一起…

商品数据封装接口(PHP/Java/Python)

封装 在面向对象程式设计方法中,封装是指—种将抽象性函式接口的实现细节部分包装、隐藏起来的方法 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问 要访问该类的代码和数据,必须通过严格的接口控制 封装最…

提升生产效率的关键:如何选择适合您企业的设备管理系统?

在现代工业生产中,设备管理对于提升生产效率和降低成本至关重要。一个高效的设备管理系统可以帮助企业实现设备的有效监控、维护和优化,从而提高设备的可靠性、降低停机时间,并最终提升生产效率。选择适合企业的设备管理系统可能是一个复杂的…

Vision Pro:多人XR协作这样玩才对味

早在iOS 15系统更新中,苹果就推出了SharePlay功能,该功能主要针对多人协作和社交,允许用户在FaceTime会话中一起看剧、听歌、共享屏幕。Vision Pro头显也支持该功能,允许用户共享AR图像和空间上下文信息,实现远程可视化…

LeetCode 每日一题——2178. 拆分成最多数目的正偶数之和

1.题目描述 2178. 拆分成最多数目的正偶数之和 给你一个整数 finalSum 。请你将它拆分成若干个 互不相同 的正偶数之和,且拆分出来的正偶数数目 最多 。 比方说,给你 finalSum 12 ,那么这些拆分是 符合要求 的(互不相同的正偶…

Spring Boot 中的服务发现

Spring Boot 中的服务发现 Spring Boot 是一个非常流行的 Java Web 开发框架,它提供了很多工具和组件来简化 Web 应用程序的开发。其中,服务发现是 Spring Boot 中的一个非常重要的组件,它可以帮助我们自动地发现和管理应用程序中的服务。 什…

Prometheus 时序数据

一 时序索引 Prometheus 存储的是时序数据,时间戳(timestamp)来源于服务端本地的系 统时间。Prometheus 使用 Unix 时间戳(即自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数)表示时间。 数 据 格 式 : …

C#核心知识回顾——10.List、Dictionary、数据结构、LinkedList

1.List List<int> list new List<int>(); List<String> strings new List<String>();//增list.Add(0);list.Add(1);List<int> ints new List<int>();ints.Add(0);list.AddRange(ints);//插入list.Insert(0, 1);// 位置0插入1//删//1.移…