掌桥专利:专业的专利平台
掌桥专利
首页

一种屏幕图像中的文字优化定位方法

文献发布时间:2024-04-18 19:58:53


一种屏幕图像中的文字优化定位方法

技术领域

本发明涉及计算机视觉化领域,尤其涉及一种屏幕图像中的文字优化定位方法。

背景技术

基于视觉信息的软件测试、软件界面检索等领域,常常需要从软件运行时产生的屏幕图像中定位给定文本,以确定界面控件的位置,或者判断界面是否匹配某一文字检索标准等。从屏幕图像中定位文本成为软件工程中一个共性需求。

现有从屏幕图像定位文本的技术包括模板匹配和OCR(optical characterrecognition)文字识别匹配,各自存在一些优势和不足。模板匹配在整个屏幕图像中匹配文字的给定渲染子图,定位文字所在的小块区域。该方式定位速度快,在环境不变的情况下准确度高,但适应性差,切换软件运行环境后(如依托的操作系统变化、浏览器软件变化),给定文字的渲染图可能随着环境变化而发生变化,从而导致在屏幕图像中匹配原有渲染图准确度锐减。OCR文字识别匹配先对屏幕图像进行OCR文字识别,得到其中所有文字及其出现位置信息,然后再通过文字的字符串匹配来定位其位置。OCR文字识别匹配适应性强,但速度慢,受OCR本身的效果影响,也未必能够保证准确度。

发明内容

发明目的:本发明的目的是提供一种能快速、自适应地在屏幕图像中定位给定文字位置的屏幕图像中的文字优化定位方法。

技术方案:本发明的文字优化定位方法,包括以下步骤:

S1,对于需要定位的文字,要求用户给定该文字在当前软件运行环境下的一组示例文字及所在屏幕图像;其中,需要定位的文字具有某一类渲染特征;

S2,在大量参数组成的渲染配置空间中,采用文字渲染配置识别算法识别出样本文字的具体渲染配置;

S3,对于具有同一类渲染特征的其它文字,根据自动识别的渲染配置将文字渲染成图像,利用模板匹配算法在屏幕中匹配该图像来定位文字的所在位置。

进一步,步骤S2中,所述采用文字渲染配置识别算法识别出样本文字的具体渲染配置,包括步骤如下:

S21,通过OCR文字识别工具,获取紧密包含样本文字的小图;

S22,采用三元二次多项式回归拟合推测函数P

S23,通过基于深度学习的图像分类算法对样本文字的字体类型、字体风格、字重、渲染引擎分别进行智能预测;

S24,通过图像处理方法,判断文字样本图的前后背景颜色;

S25,采用基于优先级队列和启发式搜索方法,来找到样本文字的最佳渲染配置。

进一步,步骤S21中,当样本文字周围有其他文本时,OCR文字识别工具无法准确获得样本文字所在边界区域时,采取如下步骤:

先提取紧密包含样本文字的小图,然后使用轮廓识别算法来获取小图中的轮廓,对每个轮廓判断其是否为文字框;如果满足外框是一个矩形,轮廓面积和外框面积基本相近,且宽长比符合文字的特征,则认为当前轮廓为一个文字框。

进一步,步骤S22中,推测函数P

S221,通过构建训练库,得到每个训练文字对应的h

S222,在训练数据的基础上,使用三元二次多项式回归来拟合推测函数P

S223,通过轮廓识别,获取步骤21中得到的小图中文字的像素高度;同时将得到的h

进一步,步骤S23中,对样本文字的字体类型、字体风格、字重、渲染引擎分别进行智能预测的实现步骤如下:

S231,分别针对字体类型、字体风格、字重、渲染引擎建立文字图片训练样本库;

S232,构建基于残差网络ResNet50建立的深度学习预测模型,基于样本库,训练从文字图片到渲染参数的深度学习预测模型;

S233,采用深度学习预测模型对步骤21得到的样本文字图片进行预测,得到分类概率向量,分类概率向量的每项值代表属于该分类的可能性。

进一步,步骤S24中,判断文字样本图的前后背景颜色的实现步骤如下:

S241,通过图像处理方法将图片灰度化,将繁多的颜色种类分类为白底黑字以及灰底白字两种分类;同时将样本文字图二值化,在二值化图上提取图片四周的像素值,计算出四周像素值的均值m:

m=(mean(top_row)+mean(bottow_row)+mean(left_colum)+mean(right_colun))/4

式中,mean()为取均值函数,mean(top_row)表示图片顶行像素值的均值,mean(bottow_row)表示图片底行像素值的均值,mean(left_colum)表示图片最左列像素值的均值,mean(right_colum)表示图片最右列像素值的均值;

S242,根据均值m进行判断:如果均值m>255/2,则表示图片四周过半白,推断出二值化图背景白文字黑,属于白底黑字的分类;反之,则表示图片四周过半黑,二值化图背景黑文字白,属于灰底白字的分类。

进一步,步骤S25中,找到样本文字的最佳渲染配置的实现步骤如下:

S251,根据步骤22得到样本文字的大致大小为a,将字体大小空间设置为{a-1,a,a+1},并设置对应的优先级;根据步骤23返回的结果得到字体类型、字体风格、字重、渲染引擎的取值空间及对应概率,将每个取值的概率作为其对应的优先级;根据步骤24得到前后背景颜色的取值空间为{白底黑字,灰底白字},并设置对应的优先级;

将样本文字所有参数的取值取笛卡尔积,得到一个优先级队列

步骤252,选取优先级队列中优先级最高的200个渲染配置形成新的优先级队列

步骤253,如存在预测失误导致最佳配置的优先级不高,无法在步骤252退出时,采用基于遗传算法的启发式搜索思路补充新的待测试配置,直到找到相似度达到设定阈值的渲染配置,具体步骤如下:

步骤2531,将步骤252中得到的{r

步骤2532,使用种群中的各个渲染配置将样本文字渲染成图像,与屏幕图像进行模板匹配得到的相似度为一个个体的适应度;

步骤2533,根据种群中个体的适应度大小,将适应度高的个体从当前种群中选择出来;

步骤2534,对步骤2533选出的渲染配置进行交叉运算产生新的渲染配置;将新的渲染配置加入种群,重复步骤2532,直到发现适应度达到设定阈值的个体时,停止搜索。

本发明与现有技术相比,其显著效果如下:

1、本发明提出了一种文字渲染配置识别算法,快速、自动的识别文字渲染配置,据此将文字渲染成图像,然后基于模板匹配进行文字定位,具有较好的定位速度;与基于OCR文字识别的方法相比,文字定位速度更快,准确度更高;

2、本发明自动识别渲染配置后,根据当前环境进行文字渲染和匹配,避免了模板匹配切换软件运行环境后文字渲染结果随着环境变化而发生变化导致无法成功匹配的问题,与直接基于模板匹配的算法相比,提高了文字定位的适应性。

附图说明

图1为本发明文字优化定位方法流程图;

图2为本发明示例文字及所在屏幕图像示意图;

图3为本发明文字渲染配置识别算法流程图;

图4为本发明OCR优化使用示意图;

图5为本发明判断文字样本图前后背景颜色示意图;

图6为本发明基于遗传算法思路的补充待测试配置流程图。

具体实施方式

下面结合说明书附图和具体实施方式对本发明做进一步详细描述。

本发明设计了一种屏幕图像中的文字优化定位方法,核心思想为:预先通过给定的少量样本文字,基于OCR定位结果自动推测当前软件运行环境下相关文字的渲染配置,使用得到的渲染配置将待定位的目标文字渲染成图像去进行模板匹配,得到目标文字在屏幕中的所在位置;该方法具有模板匹配速度快且准确度高的优点,同时不同环境根据不同的渲染配置进行渲染,克服了模板匹配方法适应性弱的缺点,为屏幕图像中的文本定位提供了一种更快、更准、更好适应性的方法。

如图1所示,本发明详细的实现步骤如下:

步骤1,对于需要定位的具有某一类渲染特征的文字,首先要求用户给定其在当前软件运行环境下的一组示例文字及所在屏幕图像。如图2所示,用户给出示例文字“Mainpage”及当前软件运行环境下“Main page”所在屏幕图像,用于定位所有与Main page渲染配置相同的文字;

步骤2,利用文字渲染配置识别算法在大量参数组成的渲染配置空间中快速识别出样本文字的具体渲染配置。例如,使用文字渲染配置识别算法识别出当前软件运行环境下Main page的具体配置为:12px,Arial字体,DirectWrite渲染引擎,白底黑字,400磅,正常风格。

如图3所示,为文字渲染配置识别算法流程图,在大量参数组成的渲染配置空间中快速识别出样本文字的具体渲染配置的步骤如下:

步骤21,获取紧密包含样本文字的小图。具体步骤如下:

步骤211,使用OCR文字识别工具对样本文字所在屏幕图像进行整图识别,获取图像中所有文字及其位置,位置由边界区域描述。在获取到的图像中的所有文字及其位置中找到样本文字所在边界区域,根据边界区域截取出紧密包含样本文字的小图。例如,使用OCR文字识别工具对图2进行整图识别,获取图像中所有文字及其位置。在识别结果中找到“Main page”所在边界区域,根据边界区域截取出紧密包含“Main page”的小图。

步骤212,当样本文字周围有其他文本时,OCR文字识别工具无法准确获得样本文字所在边界区域。例如,给定样本文字为Wikipedia,若屏幕图像中Welcome to Wikipedia连在一起,OCR文字识别工具常常只能获得Welcome to Wikipedia整体的边界区域而无法获得Wikipedia的准确边界区域。针对这种情况,如图4所示,本发明先提取紧密包含Welcome to Wikipedia的小图,然后使用轮廓识别算法来获取小图中的轮廓,对每个轮廓判断其是否为文字框。如果满足外框是一个矩形,轮廓面积和外框面积基本相近,且宽长比等方面符合文字的特征(长度、宽度、宽长比没有过大或过小),则认为当前轮廓为一个文字框。轮廓判断完成后第十个至第十八个文字框轮廓组成的边界区域即为样本文字Wikipedia所在的边界区域,根据边界区域截取出紧密包含Wikipedia的小图。

步骤22,推测样本文字的大致字体大小。具体步骤如下:

步骤221,建立了一个网页文字训练库,包含网页的HTML描述、网页图像等。通过HTML获取训练库中每个网页文字的字体大小,通过网页图像上的轮廓识别获取网页文字的像素高度,通过字符内容判断是否包括大写字母、b、l等上凸字母和g、j等下沉字母。根据以上获取的信息,得到每个训练文字对应的(h

步骤222,在训练数据的基础上,使用三元二次多项式回归来拟合从文字像素高度、是否含有上凸字母、是否含有下沉字母到文字大小的推测函数P

步骤223,使用轮廓识别算法,获取步骤21中得到的小图中文字的像素高度,同时根据样本文字的内容判断样本文字中是否含有上凸字母和下沉字母。将得到的参数h

步骤23,使用基于深度学习的图像分类算法对样本文字的字体类型、字体风格、字重、渲染引擎分别进行智能预测。

步骤231,分别针对字体类型、字体风格、字重、渲染引擎这几类渲染参数建立文字图片训练样本库。其中,用于字体预测的样本库包含衬线字体、无衬线字体、等宽字体三大分类下具有代表性的9种代表性字体类别(Bell MT、Times New Roman、Book Antiqua、Arail、Agency FB、Verdana、Courier、Consolas、Inconsolata),作为字体类型预测的目标;用于字体风格预测的样本库包含正常和斜体两种类别,作为字体风格预测的目标;用于字重预测的样本库包含100、400、600、800四种正常情况下用到的字重类别,作为字重预测的目标;用于渲染引擎预测的样本库包含9种代表性渲染引擎类别,作为渲染引擎预测的目标(为了将文字渲染成图像,需要用到渲染引擎来将文字渲染出来,不同的渲染引擎渲染出来的文字在显示、布局等方面都有所区别。例如微软的DirectWrite、python的pillow库等)。

步骤232,基于文字图片训练样本库,训练从文字图片到渲染参数的深度学习预测模型。深度学习模型是基于残差网络ResNet50建立的分类模型,能够从文字图片判断其具体采用了哪一渲染参数。预测模型的输入为文字图片,输出为一个分类概率向量,分类概率向量的每项值代表属于该分类的可能性。例如,预测一个尺寸64×64的RGB彩色文字图片属于哪种字重分类,模型会返回一个分类概率向量[p

步骤233,使用得到的预测模型对步骤2.1得到的样本文字图片进行预测,得到分类概率向量,向量的每项值代表属于该分类的可能性。例如,输入样本文字图片,对图片中文字的字重进行预测,则算法会返回一个分类概率向量[0.2,0.9,0.7,0.3],四个值依次表示字重为100、400、600、800的概率。

步骤24,判断文字样本图的前后背景颜色。

通过图像处理技术将图片灰度化,从而将繁多的颜色种类分类为白底黑字以及灰底白字两种情况。同时将样本文字图二值化,在二值化图上提取图片四周的像素值,计算出四周像素值的均值:

m=(mean(top_row)+mean(bottow_row)+mean(left_colum)+mean(right_colun))/4(1)

式中,mean()为取均值函数,mean(top_row)表示图片顶行像素值的均值,mean(bottow_row)表示图片底行像素值的均值,mean(left_colum)表示图片最左列像素值的均值,mean(right_colum)表示图片最右列像素值的均值。如果四周像素值的均值m>255/2则表示图片四周过半白,从而推断出二值化图背景白文字黑,此样本属于白底黑字的情况;反之,则表示图片四周过半黑,二值化图背景黑文字白,此样本属于灰底白字的情况。

如图5所示,将含有样本文字“Main page”的小图进行二值化处理,提取二值化图四周像素值代入公式(1)得到m=255,m>255/2表示图片四周过半白,从而推断出二值化图背景白文字黑,当前样本属于白底黑字的情况。

步骤25,使用基于优先级队列和启发式搜索方法来快速找到样本文字的最佳渲染配置。具体步骤如下:

步骤251,根据步骤22可以得到样本文字的大致大小为a,以此为依据将字体大小空间设置为{a-1,a,a+1},对应的优先级分别设置为0.3、0.4和0.3;根据步骤23返回的结果可以得到字体类型、字体风格、字重、渲染引擎的取值空间及对应概率,将每个取值的概率作为其对应的优先级;根据步骤24可以得到前后背景颜色的取值空间为{白底黑字,灰底白字},假设步骤24判断当前文本为白底黑字的情况,则对应优先级设置为{0.9,0.1};否则,对应优先级设置为{0.1,0.9}。

将样本文字所有参数的取值取笛卡尔积,得到一个优先级队列

步骤252,选取优先级队列中优先级最高的200个渲染配置形成新的优先级队列

步骤253,少数情况可能会存在预测失误导致最佳配置的优先级并不高,无法在步骤252退出。针对这种情况,本发明使用基于遗传算法的启发式搜索思路补充新的待测试配置,直到找到相似度达到设定阈值的渲染配置。如图6所示,具体步骤如下:

步骤2531,初始化渲染配置种群。种群个体代表一个具体渲染配置(比如:12px,Arial字体,DirectWrite渲染引擎,白底黑字,400磅,正常风格);而配置内的每一个因素都代表一个基因,比如字体大小(12px)。将步骤252中的{r

步骤2532,适应度计算(种群评估)。使用种群中的各个渲染配置将样本文字渲染成图像,与屏幕图像进行模板匹配得到的相似度即表示一个个体的适应度。

步骤2533,选择操作。根据种群中个体的适应度大小,将适应度高的个体从当前种群中选择出来。即选择出未达到设定阈值但相似度相对较高的渲染配置。

步骤2534,交叉运算。对步骤2533选出的渲染配置进行交叉运算产生新的渲染配置。该步骤用一定的交配概率阈值(pc,一般是0.4到0.99)来随机选择交叉点,进行基因交换,生成新的交叉后个体。例如,渲染配置<14px,Arial字体,DirectWrite渲染引擎,白底黑字,400磅,斜体风格>和<16px,Consolas字体,pillow渲染引擎,灰底白字,600磅,正常风格>进行多点交叉,设随机选择的位置为2、4、6,则得到新的渲染配置<14px,Consolas字体,DirectWrite渲染引擎,灰底白字,400磅,正常风格>和<16px,Arial字体,pillow渲染引擎,白底黑字,600磅,斜体风格>。将新的渲染配置加入种群,重复步骤2532,直到发现适应度达到设定阈值的个体时(即找到相似度达到设定阈值的渲染配置了)停止搜索。

步骤3,对于具有同一类渲染特征的其它文字,根据自动识别的渲染配置将文字渲染成图像,利用模板匹配算法在屏幕中匹配该图像来定位文字的所在位置。例如,图2中文字Recent changes与示例文字Main page属于同一类渲染特征的文字。根据自动识别的渲染配置,使用DirectWrite渲染引擎按(12px,白底黑字,Arial字体,400磅,正常风格)的配置将Recent changes渲染成图像,利用模板匹配算法在屏幕中匹配该图像来定位Recentchanges的所在位置。

本发明所涉及到的文字可以是网页、系统界面、app界面等各种界面上的文字。

在使用此发明进行的实验中,共对100个各领域著名网站上保存的3000个网页进行文字定位,如维基百科、亚马逊、新浪新闻等,涉及到科学普及、网上购物、娱乐等多个应用领域。经过实际检验,97%的文字都能够被成功定位到,并且在4k图上定位文字平均用时在0.3秒左右,表明本发明所提出的方法可以满足大部分屏幕图像中文字定位的需要。

实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

技术分类

06120116512950