zoukankan      html  css  js  c++  java
  • 图像识别前沿知识

    在图像识别分类算法中,非常盛行的是VGG16和VGG19, VGG16中池化层不仅能增大上层卷积核的感受野,而且能聚合背景同时丢弃部分位置
    信息。然而,语义分割方法需对类别图谱进行精确调整,因此需保留池化层中所舍弃的位置信息。于是研究者提出编码器-解码器结构解决这个问题。
    其中,编码器使用池化层逐渐缩减输入数据的空间维度,而解码器通过反卷积层等网络层逐步恢复目标的细节和相应的空间维度。从编码器到解码器
    之间,通常存在直接的信息连接,来帮助解码器更好地恢复目标细节。在这种方法中,一种典型结构为SegNet网络。
    编码器部分使用的是VGG16的前13层卷积网络,丢弃了完全连接的层,为更快的计算,可以尝试使用Imagenet上的预训练,
    有利于在最深的编码器输出处保留较高分辨率的特征图。与其他最近的架构[FCN][DeconvNet]相比,这也减少了SegNet编码器
    网络中的参数数量(从134M减小到14。7M)。每个编码器由卷积层、批归一化层、RELU组成,之后,执行具有2×2窗口和步幅2(
    非重叠窗口)的最大池化,输出结果相当于系数为2的下采样。最大池化用于实现输入图像中小空间位移的平移不变性,子采样导致
    特征图中每个像素的大输入图像上下文(空间窗口)。由于最大池化和子采样的叠加,导致边界细节损失增大,因此必须在编码特征
    图中在sub-sampling之前捕获和储存边界信息,为了高效,我们只储存了max-pooling indices,原则上,对于每个2×2池化窗口,
    这可以使用2位来完成,因此与浮动精度的记忆特征图相比,存储效率更高。正如我们在本文稍后展示的那样,这种较低的内存存储
    会导致精确度的轻微损失,但仍然适用于实际应用。
    每个编码器层具有对应的解码器层,因此解码器网络也具有13层。最终解码器输出被馈送到多级soft-max分类器以独立地为每个
    像素产生类概率。解码器网络中的解码器使用来自对应的编码器特征图的存储的最大池化索引来上采样至其输入特征图。此步骤产生
    稀疏特征图。然后将这些特征图与可训练的解码器滤波器组卷积以产生密集的特征图。然后是BN。注意,最后一个解码器产生一个多
    通道的特征图,而不是3通道的(RGB)。然后输入给一个softmax分类器。这个soft-max独立地分类每个像素,soft-max分类器的输出
    是K通道图像的概率,其中K是类的数量。预测的分割对应于在每个像素处具有最大概率的类。
    综合起来SegNet框架共有26卷积层,2层卷积1层池化、2层卷积1层池化、3层卷积1层池化、3层卷积1层池化、1上采样层3池化层、
    1上采样层3池化层、1上采样层3池化层、1上采样层2池化层、1上采样层2池化层、1上采样层2池化层输出层
    对传统的26层的segnet网络进行修改,进研究发现pool4和pool5两层虽然扩大了两倍视野,减少了计算时候的参数,但是这样的做法会造成
    大量图像信息消失,虽然用upsampling上采样的方法恢复了图像的尺寸但是图像细节的恢复很成问题,对此我们对pool4和pool5的步数改
    成1,让图像尺寸保持不变,信息不损失,然后在网络结构中多原来的6个对称的卷级层加入dilation---空洞卷积,目的是扩大网络的视野,对宏
    观特征进行提取,发现改进后的网络在准确率上比segnet提高了10个百分点,在运行时间上继承了segnet的优异性

  • 相关阅读:
    [译] Python 2.7.6 标准库——详见github
    [译] Python 2.7.6 标准库——15. 通用操作系统服务
    [译] Python 2.7.6 标准库——字符串
    Spark Context初始化
    Spark启动程序:Master
    Spark 0.9.0启动脚本——bin/compute-classpath.sh
    Spark 0.9.0启动脚本——bin/spark-class
    游戏开服 报一些 ip 设置 数据格式的异常,但断点明明都是数字 没问题的
    一个不错的shell脚本学习网址-很全又很简单的课程
    国外的一个代码 仓库 github --- 里面类似一个svn 的代码仓库
  • 原文地址:https://www.cnblogs.com/xzm123/p/9229361.html
Copyright © 2011-2022 走看看