通过图标检测提高移动应用程序的可访问性

语音访问使用户能够解放双手,仅使用口头命令即可控制 Android 设备。为了正常运行,它需要屏幕上的用户界面 (UI) 元素具有可靠的辅助功能标签,这些标签通过辅助功能树提供给操作系统的辅助功能服务。不幸的是,在许多应用中,UI 元素(例如图像和图标)并不总是有足够的标签,从而降低了语音访问的可用性。

1729243434768.jpg

Voice Access 应用从视图层次结构中提取元素,以本地化和注释各种 UI 元素。它可以为具有明确内容描述的元素提供精确描述。另一方面,缺少内容描述可能会导致许多无法识别的元素,从而削弱 Voice Access 与某些应用配合使用的能力。

解决这一难题需要一个能够仅使用屏幕上显示的像素值自动检测图标的系统,无论图标是否已赋予合适的可访问性标签。关于此主题的少量研究通常使用分类器,有时结合语言模型来推断 UI 元素的类别和属性。但是,这些分类器仍然依赖可访问性树来获取 UI 元素的边界框,并且在不存在合适的标签时会失败。

这里我们介绍 IconNet,这是一种基于视觉的物体检测模型,可以自动检测屏幕上的图标,且与所用应用程序的底层结构无关,该模型是最新版本 Voice Access 的一部分。仅基于 UI 屏幕截图,IconNet 就可以检测 31 种不同的图标类型(很快将扩展到 70 多种)。IconNet 针对移动环境进行了优化,可在设备上运行,体积小巧,推理时间快,可实现无缝的用户体验。当前的 IconNet 模型在 Pixel 3A 上以 9 FPS 的速度运行时, 平均精度(mAP) 达到 94.2%。

检测屏幕截图中的图标

从技术角度来看,检测应用屏幕上的图标的问题类似于传统的对象检测,因为模型会用位置和大小标记各个元素。但在其他方面,两者截然不同。图标通常是小物体,具有相对基本的几何形状和有限的颜色范围,而应用屏幕与自然图像有很大不同,因为它们更具结构性和几何性。

为 Voice Access 开发设备端 UI 元素检测器面临的一个重大挑战是,它必须能够在具有各种性能能力的各种手机上运行,同时保护用户的隐私。为了获得快速的用户体验,需要具有低推理延迟的轻量级模型。由于 Voice Access 需要使用标签来响应用户的话语(例如“点击相机”或“显示标签”),因此推理时间需要很短(在 Pixel 3A 上小于 150 毫秒),模型大小小于 10 MB。

图标网

IconNet 基于新颖的CenterNet架构,该架构从输入图像中提取特征,然后预测适当的边界框中心和大小(以热图的形式)。CenterNet 特别适合于此,因为 UI 元素由简单、对称的几何形状组成,因此比自然图像更容易识别它们的中心。使用的总损失是图标大小的标准L1 损失和中心预测的修改后的CornerNet Focal 损失的组合,后者解决了常见图标(例如,向后箭头、菜单、更多和星号)与代表性不足的图标(结束通话、删除、启动应用程序等)之间的图标类别不平衡问题。

在试验了多个主干(MobileNet、ResNet、UNet 等)之后,我们选择了最有前景的服务器端架构 — Hourglass — 作为设计专门用于图标和 UI 元素检测的主干的起点。虽然这种架构非常适合服务器端模型,但由于其规模大且推理时间慢,普通的 Hourglass 主干不适用于在移动设备上运行的模型。我们将设备上的网络设计限制为单个堆栈,并大幅减少了主干的宽度。此外,由于图标检测依赖于更多的局部特征(与真实对象相比),我们可以进一步减少主干的深度而不会对性能产生不利影响。消融研究让我们确信跳过连接和高分辨率特征的重要性。例如,修剪最后一层的跳过连接会使 mAP 降低 1.5%,而从最后一层和倒数第二层中删除此类连接会导致 mAP 下降 3.5%。

1729243407639.jpg

IconNet 分析屏幕像素并通过生成热图来识别图标的中心,热图提供有关屏幕上不同类型图标的位置和类型的精确信息。这使 Voice Access 用户能够通过名称来引用这些元素(例如,“点击菜单”)。

模型改进

选定主干架构后,我们使用神经架构搜索(NAS) 探索网络架构的变化,并找到一组最佳的训练和模型参数,以平衡模型性能 (mAP) 和延迟 (FLOP)。此外,我们使用细粒度随机架构搜索(FiGS) 进一步优化主干设计。FiGS 是一种可微分架构搜索技术,通过修剪候选架构并丢弃不必要的连接来发现稀疏结构。这项技术使我们能够在不损失性能的情况下将模型大小减少 20%,在 mAP 仅下降 0.3% 的情况下将模型大小减少 50%。

提高训练数据集的质量对提升模型性能也发挥了重要作用。我们收集并标记了超过 70 万张屏幕截图,在此过程中,我们通过使用启发式和辅助模型来识别罕见图标,从而简化了数据收集。我们还利用数据增强技术,用不常见的图标丰富现有屏幕截图。

为了缩短推理时间,我们修改了模型,使其能够使用神经网络 API (NNAPI)在许多手机上可用的各种Qualcomm DSP上运行。为此,我们将模型转换为使用 8 位整数量化,这带来了模型尺寸减小的额外好处。经过一些实验,我们使用量化感知训练来量化模型,同时匹配服务器端浮点模型的性能。与未量化模型相比,量化模型的速度提高了 6 倍(700 毫秒 vs 110 毫秒),尺寸缩小了 50%,而 mAP 仅损失约 0.5%。

结果

我们使用传统的对象检测指标(例如 mAP)来衡量模型性能。此外,为了更好地捕捉语音控制用户操作的用例,我们定义了一个修改版的假阳性 (FP) 检测,其中我们对屏幕上存在的图标类的更多错误检测进行惩罚。为了将检测结果与地面实况进行比较,我们使用了感兴趣区域中心(CIROI),这是我们为这项工作开发的另一个指标,当检测到的边界框的中心位于地面实况边界框内时,它会返回正匹配。这更好地捕捉了语音访问操作模式,其中通过点击感兴趣的 UI 元素区域中的任何位置来执行操作。

我们将 IconNet 模型与其他各种移动兼容物体检测器进行了比较,包括MobileNetEdgeTPU和SSD MobileNet v2。实验表明,对于固定延迟,IconNet 在我们的内部评估集上的 mAP@CIROI 方面优于其他模型。

模型   地图@CIROI

IconNet(沙漏)   96%

IconNet(HRNet)   89%

MobilenetEdgeTPU(AutoML)   91%

SSD 移动网络 v2   88%

在考虑量化模型和固定延迟预算模型时,IconNet 的性能优势仍然存在。

模型(量化)   地图@CIROI   模型大小   延迟*

IconNet(目前已部署)   94.20%   8.5 兆字节   107 毫秒

图标网络 (XS)   92.80%   2.3 兆字节   102 毫秒

IconNet(S)   91.70%   4.4 兆   45 毫秒

MobilenetEdgeTPU(AutoML)   88.90%   7.8 兆字节   26 毫秒

*在 Pixel 3A 上测量。

结论和未来工作

我们一直在努力改进 IconNet。除其他事项外,我们还希望扩大 IconNet 支持的元素范围,以包括任何通用 UI 元素,例如图像、文本或按钮。我们还计划扩展 IconNet,通过识别其功能来区分外观相似的图标。在应用程序方面,我们希望通过增强开发人员工具来增加具有有效内容描述的应用程序数量,以便在构建应用程序时为不同的 UI 元素提供内容描述建议。

致谢

该项目是与 Maria Wang、Tautvydas Misiūnas、Lijuan Liu、Ying Xu、Nevan Wichers、Xiaoxue Zang、Gabriel Schubiner、Abhinav Rastogi、Jindong (JD) Chen、Abhanshu Sharma、Pranav Khaitan、Matt Sharifi 和 Blaise Aguera y Arcas 合作的成果。我们衷心感谢我们的合作者 Robert Berry、Folawiyo Campbell、Shraman Ray Chaudhuri、Nghi Doan、Elad Eban、Marybeth Fair、Alec Go、Sahil Goel、Tom Hume、Cassandra Luongo、Yair Movshovitz-Attias、James Stout、Gabriel Taubman 和 Anton Vayvod。我们非常感谢 Tom Small 协助我们准备这篇文章。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论