機器之心專欄
作者:陳潔珊
近日,來自澳大利亞國立大學等機構研究者,提出了一種名為 LabelDroid 的方法,幫助視障人士更輕鬆地使用智慧型手機。目前,該論文已獲得了第四十二屆國際軟體工程大會 ICSE 2020 的 ACM SIGSOFT 傑出論文獎。
現在,一個人出門必備的物品是什麼?如果只能選擇一件,我會選擇手機。如果再加一件,那會是充電寶。
如今,智慧型手機已經成為我們生活中不可或缺的一部分。我們可以通過各式各樣的 APP 獲取服務,比如社交 / 購物 / 出行 / 閱讀 / 遊戲等等。對於大部分的普通用戶而言,使用智慧型手機是一件很輕鬆的事。然而,就是這樣一個簡單的操作,對於視障人群卻是困難重重。
根據世衛組織的報告,全世界範圍內的視障人群將近 13 億,其中更是包含 3.6 億的盲人。因此,在移動網際網路埠鋪好「盲道」,幫助視障人群暢通無礙地使用手機,正是人工智慧走進生活當口下的一項緊迫的研究。
早在此前,手機平臺便推出了自帶的屏幕閱讀器幫助視障人群更好地使用手機,比如安卓系統的 TalkBack,IOS 系統的 VoiceOver。用戶可以通過手勢滿足基本需求,隨著每次滑動,閱讀器便會播報相應的文字內容或功能描述。下面是安卓系統 TalkBack 的一個使用案例:
00:00/00:00倍速
從案例中可以看出,系統自帶的屏幕閱讀器可以輕鬆地播報文字內容,但是無法對所有圖像等非文字按鈕都做出正確有效的反應。這是為什麼呢?實際上,對於非文字按鈕,屏幕閱讀器會讀取源碼中的對應描述欄位並進行播報,這個欄位正是由開發人員設置的。如果開發人員沒有設置這個欄位,那麼屏幕閱讀器就只會播報 「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 可以很好的幫助他們。