源码:https://github.com/MrGiovanni/UNetPlusPlus

一、概述

图像分割与目标检测的区别:

图像分割一般分为语义分割和实例分割

1.1语义分割

        语义分割就是把图片每个像素都打上标签(这个像素点是人、树、背景等),如下图,这就是一些语义分割的例子。它只区分类别,不区分个体。

        它要对每个像素点进行二分类,区别这个点是前景还是背景。

1.1.1损失函数

loss=-PosWeigh\times y_{true}log(y_{pred})-(1-y_{ture})log(1-y_{pred})

其中PosWeight是一个权重项

PosWeight=\tfrac{NumNeg}{NumPos}

        权重项描述了前景与背景的比例,一般情况就是大部分都是背景,前景很少,这时每个像素点的重要程度就完全不一样,越少的越重要

        改进:样本也有难易之分,就如边缘处是较为困难的,那么给这些点加上一些权重(类似于注意力机制),因为一般情况下,背景点容易识别,前景点也容易识别,但是难的是边缘(轮廓)的点,边缘上的点不容易被识别出来,所以给其加上高权重:Gamma次方(这并不是在语义分割时改进,大部分任务都要改进)。

        Gamma通常设置为2,这个gamma就是可以理解为一个样本难易程度的一个权值。再加上alpha(就是正负样本比的权重PosWeight)就构成了这个损失函数

1.1.2 IOU计算

        如下图,计算dog分类时,IOU就是交集比并集。这里交集是801,并集就是他们之和,但是多加了一边801,所以要减去801

MIOU:就是所有类别的IOU的平均值,可以作为实际评估的标准。

1.2实例分割

        实际应用中,实例分割用 的比较多。它不光要区别类别,还要区别类别中的个体。如下图,他们不仅是人,而且还是不同的人。

二、U-net网络

2.1.U-net原版

        整体结构如下图(像一个字母"U"),它是2016年十分火的产物,在医学领域,细胞分割做的非常好。虽然是几年前的产物了,但是现在依然在使用,因为越简单的东西,说不定效果越好。起初是做医学方向的,所以U-net常用于做小目标的检测分割。

        观察上面的结构,无论是检测还是分割,拿到输入图像,都是进行conv提取特征,并且可以看出是“越来越扁”,即特征图个数越来越多,图像的H,W越来越小(编码过程),这就是下采样的过程,我们可以知道,分割任务,输入和输出的图像大小必须是一样的,所以要进行上采样(解码过程)。并且进行特征融合,进行“拼接”(拼接后维度变高,在进行一次下采样,卷积即可),“加法”也有。

        这么简单的结构就能把分割任务做好。

2.2U-net的改进,U-net++

结构如下

        就是下采样Down-Sampling(卷积步长为2),上采样Up-Sampling(线性插值)。特征融合相比于之前更加复杂。每个“球”都与前面的所有的“球”都有关联。

        Deep Supervision同一级的“球”大小相同,可以进行比较。加上损失函数即可判断。这个方法已经是很常见的事情了,在各个领域都有应用。

        可以把最后一层,将其剪枝掉,也是一个完整的结构,可以得出结果。只是效果可能会有折扣,但是照样能用,但是会提示速度。

2.3U-net+++

        如上图,先进行下采样,然后拿出中间的某一个(这里是X3)进行conv,大于它的先进行maxpooling整合,再conv得到X3特征图的大小;小于它的进行bilinear upsample插值,得到都是x3特征图大小的特征图。 最终得到64*5=320全部特征。

三、U²-net网络

3.1 简介

原论文:U2-Net: Going Deeper with Nested U-Structure for Salient Object Detection

       本文提出了一种新颖的深度网络架构U²-Net,旨在进行显著目标检测。该架构采用双层嵌套U结构,能够捕获不同尺度的上下文信息,同时在增加深度的同时保持低计算成本。通过设计残差U块,U²-Net可从头开始进行训练,且无需依赖图像分类的预训练骨干。在六个显著目标检测数据集上,U²-Net展现了竞争力的性能,提供了基于不同环境配置的两个模型:常规版U²-Net和小型版U²-Net+,后者在资源受限的环境中表现优异。

  • U²-Net是为显著目标检测设计的双层嵌套U结构深度网络。
  • 通过引入ReSidual U块(RSU),U²-Net能够提取不同尺度的上下文信息。
  • 网络能从头训练,避免了使用图像分类任务的预训练骨干,大幅提升了灵活性。
  • 尽管增加了深度,U²-Net仍然保持较低的计算成本,运行速度达到30 FPS。
  • 提供了两种模型:U²-Net(176.3 MB,30 FPS)和小型版U²-Net+(4.7 MB,40 FPS)。
  • 在六个显著目标检测数据集上,U²-Net在各种性能指标上表现优于其他20个先进方法。
  • U²-Net能够有效处理复杂背景和多种目标,提高了目标检测的准确性和鲁棒性。

3.2 网络结构

        U²-Net是一种用于显著目标检测的深度网络架构,其主要特点是采用了双层嵌套的U结构。

        底层(内层):由多个残差U块(ReSidual U-block, RSU)组成。每个RSU块能够提取多尺度的上下文信息,同时保持高分辨率的特征图。RSU块的设计允许在每个阶段提取局部和全局特征,增强了网络对不同尺度信息的捕捉能力。

        顶层(外层):是一个类似U-Net的结构,包含多个阶段,每个阶段由一个RSU块填充。通过这种嵌套结构,U²-Net能够更有效地提取和聚合不同层次的特征。

 残差U块(RSU)RSU块由三个主要部分组成:

  1. 输入卷积层:将输入特征图转换为中间特征图,进行局部特征提取。
  2. U-Net式对称编码-解码结构:从中间特征图中提取多尺度上下文信息,并通过逐步下采样和上采样来保持高分辨率特征。
  3. 残差连接:将局部特征与多尺度特征相融合,增强特征表达能力。

网络架构

  • 编码器:包含六个阶段,每个阶段使用不同高度的RSU块(如RSU-7、RSU-6等),以适应输入特征图的空间分辨率。
  • 解码器:与编码器对称,逐步上采样并结合来自编码器的特征图,以生成最终的显著性概率图。
  • 显著性图融合模块:在解码器的最后阶段,生成多个侧输出的显著性概率图,并通过融合操作生成最终的显著性图。

3.3 编码器

        阶段划分:编码器由六个阶段(En 1 到 En 6)组成,每个阶段的功能是逐步提取和编码输入图像的特征。

RSU块:每个阶段使用不同高度的RSU块,具体配置如下:

        En 1:使用RSU-7,能够提取较大尺度的特征。

        En 2:使用RSU-6,继续提取中等尺度的特征。

        En 3:使用RSU-5,进一步提取细节特征。

        En 4:使用RSU-4,专注于更细粒度的特征。

​​​​​​​        En 5 和 En 6:由于特征图的分辨率较低,使用RSU-5,避免过度下采样导致有用信息的丢失。

         特征提取与上下文信息:多尺度特征提取:通过RSU块,编码器能够在不同阶段提取多尺度的特征,增强了对局部和全局信息的捕捉能力。这种设计使得U²-Net能够有效处理复杂背景和多种目标。高分辨率保持:与传统的深度网络不同,U²-Net的编码器在增加深度的同时,保持了特征图的高分辨率,避免了因下采样过多而导致的细节丢失。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐