本发明涉及计算机技术领域,尤其涉及一种弹窗处理方法、装置、计算机设备及存储介质。
背景技术:
目前,越来越多的智能终端开始进入到我们的生活当中,而且在生活中的作用越来越高。然而,在使用智能终端的过程中,经常会出现各种各样的弹窗,例如应用程序的推送信息弹窗、广告类弹窗或者其他信息提示弹窗,这些弹窗经常会在智能终端使用过程中不定时地重复出现,对用户造成极大地困扰。
特别地,当对智能终端进行自动化测试时,智能终端的界面中不定时地弹出各种弹窗,如果不及时对这些弹窗进行处理就会阻碍自动化测试的正常进行,从而导致自动化测试中止或失败。现有的自动化测试中对弹窗的处理方法大致有两种:一种方法是当出现弹窗时,退出测试系统,这一方法会导致自动化测试的中止。另外一种方法是在后台开启一个线程,对测试过程中出现的弹窗进行监听,具体为通过对弹窗名称进行识别或者对弹窗上的控件的id或者name属性识别弹窗的类型,并基于不同类型的弹窗分别进行处理。然而,部分弹窗本身及弹窗上的控件是无法识别的,使得这种方法无法对这类弹窗进行处理的。因此,现有的弹窗处理方法的局限性较多,使得其处理精度有限。
技术实现要素:
本发明实施例提供一种弹窗处理方法、装置、计算机设备及存储介质,以解决现有弹窗处理精度不高的的问题。
第一方面,本发明实施例提供一种弹窗处理方法,包括:
获取当前弹窗处理请求;
基于所述当前弹窗处理请求,获取当前弹窗图片;
将所述当前弹窗图片输入到弹窗识别模型中进行识别,获取所述当前弹窗图片对应的当前弹窗类型;
根据所述当前弹窗类型,响应当前弹窗处理请求。
第二方面,本发明实施例提供一种弹窗处理装置,包括:
当前弹窗处理请求获取模块,用于获取当前弹窗处理请求;
当前弹窗图片获取模块,用于基于所述当前弹窗处理请求,获取当前弹窗图片;
当前弹窗类型识别模块,用于将所述当前弹窗图片输入到弹窗识别模型中进行识别,获取所述当前弹窗图片对应的当前弹窗类型;
当前弹窗处理请求响应模块,用于根据所述当前弹窗类型,响应当前弹窗处理请求。
本发明第三方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明第一方面所述方法的步骤。
本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述方法的步骤。
本发明实施例提供的弹窗处理方法、装置、计算机设备及存储介质中,通过获取当前弹窗处理请求,以触发弹窗处理流程。先基于当前弹窗处理请求,获取当前弹窗图片;并将当前弹窗图片输入到弹窗识别模型中进行识别,获取所述当前弹窗图片对应的当前弹窗类型,提高了弹窗类型识别的准确性和效率。再根据获取到的当前弹窗类型,响应当前弹窗处理请求,以提高弹窗处理效率和准确性。该弹窗处理方法提高了弹窗类型识别的效率和准确性,也提高了弹窗处理的效率和准确性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中的弹窗处理方法的一流程图;
图2是本发明实施例1中的弹窗处理方法的另一流程图;
图3是图2中步骤s52的一具体实施方式的一流程图;
图4是图1中步骤s20的一具体实施方式的一流程图;
图5是图4中步骤s22的一具体实施方式的一流程图;
图6是图5中步骤s222的一具体实施方式的一流程图;
图7是图1中步骤s40的一具体实施方式的一流程图;
图8是本发明实施例2中提供的弹窗处理装置的一原理框图;
图9是本发明实施例4中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1示出本实施例中弹窗处理方法的流程图。该弹窗处理方法应用在各种终端中,以解决现有弹窗处理精度不高的问题。其中,终端可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算机设备。如图1所示,该弹窗处理方法包括如下步骤:
s10:获取当前弹窗处理请求。
其中,当前弹窗处理请求是指在当前界面或屏幕中出现弹窗时,生成的一个弹窗处理请求。在一个具体实施方式中,可以设置一个监控线程,以监控当前界面或屏幕是否出现弹窗。若在当前界面或屏幕中出现了弹窗,该监控线程监控到弹窗的出现之后,就会触发生成当前弹窗处理请求。
s20:基于当前弹窗处理请求,获取当前弹窗图片。
其中,当前弹窗图片是指以图片格式呈现的当前弹窗处理请求对应的当前弹窗。终端在获取到当前弹窗处理请求后,会基于该当前弹窗处理请求,获取当前界面中出现的弹窗对应的当前弹窗图片。
s30:将当前弹窗图片输入到弹窗识别模型中进行识别,获取当前弹窗图片对应的当前弹窗类型。
在一个终端的当前界面或屏幕中出现的弹窗是多样化的,例如:充电已经完成提示、是否允许安装此应用、此应用正在申请gps定位权限是否同意、电量不足等各种厂商定制的弹窗;或者,应用升级提示弹窗、广告推送弹窗、提示领奖或者提示签到等特定业务的弹窗。对于不同类型的弹窗,其对应的处理方式也是不同的,因此,确定当前弹窗图片的类型(即当前弹窗类型)对于后续如何处理该当前弹窗处理请求是有较大帮助的。
具体地,通过将当前弹窗图片输入到一个弹窗识别模型中,就可以通过该弹窗识别模型的输出获取到当前弹窗图片对应的当前弹窗类型。弹窗识别模型是预选训练好的一个识别模型,通过该弹窗识别模型,可以快速地对当前弹窗图片的类型进行识别,以利于后续的处理。通过获取当前弹窗图片,就可以根据弹窗识别模型识别出当前弹窗类型,不需要对当前弹窗的名称进行识别或者对弹窗上的控件进行id或者name属性识别,提高了弹窗识别的准确性和效率。
s40:根据当前弹窗类型,响应当前弹窗处理请求。
在获取到当前弹窗类型之后,根据不同的当前弹窗类型来响应当前弹窗处理请求。例如,若当前弹窗类型为广告类弹窗,则可以选择自动关闭当前弹窗,避免影响当前界面正在进行的任务。若当前弹窗类型为警示类弹窗,则可以选择发送提示信息,以提醒用户及时进行手动处理。
本实施例提供的弹窗处理方法中,通过获取当前弹窗处理请求,以触发弹窗处理流程。先基于当前弹窗处理请求,获取当前弹窗图片;并将当前弹窗图片输入到弹窗识别模型中进行识别,获取当前弹窗图片对应的当前弹窗类型,通过获取当前弹窗图片,就可以根据弹窗识别模型识别出当前弹窗类型,不需要对当前弹窗的名称进行识别或者对弹窗上的控件进行id或者name属性识别,提高了弹窗识别的准确性和效率。再根据获取到的当前弹窗类型,响应当前弹窗处理请求。该弹窗处理方法提高了弹窗类型识别的效率和准确性,也提高了整个弹窗处理方法的处理效率和准确性。
在一个具体实施方式中,在将当前弹窗图片输入到弹窗识别模型中进行识别,获取当前弹窗图片对应的当前弹窗类型的步骤之前,如图2所示,该弹窗处理方法还包括:
s51:获取现有弹窗图片,为每一现有弹窗图片进行分类标注,获取弹窗训练图片。
其中,现有弹窗图片是指已经存在或出现过的弹窗图片。通过获取现有弹窗图片,并为每一现有弹窗图片进行分类标注,例如:广告类弹窗、警示类弹窗、系统或应用提示弹窗等。对现有弹窗图片进行分类标注完成之后,使得每一现有弹窗图片与其对应的弹窗类型相对设置,以作为弹窗训练图片。
s52:采用弹窗训练图片对卷积神经网络模型进行训练,获取弹窗图片识别模型。
通过将弹窗训练图片输入到卷积神经网络模型中进行训练,即可得到弹窗图片识别模型。其中,卷积神经网络(convolutionalneuralnetwork,简称cnn)模型,是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,常应用于大型图像的处理。卷积神经网络通常包括至少两个非线性可训练的卷积层,至少两个非线性的池化层和至少一个全连接层,即包括至少五个隐含层,此外还包括输入层和输出层。通过弹窗训练图片对卷积神经网络模型进行训练而获得的弹窗图片识别模型,可以更为准确地对弹窗训练图片进行分类。
在一个具体实施方式中,可以采用tensorflow实现卷积神经网络模型,将弹窗训练图片作为输入图片通过tensorflow来训练卷积神经网络得到弹窗图片识别模型。
其中,tensorflow是谷歌研发的第二代人工智能学习系统,tensor(张量)意味着n维数组,flow(流)意味着基于数据流图的计算,tensorflow为张量从流图的一端流动到另一端计算过程。tensorflow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。其优点是支持异构设备分布式计算,它能够在各个平台上自动运行模型。通过tensorflow来训练卷积神经网络,能够提高获取弹窗图片识别模型的便利性。
在这个实施方式中,通过获取现有弹窗图片,并对每一现有弹窗图片进行分类标注,再对卷积神经网络模型进行训练,获取到弹窗图片识别模型,通过该弹窗图片识别模型来进行当前弹窗图片的识别,提高了识别效率和准确性。
在一个具体实施方式中,采用弹窗训练图片对卷积神经网络模型进行训练,获取弹窗图片识别模型,如图3所示,具体包括如下步骤:
s521:初始化卷积神经网络模型模型。
具体地,初始化卷积神经网络主要是初始化卷积层的卷积核(即权值)和偏置。卷积神经网络模型的权值初始化就是指给卷积神经网络模型中的所有权值赋予一个初始值。如果初始权值处在误差曲面的一个相对平缓的区域时,卷积神经网络模型训练的收敛速度可能会异常缓慢。一般情况下,网络的权值被初始化在一个具有0均值的相对小的区间内均匀分布,比如[-0.30,+0.30]这样的区间内。
s522:在卷积神经网络模型中输入弹窗训练图片,计算卷积神经网络模型各层的输出。
本实施例中,在卷积神经网络模型中输入训练图集,计算卷积神经网络模型各层的输出,各层的输出采用前向传播算法可获取。其中,不同于全连接的神经网络模型,对于局部连接的卷积神经网络模型还需计算模型中卷积层的每一种输出的特征图和池化层的每一种输出的特征图,以对权值进行更新。具体地,对于卷积层的每一种输出的特征图xj为
s523:根据各层的输出对卷积神经网络模型各层进行误差反传更新,获取更新后的各层的权值。
步骤s522中,获得的预测值与真实值之间必然存在误差,需要将这个误差信息逐层回传给每一层,让每一层更新它们的权值,才能获得识别效果更好的人脸识别模型。本实施例中,根据各层的输出对卷积神经网络模型各层进行误差反传更新,获取更新后的各层的权值,具体包括计算卷积神经网络模型每一层的误差信息,并用梯度下降法更新每一层的权值。其中,梯度下降法更新权值主要是利用误差代价函数对参数的梯度,所以权值更新的目标就是让每一层得到这样的梯度,然后进行更新。
在一具体实施方式中,步骤s523具体包如下步骤:根据第n个误差代价函数的表达式
s524:基于更新后的各层的权值,获取弹窗图片识别模型。
本实施例中,将获取的更新后的各层的权值,应用到卷积神经网络模型中即可获取训练后的弹窗图片识别模型。
在这个实施方式中,通过弹窗训练图片对卷积神经网络模型进行训练,即可得到弹窗图片识别模型,提高了弹窗图片识别模型的获取效率。
在一个具体实施方式中,基于当前弹窗处理请求,获取当前弹窗图片(即步骤s20),如图4所示,具体包括如下步骤:
s21:基于当前弹窗处理请求,获取当前弹窗所在界面的原始图片。
当获取到当前弹窗处理请求时,终端会根据该当前弹窗处理请求来获取当前弹窗所在界面的原始图片。具体地,可以通过截取的方式获取当前弹窗所在界面的原始图片。该截取的方式可以通过特定的截取函数实现,例如grabwindow()或者getwindow().getdecorview().getrootview()等。
s22:从原始图片中识别弹窗区域边框,基于弹窗区域边框获取当前弹窗图片。
获取到原始图片之后,需要从原始图片中识别出弹窗区域边框,以准确地获取当前弹窗图片。具体地,可以通过边缘识别算法从原始图片中识别出弹窗区域边框,再通过截取的方式获取当前弹窗图片。优选地,该截取的方式可以通过特定的截取函数实现,例如grabwindow()或者getwindow().getdecorview().getrootview()等。
在这个实施方式中,通过获取当前弹窗所在界面的原始图片,并从原始图片中识别出弹窗区域边框,并基于弹窗区域边框获取当前弹窗图片,能精确地获取到当前弹窗图片,以利于后续更好地进行当前弹窗图片类型的识别。
在一个具体实施方式中,从原始图片中识别弹窗区域边框,基于弹窗区域边框获取当前弹窗图片(即步骤s22),如图5所示,具体包括如下步骤:
s221:采用canny算法对原始图片进行边缘检测,获取原始图片中的弹窗区域轮廓。
canny算法是一种多级边缘检测算法,该算法旨在通过最优检测、最优定位准则和检测点与边缘点一一对应这三个原则来实现一个最优边缘检测算法。具体地,canny算法可以包括以下实现步骤:
(1)图像灰度化:将原始图片进行灰度化处理,以进行边缘检测。
(2)图像去噪:原始图片中存在的噪声点会影响边缘检测的准确性,对灰度化之后的原始图片采用高斯模糊去除该原始图片中的噪声,以降低原始图片中伪边缘的识别。
(3)求解梯度幅度和方向:可以利用以下边缘差分算子来求解图像去噪之后的原始图片的梯度幅度和方向:rober、prewitt或sobel。在这个实施方式中,选择采用sobel算子来求解该原始图片中的梯度幅度和方向,可以使原始图片中的边缘粗大明亮,便于后续的进一步识别。
(4)非极大值抑制:通过非极大值抑制对上一步骤中得到的边缘粗大明亮的原始图片进行边缘细化。具体地,比较原始图片中当前点的梯度强度和正负梯度方向点的梯度强度;如果当前点的梯度强度和同方向的其他点(即正梯度方向点)的梯度强度相比较是最大的,则保留当前点的梯度强度。否则对其进行抑制,即把当前点的梯度强度设为0。通过对原始图片进行非极大值抑制处理,可以在定位准确边缘的同时缩小边缘线宽,保留了梯度变化中最锐利的位置。
(5)双阀值算法检测:对经过上一步骤处理的原始图片采用一个高阀值和一个低阀值来区分边缘像素点。如果边缘像素点的梯度值大于高阀值,则标记为强边缘点。如果边缘像素点的梯度值小于高阀值且大于低阀值,则标记为弱边缘点。如果边缘梯度值小于低阀值的点则将其抑制掉。
(6)滞后边界跟踪:通过双阀值算法检测对原始图片中边缘像素点进行强边缘点和弱边缘点标记之后,原始图片中的强边缘点可以认为是原始图片中真实边缘。而弱边缘点则有可能是真实边缘,也有可能仅是噪声或颜色变化引起的误差。为得到精确的结果,应该将原始图片中噪声或颜色变化引起的弱边缘点去掉。通常认为真实边缘引起的弱边缘点和强边缘点是连通的,而由噪声引起的弱边缘点则不会。具体地,通过滞后边界跟踪检查原始图片中一个弱边缘点的8连通领域像素,只要有强边缘点存在,则保留该弱边缘点,否则对该弱边缘点进行抑制。由此,得到在图片中存在一个轮廓清晰的边框的原始图片。
通过canny算法经过上述步骤对原始图片进行边缘检测后,就可以获取到原始图片中的一个轮廓清晰的边框轮廓,即为弹窗区域轮廓。
s222:采用直线检测算法对弹窗区域轮廓进行轮廓拟合,获取弹窗区域轮廓上每一边对应的目标边线。
直线检测算法是一种几何图形识别算法。具体地,可以采用hough直线检测算法、freeman直线检测算法或尺蠖蠕行算法等直线检测算法来对弹窗区域轮廓进行轮廓拟合,以获取弹窗区域轮廓上每一边对应的目标边线。
在一个具体实施方式中,采用hough直线检测算法对弹窗区域轮廓进行轮廓拟合,获取弹窗区域轮廓上每一边对应的目标边线,如图6所示,具体包括以下步骤:
s2221:获取弹窗区域轮廓的像素点,对每一像素点进行坐标变换,形成霍夫变换空间。
获取弹窗区域轮廓的像素点,采用直角坐标(x,y)来表示每一像素点。对每一像素点进行左边变换,具体地,可以采用如下公式对每一像素点进行坐标变换:
r=cos(θ)·x+sin(θ)·y;
对每一像素点进行坐标变换之后,形成对应的霍夫变换空间,而每一像素点在霍夫变换空间中对应于一条曲线。
s2222:统计霍夫变换空间中每一交点对应的曲线数量,获取曲线数量超过阈值的交点,作为目标交点。
霍夫变换空间中,多条曲线可能会存在一共同的交点,当多条曲线在霍夫变换空间中经过同一交点,则意味着该多条曲线对应的像素点在进行坐标变换之前是处于同一条直线上的,通过将这个交点进行坐标逆变换,就可以得到一条对应的直线。统计霍夫变换空间中每一交点对应的曲线数量(即经过这个交点的曲线数量)。当一个交点对应的曲线数量超过了预设的阈值时,说明这个交点对应的直线是有效的。因此,在该步骤中,统计霍夫变换空间中每一交点对应的曲线数量,获取曲线数量超过阈值的交点,作为目标交点。
s2223:将目标交点进行坐标逆变换,获取弹窗区域轮廓的边线。
通过将目标交点进行坐标逆变换,即可得到每一目标交点对应的直线,这些直线就是弹窗区域轮廓的边线。坐标逆变换即是步骤s2221中坐标变换的逆变换过程,相当于是一个坐标还原。
s2224:基于弹窗区域轮廓的边线,获取弹窗区域轮廓中每一边对应的目标边线。
其中,弹窗区域轮廓一般地为一个矩形,而一个矩形对应有四条边框。故在获取到的弹窗区域轮廓的边线会形成一个大致的矩形框,而该矩形框的每一条边都会对应着一定数量的边线,通过在每一条边获取一目标边线,便可得到弹窗区域边框。
具体地,基于弹窗区域轮廓的边线获取对应的目标边线的方法如下:
基于弹窗区域轮廓的边线对应的矩形框的不同边框将边线分为四个集合a、b、c和d,每一集合对应矩形框的一个边线,即a={a1,a2,......an},b={b1,b2,......bn},c={c1,c2,......cn},d={d1,d2,......dn},其中,an、bn、cn和dn均表示弹窗区域轮廓的边线。
计算每一集合中每一边线和其余边线的距离,对该集合中每一边线和其余每一边线的距离进行求和,得到每一边线的目标距离。获取目标距离最小的边线,作为该集合中的目标边线。在获取到每一集合中的目标边线之后,即为弹窗区域轮廓中每一边对应的目标边线。
在这个实施方式中,通过hough直线检测算法对弹窗区域轮廓进行轮廓拟合,进而为边框轮廓中每一边获取相应的目标边线,提高了后续弹窗区域边框获取的精度。
s223:基于弹窗区域轮廓中每一边对应的目标边线,获取弹窗区域边框。
在得到弹窗区域轮廓四条边对应的目标边线之后,基于这四条目标边线,即可获取弹窗区域边框。
s224:基于弹窗区域边框,获取当前弹窗图片。
基于获取到的弹窗区域边框,即可得到当前弹窗图片。具体地,可以采用截取的方式,基于弹窗区域边框在原始图片中截取当前弹窗图片。可以通过特定的截取函数实现,例如grabwindow()或者getwindow().getdecorview().getrootview()。
在这个实施方式中,通过canny算法对原始图片进行边缘检测,得到弹窗区域轮廓,再通过直线查找算法进行轮廓拟合的方式得到目标边线,使最后获得的当前弹窗图片的精确度大大提高,也进一步提高了当前弹窗图片的识别精度。
在一个具体实施方式中,根据当前弹窗类型,响应当前弹窗处理请求,如图7所示,具体包括:
s41:根据当前弹窗类型,获取对应的弹窗处理脚本。
对于不同的当前弹窗类型,预先编写好的对应的弹窗处理脚本,当获取到当前弹窗类型之后,就可以根据该当前弹窗类型来获取对应的弹窗处理脚本。例如,当识别到当前弹窗类型为广告类弹窗时,就可以获取对应的广告类弹窗处理脚本。
s42:采用弹窗处理脚本对当前弹窗处理请求进行处理。
采用获取到的弹窗处理脚本对当前弹窗处理请求进行处理,以响应该当前弹窗处理请求。例如:若该弹窗处理脚本为广告类弹窗处理脚本,就可以在获取到该脚本之后,执行该脚本,以关闭当前弹窗处理请求对应的弹窗。若该弹窗处理脚本为警示类弹窗处理脚本,则执行该脚本之后,会向用户发出提醒,以提示用户及时手动处理当前弹窗处理请求对应的弹窗。
在这个实施方式中,通过当前弹窗类型来获取对应的弹窗处理脚本,并执行该弹窗处理脚本,以响应当前弹窗处理请求,对当前弹窗进行处理,极大地提高了弹窗处理效率。
在一个具体实施方式中,该弹窗处理方法应用在自动化测试中。可以针对该自动化测试获取对应的弹窗图片,形成弹窗训练图片。具体地,弹窗训练图片可以包括基础弹窗训练图片和特定弹窗训练图片。其中,基础弹窗训练图片为在所有应用场景中都有可能出现的弹窗图片。例如,广告推送弹窗或者与系统相关的弹窗。而特定弹窗训练图片则是针对不同的应用场景所对应的可能出现的弹窗图片。例如,获取在该自动化测试中经常出现的弹窗图片,为其中的每一弹窗图片进行分类标注,作为特定弹窗训练图片。并且在获取到弹窗图片识别模型之后为增加的弹窗类型也预先编写对应的处理脚本。
在这个实施方式中,在自动化测试中有针对地获取特定弹窗训练图片,提高了该弹窗处理方法应用在自动化测试中的处理精度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
图8示出与实施例1中弹窗处理方法一一对应的弹窗处理装置的原理框图。如图8所示,该弹窗处理装置包括当前弹窗处理请求获取模块10、当前弹窗图片获取模块20、当前弹窗类型识别模块30和当前弹窗处理请求响应模块40。其中,当前弹窗处理请求获取模块10、当前弹窗图片获取模块20、当前弹窗类型识别模块30和当前弹窗处理请求响应模块40的实现功能与实施例1中弹窗处理方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
当前弹窗处理请求获取模块10,用于获取当前弹窗处理请求。
当前弹窗图片获取模块20,用于基于当前弹窗处理请求,获取当前弹窗图片。
当前弹窗类型识别模块30,用于将当前弹窗图片输入到弹窗识别模型中进行识别,获取当前弹窗图片对应的当前弹窗类型。
当前弹窗处理请求响应模块40,用于根据当前弹窗类型,响应当前弹窗处理请求。
优选地,该弹窗处理装置还包括弹窗图片识别模型获取模块50,弹窗图片识别模型获取模块50包括弹窗训练图片获取子模块51和弹窗图片识别模型获取子模块52。
弹窗训练图片获取子模块51,用于获取现有弹窗图片,为每一现有弹窗图片进行分类标注,获取弹窗训练图片。
弹窗图片识别模型获取子模块52,用于采用弹窗训练图片对卷积神经网络模型进行训练,获取弹窗图片识别模型。
优选地,弹窗图片识别模型获取子模块52包括初始化单元521、模型层输出单元522、权值更新单元523和识别模型获取单元524。
初始化单元521,用于初始化卷积神经网络模型。
模型层输出单元522,用于在卷积神经网络模型中输入训练图集,计算卷积神经网络模型各层的输出。
权值更新单元523,用于根据各层的输出对卷积神经网络模型各层进行误差反传更新,获取更新后的各层的权值。
识别模型获取单元524,用于基于更新后的各层的权值,获取弹窗图片识别模型。
优选地,当前弹窗图片获取模块20包括原始图片获取子模块21和当前弹窗图片获取子模块22。
原始图片获取子模块21,用于基于当前弹窗处理请求,获取当前弹窗所在界面的原始图片。
当前弹窗图片获取子模块22,用于从原始图片中识别弹窗区域边框,基于弹窗区域边框获取当前弹窗图片。
优选地,当前弹窗图片获取子模块22包括弹窗区域轮廓获取单元221、目标边线获取单元222、弹窗区域边框获取单元223和当前弹窗图片获取单元224。
弹窗区域轮廓获取单元221,用于采用canny算法对原始图片进行边缘检测,获取原始图片中的弹窗区域轮廓。
目标边线获取单元222,用于采用直线检测算法对弹窗区域轮廓进行轮廓拟合,获取弹窗区域轮廓上每一边对应的目标边线。
弹窗区域边框获取单元223,用于基于弹窗区域轮廓中每一边对应的目标边线,获取弹窗区域边框。
当前弹窗图片获取单元224,用于基于弹窗区域边框,获取当前弹窗图片。
优选地,目标边线获取单元222包括目标交点获取子单元2221、边线获取子单元2222和目标边线获取子单元2223。
目标交点获取子单元2221,用于统计霍夫变换空间中每一交点对应的曲线数量,获取曲线数量超过阈值的交点,作为目标交点。
边线获取子单元2222,用于将目标交点进行坐标逆变换,获取弹窗区域轮廓的边线。
目标边线获取子单元2223,用于基于弹窗区域轮廓的边线,获取弹窗区域轮廓中每一边对应的目标边线。
优选地,当前弹窗处理请求响应模块40包括弹窗处理脚本获取子模块41和当前弹窗处理请求处理子模块42。
弹窗处理脚本获取子模块41,用于根据当前弹窗类型,获取对应的弹窗处理脚本。
当前弹窗处理请求处理子模块42,用于采用弹窗处理脚本对当前弹窗处理请求进行处理。
实施例3
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中弹窗处理方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中弹窗处理装置中各模块/单元的功能,为避免重复,这里不再赘述。
可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号和电信信号等。
实施例4
图9是本发明一实施例提供的计算机设备的示意图。如图9所示,该实施例的计算机设备60包括:处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63。处理器61执行计算机程序63时实现上述实施例1中弹窗处理方法的步骤,例如图1所示的步骤s10至s40。或者,处理器61执行计算机程序63时实现上述实施例2的弹窗处理装置中各模块/单元的功能,例如图8所示当前弹窗处理请求获取模块10、当前弹窗图片获取模块20、当前弹窗类型识别模块30和当前弹窗处理请求响应模块40等模块的功能。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。