132广东卡派思智能出入口设备工厂!
6673旨在提供实惠优质的车辆出入口道闸和车牌识系统!
4590解决售前售后一切问题!
恭候咨询!
车牌识别分为两个过程:车牌检测(Plate Detection)和字符识别(Chars Recognition)。
车牌检测(Plate Detection):对一个包含车牌的图像进行分析,终截取出只包含车牌的一个图块。这个步骤的主要目的是降低了在车牌识别过程中的计算量。如果直接对原始的图像进行车牌识别,会非常的慢,因此需要检测的过程。可用SVM判别截取的图块是否是真的“车牌”。
①图像分割:采用一系列不同的滤波器、形态学操作、轮廓算法和验证算法,提取图像中可能包含车牌的区域。
假设车牌图片没有旋转和变形,则车牌分割的一个重要特征是车牌中有大量的垂直边缘。
具体算法步骤如下:
1.将彩色图像转化为灰度图,并采用5*5模版对图像进行高斯模糊来退出由照相机或其他环境噪声(如果不这么做,我们会得到很多垂直边缘,导致错误检测。)
2.使用Sobel滤波器求一阶水平方向导数,以此寻找垂直边缘
3.使用Otsu自适应阈值算法获得图像二值化的阈值,并由此得到一副二值画图片
4.采用闭操作,去除每个垂直边缘线之间的空白空格,并连接所有包含 大量边缘的区域(这步过后,我们将有许多包含车牌的候选区域)
5.由于大多数区域并不包含车牌,我们使用轮廓外接矩形的纵横比和区域面积,对这些区域进行区分。
a.首先使用findContours找到外部轮廓
b.使用minAreaRect获得这些轮廓的小外接矩形,存储在vector向量中
c.使用面积和长宽比,作基本的验证【阈值:长宽比为4.727272,允许误差范围正负40%,面积范围15*15至125*125】
6.由于每个车牌都包含白色背景属性。我们为了更精确的裁剪图像,可以使用floodfill算法【用颜色填充某一密闭区域,相当于油漆桶的功能】来提取那些旋转的矩形。
*步的原文:get several seeds near the last rotated rectangle center. Then get the minimum size of plate between the width and height, and use it to generate random seeds near the patch center.】总之,得到每个矩形的中心,然后求每个矩形各自长宽的较小值,再用随机数和这个较小值得到中心附近的种子点
第二步的原文:for each seed, we use a floodFill function to draw a new mask image to store the new closest cropping region:
第三部的翻译:对这些裁剪区域,再次用纵横比和区域面积进行验证,再去除图像的旋转,并裁剪图像到统一尺寸,均衡化图像的灰度
②用SVM分类。分类前要先训练SVM,准备正、负样本(图像分割后得到的车牌及非车牌图像)。
字符识别(Chars Recognition):对只包含车牌的图块进行光学字符识别(OCR),可用CNN实现。