测试的是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. 201905<<金字塔原理>>

    金字塔原理是本好书,主要从写作,思考,解决问题三个方面讲解了如何使用金字塔结构来分析.自下而上的分析,自上而下的表达,解决问题时先确定问题的四要素,搭建三棱镜框架,再解决问题.三棱镜分析问题的方法感触 ...

  2. Docker镜像配置redis集群

    redis版本:3.2.3 架构: 3节点redis集群,并为每个节点设置一个备用节点,共6个节点 1.安装redis镜像 docker load < docker.redis.tar.gz 2 ...

  3. java面向对象总结(一)

    1. 对象的概念及面向对象的三个基本特征 面向对象的三大核心特性 面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率.面向对象程序设计有以下优点. ...

  4. springboot打成war包找不到文件

    项目在eclipse运行是可以的,但是打成war包到线上报错: FileNotFoundException: class path resource [static/apiclient_cert.p1 ...

  5. 安卓GridView奇偶行不同颜色

    背景:安卓制作表格,两列多行,奇数行和偶数行背景色不同 分析:GridView是经常用来制作表格的,但是和ListView不同,不能简单的用position % 2 == 0/1 来判断奇偶行,下面提 ...

  6. sql的优化

    适当的索引 尽量不要有空判断的语句 尽量不要使用不等于条件 尽量不要使用or条件 尽量不要使用左右模糊查询 尽量使用exists代替in 尽量避免一次性返回大数据量

  7. radhat6.6上安装oracle12c RAC (三)

    三.DB(database)安装 3.1 DB软件安装 orale用户登录,解压db安装包 [root@jydb1 tools]# su - oracle [oracle@jydb1 ~]$ cd / ...

  8. [C++ Primer Plus] 第10章、对象和类(一)程序清单——辨析三个const

    程序清单10.1+10.2+10.3 头文件stock.h #ifndef STOCK00_H_ //先测试x是否被宏定义过 #define STOCK00_H_ //如果没有宏定义,就宏定义x并编译 ...

  9. Python入门经典案例一

    # 有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? sum = 0 values = range(1, 5) for i in values: for j in valu ...

  10. Introducation of Servlet filter(servlet过滤器介绍 )

    本文章向大家介绍Servlet Filter,主要包括 Servlet Filter使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下. 过滤器是一个可以转换 ...