交通标志识别—基于卷积神经网络模型
导入有关库
import urllib.request
import os # python中的os模块用于处理文件和目录
import tarfile
import tensorflow._api.v2.compat.v1 as tf
import tensorflow #导入深度学习库,可引用有关算法模型
import tkinter.filedialog
import tkinter as tk
import matplotlib.pyplot as plt
from PIL import Image
tf.disable_v2_behavior()
import time
import numpy as np
import skimage # python中的skimage模块用于图像处理
from skimage import data, transform, io
from skimage.color import rgb2gray # rgb2gray将图片转化为灰度
import random
from sklearn.utils import shuffle
from PIL import Image
加载有关交通标志的数据集
def load_data(data_dir):
# 加载了两个list列表:
# images: 这个列表包含了一组图像,每个图像都转换为numpy数组。
# labels: 列表是标签,值为0到61的整数:
# 获取data_dir的所有子目录。每个代表一个标签。
directories = [d for d in os.listdir(data_dir)
if os.path.isdir(os.path.join(data_dir, d))]
labels = []
images = []
for d in directories:
label_dir = os.path.join(data_dir, d)
file_names = [os.path.join(label_dir, f) for f in os.listdir(label_dir) if f.endswith(".jpg")]
# 对于每个标签,加载它的图像,并将它们添加到图像列表。
# 并将标签编号(即目录名)添加到标签列表中。
for f in file_names:
images.append(skimage.io.imread(f))
labels.append(int(d))
return images, labels
# 获取训练集和测试集的特征和标签。
ROOT_PATH = "" #文件路径
train_data_dir = os