精确定位图像中字符的方法、装置及系统与流程

文档序号:11276829阅读:317来源:国知局
精确定位图像中字符的方法、装置及系统与流程

本发明涉及光学字符识别技术领域,具体涉及精确定位图像中字符的方法、装置及系统。



背景技术:

低成本嵌入式模块下的字符识别需要预先针对多个字符(例如5个数字)进行精确定位,否则无法解决识别的实际成本。现有技术需要将图像传送至上位机再进行字符的精确定位,无法满足多种业务环境下模组端精确定位的需求。

现有的字符自动定位算法主要有以下三种:

(1)基于特征点匹配:计算字符边界区域的一些固定特征进行特征点匹配,根据匹配计算出仿射矩阵(affinetransformmatrix),实现全图的仿射变换,最终将字符区域映射到固定区域。该方法需要具备明确的特征点,在光学字符识别过程中该条件不容易满足。且计算的仿射矩阵精度受限,字符定位精度不高。另外对于低成本的摄像头模组,无法满足该算法所需的内存需求。

(2)利用预先的字符识别:根据字符识别的置信度,计算字符区域的联合概率。该方法可运行于模组端,但由于需要计算每个像素上的字符置信度,其计算时间较高。

(3)基于图像二值化算法:根据二值化后的字符区域,计算定位区域的概率。第三种方法由于二值化的不确定性、粘连、断裂等不确定因素,整体结果不如第一种方法和第二种方法好。

综上所述,现有的字符自动定位算法具有如下缺陷:算法复杂、处理效率低、定位精度低;对识别的环境要求高,无法满足多种业务环境下模组端精确定位的需求。



技术实现要素:

针对现有技术中的缺陷,本发明提供的精确定位图像中字符的方法、装置及系统,仅采用直方图和类似于光流法的区域定位矩阵迭代即可达到精确定位结果,处理速度快,定位效果好,可直接应用于低成本的模组端识别。

第一方面,本发明提供的一种精确定位图像中字符的方法,包括:

步骤s1,初始化仿射变换矩阵和字符区域分布概率;

步骤s2,根据所述字符区域分布概率对图像的像素值进行直方图统计;

步骤s3,根据直方图统计结果和所述字符区域分布概率迭代更新仿射变换矩阵;

步骤s4,根据更新后的仿射变换矩阵更新字符区域分布概率;

步骤s5,重复步骤s2-步骤s4,直到满足第一终止条件;

步骤s6,根据最终确定的字符区域分布概率得到所述图像中的字符位置。

本实施例提供的精确定位图像中字符的方法,融合了像素分布及字符间距的联合概率分布,仅采用直方图和类似于光流法的区域定位矩阵迭代即可达到精确定位结果,定位过程中不使用二值化、特征点匹配等算法,对光照变化不敏感,极大的降低了内存需求及计算损耗,实现了一种概率水平集的演化算法用于多个字符的整体定位。在不利用字符周界环境的情况下,在受限内存及计算资源的条件下,有效同时定位多个字符的精确边界,供后续识别使用,处理速度快,定位效果好,可直接应用于低成本的模组端识别。

本实施例提供的精确定位图像中字符的方法可运行于低功耗,低内存的模组端,对识别固定类型的表具,如电表、水表等,具有较高的实用性。

优选地,所述初始化仿射变换矩阵和字符区域分布概率,包括:

根据字符区域初始化仿射变换矩阵,其中,所述字符区域是基于统计图像中常见的字符区域得到的;

创建于图像大小相同的一个浮点矩阵,所述浮点矩阵用于存储字符区域分布概率;

对图像中的所有像素逐个进行位置判断,包括:若像素的坐标落入所述字符区域内,则根据仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为大于零的值,若像素的坐标落入所述字符区域外,则根据仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为小于零的值;

完成所有像素的位置判断,得到初始化的字符区域分布概率。

优选地,所述根据所述字符区域分布概率对图像的像素值进行直方图统计,包括:根据所述字符区域分布概率,对字符区域内的像素值进行直方图统计得到第一直方图,对字符区域外的像素值进行直方图统计得到第二直方图。

优选地,所述根据直方图统计结果和所述字符区域分布概率迭代更新仿射变换矩阵,包括:

步骤s31,将所述图像通过所述仿射变换矩阵变换为新的图像i2;

步骤s32,初始化psum,p2sum为3x3的0矩阵;

步骤s33,对于i2中的每一个像素x,根据所述第一直方图、所述第二直方图和所述字符区域分布概率迭代更新仿射变换矩阵计算psum和p2sum;

步骤s34,计算psum的逆矩阵ipsum;

步骤s35,根据ipsum和p2sum计算仿射变换矩阵的增量;

步骤s36,根据仿射变换矩阵的增量更新仿射变换矩阵;

步骤s37,循环步骤s31-步骤s36,直到满足第二终止条件,得到迭代更新后的仿射变换矩阵。

优选地,所述步骤s31中仅对字符外框内的图像进行放射变换。

优选地,所述将所述图像通过所述仿射变换矩阵变换为新的图像i2,包括:对于i2中每隔一个或多个像素进行如下操作:根据第一直方图、第二直方图和字符区域分布概率迭代更新仿射变换矩阵计算psum和p2sum。

优选地,所述根据更新后的仿射变换矩阵更新字符区域分布概率,包括:对图像中的所有像素逐个进行位置判断,包括:若像素的坐标落入所述字符区域内,则根据更新后的仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为大于零的值,若像素的坐标落入所述字符区域外,则根据更新后的仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为小于零的值;完成所有像素的位置判断,得到更新后的字符区域分布概率。

第二方面,本发明提供的一种精确定位图像中字符的装置,包括:

初始化模块,用于初始化仿射变换矩阵和字符区域分布概率;

直方图统计模块,用于根据所述字符区域分布概率对图像的像素值进行直方图统计;

边界演化模块,用于根据直方图统计结果和所述字符区域分布概率迭代更新仿射变换矩阵;

边界更新模块,用于根据更新后的仿射变换矩阵更新字符区域分布概率;

循环模块,用于重复执行初始化模块至边界更新模块的功能,直到满足第一终止条件;

字符定位模块,用于根据最终确定的字符区域分布概率得到所述图像中的字符位置。

本实施例提供的精确定位图像中字符的装置,融合了像素分布及字符间距的联合概率分布,仅采用直方图和类似于光流法的区域定位矩阵迭代即可达到精确定位结果,定位过程中不使用二值化、特征点匹配等算法,对光照变化不敏感,极大的降低了内存需求及计算损耗,实现了一种概率水平集的演化算法用于多个字符的整体定位。在不利用字符周界环境的情况下,在受限内存及计算资源的条件下,有效同时定位多个字符的精确边界,供后续识别使用,处理速度快,定位效果好,可直接应用于低成本的模组端识别。

本实施例提供的精确定位图像中字符的装置,可运行于低功耗,低内存的模组端,对识别固定类型的表具,如电表、水表等,具有较高的实用性。

优选地,所述初始化模块具体用于:

根据字符区域初始化仿射变换矩阵,其中,所述字符区域是基于统计图像中常见的字符区域得到的;

创建于图像大小相同的一个浮点矩阵,所述浮点矩阵用于存储字符区域分布概率;

对图像中的所有像素逐个进行位置判断,包括:若像素的坐标落入所述字符区域内,则根据仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为大于零的值,若像素的坐标落入所述字符区域外,则根据仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为小于零的值;

完成所有像素的位置判断,得到初始化的字符区域分布概率。

第三方面,本发明提供了一种精确定位图像中字符的系统,包括:用于采集图像的摄像头,装载有第一方面中任一项所述方法对应程序的处理器,通讯装置;所述摄像头与所述处理器连接,所述处理器与所述通讯模块装置。

本实施例提供的精确定位图像中字符的系统,其处理器中的算法仅采用直方图和类似于光流法的区域定位矩阵迭代即可达到精确定位结果,定位过程中不使用二值化、特征点匹配等算法,对光照变化不敏感,极大的降低了内存需求及计算损耗,处理速度快,定位效果好,使得系统可直接应用于低成本的模组端识别。

本实施例提供的精确定位图像中字符的系统,可安装在多种业务环境下,通过摄像头采集图像,对图像中的字符进行精确定位,实现自动读取字符数据。如,将本实施例的系统安装在水表、电表等经常需要读取数据的地方,通过处理器控制摄像头定期采集图像,经处理器处理后获取电表、水表中的数据,通过通讯装置发送给远程终端,实现全自动化读取表中示数,提高了工作效率,尤其对于一些设置在偏远地区或危险区域等不易到达处的设备,可以实现定期自动上传设备表具的示数,节省了大量人工成本。

附图说明

图1为本发明实施例所提供的精确定位图像中字符的方法的流程图;

图2为本发明实施例所提供的精确定位图像中字符的装置的结构框图;

图3为采用本发明实施例所提供的方法实现字符区域定位的结果示例;

图4为采用本发明实施例所提供的方法得到的标准区域图像。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

为方便理解本实施例,首先对可能涉及到的名词作出说明。

图像i为一个宽、高分别为w、h的向量矩阵,矩阵中的每个向量为颜色值(b,g,r)或灰度值(g)。

仿射坐标x定义了图像中一个点的仿射坐标[x,y,1]。

像素值v为图像中某个x对应的像素值,在这里特指像素的(b,g,r)值。

仿射变换w是一个3x3的变换矩阵,通过该变换即可获得定位结果,如图3所示。

边界c为字符的精确边界,其中c={x|phi(x)=0},其中phi(x)代表了字符区域与非字符区域的概率,当phi(x)>0时,我们认为该点属于字符区域,当phi(x)<0时,该点属于背景,而该点等于0时则正好处于边界。以图4为例,边界c即为图中的内框。

区域r代表图像上的某个像素区域的坐标集合。

直方图h(r)某个区域r对应的颜色直方图。

标准识别模板大小ct:用于识别的标准区域图像,如图4所示,其中的内框即为标准识别模板ct,其宽高为ct_w,ct_h。图4中,字符区域外部的大框为字符外框,字符外框的大小可以根据实际运算需求确定,一般为内框的1.3-1.5倍。

如图1所示,本实施例提供的一种精确定位图像中字符的方法,包括:

步骤s1,初始化仿射变换矩阵和字符区域分布概率。

步骤s2,根据字符区域分布概率对图像的像素值进行直方图统计。

步骤s3,根据直方图统计结果和字符区域分布概率迭代更新仿射变换矩阵。

步骤s4,根据更新后的仿射变换矩阵更新字符区域分布概率。

步骤s5,重复步骤s2-步骤s4,直到满足第一终止条件。其中,第一终止条件为重复次数达到5次。

步骤s6,根据最终确定的字符区域分布概率得到图像中的字符位置。

在任意的仿射变换矩阵下,字符的相对位置是满足一个概率分布的(或者说对同一款表具是固定的),而不同的仿射变换矩阵下像素分布是不同的,可以看做是一个联合概率分布。因此,本实施例提供的精确定位图像中字符的方法,融合了像素分布及字符间距的联合概率分布,仅采用直方图和类似于光流法的区域定位矩阵迭代即可达到精确定位结果,定位过程中不使用二值化、特征点匹配等算法,对光照变化不敏感,极大的降低了内存需求及计算损耗,实现了一种概率水平集的演化算法用于多个字符的整体定位。在不利用字符周界环境的情况下,在受限内存及计算资源的条件下,有效同时定位多个字符的精确边界,供后续识别使用,处理速度快,定位效果好,可直接应用于低成本的模组端识别。

本实施例提供的精确定位图像中字符的方法可运行于低功耗,低内存的模组端,对识别固定类型的表具,如电表、水表等,具有较高的实用性。

其中,步骤s1的具体处理方法包括:

步骤s11,根据字符区域初始化仿射变换矩阵,其中,字符区域是基于统计图像中常见的字符区域得到的。

初始化仿射变换矩阵w的过程利用了模组(摄像头)安装的大致区域,不考虑旋转变换。初始化的w的逆矩阵如下:

w-1=[iscalex,0.0,isx

0.0,iscaley,isy

0.0,0.0,1.0]

其中,iscalex=r(c).w/ct_w,iscaley=r(c).h/ct_h,isx=r(c).x,isy=r(c).y。其中r(c)为基于统计获得的,在画面中的常见字符区域,r(c).w为字符区域c的宽,r(c).h为字符区域的高,r(c).x为字符区域的x坐标,r(c).y为字符区域的y坐标。

步骤s12,创建于图像大小相同的一个浮点矩阵phi,浮点矩阵phi用于存储字符区域分布概率phi(x)。

同时,还可以创建几个浮点阵列用于存储phi的一系列函数变换值,包括delta(phi),dx(phi),dy(phi),heav(phi),laplace(phi),其定义如下:

delta(phi)为phi的光滑狄拉克函数:

heav(phi)为平滑heaviside阶梯函数,其定义为:

其中,kesi为常数。本实施例中kesi的优选值为为8.0。

dx(phi)为phi在x方向上的梯度场,dy(phi)为phi在y方向上的梯度场,laplace(phi)为phi经过拉普拉斯算子后的结果,以上三者为图像处理中的标准处理方法,此处不再说明其计算方式。

步骤s13,对图像中的所有像素逐个进行位置判断,包括:若像素的坐标落入字符区域内,则根据仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为大于零的值,若像素的坐标落入字符区域外,则根据仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为小于零的值。

对于给定的w,phi的初始化过程(即步骤s13)可以通过如下公式表示:

phi(w(xinr_char))=kesi,

phi(w(xinr_background))=-kesi,

即,假定的字符区域的坐标均初始化为kesi,非字符区域的坐标则设置为-kesi。其中,w(x)=w*x为x根据w变换后的坐标,xinr_char指落入字符区域的坐标,xinr_background指落入非字符区域的坐标。其中,对于刚好落在字符区域边界上的坐标,其对应的phi(x)=0。

步骤s14,完成所有像素的位置判断,得到初始化的字符区域分布概率。即矩阵phi(x)中所有元素都已经被赋值。

其中,步骤s2的具体处理过程包括:根据字符区域分布概率,对字符区域内的像素值进行直方图统计得到第一直方图h(r_char),对字符区域外的像素值进行直方图统计得到第二直方图h(r_background)。直方图统计为图像处理中的标准操作,这里不在说明。

其中,步骤s3的目的主要是根据一系列统计特性对w进行增量更新以达到精确定位的目的,其具体处理过程包括:

步骤s31,将图像通过仿射变换矩阵变换为新的图像i2。

其中,为了优化处理方法、提高处理速度,步骤s31中仅对字符外框内的图像进行放射变换。由于选取的字符外框包含且大于字符区域,这样可以在保证定位精度的前提下,减小计算量,提高运算速率。

步骤s32,初始化psum,p2sum为3x3的0矩阵,即psum=[0,0,0;0,0,0;0,0,0],p2sum=[0,0,0;0,0,0;0,0,0]。

步骤s33,对于i2中的每一个像素x,根据第一直方图、第二直方图和字符区域分布概率迭代更新仿射变换矩阵计算psum和p2sum。

其中,为了优化处理方法、提高处理速度,步骤s31采用采样计算,计算psum和p2sum,具体为方包括:对于i2中每隔一个或多个像素进行如下操作:根据第一直方图、第二直方图和字符区域分布概率迭代更新仿射变换矩阵计算psum和p2sum。

其中,为了优化处理方法、提高处理速度,步骤s31的优选方式包括:仅对字符外框内的像素进行如下操作:根据第一直方图、第二直方图和字符区域分布概率迭代更新仿射变换矩阵计算psum和p2sum。上述优选方式,在不影响迭代定位结果的基础上,可以提高处理速度。由于选取的字符外框包含且大于字符区域,这样可以在保证定位精度的前提下,减小计算量,提高运算速率。

其中,计算psum和p2sum的具体过程如下:

j=[dirac*tx,dirac*ty,dirac*(tx*y-ty*x)],其中,hval=heav(phi)(x),tx=dx(phi)(x),ty=dy(phi)(x),dirac=delta(phi)(x);

pf=pmf/(eta_f*pmf+eta_b*pmb),

pb=pmb/(eta_f*pmf+eta_b*pmb),其中,pmf=h(r_char)(x),pmb=h(r_background)(x),eta_f是权重,是所有heav(phi)(x)的和,eta_b是权重,是所有1-heav(phi)(x)的和;

pyx=hval*pf+(1-hval)*pb;

s=(pf/hval+pb/(1-hval))/(2*pyx);

jtj=j’*j;

psum+=jtj*s;

s=(pf-pb)/(pyx);

p2sum+=jt*s;

步骤s34,计算psum的逆矩阵ipsum;

步骤s35,根据ipsum和p2sum计算仿射变换矩阵的增量dw;

deltap=ipsum*p2sum

dw=[1,deltap[2][0],deltap[0][0];

-deltap[2][0],1,deltap[1][0];

0,0,1]

从上面描述可以看到整个算法涉及到几个delta(phi),dx(phi),dy(phi),heav(phi),laplace(phi)函数,本实施例采用临时存储的内存区域对上述的中间变量进行存储,对于临时区域均不采用全部计算模式,仅在使用时进行实时计算,避免了内存损耗,满足了低功耗、低内存的模组识别需求,使得基于本实施例方法的系统的结构更急精简,便于适应各种环境。

步骤s36,根据仿射变换矩阵的增量更新仿射变换矩阵,具体公式为:w=w*idw,其中,idw为dw的逆矩阵。

步骤s37,循环步骤s31-步骤s36,直到满足第二终止条件,得到迭代更新后的仿射变换矩阵。

其中,第二终止条件为循环迭代次数达到12次。

其中,步骤s4的具体实现方式包括:

步骤s41,对图像中的所有像素逐个进行位置判断,包括:若像素的坐标落入字符区域内,则根据更新后的仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为大于零的值(即kesi),若像素的坐标落入字符区域外,则根据更新后的仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为小于零的值(即-kesi)。其中,对于刚好落在字符区域边界上的坐标,其对应的phi(x)=0。

步骤s42,完成所有像素的位置判断,得到更新后的字符区域分布概率。

根据更新后的w,phi的更新过程可以通过如下公式表示:

phi(w(xinr_char))=kesi

phi(w(xinr_background))=-kesi

在更新字符区域分布概率同时,根据新w,phi对的直方图h(r)进行更新。

基于特征点匹配的定位方法一旦匹配不上就宣告定位失败,而本实施例的方法是基于字符区域边界的迭代更新的完成字符定位的,每次迭代都移动一点,而我们的表具光照可能存在一些偏差,但是这个偏差也是缓慢变化的,所以通过迭代,以及每次迭代过程中直方图的更新,可以解决光照偏差的问题。本实施例的方法解决了大部分光照引起的定位失败问题。在本实施例使用的方法法保持定位框形状不变。

基于与上述精确定位图像中字符的方法相同的发明构思,本实例提供了一种精确定位图像中字符的装置,如图2所示,包括:

初始化模块,用于初始化仿射变换矩阵和字符区域分布概率;

直方图统计模块,用于根据字符区域分布概率对图像的像素值进行直方图统计;

边界演化模块,用于根据直方图统计结果和字符区域分布概率迭代更新仿射变换矩阵;

边界更新模块,用于根据更新后的仿射变换矩阵更新字符区域分布概率;

循环模块,用于重复执行初始化模块至边界更新模块的功能,直到满足第一终止条件;

字符定位模块,用于根据最终确定的字符区域分布概率得到图像中的字符位置。

本实施例提供的精确定位图像中字符的装置,融合了像素分布及字符间距的联合概率分布,仅采用直方图和类似于光流法的区域定位矩阵迭代即可达到精确定位结果,定位过程中不使用二值化、特征点匹配等算法,对光照变化不敏感,极大的降低了内存需求及计算损耗,实现了一种概率水平集的演化算法用于多个字符的整体定位。在不利用字符周界环境的情况下,在受限内存及计算资源的条件下,有效同时定位多个字符的精确边界,供后续识别使用,处理速度快,定位效果好,可直接应用于低成本的模组端识别。

本实施例提供的精确定位图像中字符的装置,可运行于低功耗,低内存的模组端,对识别固定类型的表具,如电表、水表等,具有较高的实用性。

优选地,所述初始化模块具体用于:

根据字符区域初始化仿射变换矩阵,其中,所述字符区域是基于统计图像中常见的字符区域得到的;

创建于图像大小相同的一个浮点矩阵,所述浮点矩阵用于存储字符区域分布概率;

对图像中的所有像素逐个进行位置判断,包括:若像素的坐标落入所述字符区域内,则根据仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为大于零的值,若像素的坐标落入所述字符区域外,则根据仿射变换矩阵变换图像中像素的坐标,将变换后的坐标对应的字符区域分布概率设为小于零的值;

完成所有像素的位置判断,得到初始化的字符区域分布概率。

基于与上述精确定位图像中字符的方法相同的发明构思,本实施例还提供了一种精确定位图像中字符的系统,包括:用于采集图像的摄像头,装载有与上述任一方法实施例对应的程序的处理器,通讯装置;摄像头与处理器连接,处理器与通讯模块装置。

为减小系统的体积,处理器可以采用嵌入式处理器,如fpga、dsp、arm处理器,使得系统可以安装在狭小的空间内。

本实施例提供的精确定位图像中字符的系统,其处理器中的算法仅采用直方图和类似于光流法的区域定位矩阵迭代即可达到精确定位结果,定位过程中不使用二值化、特征点匹配等算法,对光照变化不敏感,极大的降低了内存需求及计算损耗,处理速度快,定位效果好,使得系统可直接应用于低成本的模组端识别。

本实施例提供的精确定位图像中字符的系统,可安装在多种业务环境下,通过摄像头采集图像,对图像中的字符进行精确定位,实现自动读取字符数据。如,将本实施例的系统安装在水表、电表等经常需要读取数据的地方,通过处理器控制摄像头定期采集图像,经处理器处理后获取电表、水表中的数据,通过通讯装置发送给远程终端,实现全自动化读取表中示数,提高了工作效率,尤其对于一些设置在偏远地区或危险区域等不易到达处的设备,可以实现定期自动上传设备表具的示数,节省了大量人工成本。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1