下载数据集



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就是用来干这个事的。


交通标志识别


运行结果



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

交通标志识别
交通标志识别






相关文章:

  • 2021-12-29
  • 2021-12-04
  • 2021-07-17
  • 2021-12-29
  • 2021-12-27
  • 2021-12-21
  • 2022-01-10
猜你喜欢
  • 2021-12-13
  • 2021-12-29
  • 2021-11-27
  • 2021-10-14
  • 2021-07-13
  • 2021-12-29
  • 2021-12-31
相关资源
相似解决方案