通過圖標(biāo)檢測(cè)提高移動(dòng)應(yīng)用程序的可訪問性
語音訪問使用戶能夠免提控制他們的 Android 設(shè)備,只需使用口頭命令。為了正常運(yùn)行,它需要屏幕用戶界面 (UI) 元素具有可靠的輔助功能標(biāo)簽,這些標(biāo)簽通過輔助功能樹提供給操作系統(tǒng)的輔助功能服務(wù)。不幸的是,在許多應(yīng)用程序中,并不總是為 UI 元素提供足夠的標(biāo)簽,例如圖像和圖標(biāo),從而降低了語音訪問的可用性。

解決這一挑戰(zhàn)需要一個(gè)系統(tǒng),該系統(tǒng)可以僅使用屏幕上顯示的像素值自動(dòng)檢測(cè)圖標(biāo),而不管圖標(biāo)是否已被賦予合適的可訪問性標(biāo)簽。關(guān)于這個(gè)主題的研究很少,通常使用分類器,有時(shí)結(jié)合語言模型從 UI 元素推斷類和屬性。然而,這些分類器仍然依賴可訪問性樹來獲取 UI 元素的邊界框,并且在不存在適當(dāng)標(biāo)簽時(shí)失敗。
在這里,我們將介紹 IconNet,這是一種基于視覺的對(duì)象檢測(cè)模型,它可以自動(dòng)檢測(cè)屏幕上的圖標(biāo),這種方式與正在使用的應(yīng)用程序的底層結(jié)構(gòu)無關(guān),作為最新版本的 Voice Access 的一部分推出。IconNet 僅根據(jù) UI 截圖就可以檢測(cè) 31 種不同的圖標(biāo)類型(即將擴(kuò)展到 70 多種類型)。IconNet 經(jīng)過優(yōu)化,可在移動(dòng)環(huán)境的設(shè)備上運(yùn)行,具有緊湊的尺寸和快速的推理時(shí)間,可實(shí)現(xiàn)無縫的用戶體驗(yàn)。當(dāng)前的 IconNet 模型在 Pixel 3A 上以 9 FPS 運(yùn)行時(shí)達(dá)到了94.2% 的平均精度(mAP)。
檢測(cè)屏幕截圖中的圖標(biāo)
從技術(shù)角度來看,檢測(cè)應(yīng)用程序屏幕上的圖標(biāo)的問題類似于經(jīng)典的對(duì)象檢測(cè),因?yàn)槟P蜁?huì)用它們的位置和大小標(biāo)記各個(gè)元素。但是,在其他方面,它是完全不同的。圖標(biāo)通常是較小的對(duì)象,具有相對(duì)基本的幾何形狀和有限的顏色范圍,應(yīng)用程序屏幕與自然圖像有很大不同,因?yàn)樗鼈兏咏Y(jié)構(gòu)化和幾何化。
開發(fā)用于語音訪問的設(shè)備上 UI 元素檢測(cè)器的一個(gè)重大挑戰(zhàn)是,它必須能夠在具有各種性能表現(xiàn)能力的各種手機(jī)上運(yùn)行,同時(shí)保護(hù)用戶的隱私。為了獲得快速的用戶體驗(yàn),需要具有低推理延遲的輕量級(jí)模型。因?yàn)檎Z音訪問需要使用標(biāo)簽來響應(yīng)用戶的話語(例如,“點(diǎn)擊相機(jī)”或“顯示標(biāo)簽”)推理時(shí)間需要很短(在 Pixel 3A 上 <150 毫秒),并且模型尺寸更小超過 10 MB。
IconNet
IconNet 基于新穎的CenterNet架構(gòu),它從輸入圖像中提取特征,然后預(yù)測(cè)合適的邊界框中心和大?。ㄒ詿釄D的形式)。CenterNet 在這里特別適合,因?yàn)?UI 元素由簡(jiǎn)單、對(duì)稱的幾何形狀組成,與自然圖像相比,更容易識(shí)別它們的中心。使用的總損失是圖標(biāo)大小的標(biāo)準(zhǔn)L1 損失和中心預(yù)測(cè)的修改后的CornerNet Focal 損失的組合,后者解決了常見圖標(biāo)之間的圖標(biāo)類別不平衡(例如,向后箭頭、菜單、更多和星)和代表性不足的圖標(biāo)(結(jié)束通話、刪除、啟動(dòng)應(yīng)用程序等)。
在對(duì)多個(gè)主干網(wǎng)絡(luò)(MobileNet、ResNet、UNet 等)進(jìn)行試驗(yàn)后,我們選擇了最有前途的服務(wù)器端架構(gòu)——Hourglass— 作為設(shè)計(jì)為圖標(biāo)和 UI 元素檢測(cè)量身定制的主干的起點(diǎn)。雖然這種架構(gòu)非常適合服務(wù)器端模型,但 vanilla Hourglass 主干不是將在移動(dòng)設(shè)備上運(yùn)行的模型的選項(xiàng),因?yàn)樗鼈兊某叽绱笄彝评頃r(shí)間慢。我們將設(shè)備端網(wǎng)絡(luò)設(shè)計(jì)限制在單個(gè)堆棧,并大幅減少了主干網(wǎng)的寬度。此外,由于圖標(biāo)的檢測(cè)依賴于更多的局部特征(與真實(shí)物體相比),我們可以進(jìn)一步減少主干的深度,而不會(huì)對(duì)性能產(chǎn)生不利影響。消融研究使我們相信跳過連接和高分辨率特征的重要性。例如,在最后一層修剪跳過連接使 mAP 降低了 1.5%,

模型改進(jìn)
一旦選擇了主干架構(gòu),我們就使用神經(jīng)架構(gòu)搜索(NAS) 來探索網(wǎng)絡(luò)架構(gòu)的變化,并發(fā)現(xiàn)一組優(yōu)化的訓(xùn)練和模型參數(shù),以平衡模型性能 (mAP) 與延遲 (FLOP)。此外,我們使用細(xì)粒度隨機(jī)架構(gòu)搜索(FiGS) 來進(jìn)一步完善主干設(shè)計(jì)。FiGS 是一種可微架構(gòu)搜索技術(shù),它通過修剪候選架構(gòu)并丟棄不必要的連接來發(fā)現(xiàn)稀疏結(jié)構(gòu)。這種技術(shù)使我們能夠在不損失任何性能的情況下將模型大小減少 20%,并在 mAP 僅略有下降 0.3% 的情況下減少 50%。
提高訓(xùn)練數(shù)據(jù)集的質(zhì)量在提高模型性能方面也發(fā)揮了重要作用。我們收集并標(biāo)記了超過 70 萬張屏幕截圖,在此過程中,我們通過使用啟發(fā)式和輔助模型來識(shí)別稀有圖標(biāo)來簡(jiǎn)化數(shù)據(jù)收集。我們還通過使用不常見的圖標(biāo)豐富現(xiàn)有屏幕截圖來利用數(shù)據(jù)增強(qiáng)技術(shù)。
為了縮短推理時(shí)間,我們修改了模型以在許多手機(jī)上可用的各種高通 DSP上使用神經(jīng)網(wǎng)絡(luò) API (NNAPI)運(yùn)行。為此,我們將模型轉(zhuǎn)換為使用 8 位整數(shù)量化,這提供了減少模型尺寸的額外好處。經(jīng)過一些實(shí)驗(yàn),我們使用量化感知訓(xùn)練來量化模型,同時(shí)匹配服務(wù)器端浮點(diǎn)模型的性能。與未量化模型相比,量化模型的速度提高了 6 倍(700 毫秒對(duì) 110 毫秒)和 50% 的尺寸減小,同時(shí)僅損失了約 0.5% 的 mAP。
結(jié)果
我們使用傳統(tǒng)的對(duì)象檢測(cè)指標(biāo)(例如,mAP)來衡量模型性能。此外,為了更好地捕捉語音控制用戶操作的用例,我們定義了一個(gè)誤報(bào) (FP) 檢測(cè)的修改版本,我們對(duì)屏幕上出現(xiàn)的圖標(biāo)類的更多不正確檢測(cè)進(jìn)行懲罰。為了將檢測(cè)結(jié)果與地面實(shí)況進(jìn)行比較,我們使用感興趣區(qū)域中心(CIROI),這是我們?yōu)榇斯ぷ鏖_發(fā)的另一個(gè)指標(biāo),當(dāng)檢測(cè)到的邊界框的中心位于地面實(shí)況邊界框內(nèi)時(shí),該指標(biāo)以正匹配返回。這更好地捕獲了操作的語音訪問模式,其中通過點(diǎn)擊感興趣的 UI 元素區(qū)域中的任何位置來執(zhí)行操作。
我們將 IconNet 模型與其他各種移動(dòng)兼容對(duì)象檢測(cè)器進(jìn)行了比較,包括MobileNetEdgeTPU和SSD MobileNet v2。實(shí)驗(yàn)表明,對(duì)于固定延遲,IconNet 在我們內(nèi)部評(píng)估集的 mAP@CIROI 方面優(yōu)于其他模型。
模型 地圖@CIROI
IconNet(沙漏) 96%
圖標(biāo)網(wǎng) (HRNet) 89%
MobilenetEdgeTPU (AutoML) 91%
SSD Mobilenet v2 88%
在考慮量化模型和固定延遲預(yù)算的模型時(shí),IconNet 的性能優(yōu)勢(shì)仍然存在。
模型(量化) 地圖@CIROI 型號(hào)尺寸 延遲*
IconNet(目前已部署) 94.20% 8.5 MB 107 毫秒
圖標(biāo)網(wǎng) (XS) 92.80% 2.3 MB 102 毫秒
IconNet (S) 91.70% 4.4 MB 45 毫秒
MobilenetEdgeTPU (AutoML) 88.90% 7.8 MB 26 毫秒
結(jié)論和未來工作
我們一直致力于改進(jìn) IconNet。除此之外,我們有興趣增加 IconNet 支持的元素范圍以包括任何通用 UI 元素,例如圖像、文本或按鈕。我們還計(jì)劃擴(kuò)展 IconNet 以通過識(shí)別它們的功能來區(qū)分外觀相似的圖標(biāo)。在應(yīng)用程序方面,我們希望通過在構(gòu)建應(yīng)用程序時(shí)增加開發(fā)人員工具來建議不同 UI 元素的內(nèi)容描述,從而增加具有有效內(nèi)容描述的應(yīng)用程序的數(shù)量。
更新說明:優(yōu)先更新微信公眾號(hào)“雨夜的博客”,后更新博客,之后才會(huì)陸續(xù)分發(fā)到各個(gè)平臺(tái),如果先提前了解更多,請(qǐng)關(guān)注微信公眾號(hào)“雨夜的博客”。