Tensorflow CNN车牌识别

这篇博客分享了使用TensorFlow实现CNN进行车牌识别的过程,重点介绍了针对原代码的改进措施,包括采用Xavier初始化、更换为Leaky ReLU激活函数、引入L2正则化,以及在准确率下降时停止训练。通过这些调整,训练集准确率达到了96.77%。此外,博主还提到了使用TensorBoard进行训练监测。
摘要由CSDN通过智能技术生成

数据集和源代码来自 https://blog.csdn.net/qq_36148847/article/details/79306762

萌新入门,如果过程有误请指正

当时做的时候数据集还只有几百张,今天看发现已经扩充了很多

下面的代码是当时实验的时候的代码,只识别了六个字

原博给的代码经过测试后,发现过拟合问题严重,模型不稳定,因此作以下修改:

1.更改了参数初始化方式:改成xavier初始化方法

参数初始化的目的是为了让神经网络在训练过程中学习到有用的信息,Glorot认为:优秀的初始化应该使得各层的激活值和状态梯度的方差在传播过程中的方差保持一致,Xavier初始化确实保证了Glorot条件。

2.更改了激活函数:改成leaky-relu

ReLU是将所有的负值都设为零,相反,Leaky ReLU是给所有负值赋予一个非零斜率。

3.增加了正则化过程:L2正则化

结果训练集准确率是96.77%左右,当时测试集太小了,准确率算出来没意义。

4.准确率开始下降的时候停止训练,准确率不变的时候停止训练

还有其他修改想起来再继续补……增加了tensorboard监测,不过被我注释掉一些

import sys  
import os  
import time  
import random  

import matplotlib.pyplot as plt
import matplotlib.image as ima  
import numpy as np  
import tensorflow as tf  
  
from PIL import Image  
  

SIZE = 1280  
WIDTH = 32  
HEIGHT = 40  
NUM_CLASSES = 6 
iterations = 300
  
SAVER_DIR = "D:/tf_car_license_dataset/province/"  
from tensorflow.contrib.tensorboard.plugins import projector
  
PROVINCES = ("京","闽","粤","苏","沪","浙")  
nProvinceIndex = 0  
  
time_begin = time.time()  


# 定义输入节点,对应于图片像素值矩阵集合和图片标签(即所代表的数字)  
x = tf.placeholder(tf
  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值