backbone模型:FCN、SRN、STN


在图像识别领域, 很多基础、已被验证有效的模型会被用作基础模型backbone,接入不同的模型中,或者输出层做一些变形/优化。 这些基本的模型常见的有: VGGNet, ResNet,STN等。

FCN网络擅长提取图像细节特征;SRN利用注意力机制提高了图像语义特征提取精度, STN网络擅长做图像矫正。

FCN网络

FCN, fully convolutional network, 全卷积网络,该网络试图从抽象的特征中恢复出每个像素所属的类别。即从图像级别的分类进一步延伸到像素级别的分类。

FCN网络在经典的vgg模型上,把最后的全连阶层全部去掉,换成卷积层。利用反卷积(deconvolution),上池化(unpooling)等上采样(upsampling)操作,将特征矩阵恢复到接近原图的尺寸, 然后对每一个位置上的像素做类别预测, 从而能够识别更清晰的物体边界。 基于FCN的检测网络, 可以用高分辨率的特征图直接预测物体的边界,特别适合不规则物体。由于FCN网络最后一层特征图的像素分辨率较高,而图文识别任务中需要依赖清晰的文字笔画来区分不同字符(特别是汉字),所以FCN网络很适合用来提取文本特征。当FCN被用于图文识别任务时,最后一层特征图中每个像素将被分成文字行(前景)和非文字行(背景)两个类别。

CNN图像分割

传统基于CNN的图像分割算法,为了对一个像素做分类,使用该像素周围每一个图像作为CNN,缺点是第一存储开销比较大,另外,计算效率比较低下,相邻的像素基本上是重复的,三是像素块大小的限制了感知区域的大小。

模型结构

FCN将传统CNN中的全连阶层转化为卷积层,在传统CNN的结构中,前面5层是卷积层,6-7层是一维向量(长度是4096),第8层也是一维向量,长度为1000,分别对应1000个类别的概率。如下图上半部分所示, 最后一层中是1000个分类的概率。但是在FCN中,将6-8层标示为卷积层,分别是(4096,1,1),(4096,1,1),(1000,1,1),这也是FCN全卷积网络名称的由来。
在这里插入图片描述
实际上,由于前面5层中多次卷积和池化pooling以后,得到的图像越来越小,分辨率越来越低。为了从分辨率低的粗略图像恢复到原图的分辨率,FCN采用了上采样(反卷积deconvolution)实现的。
在这里插入图片描述

对于第5层的输出,反卷积到原图大小需要32倍放大,除此之外还将第3层、第5层的输出也做反卷积(16倍/8倍)的上采样,结果就精细了很多。

下图是32倍、16倍和8倍上采样的结果对比。
在这里插入图片描述

FCN github资源

tensorflow 1.12.0: https://github.com/hansinahuja/Semantic-Segmentation

FCN的优缺点

  • 优点
    FCN的优点很多,首先可以接受任意大小和尺寸的输入,二是更加高效,避免了传统CNN做图像分割的重复卷积和大量存储的问题。

  • 缺点
    但是FCN的结果还是比较模糊的,而且在对像素分类后没有考虑像素和像素之间的关系,忽略了空间规整(spatial regularization)步骤,缺乏空间的一致性。

SRN 网络

什么是空间规整( spatial regularization)?

为什么要做空间规整? 因为标签之间没有标注空间信息,难以得到标签之间潜在的空间关系。

如何做空间规整?在Learning Spatial Regularization with Image-level Supervisionsfor Multi-label Image Classification一文中,作者提出了学习所有标签之间的注意力图(attention maps),挖掘标签之间的潜在关系,结合正则化的分类结果和ResNet101网络的分类结果,提高了图像分了的表现。rocks置信度从0.405提高到了0.526, sun从0.339提高到了0.519. 其他类别也有相应的提高。
在这里插入图片描述
空间规整网络(spatial regulation network, SRN)的主网络是ResNet-101,得到基本的视觉分类特征并作为SRN的输入。SRN利用注意力机制,当图像中存在某个标签的时候,更多的注意力应该放在相关的区域,从而标签的注意力图(在原图的相应位置)编码了标签对应的空间信息,结合住网络和SRN分类结果得到最终的分类置信度。
在这里插入图片描述

利用注意力机制学习空间正则信息的网络结构详图:
在这里插入图片描述

SRN网络github资源

caffe: https://github.com/zhufengx/SRN_multilabel
1.

STN网络

虽然卷积神经网络对于图像的分类能力非常强大,但是仍然受限于对输入数据本身的空间不变性,例如在OCR识别中,如果文字图像本身因为各种原因(拍照时候纸张的褶皱等)发生了扭曲,将会大大降低模型的识别正确率。空间变换网络可以显式地对网络中的数据进行空间变换,作为一个组件插入到现有的卷积架构中,在模型中学习平移、缩放、旋转和非刚性扭曲。
下面我们来看看STN(spatial transformer network)是如何通过训练一个网络实现空间变换的。

在这里插入图片描述

空间变换器

一个空间变换器可以分为:
1) localization network: 用来计算空间变换的参数 θ \theta θ
2)网格生成器 grid generator: 生成input map U到output map V各个像素点的对应关系 T θ T_{\theta} Tθ
3)采样器 sampler: 根据input map U 和 T θ T_{\theta} Tθ 生成最终的output map。

localisation network

localization network由一系列隐藏网络层(全连接或者卷积网络加回归层组成), θ \theta θ

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值