CNN的感受野,参数量,计算量

1. 感受野

为了计算CNN每一层的感受野,除了要知道特征图每个维度的特征数n,还需要记录每一层的其他信息,这包括当前层的感受野大小r,两个相邻特征的距离(跳跃的距离,如前面可视化所示)j,和左上角特征(第一个特征)的中心坐标start。注意感受野(其实是特征图第一个特征的感受野)的中心坐标就等于这个特征的中心坐标,就如前面可视化中所示。当采用的卷积其核大小为k,padding大小为p,步长为s,输出特征图的感受野可以按照如下公式计算:

640?wx_fmt=png

 

  • 第一个式子根据输入特征图大小以及卷积参数计算输出特征图大小,前面已经说过。

  • 第二个式子计算输出特征图的特征间的间隔,其等于上一层的间隔值乘以卷积的步长,所以间隔值将是按照步长呈指数级增长。

  • 第三个式子计算输出特征图的感受野大小,其等于前一层感受野大小加上(k-1) * j_in,所以感受野是呈指数级增加,并且还有一个因子k-1。

  • 第四个式子计算输出特征图的第一个特征感受野的中心坐标,其等于第一层的中心坐标加上(k-1) / 2 * j_in,再减去p j_in,注意两项都要乘以前一层的间隔距离以得到实际距离。

 

2.  每一层的参数量:

卷积层:输入为28×28的单通道图,经过一层卷积以后输出为24×24×20,因为边界处理所以卷积完尺寸为28-5+1 = 24。卷积核的数量为20,所以conv-1的尺寸如上。再经过一层pooling层尺寸为12×12×20。则单样本前向传播计算量为:5×5×1x24×24×20 = 288 000,实际计算量还应乘以batchsize = 64。卷积层参数数量为:5×5×1x20 = 500,(如果算上偏置,就是(5*5+1)*20)。计算量和参数比为:288000/500 = 576.

全连接层:卷积部分得到的featuremap为4×4×50,全连接部分是将featuremap展开成一维向量再与全连接相连。所以单样本前向传播计算量为:4×4×50×500 = 400 000,参数数量为4×4×50×500 = 400 000。在全连接中计算量和参数比始终为1,就是源于全连接的特性。

 

3. 下面举例讲解 Standard convolution、depth-wise convolution 和 pointwise convolution。

 

假设输入的 feature map 是两个 5*5 的,即 5*5*2;输出 feature map 数量为 3,大小是 3*3(因为这里采用 3*3 卷积核)即 3*3*3。

标准卷积是将一个卷积核(3*3)复制 M 份(M=2), 让二维的卷积核(面包片)拓展到与输入 feature map 一样的面包块形状。

 

Standard 过程如下图,X 表示卷积,+表示对应像素点相加,可以看到对于 O1 来说,其与输入的每一个 feature map 都「发生关系」,包含输入的各个 feature map 的信息。

 

Depth-wise 过程如下图,可以看到 depth-wise convolution 得出的两个 feature map——fd1 和 fd2 分别只与 i1 和 i2「发生关系」,这就导致违背上面所承认的观点「输出的每一个 feature map 要包含输入层所有 feature map 的信息」,因而要引入 pointwise convolution。

 

那么计算量减少了多少呢?通过如下公式计算:

 

其中 DK 为标准卷积核大小,M 是输入 feature map 通道数,DF 为输入 feature map 大小,N 是输出 feature map 通道数。本例中,DK=3,M=2,DF=5,N=3,参数的减少量主要就与卷积核大小 DK 有关。在本文 MobileNet 的卷积核采用 DK=3,则大约减少了 8~9 倍计算量。

### 回答1: CNN模型可以用于识别摄像头图像。卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于处理图像和视频数据的深度学习模型。通过对图像进行卷积、池化等一系列处理,CNN模型可以提取出图像中的特征,从而实现图像的分类、识别等任务。因此,可以使用CNN模型来对摄像头拍摄的图像进行识别,例如人脸识别、车牌识别等。 ### 回答2: CNN模型,即卷积神经网络,是一种深度学习模型,广泛应用于图像分类和识别任务中。 对于摄像头图像的识别,CNN模型可以通过以下步骤进行: 1. 数据收集与预处理:首先,需要收集并标注大摄像头图像的训练数据。这些图像可以包括不同角度、不同光照条件下的图片。然后,对这些图像进行预处理,如缩放、裁剪、增强等操作,以便适应CNN模型的输入要求。 2. 模型构建与训练:接下来,可以搭建CNN模型,通常包括卷积层、池化层和全连接层等。卷积层可以提取图像的特征,池化层可以降低特征的维度,全连接层可以将特征与类别进行关联。然后,使用收集到的训练数据CNN模型进行训练,通过迭代优化模型数,使其能够准确识别摄像头图像。 3. 模型评估与优化:在训练完成后,需要使用测试数据集对模型进行评估,计算出模型的准确率、召回率等指标。如果模型表现不佳,可以通过调整网络结构、学习率、批次大小等超数,或增加更多的训练数据来进一步优化模型。 4. 部署与应用:当模型训练达到满意的准确率后,可以将其部署到摄像头设备上。摄像头捕获到的图像可以输入到CNN模型中,模型将输出预测的类别或特征信息。根据摄像头的应用场景,可以根据识别结果进行后续操作,例如安全监控、人脸识别等。 总结而言,CNN模型可以用于识别摄像头图像。通过搭建模型、训练优化,并最终部署到摄像头设备上,可以实现对摄像头图像的自动识别和分类。 ### 回答3: CNN(卷积神经网络)是一种深度学习模型,可以用于图像识别任务。对于摄像头图像识别,可以通过以下步骤进行: 首先,我们需要收集大的摄像头图像作为训练样本。这些图像包含摄像头拍摄的不同场景和不同目标物体。通过标注这些图像,分为不同的类别,比如人、车辆、动物等。 接下来,我们使用这些图像作为训练数据来训练CNN模型。训练时,CNN模型将会学习到不同类别的特征。卷积层将会对图像进行卷积操作,提取出图像的局部特征,然后通过池化层进行降维处理。最后,通过全连接层将提取出的特征进行分类。 训练完成后,我们可以使用训练好的CNN模型来对新的摄像头图像进行识别。首先,我们将待识别的图像输入到CNN模型中,模型会对图像进行特征提取。然后,通过softmax函数进行分类,确定图像属于哪个类别。 为了提高识别准确率,我们可以采用一些优化方法。比如,数据增强技术可以通过对图像进行旋转、平移、缩放等操作,增加样本数量,提高模型的泛化能力。另外,我们还可以用预训练的CNN模型,如VGG、ResNet等,进行迁移学习,提高模型的识别能力。 总之,通过使用CNN模型对摄像头图像进行识别,我们可以实现自动识别拍摄场景中的不同目标物体,为许多应用领域带来便利,如智能监控、智能驾驶等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值