- 门牌位置提取
- 门牌字符识别
小车在移动过程中不断拍摄图像,首先需要识别图像中是否出现门牌,如果出现,还需要找出门牌的位置,分割出字符进行识别。
Neumann等人提出了一个基于最大稳定极值区域(MSER)的方法用来检测文字。MSER的基本原理是对一幅灰度图像取阈值进行二值化处理,阈值从0到255依次递增。在递增过程中,图像中存在某些连通区域变化很小,则该区域被称为最大稳定极值区域,数学定义为:
q(i)=|Qi+△-Qi-△|/|Qi| (to be rewrited)
其中,Qi表示阈值为i时的某一连通区域,△为灰度阈值的微小变化量,q(i)为阈值是i时的区域Qi的变化率。当q(i)为局部极小值时,则Qi为最大稳定极值区域。
需要说明的是,上述做法只能检测出灰度图像的黑色区域,不能检测出白色区域,因此还需要对原图进行反转,然后再进行阈值从0~255的二值化处理过程。这两种操作又分别称为MSER+和MSER-。
MSER具有以下特点:
1、对图像灰度具有仿射变换的不变性;
2、稳定性:具有相同阈值范围内所支持的区域才会被选择;
3、无需任何平滑处理就可以实现多尺度检测,即小的和大的结构都可以被检测到。
一些MSER效果图(to do)
由于MSER提取出来的候选框比较多,直接进行字符识别会极大降低识别速度,因此还需要一些方法对候选框进行筛选
文字的笔画宽度变化范围不大,基于这一先验经验,Boris等人提出了一种名为stroke width transform(SWT)的算法。
一、The Stroke Width Transform :
1、利用Canny edge detector对图像进行边缘检测,得到的每个边缘像素点p都具有一个方向梯度值dp;
2、若p位于笔画边缘,dp一定大致垂直于笔画方向,沿着射线 r=p+n*dp (n>=0)梯度查找与之对应的另一个边缘像素点q,那么dp与dq的方向是大致相反的(dp = dq ± π/6 ) ,此时会出现两种情况:
(1)p找不到对应的匹配的q或者dp 与dq不满足大致反向的要求,那么该射线r 废弃掉;
(2)如果找到满足要求的q那么在[p,q]这条路线上的每个像素点都会被指定笔画宽度属性值||p-q||(欧式距离),除非该店已经被指定了一个更小的笔画宽度属性值。
3、重复步骤2,计算出所有未被废弃的路线上的像素的笔画宽度值,算法结束。
注意:
(1)这一方法实质上就在对于每个可能属于文字部分的像素点与它最有可能所属的笔画建立联系,这一联系就是该笔画的宽度,可以想见的在未来的处理中,将会对该值相近的连通候选区域进行聚类,即认为他们属于同一笔画,进一步的可以构造出每个笔画,形成文字区域。
(2)在上述的过程中,实际上是默认了针对于亮底暗字的正向文本,如果是对于暗底亮字的反向文本,那在步骤2中就需要沿着dp的返方向来查找q,这样,在实际算法的推行过程中,是需要重复以上过程两次的:一次沿着dp方向,另一次则沿着-dp方向。
二、Finding letter candidates:
这一步要做的是,对于过程一中找到的候选文字狱加以剔除的处理,鉴于上一步骤中得到的结果可能存在干扰(如电线杆可能被识别为文字候选域),需要进一步的处理,主要有以下部分:
(1)计算每个连通候选区域各个像素点笔画宽度属性值的最大差值,对于差值太大的情况加以排除,这可以排除掉如树叶这样的区域,此处的 阙值设定为连通区域笔画宽度属性之平均值的一半;
(2)对于候选区域长宽比要求在0.1到10之间,不符合要求的剔除掉,对于电线杆等长宽比较大的区域可以排除;
(3)一块区域的边界框包含不超过两块区域,以消除文本外围包围线之类(符号框架);
(4)对于太大或太小的连通域也排除掉;
(5)单独的字符通常不出现在图像中,当作噪声剔除;
三、Grouping letters into text lines:
这里认为文本是以线性的形式出现的,一行文本时有相似之处的,如:笔画宽度、字幕宽度、高度、字符间距等。
如果两候选字符满足:
(1)具有相似笔画宽(中值之比小于2.0);
(2)高度比不超过2.0;
(3)距离不超过宽字符的三倍;
(4)颜色相近
等特征,那么就对满足条件的字符聚类,形成text lines,实际上,这并不需要在文本的检测中加以处理,在OCR的过程中是可以进行的。
以上参考链接
一些效果图(to do)
虽然SWT算法效果不错,但仍然会受到一些干扰,而且计算量大,较为耗时。
结合这两种经典方法,本文结合一些先验经验组合出一套检测算法。
- 用MSER算法提取候选文字区域,此时虽然能将文字提取到,但有大量非文字区域也被提取了出来;
- 筛选掉比例明显不合理的候选框;
- 提取每个候选框中识别区域的面积和周长,由于文字偏向细长,面积与周长的比例较小
- 使用SWT算法筛选掉一部分候选框
- 门牌号通常超过三位数字,因此只有多个数字大概在一排的候选框才是门牌
经过一系列筛选,最终可以得到门牌的具体位置,而且字符都已经分割开,可以直接用字符识别模块识别。
配每一步图(to do)
字符被提取并分割出来后需要进行识别。虽然门牌上的字符多为标准字体,但由于相机拍摄过程中无法保证正对门牌,字符会有一定的变形,给识别带来了一些困难。
最简单的字符识别方法之一是模板匹配。模板匹配字符识别算法是图像识别中的经典算法之一,该算法的核心思想是:通过比较待识别字符图像的字符特征和标准模板的字符特征,计算两者之间的相似性,相似性最大的标准模板的字符即为待识别的字符。该方法首先要建立标准模板库,其中标准模板库中的字符的大小是一样的;然后将待识别的字符规格化,其大小应该和模板库中的字符一样;最后将待识别的字符和标准模板库中的所有字符进行匹配,计算相似度。模板匹配字符识别算法适用于印刷字体、字体规范的字符等,但是对字符变形、弯曲、字符旋转等情况的抗干扰能力差。
在识别字符的过程中,字符的每一个像素不会有相同的重要性,因此从字符中提取一些特征再进行分类要比直接进行模板匹配要好。合适的特征同时也对字符变形有一定的抵抗作用。
方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。
(1)主要思想:
在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布很好地描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。
(2)具体的实现方法是:
首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。
(3)提高性能:
把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的效果。
(4)优点:
与其他的特征描述方法相比,HOG有很多优点。首先,由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。
提取到特征后,需要使用分类器对特征进行分类。SVM是机器学习中最常用的分类器之一。
分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),而支持向量机本身便是一种监督式学习的方法(至于具体什么是监督学习与非监督学习,请参见此系列Machine L&Data Mining第一篇),它广泛的应用于统计分类以及回归分析中。支持向量机(SVM)是90年代中期发展起来的基于统计学习理论的一种机器学习方法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
LBP/HOG + SVM --- 参考链接
CNzxx
卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。
CNNs是第一个真正成功训练多层网络结构的学习算法。它利用空间关系减少需要学习的参数数目以提高一般前向BP算法的训练性能。CNNs作为一个深度学习架构提出是为了最小化数据的预处理要求。在CNN中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征。这个方法能够获取对平移、缩放和旋转不变的观测数据的显著特征,因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础的特征,例如定向边缘或者角点。
mnist是一个手写数字数据集,经测试神经网络在mnist数据集上可达到99%的识别率。