背景
在移动端的UI自动化测试过程中,机器可能会遇到在代码设计流程之外的页面状态,常见的有活动弹窗和页面报错。活动弹窗一般出现在页面启动过程,由活动内容和取消按钮组成,页面的测试过程需要点击取消活动弹窗。我们想让机器能以接近人理解的方式,“看到”获得弹窗自动点击取消按钮完成处理过程,这样会比基于驱动XML数据的操作元素ID方法更通用和稳定。活动弹窗取消按钮的识别和定位在机器视觉领域属于物体识别和定位的问题。因为这个场景没有现成的标注数据,手工设计特征成本比较高,所以我们基于R-CNN模型设计了适用于业务需求的神经网络模型。
模型设计
训练数据少会使模型容易过拟合,我们在准备数据的时候做了简单的处理:
模型计算之前进行图像特征预处理
使用数据增强来生成更多的训练数据
其中图像特征预处理相当于让机器理解一些“常识”知识,预先给机器一些经验,比如训练数据的前景提取,定义候选框的大小和形状。参考迁移学习的思想,有时候我们帮助机器提前学习好部分知识,在这个基础上去学习更新参数,可以给模型的表现带来很好的收益。
然后另一个方法是控制模型的表征能力,包括只使用3层Convolution-maxpooling提取图像特征,在全连接层加了L2 正则,改善训练过拟合的情况。训练后模型预测的Precision和Recall在90%以上,1080p分辨率的输入图像计算时间需要10s,主要计算时间在Selective Search生成候选框的部分。候选框的生成没有使用Faster-RCNN的RPN是因为Selective Search的实施更简单,在没有高质量和足够数量的训练数据条件下更适合当前的场景。
活动弹窗识别和定位
相关链接
使用机器学习R-CNN模型的活动弹窗识别定位算法:Vision