首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教你如何使用深度学习识别交通标志,准确度高达93%

教你如何使用深度学习识别交通标志,准确度高达93%

作者头像
CDA数据分析师
发布2018-02-26 15:58:22
3.6K0
发布2018-02-26 15:58:22
举报
文章被收录于专栏:CDA数据分析师CDA数据分析师

原作者 Priya Dwivedi 编译 CDA 编译团队 本文为 CDA 数据分析师原创作品,转载需授权

自动驾驶已经迎来发展的热潮。自动驾驶车在行驶时,需要正确识别路上的交通标志。在这篇文章中,我们将教你如何使用深度学习,来训练汽车对交通信号进行分类,准确度高达 93% 。

完整的 Python 的代码已经分享在 GitHub 上。

交通标志
交通标志

数据集

用于练习的数据集由德国道路上常见的 43 种不同的交通标志组成。交通标志图像是从实际道路图像中裁剪出来的,因此处于不同的照明条件下,如下图所示。

共有 5 万张图片。图像为 32x32 像素,彩色。

了解数据

任何建模练习的第一步应该是熟悉当中所涉及的数据。这里有 43 种不同的交通标志。数据分布不均匀,如下所示。有些标志对应只有 200 张图像,而有些则有超过1200 张图像。

数据集中的图像如下所示,我们可以看到图像很小,亮度不同,有些很模糊。此外,一些交通标志并不位于图像中心。

数据集中的交通标志图像
数据集中的交通标志图像

数据预处理

在将图像输入到神经网络之前,我将图像规范化,使像素值处于 0 和 0.5 之间。为此,我将所有像素值下降了 255 。这是因为当原始数据介于 0 和 1 之间时,神经网络表现更好。我决定使用彩色交通标志,而不是将其转换为灰色,因为人类会通过符号的颜色对其进行分类,机器也可以利用这点。最后,我将数据集分为训练集,验证集和测试集。测试集为模型没有接触过的 30% 样本。

模型架构

在这个项目中,我决定使用 LeNet 架构,这是一个简单的卷积神经网络 (CNN) ,它在 MNIST 数据集中表现良好。如下所示,该模型具有两个卷积层,其后是两个最大的池层。第一个卷积层使用的图像大小为 5x5 ,过滤器深度为 6 。第二个卷积层还使用 5x5 的图像大小,但使用深度为 16 的过滤器。在卷积之后,我们平铺输出,然后使用两个完全连接的层。第一个有 120 个神经元,第二个有 84 个神经元。所有层之间都使用 RELU 激活。最后,我们使用 Softmax 的输出层来对 43 种的图像进行分类。

LeNet 架构
LeNet 架构

LeNet 架构在这个问题上出人意料地出色,在 30 个时间点中,对于验证样本准确性为 98% 。下图为精确性和错误性:

使用 LeNet 架构进行模型训练
使用 LeNet 架构进行模型训练

对模型从未接触过的测试样本时,准确度约为 93% ,这是非常可靠的。

如果我们对图像进行增强,改变亮度,旋转,平移等增加样本大小,则可以进一步提高准确率。

可视化神经网络

虽然神经网络可以是一个很好的学习设备,但它们通常被称为黑盒子。我们可以通过绘制其特征图(过滤器的输出)来了解神经网络的学习情况。从这些特征图,可以发现神经网络觉得有趣的图像特征。对于一个标志,也许内部网络的特征映射对符号的边界轮廓,或者符号的着色符号有强烈反应。

让我们看看第一个卷积层的 6 个不同的过滤器对于“禁止驶入”标志有何反应。这里亮点反映了神经元被激活的地方。可以看到,神经网络正聚焦于符号的圆形形状和中间的平行线。

禁止驶入标志
禁止驶入标志
特征图 - 禁止驶入标志
特征图 - 禁止驶入标志

与此相对,对于特征图中不含交通标志的天空图像。大多数的过滤器是黑色的,这意味着神经网络在该图像中没有识别出值得注意的标志。

这不是超级有趣!

附录:

德国交通标志数据集:

http : //benchmark.ini.rub.de/?section=gtsrb&subsection= dataset

GitHub完整代码:

https://github.com/priya-dwivedi/CarND/blob/master/CarND-Traffic-Sign-Classifier-P2/Traffic_Sign_Classifier_pd.ipynb

ref:

https://medium.com/towards-data-science/traffic-signs-classification-for-self-driving-car-67ce57877c33

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据集
  • 了解数据
  • 数据预处理
  • 模型架构
  • 可视化神经网络
  • 附录:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档