图像分割之U-Net

本文深入探讨了U-Net在图像分割中的应用,解释了网络优化策略,如使用卷积代替池化层以保持位置信息,以及skip connection如何缓解梯度消失问题。还介绍了U-Net++的改进,它增加了更多的skip connection来提升细节保留。最后,提到了使用PyTorch实现U-Net的方法,并展示了效果。
摘要由CSDN通过智能技术生成

利用U-Net处理图像分割问题

图像分割应用场景

常用于医学上的影像分割
在这里插入图片描述
数据
在这里插入图片描述
标签

U-Net

顾名思义,因为网络结构像字母U,所以取名为U-Net,网络采用了FCN(全卷积神经网络),所以整个网络可以进行多尺度训练

网络优化

网络采用了最大池化进行下采样,一般的我们认为maxpool、padding会破坏图片的位置信息,所以可以用卷积层代替池化层,这样有利于保护位置信息,并且增加网络容量,而上采样不用转置卷积,因为转置卷积会产生象棋格效应,这对于图像语义信息产生了影响,所以可以采用邻近插值法代替转置卷积,由于随着网络层次的加深会产生梯度弥散问题,所以加了skip connection,可以有效地缓解这一问题,并且skip connection可以让信息流动更加通畅,这也接下来U-Net的改进版本U-Net++的提出

skip connection

一般的像这种稠密信息转稠密信息,我们都可以把网络设计成类似于哑铃的结构(编解码结构),图片经过下采样过后,留下的是图片的轮廓信息,比较抽象和高级,那么可以看成是总结,而加了skip connection可以看成是增加细节部分,这也是U-Net比传统卷据FCN好的地方,而到了U-Net++作者大量的使用了skip connection这种残差结构

U-Net++

在这里插入图片描述

利用pytorch实现U-Net

import torch.nn as nn
import torch
from torch.nn import functional

#把常用的2个卷积操作简单封装下
class DoubleConv(nn.Module):
    def __init__(self, in_ch, out_ch):
        super(DoubleConv, self).__init__()
        self.conv = nn.Sequential(
            nn.Conv2d(in_ch, out_ch, 3, padding=1,stride=1),
            nn.BatchNorm2d(out_ch), #添加了BN层
            nn.ReLU(inplace=True),
            nn.Conv2d(out_ch, out_ch, 3, padding=1,stride=1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值