发明内容
本发明提供一种书写汉字笔顺正确性检测及还原的方法和装置,本技术方案可以对书写顺序不正确的笔画进行检测,可以将书写顺序不正确的笔画还原为书写顺序正确的笔画。
一种书写汉字笔顺正确性检测及还原的方法,包括:
A获取书写汉字的笔画,设共有N笔笔画;
B生成该书写汉字的笔画时空关系矩阵RN×N,笔画时空关系矩阵RN×N表示由元素rij构成的N×N矩阵:
该笔画时空关系矩阵RN×N的元素rij为元素rij(α,β,γ)的简写,元素rij(α,β,γ)表示第i笔笔画和第j笔笔画的位置关系;rij(α,β,γ)包括rij(α)、rij(β)、rij(γ),其中,rij(α)表示第i笔笔画和第j笔笔画的左右位置关系,rij(β)表示第i笔笔画和第j笔笔画的上下位置关系,rij(γ)表示第i笔笔画和第j笔笔画的正反向交叉位置关系,i=1,2,...,N,j=1,2,...,N;
C获取该书写汉字对应的模板汉字的笔画时空关系矩阵R′N×N,笔画时空关系矩阵R′N×N表示由元素r′ij构成的N×N矩阵;如果元素rij与元素r′ij全部相同,判断出该书写汉字的笔顺正确,否则,判断出该书写汉字的笔顺不正确,继续步骤D;
D从书写汉字的笔画时空关系矩阵RN×N中找出与模板汉字的笔画时空关系矩阵R′N×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画qe,设共有t笔书写顺序不正确的笔画qe,e=1,2,...,t;将书写顺序不正确的笔画qe构成一个序列{q1,q2,..,qt},对该序列{q1,q2,...,qt}进行全排列,共有t!个排列序列,设第k个排列序列对应第k个书写汉字的时空关系子矩阵k=1,2,...,t!:
该时空关系子矩阵
中的元素
为元素
的简写,元素
表示第u笔笔画和第v笔笔画的位置关系;
包括
其中,
表示第u笔笔画和第v笔笔画的左右位置关系,
表示第u笔笔画和第v笔笔画的上下位置关系,
表示第u笔笔画和第v笔笔画的正反向交叉位置关系,u=1,2,...,t,v=1,2...,t;
从模板汉字的笔画时空关系矩阵R′N×N中找出与书写汉字的笔画时空关系矩阵RN×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画对应的模板正确笔画qf,f=1,2,...,t,将模板正确笔画qf构成一个序列{q1,q2,...,qt},设序列{q1,q2,...,qt}对应一个模板汉字的时空关系子矩阵Dt×t:
该笔画时空关系矩阵Dt×t中的元素duv为元素duv(α,β,γ)的简写,元素duv(α,β,γ)表示第u笔笔画和第v笔笔画的位置关系;duv(α,β,γ)包括duv(α)、duv(β)、duv(γ),其中,duv(α)表示第u笔笔画和第v笔笔画的左右位置关系,duv(β)表示第u笔笔画和第v笔笔画的上下位置关系,duv(γ)表示第u笔笔画和第v笔笔画的正反向交叉位置关系,u=1,2,...,t,v=1,2...,t;
遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
最接近的时空关系子矩阵
对应书写顺序不正确笔画q
e构成的序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列,得出序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列为正确的笔画书写顺序,实现书写顺序不正确的笔画还原为书写顺序正确的笔画。
其中,步骤A之后进一步包括步骤A1:采用道格拉斯-普克算法对书写汉字的每笔笔画进行矢量数据压缩,得到每笔笔画的轨迹关键点;每笔笔画的前后两个相邻的轨迹关键点构成一个向量笔画段;
元素rij(α,β,γ)表示的第i笔笔画和第j笔笔画的位置关系的识别过程如下:
如果第i笔笔画和第j笔笔画交叉,rij(α)赋值rij(0),rij(β)赋值rij(0);获取第i笔笔画的交叉的向量笔画段和第j笔笔画的交叉的向量笔画段,以交点为圆心,顺时针方向旋转第i笔笔画的交叉的向量笔画段;如果第i笔笔画的交叉的向量笔画段旋转到与第j笔笔画的交叉的向量笔画段方向一致时,旋转角度θ不大于180度,识别出第i笔笔画和第j笔笔画为正向交叉位置关系,rij(γ)赋值rij(+z),否则,识别出第i笔笔画和第j笔笔画为反向交叉位置关系,rij(γ)赋值rij(-z);
如果第i笔笔画和第j笔笔画不交叉,rij(γ)赋值rij(0);根据第i笔笔画的轨迹关键点计算第i笔笔画的质心坐标,根据第j笔笔画的轨迹关键点计算第j笔笔画的质心坐标;如果第i笔笔画的质心坐标的横坐标小于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画位于第j笔笔画的左边,rij(α)赋值rij(-x),如果第i笔笔画的质心坐标的横坐标大于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画位于第j笔笔画的右边,rij(α)赋值rij(+x),如果第i笔笔画的质心坐标的横坐标等于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画与第j笔笔画的不存在左右位置关系,rij(α)赋值rij(0);如果第i笔笔画的质心坐标的纵坐标小于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画位于第j笔笔画的下边,rij(β)赋值rij(-y),如果第i笔笔画的质心坐标的纵坐标大于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画位于第j笔笔画的上边,rij(β)赋值rij(+y),如果第i笔笔画的质心坐标的纵坐标等于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画与第j笔笔画的不存在上下位置关系,rij(β)赋值rij(0)。
其中,x=1,y=2,z=3。
其中,遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
具体过程包括:
设L
k为D
t×t与
之间的距离:
k=1,2,...,t!;
第k个L
k对应第k个书写汉字的时空关系子矩阵
遍历t!个书写汉字的时空关系子矩阵
计算L
k;获得最小值的L
g,最小值的L
g对应时空关系子矩阵
该时空关系子矩阵
为与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
一种书写汉字笔顺正确性检测及还原的装置,包括:
预处理装置,用于获取书写汉字的笔画,设共有N笔笔画;
笔画时空关系矩阵生成装置,用于生成该书写汉字的笔画时空关系矩阵RN×N,笔画时空关系矩阵RN×N表示由元素rij构成的N×N矩阵:
该笔画时空关系矩阵RN×N的元素rij为元素rij(α,β,γ)的简写,元素rij(α,β,γ)表示第i笔笔画和第j笔笔画的位置关系;rij(α,β,γ)包括rij(α)、rij(β)、rij(γ),其中,rij(α)表示第i笔笔画和第j笔笔画的左右位置关系,rij(β)表示第i笔笔画和第j笔笔画的上下位置关系,rij(γ)表示第i笔笔画和第j笔笔画的正反向交叉位置关系,i=1,2,...,N,j=1,2,...,N;
笔顺正确性检测装置,用于获取该书写汉字对应的模板汉字的笔画时空关系矩阵R′N×N,笔画时空关系矩阵R′N×N表示由元素r′ij构成的N×N矩阵;如果元素rij与元素r′ij全部相同,判断出该书写汉字的笔顺正确,否则,判断出该书写汉字的笔顺不正确;
笔顺正确性还原装置,用于从书写汉字的笔画时空关系矩阵R
N×N中找出与模板汉字的笔画时空关系矩阵R′
N×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画q
e,设共有t笔书写顺序不正确的笔画q
e,e=1,2,...,t;将书写顺序不正确的笔画q
e构成一个序列{q
1,q
2,..,q
t},对该序列{q
1,q
2,..,q
t}进行全排列,共有t!个排列序列,设第k个排列序列对应第k个书写汉字的时空关系子矩阵
k=1,2,...,t!:
该时空关系子矩阵
中的元素
为元素
的简写,元素
表示第u笔笔画和第v笔笔画的位置关系;
包括
其中,
表示第u笔笔画和第v笔笔画的左右位置关系,
表示第u笔笔画和第v笔笔画的上下位置关系,
表示第u笔笔画和第v笔笔画的正反向交叉位置关系,u=1,2,...,t,v=1,2...,t;
从模板汉字的笔画时空关系矩阵R′N×N中找出与书写汉字的笔画时空关系矩阵RN×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画对应的模板正确笔画qf,f=1,2,...,t,将模板正确笔画qf构成一个序列{q1,q2,...,qt},设序列{q1,q2,...,qt}对应一个模板汉字的时空关系子矩阵Dt×t:
该笔画时空关系矩阵Dt×t中的元素duv为元素duv(α,β,γ)的简写,元素duv(α,β,γ)表示第u笔笔画和第v笔笔画的位置关系;duv(α,β,γ)包括duv(α)、duv(β)、duv(γ),其中,duv(α)表示第u笔笔画和第v笔笔画的左右位置关系,duv(β)表示第u笔笔画和第v笔笔画的上下位置关系,duv(γ)表示第u笔笔画和第v笔笔画的正反向交叉位置关系,u=1,2,...,t,v=1,2...,t;
遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
最接近的时空关系子矩阵
对应书写顺序不正确笔画q
e构成的序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列,得出序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列为正确的笔画书写顺序,实现书写顺序不正确的笔画还原为书写顺序正确的笔画。
其中,预处理装置进一步用于获取轨迹关键点和向量笔画段;采用道格拉斯-普克算法对书写汉字的每笔笔画进行矢量数据压缩,得到每笔笔画的轨迹关键点;每笔笔画的前后两个相邻的轨迹关键点构成一个向量笔画段;
笔画时空关系矩阵生成装置进一步用于识别位置关系;元素rij(α,β,γ)表示的第i笔笔画和第j笔笔画的位置关系的识别过程如下:
如果第i笔笔画和第j笔笔画交叉,rij(α)赋值rij(0),rij(β)赋值rij(0);获取第i笔笔画的交叉的向量笔画段和第j笔笔画的交叉的向量笔画段,以交点为圆心,顺时针方向旋转第i笔笔画的交叉的向量笔画段;如果第i笔笔画的交叉的向量笔画段旋转到与第j笔笔画的交叉的向量笔画段方向一致时,旋转角度θ不大于180度,识别出第i笔笔画和第j笔笔画为正向交叉位置关系,rij(γ)赋值rij(+z),否则,识别出第i笔笔画和第j笔笔画为反向交叉位置关系,rij(γ)赋值rij(-z);
如果第i笔笔画和第j笔笔画不交叉,rij(γ)赋值rij(0);根据第i笔笔画的轨迹关键点计算第i笔笔画的质心坐标,根据第j笔笔画的轨迹关键点计算第j笔笔画的质心坐标;如果第i笔笔画的质心坐标的横坐标小于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画位于第j笔笔画的左边,rij(α)赋值rij(-x),如果第i笔笔画的质心坐标的横坐标大于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画位于第j笔笔画的右边,rij(α)赋值rij(+x),如果第i笔笔画的质心坐标的横坐标等于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画与第j笔笔画的不存在左右位置关系,rij(α)赋值rij(0);如果第i笔笔画的质心坐标的纵坐标小于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画位于第j笔笔画的下边,rij(β)赋值rij(-y),如果第i笔笔画的质心坐标的纵坐标大于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画位于第j笔笔画的上边,rij(β)赋值rij(+y),如果第i笔笔画的质心坐标的纵坐标等于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画与第j笔笔画的不存在上下位置关系,rij(β)赋值rij(0)。
其中,x=1,y=2,z=3。
其中,笔顺正确性还原装置进一步用于找出最接近的时空关系子矩阵;遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
具体过程包括:
第k个L
k对应第k个书写汉字的时空关系子矩阵
遍历t!个书写汉字的时空关系子矩阵
计算L
k;获得最小值的L
g,最小值的L
g对应时空关系子矩阵
该时空关系子矩阵
为与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
本技术方案包括:获取书写汉字的笔画,设共有N笔笔画;生成该书写汉字的笔画时空关系矩阵R
N×N,该笔画时空关系矩阵R
N×N的元素r
ij为元素r
ij(α,β,γ)的简写,元素r
ij(α,β,γ)表示第i笔笔画和第j笔笔画的位置关系;获取该书写汉字对应的模板汉字的笔画时空关系矩阵R′
N×N,笔画时空关系矩阵R′
N×N表示由元素r′
ij构成的N×N矩阵;如果元素r
ij与元素r′
ij全部相同,判断出该书写汉字的笔顺正确,否则,判断出该书写汉字的笔顺不正确;从书写汉字的笔画时空关系矩阵R
N×N中找出与模板汉字的笔画时空关系矩阵R′
N×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画q
e,设共有t笔书写顺序不正确的笔画q
e,e=1,2,...,t;将书写顺序不正确的笔画q
e构成一个序列{q
1,q
2,...,q
t},对该序列{q
1,q
2,..,q
t}进行全排列,共有t!个排列序列,设第k个排列序列对应第k个书写汉字的时空关系子矩阵
从模板汉字的笔画时空关系矩阵R′
N×N中找出与书写汉字的笔画时空关系矩阵R
N×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画对应的模板正确笔画q
f,f=1,2,...,t,将模板正确笔画q
f构成一个序列{q
1,q
2,...,q
t},设序列{q
1,q
2,...,q
t}对应一个模板汉字的时空关系子矩阵D
t×t,遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
最接近的时空关系子矩阵
对应第g个排列序列,得出序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列为正确的笔画书写顺序,实现书写顺序不正确的笔画还原为书写顺序正确的笔画。本技术方案可以对书写顺序不正确的笔画进行检测,可以将书写顺序不正确的笔画还原为书写顺序正确的笔画。
具体实施方式
实施例一
参见图1至3,以下结合附图对本发明进行详细的描述。
一种书写汉字笔顺正确性检测及还原的方法,包括步骤:
步骤101.获取书写汉字的笔画,设共有N笔笔画。这些笔画是有顺序的,分别是第1笔笔画,第2笔笔画,...,第N笔笔画。
可以通过电子写字板、手写笔或触摸屏等装置获取书写汉字的笔画。这些装置可以识别书写汉字,记录其笔画的坐标位置信息、笔画数信息、单笔笔画结束符的标志信息、书写汉字所有笔画轨迹结束的标志信息等。
步骤102.生成该书写汉字的笔画时空关系矩阵RN×N,笔画时空关系矩阵RN×N表示由元素rij构成的N×N矩阵:
该笔画时空关系矩阵RN×N的元素rij为元素rij(α,β,γ)的简写,利用简写是为了书写公式的便利,而不会影响读者对本技术方案的理解;元素rij(α,β,γ)表示第i笔笔画和第j笔笔画的位置关系;rij(α,β,γ)包括rij(α)、rij(β)、rij(γ),其中,rij(α)表示第i笔笔画和第j笔笔画的左右位置关系,rij(β)表示第i笔笔画和第j笔笔画的上下位置关系,rij(γ)表示第i笔笔画和第j笔笔画的正反向交叉位置关系,i=1,2,...,N,j=1,2,...,N。根据第i笔笔画和第j笔笔画的位置关系,可以对元素rij(α,β,γ)赋予具体的值。
令rij=0,即笔画自身的位置关系的值为0,有rij=-rji,即rij(α)=-rji(α),rij(β)=-rji(β),rij(γ)=-rji(γ),可得:
可以看出,笔画时空关系矩阵RN×N的行坐标和列坐标反映了笔画的书写时间先后顺序,而给定行坐标和列坐标上的元素,则反映了笔画间的空间位置关系,故而把该矩阵称为笔画时空关系矩阵。
设存在正反向交叉位置关系时,rij(α)为0,rij(β)为0;而不存在正反向交叉位置关系时,rij(γ)为0,此时,rij(α)和rij(β)不同时为0,即rij(α)和rij(β)中至少一个不为0,这是因为两笔笔画间不存在正反向交叉位置关系时,可能不存在左右位置关系或者上下位置关系,但不可能左右位置关系和上下位置关系均不存在。
步骤103.获取该书写汉字对应的模板汉字的笔画时空关系矩阵R′N×N,笔画时空关系矩阵R′N×N表示由元素r′ij构成的N×N矩阵;如果元素rij与元素r′ij全部相同,判断出该书写汉字的笔顺正确,否则,判断出该书写汉字的笔顺不正确,继续步骤104。即如果元素rij与元素r′ij不是全部相同,判断出该书写汉字的笔顺不正确,继续步骤104。
元素rij与元素r′ij全部相同指的是,当i和j取i=1,2,...,N,j=1,2,...,N范围内的任意数值时,RN×N的元素rij所表示的第i笔笔画和第j笔笔画的位置关系与R′N×N的元素r′ij所表示的第i笔笔画和第j笔笔画的位置关系相同。
本实施例中,模板汉字均为书写汉字对应的汉字,即模板汉字与书写汉字为相同汉字。
模板汉字的笔画和笔画时空关系矩阵R′N×N可以预先计算出来并保存,在实施本方案时,可以直接读取与书写汉字对应的模板汉字的笔画和笔画时空关系矩阵R′N×N;当然,也可以预先保存模板汉字的笔画,R′N×N的元素r′ij表示模板汉字的第i笔笔画和第j笔笔画的位置关系,在实施本方案时,由元素r′ij生产N×N矩阵的R′N×N。
书写汉字的笔画时空关系矩阵RN×N元素rij(α,β,γ)表示书写汉字的第i笔笔画和第j笔笔画的位置关系。同理,R′N×N的元素r′ij为r′ij(α,β,γ)的简写,元素r′ij(α,β,γ)表示模板汉字的第i笔笔画和第j笔笔画的位置关系,r′ij(α,β,γ)包括r′ij(α)、r′ij(β)、r′ij(γ),其中,r′ij(α)表示第i笔笔画和第j笔笔画的左右位置关系,r′ij(β)表示第i笔笔画和第j笔笔画的上下位置关系,r′ij(γ)表示第i笔笔画和第j笔笔画的正反向交叉位置关系,i=1,2,...,N,j=1,2,...,N;根据第i笔笔画和第j笔笔画的位置关系,可以对元素r′ij(α,β,γ)赋予具体的值。如果元素rij与元素r′ij全部相同,说明了书写汉字的第i笔笔画和第j笔笔画的位置关系与模板汉字的第i笔笔画和第j笔笔画的位置关系相同,则该书写汉字的笔顺正确,否则为笔顺不正确。
对于任意一个具有给定笔画书写顺序的汉字,其相应的笔画时空关系矩阵是唯一的,即汉字的笔画书写顺序与其笔画时空关系矩阵是一一对应的,以下对这一结论给予证明。
容易证明,对于任意一个汉字,在其给定的笔画顺序下,只有唯一的一个笔画时空关系矩阵与其相对应,这是因为对于这个汉字的任意两笔笔画,只有唯一的一种位置关系,即只有唯一的一个笔画时空关系矩阵,记为
下面需要证明这个汉字的笔画时空关系矩阵
也只有唯一的一种笔画书写顺序与其相对应。不妨假设这个汉字,其存在至少两种不同的笔画书写顺序,其笔画时空关系矩阵都为
即对于这个汉字,至少存在两笔不同的笔画——第i笔笔画S
1和第j笔笔画S
2,当改变第i笔笔画S
1和第j笔笔画S
2的书写先后顺序后,其对应的笔画时空关系矩阵仍然为
将当前第i笔笔画S
1和第j笔笔画S
2的时空位置关系记为
改变第i笔笔画S
1和第j笔笔画S
2的书写顺序后,将第i笔笔画变为S
2,第j笔笔画变为S
1,这时第i笔笔画和第j笔笔画的位置关系记为
由于
具有正反对称的性质,即
另一方面,由于这两种笔画书写顺序下对应同样的笔画时空关系矩阵,有
而第i笔笔画和第j笔笔画为不同的笔画,r
ij(α)、r
ij(β)和r
ij(γ)不存在同时为0,显然
与
是相矛盾的,即假设是不成立的,这证明了对于给定汉字的笔画时空关系矩阵,也只有唯一的笔画书写顺序与其相对应。因此,汉字的笔画顺序与其笔画时空关系矩阵是一一对应的。
综上,对于书写汉字的笔画时空关系矩阵RN×N以及与该书写汉字对应的模板汉字的笔画时空关系矩阵R′N×N,当RN×N和R′N×N这两个矩阵中某些位置的元素不一样的时候,说明了该书写汉字若干笔画的书写顺序不正确。
步骤104.从书写汉字的笔画时空关系矩阵R
N×N中找出与模板汉字的笔画时空关系矩阵R′
N×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画q
e,设共有t笔书写顺序不正确的笔画q
e,e=1,2,...,t;将书写顺序不正确的笔画q
e构成一个序列{q
1,q
2,...,q
t},对该序列{q
1,q
2,...,q
t}进行全排列,共有t!个排列序列,设第k个排列序列对应第k个书写汉字的时空关系子矩阵
k=1,2,...,t!:
该时空关系子矩阵
中的元素
为元素
的简写,元素
表示第u笔笔画和第v笔笔画的位置关系;
包括
其中,
表示第u笔笔画和第v笔笔画的左右位置关系,
表示第u笔笔画和第v笔笔画的上下位置关系,
表示第u笔笔画和第v笔笔画的正反向交叉位置关系,u=1,2,...,t,v=1,2...,t。
因为元素rij表示书写汉字的第i笔笔画和第j笔笔画的位置关系,故从书写汉字的笔画时空关系矩阵RN×N中找出与模板汉字的笔画时空关系矩阵R′N×N不同的元素后,根据不同的元素就可以得到顺序不正确的笔画。比如书写汉字的笔画时空关系矩阵RN×N中的元素r35与模板汉字的笔画时空关系矩阵R′N×N的元素r′35不同,则说明了该书写汉字的第3笔和第5笔的书写顺序不正确。
需要说明的是,将书写顺序不正确的笔画qe构成一个序列{q1,q2,...,qt},q1表示第1笔书写汉字的书写顺序不正确的笔画;第1笔书写顺序不正确的笔画,可能并不是书写汉字的第1笔书写顺序的笔画;比如,书写汉字的第1第2第4笔笔画的书写顺序正确,而第3第5笔笔画的书写顺序不正确,则第3笔笔画为q1,第5笔笔画为q2;将书写顺序不正确的笔画找出来,并按先后顺序进行排序,构成序列{q1,q2,...,qt}。显然,有t≤N。
从模板汉字的笔画时空关系矩阵R′N×N中找出与书写汉字的笔画时空关系矩阵RN×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画对应的模板正确笔画qf,f=1,2,...,t,将模板正确笔画qf构成一个序列{q1,q2,...,qt},设序列{q1,q2,...,qt}对应一个模板汉字的时空关系子矩阵Dt×t:
该笔画时空关系矩阵Dt×t中的元素duv为元素duv(α,β,γ)的简写,元素duv(α,β,γ)表示第u笔笔画和第v笔笔画的位置关系;duv(α,β,γ)包括duv(α)、duv(β)、duv(γ),其中,duv(α)表示第u笔笔画和第v笔笔画的左右位置关系,duv(β)表示第u笔笔画和第v笔笔画的上下位置关系,duv(γ)表示第u笔笔画和第v笔笔画的正反向交叉位置关系,u=1,2,...,t,v=1,2...,t。
仍使用相同例子:将书写顺序不正确的笔画qe构成一个序列{q1,q2,...,qt},q1表示第1笔书写汉字的书写顺序不正确的笔画;第1笔书写顺序不正确的笔画,可能并不是书写汉字的第1笔书写顺序的笔画;比如,书写汉字的第1第2第4笔笔画的书写顺序正确,而第3第5笔笔画的书写顺序不正确,则第3笔笔画为q1,第5笔笔画为q2。将对应书写顺序不正确的笔画的模板正确笔画qf构成一个序列{q1,q2,...,qt},模板正确笔画的q1表示第1笔书写汉字的书写顺序不正确的笔画对应的模板正确笔画,对上面例子来说,对应的是第3笔笔画;模板正确笔画的q2表示第2笔书写汉字的书写顺序不正确的笔画对应的模板正确笔画,对上面例子来说,对应的是第5笔笔画;将书写顺序不正确的笔画对应的模板正确笔画找出来,并按先后顺序进行排序,构成序列{q1,q2,...,qt}。
遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
显然,有g≤t!。
使用统计方法,通过对比元素
和元素d
uv,可以找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
使用统计方法从若干个矩阵中找出最接近的矩阵是现有技术,这是本领域普通技术人员不需要创造性劳动就可以实现的。
最接近的时空关系子矩阵
对应书写顺序不正确笔画q
e构成的序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列,得出序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列为正确的笔画书写顺序,实现书写顺序不正确的笔画还原为书写顺序正确的笔画。
书写汉字的书写顺序不正确的笔画qe构成的序列{q1,q2,...,qt}进行全排列时,产生的排列序列是有顺序的,当确定最接近的时空关系子矩阵时,可以找到对应的第g个排列序列,从而还原出书写顺序正确的笔画。
比如,书写汉字的顺序不正确的笔画q
e构成的序列为{第3笔笔画q
1,第5笔笔画q
2,第6笔笔画q
3,第7笔笔画q
4},如通过上述方法找到最接近的时空关系子矩阵
对应的第g个排列序列为{第5笔笔画q
2,第3笔笔画q
1,第7笔笔画q
4,第6笔笔画q
3},则表示书写顺序不正确的笔画分别为第3笔笔画、第5笔笔画、第6笔笔画、第7笔笔画,这些书写顺序不正确的笔画与顺序正确的笔画的对应关系分别为:不正确的第5笔笔画对应于正确的第3笔笔画,不正确的第3笔笔画对应于正确的第5笔笔画,不正确的第7笔笔画对应于正确的第6笔笔画,不正确的第6笔笔画对应于正确的第7笔笔画,即实际的正确笔画的顺序为第5笔笔画、第3笔笔画、第7笔笔画、第6笔笔画,从而还原出书写顺序正确的笔画。
利用本发明可以将书写顺序不正确的笔画还原为书写顺序正确的笔画。图2和图3为利用本发明模拟的实验结果。其中,图2为本发明的“北”字的笔画顺序对照示意图,上排为正确的笔画顺序,下排为不正确的笔画顺序;图3为本发明的“边”字的笔画顺序对照示意图,上排为正确的笔画顺序,下排为不正确的笔画顺序。
模板汉字笔顺 |
No.1 |
No.2 |
No.3 |
No.4 |
No.5 |
不正确的笔顺 |
1 |
2 |
3 |
4 |
5 |
正确的笔顺 |
3 |
1 |
2 |
5 |
4 |
表1为“北”字的笔顺正确性检测和还原
模板汉字笔顺 |
No.1 |
No.2 |
No.3 |
No.4 |
No.5 |
不正确的笔顺 |
1 |
2 |
3 |
4 |
5 |
正确的笔顺 |
4 |
5 |
1 |
2 |
3 |
表2为“边”字的笔顺正确性检测和还原
从表1和表2可以看出,本发明对书写顺序不正确的笔画进行检测,可以将书写顺序不正确的笔画还原为书写顺序正确的笔画。这对于纠正不正确的笔顺非常有帮助,对于汉语语言文字的学习也是十分有意义。
需要说明的,本实施例中,先找得到书写顺序不正确的笔画q
e,将顺序不正确的笔画q
e构成一个序列{q
1,q
2,...,q
t},产生t!个书写汉字的时空关系子矩阵
进行比较,得到最接近的时空关系子矩阵
再找到对应的第g个排列序列;这种做法是把书写顺序正确的笔画剔除,从而加快中央处理器的运算速度。如果中央处理器的运算速度足够快的话,也可以不剔除书写顺序正确的笔画,直接将全部书写笔画构成一个序列{q
1,q
2,...,q
N},产生N!个书写汉字的时空关系子矩阵
进行比较,得到最接近的时空关系子矩阵
再找到对应的第g个排列序列,实现书写顺序不正确的笔画还原为书写顺序正确的笔画。
实施例二
本实施例与实施例一的不同之处在于,在步骤101之后进一步包括步骤101A:采用道格拉斯-普克算法对书写汉字的每笔笔画进行矢量数据压缩,得到每笔笔画的轨迹关键点;每笔笔画的前后两个相邻的轨迹关键点构成一个向量笔画段。每个笔画的书写有先后顺序,笔画的轨迹关键点也有先后顺序,前后两个相邻的轨迹关键点构成的向量笔画段的方向为笔画的书写方向。道格拉斯-普克算法可消除书写汉字笔画轨迹中的噪声点和冗余点,得到书写汉字的笔画的轨迹关键点。设第i笔笔画的轨迹关键点的数目为m,则第i笔笔画的向量笔画段的数目为m-1。
在本实施例中,提出了一种元素rij(α,β,γ)表示的第i笔笔画和第j笔笔画的位置关系的识别过程:
如果第i笔笔画和第j笔笔画交叉,rij(α)赋值rij(0),rij(β)赋值rij(0);获取第i笔笔画的交叉的向量笔画段和第j笔笔画的交叉的向量笔画段,以交点为圆心,顺时针方向旋转第i笔笔画的交叉的向量笔画段;如果第i笔笔画的交叉的向量笔画段旋转到与第j笔笔画的交叉的向量笔画段方向一致时,旋转角度θ不大于180度,识别出第i笔笔画和第j笔笔画为正向交叉位置关系,rij(γ)赋值rij(+z),否则,识别出第i笔笔画和第j笔笔画为反向交叉位置关系,rij(γ)赋值rij(-z)。即如果第i笔笔画的交叉的向量笔画段旋转到与第j笔笔画的交叉的向量笔画段方向一致时,旋转角度θ大于180度,识别出第i笔笔画和第j笔笔画为反向交叉位置关系,rij(γ)赋值rij(-z)。需要提醒的是,如果第i笔笔画和第j笔笔画相接而不是交叉,则不存在正反向交叉位置关系。第i笔笔画具有若干个向量笔画段,第i笔笔画的交叉的向量笔画段指的是与第j笔笔画交叉的那个向量笔画段。
见图4图5,本实施例使用矢量数据旋转方向角度特征法判断正反向交叉位置关系。设第i笔笔画的向量笔画段
与第j笔笔画的向量笔画段
交叉,交点为p
0;以P
0为圆心,沿顺时针方向旋转向量笔画段
图4中,向量笔画段
旋转到与向量笔画段
方向一致时,其旋转角度θ不大于180度,识别出第i笔笔画和第j笔笔画为正向交叉位置关系。而图5中,向量笔画段
旋转到与向量笔画段
方向一致时,其旋转角度θ大于180度,识别出第i笔笔画和第j笔笔画为反向交叉位置关系。正向交叉位置关系和反向交叉位置关系这两种特征关系反映了两笔画的书写先后顺序。
表示第i笔笔画的轨迹关键点p
1和p
2构成的向量笔画段。
表示第j笔笔画的轨迹关键点p
3和p
4构成的向量笔画段。
如果第i笔笔画和第j笔笔画不交叉,rij(γ)赋值rij(0);根据第i笔笔画的轨迹关键点计算第i笔笔画的质心坐标,根据第j笔笔画的轨迹关键点计算第j笔笔画的质心坐标;如果第i笔笔画的质心坐标的横坐标小于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画位于第j笔笔画的左边,rij(α)赋值rij(-x),如果第i笔笔画的质心坐标的横坐标大于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画位于第j笔笔画的右边,rij(α)赋值rij(+x),如果第i笔笔画的质心坐标的横坐标等于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画与第j笔笔画的不存在左右位置关系,rij(α)赋值rij(0);如果第i笔笔画的质心坐标的纵坐标小于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画位于第j笔笔画的下边,rij(β)赋值rij(-y),如果第i笔笔画的质心坐标的纵坐标大于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画位于第j笔笔画的上边,rij(β)赋值rij(+y),如果第i笔笔画的质心坐标的纵坐标等于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画与第j笔笔画的不存在上下位置关系,rij(β)赋值rij(0)。根据若干个点(本实施例指轨迹关键点)可以计算质心坐标,这是现有技术,故在这里不作赘述。
对于不存在相互交叉关系的两笔笔画,其质心坐标不会重合,左右位置关系或者上下位置关系至少存在一种。当两笔笔画的左右位置关系或者上下位置发生对调时,左右位置关系或者上下位置的赋值将互换,可见左右位置关系或者上下位置反映了笔画的先后书写顺序,具有正反对称的性质。
本实施例中,x=1,y=2,z=3;即正向交叉位置关系,rij(γ)赋值rij(+3);反向交叉位置关系,rij(γ)赋值rij(-3);第i笔笔画位于第j笔笔画的左边,rij(α)赋值rij(+1);第i笔笔画位于第j笔笔画的右边,rij(α)赋值rij(-1);第i笔笔画位于第j笔笔画的上边,rij(β)赋值rij(+2);第i笔笔画位于第j笔笔画的下边,rij(β)赋值rij(-2)。给rij(α)、rij(β)、rij(γ)赋值是为了元素rij与元素r′ij比较的便利,便于比较它们是否相同,数值的大小不影响本发明的实施;当然x、y、z的值也可以分别等于2、4、6,或者x、y、z的值也可以分别等于10、20、30。
需要说明的是,现有技术中,第i笔笔画和第j笔笔画的位置关系的识别方法很多,这里就不做赘述,本领域普通技术人员除了选择使用本实施例提及的识别方法外,还可以选择使用现有的其它笔画位置关系的识别方法;比如,可以选择使用背景技术提到的公开号CN 1474351A技术文档中的两笔画之间的相互位置关系的识别方法。
实施例三
本实施例在结合实施例一和实施例二的内容的基础上,提出了一种从t!个时空关系子矩阵
中,找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
的方法。
遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
具体过程包括:
其中,当d
uv(γ)≠0或
时:(即d
uv(γ)和
这两个元素中至少一个不等于0)
当duv(γ)=0且时:
d
uv(γ)=0表示d
uv(γ)赋值d
uv(0),说明笔画不交叉,而d
uv(γ)≠0说明笔画交叉;
表示
赋值
说明笔画不交叉,而
说明笔画交叉。
第k个L
k对应第k个书写汉字的时空关系子矩阵
遍历t!个书写汉字的时空关系子矩阵
k=1,2,...,t!,计算L
k;遍历t!个时空关系子矩阵,共有t!个距离,分别为L
1,L
2,...,L
k,...,L
t!,获得这些距离中的最小值的L
g,最小值的L
g对应时空关系子矩阵
该时空关系子矩阵
为与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
此时
对应第g个排列序列,序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列为正确的笔画书写顺序,实现书写顺序不正确的笔画还原为书写顺序正确的笔画。
如果书写汉字很规范,最小值L
g等于0,即D
t×t与
完全一致;如果书写汉字不够规范,最小值的L
g可能不等于0,按上述方法可找到该最小值的L
g,该L
g对应的就是最接近的时空关系子矩阵
需要说明的是,除了上述通过计算两矩阵的距离、从若干个矩阵中找出最接近矩阵的方法外,本领域普通技术人员还可以选择其它计算距离的方法找出最接近矩阵,如应用欧式距离找出最接近的矩阵,应用欧式距离从若干矩阵中找出最接近的矩阵是现有技术,本领域普通技术人员不需要创造性劳动就可以实现,这里就不在赘述。
实施例四
见图6,一种书写汉字笔顺正确性检测及还原的装置,包括:
预处理装置201,用于获取书写汉字的笔画,设共有N笔笔画。
笔画时空关系矩阵生成装置202,用于生成该书写汉字的笔画时空关系矩阵RN×N,笔画时空关系矩阵RN×N表示由元素rij构成的N×N矩阵:
该笔画时空关系矩阵RN×N的元素rij为元素rij(α,β,γ)的简写,元素rij(α,β,γ)表示第i笔笔画和第j笔笔画的位置关系;rij(α,β,γ)包括rij(α)、rij(β)、rij(γ),其中,rij(α)表示第i笔笔画和第j笔笔画的左右位置关系,rij(β)表示第i笔笔画和第j笔笔画的上下位置关系,rij(γ)表示第i笔笔画和第j笔笔画的正反向交叉位置关系,i=1,2,...,N,j=1,2,...,N。
笔顺正确性检测装置203,用于获取该书写汉字对应的模板汉字的笔画时空关系矩阵R′N×N,笔画时空关系矩阵R′N×N表示由元素r′ij构成的N×N矩阵;如果元素rij与元素r′ij全部相同,判断出该书写汉字的笔顺正确,否则,判断出该书写汉字的笔顺不正确。
笔顺正确性还原装置204,用于从书写汉字的笔画时空关系矩阵R
N×N中找出与模板汉字的笔画时空关系矩阵R′
N×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画q
e,设共有t笔书写顺序不正确的笔画q
e,e=1,2,...,t;将书写顺序不正确的笔画q
e构成一个序列{q
1,q
2,...,q
t},对该序列{q
1,q
2,...,q
t}进行全排列,共有t!个排列序列,设第k个排列序列对应第k个书写汉字的时空关系子矩阵
k=1,2,...,t!:
该时空关系子矩阵
中的元素
为元素
的简写,元素
表示第u笔笔画和第v笔笔画的位置关系;
包括
其中,
表示第u笔笔画和第v笔笔画的左右位置关系,
表示第u笔笔画和第v笔笔画的上下位置关系,
表示第u笔笔画和第v笔笔画的正反向交叉位置关系,u=1,2,...,t,v=1,2...,t;
从模板汉字的笔画时空关系矩阵R′N×N中找出与书写汉字的笔画时空关系矩阵RN×N不同的元素,根据这些不同的元素得到书写顺序不正确的笔画对应的模板正确笔画qf,f=1,2,...,t,将模板正确笔画qf构成一个序列{q1,q2,...,qt},设序列{q1,q2,...,qt}对应一个模板汉字的时空关系子矩阵Dt×t:
该笔画时空关系矩阵Dt×t中的元素duv为元素duv(α,β,γ)的简写,元素duv(α,β,γ)表示第u笔笔画和第v笔笔画的位置关系;duv(α,β,γ)包括duv(α)、duv(β)、duv(γ),其中,duv(α)表示第u笔笔画和第v笔笔画的左右位置关系,duv(β)表示第u笔笔画和第v笔笔画的上下位置关系,duv(γ)表示第u笔笔画和第v笔笔画的正反向交叉位置关系,u=1,2,...,t,v=1,2...,t;
遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
最接近的时空关系子矩阵
对应书写顺序不正确笔画q
e构成的序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列,得出序列{q
1,q
2,...,q
t}进行全排列时的第g个排列序列为正确的笔画书写顺序,实现书写顺序不正确的笔画还原为书写顺序正确的笔画。
其中,预处理装置201进一步用于获取轨迹关键点和向量笔画段;采用道格拉斯-普克算法对书写汉字的每笔笔画进行矢量数据压缩,得到每笔笔画的轨迹关键点;每笔笔画的前后两个相邻的轨迹关键点构成一个向量笔画段。
笔画时空关系矩阵生成装置202进一步用于识别位置关系;元素rij(α,β,γ)表示的第i笔笔画和第j笔笔画的位置关系的识别过程如下:
如果第i笔笔画和第j笔笔画交叉,rij(α)赋值rij(0),rij(β)赋值rij(0);获取第i笔笔画的交叉的向量笔画段和第j笔笔画的交叉的向量笔画段,以交点为圆心,顺时针方向旋转第i笔笔画的交叉的向量笔画段;如果第i笔笔画的交叉的向量笔画段旋转到与第j笔笔画的交叉的向量笔画段方向一致时,旋转角度θ不大于180度,识别出第i笔笔画和第j笔笔画为正向交叉位置关系,rij(γ)赋值rij(+z),否则,识别出第i笔笔画和第j笔笔画为反向交叉位置关系,rij(γ)赋值rij(-z);
如果第i笔笔画和第j笔笔画不交叉,rij(γ)赋值rij(0);根据第i笔笔画的轨迹关键点计算第i笔笔画的质心坐标,根据第j笔笔画的轨迹关键点计算第j笔笔画的质心坐标;如果第i笔笔画的质心坐标的横坐标小于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画位于第j笔笔画的左边,rij(α)赋值rij(-x),如果第i笔笔画的质心坐标的横坐标大于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画位于第j笔笔画的右边,rij(α)赋值rij(+x),如果第i笔笔画的质心坐标的横坐标等于第j笔笔画的质心坐标的横坐标,识别出第i笔笔画与第j笔笔画的不存在左右位置关系,rij(α)赋值rij(0);如果第i笔笔画的质心坐标的纵坐标小于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画位于第j笔笔画的下边,rij(β)赋值rij(-y),如果第i笔笔画的质心坐标的纵坐标大于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画位于第j笔笔画的上边,rij(β)赋值rij(+y),如果第i笔笔画的质心坐标的纵坐标等于第j笔笔画的质心坐标的纵坐标,识别出第i笔笔画与第j笔笔画的不存在上下位置关系,rij(β)赋值rij(0)。
其中,x=1,y=2,z=3。
其中,笔顺正确性还原装置204进一步用于找出最接近的时空关系子矩阵;遍历t!个书写汉字的时空关系子矩阵
找出与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
具体过程包括:
设Lk为Dt×t与之间的距离:
第k个L
k对应第k个书写汉字的时空关系子矩阵
遍历t!个书写汉字的时空关系子矩阵
计算L
k;获得最小值的L
g,最小值的L
g对应时空关系子矩阵
该时空关系子矩阵
为与模板汉字的时空关系子矩阵D
t×t最接近的时空关系子矩阵
此时
所对应的笔画排列即为正确的笔画书写顺序。
以上内容仅为本发明的较佳实施例,对于本领域的普通技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。