(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022109927
(43)【公開日】2022-07-28
(54)【発明の名称】マルチアンカーを用いたユーザインターフェース(UI)の抽出、認識および機械学習
(51)【国際特許分類】
G06F 3/0484 20220101AFI20220721BHJP
G06T 7/60 20170101ALI20220721BHJP
G06F 11/36 20060101ALI20220721BHJP
【FI】
G06F3/0484
G06T7/60 180
G06F11/36 188
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2022066133
(22)【出願日】2022-04-13
(62)【分割の表示】P 2020122536の分割
【原出願日】2020-07-17
(31)【優先権主張番号】16/516,998
(32)【優先日】2019-07-19
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.FLASH
3.JAVASCRIPT
4.ZIGBEE
5.BLUETOOTH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】452 5th Avenue, 22nd Floor, New York,NY 10018,United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(72)【発明者】
【氏名】コスミン,ヴォイク
【テーマコード(参考)】
5B042
5E555
5L096
【Fターム(参考)】
5B042GB02
5B042HH49
5E555AA09
5E555AA79
5E555BA01
5E555BB01
5E555BC04
5E555CB33
5E555EA08
5E555EA19
5E555FA00
5L096CA04
5L096FA05
5L096FA67
5L096FA76
5L096KA04
(57)【要約】 (修正有)
【課題】ワークフローの生成又はロボットプロセスオートメーション(RPA)のランタイム時のエラーを軽減するコンピューティング装置及び方法を提供する。
【解決手段】ユーザインターフェース(UI)内のウィンドウ又はアプリケーション302上の複数のアンカー312、314は、RPA300に利用される。複数のアンカーは、RPAのためのUIのキャプチャ画像内の要素間の関係を決定するために利用される。アンカリングの結果は、機械学習(ML)コンポーネントのトレーニング又は再トレーニングに利用される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ユーザインターフェース(UI)を表示するように構成されたディスプレイ装置と、
クラウドマシン環境でアクティビティを自動化するためにロボットを操作するように構成されたプロセッサであって、前記ロボットは前記UIのキャプチャ画像内の2つ以上のアンカーを利用するプロセッサと、
前記2つ以上のアンカーを有する前記キャプチャ画像をコンピュータビジョン(CV)エンジンに送信し、前記キャプチャ画像を光学的文字認識(OCR)エンジンに送信するように構成されたトランシーバと、
前記OCRエンジンからの結果と、前記キャプチャ画像の領域内の前記2つ以上のアンカーおよびターゲット要素に関連したラベルおよびテキストフィールド要素の幾何学的一致に基づいて前記CVエンジンによって決定された関係を受信するように構成された前記トランシーバであって、前記幾何学的一致が信頼区間(CI)に関連付けられているトランシーバと、を備え、
前記ロボットは、前記関係に基づいて、前記UI内の前記ターゲット要素に対して前記アクティビティを実行する、コンピューティング装置。
【請求項2】
前記関係が、アンカーボタンおよび前記ラベルまたは前記テキストフィールドの間の幾何学的位置を定義する、請求項1に記載のコンピューティング装置。
【請求項3】
前記キャプチャ画像が、前記クラウドマシン環境のビデオストリームからのものである、請求項1に記載のコンピューティング装置。
【請求項4】
前記幾何学的一致が、前記UIの前記キャプチャ画像内の1または複数の要素間の角度または三角形の配置を含む、請求項1に記載のコンピューティング装置。
【請求項5】
前記幾何学的一致が、MLモデルに基づいている、請求項1に記載のコンピューティング装置。
【請求項6】
再トレーニングが、前記UIのキャプチャ画像から検出された欠落した要素に基づいて実行される、請求項1に記載のコンピューティング装置。
【請求項7】
前記幾何学的一致が、前記UIの前記キャプチャ画像内の要素の弾性的または非弾性的な幾何学的関係に基づいている、請求項1に記載のコンピューティング装置。
【請求項8】
前記複数のアンカーのうちの第1アンカーが第1ボタンに配置され、前記複数のアンカーのうちの第2アンカーが第2ボタンに配置されている、請求項1に記載のコンピューティング装置。
【請求項9】
コンピューティング装置によって行われる方法であって、
前記コンピューティング装置によって、ユーザインターフェース(UI)を表示することと、
前記コンピューティング装置によって、クラウドマシン環境でアクティビティを自動化するためにロボットを操作することであって、前記ロボットは前記UIのキャプチャ画像内の2つ以上のアンカーを利用することと、
前記コンピューティング装置によって、前記2つ以上のアンカーを有する前記キャプチャ画像をコンピュータビジョン(CV)エンジンに送信し、前記コンピューティング装置によって、前記キャプチャ画像を光学的文字認識(OCR)エンジンに送信することと、
前記コンピューティング装置によって、前記OCRエンジンからの結果と、前記キャプチャ画像の領域内の前記2つ以上のアンカーおよびターゲット要素に関連したラベルおよびテキストフィールド要素の幾何学的一致に基づいて前記CVエンジンによって決定された関係を受信することであって、前記幾何学的一致が信頼区間(CI)に関連付けられていること、を含み、
前記ロボットは、前記関係に基づいて、前記UI内の前記ターゲット要素に対して前記アクティビティを実行する、方法。
【請求項10】
前記関係が、アンカーボタンおよび前記ラベルまたは前記テキストフィールドの間の幾何学的位置を定義する、請求項9に記載の方法。
【請求項11】
前記キャプチャ画像が、前記クラウドマシン環境のビデオストリームからのものである、請求項9に記載の方法。
【請求項12】
前記幾何学的一致が、前記UIの前記キャプチャ画像内の1または複数の要素間の角度または三角形の配置を含む、請求項9に記載の方法。
【請求項13】
前記幾何学的一致が、MLモデルに基づいている、請求項9に記載の方法。
【請求項14】
再トレーニングが、前記UIのキャプチャ画像から検出された欠落した要素に基づいて実行される、請求項9に記載の方法。
【請求項15】
前記幾何学的一致が、前記UIの前記キャプチャ画像内の要素の弾性的または非弾性的な幾何学的関係に基づいている、請求項9に記載の方法。
【請求項16】
前記複数のアンカーのうちの第1アンカーが第1ボタンに配置され、前記複数のアンカーのうちの第2アンカーが第2ボタンに配置されている、請求項9に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
ロボティック・プロセス・オートメーション(RPA)は、エンタープライズプラットフォーム、仮想マシン(VM)構成、リモートデスクトップ、クラウドコンピューティング、デスクトップ・アプリケーションなどの反復的な操作、機能、またはワークフローを自動化し得る。自動化、アンカーまたは基準点のためのユーザインターフェース(UI)のキャプチャ、抽出、スクレイピングまたは実行は、UIの画像のターゲット領域内の1または複数の要素を識別するために、コンピュータビジョン(CV)またはマシンビジョン(MV)で利用され得る。しかし、単一のアンカーまたは基準点を利用する構成は、望ましくない重複、エラー、偽陽性、欠落した要素などの影響を受けやすい可能性がある。
【0002】
RPAデザインまたはワークフローの実行では、DPI(ドットパーインチ)、サイジング、スケーリング、ビデオフレームレート、シェーディングなどに基づくエラーが発生し得る。これらのエラーは、仮想マシンまたはリモートマシンの構成でより顕著になる可能性がある。また、CVを使用したRPAでは、UI内のボタンの形状やチェックボックスがエラーになり得る。改良されたアンカリングを使用して、ワークフローの生成またはRPAのランタイム時のエラーを軽減することが望ましい。
【発明の概要】
【0003】
1または複数のワークフローのロボットプロセスオートメーション(RPA)のためのユーザインターフェース(UI)にマルチアンカリングを利用するための方法および装置が開示されている。ロボットの開発中またはランタイム中のUI上のマルチアンカリング解析は、自動化のための1または複数のワークフローのために、抽出されたまたはスクレイプされた画像上の要素検出またはトレーニングのために利用され得る。また、マルチアンカリング解析は、デスクトップ・アプリケーション、Webアプリケーション、および仮想マシンまたはリモートマシンの構成のためのUI上で構成され、エラーを減らし、パフォーマンスを向上させ得る。
【図面の簡単な説明】
【0004】
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【0005】
【
図1A】ロボットプロセスオートメーション(RPA)の開発、設計、運用、または実行の説明図である。
【0006】
【
図1B】RPAの開発、設計、運用、または実行の別の説明図である。
【0007】
【
図1C】コンピューティングシステムまたは環境の説明図である。
【0008】
【
図2】RPAのフィードバックループを利用した再トレーニングの説明図である。
【0009】
【
図3】RPAのユーザインターフェース(UI)のマルチアンカリングの説明図である。
【0010】
【
図4】RPA用のUIのマルチアンカリングの別の説明図である。
【0011】
【
図4A】RPA用のUIのマルチアンカリングの別の説明図である。
【0012】
【
図5】RPA用UIのマルチアンカリングを利用した処理の説明図である。
【発明を実施するための形態】
【0013】
以下に記載されている方法およびプロセスでは、記載されているステップは任意の順序で実行され、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「操作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、より長いリストと同様に拡張され得る。表記X/Yを使用する場合、XまたはYを含み得る。あるいは、表記X/Yを使用する場合、XおよびYを含み得る。X/Y表記は、同じ説明されたロジックを有するより長いリストと同様に拡張され得る。
【0014】
図1Aは、ロボットプロセスオートメーション(RPA)の開発、設計、運用、または実行100の説明図である。デザイナー102は、スタジオ、開発プラットフォーム、開発環境などとして時々参照され、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択(複数可)から、ロボットは、ユーザまたはオペレータによって選択されたビジュアルディスプレイの領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)操作または機械学習(ML)モデルに関連して、四角、直方体、円、多角形、自由形などの多次元の形状をUIロボットの開発およびランタイムに利用され得る。
【0015】
ワークフローによって達成され得る操作の非限定的な例としては、1または複数のログインの実行、フォームへの入力、情報技術(IT)管理などが挙げられる。UI自動化のためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に識別する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語((HTML)、HTML5、拡張可能なマークアップ言語(XML)、Javascript、C#、C++、Silverlightなどであり得る。
【0016】
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態を実行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスのために、実行エラーが発生したときのワークフローの動作を判断するように構成され得る。
【0017】
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアから透過的なUIを自動化し得る。展開時には、1または複数のロボットは、コンダクター104(オーケストレータと呼ばれることもある)によって管理、制御などされ得る。コンダクター104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを実行または監視するようにロボットまたは自動化実行装置106に指示または命令し得る。コンダクター104は、コンピューティングプラットフォームを自動化するために複数のロボットを指示または命令するための中央または半中央点として機能し得る。
【0018】
特定の構成では、コンダクター104は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化コンダクター106とコンダクター104との間の接続または通信の作製および維持を含み得る。デプロイメントは、実行のために割り当てられたロボットへのパッケージバージョンの配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成のメンテナンスおよび配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを保存し、迅速にクエリを実行する機能を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクター104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として機能することにより、相互接続性を提供し得る。
【0019】
ロボット(複数可)または自動化実行装置106は、無人108または有人110として構成され得る。無人108操作の場合、自動化は、サードパーティの入力または制御なしで実行され得る。有人110操作については、サードパーティのコンポーネントからの入力、指令、指示、指導などを受けて自動化が行われ得る。
【0020】
ロボット(複数可)または自動化実行装置106は、デザイナー102内に構築されたワークフローを実行する実行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化実行装置106は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0021】
いくつかの実施形態では、ロボット(複数可)または自動化実行装置106は、ユーザモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザと同じ権利を持ち得る。また、高密度(HD)環境など、各機械を最大限に活用するHDロボットにも対応し得る。
【0022】
特定の実施形態では、ロボット(複数可)または自動化実行装置106は、それぞれが特定の自動化タスクまたはアクティビティに特化したいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザモードロボットサービス、実行装置、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し、コンダクター104と実行ホスト(すなわち、ロボットまたは自動化実行装置106が実行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、ロボット(複数可)または自動化実行装置106のための資格情報を信頼して管理し得る。
【0023】
ユーザモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクター104と実行ホストとの間のプロキシとして機能し得る。ユーザモードのロボットサービスは、ロボット130の資格情報を信頼して管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0024】
実行装置は、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る)。実行装置は、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントであり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0025】
上で説明したように、ロボットまたは自動化実行装置106のコンポーネントが分割される構成では、開発者、サポートユーザ、およびコンピューティングシステムが、各コンポーネントによる実行、識別、および追跡をより容易に実行するのに役立つ。この方法では、実行装置とサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を設定し得る。実行装置は、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、作成されたコンピューティングシステムの構成に関係なく、任意のDPIで実行し得る。また、デザイナー102からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0026】
図1Bは、RPAの開発、設計、運用、または実行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザインターフェース(UI)自動化126は、1または複数のドライバコンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130を使用してアクティビティを行い得る。他のドライバ132は、UIの要素を得るためにロボットによるUI自動化のために利用され得る。それらには、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UI自動化のために使用されるドライバであり得る。
【0027】
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ144とを含むことができるコンピューティングシステムまたは環境140の説明図である。1または複数のプロセッサ144は、中央処理装置(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理装置(GPU)、コントローラ、マルチコア処理装置、3次元プロセッサ、量子コンピューティング装置、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。1または複数のプロセッサ144はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0028】
メモリ146は、プロセッサ(複数可)144によって実行または処理される情報、命令、コマンド、またはデータを記憶するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一過性のコンピュータ可読媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一過性のコンピュータ可読媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものであってもよい。
【0029】
通信装置148は、周波数分割多重アクセス(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多重アクセス(TDMA)、符号分割多重アクセス(CDMA)、直交周波数分割多重アクセス(OFDM)、直交周波数分割多重アクセス(OFDMA)、GSM(Global System for Mobile)通信、GPRS(General Packet Radio Service)、UMTS(Universal Mobile telecommunications System)、cdma2000、広帯域CDMA(W-CDMA)、高速下りパケットアクセス(HSDPA)、高速上りパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、長期進化(LTE)、LTE Advanced(LTE-A)、802.11x、Wi-Fi、Zigbee、Ultra-WideBand(UWB)、802.16x、802.15、home Node-B(HnB)、Bluetooth、無線周波数識別(RFID)、赤外線データアソシエーション(IrDA)、近距離無線通信(NFC)、第5世代(5G)、新無線(NR)、または1もしくは複数のアンテナを介した通信のための他の任意の無線または有線装置/トランシーバとして構成され得る。
アンテナは、単数形、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
【0030】
1または複数のプロセッサ144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイ装置150にさらに結合され得る。ディスプレイ装置150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0031】
キーボード152およびコンピュータマウス、タッチパッドなどの制御装置154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力は、それと通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供されてもよいし、コンピューティングシステムまたは環境140が自律的に動作してもよい。
【0032】
メモリ146は、1または複数のプロセッサ144によって実行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納してもよい。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション固有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。
【0033】
コンピューティングシステムまたは環境140は、サーバ、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティング装置、量子コンピューティング装置、クラウドコンピューティング装置、モバイル装置、固定型モバイル装置、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0034】
本明細書に記載された例では、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリート構成要素のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0035】
モジュールは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。識別された実行可能コードの単位は、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。識別されたモジュールの実行ファイルは、論理的に結合されるとモジュールを構成するように、異なる場所に共に配置されたり、格納されたりする。
【0036】
実行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリ装置間などに分散され得る。操作データまたは機能データは、モジュール内で識別され、ここで示されてもよく、任意の適切なタイプのデータ構造内で適切な形態で具現化され、組織化され得る。
【0037】
本明細書で与えられた例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッドな実施形態で構成され得る。コンピュータプログラムは、互いに操作可能な通信を行い、情報または指示を渡すためのモジュールで構成され得る。
【0038】
図2は、RPAのフィードバックループを利用した再トレーニングの説明図である。CVモジュール、エンジン、またはコンポーネント202、および光学的文字認識(OCR)モジュールまたはエンジン204は、対応する座標およびタイプ情報とともに、キャプチャ画像内に見出された要素、ボタン、チェックボックスをロボット206から受信し得る。キャプチャ画像は、自動化のために開発中、ランタイム中などに作成されたクライアント上のUIのターゲットとなるビジュアル部分およびテキスト部分のスクリーンショットであり得る。画像は、ウィンドウ、文書、報告書、領収書、請求書、アプリケーションなどの一部または一部分であり得る。画像は、構造化されたデータまたは構造化されていないデータのいずれかを含み得る。UIの画像は、自動化されるアプリケーションのGUI(Graphical User Interface)を含み得る。
【0039】
ロボット206は、CVモジュール、エンジン、またはコンポーネント202に対するUIの画像中のターゲットまたは要素の2つ以上のアンカーポイント、参照ポイントなどを特定し得る。特定の構成では、第1アンカーが自動的に選択されてもよく、ターゲット領域内の要素が一意でない場合には、1または複数の追加の識別アンカーに対してユーザ入力が要求され得る。一例として、2つ以上のアンカーポイントは、エディットボックスおよびチェックボックスの関係を決定するのに役立ち得る。特定の構成では、関係は、CVモジュール、エンジン、またはコンポーネント202が、チェックボックスを編集ボックスまたはラジオボタンと誤認し、MLモデルにおける要素サイズまたはフォーマットのためなどに誤ってそれを廃棄することを防止し得る。
【0040】
ロボット206はまた、キャプチャUI画像またはスクリーンの関係を決定するための支援のために、当業者によって理解されるように、テキストまたはテキストフィールドを検出するために、ターゲット領域のキャプチャ画像またはスクリーンショットをOCRモジュールまたはエンジン204に送信し得る。テキストフィールドは、1または複数のテキストトークンで構成され得る。テキストトークンは、空白文字、句読点文字、特殊文字などのような、あらかじめ決められた区切り文字のセットの間に見出される1または複数の文字を含み得る。テキストトークンには、番号、日付、電子メールアドレス、統一リソース識別子(URI)、郵便番号などを含め得る。
【0041】
RPA200のためのUIのマルチアンカリングにおいて、UI画像内の1または複数のアンカーまたは参照点は、要素の識別、可視化、開発、生成、生産、再生、トレーニング、再トレーニングなどのために、幾何学的、場所的、位置的、座標ベースの関連付けまたは関係をペアリングまたは作成するために利用され得る。特定の構成では、マルチアンカリングは、UIの一次キャプチャに対するエラーチェックの追加または二次レイヤーとして、RPAシステムによって利用され得る。
【0042】
自動化のためのUIのアンカーとして定義されているラベルおよびテキストフィールドは、関係によって接続されていたり、関係を形成したりし得る。例では、テキストフィールドはターゲット、ラベルはアンカーとし得る。例として、第1名前フィールドおよびラベルがあるUI内の要素の左側に関係があり得、ラベルはアンカーされ、第1名前フィールドの上にアンカーされた第2名前フィールドがある。RPA開発時には、アクティビティまたはワークフローに必要な1または複数の要素に対してアンカーのセットを定義し得る。特定の構成では、ターゲット要素とともに、要素およびアンカーは、ランタイム時などの自動化のための後続の実行時に同じ要素を識別するために使用され得る論理的なフィンガープリントとして動作し得る。
【0043】
図3は、RPA300用のUIのマルチアンカリングの別の説明図である。例として、UI内のウィンドウまたはアプリケーション302は、フィールド304
1~4、ボタン1(306)、ボタン2(308)、および最小化/最大化/閉鎖コントロール310のためのラベル1~4を含み得る。ウィンドウまたはアプリケーション302は、ウィンドウまたはアプリケーション302の実質的な前方に配向または配置され得る。特定の構成では、RPA300のためのUIのマルチアンカリングは、仮想マシン環境、リモートデスクトップなどを表し得る。しかしながら、RPA300のためのUIのマルチアンカリングは、当業者によって理解されるように、他のコンピューティング環境またはアプリケーションを表すものであってもよい。例えば、マルチアンカー構成は、ポータブルドキュメントフォーマット(PDF)、Silverlight、Flashなどを含むアクティビティに適用され得る。
【0044】
アンカーX(312)は、ボタン2(308)の寸法との関係で座標(x、y、幅、高さ)を含み得る。特定の構成では、座標は、UIの領域に保存された要素の画面座標であってもよく、ランタイム時には、ロボット206によって自動的にすべての要素間の相対関係が推論されてもよい。さらに、ランタイム時の相対関係の使用は、CVモジュール、エンジン、またはコンポーネント202の有無にかかわらず実行され得る。
【0045】
特定の実施形態では、座標(x、y、幅、および高さ)は、バウンディングボックスを定義し得る。パラメータxおよびyは頂点の座標、wおよびhは幅および高さであり得る。ターゲットおよびアンカーの間の関係は、UIまたはアプリケーション領域におけるスケール、DPIなどの変化または分散に対する許容範囲または閾値の範囲内で弾性的であり得る。イメージマッチングまたはセレクタベースの構成では、CVを使用するロボットは、ワークフローまたはアクティビティを自動化するために開発中に特定された要素を配置するために同一の構造を必要とし得るため、変更または差異は望ましくないし、問題となる可能性がある。自動化開発中にアプリケーションが異なる場合、ロボットまたはワークフローがランタイム時にクラッシュすることがあり得る。
【0046】
ウィンドウサイズに基づいてコンテンツをリフローするウェブページなど、動的または「流動的」なレイアウトを有するアプリケーションには、弾性が特に望ましい場合がある。弾性は、仮想マシン、リモートマシン、または仮想デスクトップ環境のビデオストリームまたは出力にも有益であり得る。特定の実施形態では、幾何学的アンカーまたは参照座標または角度が非弾性であることが望ましい場合がある。
【0047】
アンカーY(314)は、ボタン1(306)およびフィールド3044との間の幾何学的角度(θ)関係1を測定することによって、ウィンドウまたはアプリケーション302内の要素検出のために利用され得る。アンカーX(312)およびアンカーY(314)を介したマルチアンカリングは、ウィンドウまたはアプリケーション302内の要素が実質的に異なるか、または自動化開発中のものと異なる場合に、ランタイム時にロボットまたはワークフローのクラッシュを防止し得る。これは、ロボット206および/もしくはCVモジュール、エンジン、またはコンポーネント202による複数のアンカーを使用して、他の画面要素とのその関係、インターフェース内のその位置、関連するテキストラベルなどに基づいて、画面要素を一意に識別するために達成され得る。
【0048】
アンカーX(312)は、ボタン2(308)およびフィールド3044の間の距離316の関係2を決定するために利用され得る。ボタン2(308)およびフィールド3044の間の距離316は、相対的であっても、絶対的であってもよい。関係1および関係2は、ワークフロー、アクティビティなどのランタイム実行中に、ロボット生成または再生のためのOCR結果を有するCVモジュール、エンジン、またはコンポーネント202によって利用され得る。本明細書で説明したように、検出された要素の実質的にすべてまたはサブセットの結果は、エラーを低減し、自動化のための性能を向上させるために、各要素の信頼度をロボット206に備えられ得る。
【0049】
関係1または関係2は、トレーニングまたは再トレーニングのためのMLトレーニングモジュール、エンジン、またはコンポーネント210によってモデルを更新するために画像データベース208を更新するのにも利用され得る。関係1および関係2に加えて、テキストフィールドは、ロボットによる固有の識別のためのエディットボックスとの関係を形成するためのボックスのアンカーまたは参照であり得る。2つの名前ラベルフィールドを有する構成では、1つのテキストボックスに2つのアンカーを使用し得る。
【0050】
図4は、RPA400用のUIのマルチアンカリングの別の説明図である。例として、UI内のウィンドウまたはアプリケーション402は、フィールド404
1~4、ボタン1(406)およびボタン2(408)のラベル1~4を含み得る。アンカーX(410)は、ボタン2(408)の寸法との関係で座標(x、y、幅、高さ)を有し得、UIの縮尺、DPIなどの変化に対して弾性的であり得る。パラメータxおよびyは頂点の座標であり、wおよびhは例えばボタン1(406)またはボタン2(408)の幅および高さであり得る。特定の実施形態では、本明細書で説明したように、幾何学的アンカーまたは参照座標または角度が弾性または非弾性であることが望ましい場合がある。
【0051】
アンカーY(412)およびアンカーX(410)は、ボタン1(406)、フィールド4043およびフィールド4044の間に三角形の関係を形成することにより、UI内のウィンドウまたはアプリケーション402内の要素検出のために利用され得る。三角形の関係は、ボタン1(406)、フィールド4043、およびフィールド4044の角度、位置、または距離に基づくジオメトリを決定することによって達成または実行され得る。三角形の関係は、ワークフロー、アクティビティなどのランタイムまたは実行中に、ロボット生成または再生のためのOCR結果用いて使用されるCVモジュール、エンジン、またはコンポーネント202によって決定または利用され得る。
【0052】
図4Aは、RPA420用のUIのマルチアンカリングの別の説明図である。キャプチャUIのデポジットトランザクション422を有するアプリケーションにおいて、複数のアンカー426
1~426
4は、要素424
2を識別するための関係428を作成するように構成され得る。関係428は、複数のアンカー426
1~426
4に基づいて、形成された要素424
2に対する幾何学的形状または計算された距離に基づいて決定され得る。特定の実施形態では、関係428は、自動化生産、ランタイム時、実行時などの間に、要素424
2を要素424
1および424
3と区別するために利用され得る。特定の実施形態では、CVモジュール、エンジン、またはコンポーネント202が関係428を決定する間、アンカーは、クライアントに設定されてもよいし、またはクライアントで利用されてもよい。
【0053】
マルチアンカリングの他の構成では、三角形の関係について本明細書で説明した分析を使用して、正方形、長方形、任意のN辺多角形、または任意の他の所望の形状などの他の形状を使用して関係を形成してもよい。また、各要素間の角度が弾性を有するようにN辺多角形を形成し、すべてのアンカーを連結する辺で形成されたN辺多角形を縮尺してもよい。特定の構成では、テキストフィールドは、ロボットによる識別のためのエディットボックスとの関係を形成するためのボックスのアンカーまたは参照であり得る。さらに、任意の関係は、ランタイム時または実行時に要素を見つけたり識別したりするために、指紋、印象、テンプレートなどとして機能し得る。
【0054】
再び
図2を参照すると、CVモジュール、エンジン、またはコンポーネント202は、アンカーまたは基準点情報、幾何学などを含む返された結果を処理して、検出された要素の実質的にすべてまたはサブセットのデータまたは情報を画像データベース208に提供し得る。画像データベース208は、サーバ、スタジオコンポーネント、デザインコンポーネントなどによって利用されてもよく、キャプチャ画像または画像(複数可)内の要素のサブセットをラベル付けまたは分類し、それを固有の識別およびモデリング、トレーニング、再トレーニング、ディープラーニング、ニューラルネットワーク操作などのためにMLトレーニングモジュール、エンジン、またはコンポーネント210に提供する。モデル更新212は、重複を減らし、エラーを減らし、偽陽性を減らし、またはRPA自動化性能を向上させるために、設計またはランタイム動作のための解析のために、CVモジュール、エンジン、またはコンポーネント202に提供され得る。
【0055】
ファジーマッチングまたはロジックは、テキストフィールド、テキストなどのGoogle(商標)クラウドOCR、Microsoft(商標)OCR、Tessoract OCR(商標)などのOCRエンジンによるエラーを補填するために、RPA 200のためのマルチアンカリングで利用され得る。画像または画像の一部は、OCRモジュールまたはエンジン204およびCVモジュール、エンジン、またはコンポーネント202に送られ、UIビューの再生のために検出されたタイプまたは要素を有するロボット206にフィードバックが送られ得る。一例として、ファジーマッチングでは、ラベル1~4がそれぞれ名前のリストに割り当てられ得る。ファジーマッチングでは、「NAM」または「NME」を検出すると、「NAME」と論理的に関連づけられたり、マッチングされ得る。同様に、
図3ではフィールド304
1~4は、それぞれエディットボックスのリストに割り当てられ得る。可能な要素のリストは、関係を確立するために、CVモジュール、エンジン、またはコンポーネント202によってロボット206に提供され得る。
【0056】
本明細書に記載されている例では、アンカーに関連する相対距離のような閾値を持つ幾何学的マッチングが、UIのRPAに利用され得る。一例として、UIの画像内の各要素は、信頼度、閾値、マッチング閾値、許容度などと関連し得る。閾値以下の要素に一致する可能性のあるものは、マッチングなどのために破棄され得る。複数のアンカーを使用して、要素のための可能な関係適合は、1または複数の要素の偽陽性が減少するような信頼区間(CI)を利用し得る。
【0057】
一例として、例えば、50%、60%、98%、または任意のパラメータのCI未満の検出された要素は、破棄され得る。CI、信頼度閾値、許容閾値などは、トレーニングまたは再トレーニングされ得るMLまたは深層学習モデルに基づく。異なるCI、信頼度閾値、許容閾値、またはそのようなレベルもしくは範囲は、オーケストレータによるロボットまたは複数のロボットの開発またはランタイム中に、UI内の要素をマッチングするために利用され得る。
【0058】
両方が一致する閾値を満たす2つの要素の間で選択する必要があり得るロボットのために、複数のアンカリングを有する要素、タイプ、または信頼度のリストが利用され得る。複数の一致を有する特定の構成では、UI内の複数のアンカーは、解析中に要素を一意に識別するためのステンシルまたは形状として作用し得る。マルチアンカリングを使用した特定の構成では、ワークフローの設計または開発中に、最も信頼度の高い選択されたUI要素がCV結果に表示され、ランタイム中には、ロボットによるワークフローの実行のために、UI内のすべての要素の可能性がCVによってチェックされ得る。
【0059】
本明細書で与えられた例では、複数のアンカーの幾何学的閾値は、幾何学的閾値のためのより小さい許容範囲で、水平方向または垂直方向にスナップし得る。別の要素で水平または垂直にスナップするアンカーは、別の扱いをされ得る。例えば、方向がスナップ軸に対して垂直に移動できる距離については、より小さい許容誤差が許容され得る。ボタンがテキストフィールド、テキスト、ラベル、またはそのような要素のアンカーとして使用される場合、ランタイムは、その要素に接続が行われたときに、他のより低い確率の要素がそれぞれの位置または座標で接続されるように層化され得る。
【0060】
図5は、RPA500用UIのマルチアンカリングを利用した処理の説明図である。なお、
図5では、操作を順番外で行ってもよいし、図示しないサブステップを行ってもよい。UIの領域の画像は、RPAのためのロボットによってキャプチャされ得る(502)。画像を解析して表示した後、キャプチャ画像およびアンカーは、CVコンポーネントおよびOCRエンジンによって使用され得る(504)。特定の構成では、システムは、選択された要素と、ワークフローに格納されている1または複数のアンカーとの入力を受信し得る。キャプチャ画像内のUIのアンカーを含む要素間の幾何学的関係が計算され得る(506)。選択された要素が識別されない場合、本明細書で説明したように、バウンディングボックスを使用した選択が要素検出のために使用されてもよく、モデルは、MLのための幾何学的関係を使用して再トレーニングされてもよい(508)。RPAロボットによるUIは、ワークフローまたはアクティビティの実行のために、OCR結果と幾何学的関係(510)を用いて再生され得る。
【0061】
再びMLを参照すると、CVモデルの結果には、キャプチャ画像、分析された画像、スクレイプされた画像、または保存された画像ごとに、画像中の1または複数の要素の可能性のリストと、精度を向上させ、誤検出を防ぎ、自動化の性能などを向上させるために関連するMLで決定された確率が含まれ得る。これは、トレーニングモジュール、エンジン、またはコンポーネント210による機械トレーニングまたは再トレーニングのために、CVモジュール、エンジン、またはコンポーネント202が画像データベース208を送信することによって実行され得る。
【0062】
UIの要素がターゲット領域の周りに境界ボックスを描画することによって不適切に識別された場合、ユーザが介入し得る。キャプチャ画像は、ランタイム中に検索するために自動化ファイルに保存され得る。さらに、特定の構成では、ユーザの介入がモデルが要素を逃したことを示したりまたは信号を送ったりすることがあるため、キャプチャ画像はCVモデルの再トレーニングに利用され得る。
【0063】
さらに、CVモジュール、エンジン、またはコンポーネント202が欠落したボタンまたは要素のサブセットを検出した場合、欠落した要素のレポートが自動的に画像データベース208に送信され、MLトレーニングモジュール、エンジン、またはコンポーネント210による機械トレーニングまたは再トレーニングが行われる。MLモデルが要素を識別できなかったことにより要素が欠落し得る。この操作はロボット206に対して透過的であり得る。
【0064】
要素の識別のために、可能な要素のリストには、類似の代替要素が含まれ得る。もたらされ得る各結果は、MLまたはディープラーニングモデルに関連付けられて得る統計CIに関連付けられ得る。これは、UIでオブジェクトを選択しているときに、または何も選択せずに実行され得る。クリック、ユーザ入力、画像の歪みなどにより、要素が誤って識別された場合、マルチアンカーアルゴリズムは1または複数のアンカーを使用して、目的のターゲット要素を正しく決定し得る。例えば、MLエンジンが少なくとも1つの要素がラジオボタンであると信じている場合でも、アンカーXおよびアンカーYを使用して、チェックボックスであるすべての要素を検索し得る。
【0065】
要素が誤って識別された場合、他の要素が分析のアンカーとして使用され得る。例えば、ラジオボタンは、最も可能性の高い一致としてチェックボックスとして誤って識別され得る。確率付きのランク付きリストでは、2番目または3番目に一致する可能性が高いのは、実際の一致または正しい一致であり得る。別の近くにあるラジオボタンなど、別のアンカーを追加すると、特定のコンポーネントが確率のリストからどの要素であるかを識別するのに役立ち得る。
【0066】
また、本明細書に記載されている自律走行車コンピューティングコンテキストの動作の他の例として、CVを用いて道路上のオブジェクトを検出しながら、オブジェクトが自転車であると誤認されないように、「自転車に人が乗っていなければそれは自転車ではない」というような基準やルールを設けてもよい。オブジェクトは自転車であってもよく、人や道路はアンカーや基準点であってもよい。似たようなUIのコンテキストでは、フィールドはターゲットとボタンとフィールドラベルのアンカーであり得る。
【0067】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって実行されるために、コンピュータ可読媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ可読媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ可読記憶媒体が挙げられる。コンピュータ可読記憶媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶装置、内部ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。