CNN实现车牌识别

引 言
车牌自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。其硬件设备一般包括触发设备(监测车辆是否进入视野)、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机(如计算机)等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。某些车牌识别系统还具有通过视频图像判断是否有车的功能称之为视频车辆检测。一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。车牌识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。而本文所使用的是最为常见的CNN,由此可见CNN应用的广泛,以及其图像提取能力的先进
1 数据集准备
1.1 特征提取
车牌的组成是由汉字、字母与数字组成,所以我们需要将一些车牌的图片中每一个汉字和、字母和数字进行分开分别保存在不同的文件夹下,比如提取的江苏缩写汉字“苏”保存在“zh_su”文件夹下,这部分的提取可以建立OpenCV代码批量处理即可,具体不细讲,和本文无关。
1.2 图像处理
将定位的图片特征进行OpenCV的图像处理,其中包括二值化、中值化、腐化、膨胀、中心化模糊、边缘检测、形态学梯度等等,其基本目的是在于方便和CNN提取的图像进行分类识别。处理的图像如下
在这里插入图片描述
在这里插入图片描述

Fig.1 file condition
2 建模外代码处理
2.1 训练前代码
首先需要导入所需要使用的python库,其中包括sys库、os库、numpy库、cv2库、TensorFlow框架、sklearn库。接着建立三个数字用来识别输出内容。分别是数字、字母、汉字组成,即为车牌的组成。建立未知量由三者加和而成,用以识别分类。定义图像尺寸、一次训练的图像数量以及输入输出的占位变量,代码如下:

import sys
import os
import numpy as np
import cv2
import tensorflow as tf
from sklearn.model_selection import train_test_split

numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
alphbets = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
                 'U', 'V', 'W', 'X', 'Y', 'Z']
chinese = ['zh_cuan', 'zh_e', 'zh_gan', 'zh_gan1', 'zh_gui', 'zh_gui1', 'zh_hei', 'zh_hu', 'zh_ji', 'zh_jin',
                'zh_jing', 'zh_jl', 'zh_liao', 'zh_lu', 'zh_meng', 'zh_min', 'zh_ning', 'zh_qing', 'zh_qiong',
                'zh_shan', 'zh_su', 'zh_sx', 'zh_wan', 'zh_xiang', 'zh_xin', 'zh_yu', 'zh_yu1', 'zh_yue', 'zh_yun',
                'zh_zang', 'zh_zhe']



dataset = numbers + alphbet
  • 13
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI看世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值