CNN 分割
测试的是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 分割的更多相关文章
- Sklearn——SVC学习笔记(图像分割)
新年第二更. 很长时间前就想总结一下用SVC来做图像分割的方法了,方法实现了,但是一直没有总结,今天再来回顾一遍. 首先介绍一下.今天要总结的图像分割其实属于像素级分类,其输出是把图像按照不同的类别逐 ...
- PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
摘要 点云是一种重要的几何数据结构类型.由于其不规则的格式,大多数研究人员将此类数据转化为常规的三维体素网格或图像集合.然而,这使数据变得不必要的庞大,并导致问题.在本文中,我们设计了一种新型的直接处 ...
- CNN结构:场景分割与Relation Network
参考第一个回答:如何评价DeepMind最新提出的RelationNetWork 参考链接:Relation Network笔记 ,暂时还没有应用到场景中 LiFeifei阿姨的课程:CV与ML课程 ...
- 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别
由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013+Python2.7.12环境下的C ...
- 《Benign and maligenant breast tumors classification based on region growing and CNN segmentation》翻译阅读与理解
注明:本人英语水平有限,翻译不当之处,请以英文原版为准,不喜勿喷,另,本文翻译只限于学术交流,不涉及任何版权问题,若有不当侵权或其他任何除学术交流之外的问题,请留言本人,本人立刻删除,谢谢!! 另:欢 ...
- 论文笔记之:A CNN Cascade for Landmark Guided Semantic Part Segmentation
A CNN Cascade for Landmark Guided Semantic Part Segmentation ECCV 2016 摘要:本文提出了一种 CNN cascade (CNN ...
- RCNN (Regions with CNN) 目标物检测 Fast RCNN的基础
Abstract: 贡献主要有两点1:可以将卷积神经网络应用region proposal的策略,自底下上训练可以用来定位目标物和图像分割 2:当标注数据是比较稀疏的时候,在有监督的数据集上训练之后到 ...
- 卷积神经网络CNN与深度学习常用框架的介绍与使用
一.神经网络为什么比传统的分类器好 1.传统的分类器有 LR(逻辑斯特回归) 或者 linear SVM ,多用来做线性分割,假如所有的样本可以看做一个个点,如下图,有蓝色的点和绿色的点,传统的分类器 ...
- Tensorflow之卷积神经网络(CNN)
前馈神经网络的弊端 前一篇文章介绍过MNIST,是采用的前馈神经网络的结构,这种结构有一个很大的弊端,就是提供的样本必须面面俱到,否则就容易出现预测失败.如下图: 同样是在一个图片中找圆形,如果左边为 ...
随机推荐
- servlet中如何实现通过Spring实现对象的注入
@WebServlet("/BaseServlet")public class BaseServlet extends HttpServlet { private static f ...
- python练习--利用while循环和if语句,完成猜骰子的数字大小
#exampleimport random# 骰子投掷的随机叔numnum = random.randint(1,6)# 输入一个猜测的数字temp = input("请输入一个整数:&qu ...
- 跨站访问如何保证session的正常使用
1.最近公司开发了一个网站项目,一切顺利.由于网页没有兼容手机浏览器,后来添加了一个webapp端,独立于另一个站点,用于解决兼容手机浏览器的问题.其中webapp端的数据全部通过ajax进行请求另一 ...
- 用友畅捷通T6数据升级到T+的步骤图解
1.打开升级工具,输入各项目: 2.点击下一步并确认---“是”: 3.输入目的账套信息(主要是系统管理员密码): 4.升级开始: 5.退出原账套登录的确认----“是”: 6.升级进度: 7.升级成 ...
- Java中使用dom4j处理xml类型的文本
在Java的实际开发中经常会碰到xml文件的解析,需要获取固定节点的内容,在这里简单记录一下,方便下次使用时查阅: 1.VSCode中安装插件XML Format,Shift + Alt + F撸直x ...
- Linux系统的目录结构及常见目录总结
Linux系统的目录结构(必须掌握的内容) 所有目录只有一个顶点/(根),所有目录的起点. 只有一棵树 Linux的目录结构也是有规律的,而且也是按照类别组织的. 应用程序 /usr/bin 数据文件 ...
- window.location.search 在url中有?name=value时仍为‘’的情况
1,当页面有hash#值 而?name=value在hash #的串后面将会有这种结果 2,为什么 window.location.search 为空? 答:注意上面的search和hash的区别,如 ...
- 对于react-redux的理解
一.redux与组件 React-Redux提供connect方法,用于从UI组件生成容器组件 二.react-redux的基本使用 1.引入 import {Provider} from " ...
- centos7救援模式--误删/usr/bin/恢复
模拟场景 centos7 误删/usr/bin/等系统内置文件夹, 导致几百个内置命令丢失. 修复 rescue模式 vm模拟一遍(如果在物理机, 可通过U盘方式直接开机U盘进入选择救援模式, 方式通 ...
- opencv学习之路(41)、人脸识别
一.人脸检测并采集个人图像 //take_photo.cpp #include<opencv2/opencv.hpp> using namespace cv; using namespac ...