IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブルー プリズム リミテッドの特許一覧

特表2024-532969エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法
<>
  • 特表-エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法 図1
  • 特表-エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法 図2
  • 特表-エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法 図3
  • 特表-エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法 図4
  • 特表-エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法 図5A
  • 特表-エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法 図5B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-11
(54)【発明の名称】エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法
(51)【国際特許分類】
   G06F 11/34 20060101AFI20240904BHJP
   G06F 3/048 20130101ALN20240904BHJP
【FI】
G06F11/34 138
G06F3/048
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024509427
(86)(22)【出願日】2022-08-18
(85)【翻訳文提出日】2024-04-04
(86)【国際出願番号】 GB2022052147
(87)【国際公開番号】W WO2023021299
(87)【国際公開日】2023-02-23
(31)【優先権主張番号】2111831.0
(32)【優先日】2021-08-18
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
2.PYCHARM
3.SAP
(71)【出願人】
【識別番号】516005083
【氏名又は名称】ブルー プリズム リミテッド
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】ダッバ,クリシュナ サンディープ レディ
(72)【発明者】
【氏名】カー,ベンジャミン マイケル
(72)【発明者】
【氏名】アクタス,ウーミット ルーセン
(72)【発明者】
【氏名】チルズ,トーマス アレクサンダー
【テーマコード(参考)】
5B042
5E555
【Fターム(参考)】
5B042MA05
5B042MA08
5B042MA10
5B042MA11
5B042MA14
5E555AA09
5E555AA42
5E555AA79
5E555BA02
5E555BB02
5E555BC14
5E555BC21
5E555EA03
5E555EA28
5E555FA00
(57)【要約】
エンドユーザデバイスのGUIインタラクション情報を判定するためのコンピュータによって実装される方法を開示する。方法は、1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、前記1つ又は複数のGUIスパイモードのGUIインタラクション情報を推定することと、参照モデルに基づいて、前記1つ又は複数のGUIスパイモードの推定GUIインタラクション情報を分類することと、前記分類結果に基づいて、GUIインタラクション情報を出力することとを含む。
【選択図】図4
【特許請求の範囲】
【請求項1】
エンドユーザデバイスのグラフィカルユーザインタフェース(GUI)インタラクション情報を判定するためのコンピュータによって実装される方法であって、
1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、前記1つ又は複数のGUIスパイモードのGUIインタラクション情報を推定することと、
参照モデルに基づいて、前記1つ又は複数のGUIスパイモードの推定GUIインタラクション情報を分類することと、
前記分類の分類結果に基づいて、GUIインタラクション情報を出力することと、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記1つ又は複数のGUIスパイモードは、コンピュータにネイティブなアプリケーションプログラミングインターフェース(API)を含み、前記推定GUIインタラクション情報は、前記APIからGUIインタラクション情報にアクセスすることによって推定される、方法。
【請求項3】
請求項1又は請求項2に記載の方法において、
前記1つ又は複数のGUIスパイモードは、後処理法を含む。
【請求項4】
請求項3に記載の方法において、
前記後処理法は、コンピュータビジョンツールを含む、方法。
【請求項5】
請求項1から請求項4のいずれか一項に記載の方法において、
前記参照モデルは、所定の規則に基づく発見的モデルを含む、方法。
【請求項6】
請求項1から請求項4のいずれか一項に記載の方法において、
前記参照モデルは、過去データでトレーニングされたマルチモーダル深層学習モデルを含む、方法。
【請求項7】
請求項1から請求項6のいずれか一項に記載の方法において、
前記デバイス状態情報を解析すること、及び対応する推定GUIインタラクション情報を分類することは、複数のGUIスパイモードについて直列に実行される、方法。
【請求項8】
請求項1から請求項6のいずれか一項に記載の方法において、
前記デバイス状態情報を解析すること、及び対応する推定GUIインタラクション情報を分類することは、複数のGUIスパイモードについて並列に実行される、方法。
【請求項9】
請求項1から請求項8のいずれか一項に記載の方法において、
前記参照モデルに基づいて前記推定GUIインタラクション情報を分類することは、前記推定GUIインタラクション情報を真又は偽のいずれかとして分類することを含む、方法。
【請求項10】
請求項9に記載の方法において、
最後のGUIスパイモードがコンピュータビジョンツールであり、対応する推定GUIインタラクション情報が真として分類される、方法。
【請求項11】
請求項9に記載の方法において、
前記推定GUIインタラクション情報を分類することは、真の分類が判定されたときに終了され、前記分類結果に基づいてGUIインタラクション情報を出力することは、真として分類された推定GUIインタラクション情報を出力することを含む、方法。
【請求項12】
請求項1から請求項8のいずれか一項に記載の方法において、
参照モデルに基づいて前記推定GUIインタラクション情報を分類することは、前記参照モデルに基づいて前記推定GUIインタラクション情報の部分集合にスコアを割り当てることを含む、方法。
【請求項13】
請求項12に記載の方法において、
前記分類結果に基づいてGUIインタラクション情報を出力することは、スコアが最も高い分類済み推定GUIインタラクション情報を出力することを含む、方法。
【請求項14】
請求項12に記載の方法において、
前記分類結果に基づいてGUIインタラクション情報を出力することは、前記分類済み推定GUIインタラクション情報を前記スコアに基づいてフィルタリング及び集約することを含む、方法。
【請求項15】
請求項14に記載の方法において、
前記フィルタリングは、スコアが所定の閾値未満の前記分類済み推定GUIインタラクション情報の部分集合を除外することを含む、方法。
【請求項16】
請求項12に記載の方法において、
前記分類結果に基づいてGUIインタラクション情報を出力することは、スコアが所定の閾値以上の分類済み推定GUIインタラクション情報を集約することを含む、方法。
【請求項17】
請求項1から請求項16のいずれか一項に記載の方法において、
前記分類結果に基づいてGUIインタラクション情報を出力することは、前記複数のGUIスパイモードのうちの1つ以上を使用して推定された、分類済み推定GUIインタラクション情報の部分集合を出力することを含む、方法。
【請求項18】
請求項1から請求項17のいずれか一項に記載の方法において、
前記1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、前記GUIインタラクション情報を推定することは、ユーザインタラクションのインスタンスごとに行われる、方法。
【請求項19】
請求項1から請求項18のいずれか一項に記載の方法をコンピュータに実行させるための命令を含む、非一時的なコンピュータ可読媒体。
【請求項20】
エンドユーザデバイスのGUIを表示するためのディスプレイと、
前記ディスプレイに接続された少なくとも1つのプロセッサであって、請求項1から請求項18のいずれか一項に記載の方法に基づく命令を実行するように構成された少なくとも1つのプロセッサと、を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エンドユーザデバイスのGUIインタラクション情報を判定するためのシステム及び方法に関する。
【背景技術】
【0002】
エンドユーザデバイスのグラフィカルユーザインタフェース(graphical user interface:GUI)を用いることにより、オペレータ(すなわち、人間であるオペレータ)は、エンドユーザデバイスを使用してプロセスを実行でき、このプロセスは、複雑なデータ処理及び/又はシステム制御タスクを含むことができる。ここで、GUIにより、オペレータは、新しいプロセスの実行に速やかに慣れることができるが、GUIとインタラクトするオペレータの観点から、当該プロセスが実行され得る性質(nature)は単一ではなく、多様であるため、当該プロセスの更なる自動化には課題がある。
【0003】
「Blue Prism Capture」などのインテリジェントプロセスキャプチャ(intelligent process capture)及び自動化プラットフォームは、ソフトウェアエージェントを使用して既存のGUIを介してエンドユーザデバイスとインタラクトし、所与のプロセスを実行することにより、従来のプロセス自動化アプローチの進化を代表するシステムを提供する。このようなソフトウェアエージェントは、エンドユーザデバイスのGUIに対して(エンドユーザデバイスへの)適切な入力コマンドを生成して、エンドユーザデバイスに所与のプロセスを実行させ、これにより、当該プロセスの自動化を可能にする。所与のプロセスが自動的に実行されるための適切な入力コマンドを生成できるようにするために、インテリジェントプロセスキャプチャ及び自動化プラットフォームは、まず、オペレータによるプロセスの手動デモンストレーション中にプロセスを「キャプチャ」しなければならない。より具体的には、このために、インテリジェントプロセスキャプチャ及び自動化プラットフォームは、所与のプロセスの手動デモンストレーションの過程で、エンドユーザデバイスの状態、すなわち、GUI状態及びエンドユーザデバイスへの様々なユーザ入力を解析し、当該プロセスを実行するために行われる一連のGUIインタラクションを判定する必要がある。
【0004】
このようなプロセスは、多くの場合、複数のユーザ入力を介した複数のエンドユーザデバイスアプリケーションとのオペレータインタラクションを含み、各アプリケーションは、これとのインタラクションのための独自のGUI要素を有する。「Blue Prism Capture」などのインテリジェントプロセスキャプチャ及び自動化プラットフォームは、GUI「スパイモード(spying mode)」、すなわち、エンドユーザデバイスのGUI及びGUI要素インタラクションを監視するモードによって、プロセスの手動デモンストレーション中に行われるGUIインタラクションの性質(nature)を判定する。このようなGUIスパイモードは、Win32、UIA、Browser(html)又はActive Accessibility等の低レベルAPIを含んでもよく、これらは、プログラムインタフェースを介してGUI要素属性に直接アクセスする。また、GUIスパイモードは、GUIスクリーンショットの後処理を必要とするモード、例えば、OCRモデルを使用してGUIピクセルデータを解析してGUI要素の可視テキスト情報を得ること、又はコンピュータビジョンツールを使用してGUIピクセルデータを解析してGUI要素属性を識別及び抽出することなどを含むことができる。
【0005】
ここで、所与のアプリケーションの所与のGUI要素に対して、どのGUIスパイモードが最も効果的であるかが不明であるという問題が生じる。例えば、UIAは、特定のWindowsアプリケーション、例えば、Excelにはうまく機能するが、PycharmやSAPなどのアプリケーションには、必ずしもうまく機能せず、この場合、GUIインタラクション情報を判定するために、コンピュータビジョンベースのアプローチにフォールバックする必要があることがある。GUIスパイモードが機能しない場合、モードによって、エラーが返されることもあれば、例えば、返されたGUI要素のバウンディングボックスが、インタラクトしたGUI要素に対して過度に大きいなど、不正確な結果が返されることもある。
【0006】
この問題を回避するために使用できる1つの方法として、人間であるオペレータに適切なGUIスパイモードを選択させると共に、インテリジェントなプロセスキャプチャと自動化プラットフォームを使用して、プロセスの手動デモンストレーションを実行及びキャプチャする方法がある。これにより、プラットフォームから人間であるオペレータに責任が転嫁されるが、プロセスの手動デモンストレーションを正確に実行及びキャプチャするのに時間がかかるため、ユーザビリティが犠牲になる。
【発明の概要】
【0007】
したがって、GUIインタラクションを判定するための最適な1つ又は複数のGUIスパイモードを推定し、これにより、プロセスの手動デモンストレーション中に行われるGUIインタラクションをより効率的かつ正確に判定できる方法を提供することが望ましい。
【課題を解決するための手段】
【0008】
本発明の一実施形態は、エンドユーザデバイスのグラフィカルユーザインタフェース(GUI)インタラクション情報を判定するためのコンピュータによって実装される方法であって、
1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、1つ又は複数のGUIスパイモードのGUIインタラクション情報を推定することと、
参照モデルに基づいて、1つ又は複数のGUIスパイモードの推定GUIインタラクション情報(estimated GUI interaction information)を分類することと、
分類結果に基づいて、GUIインタラクション情報を出力することと、を含む。
【0009】
ここに開示する実施形態において、1つ又は複数のGUIスパイモードは、コンピュータにネイティブなアプリケーションプログラミングインターフェース(Application Programming Interface:API)を含み、推定GUIインタラクション情報は、APIからGUIインタラクション情報にアクセスすることによって推定される。
【0010】
ここに開示する更なる実施形態では、1つ又は複数のGUIスパイモードは、後処理法を含む。
【0011】
ここに開示される更なる実施形態では、後処理法は、コンピュータビジョンツールを含む。
【0012】
ここに開示する更なる実施形態では、参照モデルは、所定の規則に基づく発見的モデル(heuristic model)を含む。
【0013】
ここに開示する更なる実施形態では、参照モデルは、過去データでトレーニングされたマルチモーダル深層学習モデルを含む。
【0014】
ここに開示する更なる実施形態では、デバイス状態情報を解析すること、及び対応する推定GUIインタラクション情報を分類することは、複数のGUIスパイモードについて直列に実行される。
【0015】
ここに開示する更なる実施形態では、デバイス状態情報を解析すること、及び対応する推定GUIインタラクション情報を分類することは、複数のGUIスパイモードについて並列に実行される。
【0016】
ここに開示する更なる実施形態では、参照モデルに基づいて推定GUIインタラクション情報を分類することは、推定GUIインタラクション情報を真又は偽のいずれかとして分類することを含む。
【0017】
ここに開示する更なる実施形態では、最後のGUIスパイモードは、コンピュータビジョンツールであり、対応する推定GUIインタラクション情報は、真として分類される。
【0018】
ここに開示する更なる実施形態では、推定GUIインタラクション情報を分類することは、真の分類が判定されたときに終了され、分類結果に基づいてGUIインタラクション情報を出力することは、真として分類された推定GUIインタラクション情報を出力することを含む。
【0019】
ここに開示される更なる実施形態では、参照モデルに基づいて推定GUIインタラクション情報を分類することは、参照モデルに基づいて推定GUIインタラクション情報の部分集合にスコアを割り当てることを含む。
【0020】
ここに開示する更なる実施形態では、分類結果に基づいてGUIインタラクション情報を出力することは、スコアが最も高い分類済み推定GUI情報を出力することを含む。
【0021】
ここに開示される更なる実施形態では、分類結果に基づいてGUIインタラクション情報を出力することは、分類済み推定GUIインタラクション情報をスコアに基づいてフィルタリング及び集約することを含む。
【0022】
ここに開示される更なる実施形態では、フィルタリングは、スコアが所定の閾値未満の分類済み推定GUIインタラクション情報の部分集合を除外することを含む。
【0023】
ここに開示する更なる実施形態では、分類結果に基づいてGUIインタラクション情報を出力することは、スコアが所定の閾値以上の分類済み推定GUIインタラクション情報を集約することを含む。
【0024】
ここに開示される更なる実施形態では、分類結果に基づいてGUIインタラクション情報を出力することは、複数のGUIスパイモードのうちの1つ又は複数を使用して推定された、分類済み推定GUIインタラクション情報の部分集合を出力することを含む。
【0025】
ここに開示される更なる実施形態では、1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、GUIインタラクション情報を推定することは、ユーザインタラクションのインスタンスごとに行われる。
【0026】
また、本発明は、更なる実施形態として、上に開示した方法の実施形態をコンピュータに実行させるための命令を含む非一時的なコンピュータ可読媒体を提供する。
また、本発明の更なる実施形態として提供されるシステムは、
エンドユーザデバイスのGUIを表示するためのディスプレイと、
【0027】
ディスプレイに接続された少なくとも1つのプロセッサであって、上に開示した方法の実施形態に基づく命令を実行するように構成された少なくとも1つのプロセッサとを備える。
以下、添付の図面を参照して、本発明の実施形態を例示的に説明する。
【図面の簡単な説明】
【0028】
図1】エンドユーザデバイスシステムの一例を概略的に示す図である。
図2】エンドユーザデバイスのグラフィカルユーザインタフェースを表示するディスプレイの一例を概略的に示す図である。
図3】本発明の実施形態に基づく方法のフローチャートである。
図4】本発明の実施形態に基づく情報フローを概略的に示す図である。
図5A】本発明の実施形態に基づく直列実装の一例を示すフローチャートである。
図5B】本発明の実施形態に基づく並列実装の例を示すフローチャートである。
【発明を実施するための形態】
【0029】
以下の記述及び図は、本発明の特定の例示的な実施形態を説明するものである。
【0030】
本明細書で説明するシステム及び方法は、エンドユーザデバイスのためのインテリジェントプロセスキャプチャ及び自動化のためのプラットフォームの文脈で動作する。プロセスキャプチャコンポーネントは、オペレータによってエンドユーザデバイス上で実行される所与のプロセスの手動デモンストレーションのキャプチャ、すなわち記録に関与する。プロセスキャプチャではGUIインタラクション情報が取得され、ここで、GUIインタラクション情報は、エンドユーザデバイスのGUIとの一連のインタラクションによってエンドユーザデバイス上でキャプチャされたプロセスを実行するために必要な情報を含む。このGUIインタラクション情報は、その後、キャプチャされたプロセスを自動化する目的で、プラットフォームの自動化部分のソフトウェアエージェントによって使用される。本出願は、プラットフォームのプロセスキャプチャ部分に関し、より具体的には、所与のプロセスの手動デモンストレーションのキャプチャ中に当該GUIインタラクション情報を正確かつ効率的に判定する手法に関する。
【0031】
図1は、エンドユーザデバイス100の一例を概略的に示している。このようなエンドユーザデバイスの1つは、パーソナルコンピュータであってもよいが、エンドユーザデバイスは、タブレット、ラップトップコンピュータ、又は他のハンドヘルドデバイス等の他のデバイスであってもよいことは明らかである。エンドユーザデバイス100は、コンピュータ102、ディスプレイ104、及びユーザ入力デバイス106を含む。コンピュータは、ストレージデバイス108、通信デバイス110、メモリデバイス112、及び処理デバイス114を含んでいてもよい。
【0032】
処理デバイス114は、プロセッサ実行可能命令を記憶するためのメモリ(例えば、リードオンリーメモリ(read only memory:ROM)及びランダムアクセスメモリ(random access memory:RAM))と、プロセッサ実行可能命令を実行する1つ又は複数のプロセッサとを含んでいてもよい。処理デバイス114は、ストレージデバイス108と通信することもできる。処理デバイス114が2つ以上のプロセッサを含む本発明の実施形態では、プロセッサは、並列方式で動作してもよく、分散方式で動作してもよい。処理デバイス114は、エンドユーザデバイスのオペレーティングシステム又はエンドユーザデバイスの他の要素に関連するソフトウェアを実行できる。
【0033】
通信デバイス110は、エンドユーザデバイス100がインタフェースデバイス、例えば、ユーザ入力デバイス106と通信することを可能にするデバイスであってもよい。通信デバイス110は、エンドユーザデバイス100内の他のデバイスと通信するための1つ又は複数の有線又は無線送受信機(例えば、WiFi、ブルートゥース(登録商標)、及び/又はイーサネット通信デバイス)を含んでもよい。通信デバイス110は、リモート処理サーバ又は処理デバイス(例えば、クラウドサーバ又は処理デバイス)にデータを送信し、及びここからデータを受信するように構成してもよい。
【0034】
メモリデバイス112は、エンドユーザデバイス100の構成要素によって生成又は受信されたデータを記憶する任意のデバイス(例えば、ランダムアクセスメモリ(RAM)デバイス又はリードオンリーメモリ(ROM)デバイス)であってもよい。
【0035】
ストレージデバイス108は、ハードディスクドライブ、磁気ディスク、光ディスク、ROMなどのうちの1つ又は複数など、任意の形式の不揮発性データストレージデバイスであってもよい。ストレージデバイス108は、エンドユーザデバイス100が機能するために処理デバイス114が実行するオペレーティングシステムを保存できる。また、ストレージデバイス108は、1つ又は複数のコンピュータプログラム(又はソフトウェア又は命令又はコード)を保存してもよい。
【0036】
ディスプレイ104は、エンドユーザデバイスのグラフィカルユーザインタフェース(graphical user interface:GUI)を表す視覚データを出力するいかなるデバイスであってもよい。ディスプレイ104に表されるGUIは、オペレータがエンドユーザデバイスとインタラクトすることを可能にしてもよい。
【0037】
ユーザ入力デバイス106は、オペレータがエンドユーザデバイスのGUI及び/又はエンドユーザデバイスシステム100内の他のコンポーネントとインタラクトすることを可能にしてもよく、キーボード、マウス、トラックパッド、トラックボール、及び/又は他の方向入力デバイスを含んでもよい。
【0038】
図2は、エンドユーザデバイス100のグラフィカルユーザインタフェース(GUI)120を表示するディスプレイ104の一例を概略的に示している。GUI120は、タブ122及びウィンドウ124によって表される複数のアプリケーションを示し、オペレーティングシステムを含む。様々なアプリケーション及びオペレーティングシステムは、複数のアプリケーション固有のGUI要素を含む。また、GUI120は、マウスポインタ126などの周辺ユーザ入力デバイス106に対応するGUI要素も含んでいる。以下で更に詳細に説明するように、GUIインタラクション情報は、所与のプロセスを実行するためにインタラクト可能なGUI要素を識別するために使用されるバウンディングボックス128を含んでもよい。説明の目的のために、図2のGUI120には、それぞれが、インタラクト可能なGUI要素を囲む複数のバウンディングボックス128を示している。
【0039】
図3は、本発明の実施形態に基づく方法のフローチャートである。以下に示す方法300のステップは、例示的なものである。幾つかの実施形態では、方法300は、ここに説明しない1つ又は複数の動作を追加して行ってもよく、及び/又はここに説明する1つ又は複数の動作なしで行ってもよい。更に、方法300の動作は、図3に示し以下に説明する順序に限定されるわけではない。
【0040】
方法300は、処理デバイス114(例えば、1つ又は複数のデジタルプロセッサ、アナログプロセッサ、情報を処理するように設計されたデジタル回路、情報を処理するように設計されたアナログ回路、状態マシン、及び/又は情報を電子的に処理するための他のメカニズム)において実施してもよい。処理デバイス114は、電子ストレージデバイス108に電子的に記憶された命令に応答して、方法300の動作の一部又は全部を実行する1つ又は複数のデバイスを含んでもよい。処理デバイス114は、ハードウェア、ファームウェア、及び/又はソフトウェアを通じて、方法の1つ又は複数の動作をするように特別に設計されるように構成された1つ又は複数のデバイスを含んでもよい。
【0041】
図3に示すステップ310において、本発明の実施形態に基づく情報フロー400を概略的に示す図4に示すように、1つ又は複数のGUIスパイモード420を使用してデバイス状態情報410を解析し、1つ又は複数のGUIスパイモード420のGUIインタラクション情報430を推定する。デバイス状態情報410は、ユーザ入力情報、例えば、ユーザ入力デバイス106を介して得られるユーザ入力情報、及びGUI状態情報(例えば、GUI120上に表示される情報)を含んでもよい。デバイス状態情報410は、他のユーザ入力及び/又はGUI状態変数とともに、キーストローク、マウスアクション、ホバーオーバーイベント、GUIスクリーンショット、マウスカーソルのx-y座標のうちの1つ又は複数に関連する情報を含んでもよい。
【0042】
GUIインタラクション情報は、所与のプロセスを実行するためにオペレータがエンドユーザデバイス100のGUI120とどのようにインタラクトしているかに関する情報を提供する。GUIインタラクション情報は、GUI要素インタラクションに関する情報を含んでもよい。GUIインタラクション情報は、インタラクションされたGUI要素のバウンディングボックス128の1つ又は複数の座標、GUI要素内に含まれるテキスト情報、インタラクションされたアプリケーションの名称、並びにGUI要素属性を含んでいてもよい。
【0043】
所与のデバイス状態情報410に対するGUIインタラクション情報を推定するため、すなわち、推定GUIインタラクション情報(estimated GUI interaction information)430を得るために、GUIスパイモード420を使用してデバイス状態情報410を解析する。GUIスパイモード420は、GUI120及びGUI要素インタラクトを「スパイ」する、すなわち、監視するためのツールを提供する。GUIスパイモード420は、エンドユーザデバイス100に格納されたプログラムインタフェースを介してGUI要素属性に直接アクセスできるアプリケーションプログラミングインタフェース(API)と通信するためのモードを含んでもよい。APIは、アプリケーションが互いに通信することを可能にするソフトウェア仲介を提供する。したがって、GUIインタラクション情報は、APIから取得してもよい。エンドユーザデバイス100は、複数の異なるAPIを含むことができる。
【0044】
また、GUIスパイモード420は、様々な後処理法を含んでもよい。後処理GUIスパイモードは、GUIスクリーンショットの後処理に関与してもよい。後処理GUIスパイモードは、GUIスクリーンショット上で光学式文字認識(OCR)を使用して、1つ又は複数のGUI要素に関連する可視テキスト情報を取得してもよい。後処理GUIスパイモードは、コンピュータビジョンツールを含んでもよい。コンピュータビジョンツールは、特徴検出などの画像解析技術を通じてGUI120のGUI要素を識別し、予想されるGUI要素の既知の構成(又は外観)に基づいてGUI要素を識別することを可能にする。コンピュータビジョンツールは、特定のGUI要素を識別するようにトレーニングされた機械学習又は深層学習アルゴリズムを使用してもよい。コンピュータビジョンツールは、光学文字認識技術を使用して、識別されたGUI要素のテキストコンポーネントを識別してもよい。コンピュータビジョンツールは、標準的なオブジェクト検出技術を使用してGUI要素を識別してもよい。
【0045】
再び図4を参照すると、デバイス状態情報410は、GUIスパイモード420への入力として提供され、GUIスパイモード420の出力は、推定GUIインタラクション情報430である。GUIスパイモード420がGUIインタラクション情報430を推定できない場合、GUIスパイモード420は、エラーを返してもよい(図4には示していない)。デバイス状態情報410及びGUIインタラクション情報430、450の両方は、一致する情報の部分集合を有していてもよく、すなわち複数の変数を含んでもよい。デバイス状態情報410は、特定の時刻、例えば、ユーザインタラクションのインスタンスごとに取得及び解析されたデバイス状態情報410を含んでもよい。あるいは、デバイス状態情報410は、時間窓内で取得してもよく、ここで、時間窓は、エンドユーザデバイスへの特定のユーザ入力によって開始及び終了される時間窓であってもよく、事前に判定された周期的な時間窓であってもよい、
【0046】
幾つかの例では、GUI状態、すなわちGUI120上に表示される状態は、GUI状態の変化に対応するGUIインタラクションを行うための関連するデバイス状態情報410が取得される前に変化することがある。幾つかの実施形態では、デバイス状態情報410(すなわち、ユーザ入力情報及びGUI状態情報)をメモリデバイスにストリーミングし、対応するタイムスタンプを割り当ててもよい。これに応じて、GUI状態の変化に対応する特定のGUIインタラクションについてGUIインタラクション情報430を推定する際、GUIスパイモード420は、GUI状態の変化に関連するデバイス状態情報410のタイムスタンプの直前のタイムスタンプに関連するデバイス状態情報410にアクセスし、これを解析してもよい。
【0047】
再び図3を参照すると、方法300のステップ320において、参照モデルに基づいて推定GUIインタラクション情報430を分類した後、ステップ330において、分類結果に基づくGUIインタラクション情報450を出力する。再び図4を参照すると、デバイス状態情報410及び推定GUIインタラクション情報430が分類器440への入力として提供され、分類器440は、分類結果に基づく出力GUIインタラクション情報450を生成する。推定GUIインタラクション情報430の分類は、参照モデルに基づいて、推定GUIインタラクション情報430の全体又は部分集合にスコアを割り当てることを含んでもよい。割り当てられたスコアは、0と1の間(0と1を含む)であってもよく、割り当てられたスコアは、推定GUIインタラクション情報430の精度(accuracy)の特徴付けを試みるものである。他の実施形態では、推定GUIインタラクション情報430の分類は、推定GUIインタラクション情報430の全体又は部分集合に割り当てられたスコアに基づいて、推定GUIインタラクション情報430の部分集合を真又は偽のいずれかとして分類するバイナリ分類器の使用を含んでもよい。推定GUIインタラクション情報430が分類されると、図3の方法300のステップ330において、分類結果に基づくGUIインタラクション情報450を出力する。この出力GUIインタラクション情報450は、その後、インテリジェントプロセス自動化の目的のために使用できる。
【0048】
推定GUIインタラクション情報430の分類の基礎となる参照モデルは、所定の規則に基づく発見的モデルを含んでもよい。所定の規則は、推定GUIインタラクション情報430の部分集合のための閾値を定義してもよい。例えば、そのような所定の規則の1つは、GUI要素のバウンディングボックス128の面積が、そのようなGUI要素がバウンディングされることが期待されるある合理的な閾値を下回ることをチェックすることを含んでもよい。所定の規則の別の例は、所与のGUIスパイモード420のための推定GUIインタラクション情報430の一部として提供される所与のGUI要素バウンディングボックス128内のピクセル値について、垂直線及び水平線をチェックすることを含んでもよい。マウス操作(例えば、クリック位置)を囲む2本の垂直線と2本の水平線がある場合、すなわちクリック位置が矩形で囲まれている場合、これは、GUIスパイモード420によって提供されたものよりも小さいGUI要素バウンディングボックス128が存在し、GUIスパイモード420によるGUIインタラクション情報430の推定に何らかのエラーがあったことが示唆される。これらの線は、古典的なコンピュータビジョンメソッドを使用して発見できる。これらの方法は、二値化、ハフ変換、フィルタリング、拡大及び縮小、キャニーエッジ検出及び成分結合などのステップを含んでもよく、含まなくてもよい。更に、所定のルールの他の例は、GUI要素が(空白スペースが多くなる傾向がある)任意のより大きなバウンディングボックスよりも(ピクセル値の分散の点で)ノイズが多い傾向があるという事実を活用することを含む。この知見に基づき、所定の規則は、所与のGUI要素のバウンディングボックス128内のピクセル値の分散に関する閾値を提供することを含んでもよい。ある閾値を超えると、バウンディングボックス128が正確であると判断できる。上記の例は、所定の規則を限定することを意図したものではなく、上記の規則は、単に所定の規則の可能な例として役立つのみであり、より多くの所定の規則を定義することが可能であることは当業者にとって明らかである。推定GUIインタラクション情報430の分類の基礎となる所定の規則に基づくヒューリスティックモデルは、1つ又は複数の所定の規則の組み合わせを含んでもよく、ここで、規則は、推定GUIインタラクション情報430の部分集合(例えば、GUI要素バウンディングボックス128)が正しいか否かについて「投票」し、モデルは、多数決に基づいて、推定GUIインタラクション情報430が正しいか否かについて最終判定を行う。
【0049】
他の実施形態では、参照モデルは、過去データでトレーニングされた深層学習モデルを含んでもよい。過去データは、インテリジェントプロセスキャプチャ及び自動化プラットフォーム及び多くのアプリケーションによって使用される全てのGUIスパイモードに亘る例の大規模な集合を含んでもよい。各例は、1)アプリケーション又はエンドユーザデバイスのデスクトップを表示するGUI120のスクリーンショット、2)推定GUIインタラクション情報430、及び3)割り当てられたスコアの3つの要素から構成される。ディープラーニングモデルをトレーニングするために、過去データには、正しい(肯定的な)GUIインタラクション情報430の例と、正しくない(否定的な)GUIインタラクション情報430の例を含ませる必要がある。正しい例には、それぞれ1.0のスコアを割り当て、正しくない例には、それぞれ0.0のスコアを割り当て、これは、手動で行ってもよく又は自動的に判定してもよい。過去データは、トレーニング集合とテスト集合の2つの異なるデータ集合に分けられる。ディープラーニングモデルは、残差ニューラルネットワークを含んでもよい。ディープラーニングモデルは、過去データのトレーニング集合部分を分類するように学習することによってトレーニングしてもよい。トレーニングは、バックプロパゲーションと呼ばれるアルゴリズムで深層学習モデルの重みを更新することによって実行される。トレーニング手順は、トレーニング集合に亘って複数のパスを作成する。ディープラーニングモデルは、過去データのテスト集合部分で評価できる。評価プロセスは、精度(accuracy)、適合率(precision)、及び再現率(recall)を含む一組の性能測定基準に従ってテスト集合における深層学習モデルの性能を評価するものであってもよい。
【0050】
図3の方法300は、オペレータの好み及び/又は動作コンテキストの演算要件及び制約に応じて、複数の方式で実施できる。すなわち、本発明の方法は、直列実装、並列実装、又はこれらの組み合わせを含むことができる。本明細書において、直列実装及び並列実装は、a)複数のGUIスパイモード420を使用して複数のGUIスパイモード420についてGUIインタラクション情報430を推定するデバイス状態情報410の解析、及びb)参照モデルに基づく、複数のGUIスパイモード420についての推定GUIインタラクション430の分類に関係する。換言すれば、直列実装では、複数のGUIスパイモード420のそれぞれについて、GUIインタラクション情報の推定及びこれに続く推定GUIインタラクション情報430の分類を順次実行する。並列実装では、複数のGUIスパイモード420についてGUIインタラクション情報の推定を同時に実行した後、複数のGUIスパイモード420について推定GUIインタラクション情報430の分類を同時に実行する。
【0051】
図5Aは、本発明の実施形態に基づく方法500の直列実装の一例を示すフローチャートである。演算計算リソースが少ない場合、オペレータは、この例示的な実施形態に基づく直列実装を選択できる。ステップ510において、本方法は、デバイス状態情報410と、直列方式で使用されるGUIスパイモード420の集合との形式のデータによって初期化される。
【0052】
ステップ520において、GUIスパイモードの集合のうち現在選択されているGUIスパイモード420を使用してデバイス状態情報410を解析し、現在選択されているGUIスパイモード420のGUIインタラクション情報430を推定する。本実施形態の方法の第1の繰り返しでは、現在選択されているGUIスパイモード420は、GUIスパイモードの集合の第1のGUIスパイモード420である。GUIスパイモードの集合は、集合の最後のGUIスパイモード420を除いて、任意に配置してもよく、予め決められた規則に従って配置してもよい。
【0053】
判定ステップ530では、現在選択されているGUIスパイモード420が、GUIスパイモードの集合の最後のGUIスパイモード420であるか否かを判定するためのチェックを行う。本発明の方法のこの実施形態では、GUIスパイモードの集合の最後のGUIスパイモード420は、コンピュータビジョンツールのために予約されている。コンピュータビジョンツールは、GUIスパイモードの集合の他の全てのGUIスパイモードが正確なGUIインタラクション情報を得ることができない場合に、フォールバックGUIスパイモード420として機能する。コンピュータビジョンツールについては、GUIスパイモードの結果、すなわち推定GUIインタラクション情報430は、常に真として分類される。したがって、このチェックにおいて、現在選択されているGUIスパイモード420がGUIスパイモードの集合の最後のGUIスパイモード420であると判定された場合、方法500はステップ540に進み、ここで、コンピュータビジョンツールによって推定された推定GUIインタラクション情報430を(分類結果に基づくGUIインタラクション情報450として)出力し、方法500が終了する。このチェックにおいて、現在選択されているGUIスパイモード420が、集合の最後のGUIスパイモード420、すなわちコンピュータビジョンツールではないと判定された場合、方法500は、ステップ550に進む。
【0054】
ステップ550では、図3及び図4を参照して上述したように、参照モデルに基づいて、現在選択されているGUIスパイモード420の推定GUIインタラクション情報430を分類する。
【0055】
判定ステップ560では、現在選択されているGUIスパイモード420についての推定GUIインタラクション情報430の分類の性質(nature)を判定するためのチェックを実行する。推定GUIインタラクション情報430が真として分類された場合、方法500は、ステップ570に進み、現在選択されているGUIスパイモード420によって推定された推定GUIインタラクション情報430が(分類結果に基づくGUIインタラクション情報450として)出力され、方法500は、終了する。このチェックにおいて、推定GUIインタラクション情報430が偽と分類されたと判定された場合、方法は、ステップ580に進み、ここで、現在選択されているGUIスパイモード420の推定GUIインタラクション情報430が破棄され、GUIスパイモードの集合内の選択されたGUIスパイモード420が、GUIスパイモードの集合の次のGUIスパイモード420にシフトされ、方法500はステップ520に進み、方法500における次の繰り返しが行われる。方法500は、終了するまで、すなわち、推定GUIインタラクション情報430の最初の「真」の分類、及びこれに続く、分類結果に基づく推定GUIインタラクション情報450の出力の時点まで繰り返される。
【0056】
図5Aに例示する方法500の実施形態では、方法の直列実装では、GUIスパイモードの集合の最後のGUIスパイモード420を使用する前に方法500が終了する可能性があるため、GUIスパイモードの集合の全てのGUIスパイモード420が使用されない可能性があるが、以下で更に詳細に説明するように、GUIスパイモードの集合の最後のGUIスパイモード420に到達する前に推定GUIインタラクション情報430の「真の」分類が発生したか否かに関係なく、全てのGUIスパイモードが使用されるように本発明の方法の直列実装を実施することもできる。
【0057】
図5Bは、本発明の実施形態に基づく方法600の並列実装の一例を示すフローチャートである。ステップ610において、本方法は、デバイス状態情報410と、並列方式で採用されるGUIスパイモードの集合との形式のデータによって初期化される。
【0058】
ステップ620において、GUIスパイモードの集合のGUIスパイモード420のそれぞれを同時に使用してデバイス状態情報410を解析し、GUIスパイモードの集合のGUIスパイモード420のそれぞれについてGUIインタラクション情報430を推定する。
【0059】
ステップ630において、図3及び図4を参照して上述したように、参照モデルに基づいて、GUIスパイモード420のそれぞれについての推定GUIインタラクション情報430を同時に分類する。
【0060】
ステップ640において、GUIスパイモードの集合のGUIスパイモード420のそれぞれについての分類結果に基づくGUIインタラクション情報450を出力する。以下に説明するように、幾つかの方式によって、分類結果に基づいて出力を判定できる。分類結果に基づいて出力を判定できる以下の方式は、本発明の方法の直列実装にも適用され、この直列実装では、GUIスパイモードの集合の最後のGUIスパイモード420を使用する前に推定GUIインタラクション情報430の「真の」分類が発生したか否かに関わらず、GUIスパイモードの集合の全てのGUIスパイモード420を使用する。
【0061】
上述したように、所与のGUIスパイモード420についての推定GUIインタラクション430情報の分類は、参照モデルに基づいて、推定GUIインタラクション430情報の全体又は部分集合に、0と1との間(0と1を含む)のスコアを割り当てることを含んでもよい。したがって、分類結果に基づくGUIインタラクション情報450は、このスコアに基づいて出力してもよい。また、推定GUIインタラクション情報430は、GUIスパイモード420のそれぞれについて真又は偽として分類してもよい。したがって、GUIインタラクション情報450は、真として分類された推定GUIインタラクション情報430の集約(aggregation)に基づいて出力してもよい。
【0062】
一実施形態では、所与のGUIスパイモード420について、割り当てられたスコアの合計が最も高い推定GUIインタラクション情報430をGUIインタラクション情報の出力として使用する。
【0063】
別の実施形態では、出力GUIインタラクション情報、すなわち、分類結果に基づくGUIインタラクション情報450は、例えば、複数のGUIスパイモードについての推定GUIインタラクション情報430の集合全体に亘る推定GUIインタラクション情報430の各部分集合に対する最高スコアに基づいて、複数のGUIスパイモードからの推定GUIインタラクション情報430の部分集合で構成してもよい。例えば、分類結果は、API GUIスパイモードの1つから、特定のGUIインタラクションのアプリケーション名がより正確に取得された可能性があり、一方、コンピュータビジョンツールを含むGUIスパイモードから、インタラクションされたGUI要素のバウンディングボックスのx-y座標がより正確に取得された可能性があることを示唆してもよい。これに応じて、出力GUIインタラクション情報450は、複数のGUIスパイモードの1つ以上からの推定GUIインタラクション情報430の部分集合として構成してもよい。
【0064】
別の実施形態として、推定GUIインタラクション情報430から、スコアがある閾値を下回る又は偽として分類された推定GUIインタラクション情報430の全体又は部分集合をフィルタリングによって除外してもよい。その後、出力GUIインタラクション情報450は、フィルタリングされなかった、すなわち、割り当てられたスコアがある閾値以上である又は真として分類された推定GUIインタラクション情報430の集約に基づいてもよい。
【0065】
フィルタリングされていない複数のGUIスパイモードについての推定GUIインタラクション情報430の集約は、例えば、残っている推定GUIインタラクション情報430から、マウスカーソル126の平均x-y座標、又は特定のGUI要素のバウンディングボックス128の平均座標、又はアプリケーション名のモードを取得することを含んでもよい。
【0066】
上述したように、本発明の動作コンテキストは、インテリジェントプロセスキャプチャ及び自動化のためのプラットフォームであり、これは、所与のプロセスの手動デモンストレーションの「キャプチャ」、すなわち記録に関与する。本発明の方法は、オペレータの好み及び/又は動作コンテキストの演算要件及び制約に応じて、プロセスの手動デモンストレーションに対して幾つかの方式で実施できる。
【0067】
一実施形態では、本発明の方法300は、手動デモンストレーションプロセス中に実行してもよい。すなわち、方法300は、オペレータがエンドユーザデバイスとインタラクトして、自動化するべきプロセスの手動デモンストレーションを実行しているときに、所与のGUIインタラクションに対して実行してもよい。
【0068】
あるいは、本発明の方法300は、手動デモンストレーションプロセスが完了した時点で実行してもよい。オペレータは、プロセスの手動デモンストレーション中に演算リソースを確保する必要がある場合、本発明のこの実施形態を採用できる。このような例では、関連するデバイス状態情報は、メモリデバイス112にストリーミングされ、保存され、上述したように、後にアクセスして処理される。
【0069】
プロセスの手動デモンストレーションは、複数のアプリケーションとの連続的なオペレータインタラクションを含んでもよい。このような例では、本発明の実施形態に基づく方法300は、第2のアプリケーションに切り替えた後、第1のアプリケーションに対して実行してもよい。例えば、オペレータは、Microsoft Excelとインタラクトした後に、Microsoft Edgeとインタラクトしてもよい。このような例では、オペレータがMicrosoft Edgeとのインタラクションを開始すると、Microsoft ExcelとのGUIインタラクションに対して方法300を実行してもよい。このような例では、関連するデバイス状態情報410をメモリデバイス112にストリーミングして保存し、上述したように、後にアクセスして処理してもよい。
【0070】
更に、所与のアプリケーションについての出力GUIインタラクション情報450が、単一のGUIスパイモード420からの推定GUIインタラクション430を使用して判定される場合、本発明の方法300の実施形態において、当該アプリケーションの後続の使用では、当該GUIスパイモード420のみを使用して、GUIインタラクション情報を判定してもよい。例えば、特定のAPIが、特定のアプリケーションのGUIインタラクション情報430を推定するのに適していると判定されることがある。したがって、手動デモンストレーションプロセス中に当該アプリケーションが使用されるときは、常に、本発明の方法300の実施形態において、単一のGUIスパイモード420のみを使用してデバイス状態情報410を解析し、そのアプリケーションのためのGUIインタラクション情報430を推定してもよい。この推定GUIインタラクション情報430を真として分類し、その後出力してもよい。
【0071】
以下は、特許請求され得る実施形態に番号を付したリストである。
【0072】
・実施形態1-エンドユーザデバイスのGUIインタラクション情報を判定するためのコンピュータによって実装される方法において、
1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、1つ又は複数のGUIスパイモードのGUIインタラクション情報を推定することと、
参照モデルに基づいて、1つ又は複数のGUIスパイモードの推定GUIインタラクション情報を分類することと、
分類結果に基づいて、GUIインタラクション情報を出力することと、を含む、方法。
【0073】
・実施形態2-実施形態1に記載の方法において、1つ又は複数のGUIスパイモードは、コンピュータにネイティブなアプリケーションプログラミングインターフェース(Application Programming Interface:API)を含む、方法。
【0074】
・実施形態3-実施形態2に記載の方法において、推定GUIインタラクション情報は、APIからGUIインタラクション情報にアクセスすることによって推定される、方法。
【0075】
・実施形態4-上述のいずれかの実施形態に記載の方法において、1つ又は複数のGUIスパイモードは、後処理法を含む、方法。
【0076】
・実施形態5-実施形態4に記載の方法において、後処理法は、コンピュータビジョンツールを含む、方法。
【0077】
・実施形態6-上述のいずれかの実施形態に記載の方法において、推定GUIインタラクション情報は、GUI上で光学式文字認識を実行することによって推定される、方法。
【0078】
・実施形態7-上述のいずれかの実施形態に記載の方法において、参照モデルは、所定の規則に基づく発見的モデルを含む、方法。
【0079】
・実施形態8-実施形態1から実施形態6のいずれか1つに記載の方法において、参照モデルは、過去データでトレーニングされたマルチモーダル深層学習モデルを含む、方法。
【0080】
・実施形態9-上述のいずれかの実施形態に記載の方法において、1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、GUIインタラクション情報を推定することは、推定値を判定できない場合にエラーを返すことを含む、方法。
【0081】
・実施形態10-上述のいずれかの実施形態に記載の方法において、デバイス状態情報を解析すること、及び対応する推定GUIインタラクション情報を分類することは、複数のGUIスパイモードについて直列に実行される、方法。
【0082】
・実施形態11-実施形態1から実施形態9のいずれか1つに記載の方法において、デバイス状態情報を解析すること、及び対応する推定GUIインタラクション情報を分類することは、複数のGUIスパイモードについて並列に実行される、方法。
【0083】
・実施形態12-上述のいずれかの実施形態に記載の方法において、参照モデルに基づいて推定GUIインタラクション情報を分類することは、推定GUIインタラクション情報を真又は偽のいずれかとして分類することを含む、方法。
【0084】
・実施形態13-実施形態12に記載の方法において、最後のGUIスパイモードがコンピュータビジョンツールであり、対応する推定GUIインタラクション情報が真として分類される、方法。
【0085】
・実施形態14-実施形態12に記載の方法において、推定GUIインタラクション情報を分類することは、真の分類が判定されたときに終了される、方法。
【0086】
・実施形態15-実施形態12に記載の方法において、分類結果に基づいてGUIインタラクション情報を出力することは、真として分類された第1の推定GUIインタラクション情報を出力することを含む、方法。
【0087】
・実施形態16-実施形態1から実施形態11のいずれか1つに記載の方法において、参照モデルに基づいて推定GUIインタラクション情報を分類することは、参照モデルに基づいて推定GUIインタラクション情報の部分集合にスコアを割り当てることを含む、方法。
【0088】
・実施形態17-実施形態16に記載の方法において、分類結果に基づいてGUIインタラクション情報を出力することは、スコアが最も高い分類済み推定GUIインタラクション情報を出力することを含む、方法。
【0089】
・実施形態18-実施形態16に記載の方法において、分類結果に基づいてGUIインタラクション情報を出力することは、分類済み推定GUIインタラクション情報をスコアに基づいてフィルタリング及び集約することを含む、方法。
【0090】
・実施形態19-実施形態18の方法において、フィルタリングは、スコアが所定の閾値未満の分類済み推定GUIインタラクション情報の部分集合を除外することを含む、方法。
【0091】
・実施形態20-実施形態16に記載の方法において、分類結果に基づいてGUIインタラクション情報を出力することは、スコアが所定の閾値以上の分類済み推定GUIインタラクション情報を集約することを含む、方法。
【0092】
・実施形態21-上述のいずれかの実施形態に記載の方法において、分類結果に基づいてGUIインタラクション情報を出力することは、複数のGUIスパイモードのうちの1つ以上を使用して推定された、分類済み推定GUIインタラクション情報の部分集合を出力することを含む、方法。
【0093】
・実施形態22-上述のいずれかの実施形態に記載の方法において、手動デモンストレーションプロセス中に行われる、方法。
【0094】
・実施形態23-実施形態22に記載の方法において、手動デモンストレーションプロセスが完了すると実行される、方法。
【0095】
・実施形態24-実施形態22又は実施形態23に記載の方法において、手動デモンストレーションは、複数のアプリケーションとの連続的なインタラクションを含む、方法。
【0096】
・実施形態25-実施形態24に記載の方法において、第2のアプリケーションに切り替えた後、第1のアプリケーションに対して実行される、方法。
【0097】
・実施形態26-上述のいずれかの実施形態に記載の方法において、アプリケーションの出力GUIインタラクション情報が単一のGUIスパイモードを使用して推定される場合、その単一のGUIスパイモードは、そのアプリケーションの後の使用時のデバイス状態情報の解析にも使用される、方法。
【0098】
・実施形態27-上述のいずれかの実施形態に記載の方法において、参照モデルに基づいて推定GUIインタラクション情報を分類することは、デバイス状態情報及び推定GUIインタラクション情報を分類器に渡し、分類されたGUIインタラクション情報を出力することを含む、方法。
【0099】
・実施形態28-上述のいずれかの実施形態に記載の方法において、デバイス状態情報は、デバイス状態情報の一致する部分集合を含む、方法。
【0100】
・実施形態29-実施形態7に記載の方法において、所定の規則は、推定GUIインタラクション情報のための閾値を定義する、方法。
【0101】
・実施形態30-実施形態8に記載の方法において、過去データでトレーニングされたマルチモーダル深層学習モデルは、残差ニューラルネットワークを含む、方法。
【0102】
・実施形態31-上述のいずれかの実施形態に記載の方法において、1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、GUIインタラクション情報を推定することは、ユーザインタラクションのインスタンスごとに行われる、方法。
【0103】
・実施形態32-実施形態1から実施形態30のいずれか一項に記載の方法において、1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、GUIインタラクション情報を推定することは、定期的な間隔で行われる、方法。
【0104】
・実施形態33-上述のいずれかの実施形態に記載の方法において、デバイス状態情報は、特定の時刻に取得されたデバイス状態情報を含む、方法。
【0105】
・実施形態34-実施形態1から実施形態32のいずれか1つに記載の方法において、デバイス状態情報は、時間窓内に取得されたデバイス状態情報を含む、方法。
【0106】
・実施形態35-上述のいずれかの実施形態に記載の方法において、デバイス状態情報は、対応するタイムスタンプと共にメモリに記憶される、方法。
【0107】
・実施形態36-実施形態35に記載の方法において、1つ又は複数のGUIスパイモードを使用してデバイス状態情報を解析し、GUIインタラクション情報を推定することは、1つ又は複数のGUIスパイモードを使用してメモリに記憶されたデバイス状態情報を解析することを含む、方法。
【0108】
・実施形態37-上述のいずれかの実施形態に記載の方法において、デバイス状態情報は、ユーザ入力情報とGUI状態情報とを含む、方法。
【0109】
・実施形態38-上述のいずれかの実施形態に記載の方法において、GUIインタラクション情報は、GUI要素インタラクション情報を含む、方法。
【0110】
・実施形態39-実施形態1から実施形態38のいずれか1つに記載の方法をコンピュータに実行させるための命令を含む、非一時的なコンピュータ可読媒体。
【0111】
・実施形態40-
エンドユーザデバイスのGUIを表示するためのディスプレイと、
ディスプレイに接続された少なくとも1つのプロセッサであって、実施形態1から実施形態38のいずれかに記載の方法に基づく命令を実行するように構成された少なくとも1つのプロセッサと、を備える、システム。
図1
図2
図3
図4
図5A
図5B
【国際調査報告】