交通标志识别

下载数据集



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这个值。



训练神经网络







运行结果







评估神经网络



随机选择几张图来判断分类的准确性




运行结果





随机选择10个图像,预测正确的有6个,错误的有4个,准确率为60%。



测试模型



用测试集数据对训练好的模型进行测试,计算准确率,BelgiumTS提供的验证数据集Testing就是用来干这个事的。





运行结果



输入测试模型文件名,执行后的准确率如下:









  • 2
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值