控件操作方法、控件检测模型的训练方法、装置和设备与流程

文档序号:33020151发布日期:2023-01-20 18:25阅读:26来源:国知局
控件操作方法、控件检测模型的训练方法、装置和设备与流程

1.本公开涉及人工智能领域,更具体地,涉及一种控件操作方法、控件检测模型的训练方法、装置、设备、介质和程序产品。


背景技术:

2.在自动化测试以及自动化办公等场景中,可以对当前窗体程序的界面进行控件识别,并使用自动化的方法(如模拟键盘鼠标)对软件进行操作。相关技术中,可以获取控件对象的系统标识特征,根据获取的特征进行描述后,对控件对象进行查找。也可以通过以图搜图或者模板匹配的方式进行搜索。还可以利用机器学习的方式对受操作目标例如控件的图标图像进行临时预先训练,其训练样本来源不广泛,对象识别具有一定的针对性。


技术实现要素:

3.在实现本公开发明构思的过程中,发明人发现:
4.(1)在识别控件过程中,存在判断能力差、适应能力差、识别范围有限和人工成本较高等问题,导致识别效果不理想。
5.(2)在对识别到的目标控件进行自动化操作过程中,由于被操作对象的软件开发的多样性,包括开发语言、框架的不同实现形式、非标准化的控件等原因,造成可能无法通过常规方法获取控件的系统标识特征,也无法通过常规方式进行自动化操作,导致操作受限、技术门槛较高,为软件的自动化操作带来很大的困难。
6.目前实现控件自动化操作过程中存在识别效果不理想、技术门槛高、控件定位复杂和操作受限等问题。
7.鉴于上述问题,本公开提供了一种基于人工智能视觉目标的控件操作方法、控件检测模型的训练方法、装置、设备、介质和程序产品。
8.本公开实施例的一个方面提供了一种控件操作方法,包括:将待操作界面的截图作为控件检测模型的输入,其中l所述待操作界面显示有n个第一控件,所述控件检测模型通过m个第二控件的视觉特征集合训练获得,所述视觉特征集合包括人类通过视觉感测到的至少一个特征,m和n分别为大于或等于1的整数;获得所述控件检测模型根据所述n个第一控件的视觉特征集合输出的第一预测结果,其中,所述第一预测结果包括检测到的每个第一控件的识别信息;根据所述每个第一控件的识别信息,从所述待操作界面确定出至少一个目标控件;对所述至少一个目标控件进行操作。
9.根据本公开的实施例,所述对所述至少一个目标控件进行操作包括:根据所述第一预测结果,确定所述至少一个目标控件中部分或全部控件的控件对象类型;根据所述部分或全部控件的控件对象类型,操作所述至少一个目标控件。
10.根据本公开的实施例,所述第一预测结果包括预测坐标信息,所述根据所述第一预测结果,确定所述至少一个目标控件中部分或全部控件的控件对象类型包括:根据应用的至少一个控件句柄获得一一对应的至少一个坐标信息,其中,所述待操作界面为所述应
用的任一个界面;从所述至少一个坐标信息中确定出与所述预测坐标信息相匹配的目标坐标信息;根据所述目标坐标信息确定所述部分或全部控件对应的目标控件句柄。
11.根据本公开的实施例,所述根据所述部分或全部控件的控件对象类型,操作所述至少一个目标控件包括:调用每个所述目标控件句柄的控件对象类型接口进行操作。
12.根据本公开的实施例,若未从所述至少一个坐标信息中确定出与所述预测坐标信息相匹配的目标坐标信息,所述对所述至少一个目标控件进行操作包括:根据所述预测坐标信息,对所述待操作界面中对应位置的目标控件进行键盘和/或鼠标操作。
13.根据本公开的实施例,所述从所述至少一个坐标信息中确定出与所述预测坐标信息相匹配的目标坐标信息包括:若从所述至少一个坐标信息中筛选出与所述预测坐标信息相匹配的唯一坐标信息,将该唯一坐标信息确定为所述目标坐标信息;若从所述至少一个坐标信息中筛选出与所述预测坐标信息相匹配的至少两个坐标信息,根据所述至少两个坐标信息各自对应控件的显示面积确定出所述目标坐标信息。
14.根据本公开的实施例,在根据应用的至少一个控件句柄获得一一对应的至少一个坐标信息之前,所述方法还包括:根据所述每个目标控件的控件类型和/或所述每个目标控件的显示文字,筛选出所述至少一个控件句柄。
15.根据本公开的实施例,在从所述待操作界面确定出至少一个目标控件之前,所述方法还包括:预先确定每个目标控件的对象视觉特征集合,所述对象视觉特征集合包括控件类型特征、颜色特征、形状特征、纹理特征、文字特征和空间关系特征中至少一个。
16.根据本公开的实施例,所述至少一个目标控件包括第一目标控件和第二目标控件,所述从所述待操作界面确定出至少一个目标控件包括依次确定出所述第一目标控件和所述第二目标控件,从所述待操作界面确定出所述第二目标控件包括:根据所述目标识别信息,以及所述第一目标控件和所述第二目标控件之间关联信息,确定出所述第二目标控件。
17.本公开实施例的另一方面提供了一种控件检测模型的训练方法,包括:将包括m个第二控件的训练截图集合输入至控件检测模型,m为大于或等于1的整数;获得所述控件检测模型根据所述m个第二控件的视觉特征集合输出的第二预测结果,其中,所述视觉特征集合包括人类通过视觉感测到的至少一个特征,所述第二预测结果包括检测到的每个第二控件的识别信息,所述识别信息包括预测视觉类型;根据所述每个第二控件的预测视觉类型和标签视觉类型获得分类损失;根据所述分类损失更新所述控件检测模型的参数。
18.根据本公开的实施例,所述视觉特征集合包括控件类型特征、颜色特征、形状特征、纹理特征、文字特征和空间关系特征中至少一个,在将m个第二控件的视觉特征集合输入至控件检测模型之前,所述方法还包括:根据每个第二控件的视觉特征集合确定对应的标签视觉类型。
19.本公开实施例的另一方面提供了一种控件操作装置,包括:第一输入模块,用于将待操作界面的截图作为控件检测模型的输入,其中,所述待操作界面显示有n个第一控件,所述控件检测模型通过m个第二控件的视觉特征集合训练获得,所述视觉特征集合包括人类通过视觉感测到的至少一个特征,m和n分别为大于或等于1的整数;第一预测模块,用于获得所述控件检测模型根据所述n个第一控件的视觉特征集合输出的第一预测结果,其中,所述第一预测结果包括检测到的每个第一控件的识别信息;目标确定模块,用于根据所述
每个第一控件的识别信息,从所述待操作界面确定出至少一个目标控件;控件操作模块,用于对所述至少一个目标控件进行操作。
20.本公开实施例的另一方面提供了一种控件检测模型的训练装置,包括:第二输入模块,用于将包括m个第二控件的训练截图集合输入至控件检测模型,m为大于或等于1的整数;第二预测模块,用于获得所述控件检测模型根据所述m个第二控件的视觉特征集合输出的第二预测结果,其中,所述视觉特征集合包括人类通过视觉感测到的至少一个特征,所述第二预测结果包括检测到的每个第二控件的识别信息,所述识别信息包括预测视觉类型;损失计算模块,用于根据所述每个第二控件的预测视觉类型和标签视觉类型获得分类损失;模型更新模块,用于根据所述分类损失更新所述控件检测模型的参数。
21.本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
22.本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
23.本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
24.上述一个或多个实施例具有如下有益效果:
25.(1)通过待操作界面的截图,利用控件检测模型能够提取出n个第一控件的视觉特征集合,并根据视觉特征集合来输出第一预测结果,减少了对控件的系统标识特征描述的依赖,相较于以图搜图和模板匹配等方式具有更强的控件识别适应能力,具备更好的执行环境稳定性和适用范围。然后可以根据第一预测结果从待操作界面确定出至少一个目标控件实现自动化操作,使得自动化门槛和成本更低,一定程度上解决了识别效果不理想的问题。
26.(2)相比于常规方法获取控件的系统标识特征的方式,先确定部分或全部目标控件的控件对象类型,并可以根据控件对象类型以底层编程的方式操作该些部分或全部目标控件,例如进行写操作、读操作或者与传统自动化操作方式相融合实现自动化操作,能够对控件对象的属性值直接操作,具有更高的稳定性、准确性和灵活性。
附图说明
27.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
28.图1示意性示出了根据本公开实施例的控件操作方法或训练方法的应用场景图;
29.图2示意性示出了根据本公开实施例的控件检测模型的训练方法的流程图;
30.图3示意性示出了根据本公开实施例的控件操作方法的流程图;
31.图4示意性示出了根据本公开实施例的确定目标控件的流程图;
32.图5示意性示出了根据本公开实施例的确定目标控件句柄的流程图;
33.图6示意性示出了根据本公开实施例的自动化软件操作的流程图;
34.图7示意性示出了根据本公开实施例的控件操作装置的结构框图;
35.图8示意性示出了根据本公开实施例的控件检测模型的训练装置的结构框图;以

36.图9示意性示出了根据本公开实施例的适于实现控件操作方法或训练方法的电子设备的方框图。
具体实施方式
37.为了便于理解本技术实施例的技术方案,首先对本技术涉及的一些技术术语进行介绍。
38.控件:软件窗口的可控制组件,比如进度条、按钮和文本框等。
39.控件句柄:控件对象的标识,用于给出对应控件的索引,通过该索引可以修改该控件的属性。
40.视觉特征:例如将人眼观察到的控件属性表征为特征数据。
41.视觉类型:通过控件的视觉特征集合进行的分类。
42.控件类型:控件本身所属类型,比如进度条类、按钮类和文本框类等。
43.控件对象:可以进行自动化操作的对象。
44.控件对象类型:与控件类型相对应,可以基于此对控件对象直接实施底层编程操作。
45.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
46.在传统的软件自动化操作领域中,对象识别是基于调试工作中使用工具软件,获取控件对象的系统标识特征,根据获取的特征进行描述后,对对象进行查找,然后手工进行包括点击、输入等对象的内置方法操作。在这个过程中,对自动化操作的实施者需要一定的技术能力基础,同时由于软件的执行表现和调试过程可能存在变化,所以控件对象的系统标识特征会发生变化,甚至部分软件的操作场景不具备可调试条件。此外,由于被操作对象的软件开发的多样性,包括开发语言、框架的不同实现形式、非标准化的控件等原因,系统标识特征(如表征控件的标识符或名称)发生变化,也造成可能无法通过常规方法获取控件的系统标识特征,导致技术门槛较高,为软件的自动化操作带来很大的困难。
47.以图搜图的方法即以控件图标的哈希特征对屏幕按照一定步长进行搜索。而模板匹配算法可以找到最佳匹配的图像。上述方法的性能较为低下,对多目标、无目标的情况判断能力差,对分辨率、清晰度等情况的适应能力也差,是一种较为简陋的方法。
48.通过机器学习对受操作目标例如控件的图标图像进行临时预先训练的方式,由于样本来源不广泛,对象识别针对性较强,所以智能识别的范围有限,使用中针对场景需要往复训练,带来的人工成本较高。
49.本公开的实施例提供了一种控件操作方法、控件检测模型的训练方法、装置、设备、介质和程序产品,在传统的操作对象识别和操作方法上进行优化,结合人工智能视觉识别对象技术,提供一种适用范围更广的方案。
50.根据本公开的实施例,利用控件的视觉特征进行识别,即使被操作对象的软件具
有多样的开发语言、框架的不同实现形式、非标准化的控件,人类所能感测到的可视化效果是一致的,避免了可能无法通过常规方法获取控件的系统标识特征的情况。控件的视觉特征相比于以图搜图和模板匹配所处理的数据维度更小,考虑的特征更有目的性,对分辨率、清晰度等情况的适应能力较强。而机器学习对特定控件图像进行学习的方式,仅能对特定控件图像进行识别,局限于控件图像及应用软件,利用控件的视觉特征从视觉维度扩大了应用范围,对不同控件图像及应用软件能够从视觉上学习其特点,具有更广的使用范围和识别准确率。
51.并且,先确定部分或全部目标控件的控件对象类型,并可以根据控件对象类型以底层编程的方式操作该些部分或全部目标控件,例如进行写操作、读操作或者与传统自动化操作方式相融合实现自动化操作,能够对控件对象的属性值直接操作,降低了技术门槛,为软件的自动化操作带来很大的方便。
52.图1示意性示出了根据本公开实施例的控件操作方法或训练方法的应用场景图。
53.如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
54.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
55.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
56.服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
57.以终端设备101的示意界面1011举例,该界面可以包括文本框1012、下拉框1013、播放按钮1014、暂停按钮1015、结束按钮1016和确定按钮1017等控件。各个控件具有不同的形状、颜色或类型等视觉特征。
58.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
59.以下将基于图1描述的场景,通过图2~图6对本公开实施例的控件操作方法和控件检测模型的训练方法进行详细描述。
60.图2示意性示出了根据本公开实施例的控件检测模型的训练方法的流程图。
61.如图2所示,该实施例的控件检测模型的训练方法包括操作s210~操作s240。
62.在操作s210,将包括m个第二控件的训练截图集合输入至控件检测模型,m为大于或等于1的整数。
63.训练截图集合例如可以从不同的窗体程序的各个界面截图获得,该集合可以包括用于训练的多张控件截图,每张控件截图可以包括一个或多个控件。
64.示例性地,控件检测模型可以为基于机器学习算法实现的目标检测模型,例如two stage类型的目标检测模型或one stage类型的目标检测模型,可以包括yolo系列模型、ssd
模型、faster r-cnn模型或mask r-cnn模型等。
65.在一些实施例中,在将训练数据送入模型训练前,首先从网络及各类软件中获取海量的不同特征的控件截图,截图的文件格式为含rgb颜色的三通道图像格式。
66.在一些实施例中,视觉特征集合包括控件类型特征、颜色特征、形状特征、纹理特征、文字特征和空间关系特征中至少一个,在将m个第二控件的视觉特征集合输入至控件检测模型之前,还包括:根据每个第二控件的视觉特征集合确定对应的标签视觉类型。
67.其中,控件类型特征包括按钮、下拉框或文本框等类型。空间关系特征如图1所示暂停按钮1015中各个组成部分之间的关系。
68.示例性地,确定第二控件的标签视觉类型可以根据视觉特征集合中一个或多个特征实现,可以按照控件的视觉特征进行视觉上的特征分类,为每个类别定义一个唯一的分类号class_id,并归类放入不同的文件夹中。例如【红色】【方形】【按钮】与【红色】【圆形】【按钮】之间为两个并行的不同分类。对于后续的模型训练而言并无父子或兄弟的属性分类关系,模型推演后会直接通过输出置信度的体现这一关系。
69.在一些实施例中,还可以对每张截图,配置一个控件在截图中边界区域信息的文件,内容包含:控件中心点横坐标x/截图宽度的比例x_center、控件中心点纵坐标y/截图高度的比例y_center、控件宽度width/截图宽度的比例width、控件高度height/截图高度的比例height。并可以生成txt文本存储边界区域信息,txt文件名与图片名称相匹配,并位于图片相同的文件夹下(便于模型读取),例如:图片名为1.png,则文本文件名为1.txt,文件内容为:《

class_id

》《

x_center

》《

y_center

》《

width

》《

height

》,中间用空格隔开(仅为示例)。
70.可以理解,上述对控件分类或获得边界区域信息的过程可以人工完成,也可以根据现有的人工智能模型自动生成。
71.示例性地,可以每种视觉特征分类控件的图像样本中抽取1/10,作为训练效果检验。还可以编写配置文件config-1,定义训练和验证两个动作中,class_id对应的文件夹位置。其中,可以将分类的文件统一调整到相同的尺寸,像素值为640*640。由于推演需求含颜色,因此不要对样本进行灰度预处理。
72.以基于yolov5(yolo目标检测模型第五代)的yolov5-l(第四级复杂度large)模型举例,模型的入参包括图片的尺寸大小、训练的块大小、使用的预训练模型文件和001中编写的config-1配置文件。由于config-1配置文件中有各个训练截图的文件夹路径,所以能够将包括m个第二控件的训练截图集合输入至控件检测模型。
73.在操作s220,获得控件检测模型根据m个第二控件的视觉特征集合输出的第二预测结果,其中,视觉特征集合包括人类通过视觉感测到的至少一个特征,第二预测结果包括检测到的每个第二控件的识别信息,识别信息包括预测视觉类型。
74.在操作s230,根据每个第二控件的预测视觉类型和标签视觉类型获得分类损失。
75.在一些实施例中,可以根据标签视觉类型的class_id和预测视觉类型的class_id之间的差异程度确定分类损失。具体地,例如使用交叉熵损失函数计算获得分类损失值。
76.在考虑控件在截图中边界区域信息的情况下,模型推演输出含位置信息、分类信息和置信度信息。模型的损失函数为以下三者之和:
77.classification loss,分类损失。
78.localization loss,定位损失(预测边界框与标定框之间的误差)。
79.confidence loss,置信度损失。
80.其中,分类损失和定位损失皆使用交叉熵损失函数计算,置信度损失使用iou函数计算(仅为示例)。
81.在操作s240,根据分类损失更新控件检测模型的参数。
82.示例性地,例如可以根据分类损失、定位损失和置信度损失之和进行反向传播更新参数。
83.在一些实施例中,可以在图1中的服务器105中完成模型的训练,并可以将训练后的模型转化为onnx(open neural network exchange)模型,进一步提升模型在普通的设备、基于cpu条件下的推演性能,例如可以将onnx模型迁移到终端设备101、102、103中使用。可以理解的是,一些实施例中也可以不转化训练后的模型而直接使用。
84.根据本公开的实施例,结合人工智能视觉识别对象技术训练控件检测模型,提高了自动化测试及办公自动化过程中被操作对象的自然可描述性,适用范围更广。
85.图3示意性示出了根据本公开实施例的控件操作方法的流程图。
86.如图3所示,该实施例的控件操作方法包括操作s310~操作s340。
87.在操作s310,将待操作界面的截图作为控件检测模型的输入,其中,待操作界面显示有n个第一控件,控件检测模型通过m个第二控件的视觉特征集合训练获得,视觉特征集合包括人类通过视觉感测到的至少一个特征,m和n分别为大于或等于1的整数。
88.例如推演模型(即控件检测模型)直接在实施自动化的受控设备上(如图1终端设备101)进行推演,不需要中心服务运算架构,提高环境适用范围。
89.示例性地,对受控设备的屏幕进行高频截屏,将内存截图即时送入推演模型。待操作界面可以为自动化测试或自动化办公过程中所涉及的任一个界面。对于每个显示有第一控件且需要操作的界面皆可以截图输入模型进行检测。人类通过视觉感测到的特征例如是人浏览待操作界面时所能看到的特征,如上的控件类型特征、颜色特征、形状特征、纹理特征和空间关系特征等。
90.在操作s320,获得控件检测模型根据n个第一控件的视觉特征集合输出的第一预测结果,其中,第一预测结果包括检测到的每个第一控件的识别信息。
91.在一些实施例中,模型输出为一组信息成员,每个成员的内容包含:控件的视觉类型class_id、坐标位置及置信度。如无目标,则列表为空,无后续步骤。
92.参照图1,若能够检测到界面1011中每个控件,则第一预测结果包括每个控件的视觉类型,如预测的class_id、坐标位置及和置信度。
93.在操作s330,根据每个第一控件的识别信息,从待操作界面确定出至少一个目标控件。
94.继续参照图1,可以从第一预测结果中界面1011中的文本框1012和确定按钮1017为目标控件。
95.在操作s340,对至少一个目标控件进行操作。
96.可以理解,对目标控件进行的操作可以是根据待测试功能或办公目的设置的一个或多个特定操作步骤,各个操作步骤可能涉及一个或多个目标控件的先后操作顺序。
97.根据本公开的实施例,通过待操作界面的截图,利用控件检测模型能够提取出n个
第一控件的视觉特征集合,并根据视觉特征集合来输出第一预测结果,减少了对控件的系统标识特征描述的依赖,相较于以图搜图和模板匹配等方式具有更强的控件识别适应能力,具备更好的执行环境稳定性和适用范围。然后可以根据第一预测结果从待操作界面确定出至少一个目标控件实现自动化操作,使得自动化门槛和成本更低,一定程度上解决了在自动化操作过程中的技术门槛高、控件定位复杂和操作受限等问题。
98.在一些实施例中,在操作s330从待操作界面确定出至少一个目标控件之前,还包括:预先确定每个目标控件的对象视觉特征集合,对象视觉特征集合包括控件类型特征、颜色特征、形状特征、纹理特征、文字特征和空间关系特征中至少一个。
99.可以事先编程确定自动化测试或自动化办公的操作流程,并预先在编码过程中对目标控件的对象视觉特征集合属性进行描述,如对控件的类型、颜色、形状和文本等进行描述。例如“红色的矩形确认按钮”,后续推演过程会按照符合“控件类型【按钮】”、“颜色【红色】”、“文本【确认】和形状【矩形】”这四个信息进行定位和筛选。信息越完整,定位越准确。信息越少,返回的成员数量越多。
100.根据本公开的实施例,通过对象视觉特征集合给出目标控件的特征属性,提高了识别速度和准确率,达到自动化操作的目的。具体而言,利用对象视觉特征集合中的一个或多个,可以与第一预测结果中每个控件识别信息进行匹配,将相匹配的识别信息筛选出来。以下利用图4进一步描述。
101.根据本公开的实施例,在操作s340对至少一个目标控件进行操作包括:根据第一预测结果,确定至少一个目标控件中部分或全部控件的控件对象类型;根据部分或全部控件的控件对象类型,操作至少一个目标控件(可以至少操作确定出控件对象类型的控件)。
102.示例性地,根据控件对象类型可通过底层编程的方式进行自动化操作。通过底层编程可以内存消息的形式直接传入控件对象的内存属性值,例如进行写操作、读操作或者与传统自动化操作方式相融合。
103.对于写操作而言,以文本框举例,传统方式通过模拟鼠标和键盘输入,例如点击文本框,然后输入键盘键入文字。该情况下可能存在窗口程序界面卡顿,点击和输入的操作可能无法顺利进行,所以自动化操作并不稳定。或者即使点击文本框也不符合文字输入条件,不允许键入文字,则自动化操作会被迫终止失败。而写操作的方式可以从底层直接通过内存消息的形式发送待输入文字,改变文本框对象的属性,具有较高的稳定性和准确性。还可以从底层写入判断语句来预先判断是否可以直接写入文字,具有判断能力。
104.对于读操作而言,以列表举例,在需要读取列表中的内容时,传统方式可能采用ocr识别的方式,获取列表中的文本。不过ocr识别是根据坐标信息去读取对应的位置,而如果窗体界面卡顿,列表显示不全,或未显示,或未在对应坐标位置显示,则难以识别。另外,ocr识别的效果可能不理想而导致识别错误。读操作可以直接获取该列表对应的list,从中获取文本内容,具有更准确和更稳定的优势。
105.对于与传统自动化操作方式相融合而言,可以将模拟鼠标键盘输入或ocr识别等方式与根据控件对象类型进行编程操作相融合。例如传统方式解析结构化数据确定各个控件(例如具有父子关系的结构),并基于模拟鼠标键盘输入或ocr识别等方式进行自动化操作,而对于某些控件无法通过解析结构化数据的方式准确获取,或模拟鼠标键盘输入的自动化操作方式不稳定,则可以嵌入本公开实施例的控件操作方法,对各个控件交替使用传
统方式或底层编程操作的方式,具有更高的灵活性。
106.下面通过图4和图5进一步展开描述。
107.图4示意性示出了根据本公开实施例的确定目标控件的流程图。
108.如图4所示,在操作s330从待操作界面确定出至少一个目标控件包括操作s410~操作s420。
109.在操作s410,根据每个目标控件的视觉类型,从第一预测结果中筛选出对应的目标识别信息,目标识别信息包括与每个目标控件的视觉类型相匹配的预测视觉类型。
110.每个目标控件的视觉类型可以根据其对象视觉特征集合来确定。可以预先根据自动化测试或自动化办公的目的进行编程,在编程过程中描述每个目标控件的对象视觉特征集合(即本次自动化的目的是操作哪些目标控件以及进行何种操作)。在一些实施例中,通过每个目标控件的对象视觉特征集合可以按照训练时的分类方法得到其class_id,并与第一预测结果中的预测视觉类型(预测class_id)进行匹配。在另一些实施例中,可以直接用对象视觉特征集合来表征视觉类型,并获取每个预测视觉类型所对应的视觉特征集合,来从特征的维度一一匹配。
111.在一些实施例中,还可以利用置信度进一步筛选目标识别信息,例如具有高于阈值的置信度的识别信息才符合要求,否则丢弃掉。
112.在操作s420,根据目标识别信息,从待操作界面确定出对应的目标控件。
113.目标识别信息是模型输出的预测结果,而自动化操作是在待操作界面进行,所以要根据目标识别信息定位到待操作界面中对应的控件。可以利用目标识别信息中的预测视觉类型、预测坐标信息和置信度等信息确定目标控件。例如利用预测视觉类型获取视觉特征集合,并结合预测坐标位置在界面上搜索。
114.根据本公开的实施例,相比于对第一预测结果中每个识别信息一一从界面中确定对应的控件后再最终确定目标控件,根据每个目标控件的视觉类型预先筛选出目标识别信息,再去确定目标控件,能够提高识别效率和准确率,并减小计算量。
115.图5示意性示出了根据本公开实施例的确定目标控件句柄的流程图。
116.如图5所示,在操作s420从待操作界面确定出对应的目标控件包括操作s510~操作s530。目标识别信息包括预测坐标信息。
117.在操作s510,根据应用的至少一个控件句柄获得一一对应的至少一个坐标信息,其中,待操作界面为应用的任一个界面。
118.示例性地,应用即为自动化测试或自动化办公所针对的软件应用(窗体程序)。坐标信息以控件边界区域信息的形式存在,包含:控件坐标左上角点坐标、坐标右下角点坐标、控件的宽度与高度等。
119.在一些实施例中,应用的至少一个控件句柄可以指应用的全部控件句柄。
120.在另一些实施例中,应用的至少一个控件句柄可以指应用的部分控件句柄。具体而言,在根据应用的至少一个控件句柄获得一一对应的至少一个坐标信息之前,还包括:根据每个目标控件的控件类型和/或每个目标控件的显示文字,筛选出至少一个控件句柄。
121.例如根据控件的类型信息,如按钮类型,在当前应用系统内存中进行快速枚举,获得一组按钮类型的控件对象句柄,根据句柄可获取这些控件的坐标信息。又例如获取该组控件对象句柄中的控件对象的文本,根据显示文字(如确认按钮的“确认”文字)进行再次筛
选。可以理解,可以分别利用控件类型和显示文字独立筛选,可以先根据所有控件对象句柄筛选文字特征,再进行控件类型筛选。
122.根据本公开的实施例,预先筛选出应用的部分控件句柄,可以降低计算量,提高识别速度。
123.在操作s520,从至少一个坐标信息中确定出与预测坐标信息相匹配的目标坐标信息。
124.示例性地,可以通过预测坐标信息计算得到控件的预测中心点坐标,从操作s510至少一个坐标信息中,筛选出包含该预测中心点坐标的显示范围。
125.在操作s530,根据目标坐标信息确定部分或全部控件对应的目标控件句柄。
126.操作s530的结果可能为一个控件句柄,也可能为彼此范围覆盖的一组控件句柄。
127.因此,若从至少一个坐标信息中筛选出与预测坐标信息相匹配的唯一坐标信息,将该唯一坐标信息确定为目标坐标信息。
128.若从至少一个坐标信息中筛选出与预测坐标信息相匹配的至少两个坐标信息,根据至少两个坐标信息各自对应控件的显示面积确定出目标坐标信息。
129.由于同类控件之间仍可能存在视觉范围的覆盖关系,作为控件的中心位置,面积最小的控件位于视觉的最上层,所以控件中面积最小的控件,认定为目标对象,保留该控件对象句柄。
130.在一些实施例中,假如对应坐标无法找到匹配该类型的控件句柄,则仅保留坐标作为后续操作基础。
131.根据本公开的实施例,对比智能索图类型的自动化操作,不仅获取了目标控件的坐标信息,而且根据坐标信息进行匹配搜索,找到目标控件句柄,能够将坐标转化为可使用该类型控件的系统内置操作方法的系统控件对象。
132.在一些实施例中,在操作s530根据目标坐标信息确定部分或全部控件对应的目标控件句柄后,则可以根据目标控件句柄确定出对应的控件类型对象。根据部分或全部控件的控件对象类型,操作至少一个目标控件包括:调用每个目标控件句柄的控件对象类型接口进行操作。
133.示例性地,通过调用控件对象类型接口能够使用该类型控件的系统内置操作方法,对筛选后的系统句柄的控件对象进行操作。可以编程的形式获得可执行代码指令并发送至接口进行可操作属性的操作。例如文本控件的“清空”操作,是操作系统对文本这一类控件的通用有效操作(底层是一个内存消息类型)。
134.相关技术在最终确定了目标控件的坐标信息后,也仅为使用键盘鼠标对坐标位置进行模拟操作,无法操作控件的内置方法,例如对象是否可点击、是否禁用、文本信息等可读属性获取,文本的内容设置、列表的展开等可操作属性的操作,降低了操作的可靠性、可延展性。
135.本公开实施例可以对目标使用该类型控件的标准接口进行操作,例如对“文本框控件”的“文本内容设置”属性操作,而不是“键盘模拟输入”,提升了操作过程的稳定性,有效结合和人工智能视觉与传统模式的优势。
136.在一些实施例中,若未从至少一个坐标信息中确定出与预测坐标信息相匹配的目标坐标信息,操作s530对至少一个目标控件进行操作包括:根据预测坐标信息,对待操作界
面中对应位置的目标控件进行键盘和/或鼠标操作。
137.例如在待操作界面上显示的控件有对应的句柄,则认为其是标准控件。若没有对应的句柄,则认为其是非标准控件,则该情况下无法通过句柄获取其坐标信息。如果该位置为非标准控件无法转为系统控件,则以系统坐标的形式进行基本的键盘鼠标操作。
138.根据本公开的实施例,对标准控件和非标准控件采用不同的操作方法,即具有较高的可靠性和可延展性,又能够针对所有类型的目标控件顺利实现操作内容。
139.在一些实施例中,至少一个目标控件包括第一目标控件和第二目标控件,从待操作界面确定出至少一个目标控件包括依次确定出第一目标控件和第二目标控件,从待操作界面确定出第二目标控件包括:根据目标识别信息,以及第一目标控件和第二目标控件之间关联信息,确定出第二目标控件。
140.在进行同一待操作界面的多目标控件识别时,可以复用操作s320的第一预测结果,重复执行确定目标控件步骤,例如筛选目标识别信息和根据目标识别信息确定出对应的目标控件。在此基础上,还可以利用各个目标控件之间的关联信息进行识别。可以理解,至少一个目标控件不仅限于第一目标控件和第二目标控件,可以有任意数量的控件。
141.示例性地,关联信息可以包括坐标关联信息、功能关联信息或视觉关联信息等。参照图1,播放按钮1014、暂停按钮1015和结束按钮1016可以是收听音乐的三个不同功能按钮,它们在坐标上存在由左至右依次排序的关联,在功能上存在皆适用于收听音乐的功能关联。例如先识别出播放按钮1014,则可以根据播放按钮1014的视觉特征集合、句柄或坐标等来作为参照去识别暂停按钮1015和结束按钮1016。或者先识别出其中的两者,再参照该两者的视觉特征集合、句柄或坐标等来识别第三个按钮。
142.根据本公开的实施例,考虑第一目标控件和第二目标控件之间关联信息,能够排除干扰因素,提高第二目标控件的识别准确度和速度。
143.在一些实施例中,若存在两个以上的待操作界面,也可以引入界面之间的关联信息,或各个界面中不同控件之间的关联信息作为参照,进行后续的控件识别。
144.图6示意性示出了根据本公开实施例的自动化软件操作的流程图。
145.如图6所示,该实施例的自动化软件操作包括操作s601~操作s614。
146.在操作s601,获取训练样本数据图片,即训练截图集合。
147.在操作s602,按照控件类型、颜色、形状和纹理等视觉特征进行样本分类并标注视觉类型。
148.在操作s603,根据控件在截图中边界区域信息进行坐标标注,获得含边界坐标信息的标注样本。
149.在操作s604,使用标注后的样本进行ai(artificial intelligence,人工智能)训练。
150.在操作s605,训练完成后,获得推演用模型,即本公开实施例的控件检测模型。
151.在操作s606,将推演用模型转化为onnx模型,并部署在用于自动化操作或自动化办公的设备上。
152.在操作s607,预先根据自动化测试或自动化办公的目的进行编程,一方面确定操作流程,另一方面描述每个目标控件的对象视觉特征集合。
153.在操作s608,将待操作界面的截图输入至转化得到的onnx模型,直接在实施自动
化的受控设备上进行推演。并利用操作s607中预先确定的对象视觉特征集合获取视觉对象坐标。
154.在操作s609,将坐标转化为系统对象,即根据预测坐标信息确定待操作的系统控件。
155.在识别出部分或所有目标控件后,进行如下自动化操作。
156.在操作s610,如果通过控件句柄确定出,则是标准控件。
157.在操作s611,使用对应类型控件接口操作控件。
158.在操作s612,如果未通过控件句柄确定出,则是非标准控件。
159.在操作s613,模拟键盘鼠标操作控件。
160.在操作s614,完成控件操作。
161.依靠训练后的人工智能控件检测模型,使用时通过描述目标控件的对象视觉特征,就能定位位置,如以控件类型、颜色、文本内容进行描述:“提示框【警告】【红色】”,以控件类型、形状、文本内容进行描述:“按钮【圆形】【确认】”,以类型、文本内容进行描述:“输入框【姓名】”、“勾选框【同意】”等,可以显著降低自动化编程的门槛和开发调试成本。对比传统的自动化操作中对象的识别方法,采用视觉特征比系统标识特征描述,具备更好的执行环境的稳定性和适用范围。对比传统的以图搜图模式具备更好的性能、准确率、智能可扩展性。
162.因此,借助人工智能视觉技术,并结合系统对象结构化操作方法,改变传统的自动化测试及办公自动化过程中自动化操作的编码及应用模式,使得编码成本更低、对象识别适应能力强。
163.基于上述控件操作方法和控件检测模型的训练方法,本公开还提供了一种控件操作装置和一种控件检测模型的训练装置。以下将结合图7和图8对该装置进行详细描述。
164.图7示意性示出了根据本公开实施例的控件操作装置的结构框图。
165.如图7所示,该实施例的控件操作装置700包括第一输入模块710、第一预测模块720、目标确定模块730和控件操作模块740。
166.第一输入模块710可以执行操作s310,用于将待操作界面的截图作为控件检测模型的输入,其中,待操作界面显示有n个第一控件,控件检测模型通过m个第二控件的视觉特征集合训练获得,视觉特征集合包括人类通过视觉感测到的至少一个特征,m和n分别为大于或等于1的整数。
167.第一预测模块720可以执行操作s320,用于获得控件检测模型根据n个第一控件的视觉特征集合输出的第一预测结果,其中,第一预测结果包括检测到的每个第一控件的识别信息。
168.目标确定模块730可以执行操作s330,用于根据每个第一控件的识别信息,从待操作界面确定出至少一个目标控件。
169.根据本公开的实施例,目标确定模块730可以执行操作s410~操作s420,操作s510~操作s530,在此不做赘述。
170.根据本公开的实施例,操作s520包括:若从至少一个坐标信息中筛选出与预测坐标信息相匹配的唯一坐标信息,将该唯一坐标信息确定为目标坐标信息。若从至少一个坐标信息中筛选出与预测坐标信息相匹配的至少两个坐标信息,根据至少两个坐标信息各自
对应控件的显示面积确定出目标坐标信息。
171.根据本公开的实施例,控件操作装置700可以包括筛选模块,该模块用于在根据应用的至少一个控件句柄获得一一对应的至少一个坐标信息之前,根据每个目标控件的控件类型和/或每个目标控件的显示文字,筛选出至少一个控件句柄。
172.根据本公开的实施例,控件操作装置700可以包括预编程模块,该模块用于预先确定每个目标控件的对象视觉特征集合,对象视觉特征集合包括控件类型特征、颜色特征、形状特征、纹理特征、文字特征和空间关系特征中至少一个。
173.控件操作模块740可以执行操作s340,用于对至少一个目标控件进行操作。
174.根据本公开的实施例,控件操作模块740还可以用于根据第一预测结果,确定至少一个目标控件中部分或全部控件的控件对象类型;根据部分或全部控件的控件对象类型,操作至少一个目标控件。
175.根据本公开的实施例,控件操作模块740还可以用于调用每个目标控件句柄的控件对象类型接口进行操作。若未从至少一个坐标信息中确定出与预测坐标信息相匹配的目标坐标信息,控件操作模块740还可以用于根据预测坐标信息,对待操作界面中对应位置的目标控件进行键盘和/或鼠标操作。
176.图8示意性示出了根据本公开实施例的控件检测模型的训练装置的结构框图。
177.如图8所示,该实施例的训练装置800包括第二输入模块810、第二预测模块820、损失计算模块830和模型更新模块840。
178.第二输入模块810可以执行操作s210,用于将包括m个第二控件的训练截图集合输入至控件检测模型,m为大于或等于1的整数。
179.第二预测模块820可以执行操作s220,用于获得控件检测模型根据m个第二控件的视觉特征集合输出的第二预测结果,其中,视觉特征集合包括人类通过视觉感测到的至少一个特征,第二预测结果包括检测到的每个第二控件的识别信息,识别信息包括预测视觉类型。
180.损失计算模块830可以执行操作s230,用于根据每个第二控件的预测视觉类型和标签视觉类型获得分类损失。
181.模型更新模块840可以执行操作s240,用于根据分类损失更新控件检测模型的参数。
182.根据本公开的实施例,训练装置800还可以包括类型标注模块,该模块用于根据每个第二控件的视觉特征集合确定对应的标签视觉类型。
183.需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
184.根据本公开的实施例,控件操作装置700或训练装置800中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
185.根据本公开的实施例,控件操作装置700或训练装置800中的至少一个模块可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上
系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,控件操作装置700或训练装置800中的至少一个模块可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
186.图9示意性示出了根据本公开实施例的适于实现控件操作方法或训练方法的电子设备的方框图。
187.如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
188.在ram 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、rom 902以及ram 903通过总线904彼此相连。处理器901通过执行rom 902和/或ram 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除rom 902和ram 903以外的一个或多个存储器中。处理器901也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
189.根据本公开的实施例,电子设备900还可以包括输入/输出(i/o)接口905,输入/输出(i/o)接口905也连接至总线904。电子设备900还可以包括连接至i/o接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906。包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907。包括硬盘等的存储部分908。以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
190.本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的。也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
191.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 902和/或ram 903和/或rom 902和ram 903以外的一个或多个存储器。
192.本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,
该程序代码用于使计算机系统实现本公开实施例所提供的方法。
193.在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
194.在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
195.在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
196.根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c++,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
197.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
198.本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
199.以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1