U2net:Going deeper with nested u-structure for salient object detection

u2net是目前stable-diffusion-webui默认的抠图算法,但是在电商图场景实测下来,效果是很一般的。

1.introduction

1.能否设计一个新的网络用语SOD,允许从头训练;2.保持高分辨率特征图的同时网络更深。U2net是一种为SOD设计的两级嵌套U结构,不使用图像分类的预训练骨干网络,在底层设计了一种新颖的Residual U-blocks,能够提取多尺度特征而不降低特征图分辨率,在顶层,有一个类似UNET的结构,每个极端都由RSU填充。U2net 176.3M,U2netp 4.7Mb。

2.Proposed method

2.1 Residual U-blocks

局部和全局特征非常重要,大小为1x1或3x3的小型卷积是常用的特征提取组件,浅层的输出特征图仅包含局部特征,因为1x1或3x3卷积的感受野太小,无法捕获全局信息。为了在浅层的高分辨率特征图中获得更多的全局信息,最直接的想法是扩大感受野。

图2中d用了inception结构,通过扩张卷积来扩大感受野,受unet启发,RSU用于捕捉阶内多尺度特征,RSU和残差连结最大的不同在于,RSU使用了一个类似于UNET的结构来替换单一流的普通卷积,并用一个权重层转换的局部特征来代替原始特征。这种设计变化使得网络可以直接从每个残差块中提取多尺度的特征,由于大部分操作是在下采样的特征图上进行的,因此U结构带来的计算开销是很小的。

2.2 Architecture of u2net

U2net是嵌套的unet,不是级联的,是一个2级嵌套结构,其顶层由11个stage组成的大型unet,每个stage是一个RSU,6个阶段的编码器,5个解码器和一个显著图融合模块。

2.3 Supervision

交叉熵监督sup0-6,

python 复制代码
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.data.item(),loss1.data.item(),loss2.data.item(),loss3.data.item(),loss4.data.item(),loss5.data.item(),loss6.data.item()))

    return loss0, loss

4.Experimental results

4.1 Datasets

DUTS-TR:10533张图

相关推荐
eastyuxiao4 小时前
思维导图拆解项目范围 3 个真实落地案例
大数据·运维·人工智能·流程图
风落无尘5 小时前
《智能重生:从垃圾堆到AI工程师》——第五章 代码与灵魂
服务器·网络·人工智能
冬奇Lab5 小时前
RAG 系列(八):RAG 评估体系——用数据说话
人工智能·llm
landyjzlai6 小时前
蓝迪哥玩转Ai(8)---端侧AI:RK3588 端侧大语言模型(LLM)开发实战指南
人工智能·python
ZhengEnCi8 小时前
05-自注意力机制详解 🧠
人工智能·pytorch·深度学习
前端程序媛-Tian8 小时前
前端 AI 提效实战:从 0 到 1 打造团队专属 AI 代码评审工具
前端·人工智能·ai
weixin_417197058 小时前
DeepSeek V4绑定华为:一场飞行中换引擎的国产算力革命
人工智能·华为
翼龙云_cloud9 小时前
阿里云代理商:阿里云深度适配DeepSeek V4让中小企业 AI零门槛上云
人工智能·阿里云·云计算·ai智能体·deepseek v4