深度学习:语义分割网络U-Net

语义分割简介

语义分割是比物体检测更狠的图像识别算法,语义分割不满足于仅仅用一个检测框框出图片中的物体,而是将图片中的每个像素都进行划分,标出其属于什么物体,例如下方最右侧的示例,红色标记表示车辆、绿色标记表示道路,紫色标记表示建筑……
在这里插入图片描述
下方是个更粗略的语义划分,用于划分车辆、路面和建筑:
在这里插入图片描述
可以发现,我们的输出矩阵是与输入矩阵同等大小的,区别在于输入矩阵中的元素是每个像素的颜色,而输出矩阵中是每个像素所属物体的标记。而学习过CNN就知道,随着网络加深,矩阵的高和宽都会缩小,而通道数增加。但对于语义分割问题,我们要求输出矩阵的宽和高与原矩阵一致,这就要求我们实现一种运算,使得输出矩阵比输入矩阵更大,这样才能将“缩水”的矩阵复原。
在这里插入图片描述
这种运算就叫做——转置卷积。

转置卷积

为了演示转置卷积,这里以 f = 3 , p = 1 , s = 2 f=3,p=1,s=2 f=3,p=1,s=2,输入矩阵大小为 2 × 2 2\times 2 2×2为例:

我们将输入矩阵的每个元素都拿出来,与过滤器矩阵上的元素相乘,得到一个与过滤器矩阵等大的中间矩阵,将其置于与输入矩阵中元素相应的位置,注意因为我们采用了 p = 1 p=1 p=1的填充(虽然但是,我觉得此时应该不叫填充而叫擦除),我们会忽略最外围一圈的计算值:
在这里插入图片描述
接下来,我们取右上角的元素 1 1 1继续运算,因为 s = 2 s=2 s=2,所以这次得到的矩阵相较第一个矩阵向右移动了两格,两个中间矩阵重叠的部分元素直接相加:
在这里插入图片描述
左下角元素的运算类似,计算出中间矩阵放到向下两格的对应位置:
在这里插入图片描述
右下角同理:
在这里插入图片描述
将四个中间矩阵放好,重叠元素相加后,我们就得到了输出矩阵:
在这里插入图片描述
这显然是一个奇怪的运算,不过在众多输入小矩阵输出大矩阵的运算中,转置卷积能被研究者与工程师们接收,充分说明了其在深度学习与神经网络中是一个有效的运算。总之,通过学习转置卷积过滤器中的参数,我们能得到一个优秀的模型。

U-Net架构

在这里插入图片描述
上图展示的就是U-Net的大体架构(可以发现这个结构图呈一个U型),蓝色方块为矩阵规模的粗略展示,竖直方向上为矩阵的高,水平方向上为矩阵的通道数,不同的箭头表示不同的矩阵运算。在前半程,网络的运算与普通的CNN类似,做若干等大卷积后接最大池化,如此反复几次,得到U型最底部的中间矩阵。

而在后半程,除了绿色箭头代表的转置卷积产生更大的矩阵,我们需要注意灰色箭头代表的跳跃连接。跳跃连接将前半程计算出的矩阵(深蓝色)与后半程转置卷积计算出的矩阵(浅蓝色)连接在一起(因为两个矩阵的高和宽是相同的,所以在通道维度上组合在一起)。之后,组合出的矩阵再进行连续卷积接最大池化,重复若干次,最后通过若干个 1 × 1 1\times 1 1×1的卷积,得到一个跟初始输入矩阵等大的输出,其通道数与我们想要划分出的种类数相同。我们取所有通道中概率最高的通道,认为该通道对应的语义就是这个像素点属于的语义,这样就完成了语义分割。

跳跃连接的好处在于,它将前半程中偏于具象的图像信息,与后半程处理出来的偏向抽象的特征信息结合在一起,给后面的网络更充分的信息,有利于网络做出正确的划分。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值