交通标志识别
2018-01-26 13:41
239 查看
下载数据集
1. 下载比利时的交通标志数据集,网址:http://btsd.ethz.ch/shareddata/2. 下载数据集BelgiumTSC_Training和测试集BelgiumTSC_Testing。在那个网页上有很多数据集,你只需要下载在BelgiumTS for Classification (cropped images)目录下的两个文件就行:
3. 解压训练和测试文件,目录为:
traffic-sign\datasets\BelgiumTSC_Training\Training
traffic-sign\datasets\BelgiumTSC_Testing\Testing
这2个文件夹下面都有62个子文件夹,编号从00000到00061,子文件夹的名字标识了里面图像的标签。
4. 数据集中的图片都是以.ppm格式来存的。这个格式现在已经非常少见了,很多工具都不支持它。这意味着,我们不能随意的打开某个文件夹,查看某张图。幸运的是Scikit Image library支持这个格式。
导入数据
根据文件路径获得图像-标签列表
对图像进行预处理
1. 先将图像进行缩放为28*28大小;
2. 再将彩色图转为灰度图;
3. 最后,随机选取图像显示,结果如下;
4. 修改随机显示图像,代码为:
修改后的图像为:
显示每组标签的第一幅图像
运行,获得标签和图像总数,如下:
热力图显示效果图如下:
灰度图显示效果如下:
显示特定标签内的图像
我们的数据看起来将所有的限速标志都归为了同一个类,不管标志上面的数字是多少。在刚开始的时候充分理解数据集是必要的,它可以在我们对输出预测的时候减少很多不必要的麻烦。
查看标签26内的图像,代码修改为:
运行效果为:
可以依次修改代码,看每个标签内的图像,例如修改为42,代码为:
运行后的42标签内的图像为:
打印原始图像信息
获得图像的宽、高、通道数、图像的最大、最小灰度值等数据,代码如下:运行结果如下:
打印预处理后的图像信息
运行结果如下:
打印出来的最小值和最大值现在却是在0到1.0之间,并不是像我们上面看到的0-255。那是因为resize函数自动为我们进行了归一化,将数据归一化到0.0-1.0范围很常见,因此我们保持这样既可。但要记住,如果之后想要把图像转换到0-255的正常范围,记得乘上255这个值。
训练神经网络
运行结果
评估神经网络
b6d7随机选择几张图来判断分类的准确性
运行结果
随机选择10个图像,预测正确的有6个,错误的有4个,准确率为60%。
测试模型
用测试集数据对训练好的模型进行测试,计算准确率,BelgiumTS提供的验证数据集Testing就是用来干这个事的。运行结果
输入测试模型文件名,执行后的准确率如下:相关文章推荐
- 车拍条件下交通标志实时识别
- TensorFlow:自己搭建卷积网络识别交通标志
- 用Deep Learning进行交通标志识别获得比人工识别更低的错误率
- 具有二维码自动识别功能的交通标志
- 参考文章 - 准确率98%的深度学习交通标志识别是如何做到的
- 使用TensorFlow识别交通标志
- 交通标志识别系统增长潜力可观
- 准确率98%的深度学习交通标志识别是如何做到的?
- 技术文章 | 准确率98%的深度学习交通标志识别是如何做到的?
- 机器学习实战:用胶囊网络识别交通标志
- 使用TensorFlow识别交通标志
- 交通标志的检测与识别
- 交通标志的检测和识别
- BelgiumTS识别交通标志
- 人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练
- 用Deep Learning进行交通标志识别获得比人工识别更低的错误率
- Vuforia SDK---- Vuforia+unity模型抖动和识别错误解决方案
- Tesseract-OCR 3.05 躲过语言文字识别(运行程序+中英日韩语言包)
- 分析系统常用进程 电眼识别病毒
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务