#设置matplotlib将图片保存起来
import matplotlib
matplotlib.use('Agg')
#导包
import argparse
import os
import cv2
from imutils import paths
import random
import numpy as np
import matplotlib.pyplot as plt
from keras.preprocessing.image import img_to_array
from keras.utils import to_categorical
from keras.optimizers import Adam
from keras.preprocessing.image import ImageDataGenerator
from Lenet import LeNet
#定义参数解析器
def args_parse():
ap = argparse.ArgumentParser()
ap.add_argument("-train", "--data_train", required=True, help="path to input data_train")
ap.add_argument("-test", "--data_test", required=True, help="path to input data_test")
ap.add_argument("-m", "--model", required=True, help='path to output the model')
ap.add_argument("-p", "--plot", type=str, default="plot.png", help="path to output accuracy/loss")
args = vars(ap.parse_args())
return args
#参数初始化
EPOCHS = 35
INIT_LR = 1e-3
BATCH_SIZES = 32
NUM_CLASS = 62
NORM_SIZE = 32
#载入数据
def load_data(path):
print("begin to load iamges...")
data = []
labels = []
imagePaths = sorted(list(paths.list_images(path)))
random.seed(250)
random.shuffle(imagePaths)
for ip in imagePaths:
image = cv2.imread(ip)
image = cv2.resize(image, (NORM_SIZE, NORM_SIZE))
image = img_to_array(image)
data.append(image)
label = int(ip.split(os.path.sep)[-2])
labels.append(label)
#归一化
data = np.array(data, dtype='float') / 255.0
labels = np.array(labels)
#标签转化成哑编码形式
labels = to_categorical(labels, num_classes=NUM_CLASS)
return data, labels
#训练函数
def train(idg, X_train, X_test, y_train, y_test, args):
print("compiling model ...")
model = LeNet.build(width=NORM_SIZE, height=NORM_SIZE, depth=3, classes=NUM_CLASS)
opt = Adam(lr=INIT_LR, decay=INIT_LR/EPOCHS)
model.compile(loss="categorical_crossentropy", optimizer=opt, metrics=['accuracy'])
#训练网络参数
print("start to train network...")
H = model.fit_generator(idg.flow(X_train, y_train, batch_size=BATCH_SIZES),
validation_data=(X_test, y_test), steps_per_epoch=len(X_train)/BATCH_SIZES,
epochs=EPOCHS, verbose=1)
#保存网络模型
print('save network...')
model.save(args['model'])
#绘制训练集的代价和准确率
print("start to plot...")
plt.style.use('ggplot')
plt.figure()
N = EPOCHS
plt.plot(np.arange(0, N), H.history['loss'], label='train_loss')
plt.plot(np.arange(0, N), H.history['val_loss'], label='val_loss')
plt.plot(np.arange(0, N), H.history['acc'], label='train_acc')
plt.plot(np.arange(0, N), H.history['val_acc'], label='val_acc')
plt.title("Training Loss and Accuracy on traffic-sign classifier")
plt.xlabel("Epoch#")
plt.ylabel("Loss/Accuracy")
plt.legend(loc="lower left")
plt.savefig(args['plot'])
if __name__=='__main__':
args = args_parse()
train_path = args['data_train']
test_path = args['data_test']
X_train, y_train = load_data(train_path)
X_test, y_test = load_data(test_path)
#数据增强
idg = ImageDataGenerator(rotation_range=30, width_shift_range=0.1,
height_shift_range=0.1, shear_range=0.2, zoom_range=0.2,
horizontal_flip=True, fill_mode="nearest")
train(idg, X_train, X_test, y_train, y_test, args)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
人工智能-项目实践-智慧交通-使用cNN对交通标志进行分类 训练集使用: python train.py --data_train ./train --data_test ./test --model traffic_sign.model 单张图片测试: python predict.py --model traffic_sign.model -i ./test/00000/00017_00000.png.png -s
资源推荐
资源详情
资源评论
收起资源包目录
人工智能-项目实践-智慧交通-使用cNN对交通标志进行分类.zip (2000个子文件)
01639_00002.png 383KB
01146_00000.png 306KB
01600_00000.png 275KB
01146_00001.png 265KB
01600_00001.png 251KB
01600_00002.png 249KB
01865_00000.png 237KB
01463_00001.png 216KB
01146_00002.png 213KB
01836_00000.png 212KB
00722_00002.png 209KB
01289_00001.png 208KB
00722_00001.png 207KB
01855_00000.png 203KB
00722_00000.png 202KB
01150_00000.png 195KB
00346_00002.png 194KB
01289_00002.png 193KB
01859_00000.png 187KB
01164_00001.png 178KB
00346_00001.png 178KB
01172_00001.png 176KB
01482_00000.png 176KB
01164_00000.png 172KB
00340_00000.png 170KB
01164_00002.png 170KB
00717_00001.png 169KB
01834_00000.png 169KB
00346_00000.png 168KB
01150_00002.png 162KB
01172_00000.png 161KB
00340_00002.png 160KB
00031_00000.png 157KB
00587_00000.png 157KB
01216_00000.png 156KB
00946_00000.png 153KB
01970_00001.png 153KB
01707_00001.png 152KB
01430_00002.png 152KB
01216_00001.png 152KB
01707_00000.png 151KB
01550_00002.png 151KB
01625_00002.png 150KB
01704_00002.png 149KB
01577_00000.png 149KB
01463_00002.png 148KB
01216_00002.png 145KB
01968_00002.png 143KB
00256_00002.png 139KB
00340_00001.png 139KB
00843_00002.png 138KB
00843_00000.png 138KB
01053_00000.png 136KB
00946_00001.png 136KB
01881_00000.png 134KB
01634_00001.png 133KB
00208_00000.png 132KB
01755_00002.png 132KB
01493_00002.png 131KB
01169_00000.png 129KB
01053_00001.png 128KB
01668_00000.png 127KB
00300_00000.png 125KB
01668_00002.png 125KB
01150_00001.png 123KB
01637_00000.png 122KB
01419_00002.png 122KB
00843_00001.png 121KB
01073_00001.png 119KB
01463_00000.png 118KB
01626_00000.png 116KB
01712_00002.png 116KB
01705_00002.png 114KB
01400_00000.png 112KB
00307_00000.png 112KB
00121_00000.png 112KB
00078_00002.png 111KB
00024_00002.png 110KB
01637_00001.png 110KB
01947_00002.png 109KB
01053_00002.png 109KB
00180_00000.png 108KB
00670_00000.png 107KB
01066_00000.png 105KB
00231_00002.png 104KB
01066_00001.png 103KB
00457_00000.png 102KB
00907_00001.png 102KB
01073_00000.png 102KB
01676_00000.png 102KB
01925_00001.png 100KB
01169_00001.png 99KB
01066_00002.png 99KB
01409_00002.png 98KB
01705_00000.png 98KB
01707_00002.png 98KB
00454_00002.png 97KB
00457_00002.png 97KB
00457_00001.png 96KB
01627_00000.png 95KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
博士僧小星
- 粉丝: 1883
- 资源: 5878
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功