一种图像识别方法、装置、介质和电子设备
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种图像识别的方法、装置、介质和电子设备,具体涉及一种用户界面的识别方法、装置、介质和电子设备。
背景技术
随着移动互联网技术的发展,尤其移动互联网的发展,涉及图像处理和识别越来越智能化,人们越来越习惯于在移动互联网中进行各种操作,用户操作界面(UserInterface,下文简称UI)是用户操作的可视化平台,可以让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由,充分体现软件的定位和特点。界面设计不是单纯的美术绘画,他需要定位使用者、使用环境、使用方式并且为最终用户而设计,是纯粹的科学性的艺术设计。检验一个界面的标准既不是某个项目开发组领导的意见也不是项目成员投票的结果,而是最终用户的感受。所以界面设计要和用户研究紧密结合,是一个不断为最终用户设计满意视觉效果的过程。
检验一个图形是否是UI设计,通常可针对图形进行特征化识别,在图形中识别出相应的UI区域,而某些UI提取技术存在无法跨平台高效使用的缺点,对于图像识别技术来说无法找到相应的UI区域。
因此,在长期的研发当中,发明人对图形中UI区域的识别技术的研究,提出了一种对图像识别的方法,以解决上述技术问题之一。
发明内容
针对某些图像提取技术存在无法跨平台高效使用的缺点,考虑到终端设备(例如手机)都有其截屏功能,相对来说可以避免出现无法跨平台的情况发生,所以本方案的输入对象采用的是终端设备的截屏图片。为了UI区域位置提取的更准确,本方案从两个方面入手,截屏图片输入以后,要经过两步确定UI区域位置。本发明的目的在于提供一种图像识别的方法、装置、介质和电子设备,能够解决上述提到的至少一个技术问题。
本公开实施例具体提供了一种图像识别的方法,其中包括:
获取待识别图像;
对所述图像进行层次分割;
对分割后的所述图像进行直线特征的识别,确定潜在的用户界面区域;以及
对所述潜在的用户界面区域进行训练识别,从而确定精确的用户界面信息。
进一步的,所述待识别图像为跨平台图像。
进一步的,所述跨平台图像为手机截屏图像或电脑截屏图像。
进一步的,所述对所述图像进行层次分割,采用灰度阈值分割法或高低频图像分割法。
进一步的,所述对分割后的所述图像进行直线特征的识别,确定潜在的用户界面区域,包括:
采用直线段检测分割算法进行识别;
识别出多个直线段形成直线特征的集合;
所述直线特征的集合中的直线特征构成矩形时,则认定该区域为潜在的用户界面区域。
进一步的,所述对所述潜在的用户界面区域进行训练识别,从而确定精确的用户界面信息,包括:
将所述潜在的用户界面区域与训练识别模块中的类别模型进行对比,得到相应类别的对比相似度;
对比相似度大于类别相似度阈值,则确定该区域为精确的用户界面区域。
进一步的,所述用户界面信息包括用户界面信息的类别信息和/或位置信息。
根据本发明的具体实施方式,另一方面,本发明提供了一种图像识别的方法,其中包括:
获取待识别图像;
对所述图像进行层次分割;
对分割后的所述图像进行直线特征的识别,确定第一潜在用户界面区域;
对所述图像进行训练识别,确定第二潜在用户界面区域;以及
对比分析所述第一潜在用户界面区域和所述第二潜在用户界面区域,从而确定精确的用户界面信息。
进一步的,所述对分割后的所述图像进行直线特征的识别,确定第一潜在用户界面区域,包括:
采用直线段检测分割算法进行识别;
识别出多个直线段形成直线特征的集合;
所述直线特征的集合中的直线特征构成矩形时,则认定该区域为第一潜在用户界面区域。
进一步的,所述对所述图像进行训练识别,确定第二潜在用户界面区域,包括:
将所述图像与训练识别模块中的类别模型进行对比;
得到对比相似度大于类别相似度阈值的区域,确定该区域为第二潜在用户界面区域。
进一步的,所述对比分析所述第一潜在用户界面区域和所述第二潜在用户界面区域,从而确定精确的用户界面信息,包括:
对比分析所述第一潜在用户界面区域和所述第二潜在用户界面区域;
判断该两个潜在用户界面区域是否相同,如果相同,则确定该区域为用户界面区域。
根据本发明的具体实施方式,另一方面,本发明提供一种图像识别装置,包括:
获取单元,用于获取待识别图像;
分割单元,用于对所述图像进行层次分割;
线段检测单元,用于对分割后的所述图像进行直线特征的识别,确定潜在的用户界面区域;
训练识别单元,用于对所述潜在的用户界面区域进行训练识别,从而确定精确的用户界面信息。
根据本发明的具体实施方式,另一方面,本发明提供一种图像识别装置,包括:
获取单元,用于获取待识别图像;
分割单元,用于对所述图像进行层次分割;
线段检测单元,对分割后的所述图像进行直线特征的识别,确定第一潜在用户界面区域;
训练识别单元,用于对所述图像进行训练识别,确定第二潜在用户界面区域;
对比分析单元,用于对比分析所述第一潜在用户界面区域和所述第二潜在用户界面区域,从而确定精确的用户界面信息。
根据本发明的具体实施方式,另一方面,本发明提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上任一项所述的图像识别的方法。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了根据本发明一实施例的图像识别方法流程图;
图2示出了根据本发明一实施例的图像像素梯度和水平线示意图;
图3示出了根据本发明一实施例的图像学习训练模块的训练流程图;
图4示出了根据本发明一实施例的在图片训练学习过程中的特征聚类示意图;
图5示出了根据本发明的一实施例的图像识别方法整体流程图;
图6示出了根据本发明的另一实施例的图像识别方法流程图。
图7示出了根据本发明的一实施例的图像识别装置结构图。
图8示出了根据本发明的另一实施例的图像识别装置结构图。
图9示出了根据本发明的实施例的电子设备连接结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述……,但这些……不应限于这些术语。这些术语仅用来将……区分开。例如,在不脱离本发明实施例范围的情况下,第一……也可以被称为第二……,类似地,第二……也可以被称为第一……。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者装置中还存在另外的相同要素。
针对某些UI提取技术存在无法跨平台高效使用的缺点,考虑到终端设备都有其截屏功能,相对来说可以避免出现无法跨平台的情况发生,所以本方案的输入对象采用的是终端设备的截屏图片。为了UI区域位置提取的更准确,本方案从两个方面入手,截屏图片输入以后,要经过两步确定UI区域位置,第一步利用OpenCV(OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法)中基于图像形态学的方法进行图片分割操作,并利用线段检测器LSD提取直线特征,然后确定潜在的UI区域。第二步是将截屏图片输入到训练好的光学字符检测OCR模型中,利用模型输出的UI区域位置信息提取潜在UI区域,最后将两步都到的UI区域位置信息做比对,最终确定较精确的UI位置信息。
下面结合附图详细说明本发明的可选实施例。
实施例1
结合附图1,该实施例中,输入跨平台的图像,通过相应步骤实现图像中的UI区域的识别,具体的:
步骤S101,获取待识别图像。本实施例中的图像可以选为跨平台图像,也就是可能具有多个UI区域的图像,考虑到终端设备(例如手机、电脑等)一般都有其截屏功能,该图像可以采用截屏图像,可利用终端设备的截屏功能,对具有多个用户界面的屏幕进行截屏操作,获得跨平台的截屏图像,该截屏图像包含了一个或多个UI区域,该截屏图像作为待识别图像,从中提取UI区域信息,该UI区域信息包括UI区域位置和类别信息。
步骤S102,对所述图像进行层次分割。对图像进行层次分割的技术有一些,可采用频率分割技术、灰度阈值分割技术、直方图分割技术、特征空间聚类法分割技术、模糊集理论分割技术、小波变换分割技术等。本实施例对所述图像进行层次分割,采用灰度阈值分割法或高低频图像分割法。
下面是一些本领域可用于图像分割的主要技术。
“频率分割技术”,它的基本原理是利用应用图像里的减法计算将一张图片分割成高频和低频图层,在低频图层上用线性光叠加高频就形成一张完整的图片,该图像层次分割的优势在于不失细节。把图层分割后,可以在高频图层上修饰细节而不会破坏原始色彩(这类似修复/修补工具),可以在低频图层上修改整体光色而不破坏图像细节,这意味着我们可以直接用普通画笔去涂抹人物的皮肤却不会丢失细节了。
“灰度阈值分割技术”,是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。阈值分割方法实际上是输入图像f到输出图像g的如下变换:
其中,T为阈值,对于物体的图像元素g(i,j)=1,对于背景的图像元素g(i,j)=0。由此可见,阈值分割算法的关键是确定阈值,如果能确定一个合适的阈值就可准确地将图像分割开来。阈值确定后,将阈值与像素点的灰度值逐个进行比较,而且像素分割可对各像素并行地进行,分割的结果直接给出图像区域。阈值分割的优点是计算简单、运算效率较高、速度快。在重视运算效率的应用场合(如用于硬件实现),它得到了广泛应用。人们发展了各种各样的阈值处理技术,包括全局阈值、自适应阈值、最佳阈值等等。
全局阈值是指整幅图像使用同一个阈值做分割处理,适用于背景和前景有明显对比的图像。它是根据整幅图像确定的:T=T(f)。但是这种方法只考虑像素本身的灰度值,一般不考虑空间特征,因而对噪声很敏感。常用的全局阈值选取方法有利用图像灰度直方图的峰谷法、最小误差法、最大类间方差法、最大熵自动阈值法以及其它一些方法。
在许多情况下,物体和背景的对比度在图像中的各处不是一样的,这时很难用一个统一的阈值将物体与背景分开。这时可以根据图像的局部特征分别采用不同的阈值进行分割。实际处理时,需要按照具体问题将图像分成若干子区域分别选择阈值,或者动态地根据一定的邻域范围选择每点处的阈值,进行图像分割。这时的阈值为自适应阈值。
阈值的选择需要根据具体问题来确定,一般通过实验来确定。对于给定的图像,可以通过分析直方图的方法确定最佳的阈值,例如当直方图明显呈现双峰情况时,可以选择两个峰值的中点作为最佳阈值。
“直方图分割技术”,与其他图像分割方法相比,基于直方图的方法是非常有效的图像分割方法,因为他们通常只需要一个通过像素。在这种方法中,直方图是从图像中的像素的计算,并在直方图的波峰和波谷是用于定位图像中的簇。颜色和强度可以作为衡量。
这种技术的一种改进是递归应用直方图求法的集群中的形象以分成更小的簇。重复此操作,使用更小的簇直到没有更多的集群的形成。
基于直方图的方法也能很快适应于多个帧,同时保持他们的单通效率。直方图可以在多个帧被考虑的时候采取多种方式。同样的方法是采取一个框架可以应用到多个,和之后的结果合并,山峰和山谷在以前很难识别,但现在更容易区分。直方图也可以应用于每一个像素的基础上,将得到的信息被用来确定的像素点的位置最常见的颜色。这种方法部分基于主动对象和一个静态的环境,导致在不同类型的视频分割提供跟踪。
“特征空间聚类法分割技术”,是将图像空间中的像素用对应的特征空间点表示,根据它们在特征空间的聚集对特征空间进行分割,然后将它们映射回原图像空间,得到分割结果。其中,K均值、模糊C均值聚类(FCM)算法是最常用的聚类算法。K均值算法先选K个初始类均值,然后将每个像素归入均值离它最近的类并计算新的类均值。迭代执行前面的步骤直到新旧类均值之差小于某一阈值。模糊C均值算法是在模糊数学基础上对K均值算法的推广,是通过最优化一个模糊目标函数实现聚类,它不像K均值聚类那样认为每个点只能属于某一类,而是赋予每个点一个对各类的隶属度,用隶属度更好地描述边缘像素亦此亦彼的特点,适合处理事物内在的不确定性。利用模糊C均值(FCM)非监督模糊聚类标定的特点进行图像分割,可以减少人为的干预,且较适合图像中存在不确定性和模糊性的特点。
“模糊集理论分割技术”,模糊集理论具有描述事物不确定性的能力,适合于图像分割问题。模糊技术在图像分割中应用的一个显著特点就是它能和现有的许多图像分割方法相结合,形成一系列的集成模糊分割技术,例如模糊聚类、模糊阈值、模糊边缘检测技术等。
模糊阈值技术利用不同的S型隶属函数来定义模糊目标,通过优化过程最后选择一个具有最小不确定性的S函数。用该函数增强目标及属于该目标的像素之间的关系,这样得到的S型函数的交叉点为阈值分割需要的阈值,这种方法的困难在于隶属函数的选择。基于模糊集合和逻辑的分割方法是以模糊数学为基础,利用隶属图像中由于信息不全面、不准确、含糊、矛盾等造成的不确定性问题。该方法在医学图像分析中有广泛的应用,如薛景浩[3]等人提出的一种新的基于图像间模糊散度的阈值化算法以及它在多阈值选择中的推广算法,采用了模糊集合分别表达分割前后的图像,通过最小模糊散度准则来实现图像分割中最优阈值的自动提取。该算法针对图像阈值化分割的要求构造了一种新的模糊隶属度函数,克服了传统S函数带宽对分割效果的影响,有很好的通用性和有效性,方案能够快速正确地实现分割,且不需事先认定分割类数。实验结果令人满意。
“小波变换分割技术”,小波变换在时域和频域都具有良好的局部化性质,而且小波变换具有多尺度特性,能够在不同尺度上对信号进行分析,因此在图像处理和分析等许多方面得到应用。
基于小波变换的阈值图像分割方法的基本思想是首先由二进小波变换将图像的直方图分解为不同层次的小波系数,然后依据给定的分割准则和小波系数选择阈值门限,最后利用阈值标出图像分割的区域。整个分割过程是从粗到细,有尺度变化来控制,即起始分割由粗略的L2(R)子空间上投影的直方图来实现,如果分割不理想,则利用直方图在精细的子空间上的小波系数逐步细化图像分割。分割算法的计算馈与图像尺寸大小呈线性变化。
步骤S103,对分割后的所述图像进行直线特征的识别,确定潜在的用户界面区域。本公开利用OpenCV中基于图像形态学的方法进行图片分割操作,并利用线段检测器LSD提取直线特征,然后确定潜在的UI区域。其中,采用直线段检测分割算法进行识别,识别出多个直线段形成直线特征的集合,其中,直线特征的集合中的直线特征构成矩形时,则认定该区域为潜在的用户界面区域。
其中,本公开的LSD算法的目的是检测图像中的局部直线边缘,边缘是灰度值(gray level)从黑到白(或从白到黑)变化明显的图像区域。因此,图像的gradient(梯度)和level-lines是本公开的两个重要概念,如图2所示。首先计算图像中各个像素点的的level-line角度,从而产生level-line场(一种单位向量场,并且每个向量都同过基准点且相切于level-line)。然后,这个level-line场将在一定容忍角度τ内具有相同的level-line角度的像素划分成不同的像素连通域,这个连通域称之为线段支持域(line supportregions)。每一个线段支持域都是直线分割的候选区域,并且有个相应的矩形与之一一对应。该矩形的主方向为线段支持域的惯性主轴方向,并且矩形的大小必须覆盖整个线段支持域。将矩形区域内像素点的level-line角度与矩形主方向角度的夹角在容忍角度τ内的像素点称之为内点(aligned point)。统计矩形区域内像素点的数量n和内点的数量k的比值,它们之间的比值将作为判断矩形区域是否为检测的线段的标准,该判断标准是基于一种contrario方法和Helmholtz原则,在本文中我们关心的是矩形域中内点的数量。
本公开的LSD算法的输入为一张灰度值图像(即首先将终端设备的截屏图像转换成灰度图像),输出为一系列的检测到的线段(矩形),算法如下:
1.以默认s=0.8的尺度对输入图像进行高斯下采样。
2.计算每一个点的梯度值以及level-line方向(level-line orientation)。
3.根据梯度值对所有点进行伪排序(pseudo-ordered),建立状态列表,所有点设置为UNUSED。
4.将梯度值小于ρ的点状态表中相应位置设置为USED。
5.取出列表中梯度最大(伪排列的首位)的点作为种子点(seed),状态列表中设为USED。
do:
a.以seed为起点,搜索周围UNUSED并且方向在阈值[-t,t]范围内的点,状态改为USED。
b.生成包含所有满足点的矩形R。
c.判断内点(aligned pt)密度是否满足阈值D,若不满足,截断(cut)R变为多个矩形框,直至满足。
d.计算NFA。
e.改变R使NFA的值更小直至NFA<=ε,R加入输出列表。
在LSD算法中,一个线段对应一个矩形,在评估线段支持域前需要找到与之对应的矩形。将线段支持域看成一个刚体,像素点的梯度值作为该点的质量。矩形的中心为线段支持域的质心,矩形的主方向为线段支持域的第一惯性轴方向。
步骤S104,对所述潜在的用户界面区域进行训练识别,从而确定精确的用户界面信息。其中,将所述潜在的用户界面区域与训练识别模块中的类别模型进行对比,得到相应类别的对比相似度;对比相似度大于类别相似度阈值,则确定该区域为精确的用户界面区域。其中,所述用户界面信息包括用户界面信息的类别信息和/或位置信息。
将截屏图片输入到训练好的光学字符检测OCR(Optical CharacterRecognition,光学字符识别,以下称OCR)模型中,利用模型输出的UI区域位置信息提取潜在UI区域,最后将两步都到的UI区域位置信息做比对,最终确定较精确的UI位置信息。
其中,OCR是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
OCR软件主要是由下面几个部分组成。
图像输入:对于不同的图像格式,有着不同的存储格式,不同的压缩方式,目前有OpenCV,CxImage等开源项目。
预处理:主要包括二值化,噪声去除,倾斜较正等
二值化:彩色图像所含信息量巨大,对于图片的内容,我们可以简单的分为前景与背景,为了让计算机更快的,更好的识别文字,我们需要先对彩色图进行处理,使图片只前景信息与背景信息,可以简单的定义前景信息为黑色,背景信息为白色,这就是二值化图了。
噪声去除:对于不同的文档,我们对噪声的定义可以不同,根据噪声的特征进行去噪,就叫做噪声去除
倾斜较正:由于一般用户,在拍照文档时,都比较随意,因此拍照出来的图片不可避免的产生倾斜,这就需要文字识别软件进行较正。
版面分析:将文档图片分段落,分行的过程就叫做版面分析,由于实际文档的多样性,复杂性,因此,目前还没有一个固定的,最优的切割模型。
字符切割:由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能,这就需要文字识别软件有字符切割功能。
字符识别:这一研究,已经是很早的事情了,比较早有模板匹配,后来以特征提取为主,由于文字的位移,笔画的粗细,断笔,粘连,旋转等因素的影响,极大影响特征的提取的难度。
版面恢复:人们希望识别后的文字,仍然像原文档图片那样排列着,段落不变,位置不变,顺序不变,的输出到word文档,pdf文档等,这一过程就叫做版面恢复。
后处理、校对:根据特定的语言上下文的关系,对识别结果进行较正,就是后处理。
为了给跨平台的GUI(Graphical User Interface,简称GUI,又称图形用户接口)测试框架提供UI组件提取口,所以在得到截屏图片的UI区域以后,需要对这些区域进行类别标识,为了更准确的标识UI组件的类别信息需要训练针对UI组件的分类模型。考虑到深度学习用于分类问题时的准确性,本实施例中训练的分类模型使用的是深度学习中的模型,在进行模型的数据准备时,整合一些UI资源最终确定模型的训练集和测试集,模型的训练集包含UI常用组件类,可以支持常见UI的类别标识。数据准备工作完成以后开始训练分类模型,训练完成后将测试集输入模型中,计算模型在测试集上的准确率,如果准确率达到设定的阈值时停止训练,否则继续进行训练,训练流程图如图3所示。最后将创新点一中确定的UI区域输入到训练好的模型中,利用分类模型的结果确定UI区域的类别信息。
其中,UI类别设计按用户和界面来分可分成四种UI设计。分别是PC端UI设计,移动端UI设计,游戏UI设计,以及其它UI设计。
第一种:PC端UI设计
PC端UI设计,也就是电脑用户,界面指的就是电脑上的操作界面。像电脑版的QQ,微信,PS等软件和网页的一些按钮图标等。
第二种:移动端UI设计
移动端UI设计,也就是手机用户,界面指的就是手机界面,也就是说手机上的所有界面都是移动端UI设计。比如微信聊天界面,QQ聊天界面,手机桌面。
第三种:游戏UI设计
游戏UI设计,用户也就是游戏UI用户,界面指的是游戏中的界面,像手游王者荣耀,端游英雄联盟和一些其它游戏中的界面,登录界面、个人装备属性界面也都是属于游戏UI设计。
第四种:其它UI设计
像VR界面、AR界面、ATM界面、一些智能设备的界面,比如智能电视、车载系统等等,用户较少,但又需要,未来有可能很火,有可能保持现状。
具体训练学习的过程可参见附图3-附图4,其中,附图3示出了图像学习训练模块的训练流程图,首先,我们需要准备已经标注好的UI类别数据集,该数据集包括了成百上千张已经标注好的数据(UI类别图像集),初始化mobleNet模型参数,将训练集输入到mobleNet模型中,然后,进行第一次计算,计算模型在训练集上的准确率,并计算准确率是否大于阈值1,如果否(即第一次计算中准确率不大于阈值1),则返回训练集继续训练进行输入,如果是,则进行第二次计算,计算模型在测试集上的准确率,计算准确率是否大于阈值2,如果否,则返回继续训练,如果是,则停止训练,得到较准确的分类结果,训练结束。
附图4示出了在图片训练学习过程中的特征提取生产STATE,根据该实施例中生成的各UI区域、UI类别等组件进行K-means聚类算法生成对应有标示的State,根据类别聚类,得到同一类别中的STATE,具体可参见图中相似的图形特征的聚集效应,由此产生相应的STATE。
综上所述,该实施例所描述的得到UI类别和位置的整体流程可总结成如附图5所示,该附图示出了从输入图像到最终得到UI类别和位置的流程示意参考图,如图所示,本实施例采用的是终端设备的截屏图像,将截屏图像进行输入,输入后同时进行层次分割(如何进行图像的层次分割上面有详尽介绍)以及OCR提取区域,其中层次分割的过程中进行提取底层特征和中层特征,将提取的中层特征以及OCR提取的区域特征进行分析比对,得到潜在的UI区域,将该潜在的UI区域输入到深度学习训练模型中进行训练学习,其中该深度学习训练模型中包含UI训练集,该UI训练集包括了聚类算法生成对应有标示的State,根据深度学习训练的过程(具体可参见附图3-附图4),得到UI类别和位置信息。
实施例2
参见附图6,该实施例与实施例1的不同在于,图像输入之后在直线提取时确定第一潜在UI区域,而图像同步输入深度学习训练模块后产生第二潜在UI区域,将上述第一潜在UI区域与第二潜在UI区域进行对比分析,得到准确的UI信息。
结合实施例1,其中步骤S601-S602与实施例1相同,在此不再赘述,接下来,步骤S603,对分割后的所述图像进行直线特征的识别,确定第一潜在用户界面区域。该实施例同样利用OpenCV中基于图像形态学的方法进行图片分割操作,并利用线段检测器LSD提取直线特征,然后确定潜在的UI区域。
步骤S604,对所述图像进行训练识别,确定第二潜在用户界面区域。与实施例1不同的是,该实施例中进行深度学习训练的图像为终端的截屏图像,而实施例1中输入的是已经进行直线识别并标注的加工图像,在此需要加以区别。同样的,在进行深度学习训练之前,我们需要准备已经标注好的UI类别数据集(UI类别图像集),参照附图3-附图4进行UI信息的深度学习训练,将所述图像与训练识别模块中的类别模型进行对比,得到对比相似度大于类别相似度阈值的区域,确定该区域为第二潜在用户界面区域。
步骤S605,对比分析所述第一潜在用户界面区域和所述第二潜在用户界面区域,从而确定精确的用户界面信息。该实施例中,在步骤S603后得到第一潜在用户界面区域信息,在步骤S604后得到第二潜在用户界面区域信息,两个通常情况下是不同的,因为两者基于不同的识别标准,前者采用的是直线识别得到矩形特征,并具有位置信息,后者是进行类别信息对比,得到统计化的分类信息,如果第一潜在用户界面区域与第二潜在用户界面区域都指向了同一区域,或者说两个步骤同时将相应的区域都确定为潜在用户界面区域,则可将该区域确定为用户界面,对比分析所述第一潜在用户界面区域和所述第二潜在用户界面区域,判断该两个潜在用户界面区域是否相同,如果相同,则确定该区域为用户界面区域。同时,根据步骤S603获取的位置信息以及步骤S604获取的UI类别信息,可以确定UI的位置信息以及类别信息。
实施例3
如图7所示,根据本发明的具体实施方式,另一方面,本发明提供一种图像的识别装置,包括:
获取单元701,用于获取待识别图像。该图像可以采用截屏图像,可利用终端设备的截屏功能,对具有多个用户界面的屏幕进行截屏操作,获得跨平台的截屏图像,该截屏图像包含了一个或多个UI区域,该截屏图像作为待识别图像,从中提取UI区域信息,该UI区域信息包括UI区域位置和类别信息。
分割单元702,用于对所述图像进行层次分割。对图像进行层次分割的技术有一些,可采用频率分割技术、灰度阈值分割技术、直方图分割技术、特征空间聚类法分割技术、模糊集理论分割技术、小波变换分割技术等。
线段检测单元703,用于对分割后的所述图像进行直线特征的识别,确定潜在的用户界面区域。本实施例利用OpenCV中基于图像形态学的方法进行图片分割操作,并利用线段检测器LSD提取直线特征,然后确定潜在的UI区域。
训练识别单元704,用于对所述潜在的用户界面区域进行训练识别,从而确定精确的用户界面信息。将截屏图片输入到训练好的光学字符检测OCR(Optical CharacterRecognition,光学字符识别,以下称OCR)模型中,利用模型输出的UI区域位置信息提取潜在UI区域,最后将两步都到的UI区域位置信息做比对,最终确定较精确的UI位置信息。
实施例4
如图8所示,根据本发明的具体实施方式,另一方面,本发明提供一种图像的识别装置,包括:
获取单元801,用于获取待识别图像。
分割单元802,用于对所述图像进行层次分割。
线段检测单元803,对分割后的所述图像进行直线特征的识别,确定第一潜在用户界面区域。该实施例同样利用OpenCV中基于图像形态学的方法进行图片分割操作,并利用线段检测器LSD提取直线特征,然后确定潜在的UI区域。
训练识别单元804,用于对所述图像进行训练识别,确定第二潜在用户界面区域。进行深度学习训练的图像为终端的截屏图像,同样的,在进行深度学习训练之前,我们需要准备已经标注好的UI类别数据集(UI类别图像集),进行UI信息的深度学习训练。
对比分析单元805,用于对比分析所述第一潜在用户界面区域和所述第二潜在用户界面区域,从而确定精确的用户界面信息。其中第一潜在用户界面区域信息采用的直线识别得到矩形特征,并具有位置信息,第二潜在用户界面区域信息是进行类别信息对比,得到统计化的分类信息,如果第一潜在用户界面区域与第二潜在用户界面区域都指向了同一区域,或者说两个步骤同时将相应的区域都确定为潜在用户界面区域,则可将该区域确定为用户界面,同时,根据步骤S603获取的位置信息以及步骤S604获取的UI类别信息,可以确定UI的位置信息以及类别信息。
实施例5
本实施例提供一种电子设备,该设备用于图像的识别方法,所述电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取待识别图像;
对所述图像进行层次分割;
对分割后的所述图像进行直线特征的识别,确定潜在的用户界面区域;以及
对所述潜在的用户界面区域进行训练识别,从而确定精确的用户界面信息。或者
获取待识别图像;
对所述图像进行层次分割;
对分割后的所述图像进行直线特征的识别,确定第一潜在用户界面区域;
对所述图像进行训练识别,确定第二潜在用户界面区域;以及
对比分析所述第一潜在用户界面区域和所述第二潜在用户界面区域,从而确定精确的用户界面信息。
具体处理方式可参见实施例1和实施例2。
下面参考图9,其示出了适于用来实现本公开实施例的电子设备900的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储装置908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
通常,以下装置可以连接至I/O接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
具体处理方式可参见实施例1和实施例2。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从ROM 902被安装。在该计算机程序被处理装置901执行时,执行本公开实施例的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
实施例6
本公开实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的将文档合并到同一文件夹的方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。