卷积

图像处理中滤波与卷积的区别

图像处理中滤波和卷积是常用到的操作。两者在原理上相似,但是在实现的细节上存在一些区别。这篇博文主要叙述这两者之间的区别。

滤波

简单来说,滤波操作就是图像对应像素与掩膜(mask)的乘积之和。比如有一张图片和一个掩膜,如下图:

图像处理中滤波与卷积的区别

那么像素( i , j )的滤波后结果可以根据以下公式计算:
图像处理中滤波与卷积的区别

其中G ( i , j )是图片中 ( i , j )位置像素经过滤波后的像素值。

当掩膜中心m5位置移动到图像( i , j )像素位置时,图像( i , j )位置像素称为锚点。

滤波步骤:

图文并茂地讲解卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。

对比:卷积神经网络、全连接神经网络

图文并茂地讲解卷积神经网络

左图:全连接神经网络(平面),组成:输入层、激活函数、全连接层

右图:卷积神经网络(立体),组成:输入层、卷积层、激活函数、池化层、全连接层

在卷积神经网络中有一个重要的概念:深度

卷积层

卷积:在原始的输入上进行特征的提取。特征提取简言之就是,在原始输入上一个小区域一个小区域进行特征的提取,稍后细致讲解卷积的计算过程。

卷积神经网络(1)——卷积层和池化层学习

卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT-CONV-RELU-POOL-FC

(1)卷积层:用它来进行特征提取,如下:

卷积神经网络(1)——卷积层和池化层学习

输入图像是32*32*3,3是它的深度(即R、G、B),卷积层是一个5*5*3的filter(感受野),这里注意:感受野的深度必须和输入图像的深度相同。通过一个filter与输入图像的卷积可以得到一个28*28*1的特征图,上图是用了两个filter得到了两个特征图;

我们通常会使用多层卷积层来得到更深层次的特征图。如下:

卷积神经网络(1)——卷积层和池化层学习

你所不能不知道的CNN

作者:许铁

说起CNN,最初人们想到的都是某电视台,但等过几年,人们想起的多半是深度学习了。

应该说, CNN是这两年深度学习风暴的罪魁祸首, 自2012年, 正是它让打入冷宫的神经网络重见天日并且建立起自己在人工智能王国的霸主地位。

如过你认为深度学习是只能用来理解图像的,你就大错特错了, 因为它的用途太广了,上至文字,中有图像, 下至音频, 从手写数字识别到大名鼎鼎的GAN对抗学习, 都离不开它。

不过要了解CNN,还是拿图像做例子比较恰当。一句话来说CNN图像处理的本质,就是信息抽取, 巨大的网络可以抽取一步步得到最关键的图像特征, 我们有时也叫自动的特征工程。

CNN的建造灵感来自于人类对视觉信息的识别过程。 人脑对物体的识别的第一个问题是: 对应某一类对象的图像千千万, 比如一个苹果, 就有各种状态的成千上万状态, 我们识别物体的类别,事实上是给这成千上万不同的图片都打上同一个标签。

卷积神经网络的复杂度分析

在梳理CNN经典模型的过程中,我理解到其实经典模型演进中的很多创新点都与改善模型计算复杂度紧密相关,因此今天就让我们对卷积神经网络的复杂度分析简单总结一下下。

1.时间复杂度

卷积神经网络的复杂度分析
1.2 卷积神经网络整体的时间复杂度
卷积神经网络的复杂度分析
示例:用 Numpy 手动简单实现二维卷积

假设 Stride = 1, Padding = 0, img 和 kernel 都是 np.ndarray.

用例子说明为何我们需要卷积神经网络,以及卷积在神经网络中的作用。
目前网上的卷积网络科普大多是翻译的,内容大同小异。本文会更偏重于实际例子。

1. 找橘猫:最简单的办法

今天我们的任务是找出图中有没有橘猫:

走近 AlphaGo (7.2) :教你快速理解卷积和卷积神经网络

怎样用最简单(笨)的方法完成这个任务?那肯定是看图中的橘色占多少面积,比如说超过10%就认为有橘猫:

走近 AlphaGo (7.2) :教你快速理解卷积和卷积神经网络

但怎么告诉电脑?具体来说,图像在电脑中是按像素(就是一个个点)存储的:

如何理解空洞卷积(dilated convolution)?

来源:知乎 作者:谭旭

简单讨论下dilated conv,中文可以叫做空洞卷积或者扩张卷积。首先介绍一下dilated conv诞生背景[4],再解释dilated conv操作本身,以及应用。

首先是诞生背景,在图像分割领域,图像输入到CNN(典型的网络比如FCN[3])中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预测是pixel-wise的输出,所以要将pooling后较小的图像尺寸upsampling到原始的图像尺寸进行预测(upsampling一般采用deconv反卷积操作,deconv可参见知乎答案如何理解深度学习中的deconvolution networks?),之前的pooling操作使得每个pixel预测都能看到较大感受野信息。因此图像分割FCN中有两个关键,一个是pooling减小图像尺寸增大感受野,另一个是upsampling扩大图像尺寸。在先减小再增大尺寸的过程中,肯定有一些信息损失掉了,那么能不能设计一种新的操作,不通过pooling也能有较大的感受野看到更多的信息呢?答案就是dilated conv。

下面看一下dilated conv原始论文[4]中的示意图:

同步内容
--电子创新网--
粤ICP备12070055号