论文部分内容阅读
摘 要:本文设计了一款基于BP神经网络的机动车车牌识别系统,系统能够对采集到的汽车照片进行自动的车牌识别,并将对应的车牌信息进行自动保存。本文的系统主要包含两大模块:车牌图像预处理模块和车牌号码识别模块。采用本文提供的两大算法模块,可以得到精确的车牌号码信息,经过实验测试,本文设计的算法在车牌号码识别方面能够达到95%以上的识别精度,可以用于实际的工作环境中。
关键词:车牌识别;图像处理;特征提取;BP神经网络识别
中图分类号:TP391.4 文献标识码:A
1 绪论
1.1 研究背景与意义
为了防止交通事故的发生以及肇事逃逸的问题,智能交通网络可以实时地捕捉汽车的车牌号码,并在汽车出现违反交通规则的问题时,及时地进行报警。本文考虑到车牌自动识别技术的发展趋势。
本文的系统主要包含两大模块:车牌图像预处理模块和车牌号码识别模块。采用本文提供的两大算法模块,可以得到精确的车牌号码信息,经过实验测试,本文设计的算法在车牌号码识别方面能够达到95%以上的识别精度,可以用于实际的工作环境中。
1.2 本文的研究内容
本文主要设计一款基于BP神经网络的机动车车牌识别系统,系统通过两大模块来实现对车牌号码的识别。这两大模块分别为:车牌图像预处理模块和车牌号码识别模块。两个模块分别具有如下所示的特性:
车牌图像预处理模块。在车牌图像的预处理模块中,主要包含了车牌图像的灰度处理、滤波处理、二值化处理以及锐化处理等几个处理流程。
车牌号码识别模块。在车牌号码识别模块中,主要完成了算法的训练过程和识别过程。在算法的训练过程中,会采用系统提供的模板数据库中的车牌模板图像对BP神经网络算法进行训练,从而得到BP神经网络的识别算法的各项特性参数。而在算法的识别过程中,就会采用训练得到的这些数据来对车牌号码进行自动匹配,并输出识别到的车牌号码。
本文的系统通过对上述两个算法模块的构建,实现了对车牌号码的自动识别功能,经过实验测试,本文提供的车牌自动识别算法在识别精度方面能够达到95%以上的测试精度,能够应用于实际的生活环境中。
2 车牌图像预处理
考虑到本文的系统是一款面向实时应用的系统,所以在提取图像特征时,应该先对图像进行预处理,达到去除冗余数据,图像的预处理部分的流程如图1所示:
右图中所示的预处理流程中,总共包含了图像灰度化、图像滤波、图像二值化以及图像锐化等步骤。具有如下所示的特性。
2.1 图像灰度化
下图给出了图像灰度化的处理效果:
2.2 图像滤波
滤波模块主要用来对图像进行去噪声处理,尤其是在图像处理领域中,如果噪声数据比较大时,会引入较大的误差。本文使用的维纳滤波算法是围绕N*N窗口内的最小方差来计算的。
经过维纳滤波处理后的图像如下所示:
可以看出,经过滤波之后的原始灰度图像在局部范围变得更加平滑,这个变化可以从像素的分布直方图中看出。下图给出了直方图分布示意图:
2.3 图像二值化
计算后的图像数据中,仍然存在一定的冗余,因为在进行图像识别时,系统只关心图像的结构信息,而对图像的色度信息、亮度信息不感兴趣。
一般而言,在对图像进行二值化时,可以有两种方法:全局阈值法和局部阈值法。其中全局阈值法顾名思义,本文采用bernsen局部阈值法来对图像进行二值化处理。經过二值化处理后的图像如下所示:
上图中的图像经过二值化处理后,图像的纹理变得更加明显,而纹理之间的凹陷由于低于阈值,所以得到了很好的抑制。
2.4 图像锐化
本文采用边缘提取算法来强化图像的纹理信息,以进一步提升系统的识别精度。边缘提取算法一般包括了拉普拉斯算子、Sobel算子以及Prewitt算子等,这些算子均可以用来对图像的边缘进行提取,实现图像锐化的功能。本文采用了Sobel算子来作为图像的边缘提取算法。下图给出了Sobel算子对图像的处理结果:
上图所示为使用Sobel算子与拉普拉斯算子对图像进行锐化处理后的效果图,可以看出Sobel算子处理后的图像比拉普拉斯算子保留了更多的图像细节,整体纹理也更为清晰。
2.5 生成车牌号码模板数据库
车牌号码模板数据库的生成需要对车牌中的号码信息进行裁剪,将属于车牌号码的图像裁剪下来后,即可作为车牌号码的特征模板,下图给出了车牌特征模板数据:
上图中的车牌模板均是由0和1像素值构成的最小车牌图像。
3 车牌号码识别算法设计
3.1 BP神经网络算法简介
本文采用基于BP神经网络的识别算法来对图像进行识别,BP神经网络算法具有如下所示的流程:
上图所示,有三层网络传递结构,算法的层数可以在应用上层进行配置,每层之间会传递上一层计算的误差,通过对误差的调整来得到最佳的权值,最终会在输出一侧得到与原始数据均方误差最小的输出。
在机器学习领域中,一般可以将算法分为监督学习和非监督学习两种。图9展示的BP神经网络计算框架中,采用了最速下降法来在上下层之间传递偏差,通过输入与输出的比较来对参数进行循环优化,直到取得的偏差小于阈值。所以BP神经网络算法采用的是迭代计算的算法框架。
3.2 算法训练过程设计
前文已经提及,BP神经网络算法属于监督学习的一种,所以需要对算法的参数进行训练,使用训练后的参数来对图像进行识别。BP神经网络的训练过程如下所示:
从上图所可以看到,在算法对数据集进行处理时,整体会分为两大模块:数据的正向传递模块与数据的反向传递模块。
3.3 算法识别过程设计
算法的识别过程会采用训练过程得到的参数来对图像与模板数据库中的数据进行比对,如果比对成功,就得到了该图像的车牌号码。基于BP神经网络的车牌识别算法流程如下所示:
从上图可以看出,算法的主要精力放在了模型的训练方面,而在算法的识别过程中,算法会通过预处理部分得到图像的特征模板,然后通过训练过程得到的模型参数来将该输入图像与数据库中的车牌模板数据进行比对,如果比对成功,就代表得到了对应的车牌号码信息,车牌识别过程也就此结束。
关键词:车牌识别;图像处理;特征提取;BP神经网络识别
中图分类号:TP391.4 文献标识码:A
1 绪论
1.1 研究背景与意义
为了防止交通事故的发生以及肇事逃逸的问题,智能交通网络可以实时地捕捉汽车的车牌号码,并在汽车出现违反交通规则的问题时,及时地进行报警。本文考虑到车牌自动识别技术的发展趋势。
本文的系统主要包含两大模块:车牌图像预处理模块和车牌号码识别模块。采用本文提供的两大算法模块,可以得到精确的车牌号码信息,经过实验测试,本文设计的算法在车牌号码识别方面能够达到95%以上的识别精度,可以用于实际的工作环境中。
1.2 本文的研究内容
本文主要设计一款基于BP神经网络的机动车车牌识别系统,系统通过两大模块来实现对车牌号码的识别。这两大模块分别为:车牌图像预处理模块和车牌号码识别模块。两个模块分别具有如下所示的特性:
车牌图像预处理模块。在车牌图像的预处理模块中,主要包含了车牌图像的灰度处理、滤波处理、二值化处理以及锐化处理等几个处理流程。
车牌号码识别模块。在车牌号码识别模块中,主要完成了算法的训练过程和识别过程。在算法的训练过程中,会采用系统提供的模板数据库中的车牌模板图像对BP神经网络算法进行训练,从而得到BP神经网络的识别算法的各项特性参数。而在算法的识别过程中,就会采用训练得到的这些数据来对车牌号码进行自动匹配,并输出识别到的车牌号码。
本文的系统通过对上述两个算法模块的构建,实现了对车牌号码的自动识别功能,经过实验测试,本文提供的车牌自动识别算法在识别精度方面能够达到95%以上的测试精度,能够应用于实际的生活环境中。
2 车牌图像预处理
考虑到本文的系统是一款面向实时应用的系统,所以在提取图像特征时,应该先对图像进行预处理,达到去除冗余数据,图像的预处理部分的流程如图1所示:
右图中所示的预处理流程中,总共包含了图像灰度化、图像滤波、图像二值化以及图像锐化等步骤。具有如下所示的特性。
2.1 图像灰度化
下图给出了图像灰度化的处理效果:
2.2 图像滤波
滤波模块主要用来对图像进行去噪声处理,尤其是在图像处理领域中,如果噪声数据比较大时,会引入较大的误差。本文使用的维纳滤波算法是围绕N*N窗口内的最小方差来计算的。
经过维纳滤波处理后的图像如下所示:
可以看出,经过滤波之后的原始灰度图像在局部范围变得更加平滑,这个变化可以从像素的分布直方图中看出。下图给出了直方图分布示意图:
2.3 图像二值化
计算后的图像数据中,仍然存在一定的冗余,因为在进行图像识别时,系统只关心图像的结构信息,而对图像的色度信息、亮度信息不感兴趣。
一般而言,在对图像进行二值化时,可以有两种方法:全局阈值法和局部阈值法。其中全局阈值法顾名思义,本文采用bernsen局部阈值法来对图像进行二值化处理。經过二值化处理后的图像如下所示:
上图中的图像经过二值化处理后,图像的纹理变得更加明显,而纹理之间的凹陷由于低于阈值,所以得到了很好的抑制。
2.4 图像锐化
本文采用边缘提取算法来强化图像的纹理信息,以进一步提升系统的识别精度。边缘提取算法一般包括了拉普拉斯算子、Sobel算子以及Prewitt算子等,这些算子均可以用来对图像的边缘进行提取,实现图像锐化的功能。本文采用了Sobel算子来作为图像的边缘提取算法。下图给出了Sobel算子对图像的处理结果:
上图所示为使用Sobel算子与拉普拉斯算子对图像进行锐化处理后的效果图,可以看出Sobel算子处理后的图像比拉普拉斯算子保留了更多的图像细节,整体纹理也更为清晰。
2.5 生成车牌号码模板数据库
车牌号码模板数据库的生成需要对车牌中的号码信息进行裁剪,将属于车牌号码的图像裁剪下来后,即可作为车牌号码的特征模板,下图给出了车牌特征模板数据:
上图中的车牌模板均是由0和1像素值构成的最小车牌图像。
3 车牌号码识别算法设计
3.1 BP神经网络算法简介
本文采用基于BP神经网络的识别算法来对图像进行识别,BP神经网络算法具有如下所示的流程:
上图所示,有三层网络传递结构,算法的层数可以在应用上层进行配置,每层之间会传递上一层计算的误差,通过对误差的调整来得到最佳的权值,最终会在输出一侧得到与原始数据均方误差最小的输出。
在机器学习领域中,一般可以将算法分为监督学习和非监督学习两种。图9展示的BP神经网络计算框架中,采用了最速下降法来在上下层之间传递偏差,通过输入与输出的比较来对参数进行循环优化,直到取得的偏差小于阈值。所以BP神经网络算法采用的是迭代计算的算法框架。
3.2 算法训练过程设计
前文已经提及,BP神经网络算法属于监督学习的一种,所以需要对算法的参数进行训练,使用训练后的参数来对图像进行识别。BP神经网络的训练过程如下所示:
从上图所可以看到,在算法对数据集进行处理时,整体会分为两大模块:数据的正向传递模块与数据的反向传递模块。
3.3 算法识别过程设计
算法的识别过程会采用训练过程得到的参数来对图像与模板数据库中的数据进行比对,如果比对成功,就得到了该图像的车牌号码。基于BP神经网络的车牌识别算法流程如下所示:
从上图可以看出,算法的主要精力放在了模型的训练方面,而在算法的识别过程中,算法会通过预处理部分得到图像的特征模板,然后通过训练过程得到的模型参数来将该输入图像与数据库中的车牌模板数据进行比对,如果比对成功,就代表得到了对应的车牌号码信息,车牌识别过程也就此结束。