【卷积】图像分块与卷积特征提取与自然图像静态统计特性
Main Page - Ufldl http://deeplearning.stanford.edu/wiki/index.php/Main_Page
卷积特征提取—处理大型图像 - CSDN博客 http://blog.csdn.net/u013884378/article/details/21700363
仿真表明,如果将整幅图像运用imresize函数进行压缩,则训练样本过少。如果采用图像分块的方式,获取了大量的样本,并且确定了网络参数。那接下来如何运用这个参数去提取整幅图像的特征呢?
教程中举了一个例子。96*96的图像,假设训练时采用的8*8的patch,且隐含层节点100个。(我突然想到,关于稀疏自编码的栈式编码方式我貌似没有理解,以前的理解是错误的)。按教程中的方式来看,96*96的图像将会被分成(96-8+1)*(96-8+1),即89*89块,每一块的大小是8*8。将这些分出来的块输入到已经训练好的网路中,输入是:64*(89*89),W1是100*64,W1*输入,则隐含层的输出是100*(89*89),这也是教程中所说的将得到100个集合,每个集合中含有89*89特征的含义所在。
这样问题有来了,每一幅图像都得到100*(89*89)的特征矩阵,这个太大了,如果用这个去训练分类器显然是不可能的。那我们怎么办呢?未完待续。。。
在这里插一段图像的静态特性。
教程中说,自然图像具有静态特性,即图像某一部分的统计特性和其他部分是相同的,这是用某一部分学习出的特征(即权值)去卷积整幅图像,对整幅图像进行特征表示的理论基础。所以特地查了下到底什么是图像的统计特性。看了一些PPT,图像的统计特性是指图像信号(亮度、色度或其抽样值)本身或对他们进行某种方式处理(比如计算像素的均值,中值,方差等等)以后的输出值的随机统计特性。看了一篇英文文章:
Torralba A, Oliva A. Statistics of natural image categories[J]. Network: computation in neural systems, 2003, 14(3): 391-412.
该文章探讨了自然图像的统计特性,并使用这些统计特性对目标和场景进行分类。讨论了二阶统计特性(second-order statistics)与图像类别,场景规模和目标的相关关系。We propose how scene categorization(场景分类) could be computed in a feedforward manner in order to provide top-down(自顶向下) and contextual(上下文信息) information very early in the visual processing chain(视觉处理链)。实验表明low-level features is benefit to 识别问题。同时,提出简单的统计特性可以用来预测图像中是否有某一物体。
关于自然图像的静态特性主要位于Section 2:
(1)自然图像的1/f光谱(到底什么是光谱?)
(2)各类图像的光谱特征
(3)场景尺度和图像尺度
不同尺度场景的图像统计特性是不同的。
(4)非静态统计特性
自然图像的另一个重要特性是随着空间位置(observer的位置?)的改变图像统计特性是怎样改变的。当人眼在各个方向变化时,我们希望自然图像的静态特性是尺度不变和静态的(特征同样是关于位置的分布)。
上图中的关键句:As scene scale increases,the image statistic become non-staionary.
遗憾的是,读了这篇文章,还是不理解这句话(上面这篇文章明显说明不同location的图像统计特性不同啊):
Natural images have the property of being stationary, meaning that the statistics of one part of the image are the same as any other part. This suggests that the features that we learn at one part of the image can also be applied to other parts of the image, and we can use the same features at all locations.
关于图像的卷积问题(卷积和滤波似乎是同一概念)。
(1)图像的卷积:
本教程代码中,由特征(权值)reshape的矩阵极为卷积核(注意卷积核的行、列元素个数都是奇数,也不一定,经过仿真验证,偶数貌似也可以,这个问题可以研究下)。下图说明什么是卷积滤波:
举个例子:
(2)那matlab的conv2是做什么的呢?
终于把matlab的conv2卷积运算搞清楚了,额的神呐。
矩阵卷积一般用于图像处理中,一般分为如下四个步骤;
a.卷积核绕自己的核心元素顺时针旋转180读。
b.移动卷积核,使其位于待处理图像的左上方。旋转后的卷积核右下角元素与待处理矩阵左上方元素重合。此处想起解释卷积那个打板子案例,某一时刻的输出不仅与此时的输入有关还与此时刻之前的输入有关。(‘’full''下矩阵位数为:(m+n-1,m+n-1))。
c.在旋转后的卷积核中,将输入图像的像素值作为权重相乘。
d.第三部结果的核作为输入像素对应的输出像素。
C = conv2(...,'shape') returnsa subsection of the two-dimensional convolution, as specified by theshape parameter:
Returns the full two-dimensional convolution (default). |
|
Returns the central part of the convolution of the samesize asA. |
|
Returns only those parts of the convolution that arecomputed without the zero-padded edges. Using this option,C hassize[ma-mb+1,na-nb+1] whenall(size(A) >= size(B)).Otherwiseconv2returns[] |
继续上面的卷积,前已述,获取到的卷积特征维数很大。教程中给出的方法是,pooling,翻译成池化还是汇总,貌似汇总意义更加明确。基本思路是这样的,将学习到的特征向量变成一个矩阵,然后按照某一定值维数对该矩阵进行分块,对于每一块,取均值(mean pooling)或者最大值(max pooling)作为该块的代表,理论依据何在?还是前述自然图像的静态特性,不懂啊。。。下面的工作就是做大量仿真了。。。
其他可能有用的图像分块和卷积文献:
图像分块分层结构在海量数据处理中的应用 - 豆丁网 http://www.docin.com/p-1451593281.html
基于多层卷积神经网络学习的单帧图像超分辨率重建方法_百度文库 https://wenku.baidu.com/view/17b5a91f53d380eb6294dd88d0d233d4b14e3fbc.html 刘娜、李翠华
基于多尺度分块卷积神经网络的图像目标识别算法 - 豆丁网 http://www.docin.com/p-1609748296.html?docfrom=rrela
基于多尺度分块卷积神经网络的图像目标识别算法--《计算机应用》2016年04期 http://www.cnki.com.cn/Article/CJFDTotal-JSJY201604030.htm
基于分块卷积的大图像输入卷积神经网络加速 - 其它论文 - 道客巴巴 http://www.doc88.com/p-1915216195143.html