赞
踩
引 言
车牌自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。其硬件设备一般包括触发设备(监测车辆是否进入视野)、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机(如计算机)等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。某些车牌识别系统还具有通过视频图像判断是否有车的功能称之为视频车辆检测。一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。车牌识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。而本文所使用的是最为常见的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', '
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。