南京大学学报(自然科学), 2022, 58(6): 1012-1019 doi: 10.13232/j.cnki.jnju.2022.06.009

基于目标检测的图形用户界面控件识别方法

林灏昶1, 秦云川,2, 蔡宇辉2, 李肯立2, 唐卓2

1.湖南大学电气与信息工程学院,长沙,410082

2.湖南大学信息科学与工程学院,长沙,410082

Graphical user interface widget extraction based on object detection

Lin Haochang1, Qin Yunchuan,2, Cai Yuhui2, Li Kenli2, Tang Zhuo2

1.College of Electrical and Information Engineering, Hunan University, Changsha, 410082, China

2.College of Computer Science and Electronic Engineering, Hunan University, Changsha, 410082, China

通讯作者: E⁃mail:qinyunchuan@hnu.edu.cn

收稿日期: 2022-07-04  

基金资助: 国家重点研发项目.  2020YFB2104005
湖南省高新技术产业科技创新引领计划科技攻关项目.  2020GK2037

Received: 2022-07-04  

摘要

传统机器人流程自动化(Robot Process Automation,RPA)主要使用操作系统和应用程序提供的接口获取图形用户界面(Graphical User Interface,GUI)控件,受操作系统和应用程序接口限制,但一些系统,如Linux,不提供获取控件信息的接口.提出一种基于神经网络对图形界面控件进行识别的方法,利用目标检测模型提取图形用户界面控件特征,在不使用操作系统接口的前提下识别图形用户界面内控件类别和几何信息,减少RPA对于系统与程序接口的依赖.同时,针对桌面端图形用户界面数据集缺失的问题,提出一种针对RPA领域桌面端图形用户界面目标检测数据集的生成方法.在该图形用户界面数据集上使用各类目标检测模型进行测试,结果显示,常用目标检测模型在识别用户界面控件的类别和几何信息时均能获得92%以上的准确率.

关键词: 目标检测 ; 机器人流程自动化 ; 深度学习 ; 图形用户界面自动生成 ; 自动化测试

Abstract

Traditional RPA (Robot Process Automation) extracts GUI (Graphical User Interface) widget category and location information through the interface provided by operating system or application programs. However,the application scope of RPA is limited by operating system and application program interfaces. For example,some operation systems,such as Linux,have inadequate extraction interface access to widget category and location information. This paper proposes a method to extract GUI widget features based on neural network and extract the widget information by object detection. Object detection can fetch and understand the widget in desktop platform feature then further extract the widget category and location information without using any operation system or application program interface,which reduce the dependence of RPA on the operation system and application program interface. Meanwhile,aiming at the lack of the user interface database in desktop platform,an auto database generation method for target detection in RPA field is also proposed. The object detection models are tested on this user interface database in desktop platform. Experimental results show that the object detection models can obtain more than 92% mAP in extracting widget category and location information in desktop platform.

Keywords: object detection ; robotic process automation ; deep learning ; GUI auto⁃generation ; test automation

PDF (798KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

林灏昶, 秦云川, 蔡宇辉, 李肯立, 唐卓. 基于目标检测的图形用户界面控件识别方法. 南京大学学报(自然科学)[J], 2022, 58(6): 1012-1019 doi:10.13232/j.cnki.jnju.2022.06.009

Lin Haochang, Qin Yunchuan, Cai Yuhui, Li Kenli, Tang Zhuo. Graphical user interface widget extraction based on object detection. Journal of nanjing University[J], 2022, 58(6): 1012-1019 doi:10.13232/j.cnki.jnju.2022.06.009

RPA(Robot Process Automation)技术利用人工智能手段模拟键盘鼠标输入,对一些高频、规则清晰的活动进行自动处理,例如读取账单、检查文件、单据申报项目填写等,它需要利用操作系统接口获取图形用户界面控件元素的类别信息与几何信息完成自动化操作.例如,Haverty1通过Windows系统的UI自动化(UI Automation,UIA)技术识别控件元素信息,实现RPA自动化操作测试框架.但该接口的应用范围仅限于Windows系统,而我国自主可控操作系统多数基于Linux内核开发,Linux X11接口不提供获取用户界面窗口内部控件信息的接口,所以无法获取用户界面窗口内部的控件信息.Bruns et al2与羊昌燕和邓印凯3使用Selenium框架获取Web界面控件信息,识别网页文档对象模型(Document Object Model,DOM)元素信息,获取对应控件的几何与类型信息.虽然Selenium框架具有跨平台特性,但只限用于浏览器,不能用于普通应用程序.在用户界面统一固定的工程控制领域,可以利用OCR (Optical Character Recognition)技术获取用户界面信息,很多用户的界面元素相对固定,一些学者采用传统的计算机视觉的方法进行元素识别,如Moran et al4使用Canny边缘算法识别用户界面控件,但该方式的应用范围非常局限,需要RPA系统提前根据用户控件特征设计识别算法,系统泛化能力很差.徐蔚然和郭军5结合OCR技术实现了银行票据录入的RPA方法,朱国栋等6也结合OCR技术实现了机场气象观测业务监控RPA系统.但RPA的核心应用场景为用户界面没有固定样式的桌面型应用,界面复杂多变,OCR技术也难以满足需求,因此,传统RPA技术受应用程序或操作系统接口的影响,应用范围存在很大局限性.

随着人工神经网络技术成为研究热点,近年来目标检测技术快速发展,利用人工神经网络方法识别图形用户界面中的目标控件成为RPA技术发展的新趋势.例如,Moran et al4提出基于移动端Andorid用户界面数据库ReDraw.ReDraw数据集由两个数据文件所构成,一个是真实的用户界面截屏数据,另一个是扩展数据的合成数据集,数据集内每个控件类别都至少有5000个样本.Deka et al7提出一种基于移动端用户界面数据集RICO.对于这两个数据集,Liu et al8使用卷积神经网络来检测移动端用户界面控件元素的位置,Chen et al9则对移动端图形用户界面的新旧检测方式进行了对比,Fu et al10也提出一种基于NLP (Natural Language Processing)模型理解移动端用户界面的方式,但这些基于神经网络技术的研究主要集中在移动端应用.由于传统应用软件集中于桌面领域,所以RPA系统的关键应用场景也是桌面领域.与移动端图形用户界面数据相比,桌面端图形用户界面数据存在以下特点:

(1)因屏幕尺寸限制,移动端图形用户界面布局较简单,信息分布普遍为纵向维度.而桌面端图形用户界面信息分布可以是纵向方向,也可以是横向,信息密度相对较高.

(2)移动端的图形用户界面窗口尺寸比较固定,而桌面端图形用户界面窗口尺寸更加多变自由.

(3)移动端图形用户界面布局为单一窗口,而桌面端图形用户界面可能会存在窗口重叠.

可见,目前移动端图形用户界面数据集不适合桌面端目标检测任务.

针对传统RPA技术依赖于系统接口与操作系统接口的缺点以及桌面端图形用户界面数据集缺失的问题,本文的主要贡献如下:

(1)提出一种桌面端用于目标检测的图形用户界面数据集生成方法.

(2)提出一种基于目标检测模型识别图形用户界面图片控件元素的方法.

1 桌面端图形用户界面目标检测数据集生成算法

RPA技术具体的使用流程如下:首先,用户选择对应的应用程序;然后,高亮选择应用程序对应的控件,记录控件类型与位置信息,对控件进行相应的处理,记录流程处理步骤;最后,高效重复地执行处理步骤,主要处理的控件以按钮、输入框、文件列表为主.桌面端图形用户界面中常见的控件元素有按钮(图1a)、输入框(图1b)、文件列表(图1c)、单行输入框(图1d)四种.

图1

图1   控件元素实例

Fig.1   The examples of UI element


桌面端图形用户界面数据集的生成算法由如下几个步骤组成,其流程如图2所示:

图2

图2   桌面端用于目标检测的界面数据生成方法流程图

Fig.2   Flowchart of auto generation of user interface dataset at desktop platform for target detection


(1)运行随机生成用户界面程序算法函数,生成图形用户界面程序源码.

(2)自动编译,运行步骤(1)生成的图形用户界面程序源码,生成图形用户界面窗口.

(3)对步骤(2)生成的图形用户界面窗口自动截屏,获取桌面端图形用户界面图像数据.

(4)解析步骤(1)生成的图形用户界面程序源码,提取图形用户界面程序源码内控件元素类型信息与几何信息,获取桌面端图形用户界面图像标注数据.

(5)映射合并步骤(3)获取的桌面端图形用户界面图像数据与步骤(4)获取的桌面端图形用户界面图像标注数据,获取桌面端用于目标检测的界面数据集.

2 随机生成图形用户界面程序算法

桌面端图形用户界面数据集的生成算法的步骤(1)使用随机生成图形用户界面程序算法生成图形用户界面源码.首先,通过系统接口获取屏幕尺寸,在该尺寸范围内随机生成用户窗口界面的尺寸(即图形用户界面分辨率长度与宽度);然后随机生成分区数量K,将图形用户界面划分为K个分区,根据分区数量在一定范围内随机生成各个分区的分区起始坐标与分区分辨率长宽;再随机生成控件画布数量C,将分区划分为C个控件画布,生成控件画布的起始坐标与分区分辨率长宽;最后,随机生成控件类型,在控件画布范围内生成控件元素的起始坐标和控件元素的分辨率长宽.

具体过程如下所示.

算法 控件元素生成算法

输入:屏幕尺寸screenWidth,screenHeight

输出:控件元素类型、控件元素起始坐标和控件元素分辨率长宽

1.获取屏幕尺寸大小screenWidthscreenHeight

2.获取窗口宽度windowWidth和窗口高度windowHeight

随机图形用户界面宽度:

windowWidth0.5×screenWidth,screenWidth

随机图形用户界面高度:

windowHeight0.5×screenHeight,screenHeight

3.K随机分区数量

4.根据K的数量确定分区面积

5.for i=0 to K:∥将图形用户界面划分为K个分区

6. 随机分区起始坐标与分区尺寸宽度和高度

7.P随机控件画布总数量

8.c随机控件画布行数量

9.r控件画布列数量,r=Pc

10. for i=0 to c

11. for j=0 to r

12. canvas_xij,canvas_yij获取第i行第j列的控件画布起始坐标

13. canvas_Wij,canvas_Hij获取第i行第j列的控件画布尺寸宽度与尺寸高度

14. widgettype随机控件元素类型

15. widget_xij,widget_yij获取第i行第j列的控件元素起始坐标

16. widget_Wij,widget_Hij获取第i行第j列的控件元素尺寸宽度与尺寸高度

17. end for

18. end for

19.end for

算法的时间复杂度为On3.算法的目的是模拟真实情况的图形用户界面,其实现的关键在于图形用户界面划分K个分区,每一个分区所占的面积与区间之间的相互大小.如果K过大,出现过多分区,就难以控制分区间的控件元素数量与几何位置,无法很好地模拟真实情况下图形用户界面的情况.故需要对K的值进行以下约束.

首先,计算屏幕面积:

screenArea=screenWidth×screenHeight

其次,计算图形用户界面窗口面积:

windowArea=windowWidth×windowHeight

根据windowAreascreenArea的大小比值,对K的取值范围进行约束.

3 基于目标检测识别图形用户界面图片控件元素的方法

目前目标检测模型分为单阶段模型与双阶段模型两类11-14.双阶段模型需要先生成样本框,再对样本框进行分类.常用的双阶段模型有RCNN (Regions with CNN Features)15,Fast⁃RCNN16-17等;单阶段模型直接回归物体的类别概率和位置坐标值,常用的单阶段模型有SSD (Single Shot MultiBox Detector),YOLOv3,YOLOv4等.相对地,单阶段模型识别速度快于双阶段模型识别速度.

3.1 SSD模型

SSD模型的结构主要由VGG1618网络与六个辅助卷积层构成19.实际上,图形用户界面内的控件元素尺寸大小不一,差别较大,比如控件元素文件列表的尺寸可能就是控件元素按钮的尺寸的10~20倍.SSD模型最大的特点是可以进行多尺寸特征预测,意味着即使是小尺寸的控件元素也能有较好的识别效果.

3.2 YOLOv3模型

YOLOv3是YOLO20系列模型的第三代21,其结构主要由DarkNet⁃53和层级金字塔网络(Feature Pyramid Networks,FPN)构成22.FPN融合了高低维度特征的特征提取方法,保留了低高级控件的元素语义,可以兼顾不同尺寸的控件元素.

3.3 YOLOv4模型

YOLOv4模型的结构是在YOLOv3模型的基础上改进得来的,在保证识别速度的同时,大幅提升检测精度.主要的改进点:首先,YOLOv4以CSPDarkNet53为骨架网路,CSPDarkNet53的结构是在DarkNet⁃53的基础上加入跨级连接(Cross Stage Partial,CSP)结构23,CSP结构可以保留控件的高维与低维特征,增强模型的学习能力;其次,YOLOv4引入金字塔池化(Spatial Pyramid Pooling,SPP)24与路径聚合网络(Path Aggregation Network,PA⁃Net)25作为模型颈部,进一步保留高低层特征之间的相关性.

4 实验设置

4.1 实验平台

实验计算机配置为Intel®Xeon®Sliver 4210R CPU@2.40 GHz,内存64 G,显卡NVIDIA TESLA T4.实验环境为Ubuntu 16.00桌面端系统,Docker 19.03.8,python 3.7,Paddle 2.0.0,cuda 10.2,cudnn 7.

4.2 实验数据集

实验数据集参考ReDraw数据集,由两部分组成,第一部分是真实用户界面截屏,第二部分是扩展数据集,而且在每个数据集中,控件数量都保证在5000个以上.实验数据集使用节2的方法生成桌面端用于目标检测的图形用户界面数据集(图3).共有四个数据集,分别为数据集2000、数据集3000、数据集4000、数据集5000,代表数据集中分别有2000,3000,4000和5000张训练数据.数据集中的控件总数目如表1所示.数据集分训练集与测试集两部分,按8∶2的比例划分.数据集包含的控件数据类型为textEdit(输入框)、lineEdit(单行输入框)、Button(按钮)、fileList(文件列表),每一行表示数据集中对应控件的数量.

图3

图3   本文数据集图像的样本示例

Fig.3   Image examples of dataset used in this paper


表1   控件在数据集中的数量

Table 1  The number of widgets in databases

数据集输入框单行输入框按钮文件列表
20007689660565797013
3000117359696973110701
400013993120081213813286
500016280142871451415928

新窗口打开| 下载CSV


图4所示,本文数据集中平均每张图像控件数量比ReDraw数据集更丰富;和桌面端用户界面相比,移动端用户界面窗口的尺寸比较小,对应显示的控件数量也较少,符合桌面端用户界面的特点.

图4

图4   本文数据集平均每张数据所含控件数

Fig.4   The average number of widgets per image in this paper


4.3 实验参数

输入尺寸为W×L的JPG图像,W为输入图像的宽度,L为输入图像的高度.在docker部署的集群上进行训练,Batch size设置为12,Epoch设置为190,学习率设置为0.0001.

4.4 实验指标分析

在目标检测领域,通常使用AP (Average Precision)判断该单一目标检测的预测精度.对于多目标检测模型,通常使用mAP (mean Average Precision)判断多类别目标检测结果的平局精度.由于图形用户界面控件的类别较多,使用目标检测模型识别控件是一种多分类目标检测任务,使用mAP作为衡量指标更合适.其中,预测框IoU0.5时所有类别组件的mAP记为mAP@0.5,预测框IoU0.5,0.95的所有类别组件的mAP记为mAP@0.5∶0.95.

5 实验结果

5.1 不同数据集对比

使用目标检测模型SSD,YOLOv3,YOLOv4分别在数据集2000、数据集3000、数据集4000、数据集5000上进行对比实验.

表2展现了目标检测模型分别在数据集2000、数据集3000、数据集4000与数据集5000上的实验效果.SSD与YOLOv3的识别效果受数据集数量变动的影响较小,由表可见,随着数据集的数据量规模的增加,SSD和YOLOv3的识别效果保持稳定,而YOLOv4随着训练集规模的上升,其识别效果也上升.不同模型之间,SSD的识别效果最差,mAP=93.04%;YOLOv3的识别率比SSD模型稍好,mAP=94.03%;YOLOv4的识别效果最好,mAP达到97.79%.YOLOv4模型已经基本达到了控件识别的准确率要求.

表2   在不同数据集上目标检测模型的测试结果

Table 2  Experimental results of object detection by different algorithms on different datasets

数据量模型mAP@0.5mAP@0.5∶0.95
2000SSD92.1273.21
YOLOv393.2776.41
YOLOv492.0978.92
3000SSD92.6774.53
YOLOv392.6776.05
YOLOv494.9580.23
4000SSD92.7674.66
YOLOv393.0877.13
YOLOv494.0377.77
5000SSD93.0474.62
YOLOv395.8480.03
YOLOv497.7981.44

新窗口打开| 下载CSV


5.2 不同类别之间的比较

对各种不同类别的控件的预测准确率进行比较,对比结果如表3所示.对于输入框控件、单行输入框控件、按钮控件和文件列表控件,YOLOv4的识别效果最好,YOLOv3次之,最后是SSD.实验结果表明,YOLOv4的识别效果最好.

表3   所有类别组件的预测准确率

Table 3  mAP of widget types on different modules

模型

SSD

AP@0.5

YOLOv3

AP@0.5

YOLOv4

AP@0.5

输入框92.3194.0597.76
单行输入框93.2195.2196.81
按钮91.0493.2197.95
文件列表93.1292.5696.31

新窗口打开| 下载CSV


5.3 模型的实际效果

模型测试采用真实的图形用户界面截图,对比测试相关模型的泛化性能与识别性能,使用真实的学生系统登录窗口截屏作为测试数据集,实验结果如图5所示.由图可见,SSD模型对控件类型的识别效果最差,只识别出一个输入框和按钮,但对于控件的几何位置识别较好;YOLOv3模型基本上可以识别全部控件类型,但对于控件几何位置的识别尚有欠缺,位置还有所出入;YOLOv4模型的识别效果最好,能完整地识别控件的类型和几何位置.

图5

图5   不同模型在真实界面图片的效果

Fig.5   Results of difference modules in real GUI image


6 结论

本文提出一种将深度学习检测算法与RPA技术相结合的方法,使用目标检测模型进行桌面端用户界面控件识别.

首先,提出一种自动生成桌面端图形用户界面数据集的方法,利用该方法生成桌面端图形用户界面数据集;然后,使用该数据集对目标检测模型进行训练,获取用于控件识别的目标检测模型;最后,使用实际图形用户界面对相应的目标检测模型进行评测.实验结果表明,目标检测模型可以识别图形用户界面,可以有效地解决传统RPA技术依赖于操作系统接口和应用程序接口获取控件的缺点.

未来拟从以下两个方向改进本文的方法:对模型进行剪枝参数优化,缩短预测时间;探索更多目标检测模型.

此外,在本文方法的基础上,还将基于随机模型生成技术,探索更加复杂但高效的桌面端目标检测界面生成方法,以提高图形用户界面的真实性和提升数据集的多样性 .

参考文献

Haverty R.

New accessibility model for Microsoft Windows and cross platform development

ACM SIGACCESS Accessibility and Computing,2005(82):11-17.

[本文引用: 1]

Bruns AKornstadt AWichmann D.

Web application tests with selenium

IEEE Software,200926(5):88-91.

[本文引用: 1]

羊昌燕邓印凯.

基于Selenium的自动化测试框架设计

信息技术与信息化,2021(10):65-68.

[本文引用: 1]

Moran KBernal⁃Cárdenas CCurcio Met al.

Machine learning⁃based prototyping of graphical user interfaces for mobile apps

IEEE Transactions on Software Engineering,202046(2):196-221.

[本文引用: 2]

徐蔚然郭军.

手写金融汉字识别中的可信度估计

电子学报,200533(10):1879-1882.

[本文引用: 1]

Xu W RGuo J.

Confidence evaluation for handwritten Chinese financial character recognition

Acta Electronica Sinica,200533(10):1879-1882.

[本文引用: 1]

朱国栋刘晓明杨乐,.

基于OCR技术的机场气象观测业务监控平台设计与实现

民航学报,20226(2):74-77.

[本文引用: 1]

Zhu G DLiu X MYang Let al.

Design and implementation of AWOS monitoring platform based on OCR technology

Journal of Civil Aviation,20226(2):74-77.

[本文引用: 1]

Deka BHuang Z FFranzen Cet al.

Rico:A mobile app dataset for building data⁃driven design applications

Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology. Québec City,CanadaACM2017845-854.

[本文引用: 1]

Liu T FCraft MSitu Jet al.

Learning design semantics for mobile apps

Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology. Berlin,GermanyACM2018569-579.

[本文引用: 1]

Chen J SXie M LXing Z Cet al.

Object detection for graphical user interface:Old fashioned or deep learning or a combination?

2020,arXiv:.

[本文引用: 1]

Fu J WZhang X YWang Y Wet al.

Understanding mobile GUI:From pixel⁃words to screen⁃sentences

2021,arXiv:.

[本文引用: 1]

张顺龚怡宏王进军.

深度卷积神经网络的发展及其在计算机视觉领域的应用

计算机学报,201942(3):453-482.

[本文引用: 1]

Zhang SGong Y HWang J J.

The development of deep convolution neural network and its applications on computer vision

Chinese Journal of Computers,201942(3):453-482.

[本文引用: 1]

罗会兰陈鸿坤.

基于深度学习的目标检测研究综述

电子学报,202048(6):1230-1239.

Luo H LChen H K.

Survey of object detection based on deep learning

Acta Electronica Sinica,202048(6):1230-1239.

罗会兰袁璞童康.

基于深度学习的显著性目标检测方法综述

电子学报,202149(7):1417-1427.

Luo H LYuan PTong K.

Review of the methods for salient object detection based on deep learning

Acta Electronica Sinica,202149(7):1417-1427.

陈耀东李仁发.

一种面向目标检测的部件学习方法

计算机研究与发展,201350(9):1902-1913.

[本文引用: 1]

Chen Y DLi R F.

Learning parts for object detection

Journal of Computer Research and Development,201350(9):1902-1913.

[本文引用: 1]

Girshick RDonahue JDarrell Tet al.

Rich feature hierarchies for accurate object detection and semantic segmentation

Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus,OH,USAIEEE2014580-587.

[本文引用: 1]

黄继鹏史颖欢高阳.

面向小目标的多尺度Faster⁃RCNN检测算法

计算机研究与发展,201956(2):319-327.

[本文引用: 1]

Huang J PShi Y HGao Y.

Multi⁃scale faster⁃RCNN algorithm for small object detection

Journal of Computer Research and Development,201956(2):319-327.

[本文引用: 1]

Girshick R.

Fast R⁃CNN

Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago,ChileIEEE20151440-1448.

[本文引用: 1]

Simonyan KZisserman A.

Very deep convolutional networks for large⁃scale image recognition

2014,arXiv:.

[本文引用: 1]

Liu WAnguelov DErhan Det al.

SSD:Single shot MultiBox detector

European Conference on Computer Vision. Springer Berlin Heidelberg,201621-37.

[本文引用: 1]

Redmon JDivvala SGirshick Ret al.

You only look once

:Unified,real⁃time object detection∥Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas,NV,USAIEEE2016779-788.

[本文引用: 1]

Redmon JFarhadi A.

YOLOv3:An incremental improvement

2018,arXiv:.

[本文引用: 1]

Lin T YDollár PGirshick Ret al.

Feature pyramid networks for object detection

Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu,HI,USAIEEE2017936-944.

[本文引用: 1]

Wang C YLiao H Y MWu Y Het al.

CSPNet:A new backbone that can enhance learning capability of CNN

Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops. Seattle,WA,USAIEEE20201571-1580.

[本文引用: 1]

He K MZhang X YRen S Qet al.

Spatial pyramid pooling in deep convolutional networks for visual recognition

IEEE Transactions on Pattern Analysis and Machine Intelligence,201537(9):1904-1916.

[本文引用: 1]

Liu SQi LQin H Fet al.

Path aggregation network for instance segmentation

Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City,UT,USAIEEE20188759-8768.

[本文引用: 1]

/