用keras框架搭建神经网络——(五)识别交通标志

从这一个阶段开始,搭建的神经网络将用于更加贴近生活的实用场景,并逐步尝试优化用户体验做成某种“产品”。

源代码下载:https://download.csdn.net/download/rance_king/11015514

  1. 导入包,下载数据集
    数据集来源:https://bitbucket.org/jadslim/german-traffic-signs ,其中包含一个csv文件和三个pickle文件,csv文件将不同的交通标志名称对应到不同的class数字标号分类中,三个csv文件分别对应着训练集,测试集合验证集。
import numpy as np
import matplotlib.pyplot as plt
import keras
from keras.models import Sequential
from keras.optimizers import Adam
from keras.layers import Dense
from keras.layers import Flatten, Dropout
from keras.utils.np_utils import to_categorical
from keras.layers.convolutional import Conv2D, MaxPooling2D
import random
import pickle
import pandas as pd
import cv2

  1. 载入数据集,查看了数据集dict的key之后发现有feature和label两个键,应该是分别作为图片和标签来使用的。
#pickle文件是一种二进制文件,这里pickle.load则将这种二进制文件反序列化变成dict,‘rb’的意思是read binary
with open('german-traffic-signs/train.p', 'rb') as f:
    train_data = pickle.load(f)
with open('german-traffic-signs/valid.p', 'rb') as f:
    val_data = pickle.load(f)
with open('german-traffic-signs/test.p', 'rb') as f:
    test_data = pickle.load(f)
X_train, y_train = train_data['features'], train_data['labels']
X_val, y_val = val_data['features'], val_data['labels']
X_test, y_test = test_data['features'], test_data['labels']
#验证一下数据集中图片和标签的一一对应关系
assert(X_train.shape[0] == y_train.shape[0]), "the number of the dataset is not equal to the number of the labels"
#通过pandas载入data,然后马上可以发现交通信号一共有43个类别需要进行鉴别,对应编号0-42
data = pd.read_csv('german-traffic-signs/signnames.csv')
  1. 查看数据集中数据的分布情况,可以发现这个数据集中各个分类下的数据不是均匀的。
num_of_samples=[]
 
cols = 5
num_classes = 43
 
fig, axs = plt.subplots
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值