测试的是Cifar10数据集,采用VGG模型的网络参数是[32, 'M', 64, 'M', 128, 128, 'M', 256, 256, 'M', 256, 256],准确度大概在90.6左右

1、将输入图片分割为左右两部分,分别进行卷积运算,最后全连接层再将两部分结合在一起,最后观察准确度。准确度大概在88.8左右。

开始时分析,这样只是中间的部分信息没有进行融合,后面再去思考的时候发现是  对于单个卷积核而言,左右是不同的,这样的话,提取的特征就会有所偏向。

2、将channel的数目减半分为两个,在最后的时候将两个网络cat在一起,准确度大概在88.5左右。应用上Knowledge distrilling的知识,能把准确度提高1%。

3、将channel数目减半,并且将图片分割为左右,上下,四个部分,最后在cat在一起。

准确度在88.0左右。

4、如果将图片分为左右两部分,进行卷积时使用相同的卷积核,最后再cat在一起,最后的准确度在85.7左右,明显要低于使用不同的卷积核。

5、如果将图片分为左右两部分,分别进行卷积运算,两部分是不同的卷积核,在最后两层卷积的时候将两部分cat在一起卷积,准确度在89.5左右。

6、将图片分为上下两个部分,分别进行卷积,两部分是不同的卷积核,但是会在每层卷积-BN-ReLU之后,交换分界处的信息。准确度在90.5左右。

7,将图片分为上下两个部分,进行卷积,两部分是相同的卷积核,相同的BN层参数,会在每层卷积-BN-ReLU之后,交换分界处的信息,准确度在90.6左右。 (这种方式和标准的VGG在计算上是相同的)

8、将图片分为上下两个部分,分别进行卷积,但是上下两部分使用相同的BN层参数,会在每层卷积-BN-ReLU之后,交换分界处信息,准确度在70.3左右。(准确度是最低的)

下面用以记录自己的部分分析:

所谓的权值共享,一个个3×3的卷积核,不仅仅是降低了计算量这么简单,还有一个重要的作用是提高了全局感受能力,也许并没有空洞卷积之类的,但是对于单个卷积核而言,重要的整张图所对应的卷积核是相同的。如果一张图中,一部分对应一个卷积核,那么所谓的全局感知能力就会下降。也许在卷积核的感知区域还有文章可做。

再次思考一下上面分割为上下两个部分,使用不同的卷积核,不同的BN层数,交换分界处信息的情况。仔细思考这个分界处的信息是否有足够的依据,毕竟是不同的卷积核提取的信息,如果将feature map看作是特征,那么就相当于将不同的上下特征局部信息进行融合。关键这种融合会改变原来的特征,产生新的特征,也许这新的特征是不正确的。也许需要上下这些特征去匹配交界处的相似性。

现在CNN中的卷积计算可以看作是当前计算机视觉中最为关键的部分了,这种对图像去提取很多的特征,构成一组特征图,再根据这些特征图在图与图之间进行融合相加产生新的特征,不断的重复这样的操作,同时使用maxpooling降低维度信息,最后完成了特征映射。

想一下MobileNet这种所谓的深度卷积核逐点卷积,深度卷积完成的是对于单个特征图的局部感知和全局感知,因为这个过程中使用的是3×3卷积核对于整个feature map进行卷积,逐点卷积完成的是单个特征图的全局感知和特征图组的信息融合。

之前自己做过将CNN的feature map在H和W两个维度做一些平移之类的,然后再进行正常的卷积操作,最后的准确度没有提高,当时想的是这样可以扩大局部感受野,相当于把卷积核扩大了,但是事实并不是这样的。如果把卷积核扩大,是对于单个特征图而言的,能够保证全局感知的,而在H和W两个维度做一些平移之类的,相当于在feature maps的不同H\W位置做了信息融合,这种位置不对应的信息融合破坏了特征信息。再来思考ResNet、Cat这种操作,为什么能够行得通,因为它们是对于整个feature map所做的特征维度的操作,并且还保证了特征位置的统一性。而BN层这种层是对于单个特征所做的变换,是为了让特征内部的数据具有更好的分布特性。

CNN 分割的更多相关文章

  1. Sklearn——SVC学习笔记(图像分割)

    新年第二更. 很长时间前就想总结一下用SVC来做图像分割的方法了,方法实现了,但是一直没有总结,今天再来回顾一遍. 首先介绍一下.今天要总结的图像分割其实属于像素级分类,其输出是把图像按照不同的类别逐 ...

  2. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

    摘要 点云是一种重要的几何数据结构类型.由于其不规则的格式,大多数研究人员将此类数据转化为常规的三维体素网格或图像集合.然而,这使数据变得不必要的庞大,并导致问题.在本文中,我们设计了一种新型的直接处 ...

  3. CNN结构:场景分割与Relation Network

    参考第一个回答:如何评价DeepMind最新提出的RelationNetWork 参考链接:Relation Network笔记  ,暂时还没有应用到场景中 LiFeifei阿姨的课程:CV与ML课程 ...

  4. 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别

    由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013+Python2.7.12环境下的C ...

  5. 《Benign and maligenant breast tumors classification based on region growing and CNN segmentation》翻译阅读与理解

    注明:本人英语水平有限,翻译不当之处,请以英文原版为准,不喜勿喷,另,本文翻译只限于学术交流,不涉及任何版权问题,若有不当侵权或其他任何除学术交流之外的问题,请留言本人,本人立刻删除,谢谢!! 另:欢 ...

  6. 论文笔记之:A CNN Cascade for Landmark Guided Semantic Part Segmentation

    A CNN Cascade for Landmark Guided Semantic Part Segmentation  ECCV 2016 摘要:本文提出了一种 CNN cascade (CNN ...

  7. RCNN (Regions with CNN) 目标物检测 Fast RCNN的基础

    Abstract: 贡献主要有两点1:可以将卷积神经网络应用region proposal的策略,自底下上训练可以用来定位目标物和图像分割 2:当标注数据是比较稀疏的时候,在有监督的数据集上训练之后到 ...

  8. 卷积神经网络CNN与深度学习常用框架的介绍与使用

    一.神经网络为什么比传统的分类器好 1.传统的分类器有 LR(逻辑斯特回归) 或者 linear SVM ,多用来做线性分割,假如所有的样本可以看做一个个点,如下图,有蓝色的点和绿色的点,传统的分类器 ...

  9. Tensorflow之卷积神经网络(CNN)

    前馈神经网络的弊端 前一篇文章介绍过MNIST,是采用的前馈神经网络的结构,这种结构有一个很大的弊端,就是提供的样本必须面面俱到,否则就容易出现预测失败.如下图: 同样是在一个图片中找圆形,如果左边为 ...

随机推荐

  1. 蓝桥杯近3年决赛题之二(16年b组)

    做的时候只做对了第一题. 1. 一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里.矿车停在平直的废弃的轨道上.他的面前是两个按钮,分别写着“F”和“B”. 小明突然记起来,这两个按钮可以控制 ...

  2. Python实现图像边缘检测算法

    title: "Python实现图像边缘检测算法" date: 2018-06-12T17:06:53+08:00 tags: ["图形学"] categori ...

  3. u盘安装centos7.6 最新版本

    1,可以按照网上的教程,制作u盘启动 2,然后将u盘插入主机,最重要的是这一步,网上的说法基本上适用这个版本 进入到这个界面: 然后选择Install Centos 7,然后按e键,tab是不管用的 ...

  4. Java输出流FileOutputStream使用详解

    Java输出流FileOutputStream使用详解 http://baijiahao.baidu.com/s?id=1600984799323133994&wfr=spider&f ...

  5. 同事问如何判断同花顺,我用javascript的二维数组写了个简易demo

    有个前同事在群里问如何判断是否为同花顺我用javascript的二维数组写了个简易demo. <!DOCTYPE html> <html> <body> <s ...

  6. 二分法bug修复

    public class Main { public static void main(String[] args) { int[] arr = {1,2,3,4,5,6,7,8,9,10}; int ...

  7. Django数据查询方法总结

      __exact 精确等于 like ‘aaa’__iexact 精确等于 忽略大小写 ilike ‘aaa’__contains 包含 like ‘%aaa%’__icontains 包含 忽略大 ...

  8. Vue 组件&组件之间的通信 之 父组件向子组件传值

    父组件向子组件传值:父组件通过属性向下传值的方式和子组件通信: 使用步骤: 定义组件:现有自定义组件com-a.com-b,com-a是com-b的父组件: 准备获取数据:com-b要获取父组件dat ...

  9. 异常处理与网络基础中的tcp,udp协议

    # 异常处理: # 什么是异常?异常和错误的区别 # Error 语法错误 比较明显的错误 在编译代码阶段就能检测出来 # Iteration 异常 在执行代码的过程中引发的异常 # 异常发生之后的效 ...

  10. 阿里云centos怎么用xshell5登陆

    第一种是用ssh,安装Xshell5   打开XShell   新建会话输入ip   选择新建的会话,点击连接,选择接受并保护,输入root,点击确定   输入密码   已经连接成功了,用Xshell ...