最終更新日:2021/07/18
幅広いユーザにアプリを使ってもらうには
Appleでは機械学習を用いて、便利な製品を世の中に提供しています。例えば、視覚障害を持つ人や視力の低い人、音が聞こえない人や聞き取りにくい人、身体運動の制限がある人などの障害を持つ人に、アクセシビリティ機能を用いて幅広いユーザをサポートしています。
アクセシビリティ機能とは、ユーザインターフェイス(UI)を説明する機能のことですが、多くのアプリにはその補助機能が備わっていません。これによって、読み上げ機能がうまく機能しなかったりする可能性があります。そのため、様々なアプリに用いることが可能なアクセシビリティ機能を実装する必要があります。
アクセシビリティ機能がすべてのアプリに対応しているわけではないという課題において、実際にどのような研究が行われているのでしょうか。Appleの研究者らの発表を紹介します。
研究者らは、CNNベースの手法を用いることによって、UI要素の検知を試みました。
▼論文情報
著者:Apple
タイトル:”Making Mobile Applications Accessible with Machine Learning”
Machine Learning Research at Apple
URL:DOI
機械学習を用いてアクセシビリティ機能を実装
まずはAppleの研究におけるミッション・手法・結果をまとめました。
✔️ミッション ✔️解決手法 ✔️結果 |
ミッションから説明していきます。
(目的)アプリに対するアクセシビリティ機能の実装
アクセシビリティ機能を用いることによって、幅広いユーザを支援するシステムを構築することができます。iOSの標準機能としてアクセシビリティ機能を使うことができますが、アプリの開発者がUIに関する正確な情報をAppleに提供していない場合は、この機能を適用することは難しいです。
そのため、Appleの研究者らは、モバイルアプリのアクセシビリティを画面上のピクセルから推測するモデルを構築しました。それでは、用いられているデータセットや手法を見ていきましょう。
(手法)物体検出モデルを用いてモデル構築
研究者らは、iOS用に最適化された機械学習モデルTuriCreateを用いてモデル構築を行いました。
まず、下図に研究の概要を示します。研究者らは収集したデータセットに注釈をつけ、UI検知モデルを構築しました。そして、ユーザがアプリをより便利に使えるように改善しました。実際にデータセットの構成やモデルを見ていきましょう。
データセット
Appleの研究者らは、UI検出モデルを訓練するために、4,068個のiPhoneアプリから77,637個のスクリーンショットのデータセットを作成しています。データセットには、スクリーンショットとアクセシビリティの情報が含まれています。画面上のUIに手動でコメント付けを行っています。
アプリについては、2019年12月9日から2020年1月13日まで、アメリカのAppStoreで提供されている23種類のカテゴリ(ゲームとARを除く)の上位200個の無料アプリを手動でインストールしました。個人情報を守るため、クレジットカード情報などが含まれるアプリは対象ではありません。
研究者らは、データを理解するために分析を行いました。その一つはUI要素間の偏りを調べる分析です。つまり、テキストや写真などのUIがどれくらい出現しているかを調査しました。結果は下図にあるように、テキストの表現が741,285個と多いのに対して、スライダーの表示は1,808個と少なくなりました。上位4つの要素は約95%を占めていて、かなり偏っていることが分かります。モデル構築の際は、この不均衡さを考慮する必要があります。
UI検知モデル構築
研究者らははじめに、Faster R-CNNという、Microsoft社が開発した物体検出アルゴリズムを用いてUI検出モデル構築を試みました。しかしながら、各スクリーンショットで、検知に1秒以上かかり、120MB以上のメモリを使用するため、デバイス上の推論には適しません。そのため、iOSデバイス用に最適化されたTuriCreate(Appleの機械学習ライブラリ)を用いています。このモデルのメモリ使用量は60MBであり、推論時間は20msと大幅に短縮されました。
またR-CNNを用いると、CNNの演算回数が多くなるため、より高速化するためにSSD(Single Shot Multibox Detector)を用いています。SSDは一度のCNN演算で領域の検出とクラス分類の両方を行うモデルです。さらに、不均衡データを処理するために、訓練中に過小評価されてしまった要素に対してデータの増強を行い、重みづけを行っています。
最終的なモデルのメモリ使用量は20MBであり、推論のために必要とする時間は約10msです。また、重複検出を除外するために、2つの後処理方法を用いました。
- 重複している検出結果から最も信頼性の高いものを選択
- 閾値を要素ごとに設定し、確実性のない検出結果を削除
上図はそれぞれのUI要素ごとの閾値を示しています。オレンジの点が閾値です。
(結果)UI要素の検知に成功
結果、モデルの最終的なmAPの値が87.5%となりました。
定量評価
研究者らは、UIの種類ごとにパフォーマンスの評価を行いました。評価指標には、物体検出のモデル評価に用いられるAP(Average Precision)という指標を用いました。mAP(mean Average Precision)の結果は71.3%でした。前述の通り、UIの種類によって重みづけを調整すると、mAPは87.5%となりました。モデルはアイコンや画像とチェックボックスを誤認識してしまう傾向にあるため、APの値が最も低かったです。
UI検出機能の強化
下図に示すように、UI要素の種類には状態があります。これには、トグル、チェックボックス、Segmentation Controls、タブボタンが含まれます。これを判断するために、視覚情報(色合い、UI検出の種類)を用いました。
研究者らは、関連するUI要素をグループ化することによって、補助サービスの案内を効率的にすることを考えました。下図はUIをグループ化する前と後の写真です。左の画面においては、テキストや画像が全て枠で囲われていることが分かります。右の画面では関連している文字と画像を紐づけて枠で囲っています。UI要素の種類、サイズ、および画面空間上の関係に基づいてUIをグループ化する発見的手法を開発しています。
研究紹介は以上です。iOSのアクセシビリティ機能がより使いやすくなり、幅広い人がAppleの製品を使えるようになると良いですね。
関連記事
■サポートのお願い
AIDBを便利だと思っていただけた方に、任意の金額でサポートしていただけますと幸いです。