图像分割实战-系列教程11:U2NET显著性检测实战3

在这里插入图片描述

🍁🍁🍁图像分割实战-系列教程 总目录

有任何问题欢迎在下面留言
本篇文章的代码运行界面均在Pycharm中进行
本篇文章配套的代码资源已经上传

U2NET显著性检测实战1
U2NET显著性检测实战2
U2NET显著性检测实战3

6、上采样操作与REBNCONV

def _upsample_like(src,tar):

    src = F.upsample(src,size=tar.shape[2:],mode='bilinear')

    return src

使用双线性插值进行上采样操作

class REBNCONV(nn.Module):
    def __init__(self,in_ch=3,out_ch=3,dirate=1):
        super(REBNCONV,self).__init__()
        self.conv_s1 = nn.Conv2d(in_ch,out_ch,3,padding=1*dirate,dilation=1*dirate)
        self.bn_s1 = nn.BatchNorm2d(out_ch)
        self.relu_s1 = nn.ReLU(inplace=True)
    def forward(self,x):
        hx = x
        xout = self.relu_s1(self.bn_s1(self.conv_s1(hx)))
        return xout

定义二维卷积、二维池化、Relu,然后进行对应的前向传播

7、各个残差Unet比较

在 U²-Net 中,RSU7, RSU6, RSU5, RSU4, 和 RSU4F 是用于构造网络不同层级的模块。它们共同构成了 U²-Net 的多层次特征提取体系

  1. RSU7 (Residual U-Block 7):

    • RSU7 是最深层的模块,具有最大的感受野,用于网络的最初阶段,用于从输入图像中提取基础和全局特征。在 U2NET 架构中,RSU7 作为第一个阶段使用。
  2. RSU6, RSU5, RSU4:

    • 这些模块是 U²-Net 架构中的中间层。RSU6, RSU5, RSU4 的主要区别在于它们的深度和感受野的大小。每个模块都比前一个模块浅一点,感受野也稍小。这些层用于提取越来越具体的特征,随着网络的深入,这些特征越来越侧重于局部细节。
  3. RSU4F (Residual U-Block 4-Full):

    • RSU4F 是一种特殊的 RSU 模块,它不使用最大池化层来减少特征图的尺寸,而是使用不同膨胀率的卷积来增大感受野(即空洞卷积),RSU4F 用于网络的深层,用于捕捉更细粒度的特征。

在 U²-Net 的结构中,这些 RSU 模块按照从 RSU7RSU4F 的顺序排列。

在编码器阶段,随着层级的增加,模块逐渐变得更浅,专注于更细节的特征提取。

在解码器阶段,这些模块的输出与对应编码器阶段的输出进行融合,通过上采样逐步恢复图像的空间维度,同时保持了特征的丰富性。

总结来说,RSU7RSU4F 的不同主要在于它们的深度(层数)和膨胀率,这影响了它们的感受野大小和特征提取的具体性。

8、损失函数

在前面的网络架构中,我们可以看到一共有d0到d6共7个输出,每一步都有一个对应的输出,每一步都可以计算损失,损失函数:

d0, d1, d2, d3, d4, d5, d6 = net(inputs_v)
loss2, loss = muti_bce_loss_fusion(d0, d1, d2, d3, d4, d5, d6, labels_v)
def muti_bce_loss_fusion(d0, d1, d2, d3, d4, d5, d6, labels_v):

	loss0 = bce_loss(d0,labels_v)
	loss1 = bce_loss(d1,labels_v)
	loss2 = bce_loss(d2,labels_v)
	loss3 = bce_loss(d3,labels_v)
	loss4 = bce_loss(d4,labels_v)
	loss5 = bce_loss(d5,labels_v)
	loss6 = bce_loss(d6,labels_v)

	loss = loss0 + loss1 + loss2 + loss3 + loss4 + loss5 + loss6
	print("l0: %3f, l1: %3f, l2: %3f, l3: %3f, l4: %3f, l5: %3f, l6: %3f\n"%(loss0.item(),loss1.item(),loss2.item(),loss3.item(),loss4.item(),loss5.item(),loss6.item()))

	return loss0, loss
  1. d0到d6是U2Net的每一步输出,labels_v是标签 这里的标签都是完全相同的数据
  2. 标签即原始输入图像对应完全一样大小的灰度数据,里面只区分了需要分割的前景和背 此外值得一提的是PyTorch框架的
  3. nn.BCELoss损失函数具有非常好的泛化能力,不管你是像素级别的矩阵,还是单个值,都是使用完全一样的2分类
  4. 对多步进行监督的训练,就叫做多监督训练:能够提高模型对不同尺寸的学习、多步输出有助于改善网络中的梯度流动、同类型和复杂度的数据时更加灵活和适应性强、有助于捕捉从低级到高级的特征

U2NET显著性检测实战1
U2NET显著性检测实战2
U2NET显著性检测实战3


http://www.niftyadmin.cn/n/5306556.html

相关文章

Linux ssh 实现远程免密登录

一、背景 我搭建了一个 zookeeper 集群,写了一个 shell 脚本来控制集群的启动和关闭,但是我发现每次我执行 shell 脚本的时候,都需要我输入各个服务器的密码才可以运行,感觉很麻烦。shell 脚本里面连接其他服务器用的就是 ssh 的方…

AntV-G6 -- 将G6图表应用到项目中

1. 效果图 2. 安装依赖 npm install --save antv/g6 3. 代码 import { useEffect } from alipay/bigfish/react; import G6 from antv/g6;const data {id: root,label: 利息收入,subLabel: 3,283.456,ratio: 3,children: [{id: child-a,label: 平均利息,subLabel: 9%,ratio:…

django websocket实现聊天室功能

注意事项channel版本 django2.x 需要匹配安装 channels 2 django3.x 需要匹配安装 channels 3 Django3.2.4 channels3.0.3 Django3.2.* channels3.0.2 Django4.2 channles3.0.5 是因为最新版channels默认不带daphne服务器 直接用命令 python manage.py runsever 默认运行的是w…

在vue3中使用Cesium保姆篇

1.首先新建一个vue项目 Vue.js - 渐进式 JavaScript 框架 | Vue.js 可以直接到管网中查看命令通过npm来创建一个vue3的项目 然后通过命令下载1.99的版本的cesium和plugin npm i cesium1.99 vite-plugin-cesium 下载完了以后 2.引入cesium 首先找到vue的vite.config.js …

C#上位机与欧姆龙PLC的通信10----开发专用的通讯工具软件(WPF版)

1、介绍 上节开发了一个winform版的通讯测试工具,这节再搞个wpf版的,wpf是什么?请自行百度,也可以看前面的博客,WPF真入门教程,wpf的界面效果是比winform漂亮,因为wpf使用了web项目中的css样式…

2024年最新51单片机+Proteus嵌入式开发入门实战完整版教程

我们为什么要学嵌入式开发? 嵌入式系统是一种专为特定任务或特定应用设计的计算机系统。与通用计算机系统不同,嵌入式系统通常具有更小的体积、更低的功耗和更强的可靠性。由于这些特点,嵌入式系统广泛应用于工业控制、医疗设备、智能家居、…

kotlin isEmpty/isNotEmpty/isNullOrEmpty和isBlank/isNotBlank/isNullOrBlank

kotlin 中 isEmpty :如果判断的字符为空返回值返回true否则返回false 它的源码 kotlin.internal.InlineOnly public inline fun CharSequence.isEmpty(): Boolean length 0 length 0: 首先检查字符序列的长度是否为 0。如果长度为 0,则表明这个字…

使用爬虫爬取热门电影

文章目录 网站存储视频的原理M3U8文件解读网站分析代码实现 网站存储视频的原理 首先我们来了解一下网站存储视频的原理。 一般情况下&#xff0c;一个网页里想要显示出一个视频资源&#xff0c;必须有一个<video>标签&#xff0c; <video src"xxx.mp4"&…