• From Image-level to Pixel-level Labeling with Convolutional Networks理解


    请各位大牛多多交流,发现理解不对的地方欢迎指正

    title:

    From Image-level to Pixel-level Labeling with Convolutional Networks CVPR 2015

    contribution:

    •Weakly supervised
    •Put more weight on pixels which are important for classifying the image
    background:
    •Object segmentation
    •Position, pose, lightning,texture,geometrical form and background
    •Limited in the amount of available training data
    •CNN disadvantage :a large number of fully-labeled dataset for training
    •Training >> test dataset
    method:
    •MIL: More than one pixels matching the image
    •Feature extractor:overfeat :fisrt layer of CNN on imagenet
    •Max classification over training set
    •Extra layer:put more weight on important pixels
    流程图如下:
    图 1流程图
    其中灰色的层是只在训练过程中存在的,在test过程不需要
    Related work:
    •MIL:failed to model relationship between superpixels
    •Multiple-image model
    •A family structured model
    •Transfer learning: a large data set,a small data set
    •Our: features from imagenet
    • weakly supervised:only image level annotation to pixel ones
    图二:整体架构图
     
    这个框架分为训练和测试两个部分,是不一样的结构。
    训练:
    通过CNN提取的feature map,然后进行聚合,把Pixel level 整合到image level,整合的过程:使得属于相应类的像素的分数高。这也是本文的创新点
    测试:
    测试集采用POSCAL,测试过程的结构没有整合层,但是增加了先验层,提高TP,降低FP。
    下面是训练过程的具体的详细结构
    图三:训练神经网络结构图
    训练的过程中,首先利用已有的overfeat结构作为feature extractor,计算出feature planes之后,再经过四层的segmentation net,这四个seg net
    均采用了ReLU激活函数,并且采用了dropout策略防止过拟合。输出是C+1个h*w的score image;经过聚合层,映射到image level,聚合层后面一节
    详细介绍,输出是C+1维的向量,每个元素是该类别的条件概率。
    上面的过程可以看出来,aggreg层是本文的创新点,这个层到底是如何把像素和image转换的呢?
    请看下图:
    图四:聚合层的详细流程
    从K个类里面算出来K个图片,图片中每一个像素都是在当前点的位置的像素属于第K类的分数,用什么函数把图像转化为一个值呢,
    这个函数要同时满足,当这个图象属于第I个类的时候,能够使得这个值最大。
    首先想到的是,把这个图像的值都加起来,存在的问题是,平均化,没有差异。
    然后想到了聚合层实际上是相当于一般cnn的mini-batch的max pooling层,max pooling层的像素点都与input image的sub patch相关,
    于是想到了把最大的score加起来。这个函数存在的问题是,需要很长时间才能收敛。
    作者不知道为何想到了convex 优化中的平滑函数,这个函数有很好的性质,能够让分数高的像素权重也高。
    这一层的参数确定用的是softmax回归。
    训练好相应的模型之后,就要用测试数据测试了
    测试过程如下图:
    图五:推理过程图
     
    首先输入要测试的数据,经过overfeat6层卷积,形成上图中的pi.j(K)的图像,有然后与IPL相乘,得到后面的y',最后,与
    smooth prior卷积,形成最后面的结果,输出,smooth prior能够输出平滑的分割结果。
    测试过程增加了两种先验经验的约束层,来达到高的准确率。
    global:image level prior:从训练的图像中,初步分割结果的每个点属于哪类概率乘以该类在训练过程中出现的概率。
    smooth:用了三种方式增加TP,降低FP,分别是,超像素初步分割,bing计算box,累加出现在bounding Box中的次数。
    这两种方式的好处是,强制低概率的被标记为背景,保证局部的一致性。
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    mysql千万级数据量根据索引优化查询速度
    Centos 7 开放查看端口 防火墙关闭打开
    Spring-Quartz 配置执行时间参数
    Curl命令查看请求响应时间
    Centos 7 安装 Mongodb
    配置Docker加速器
    TCP端口状态说明ESTABLISHED、TIME_WAIT
    Maven依赖项Scope属性设置含义
    实战JAVA虚拟机 JVM故障诊断与性能优化(十)---字节码的执行
    代理模式(Proxy)_java实现
  • 原文地址:https://www.cnblogs.com/sodf/p/4569887.html
Copyright © 2020-2023  润新知