字符提取与字符识别

通过前一章的处理,成功地提取了快递数据。本章的主要任务是处理交货订单。确定文本行的常用方法是投影直方图,它对每行或列中的所有像素的总和进行计数,以形成水平投影直方图和垂直投影直方图。从直方图的峰和谷值推断文本行的分布。然而,当传递顺序不是完全垂直或水平时,会对投影产生一定的影响,使得文本行的定位和分割不准确。由于快递订单周围的噪声干扰和快递订单的轻微变形,一些提取的快递订单不是完全垂直或水平的,快递订单的方向需要纠正。快递订单上的文本行与表单线平行,因此如果能顺利检测表单行,则可以检测快件的角度,并可以对快递订单的方向进行修正。

4.1字符定位提取

如图4.1(a)所示,在倾斜状态下提取快件顺序,此时的快递订单的二值化结果如图(b)所示,水平投影如图(c)所示,从(c)图中可以看到快递订单的大致分布范围,但您可以看到。无法区分文本行的位置。

复制代码
      (a)灰度图                           (b)二值化后结果

                      (c)水平投影

图4.1 快递单以及水平投影

在数字图像的自动分析中,通常需要检测简单的形状,例如直线、圆或椭圆。在许多情况下,通常使用边缘检测器首先获得曲线上的图像点。然而,由于图像数据或边缘检测器的缺陷,曲线上的点可能是间歇性的,周围有大量的噪声,理想曲线不在完全一致的情况下。由于这些原因,很难直接使用由边缘检测器获得的边缘特征来提取期望的直线、圆形或椭圆形形状。

变换最简单的应用场景是检测直线。通常,直线 可以用参数空间中的一个点来表示。然而,垂直直线会产生一个问题,使 趋向无穷大。为了计算的原因,使用极坐标表示点。

(4-1)

其中R是从原点到直线最远的距离,以及从原点到直线和 轴的角度。为了获得表示单次倾斜的角度,本文将基于轮廓线和边缘信息的倾斜角检测到表达顺序。首先,利用 算子提取快递图像中的边缘信息。 算子在第2章和验证实验中被详细描述。边缘图像如图4.2(a)所示。

(a)快递单边缘信息 (b)霍夫变换结果

复制代码
                      (c)线段提取结果

图4.2 霍夫变换检测直线

在边缘图像上进行 变换。变换的结果如图4.2(b)所示,其中白框标记5个峰值点。这是因为检测到的线段主要是线形和边缘。从直线的倾斜角度,我们可以以一定的角度旋转图像,得到最终的图像,如图所示:

图4.3 旋转之后的图像

在图4.4(a)中,展示出了上述方向校正结果的局部自适应二值化结果,到达很好的实验效果。在图4.4(b)中显示了量化图像的水平投影波形,从图中,我们可以看到几个更明显的区域。一个是在波形左侧的三个陡峭峡谷,对应于交付顺序之上的三个表线,第二个是中间的逐步下降,对应于快递秩序的条形码区域,第三是右边陡峭的峡谷, 中下部分为明示顺序,右边有陡峭的峡谷,对应于最快的水平线。使用这些特征精确地分割文本行。

(a)局部自适应二值化 (b) 水平投影

图4.4 局部自适应图结果

使用较小的阈值筛选出几个其他表行。使用以下公式计算阈值:

(4-2)

所提取的槽的部分小于阈值可以是多于一个像素,并且谷底需要合并。文本行的位置与底部的间隔和位置相结合,所提取的文本行图像如图所示。

图4.5 文本图像提取结果

4.2 特征提取

由于快递包裹的等级不同,图像中快递订单的大小不尽相同,所提取的字符图像的大小也不相同。对于下一个字符识别,需要将字符图像归一化到标准模板的大小。归一化处理是将图像像素点的坐标映射到归一化图像。假设所提取的字符图像的大小 是本文所用的字符模板的大小( ),则

(4-3)

(a)提取出的字符 (b)水平投影 (c)归一化后图像

图 4.6 实验结果

根据国家统计局发布的县级以上行政区划代码(截至2015年9月30日),全国共有省级行政区34个(行政区划),有334个地级行政区(二级行政区):8个区,3个联盟,30个自治州,3293个城市。图4.7中显示了一些地级行政区的名称:

图 4.7 部分地级行政名称

如上所述,所有行政区域名称中的汉字被归一化( )。将中文字符添加到示例数据库中。

本文主要采用密度特征、网格特征和梯度特征。这些特征的详细描述如下:

(1) 密度特征是整个图像中笔画数与整个字符图像中所有像素的比率。它反映了整个图像中的笔画数。该特征计算简单方便,能粗略地反映字符的复杂度,减少字符的复杂度。在随后的识别步骤中,输入样本中要匹配的样本数目也可以与不同密度样本不同地匹配。

定义密度特征为:

(4-4)

其中, 归一化字符图像; 是行和列索引;归一化字符图像的宽度 ,因为本文中的字符图像被归一化为正方形,因此图像的高度也是 。

(2) 像素网格特征对每个网格中的前景像素的数目进行计数,并形成字符的特征向量。主要包括以下步骤:

a. 将归一化字符图像均匀分割成 块;

b. 对 行和 列中前景像素的总数进行计数 ,然后小块的归一化特征为 ;

c.在数组中存储每个块的特征,形成特征向量 。

(3)通常,梯度方向由下式计算得出:

(4-5)

其中: 为水平方向的梯度值, 为垂直方向的梯度值。提取梯度特征向量的步骤如下:

a. 使用 网格将图像分割成16个小单元;

b. 对于每个小网格图像,首先求 出方向的梯度值,然后计算梯度矢量模;

c. 对于模数大于阈值的像素,求出方向 的梯度值;

找到四个方向上的梯度最大值;

f. 在相应方向上增加直方图计数1;

g. 合并每个瓦片的直方图以形成 维度特征向量。

4.3 基于SVM的字符识别

支持向量机( )是一种用于构造超平面或集合的计算算法。支持向量机可用于分类、回归或其他任务。直观地说,两个线性类之间的分类是由任何超平面实现的,并且在所有数据点上不提供误分类考虑的类别(即属于A类的所有点都被标记为+1),其他所有点都被标记为-1。

这种方法被称为线性分类,但是有许多超平面可以对同一组数据进行分类,如下面的图4.8所示。SVM是一种方法,目标是找到最佳的分离超平面,即,在所提供的超平面的两个类中的最近点之间的最高余量(称为功能保证)。一般来说,这种方法可以保证边际越大越低。

图 4.8 超平面分类

多类样本分类问题与两类样本分类问题之间存在一定的对应关系。分类问题K是可分类的,那么K类的任何两个类都必须归类;否则,在k可分离性问题中,如果已知它们中任何一个是可分离的,那么通过一定的规则组合,两个或多个可以被分离成k类可分的。所谓组合类型是将多个支持向量机结合起来,通过一定的规则组合来求解多类样本分类问题。有两种常见的组合类型:

(1) 方法

最早实现 对多类别进行分类的方法就是 。对k个类别的样本数据。 方法就构造k个 二值子分类器。因此,第 个 子分类器所需解决的问题就是:

复制代码
                     (4-6)                                         

此处训练数据xi,由函数 必映射到高维特征空间,C是惩罚系数。求解(3-3)的对偶问题可得到k个判别函数:

(4-7)

在测试期间,针对测试数据计算每个判别函数值,并选择与最大判别函数值对应的类别作为测试数据类别[21]。

(4-8)

(2) 方法

选择两个不同的类别来形成 子分类器,从而有 个 子分类器。当构造类别 和类别 的 子分类器时,从样本数据集中选择属于类别 和类别 的样本数据作为训练样本,属于类 的样本被标记为正,并且属于类别 的样本标签将是负。对应的二元分类问题是:

方法首先由 提出[22]。选择两个不同的类别来形成 子分类器,从而有 个 子分类器。当构造类别 和类别 的 子分类器时,从样本数据集中选择属于类别 和类别 的样本数据作为训练样本,属于 类的样本被标记为正,并且属于类别 的样本标签将是负。对应的二元分类问题是:

复制代码
                                                                      (4-9)

(3) 核函数与参数选择

核函数是 中可以调整的几个参数之一。选择不同的核函数 可以生成不同的支持向量机,并产生不同的分类结果。以下是常用的方法:

① 线性SVMs:

② 多项式SVMs:

③ 径向基函数SVMs:

④ 二层神经网络SVMs:

本文识别上述字符中的字符。在本文中,我们使用多分类器组合来解决这个问题。该分类器仅将一个汉字与其他汉字区别开来。在训练样本中,汉字的对应值设置为+1,其余样本的相应值设置为-1。首先,选择核函数K,并引入训练样本。优化函数,找到最优解和相应的非零对应支持向量。根据训练样本值计算阈值,并将得到的所有参数引入判别函数中。通过类推,分别得到了所有汉字的相应判别函数。

4.4实验结果分析

图4.9 快递单信息识别结果

本文系统分别对4中不同的核函数的SVM算法进行实验,结果如下表所示:

表4.1

平均SV数 16

平均消耗时间 0.361

平均识别率 98.1

表4.2

平均SV数 16 19 24 28

平均消耗时间 0.361 0.460 0.522 0.518

平均识别率 98.7 98.6 98.9 98.9

表4.3

平均SV数 36 33 18 17

平均消耗时间 0.438 0.439 0.485 0.421

平均识别率 98.6 98.8 98.8 98.6

表4.3

平均SV数 17 17 17 18

平均消耗时间 0.562 0.550 0.516 0.486

平均识别率 98.6 98.8 98.9 98.4

实验结果表明,选择不同的核函数对识别效果影响不大。当核函数的参数变化时,识别率会略有不同。因此,在实验的基础上选择合适的参数。为了提高字符识别的速度,本文最后使用径向基函数作为核函数。

4.5本章小结

本章主要针对上一章中提取的图像做进一步处理。首先分离出要识别的字符,然后采用密度特征、网格特征、以及梯度特征识别字符,采用SVM算训练。最终,达到良好的字符识别效果。

相关推荐
Wang6071 小时前
浅尝claude code记忆系统
人工智能
郑寿昌1 小时前
AI时代动画游戏教育新变革
人工智能·游戏
LLWZAI1 小时前
不用大改原文,也能安稳通过朱雀 AI
人工智能
星座5281 小时前
零实验、AI融合:文献计量学SCI论文写作技巧(Citespace、VOSviewer的强大应用)
人工智能·citespace·文献计量学·sci·vosviewer
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【51】Graph 整体运行全流程
java·人工智能·spring
墨神谕1 小时前
Agent Skill从使用到原理
人工智能·ai
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月13日
大数据·人工智能·python·信息可视化·自然语言处理
零壹AI实验室1 小时前
用AI 10分钟搭建一个监控系统:Prometheus + Grafana 实战
人工智能·grafana·prometheus
志栋智能1 小时前
超自动化巡检:量化运维成效的标尺
运维·网络·人工智能·自动化