卷积神经网络之计算机视觉应用(一)

 卷积神经网络之计算机视觉应用(一)

一 引言

 21世纪开始,卷积神经网络就被成功的大量用于检测、分割、物体识别以及图像的各个领域。值得一提的是,图像可以在像素级别进行打标签,这样就可以应用在比如自动电话接听机器人、自动驾驶汽车等技术中。尽管卷积神经网络应用的很成功,但是它被计算机视觉以及机器学习团队开始重视是在2012年的ImageNet竞赛。在该竞赛中,深度卷积神经网络被用在上百万张网络图片数据集,这个数据集包含了1000个不同的类。该结果达到了前所未有的好,几乎比当时最好的方法降低了一半的错误率。这个成功来自有效地利用了GPU、ReLU、一个新的被称为dropout的正则技术,以及通过分解现有样本产生更多训练样本的技术。这个成功给计算机视觉带来一个革命。如今,卷积神经网络用于几乎全部的识别和探测任务中。最近一个更好的成果是,利用卷积神经网络结合回馈神经网络用来产生图像标题。那么到底什么是卷积运算,什么是卷积神经网络,我们现在就来一探究竟。

二 卷积网络

 卷积网络,也叫作卷积神经网络(convolutional neural network ,CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。例如时间序列数据(可以认为是在时间轴上有规律地采样形成的一维网络)和图像数据(可以看作二维的像素网格)。卷积神经网络在诸多领域表现优异。“卷积神经网络”一词表明该网络使用了卷积这种数学运算。卷积神经网络是一种特殊的线性运算。卷积神经网络是指那些至少在网络的一层中使用卷积运算来代替一般的矩阵乘法运算的神经网络。

三 卷积神经网络在图像上的应用

 那么到底什么是卷积运算,如何在图像上使用卷积运算,我们通过下图来具体说明。


 我们以上图为例,图像A为一个拥有6*6 36个像素点的原始灰白图片,我们用3*3的卷积核B来对其做卷积运算。卷积核就像一个窗口一样在图像A上进行滑动,每次移动一个步幅,那个一个共能够产生4*4 16个位置,因此我们得到了一个4*4的输出C。  那么每次卷积核在对应位置进行的卷积运算实质就是对应位置元素的乘积之和(如上图中所示)。我们进行公式的推广,若 一个n*n的原始图像,卷积核的大小为f*f,每次移动的步幅大小为一的话,我们就得到以下公式:

C(经过卷积运算后图像的边)=n-f+1




 现在我们了解了如何在图像上进行卷积运算,那么我们来看一个更加贴切真实生活同时也更加复杂的例子来巩固下所学习到的知识。如下图所示,我们现在的输入图像由原来的单通道变成了三个通道(卷积核的通道数量等于原始图像的通道数量),分别来代表红色,绿色,蓝色三个色彩通道,那么这就相当于我们平时生活中的彩色照片了。我们的卷积核也相应的变成三个,因为要分别对应于RGB三个通道进行卷积运算,每个卷积核中的参数的设定通常来说是不相同的,这其实就相当于从不同的色彩角度来分析这张彩色图片了。


 上图还是进行我们熟悉的卷积运算,唯一我们需要注意的是6*6*3的原始图像和3*3*3的卷积核进行的卷积运算最后得出的结果是4*4的输出图像,因为一个卷积核代表从一个特征对图像进行处理(如:垂直边缘,水平边缘),卷积核的通道数目与原始图像的通道数目是相等的,最后我们把同一位置的各个通道进行卷积运算后的值相加来作为最后的输出(例如上图中:RGB三个通道卷积运算的结果相加才是最后的输出)。再对另一个的卷积核进行运算后我们又会得到一个二维的输出图像,把这两个结果叠加到一起我们就得到了一个完整的卷积运算后的结果了。当然我们还可以再增加卷积核的数量,这就相当于我们从更多的角度来分析处理这张彩色图片了,我们最后得到结果的通道数目和卷积核的数量是相等,例如上图中我们有两个3*3*3的卷积核,那么我们的输出就是4*4*2的三维结果。若我们有4个3*3*3的卷积核,那么我们的结果就变成了4*4*4了。

 最后我们对重要知识点再进行回顾,对公式进行推广。卷积核的通道数目Nc和原始图像的通道数目Nc是相等的,输出图像的通道数目x是和卷积核的个数相等的,我们只要明确理解了这两个重要的点,对卷积运算中的参数就不会再混淆了。若我们有一个n*n*Nc的原始图像,有x个f*f*Nc的卷积核,那么我们的输出图像应该为(n-f+1)*(n-f+1)*x。



下一篇文章我们将介绍卷积神经网络中的池化层,以及如何使用CNN来进行手写体识别。







猜你喜欢

转载自blog.csdn.net/m0_38031488/article/details/79121184