目录
一、车牌识别算法流程
二、车牌检测
一、车牌识别算法流程
在解释ANPR代码之前,需要明白主要步骤和使用ANPR 算法的任务。ANPR 有两个主要步骤:车牌检测和车牌识别。车牌检测的目的是在整个视频帧中检测到车牌位置。当在图像中检测到车牌时,分割的车牌被传到第二个步骤,即车牌识别,它用 OCR 算法来识别车牌上的字母和数字。
下图是两个主要算法的步骤:车牌检测和车牌识别。在完成这些步骤后,程序将在摄像机的帧上绘制已检测到的车牌字符。算法有可能给出错误结果甚至不会返回结果。
上图展示了本项目的整个步骤,下面还将定义模式识别算法常用的三个额外步骤:
- 分割:这一步会检测并裁剪图像中每个感兴趣的块 /区域;
- 特征提取:这一步对字符图像集的每个部分进行提取;
- 分类:这一步会从车牌识别那一步的结果中得到每个字符,或从车牌检测 (platedetection)那一步中将所得图像块分为“是车牌”或“不是车牌”。
- 下图展示了整个算法应用中模式识别的步骤
除了这个主要的应用以外,模式识别算法的主要目的是检测和识别汽车车牌,下面简单介绍一下两个任务。
- 如何训练模式识别系统:
- 如何评估模式识别系统
但这两个任务比主要应用本身更重要,因为如果没有正确训练模式识别系统,整个系统可能会失败或不能正常工作。不同的模式需要不同的训练和评估类型。为了得到最好的结果,本章需要在不同环境、条件以及特征下评估所建的系统。这两个任务有时一起使用因为不同特征可产生不同的结果。
二、车牌检测
这一步要检测当前帧中所有的车牌。为了实现此功能,该步骤又分为两个主要步骤:图像分割和对分割的图像进行分类。这一步的功能不会解释因为将图像块作为一个向量特征。
在第一步(图像分割)中,将使用各种滤波器、形态学算子,以及轮廓算法来验证所获取图像中有车牌的部分。
在第二步(分类)中,对每个图像块(即,特征)将采用支持向量机(Support VectorMachine,SVM)作为分类器进行分类。在创建主要的应用之前,需训练两个不同的类车牌和非车牌号。这步所使用的图像是在汽车前面 2~ 4 米拍摄平行的正面视角彩色图像这些图像有 800 像素宽。这些要求对确保正确的图像分割很重要。可创建一个多尺度图像算法来进行检测。
下面这幅图展示了车牌检测的所有过程(都调用opencv)
- Sobel滤波器;
- 阈值算子:
- 闭形态学算子;
- 一个填充区域掩码:
- 用红色标记(特征图像中)可能检测到的车牌;
- 在执行 SVM分类器后检测车牌。