发明内容
本发明的目的是提供一种基于谱聚类的自然场景汉字分割方法,解决了现有技术中难以将汉字准确分割的问题。
本发明所采用的技术方案是,一种基于谱聚类的自然场景汉字分割方法,具体按照以下步骤实施:
步骤1、在官方数据集ICDAR2017-RCTW-17、MSRA-TD500、ICDAR2017-MLT下载或拍摄一张包含汉字的彩色场景图像Img
1,对Img
1进行尺度变换,尺度因子为(s
w,s
h),其中
和
得到图像Img
2,w'和h'分别为图像Img
2的宽和高,w和h分别为图像Img
1的宽和高;
步骤2、把图像Img
2作为输入,送入文本检测网络模型Model
e2e-mlt,得到检测的文本框集合B'={b'
j|j=1,2,…N1},其中N1表示文本框总个数,对文本框集合B'中的各个文本框位置和大小根据尺度因子
进行尺度变换得到B={b
j|j=1,2,…N1},b
j表示Img
1中检测到的第j个文本框,b
j的四个顶点为
步骤3、把Img
1作为输入,送入显著图提取算法Saliency-Processing(),计算得到显著图S
Img,把S
Img作为输入,调用开源的Opencv库函数mser.detectRegions(),计算得到MSER(Maximally Stable Extremal Regions)集合,即字符候选框集合C'={c'
i|i=1,2,…N2},c'
i表示第i个字符候选框,N2表示字符候选框总个数,
为字符候选框c'
i的中心点坐标;
步骤4、利用b
j和c'
i在图像中的几何位置关系计算文本框b
j中的字符候选框集合,记为
表示第j个文本框b
j中第m个字符候选框;m∈[1,N
j],N
j表示文本框b
j中包含的字符候选框总个数;
步骤5、设定文本框个数计数器j初始值为1,即j=1;
步骤6、用文本框b
j中的字符框集构建图G
j,G
j=(V
j,E
j):其中节点集V
j为字符候选框集,即
边集E
j为由各个字符候选框间计算的关系特征值;
步骤7、对图Gj进行谱聚类分割前的初始化;
步骤8、定义谱聚类类别总个数计数器变量为K,K初始化为
步骤9、把图G
j=(V
j,E
j)作为输入,送入谱聚类分割算法Spectral_Clustering()进行K类分割,得到K类下聚类中心集合
和聚类结果集合
其中
表示第p类的类中心,
表示第p类的字符框集合;
表示第p类分割结果中的第q个字符框,Z
p表示第p类分割结果中的字符框总个数。
步骤10、把
和
作为输入,送入聚类评价算法Clustering_Evaluation()计算得到K类聚类结果的聚类评价指标
步骤11、根据评价值对最优分类结果变量进行更新:如果
则
否则
保持不变;
步骤12、谱聚类类别个数计数器K加1,即K=K+1;如果
进入步骤9;否则输出最优的分割结果
和最优的聚类个数
进入步骤13;
步骤14、j=j+1;如果j≤N1,进入步骤6;否则结束分割与识别。
本发明的特点还在于,
步骤4中,具体按照以下步骤实施:
步骤4.1、把b
j的四个顶点
作为输入,调用开源的Opencv库函数minAreaRect(),计算得到b
j的最小外接矩形框rbox
j;
步骤4.2、在Img
1中矩形框rbox
j的左上顶点、右上顶点、右下顶点、左下顶点分别记为
rbox
j和Img
1行方向的夹角记为α
j;α
j对应的反方向弧度角记为θ
j,θ
j=α
j×π/180×(-1),旋转矩阵记为T,
步骤4.3、判断c'i是否包含于bj,具体为:
步骤4.3.1、C'中各个c'
i的中心点坐标记为
分别以
为原点,以
为x轴正方向,以
为y轴正方向建立4个平面直角坐标系,分别记为XOY
0、XOY
1、XOY
2、XOY
3;
步骤4.3.2、分别计算
和
的水平和垂直偏移量,记为
其中
t∈{0,1,2,3};
步骤4.3.3、根据旋转矩阵T分别计算步骤4.3.2中各偏移量在各坐标系XOY
0、XOY
1、XOY
2、XOY
3中的坐标
定义
在4个象限出现的次数变量为Qqu[0],Qqu[1],Qqu[2],Qqu[3],坐标系变量为idx,即idx=0对应坐标系XOY
0,idx=1对应坐标系XOY
1,idx=2对应坐标系XOY
2,idx=3对应坐标系XOY
3,统计
在坐标系各象限中出现的个数:
Qqu[0]=Qqu[1]=Qqu[2]=Qqu[3]=0
根据Qqu[0],Qqu[1],Qqu[2],Qqu[3]取值判断c'i是否在bj中,若Qqu[0],Qqu[1],Qqu[2],Qqu[3]四个变量都不为0,则c'i包含于当前bj中;否则,c'i不包含于当前bj中;
步骤6中,图G
j中边集E
j构造如下:
其中元素w
g,h表示节点
和
间的关系特征值,
和
分别表示第j个文本框b
j中的第g个字符候选框和第h个字符候选框,b
j左上顶点记为
的中心点记为P
g,
的中心点记为P
h,
和
间的中点记为P
g,h;
g,h∈[1,N
j],其中
表示
和
中心点P
g和P
h之间的欧式距离,即
表示P
g和P
h之间包含的其它节点个数,即为V
j中统计的除了
和
以外的和P
g,h的欧式距离小于r
g,h的节点个数,
表示
和
距文本框b
j左上顶点的距离绝对差,
计算所有g,h取值情况下
的标准差,分别记为σ
1、σ
2、σ
3;
步骤7中,具体如下:
步骤7.1、对文本框b
j在文本框主方向上进行直方图投影,直方图的谷底个数记为K
j,对谱聚类的类别数值范围变量L
j进行初始化,
其中
α为L
j相对K
j的偏移量;
步骤7.2、谱聚类的最优聚类结果变量
初始化为NULL,NULL为空集;最优聚类个数变量
初始化为
最优聚类结果的评价指标变量
初始化为S_DMAX,变量S_DMAX=9999.99。
步骤9中,具体如下:
步骤9.1、对图G
j=(V
j,E
j)中的E
j对应的矩阵
进行规范化处理得到拉普拉斯矩阵L,
其中D为对角阵,
步骤9.2、对L进行特征值分解:L=QΣQ-1,其中Σ和Q分别对应特征值和特征向量;对Σ中特征值从大到小进行排序得到Σ';取Σ'中前K个特征值在Q中对应的特征向量组成K×Nj维的矩阵L';把矩阵L'作为输入,调用开源的Opencv库函数normalize()对L'进行归一化得到L”;
步骤9.3、把矩阵L”作为输入,调用开源的Opencv库函数kmeans()对L”进行K类分割,得到聚类中心集合
和聚类结果集合
其中
表示第p类的类中心,
表示第p类字符框集合;
表示第p类分割结果中的第q个字符框,Z
p表示第p类分割结果中的字符框总个数;
步骤10中,具体评价按照以下步骤实施:
步骤10.1、输入聚类中心集合
和聚类结果集合
任意两类e,f的中心分别记为
和
和
的中点记为
e,f∈[1,K];
步骤10.2、计算任意第p类的类内方差
计算
中所有数据的方差
计算类内标准差
步骤10.3、以任意两类e,f的中点
为圆心以
为半径的圆记为
以任意第p类的中心
为圆心以
为半径的圆记
任意两类e,f之间存在的字符框个数记为
任意第p类中存在的字符框个数记为
为圆
中统计的属于第e、f两类中的字符框个数,
为圆
中统计的属于第p类中的字符框个数;
其中max()为求最大值函数。
本发明的有益效果是:
本发明首先利用文字检测网络对自然场景图像中的文字区域进行检测得到各个不同位置的文本框,在场景图像的显著图上进行MSER(Maximally Stable ExtremalRegions,最大稳定极值区域)提取得到各个独立的字符框,按照在图像中的几何位置关系提取各文本框中包含的字符框;其次,在认为各字符相当于汉字的偏旁部首或笔画的前提下,用文本框中提取的字符框集建立无向图,图中的各节点为文本框中对应的字符框,图中的边为字符框间在图像中的绝对距离、相对距离和包含的其它字符个数三种度量特征的融合特征;最后利用谱聚类对各无向图进行最优分割,最优分割的目标函数为类间密度和类内散度之和达到最小。本发明不仅利用了汉字的间架结构特点,在谱聚类字符分割上也利用了目标评价函数的最小化以实现最优分割。本发明能够对自然场景中任意方向上的汉字进行准确分割,进而提高自然场景中汉字的识别率。本发明不仅适用于任意场景中的汉字分割,也适合于场景中英文的单字母分割。
附图说明
图1是本发明一种基于谱聚类的自然场景汉字分割方法流程图;
图2是本发明一种基于谱聚类的自然场景汉字分割方法中点在四个坐标系中的关系示意图;
图3是本发明一种基于谱聚类的自然场景汉字分割方法中谱聚类分割的流程图;
图4是本发明实施例中的一幅场景图像;
图5是本发明实施例中对图4检测的文本框和字符框结果图;
图6是本发明实施例中对图4的汉字分割结果图和识别的汉字结果;
图7是本发明实施例中的另一幅场景图像;
图8是是本发明实施例中对图7检测的文本框和字符框结果图;
图9是本发明实施例中的对图7的汉字分割结果图和识别的汉字结果。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种基于谱聚类的自然场景汉字分割方法,如图1所示,具体按照以下步骤实施:
步骤1、在官方数据集ICDAR2017-RCTW-17、MSRA-TD500、ICDAR2017-MLT下载或拍摄一张包含汉字的彩色场景图像Img
1,对Img
1进行尺度变换,尺度因子为(s
w,s
h),其中
和
得到图像Img
2,w'和h'分别为图像Img
2的宽和高,w和h分别为图像Img
1的宽和高;在本实施方案中w=800,h=600,s
w=1,s
h=0.96,w′=w×s
w=800,h′=h×s
h=576;
步骤2、把图像Img
2作为输入,送入文本检测网络模型Model
e2e-mlt,得到检测的文本框集合B'={b'
j|j=1,2,…N1},其中N1表示文本框总个数,模型Model
e2e-mlt采用Michal
等人2018年在Asian Conference on Computer Vision(ACCV 2108)会议上提出的名为“E2E-MLT-an Unconstrained End-to-End Method for Multi-Language SceneText”一文中的文本检测网络模型;对文本框集合B'中的各个文本框位置和大小根据尺度因子
进行尺度变换得到B={b
j|j=1,2,…N1},b
j表示Img
1中检测到的第j个文本框,b
j的四个顶点为
步骤3、把Img
1作为输入,送入显著图提取算法Saliency-Processing(),计算得到显著图S
Img,其中显著图提取算法Saliency-Processing()采用FuH等人2013年在IEEETransactions on Image Processing期刊第22卷第10期上提出的名为“Cluster-BasedCo-Saliency Detection”一文中的显著图提取算法;把S
Img作为输入,调用开源的Opencv库函数mser.detectRegions(),计算得到MSER(Maximally Stable Extremal Regions)集合,即字符候选框集合C'={c'
i|i=1,2,…N2},c'
i表示第i个字符候选框,N2表示字符候选框总个数,
为字符候选框c'
i的中心点坐标;
步骤4、利用b
j和c'
i在图像中的几何位置关系计算文本框b
j中的字符候选框集合,记为
表示第j个文本框b
j中第m个字符候选框;m∈[1,N
j],N
j表示文本框b
j中包含的字符候选框总个数;
具体按照以下步骤实施:
步骤4.1、把b
j的四个顶点
作为输入,调用开源的Opencv库函数minAreaRect(),计算得到b
j的最小外接矩形框rbox
j;
步骤4.2、在Img
1中矩形框rbox
j的左上顶点、右上顶点、右下顶点、左下顶点分别记为
rbox
j和Img
1行方向的夹角记为α
j;α
j对应的反方向弧度角记为θ
j,θ
j=α
j×π/180×(-1),旋转矩阵记为T,
步骤4.3、判断c'i是否包含于bj,具体为:
步骤4.3.1、C'中各个c'
i的中心点坐标记为
分别以
为原点,以
为x轴正方向,以
为y轴正方向建立4个平面直角坐标系,分别记为XOY
0、XOY
1、XOY
2、XOY
3,如图2所示;
步骤4.3.2、分别计算
和
的水平和垂直偏移量,记为
其中
t∈{0,1,2,3};
步骤4.3.3、根据旋转矩阵T分别计算步骤4.3.2中各偏移量在各坐标系XOY
0、XOY
1、XOY
2、XOY
3中的坐标,记为
定义
在4个象限出现的次数变量为Qqu[0],Qqu[1],Qqu[2],Qqu[3],坐标系变量为idx,即idx=0对应坐标系XOY
0,idx=1对应坐标系XOY
1,idx=2对应坐标系XOY
2,idx=3对应坐标系XOY
3,统计
在坐标系各象限中出现的个数:
Qqu[0]=Qqu[1]=Qqu[2]=Qqu[3]=0;
根据Qqu[0],Qqu[1],Qqu[2],Qqu[3]取值判断c'i是否在bj中,若Qqu[0],Qqu[1],Qqu[2],Qqu[3]四个变量都不为0,则c'i包含于当前bj中;否则,c'i不包含于当前bj中;
步骤5、设定文本框个数计数器j初始值为1,即j=1;
步骤6、用文本框b
j中的字符框集构建图G
j,G
j=(V
j,E
j):其中节点集V
j对应字符候选框集,即
边集E
j为由各个字符候选框间计算的关系特征值;
图G
j中边集E
j构造如下:
其中元素w
g,h表示节点
和
间的关系特征值,
和
为第j个文本框b
j中的第g个字符候选框和第h个字符候选框,b
j左上顶点记为
的中心点记为P
g,
的中心点记为P
h,
和
的中点记为P
g,h;
g,h∈[1,N
j],其中
表示
和
中心点P
g和P
h的欧式距离,即
表示P
g和P
h之间包含的其它节点个数,即为V
j中统计的除了
和
以外的和P
g,h的欧式距离小于r
g,h的节点个数,
表示
和
距文本框b
j左上顶点的距离绝对差,
计算所有g,h取值情况下
的标准差,分别记为σ
1、σ
2、σ
3;
步骤7、对图Gj进行谱聚类分割前的初始化;
步骤7.1、对文本框b
j在文本框主方向上进行直方图投影,直方图的谷底个数记为K
j,对谱聚类的类别数值范围变量L
j进行初始化,
其中
α为L
j相对K
j的偏移量;在本实施方案中α=3;
步骤7.2、谱聚类的最优聚类结果变量
初始化为NULL,NULL为空集;最优聚类个数变量
初始化为
最优聚类结果的评价指标变量
初始化为S_DMAX,变量S_DMAX=9999.99;
步骤8、定义谱聚类类别总个数计数器变量为K,K初始化为
步骤9、把图G
j=(V
j,E
j)作为输入,送入谱聚类分割算法Spectral_Clustering()进行K类分割,得到K类下聚类中心集合
和聚类结果集合
分割算法如图3所示,具体执行如下:
步骤9.1、对图G
j=(V
j,E
j)中的E
j对应的矩阵
进行规范化处理得到拉普拉斯矩阵L,
其中D为对角阵,
步骤9.2、对L进行特征值分解:L=QΣQ-1,其中Σ和Q分别对应特征值和特征向量;对Σ中特征值从大到小进行排序得到Σ';取Σ'中前K个特征值在Q中对应的特征向量组成K×Nj维的矩阵L';把矩阵L'作为输入,调用开源的Opencv库函数normalize()对L'进行归一化得到L”;
步骤9.3、把矩阵L”作为输入,调用开源的Opencv库函数kmeans()对L”进行K类分割,得到聚类中心集合
和聚类结果集合
其中
表示第p类的类中心,
表示第p类的字符框集合;
表示第p类分割结果中的第q个字符框,Z
p表示第p类分割结果中的字符框总个数;
步骤10、把
和
作为输入,送入聚类评价算法Clustering_Evaluation()计算得到K类聚类结果的聚类评价指标
步骤10,具体评价按照以下步骤实施:
步骤10.1、输入聚类中心集合
和聚类结果集合
任意两类e,f的中心分别记为
和
e,f∈[1,K],
和
的中点记为
步骤10.2、计算任意第p类的类内方差
计算
中所有数据的方差
计算类内标准差
步骤10.3、以任意两类e,f的中点
为圆心以
为半径的圆记为
以任意第p类的中心
为圆心以
为半径的圆记
任意两类e,f之间存在的字符框个数记为
任意任意第p类中存在的字符框个数记为
为圆
中统计的属于第e和第f两类中的字符框个数,
为圆
中统计的属于第p类中的字符框个数;
其中max()为求最大值函数。
步骤11、根据评价值对最优分类结果变量进行更新:如果
则
否则
保持不变;
步骤12、谱聚类类别个数计数器K加1,即K=K+1;如果
进入步骤9;否则输出最优的分割结果
和最优的聚类个数
进入步骤13;
步骤13、把分割结果
送入OCR进行识别,其中OCR采用了Google公司开发的Tesseract-OCR下的OCR识别引擎;
步骤14、j=j+1;如果j≤N1,进入步骤6;否则结束分割与识别。
实施例
本发明从测试数据集中挑选出含有汉字的图片,采用本发明的方法进行文字分割和识别,图4表示一个包含汉字的场景图像,图5表示在图4中检测到的文本框和字符框结果图,虚线框是文本框,实线框是字符框,图6表示对图4采用本发明得到的汉字分割结果图和识别的汉字结果,灰色框是分割结果,白色框是识别结果;图7表示另一个包含汉字的场景图像,图8表示在图7中检测到的文本框和字符框结果图,虚线框是文本框,实线框是字符框,图9表示对图7采用本发明得到的汉字分割结果图和识别的汉字结果,灰色框是分割结果,白色框是识别结果。
通过字符识别率对本发明的汉字分割效果进行评价,评价结果如表1所示:
表1汉字识别率评价结果表
由表1可知,本发明在多个数据集上的汉字识别率结果都很高,本发明可以应用于不同场景、不同远近、不同方向、不同大小、不同颜色的汉字分割和识别。