自动驾驶-利用卷积神经网络和对交通标志分类

#利用卷积神经网络对交通标志分类
上一章总结了神经网络算法的基本概念,本章在此基础上介绍在图像分类任务中使用的神经网络算法:卷积神经网络(CNN), 然后介绍tensorflow的基本用法,最后会给出在tensorflow上使用卷积神经网络算法对交通标志进行分类的步骤和部分源码。

##卷积神经网络
神经网络每一层生成的新的神经节点作为新的特征输入下一层,从而能够处理较复杂的任务,但是处理图像分类的任务时,一副图像的每一个像素点都是输入层的一个特征,都需要一个独立的权重,如果使用多层的神经网络,由于权重过多,不仅训练花费时间极高,而且对内存一会产生加大的消耗。

生物学家通过对动物大脑的研究发现动物识别物体时会从简单的线条开始逐步抽象出更高层次的物体,受此启发,计算机科学家发明了一种卷积神经网络的算法,对图像从最简单的线条开始识别,逐步识别出更复杂的目标物体。例如要识别下图中的金毛,在眼睛鼻子首位先提取出一些曲线最为第一层的输出,第二层组合这些曲线继续提取特征,根据一条曲线和两个鼻孔提取出鼻子的特征输出到下一层,继续组合和提取特征,在最后一层组合眼睛,鼻子等特征识别出金毛。
这里写图片描述

卷积将相邻的像素当作一个集合进行处理,这就是卷积和非卷积神经网络的区别,卷积神经网络使用滤波器提取图像的局部特征,这更复合人们的认知,因为一副图像的局部像素的相关性更加紧密,例如上图提取鼻子的特征时,只需要整幅图像的中间的一部分像素,而其他像素都为干扰项,非卷积网络的每一层特征都会影响下一层特征的提取,于是增加了很多干扰项,降低了特征提取的准确度。

使用卷积神经网络一般分为两步,第一步先定义一组相同大小的滤波器,然后使用滤波器滑过图像,做卷积运算。使用多个滤波器是为了提取多个特征,例如下图提取嘴部特征时,可以提取的特征包括牙,舌头,嘴唇等;第二步对输出做池化(pooling)处理,池化是指对一定范围内的像素做处理,提取一个特征来取代范围内的其他特征,可以进一步较少减少神经元的个数,防止过拟合,本章使用最大值池化方法。最大值池化(maxpooling)是指在一定范围内提取值最大的特征值代替这一范围内的其他特征,平均值池化(averagepooling)是指去一定范围内的均值最为这个范围的新的特征。下图所示为一个maxpooling的例子。
这里写图片描述

一般构建卷积神经网络模型时,每一个卷积层需要定义的参数有patch,stride,padding,
其中patch定义了滤波器的大小和深度,深度表示每一个卷积层滤波器的个数,stride表示滤波器每次卷积滑过图像的像素数,padding有valid padding和same padding两种,valid padding是指滤波器只在图像内滑动,所以输出会比原始图像尺寸小,samepadding会对图像进行扩充,这样在新的输出保持和当前输入相同的规模。

以下是使用卷积神经网络训练图像对每一卷积层提取特征可视化的结果。
从图一可以看出,第一层识提取了 4 5 ∘ 45^{\circ} 45的直线,第二层提取了稍复杂的曲线,最后

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值