机器之心专栏
作者:陈洁珊
近日,来自澳大利亚国立大学等机构研究者,提出了一种名为 LabelDroid 的方法,帮助视障人士更轻松地使用智能手机。目前,该论文已获得了第四十二届国际软件工程大会 ICSE 2020 的 ACM SIGSOFT 杰出论文奖。
现在,一个人出门必备的物品是什么?如果只能选择一件,我会选择手机。如果再加一件,那会是充电宝。
如今,智能手机已经成为我们生活中不可或缺的一部分。我们可以通过各式各样的 APP 获取服务,比如社交 / 购物 / 出行 / 阅读 / 游戏等等。对于大部分的普通用户而言,使用智能手机是一件很轻松的事。然而,就是这样一个简单的操作,对于视障人群却是困难重重。
根据世卫组织的报告,全世界范围内的视障人群将近 13 亿,其中更是包含 3.6 亿的盲人。因此,在移动互联网端口铺好“盲道”,帮助视障人群畅通无碍地使用手机,正是人工智能走进生活当口下的一项紧迫的研究。
早在此前,手机平台便推出了自带的屏幕阅读器帮助视障人群更好地使用手机,比如安卓系统的 TalkBack,IOS 系统的 VoiceOver。用户可以通过手势满足基本需求,随着每次滑动,阅读器便会播报相应的文字内容或功能描述。下面是安卓系统 TalkBack 的一个使用案例:
从案例中可以看出,系统自带的屏幕阅读器可以轻松地播报文字内容,但是无法对所有图像等非文字按钮都做出正确有效的反应。这是为什么呢?实际上,对于非文字按钮,屏幕阅读器会读取源码中的对应描述字段并进行播报,这个字段正是由开发人员设置的。如果开发人员没有设置这个字段,那么屏幕阅读器就只会播报 「Unlabeled」(未加标签)字段。
因此,尽管有屏幕阅读器的支持,但只有当开发人员设置了对应字段,屏幕阅读器才能提取出有效的描述信息。
如下图所示,开发人员通过源码文件中 layout 对应的 xml 文件设置当前部件的 android:contentDescription 属性,这个属性的具体值通常会放在另一个资源文件 string.xml 当中。在案例中,开发者为「 」 按钮设置了 「Add playlist」的描述。
图 2:设置图形按钮的描述字段的源码。
一个 APP 的非文字按钮可能会高达十个二十多个,只要缺少任何一个字段,便会影响视障人群的使用,便无法让屏幕阅读器发挥应有的作用。许多平台都相应推出了 Accessibility Guideline 来帮助开发者设置简短且准确的描述。但据研究表明,大部分开发者似乎并没有意识到这些 Guideline 的存在和重要性。
尽管目前已有许多工具 (比如 Android Lint,Accessibility Scanner) 可以帮助开发者定位到 inaccessible 的情况,但是没有任何一个工具可以直接解决这些问题。
本文将介绍一篇论文《Unblind Your Apps: Predicting Natural-Language Labels for Mobile GUI Components by Deep Learning》将为这个难题提供一份新的解决方案。该论文作者包括 陈洁珊 (ANU)、陈春阳 (Monash)、邢振昌 (ANU)、Xiwei Xu (Data61,CSIRO)、Liming Zhu (Data61,CSIRO)、Guoqiang Li (上海交大)和Jinshui Wang (福建工程学院) 。
该论文获得了第四十二届国际软件工程大会 ICSE 2020 的 ACM SIGSOFT 杰出论文奖。
- 论文地址:https://arxiv.org/abs/2003.00380
- Github:https://github.com/chenjshnn/LabelDroid/
大数据探索现状
论文从 Google Play 中爬取了 10,408 个安卓软件来研究当今手机软件的 Accessibility 情况。对于每个 App,论文使用自动工具探索并收集了软件中的 UI 截图跟对应的运行时的 xml 代码文件。这个代码文件包含了研究所需的信息,即每个 UI 内的所有部件的位置、类型和描述字段。
表格 1 展示了现有的描述字段缺失的统计数据。出人意料的是,研究结果表明有超过 77% 的 App 存在 Accessibility 问题(即至少有一个图形按钮缺乏描述字段)。具体来说,更是有超过 60% 的 UI 存在问题。想象一下,当我们使用手机的时候,平均两个界面就有一个界面存在至少一个我们不知道其功能的按钮,这十分影响用户体验。
表格 1:描述字段缺失情况的统计数据。
接下来,论文进一步探索了不同类别软件中,软件缺失情况的分布。如图 4 所示,确实对于一些类别(Personalization/Game/Photograph),超过 70% 的软件都存在十分严重的缺失问题,至少有 80% 的非文字按钮都没有描述字段。其他类别软件的情况相对较好,但也仍有 30% 的软件基本无法使用。
图 4:不同类别下软件缺失率的分布。
那么或许由于市场竞争激烈,很多软件没心思考虑到特殊群体。是否很有名气的软件就会关注 Accessibility 问题了呢?论文也研究了软件下载量跟描述字段缺失率的联系,然而结果显示这两者只有很弱的相关关系(相关系数 = 0.046),这表明 Accessibility 问题在更具名气的软件中也未得到解决。
如何打开视障人士智能新 「视」界?
为了解决上述问题,这篇论文提出了 LabelDroid。如图 6 所示,这个方法包含三部分,一个卷积神经网络(CNN)、 一个 Transformer 编码器和一个 Transformer 解码器。输入一张图形按钮,通过 CNN 抽取图像特征,然后 Transformer 编码器解析输入特征之间的关系。最后 Transformer 解码器根据前面已生成的 token 以及来自解码器的 Attention 进一步通过解析输入输出向量之间的关系,生成下一个 token 的概率分布。
图 6:方法概述。
实验数据跟模型效果
实验数据
论文获取了 19233 对数据(非文字按钮以及对应的描述字段),其中 80%/10%/10% 分别作为训练集、验证集和测试集。
正确性与实用性
在 1879 个测试数据中,LabelDroid 在每个指标上都比 baselines 的效果增长了 2%-11.3%,证明了模型的有效性。
此外,论文进行了一项用户研究来评估 LabelDroid 是否可以生成比开发者更简洁明了的描述,以及是否可以真的帮助到开发者。论文分别邀请了三名 phd 学生和研究者(A1,A2,A3)来为图形按钮写描述,还邀请了一位资深职业安卓开发员来为这些描述打分。为了保证这个打分者的水平和客观准确性,论文特意放入两个明显错误的描述和两个合适的描述。
下图 9 表明,该论文的方法确实可以生成更高质量的描述字段,确实可以帮助开发者生成更加简洁明了的描述。
图 9:每个标注员的根据 app 的平均得分分布。
开发者存在哪些问题?
表格 7 展示了一些用户研究的例子。根据观察,在四种情况下开发者写的描述会得到很低的分数。第一种情况,有的开发者倾向于写过长的冗余的描述(E1-A1, E2-A1);有的开发者则反之使用过于简短缺乏足够信息的描述(E2-A2/A3);还有的开发者会写一些摸棱两可的描述(E4 – A2/3);最后,开发者有时候也会犯错误(E5 – A2/A3)。这些观察证明了这些开发者缺失不知道如何添加简洁明了的描述,而 LabelDroid 可以很好的帮助他们。