U-net 网络

本文介绍了全卷积网络在生物医学图像处理中的应用,特别是针对Ciresan等人提出的使用滑动窗口进行像素级分类的问题。通过全卷积网络替代全连接层,解决速度慢和定位精度冲突。文章详细描述了网络结构,包括收缩和扩张路径,以及镜像边缘策略来处理大图分割。
摘要由CSDN通过智能技术生成

Daily learning 8

Q1:max pooling

A1:整个图片被不重叠的分割成若干个同样大小的小块(pooling size)。每个小块内只取最大的数字,再舍弃其他节点后,保持原有的平面结构得出 output。

notes:max pooling(最大值池化)和卷积核操作的区别:池化作用与图像中不重合区域,卷积作用与重合区域。如下图所示:

max pooling:

卷积:

1.背景与简介

       卷积网络被大规模应用在分类任务中,输出的结果是整个图像的类标签。然而,在许多视觉任务,尤其是生物医学图像处理领域,目标输出应该包括目标类别的位置,并且每个像素都应该有类标签。另外,在生物医学图像往往缺少训练图片。所以,Ciresan等人训练了一个卷积神经网络,用滑动窗口提供像素的周围区域(patch)作为输入来预测每个像素的类标签。这个网络有两个优点: 第一,输出结果可以定位出目标类别的位置; 第二,由于输入的训练数据是patches,这样就相当于进行了数据增广,解决了生物医学图像数量少的问题。
   但是,这个方法也有两个很明显缺点。
   第一,它很慢,因为这个网络必须训练每个patch,并且因为patch间的重叠有很多的冗余(冗余会造成什么影响呢?卷积核里面的W,就是提取特征的权重,两个块如果重叠的部分太多,这个权重会被同一些特征训练两次,造成资源的浪费,减慢训练时间和效率,虽然说会有一些冗余,训练集大了,准确率不就高了吗?可是你这个是相同的图片啊,重叠的东西都是相同的,举个例子,我用一张相同的图片训练20次,按照这个意思也是增大了训练集啊,可是会出现什么结果呢,很显然,会导致过拟合,也就是对你这个图片识别很准,别的图片就不一定了)。
   第二,定位准确性和获取上下文信息不可兼得。大的patches需要更多的max-pooling层这样减小了定位准确性(为什么?因为你是对以这个像素为中心的点进行分类,如果patch太大,最后经过全连接层的前一层大小肯定是不变的,如果你patch大就需要更多的pooling达到这个大小,而pooling层越多,丢失信息的信息也越多;小的patches只能看到很小的局部信息,包含的背景信息不够。
   这篇论文建立了一个更好全卷积方法。我们定义和扩展了这个方法它使用更少的训练图片但产生更精确的分割。

 

2.network

        (1) 使用全卷积神经网络。(全卷积神经网络就是卷积取代了全连接层,全连接层必须固定图像大小而卷积不用,所以这个策略使得,你可以输入任意尺寸的图片,而且输出也是图片,所以这是一个端到端的网络。)
   (2) 左边的网络是收缩路径:使用卷积和maxpooling:由多组卷积神经网络组成,每组由两层3x3 unpadded卷积层组成,每个卷积层后使用ReLU。每组之间使用size=2,stride=2的最大池化进行下采样。每组第一次卷积时,将特征图通道数增加一倍。
   (3) 右边的网络是扩张路径:使用上采样产生的特征图与左侧收缩路径对应层产生的特征图进行concatenate操作。(pooling层会丢失图像信息和降低图像分辨率且是不可逆的操作,对图像分割任务有一些影响,对图像分类任务的影响不大,为什么要做上采样?因为上采样可以补足一些图片的信息,但是信息补充的肯定不完全,所以还需要与左边的分辨率比较高的图片相连接起来(直接复制过来再裁剪到与上采样图片一样大小),这就相当于在高分辨率和更抽象特征当中做一个折衷,因为随着卷积次数增多,提取的特征也更加有效,更加抽象,上采样的图片是经历多次卷积后的图片,肯定是比较高效和抽象的图片,然后把它与左边不怎么抽象但更高分辨率的特征图片进行连接)。
   (4) 最后再经过两次反卷积操作,生成特征图,再用两个1X1的卷积做分类得到最后的两张heatmap,例如第一张表示的是第一类的得分,第二张表示第二类的得分heatmap,然后作为softmax函数的输入,算出概率比较大的softmax类,选择它作为输入给交叉熵进行反向传播训练。 

3.镜像边缘

This strategy allows the seamless segmentation of arbitrarily large images by an overlap-tile strategy.

 平常训练输入输出的feature map都是尺寸大小一致,但是为什么分割黄框要输入蓝框的数据(更大尺寸的数据)呢? 因为论文中的U-Net的输入和输出尺寸是不一致的,上图中输入时572*572,但是输出是392*392,也正符合训练黄框要蓝框大小的输入,那么问题又来了,为什么要这样做呢? 我的理解是,输入的图像其实很大,由于显存的限制,我们不能一次性训练一张很大的图,所以必然是要切割图像的。但是切割图像,分割之后合并,边缘情况可能存在误差,比如连接不上等情况。但是,如果利用周围多一圈的语义信息,一定程度上能够很好地处理这种边缘的问题,因此这样做。 那么,新的问题诞生了,角落区域的图像,可能没有周围一圈,怎么办?作者给出的做法就行,做镜像。仔细观察图,我们就会发现,图中上面和左边,有部分是关于黄框对称的,大概就是这个意思。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值