发明内容
为了克服现有技术的缺点与不足,本发明的首要目的在于提供一种高效的字符区域提取方法,以提高自然场景中文字检测的快速性与鲁棒性。
本发明的首要目的通过下述技术方案实现:
一种字符区域提取方法,包括以下步骤:
S1.获取场景图片并进行灰度处理得到灰度图像;
S2.对所得灰度图像利用增强滤波算子对字符区域增强,得到增强图片;
S3.利用线密度滤波器对所述增强图片进行滤波处理,得到候选联通区域;
S4.利用条件滤波器对所述候选联通区域进行筛选得到字符区域。
优选的,步骤S2中所述增强滤波算子具体为:
S21、首先利用边缘检测算子对灰度图像求取边缘点;
S22、遍历边缘点,对每个边缘点在灰度图像上求取其LBP向量;
LBP,即为局部二值模式(Local Binary Patterns);
S23、在灰度图像上对每个边缘点在R邻域内寻找其匹配的LBP对,即满足匹配函数为最大的LBP,其中R邻域满足:最大字符宽度<R<(2×最大字符宽度);
S24、找到LBP对后将这两点间的所有像素点置为255,再经过二值化处理得到增强图片。
优选的,步骤S21所述边缘检测算子为:Roberts算子、Sobel算子、Kirsch算子、Prewitt算子、Laplacian算子、LoG算子或Canny算子;更优选的,所述边缘检测算子为Canny算子;
优选的,步骤S23中所述匹配函数为:
所述匹配函数为对两个LBP向量求异或,然后求和。LBP对最好接近形成一个封闭的环状时响应为最大。
优选的,步骤S3中所述线密度滤波器分为横向滤波器和纵向滤波器;
所述横向滤波器进行滤波处理的具体操作为:首先设定线段长度阈值lenThresh和线密度阈值desityThresh,接着循环每一行,寻找到两个黑色线段长度都大于lenThresh的线段,计算这两个线段中间的线密度;线密度的计算公式为白色点的数目除以这两个线段中间的长度,白色点是图像值为255的点;如果线密度大于设定的线密度阈值densityThresh,则把中间所有的点置为白色255;遍历所有的行,各行之间互不干扰;
所述纵向滤波器进行滤波处理的具体操作为将图像进行转置后利用横向滤波器的操作进行滤波处理。
优选的,步骤S4所述条件滤波器为:首先求取候选联通区域的MSER块,然后根据所得MSER块的中心坐标进行能量计算,能量达到较小者就是字符区域;
所述能量计算的具体公式为:其中n为MSER区域的数目,n>=3;i>=2;x,y为MSER区域的中心坐标。
本发明的另一目的在于提供一种字符区域提取系统。
一种字符区域提取系统,包括:
图像预处理单元,用于获取场景图片并进行灰度处理得到灰度图像;
图像增强滤波单元,用于对所得灰度图像利用增强滤波算子对字符区域增强,得到增强图片;
候选联通区域定位单元,用于利用线密度滤波器对所述增强图片进行滤波处理,得到候选联通区域;
字符区域判决单元,用于利用条件滤波器对所述候选联通区域进行筛选得到字符区域。
优选的,所述图像增强滤波单元包括:
边缘点检测模块,用于利用边缘检测算子对灰度图像求取边缘点;
LBP向量求取模块,用于对每个边缘点在灰度图像上求取其LBP向量;
LBP对匹配模块,用于在灰度图像上对每个边缘点在R邻域内寻找其匹配的LBP对,即满足匹配函数为最大的LBP,其中R邻域满足:最大字符宽度<R<(2×最大字符宽度);
二值化处理模块,用于找到LBP对后将这两点间的所有像素点置为255,再经过二值化处理得到增强图片。
优选的,所述边缘点检测模块中采用的边缘检测算子为:Roberts算子、Sobel算子、Kirsch算子、Prewitt算子、Laplacian算子、LoG算子或Canny算子;更优选的,所采用的边缘检测算子为Canny算子。
优选的,所述LBP对匹配模块采用的匹配函数为:
优选的,所述候选联通区域定位单元中采用的线密度滤波器分为横向滤波器和纵向滤波器;
所述横向滤波器具体用于对增强图片进行横向线密度滤波处理;首先设定线段长度阈值lenThresh和线密度阈值desityThresh,接着循环每一行,寻找到两个黑色线段长度都大于lenThresh的线段,计算这两个线段中间的线密度;线密度的计算公式为白色点的数目除以这两个线段中间的长度,白色点是图像值为255的点;如果线密度大于设定的线密度阈值densityThresh,则把中间所有的点置为白色255;遍历所有的行,各行之间互不干扰;
所述纵向滤波器具体用于对增强图片的纵向进行线密度滤波处理;纵向滤波器将图像进行转置后利用横向滤波器的操作进行滤波处理。
优选的,所述字符区域判决单元中的条件滤波器具体用于根据能量计算公式求取候选联通区域的MSER块的能量,判定能量达到较小者为字符区域;
所述能量计算公式为:其中n为MSER区域的数目,n>=3;i>=2;x,y为MSER区域的中心坐标。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明对字符区域的提取方面非常快速鲁棒,并且计算性能很低、功耗很小,可以广泛的应用在文档字符提取、车牌提取、自然场景中的文字提取等领域,具有广泛的社会和经济效益。
(2)本发明利用图像边缘上的LBP对来寻找字符笔画宽度区域后对其进行二值化处理,得到增强图片,提高了处理速度,计算性能低。
(3)本发明利用横向滤波器和纵向滤波器结合的线密度滤波器处理增强图片,利用了字符笔画之间具有相对较短距离等特性定位候选联通区域,提取快速鲁棒。
(4)本发明利用能量函数来判决,对候选联通区域进行筛选得到字符区域,进一步提到了定位速度和鲁棒性。
实施例1
如图1所示,一种字符区域提取方法,包括如下步骤:
S1.获取场景图片并进行灰度处理得到灰度图像。
S2.对所得灰度图像利用增强滤波算子对字符区域增强,得到增强图片。
如图2所示,步骤S2的具体过程如下:
S21、首先利用边缘检测算子对灰度图像求取边缘点;
可采用的边缘检测算子包括Roberts算子、Sobel算子、Kirsch算子、Prewitt算子、Laplacian算子、LoG算子及Canny算子,本实施例中利用Canny算子求取边缘点;
S22、遍历边缘点,对每个边缘点在灰度图像上求取其LBP向量;对每个边缘点的像素进行LBP向量提取;
S23、在灰度图像上对每个边缘点在R邻域内寻找其匹配的LBP对,即满足匹配函数为最大的LBP,其中R邻域满足:最大字符宽度<R<(2×最大字符宽度);在本实施例中,R取3或5个像素点的长度;
所述匹配函数为:所述匹配函数为对两个LBP向量求异或,然后求和。当所寻找的两个LBP对接近形成一个封闭的环状时响应为最大,即为最匹配的LBP对;
为了进一步的加快寻找匹配对的效率,可以顺着该点像素梯度方向的法向量45度范围内进行检索,如图3所示。图3同时给出了LBP的最佳匹配对示例。
S24、匹配函数最大的既为字符笔画宽度的另一个像素点,置这两点间所有像素点为255,再经过二值化处理得到增强图片。
S3.利用线密度滤波器对所述增强图片进行滤波处理,得到候选联通区域;
线密度滤波器主要用来对二值化处理后的增强图片进行处理,利用字符笔画之间具有相对较短距离的特性,得到一些候选字符联通区域。对线密度较大地方进行连接。线密度滤波分为横向滤波器和纵向滤波器。
本实施例中,所述横向滤波器进行滤波处理的操作为:首先设定线段长度阈值lenThresh和线密度阈值desityThresh,接着循环每一行,寻找到两个黑色线段长度都大于lenThresh的线段,计算这两个线段中间的线密度;线密度的计算公式为白色点的数目除以这两个线段中间的长度,白色点是图像值为255的点;如果线密度大于设定的线密度阈值densityThresh,则把中间所有的点置为白色255;遍历所有的行,各行之间互不干扰;
在横向滤波器中,线段长度阈值lenThresh的取值范围为:最小字符区域的宽度≤lenThresh<图像的宽度;在本实施例中,线段长度阈值lenThresh的取值为25个像素宽度;
在横向滤波器中,线密度阈值desityThresh的取值范围为:0.01<desityThresh<1;在本实施例中,线密度阈值desityThresh的取值为0.08。
如图4所示,本实施例中,所述横向滤波器的具体操作为:
S31、输入增强图片;
S32、求取横向线段长度表,设定线段长度阈值lenThresh和线密度阈值desityThresh;
S33、循环每一行;
S34、寻找到两个黑色线段长度都大于lenThresh的线段;
S35、计算这两个线段中间的线密度;线密度的计算公式为白色点的数目除以这两个线段中间的长度,所述两个线段中间的长度即为白点数目与黑点数目的总和;
S36、判断计算所得的线密度是否大于线密度阈值desityThresh;若线密度大于线密度阈值,则执行步骤S37,否则直接执行步骤S38;
S37、把两个黑色线段之间的间隔全置为白色点255;
S38、确定是否遍历完所有行;若是则执行步骤S39,否则返回步骤S33;
S39、输出线密度滤波之后的图像。
求取横向线段长度表的具体操作如图5所示,具体为:
S32-1、对第一列像素值统计长度;统计方法为如果为0则计数为1,否则计数为-1;
S32-2、循环每一行像素值,判断当前像素值;
S32-3、判断是否当前像素值为0并且前一像素值也为0;如果是则执行步骤S32-4,否则执行步骤S32-5;
S32-4、记录当前像素点长度为前一个像素长度+1,然后执行步骤S32-11;
S32-5、判断是否当前像素值为255并且前一像素值也为255;如果是则执行步骤S32-6,否则执行步骤S32-7;
S32-6、记录当前像素点长度为前一个像素长度-1,然后执行步骤S32-11;
S32-7、判断是否当前像素值为0并且前一像素值为255;如果是则执行步骤S32-8,否则执行步骤S32-9;
S32-8、记录当前像素点长度为1,然后执行步骤S32-11;
S32-9、判断是否当前像素值为255并且前一像素值为0;如果是则执行步骤S32-10;
S32-10、记录当前像素点长度为-1,然后执行步骤S32-11;
S32-11、判断是否到达最后一行,如果是则执行步骤S32-12,否则返回执行步骤S32-2;
S32-12、得到横向线段长度表。
所述纵向滤波器进行滤波处理的具体操作为将图像进行转置后利用横向滤波器的操作进行滤波处理。因横向与纵向时文档图像的字符宽度有差异,故线段长度阈值lenThresh和线密度阈值desityThresh的取值与横向滤波器有所区别。
在纵向滤波器中,线段长度阈值lenThresh的取值范围为:最小字符区域的宽度≤lenThresh<图像的宽度;在本实施例中,线段长度阈值lenThresh的取值为10个像素宽度;
在纵向滤波器中,线密度阈值desityThresh的取值范围为:0.01<desityThresh<1;在本实施例中,线密度阈值desityThresh的取值为0.05。
S4.利用条件滤波器对所述候选联通区域进行筛选得到字符区域;
利用条件滤波器进行判决的操作为:首先求取候选联通区域的MSER块,然后根据所得MSER块的中心坐标进行能量计算,能量达到较小者就是字符区域。
MSER块限制条件宽高比<=1,面积小于字符最大区域的两倍;进行能量计算的具体公式为:其中n为MSER区域的数目,n>=3;i>=2;x,y为MSER区域的中心坐标。
能量的计算方法为块之间斜率之差是否达到最小,也就是表明这些字符中心基本形成一条直线。
当字符之间斜率不超过3度时,基本为一条直线,因此可将能量的阈值ET设定为:ET=(n-1)*tan(3),约等于0.05*(n-1),其中n为算法统计出字符的个数。
能量小于一定阈值ET的区域就是字符区域。
一种字符区域提取系统,如图6所示,具体包括:
图像预处理单元10,用于获取场景图片并进行灰度处理得到灰度图像;
图像增强滤波单元20,用于对所得灰度图像利用增强滤波算子对字符区域增强,得到增强图片;
候选联通区域定位单元30,用于利用线密度滤波器对所述增强图片进行滤波处理,得到候选联通区域;
字符区域判决单元40,用于利用条件滤波器对所述候选联通区域进行筛选得到字符区域。
其中,如图7所示,所述图像增强滤波单元20包括:
边缘点检测模块201,用于利用边缘检测算子对灰度图像求取边缘点;
LBP向量求取模块202,用于对每个边缘点在灰度图像上求取其LBP向量;
LBP对匹配模块203,用于在灰度图像上对每个边缘点在R邻域内寻找其匹配的LBP对,即满足匹配函数为最大的LBP,其中R邻域满足:最大字符宽度<R<(2×最大字符宽度);
二值化处理模块204,用于找到LBP对后将这两点间的所有像素点置为255,再经过二值化处理得到增强图片。
其中,所述边缘点检测模块201中采用的边缘检测算子可选为:Roberts算子、Sobel算子、Kirsch算子、Prewitt算子、Laplacian算子、LoG算子或Canny算子;
本实施例中所采用的边缘检测算子为Canny算子。
所述LBP对匹配模块202采用的匹配函数为:
所述候选联通区域定位单元30中采用的线密度滤波器分为横向滤波器和纵向滤波器;
所述横向滤波器具体用于对增强图片进行横向线密度滤波处理;首先设定线段长度阈值lenThresh和线密度阈值desityThresh,接着循环每一行,寻找到两个黑色线段长度都大于lenThresh的线段,计算这两个线段中间的线密度;线密度的计算公式为白色点的数目除以这两个线段中间的长度,白色点是图像值为255的点;如果线密度大于设定的线密度阈值densityThresh,则把中间所有的点置为白色255;遍历所有的行,各行之间互不干扰;
在横向滤波器中,线段长度阈值lenThresh的取值范围为:最小字符区域的宽度≤lenThresh<图像的宽度,在本实施例中,线段长度阈值lenThresh的取值为25个像素宽度;线密度阈值desityThresh的取值范围为:0.01<desityThresh<1,在本实施例中,线密度阈值desityThresh的取值为0.08;
所述纵向滤波器具体用于对增强图片的纵向进行线密度滤波处理;纵向滤波器将图像进行转置后利用横向滤波器的操作进行滤波处理;
在纵向滤波器中,线段长度阈值lenThresh的取值范围为:最小字符区域的宽度≤lenThresh<图像的宽度,在本实施例中,线段长度阈值lenThresh的取值为10个像素宽度;
线密度阈值desityThresh的取值范围为:0.01<desityThresh<1,在本实施例中,线密度阈值desityThresh的取值为0.05。
所述字符区域判决单元40中的条件滤波器具体用于根据能量计算公式求取候选联通区域的MSER块的能量,判定能量达到较小者为字符区域;
所述能量计算公式为:其中n为MSER区域的数目,n>=3;i>=2;x,y为MSER区域的中心坐标。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。