基于MSER的车牌提取和字符分割仿真

Posted 51matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于MSER的车牌提取和字符分割仿真相关的知识,希望对你有一定的参考价值。

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

 

 

2.算法涉及理论知识概要

     自然场景下的文本检测是自然场景图像信息提取的基础,在车牌识别、实时翻译、图像检索等领域具有广泛的应用价值及研究意义。基于连通区域的方法是自然场景文本检测中最为常见的方法,其中最大稳定极值区域(Maximally Stable Extremal Regions,MSER)算法和颜色聚类算法都有着广泛的应用。

 

MSER = Maximally Stable Extremal Regions

最大极值稳定区

业界认为是性能最好的仿射不变区域,MSER是当使用不同的灰度阈值对图像进行二值化时得到的最稳定的区域,特点:

1.对于图像灰度的仿射变化具有不变性

2.稳定性,区域的支持集相对灰度变化稳定

3.可以检测不同精细程度的区域

 

       交通标志检测和识别系统的关键在于交通标志候选区域的分割、交通标志的特征提取和分类器的设计。交通标志背景复杂,很难从其背景中将其分割出来,并且由于交通标志一般放在户外场景中,受外界原因(光照,损坏、遮挡等)影响较大,这就大大加大了交通标志检测的难度。交通标志本身种类繁多,相同形状的交通标志根据其象形图案的不同,意义千差万别,造成识别阶段准确率低。

 

       交通标志路牌中的每个交通标志信息均可以用一个区域特征来表示,最大稳定极值区域(Maximally Stable Extremal Regions,简称 MSER)就是一种很好的区域检测算子,它是由 Matas等人]提出的一种局部区域仿射不变特征的区域检查算子。该算子已用于大规模图像索、识别、以及跟踪,相比其他区域算子,该算子对图像灰度具有仿射变换不变性和多尺度检测目标的优点,能够很好的提取交通标志有效区域,有助于交通标志的定位及分割。MSER算法中,其极值区域的定义为和图像的阈值相关,设定好灰度阈值后,在图像中的某个区域能够成为极值区域的条件是无法再找到一个不大于所设定的灰度阈值的像素点去扩大当前区域。在所有的二值化图中,每个连通区域都是一个极值区域,即使是一个黑点,也是一个极值区域。任选两个极值区域,只有两种关系,一种是没有交集,一种是包含。每个二值图像上可以有多个极值区域,原始灰度图像中每个像素点可能对应多个二值图像上的极值区域。

 

      MSER算法中,其最大稳定极值区域的定义为极值区域随着设置的灰度阈值的增大而逐渐“长大”。这样的一组极值区域由小到大是相互嵌套的关系,分别用来表示这一系列相互嵌套的极值区域序列。如果为MSER,则其满足如下条件:

 

 

 

       变量表示的是像素差值。由于 Q 是一个像素点的集合,所以绝对值代表的是该集合的基数,表示这个极值区域的面积。需先要先找到所有的极值区域,然后通过上面的“稳定标准”来确定最终的 MSER

 

MSER = Maximally Stable Extremal Regions

 

业界认为是性能最好的仿射不变区域,MSER是当使用不同的灰度阈值对图像进行二值化时得到的最稳定的区域,特点:

 

1.对于图像灰度的仿射变化具有不变性

 

2.稳定性,区域的支持集相对灰度变化稳定

 

3.可以检测不同精细程度的区域

 

MSER提取过程

 

1.使用一系列灰度阈值对图像进行二值化处理

 

2.对于每个阈值得到的二值图像,得到相应的黑色区域与白色区域

 

3.在比较宽的灰度阈值范围内保持形状稳定的区域就是MSERs

 

4.评判标准: dA/dt

 

A: 二值图像区域面积,t: 灰度阈值

 

 

 

 

3.MATLAB核心程序

 

[x,y]=size(bwimg);
j=1;
cwidth=[];
whole=x*y;
connComp = bwconncomp(bwimg); % Find connected components
threefeature = regionprops(connComp,\'Area\',\'BoundingBox\',\'Centroid\'  );
broder=[threefeature.BoundingBox];%[x y width height]字符的区域
area=[threefeature.Area];%区域面积
centre=[threefeature.Centroid];
%area
for i=1:connComp.NumObjects
    leftx=broder((i-1)*4+1);
    lefty=broder((i-1)*4+2);
    width=broder((i-1)*4+3);
    height=broder((i-1)*4+4);
    cenx=floor(centre((i-1)*2+1));
    ceny=floor(centre((i-1)*2+2));
   
    if area(i)<10||area(i)>0.3*whole
        %display(area(i));
        bwimg(connComp.PixelIdxListi)=0;
    elseif width/height<0.1||width/height>2
        %display(width),display(height);
        bwimg(connComp.PixelIdxListi)=0;
    else
        cwidth=[cwidth,width];
        rectangle(\'Position\',[leftx,lefty,width,height], \'EdgeColor\',\'g\',\'LineWidth\',1);
        seg_img_colorj=colorImg(lefty+1:lefty+height,leftx+1:leftx+width,:); % +1 避免索引为0
        seg_img_bwj=p_img(lefty+1:lefty+height,leftx+1:leftx+width);
        j=j+1;
    end
end
 
 
p_image=bwimg;

 

  

 

基于SVM支持向量机的车牌分割识别算法matlab仿真——详细版

目录

一、理论基础

二、核心程序

三、仿真测试结果


一、理论基础

       车牌识别系统集合了先进的光电、计算机视觉、信号处理、图像处理、模式识别、人工智能、远程数据访问等技术,实现对监控路面过往的每一辆机动车的特征图像和车辆全景图像进行连续全天候实时记录,利用图像处理的分析方法,提取出车牌区域,进而对车牌区域进行字符分割和识别。随着交通现代化的发展要求,汽车牌照自动识别技术已经越来越受到人们的重视。车牌识别(License Plate Recognition,LPR)技术是一项利用车辆的动态视频或静态图像进行牌照号码自动识别的

以上是关于基于MSER的车牌提取和字符分割仿真的主要内容,如果未能解决你的问题,请参考以下文章

基于SVM支持向量机的车牌分割识别算法matlab仿真——详细版

基于颜色模型和形态学处理的车牌定位和识别matlab仿真

基于GRNN广义回归神经网络的车牌字符分割和识别matlab仿真

基于形态学处理的车牌定位和车牌提取matlab仿真

车牌识别基于HOG特征提取和GRNN网络的车牌识别算法matlab仿真

基于SVM支持向量机的车牌分割识别算法matlab仿真