(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-30
(54)【発明の名称】ロボティックプロセスオートメーションへの画像パターンマッチング
(51)【国際特許分類】
G06F 8/34 20180101AFI20240723BHJP
G06F 9/451 20180101ALI20240723BHJP
G06N 20/00 20190101ALI20240723BHJP
【FI】
G06F8/34
G06F9/451
G06N20/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021569976
(86)(22)【出願日】2021-10-27
(85)【翻訳文提出日】2022-02-14
(86)【国際出願番号】 US2021056867
(87)【国際公開番号】W WO2023282927
(87)【国際公開日】2023-01-12
(32)【優先日】2021-07-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】ノット,ブランドン
(72)【発明者】
【氏名】バーグ,クリスチャン
(72)【発明者】
【氏名】スカルダ,ヴァツラフ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC07
5B376BC24
5B376BC49
(57)【要約】
本明細書では、コンピューティングシステムを開示する。コンピューティングシステムは、メモリおよびプロセッサを含む。メモリは、ワークフロー推薦アシスタントエンジンのためのプロセッサ実行可能命令を格納する。プロセッサは、メモリに結合される。プロセッサは、ワークフロー推薦アシスタントエンジンを実行して、コンピューティングデバイスに、ユーザーアクティビティに対応するユーザーインターフェースの画像を分析させ、既存の自動化に関する画像のパターンマッチングを実行させ、既存の自動化がユーザーアクティビティに一致することを示すプロンプトを提供させる。
【特許請求の範囲】
【請求項1】
コンピューティングシステムであって
ワークフロー推薦アシスタントエンジンのためのプロセッサ実行可能命令を格納するように構成されたメモリと、
前記メモリに結合された少なくとも1つのプロセッサと、
を含み、
前記少なくとも1つのプロセッサは、前記ワークフロー推薦アシスタントエンジンを実行して、
ユーザーアクティビティに対応するユーザーインターフェースの1または複数の画像を分析することと、
前記1または複数の画像のパターンマッチングを少なくとも1つの既存の自動化について実行することと、
前記少なくとも1つの既存の自動化が前記ユーザーアクティビティと一致することを示すプロンプトを提供することと、
を前記コンピューティングデバイスに実行させるように構成される、コンピューティングシステム。
【請求項2】
前記少なくとも1つのプロセッサは、前記ワークフロー推薦アシスタントエンジンを実行して、
前記1または複数の画像をキャプチャすることと、
前記1または複数の画像を前処理して、1または複数の対応するハッシュを生成することと、
を前記コンピューティングデバイスに実行させる、請求項1に記載のコンピューティングシステム。
【請求項3】
前記1または複数の画像の前記前処理は、前記ユーザーインターフェースのモード反転に関して実行される、請求項2に記載のコンピューティングシステム。
【請求項4】
前記1または複数の画像の前記キャプチャは、前記ユーザーアクティビティの周囲の領域をキャプチャすることを含む、請求項2に記載のコンピューティングシステム。
【請求項5】
前記パターンマッチングは、前記1または複数の画像の1または複数の特性が、前記少なくとも1つの既存の自動化と一致するかどうかをチェックすることを含む、請求項1に記載のコンピューティングシステム。
【請求項6】
前記1または複数の画像の固定数を保持するためにウィンドウが利用される、請求項1に記載のコンピューティングシステム。
【請求項7】
前記ワークフロー推薦アシスタントエンジンは、ウィンドウのサイズを決定し、前記1または複数の画像を表す生成されたハッシュのシーケンスで前記ウィンドウを先入れ先出し(first-in-first-out fashion)で埋める、請求項1に記載のコンピューティングシステム。
【請求項8】
前記パターンマッチングは、前記1または複数の画像を表す生成されたハッシュのシーケンスを、前記少なくとも1つの既存の自動化を表す格納されたハッシュのシーケンスと比較して、1または複数の一致を決定することを含む、請求項1に記載のコンピューティングシステム。
【請求項9】
前記プロンプトは、前記既存の自動化を実行するためのオプションまたはトリガを設定するためのオプションを含む、請求項1に記載のコンピューティングシステム。
【請求項10】
前記プロンプトは、前記一致に関する既存の自動化のカスケードを提示する、請求項1に記載のコンピューティングシステム。
【請求項11】
少なくとも1つのプロセッサに結合されたメモリにプロセッサ実行可能命令として格納されたワークフロー推薦アシスタントエンジンの方法であって、前記方法は、
ユーザーアクティビティに対応するユーザーインターフェースの1または複数の画像を分析することと、
前記1または複数の画像のパターンマッチングを少なくとも1つの既存の自動化について実行することと、
前記少なくとも1つの既存の自動化が前記ユーザーアクティビティと一致することを示すプロンプトを提供することと、を含む、方法。
【請求項12】
前記少なくとも1つのプロセッサは、前記ワークフロー推薦アシスタントエンジンを実行して、
前記1または複数の画像をキャプチャすることと、
前記1または複数の画像を前処理して、1または複数の対応するハッシュを生成することと、
をコンピューティングデバイスに実行させる、請求項11に記載の方法。
【請求項13】
前記1または複数の画像の前記前処理は、前記ユーザーインターフェースのモード反転に関して実行される、請求項12に記載の方法。
【請求項14】
前記1または複数の画像の前記キャプチャは、前記ユーザーアクティビティの周囲の領域をキャプチャすることを含む、請求項12に記載の方法。
【請求項15】
前記パターンマッチングは、前記1または複数の画像の1または複数の特性が、前記少なくとも1つの既存の自動化と一致するかどうかをチェックすることを含む、請求項11に記載の方法。
【請求項16】
前記1または複数の画像の固定数を保持するためにウィンドウが利用される、請求項11に記載の方法。
【請求項17】
前記ワークフロー推薦アシスタントエンジンは、ウィンドウのサイズを決定し、前記1または複数の画像を表す生成されたハッシュのシーケンスで前記ウィンドウを先入れ先出し(first-in-first-out fashion)で埋める、請求項11に記載の方法。
【請求項18】
前記パターンマッチングは、前記1または複数の画像を表す生成されたハッシュのシーケンスを、前記少なくとも1つの既存の自動化を表す格納されたハッシュのシーケンスと比較して、1または複数の一致を決定することを含む、請求項11に記載の方法。
【請求項19】
前記プロンプトは、前記既存の自動化を実行するためのオプションまたはトリガを設定するためのオプションを含む、請求項11に記載の方法。
【請求項20】
前記プロンプトは、前記一致に関する既存の自動化のカスケードを提示する、請求項11に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
(関連出願への相互参照)
本出願は、2021年7月8日に出願された米国出願第17/370,145号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【0002】
本開示は、ロボティックプロセスオートメーション(RPA)の分野に関し、特にRPAへの画像パターンマッチングに関する。
【0003】
従来のオペレーティングシステムおよびソフトウェアシステムは、ユーザーアクティビティのスクリプト自動化を含み得る。スクリプト自動化は、一般的に、既存のスクリプトを活用して、管理されたフレームワークで(すなわち、カスタムスクリプトの開発およびメンテナンスを行う必要無く)ユーザーアクティビティの自動化を実現するプロセスである。しかし、スクリプトの自動化は、1対1の逐次的なユーザーアクションの模倣に限られており、ユーザーアクティビティのインテリジェントな自動化エクスペリエンスを提供する方法が無い。
【発明の概要】
【0004】
1または複数の実施形態によれば、コンピューティングシステムが提供される。コンピューティングシステムは、メモリおよび少なくとも1つのプロセッサを含む。メモリは、ワークフロー推薦アシスタントエンジンのためのプロセッサ実行可能命令を格納する。少なくとも1つのプロセッサは、メモリに結合される。少なくとも1つのプロセッサは、ワークフロー推薦アシスタントエンジンを実行して、コンピューティングデバイスに、ユーザーアクティビティに対応するユーザーインターフェースの画像を分析させ、少なくとも1つの既存の自動化に関する1または複数の画像のパターンマッチングを実行させ、少なくとも1つの既存の自動化がユーザーアクティビティと一致することを示すプロンプトを提供させるように構成される。
【0005】
1または複数の実施形態によれば、上記のコンピューティングシステムの実施形態は、方法、装置、デバイス、および/またはコンピュータプログラム製品として実装され得る。
【0006】
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【図面の簡単な説明】
【0007】
【
図1】1または複数の実施形態によるロボティックプロセスオートメーション(RPA)の開発、設計、動作および/または実行を示す環境を示す図である。
【0008】
【
図2】1または複数の実施形態によるコンピューティングシステムの説明図である。
【0009】
【
図3】1または複数の実施形態によるローカルコンピューティングシステム内の1または複数のプロセッサによって実行される方法を示すブロック図である。
【0010】
【
図4】1または複数の実施形態によるワークフロー推薦アシスタントエンジンのユーザーインターフェースの例である。
【0011】
【
図5】1または複数の実施形態によるワークフロー推薦アシスタントエンジンによって実行される方法を示すブロック図である。
【0012】
【
図6】1または複数の実施形態によるワークフロー推薦アシスタントエンジンによって実行される方法を示すブロック図である。詳細な説明
【0013】
本明細書で開示されるのは、ワークフロー推薦アシスタントエンジン(以下、推薦エンジン)である。推薦エンジンは、ロボティックプロセスオートメーション(RPA)などへの画像パターンマッチングのためのソフトウェアおよび/またはハードウェアを含む。すなわち、推薦エンジンは、ハードウェアおよびソフトウェア(例えば、ハードウェアへのルーティングを必要とするプロセッサ実行可能コード)の組み合わせを通じて、コンピューティングシステムにおいて実施され得る。
【0014】
1または複数の実施形態によると、推薦エンジンは、インテリジェントな自動化エクスペリエンスに関して、特定の構成およびツーリングロボティックプロセスオートメーション方法を提供し得る。インテリジェントな自動化エクスペリエンスは、ロボットインテリジェンス(例えば、機械学習および人工知能)を使用して、ユーザーが使用するRPAを特定して提示する目的のためにユーザーアクティビティのバックグラウンド監視/分析を行うことを含む。バックグラウンド/分析の監視は、ユーザーアクティビティの画像(例えば、ユーザーアクティビティの周辺の画像またはスクリーンショットとしての画像)をキャプチャすることを含み得、RPAの特定および提示は、キャプチャされた画像を処理してRPAの一致(例えば、パターンマッチング)を検出および提案することを含む。
【0015】
例えば、推薦エンジンによるロボティックプロセスオートメーション方法の構成およびツール化は、ユーザーが行っていることのハッシュを取り(例えば、画像をキャプチャし)、ハッシュをシーケンス化し、ハッシュを(例えば、シーケンス内および/またはシーケンス外で)既存のオートメーションのリポジトリに対して実行して、一致するかどうかを決定するソフトウェアシステムのバックグラウンド(例えば、ワークフローの外に存在する)で実行される軽量サービス(例えば、小さなメモリフットプリントおよび低いCPU使用率などの低いシステムリソース使用率)を提供することを含む。構成およびツーリングロボティックプロセスオートメーション方法が、一致するものがあると判断した場合、ユーザーが既存の自動化を表示、選択、および/または開始する機会を提供すると共に、推薦エンジンは、ユーザーが行っていることを行う(例えば、ユーザーアクティビティを模倣する)既存の自動化(例えば、RPAなど)があることをユーザーに提案し得る。
【0016】
このように、推薦エンジンの構成およびツーリングロボティックプロセスオートメーション方法は、ソフトウェアシステムに関連するキャプチャ画像、インターフェースコンポーネント、データおよび構成の多段階のデータ操作を含む。推薦エンジンの1または複数の技術的効果、利点および利益は、従来のスクリプト自動化では利用できない、ユーザーアクティビティのインテリジェントな自動化エクスペリエンスをユーザーに提供することを含む。
【0017】
図1は、1または複数の実施形態によるロボティックプロセスオートメーション(RPA)の開発、設計、動作および/または実行を示す環境100を示す図である。環境100は、1または複数のコンポーネントを含む設計およびデプロイメントコンピューティングプラットフォームであり得る。環境100の1または複数のコンポーネントのそれぞれについて単一のブロックが示されているが、その単一のブロックは、1または複数のそのコンポーネントを表すものであることに留意されたい。
【0018】
示されるように、環境100は、ワークフロー推薦アシスタントエンジン(「推薦エンジン」)111をさらに含むデザイナ110を含み得る。推薦エンジン111は、1もしくは複数のドライバコンポーネント128および/または内部エンジン129を使用して、1もしくは複数のアクティビティ124を実行し、および/または1もしくは複数のユーザーインターフェース(UI)オートメーション126を提供する1または複数のロボット(例えば、ロボット122)を生成するスタジオコンポーネントまたはモジュール120を含み得る。また、ロボット122は、デザイナ110内の他のドライバコンポーネント131およびモジュール132と同様に係合し得る。さらに、環境100は、コンダクタ140およびエグゼキュータ170を含み得、コンダクタ140およびエグゼキュータ170は、ロボット122がエグゼキュータ170のアンアテンディッドロボット174およびアテンディッドロボット178として環境100に提供され得るように、ロボット122をダウンロード/取得/送信し得る。
【0019】
デザイナ110、コンダクタ140およびエグゼキュータ170は、ハードウェア、ソフトウェアまたはこれらの組み合わせを含む、コンピューティングデバイス、コンピューティング装置および/またはコンピューティングシステムを表す。デザイナ110、コンダクタ140およびエグゼキュータ170、ならびにその上の任意のソフトウェア(例えば、推薦エンジン111)は、ユーザーまたはオペレータとインタラクションして、入力を受信し、出力を提供するように構成される。一例において、エグゼキュータ170は、モバイルコンピューティングおよび/もしくはモバイルデバイス環境であり得るかまたはこれらを実施し得る。
【0020】
1または複数の実施形態によると、デザイナ110は、スタジオプラットフォーム、開発プラットフォーム、および/またはオンラインプラットフォームと呼ばれ得る。デザイナ110は、1または複数のエンジン(例えば、推薦エンジン111)、開発環境(例えば、スタジオ120)などを含み得、ロボット(例えば、1または複数のロボット122、アテンディッドロボット174、およびアテンディッドロボット178)が1または複数のワークフローを実行または自動化する(例えば、1もしくは複数のアクティビティ124および/または1もしくは複数のUI自動化126を提供する)ためのコード、命令、コマンドなどを生成するように構成され得る。
【0021】
推薦エンジン111は一般的には、ロボティックプロセスオートメーションを実施するソフトウェアおよび/またはハードウェアである。これに関連して、推薦エンジン111は、環境100内での推薦エンジン111のスケーラビリティおよびポータビリティを説明するために、点線のボックスとして詳述される。例えば、推薦エンジン111は、推薦エンジン181および191によって示されるように、環境100全体で別々のインスタンスとして実施され得る。
【0022】
さらに、1または複数の実施形態によると、推薦エンジン111は、スタジオ120内でコードを自動的に実施し、ロボット122を設計するフレームワーク/メカニズム(例えば、環境100)の一部であり得る。また、推薦エンジン111は、開発者および/またはオーケストレータ(例えば、ユーザーまたはオペレータ)がロボット122を(例えばスタジオ120を介して)コード化、プログラム化および/または設計することを可能にし得る。実施形態において、スタジオ120は、サードパーティアプリケーション、管理情報技術(IT)タスクおよび/またはビジネスITプロセスの自動化とともに、アプリケーション統合を提供し得る。一般的に、推薦エンジン111は、現在キャプチャされた画像に対する既知のキャプチャ画像(例えば、小さな写真)のセットを見て、シーケンスを揃え、それに一致するものがあるかどうかを決定し、一致したものを支持して提示するロボットインテリジェンスを含み得る。
【0023】
ロボット122(ならびにアンアテンディッドロボット174およびアテンディッドロボット178)は、アプリケーション、アプレット、スクリプトなどであり得、(例えば、1もしくは複数のアクティビティ124によって部分的に表され、および/または1もしくは複数のUIオートメーション126を提供する)1または複数のワークフローを実行および/または自動化し得る。ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラ、透過的なUIなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、実行エラーが発生したときのワークフローの動作を判断するように構成され得る。透過的なUIは、基礎となるオペレーティングシステム(OS)またはハードウェアに対するソフトウェア動作であり得る。1または複数ワークフローによって達成され得る動作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数であり得る。UIオートメーションのためのワークフローを実行するために、ロボット122は、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に特定する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript、C#、C++、Silverlightなどであり得る。
【0024】
1または複数の実施形態によると、開発時に、ロボット122は、デザイナ110(例えば、スタジオ120)において/デザイナ110(例えば、スタジオ120)により生成され得る。さらに、展開時には、ロボット122は、コンダクタ140(例えば、推薦エンジン181内)において/コンダクタ140(例えば、推薦エンジン181内)により、例えば管理され得、制御され得、構成され得る。また、展開時に、ロボット122は、エグゼキュータ170内で実行され得る。一例では、ユーザーまたはオペレータによって、ユーザー入力(例えば、ディスプレイ上の選択)がデザイナ110に提出され得る。デザイナ110がロボット122に提供し得る選択から、ロボット122は、(例えば、ユーザーまたはオペレータによって選択された)ビジュアルディスプレイの領域(複数可)の代表データを決定し得る。RPAの一環として、コンピュータビジョン(CV)動作および/または機械学習(ML)モデルに関連して、(例えば、四角、長方形、円、多角形、自由形などの)多次元の形状をUIロボットの開発およびランタイムに利用され得る。
【0025】
1または複数の実施形態によると、UIオートメーション126は、内部のドライバ128を使用してロボット122によって実行され得、推薦エンジン111は、モジュール130(例えば、CVアクティビティモジュールまたはエンジン)を使用してアクティビティを実行し得る。ドライバコンポーネント132は、UIの要素を取得するために、ロボット122によるUIオートメーションのために利用され得る。ドライバコンポーネント132は、限定されないが、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどを含み得る。特定の構成では、モジュール130は、UIオートメーションのために使用されるドライバであり得る。さらに、ロボット122によるこれらのアクションのいずれも、クライアント上に(例えば、アエグゼキュータ170のアンアテンディッドロボット174およびアテンディッドロボット178として)実施され得る。
【0026】
コンダクタ140は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、オンラインプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを実行または監視するようにロボット122、174、および178またはエグゼキュータ170に指示または命令し得る。コンダクタ140は、コンピューティングプラットフォーム(例えば、環境100)を自動化するために1または複数のロボット(例えば、ロボット122、174および178)を指示または命令するための中央または半中央点として機能し得る。
【0027】
1または複数の実施形態によると、コンダクタ140は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、1または複数のロボット、エグゼキュータ170、およびコンダクタ14との間の接続または通信の生成および維持を含み得る。展開は、割り当てられたロボットへのパッケージバージョンの(実行のための)配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ140は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として機能することにより、相互接続性を提供し得る。
【0028】
1または複数の実施形態によると、1または複数のロボットおよびエグゼキュータ170は、アンアテンディッドロボット174および/またはアテンディッドロボット178として構成され得る。アンアテンディッドの動作の場合、アンアテンディッドロボット174による自動化は、サードパーティの入力または制御なしで実行され得る。アテンディッドロボットの動作の場合、アテンディッドロボット178による自動化は、第三者のコンポーネントから入力、コマンド、命令、ガイダンスなどを受信することによって実行され得る。アンアテンディッドロボット174および/またはアテンディッドロボット178は、モバイルコンピューティング環境またはモバイルデバイス環境上において運用または実行され得る。
【0029】
1または複数の実施形態によると、1または複数のロボットおよびエグゼキュータ170は、デザイナ110で構築されたワークフローを実行する実行エージェントとして構成され得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、1または複数のロボットおよびエグゼキュータ170は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0030】
1または複数の実施形態によると、1または複数のロボットおよびエグゼキュータ170は、ユーザーモードでインストールされ得る。例えば、1または複数のロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、高密度(HD)環境などにおいて最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットにおいても使用可能であり得る。
【0031】
1または複数の実施形態によると、1または複数のロボットおよびエグゼキュータ170は、それぞれが特定の自動化タスクまたはアクティビティに専用に用いられるいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し得、コンダクタ140と実行ホスト(すなわち、1または複数のロボットが実行されるコンピューティングシステム)との間のプロキシとして動作し得る。これらのサービスは、1または複数のロボットおよびエグゼキュータ170のための資格情報を信頼し、管理し得る。ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ140と実行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、信頼され得、ロボットの資格情報を管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。一例では、エグゼキュータ170は、Windows(登録商標)セッションの下で与えられたジョブを実行し得(例えば、それらが本明細書に記載されるワークフローを実行し得る)、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0032】
1または複数の実施形態によると、1もしくは複数のロボットおよび/またはエグゼキュータ170のコンポーネントが分割される構成は、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、特定、および追跡実行をより容易に行うのに役立つ。この方法では、エグゼキュータ170とサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を構成し得る。エグゼキュータ170は、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで実行し得る。また、デザイナ110からのプロジェクトは、ブラウザのズームレベルから独立するようにされ得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIは無効にされ得る。
【0033】
次に
図2に目を向けると、1または複数の実施形態によるコンピューティングシステム200が示される。コンピューティングシステム200は、ハードウェア、ソフトウェアまたはそれらの組み合わせ(例えば、
図1の推薦エンジン111、181および191をサポートするハードウェア)を含む、任意のコンピューティングデバイス、コンピューティング装置および/またはコンピューティング環境を示し得る。さらに、開示されたコンピューティングシステム200の実施形態は、装置、システム、方法および/またはコンピュータプログラム製品を統合の任意の可能な技術的詳細レベルにおいて含み得る。
【0034】
コンピューティングシステム200は、1または複数の中央処理装置(CPU(複数可))を有するデバイス205(例えば、
図1のデザイナ110、コンダクタ140およびエグゼキュータ170)を有し、これらは、集合的または一般的にプロセッサ210と呼ばれる。プロセッサ210は、処理回路とも呼ばれ、システムバス215を介して、システムメモリ220および様々な他のコンポーネントに結合される。コンピューティングシステム200および/またはデバイス205は、オンラインプラットフォーム、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0035】
プロセッサ210は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。プロセッサ210は、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくともプロセッサ210は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0036】
バス215(または他の通信メカニズム)は、プロセッサ210、システムメモリ220、ならびにアダプタ225、226および227などの様々な他のコンポーネントに情報またはデータを通信するために構成される。
【0037】
システムメモリ220は、(非一時的な)コンピュータ読み取り可能なストレージ媒体の一例であり、システムメモリ220において、リポジトリ229が配置/管理され得かつ/またはソフトウェア230が格納され得る。リポジトリ229は、データベース(例えば、SQLデータベース)および/または別のストレージメカニズムであり得る。1または複数の実施形態によると、リポジトリ229は、ソフトウェア230によるアクセスのために、本明細書に記載されるような自動化および他のデータ(例えば、画像、セグメント、ハッシュ、ビデオ、フレーム、ソースデータ、ロボットビデオ、ソースコードなど)を含み得る。例えば、ソフトウェア230の訓練フェーズの間に、マッチングモデルが構築され、リポジトリ229に格納され得る。これに関連して、リポジトリ229は、マッチングモデルの訓練データとして、ターゲット要素/アクションおよびその要素の周囲の空間を含むビデオのフレームを格納する。
【0038】
ソフトウェア230は、
図3~5を参照して本明細書で説明したような、デバイス205を動作させるためにプロセッサ210が実行するためのソフトウェアコンポーネント、モジュール、エンジン、命令などとして格納され得る。システムメモリ220は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、内部または外部フラッシュメモリ、エンベッディッドスタティック-RAM(SRAM:Embedded Static-RAM)、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的ストレージ、または任意の他のタイプの揮発性または不揮発性メモリの任意の組み合わせを含み得る。非一時的な読み取り可能なストレージ媒体は、プロセッサ210によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。例えば、ROMは、システムバス215に結合され、デバイス205の特定の基本機能を制御するBIOS(Basic Input/Output System)を含み得、RAMは、プロセッサ210が使用するためにシステムバス215に結合された読み書き可能なメモリである。非一時的なコンピュータ読み取り可能なストレージ媒体は、着脱可能、着脱不可能などの任意の媒体を含み得る。
【0039】
図1に関連して、
図2のソフトウェア230は、メモリ220およびプロセッサ210がロボット122を論理的に設計/構成/提供することができるように、推薦エンジン111およびその中のコンポーネントを示し得、ロボット122は、さらに1もしくは複数のアクティビティ124を実行し、および/または1もしくは複数のドライバコンポーネント128および/または内部エンジン129を使用して1または複数ユーザーインターフェース(UI)オートメーション126を提供する。
図2のソフトウェア230は、コンピューティングシステム200のためのデバイス205用のオペレーティングシステムも示し得る。
【0040】
1または複数の実施形態によると、ソフトウェア230は、ハードウェア、ソフトウェアまたはハイブリッド実施に構成され得る。ソフトウェア230は、互いに動作可能な通信を行い、情報または指示を渡すためのモジュールによって構成され得る。1または複数の実施形態によると、ソフトウェア230は、インテリジェントオートメーションエクスペリエンスを提供するために、オペレーティングシステムもしくは他のアプリケーションに代わってかつ/または必要に応じて直接的に1もしくは複数のユーザーインターフェースを提供し得る。ユーザーインターフェースは、限定されないが、インターネットブラウザ、グラフィックユーザーインターフェース、ウィンドウインターフェースおよび/またはアプリケーション、オペレーティングシステム、ファイルフォルダなどのための他の視覚的インターフェースを含む。したがって、ユーザーアクティビティは、ソフトウェア230によって提供されるユーザーインターフェースの任意のインタラクションまたは操作を含み得る。
【0041】
ソフトウェア230は、コンピューティングシステム200が追加の機能を含むことができるように、アプリケーション特有の処理またはその派生物を実行するためのカスタムモジュールをさらに含み得る。例えば、1または複数の実施形態によると、ソフトウェア230は、動作231、232、233および234を可能にするためにプロセッサ210によって実行または処理される情報、命令、コマンド、またはデータを格納するように構成され得る。例えば、
図2のソフトウェア230として実施される
図1の推薦エンジン111は、コンピューティングシステム200に特定の構成およびツーリングロボティックプロセスオートメーション方法提供し得、その結果、本明細書に記載される任意の他の動作/アクション(234)と一緒に、コンピューティングシステム200は、コンピューティングデバイス上のユーザーアクティビティを監視(231)して、ユーザーインターフェースの1または複数の画像をキャプチャし、1または複数の画像を分析(232)して、少なくとも1つの既存の自動化に関するパターンマッチングを実行し、少なくとも1つの既存の自動化がユーザーアクティビティと一致することを示すプロンプトを提供(233)し得る。1または複数の実施形態によると、ソフトウェア230は、様々な形態のマルチメディアのスニペットまたはフィンガープリント(pHashingまたはpHashとも呼ばれる)を生成する知覚的ハッシングアルゴリズムを実行するなどして、キャプチャ画像を前処理するように構成され得る。
【0042】
他の動作/アクションは、限定されないが、RPAエージェントログを利用すること、ロボットビデオを作成する際にソースコードメタデータをフェイムに追加すること、ビデオを記録する際にカーソルを記録しないこと、既知のシステムカーソルに基づいてビデオからカーソルを排除すること、キーフレームキャッシングを実行すること、自動処理のための機能を事前に構築すること、ロボットが実行されているときに形状(例えば、長方形)を持つ要素を強調表示すること、ロボットが実行されているときに要素の形状を照会することを含み得る。
【0043】
例えば、1または複数の実施形態によると、
図2のソフトウェア230として実装された
図1の推薦エンジン111は、オフロード動作を実行し得る。オフロード動作は、用途別に意図的にコーディングするのではなく、自動化およびとトリガを特定すること(例えば、ハッシュのマッチングによる)を含む。このようにして、意図的なコーディングは、
図1の推薦エンジン111にオフロードされる。さらに、
図2のソフトウェア230として実装された
図1の推薦エンジン111は、一致した自動化を実行する能力/選択肢をユーザーに提供する。
【0044】
さらに、ソフトウェア230のモジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタなどの既製の半導体、またはその他のディスクリートコンポーネントを含むハードウェア回路として、プログラム可能なハードウェアデバイス(例えば、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス)、グラフィックスプロセッシングユニットなどに実装され得る。ソフトウェア203のモジュールは、様々なタイプのプロセッサにより実行されるためのソフトウェアに少なくとも部分的に実装され得る。1または複数の実施形態によると、特定された実行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。特定されたモジュールの実行可能は、論理的に結合されるとモジュールを構成するように、異なる位置に共に配置されたり、格納されたりする。実行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。動作データまたは機能データは、ソフトウェア230のモジュール内で特定および図示され得、任意の適切なタイプのデータ構造内において適切な形態で具現化され、組織化され得る。
【0045】
図2のアダプタ225、226および227に関して、デバイス205は特に、入力/出力(I/O)アダプタ225、デバイスアダプタ226、および通信アダプタ227を含み得る。1または複数の実施形態によると、I/Oアダプタ 225は、周波数分割多元接続(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:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、または、通信用のいずれかの他の無線もしくは有線のデバイス/トランシーバに照らして、スモールコンピュータシステムインターフェース(SCSI:small computer system interface)として構成され得る。デバイスアダプタ226は、ディスプレイ241、キーボード242、制御デバイス243など(例えば、カメラ、スピーカなど)の入/出力デバイスをシステムバス215に相互接続する。
【0046】
通信アダプタ226は、システムバス215を、外部ネットワークであり得るネットワーク250と相互接続し、デバイス205が他のそのような装置(例えば、ローカルコンピューティングデバイス255、さらにはネットワーク260を介したリモートコンピューティングシステム256など)とデータを通信できるようにする。一実施形態では、アダプタ225、226、および227は、中間バスブリッジを介してシステムバス215に接続される1または複数のI/Oバスに接続され得る。ハードディスクコントローラ、ネットワークアダプタ、およびグラフィックアダプタなどの周辺機器を接続するのに適したI/Oバスは、典型的には、ペリフェラルコンポーネントインターコネクト(PCI:Peripheral Component Interconnect)などの共通プロトコルを含む。
【0047】
ディスプレイ241は、ユーザーがデバイス205とインタラクションする際に、ソフトウェア230によってキャプチャおよび分析され得る1または複数のUIまたはグラフィックUI(GUI)を提供するように構成される。ディスプレイ241の例は、限定されないが、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、投影ディスプレイ、4Kディスプレイ、高解像度(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)ディスプレイなどを含み得る。ディスプレイ241は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを用いたタッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0048】
キーボード242と、コンピュータマウス、タッチパッド、タッチスクリーン、キーパッドなどの制御デバイス243とは、デバイス205への入力のために、システムバス215にさらに結合され得る。さらに、1または複数の入力は、それと通信している別のコンピューティングシステム(例えば、ローカルコンピューティングデバイス255および/またはリモートコンピューティングシステム256)を介して、リモートでコンピューティングシステム200に提供されてもよく、あるいはデバイス205が自律的に動作してもよい。
【0049】
1または複数の実施形態によると、ソフトウェア230に関するデバイス205の機能はまた、推薦エンジン290の別個のインスタンスによって表されるように、ローカルコンピューティングデバイス255および/またはリモートコンピューティングシステム256に実施され得る。1または複数の画像(例えば、スクリーンショット)は、デバイス205、ローカルコンピューティングデバイス255および/またはリモートコンピューティングシステム256に配置された共通のリポジトリ(例えば、リポジトリ229)に格納され得、デバイス205、ローカルコンピューティングデバイス255、および/またはリモートコンピューティングシステム256のそれぞれにかつ/またはデバイス205、ローカルコンピューティングデバイス255および/またはリモートコンピューティングシステム256から(オンデマンドで)ダウンロードされ得ることに留意されたい。
【0050】
次に
図3に目を向けると、1または複数の実施形態による、コンピューティングシステム内の1または複数のプロセッサによって実行されるプロセスフロー300を示すブロック図である。より詳細には、プロセスフロー300は、インテリジェントオートメーションエクスペリエンスに関する特定の構成およびツーリングロボティックプロセスオートメーション方法を提供するための、本明細書に記載される推薦エンジン(例えば、
図1の推薦エンジン111および/または
図2のソフトウェア/推薦エンジン231、281、および291)の例示的な実施である。
【0051】
プロセスフロー300は、ブロック310から始まり、推薦エンジンがユーザーアクティビティを監視する。ユーザーアクティビティの監視は、ビデオの記録、ビデオの1または複数のフレームのキャプチャ、画像のキャプチャ、スクリーンショットのキャプチャ、画像セグメントのキャプチャなどを含み得る。推薦エンジンは、特に、ユーザーが行っていることのハッシュを取る(例えば、画像をキャプチャする)コンピューティングシステムのバックグラウンドで実行する軽量サービス(例えば、小さなメモリフットプリントおよび低いCPU使用率などの低いシステムリソース使用率)を提供し得る。1または複数の実施形態によると、推薦エンジンは、リアルタイムシナリオアプリケーションまたは遅延シナリオアプリケーションを提供し得る。リアルタイムシナリオアプリケーションは、記録ソフトウェア、専用の最小限の記録または他のソフトウェアを使用して、スクリーンショットおよび次いで現在処理されるネイティブデータをキャプチャし得る。遅延シナリオアプリケーションは、本明細書に記載される任意の記録ソフトウェアを使用して、後のレビューのためにスクリーンショットおよびデータベース(例えば、リポジトリ229)に格納されるネイティブデータを生成し得る。1または複数の実施形態によると、記録ソフトウェアは、ロボットによってまたはロボットの一部として実装され得る。例えば、推薦エンジンは、ユーザーが行っていることのハッシュを取る(例えば、画像をキャプチャする)ソフトウェアシステムのバックグラウンドで実行する(例えば、ワークフローの外に存在する)軽量サービス(例えば、小さなメモリフットプリントおよび低いCPU使用率などの低いシステムリソース使用率)を提供することを含む。
【0052】
例えば、アテンド型RPAは、ユーザーがコンピューティングシステムを作業または操作する際に(例えば、ディスプレイ241によって提供されるUIまたはGUIとインタラクションする際に)、画像(例えば、ユーザーアクティビティの周辺またはスクリーンショットとして)をキャプチャする。推薦エンジンは、画像を前処理し得、任意のキャプチャされた画像は、リアルタイムで前処理され得る。前処理は、限定されないが、画像のセグメント化、画像またはセグメントのハッシュ化、モード反転、エッジ検出、段差検出、変化検出、特徴検出、特徴抽出、画像のクロッピング、およびマッチングを改善するための画像処理のための他の強化またはメカニズムを含み得る。
【0053】
前処理の1または複数の実施形態によると、ハッシュが計算される前に、画像および/またはスクリーンショットは、より小さな断片にセグメント化され得る。その後、各セグメントは、pHashを使用してハッシュ化される。キャプチャされた画像は全て、単一のビットマップとしてハッシュ化され得ることに留意されたい。例えば、各pHashは8バイトを含み得、少なくとも5つのハッシュは、セグメント、キャプチャ画像またはスクリーンショットを表す。場合によっては、1つのpHashは、ユーザーアクティビティのターゲットを表し得、他のセグメントは幾何学的な構成(例えば、左、下、上など)を表し得る。さらに、画像をハッシュ化することは、ユーザーアクティビティの完全性を維持しながらその機密性を保護する一方通行の暗号化を含み得る。なお、各ハッシュのサイズは、キャプチャした画像のサイズに対して比較的小さい(例えば8バイト)ため、分散可能である。
【0054】
前処理の1または複数の実施形態によると、モード反転は、ライトモードとダークモードとの間でユーザーインターフェースを変更することを少なくとも含み得る。ライトモードおよびダークモードは、1日の時間(例えば、昼対夜)に基づいてより適合し得る、色および/または明るさのユーザーインターフェース方式である。前処理の1または複数の実施形態によると、画像をクロッピングすることは、ユーザーアクティビティの周囲の領域を効果的にキャプチャするためにスクリーンショットを調整および/またはサイズ変更することを含み得る。
【0055】
ブロック330で、推薦エンジンは、キャプチャされた画像またはそのセグメントを分析する。キャプチャされた画像またはセグメントを分析することは、パターンマッチング(例えば、少なくとも1つの既存のオートメーションに関する1もしくは複数の画像および/またはシーケンスのパターンマッチングを実行すること)を含み得る。1または複数の実施形態によると、パターンマッチングは、本明細書に記載されるマッチングモデルを使用するなどして、キャプチャされた画像またはセグメントの1もしくは複数の特性を何らかのパターンで横断的にチェックすることを含む。特性は、特定の画面またはユーザーインターフェース要素(例えば、ボタン、チェックボックス、テキストフィールド、ラベルなどとして)とのインタラクションと共に、アクションのタイプ、アクションの数、アクションの近さなどであり得る。例えば、シーケンスの各ハッシュが分析されて、特性を抽出して他の格納されたハッシュ(例えば、既存の自動化を表す)の他の特性と比較することができ、生成されたハッシュは、格納されたハッシュに対して、シーケンスにおよび/またはシーケンスから外れて、リアルタイムで実行されて、一致するかどうかを決定し得る。推薦エンジンのRPA(例えば、デバイス205上のソフトウェア230)は、生成されたハッシュのシーケンスを提供し得、一方、(例えば、ローカルコンピューティングデバイス255および/またはリモートコンピューティングシステム256の)推薦エンジンの別のインスタンスは、格納されたハッシュを提供し得ることに留意されたい。
【0056】
特性は、ウィンドウによって/ウィンドウ内において決定され得る。より具体的には、ウィンドウは、固定数のキャプチャ画像またはセグメントを保持するバッファであり得る。ウィンドウは、次に、この固定数に基づいて、いくつかの特性または様々な特性を最適化するために使用され得る。一例において、ウィンドウは、スライディングウィンドウであり得る。スライディングウィンドウのサイズは、例えば、キャプチャされた画像またはセグメントの固定数が大きくなったり小さくなったりするのに合わせて、推薦エンジンによって動的に増減され得る。スライディングウィンドウのサイズを動的に変更することは、推薦エンジンの性能とマッチングを最適化するための自動再構成であり得る。
【0057】
1または複数の実施形態によると、キャプチャされた画像またはそのセグメントを分析するとき、推薦エンジンは、スライディングウィンドウのサイズを決定し、キャプチャされた画像またはそのセグメントを表す生成されたハッシュのシーケンスで、先入れ先出しの方法でスライディングウィンドウを埋める。次に、スライディングウィンドウ内の生成されたハッシュのシーケンスが、格納されたハッシュのシーケンス(例えば、
図2のリポジトリ229、ローカルコンピューティングデバイス255、および/またはリモートコンピューティングシステム256に配置されたものなど、リポジトリに格納された既存自動化)と比較される。より詳細には、スライディングウィンドウ内の生成されたハッシュのシーケンスの特性は、格納されたハッシュのシーケンスの特性と比較される。推薦エンジンは、生成されたハッシュと格納されたハッシュとの間の特性がどの程度緩くまたは完全に適合するかを決定するために、しきい値を使用し得る。このようにして、格納されたハッシュのシーケンスの特性に適合するスライディングウィンドウで生成されたハッシュのシーケンスの特性の数がしきい値以上である場合、次いで推薦エンジンは一致があると判断する。
【0058】
ブロック350では、推薦エンジンは、一致があった場合などにアクションを実行する。アクションは、ユーザーに一致を提示することを含む。
【0059】
例えば、推薦エンジンのRPAは、ディスプレイ241によって提供されるUIまたはGUIに、既存の自動化が現在のユーザーアクションのセット(すなわち、ウィンドウ内のキャプチャ画像から決定された特性)に一致することを示すプロンプトをプリセットさせる。RPAのプロンプトはさらに、既存の自動化が引き継ぎもしくは実行するための選択肢、および/またはトリガを設定するための要求をユーザーに提供する。プロンプトはまた、何が一致したかを視覚的に示す(例えば、ユーザーが彼らの特定のアクションによってどのように一致したかを確認し得るように)メカニズムを提示または含み得る。トリガは、自動化を開始するユーザーが定義した条件であり得る。1または複数のトリガは、任意の特定の自動化を開始するために使用され得、その結果、特定の自動化が複数の方法で開始し得る。1または複数の実施形態によると、推薦エンジンは、トリガに関して意図的なアクションを実行し得る。リポジトリは、推薦エンジンが自動的にトリガし得る10個の自動化を含む場合、推薦エンジンは、放たれると10個の自動化を呼び出す10個のトリガを有する新しい自動化パッケージを作成して実行するか、または各自動化が自動呼び出しのためのその内部トリガを待つように10個の自動化をバックグラウンドで実行し得る。
【0060】
図4に目を向けると、1または複数の実施形態によるユーザーインターフェース400が示される。ユーザーインターフェース400は、
図3のブロック350に関するプロンプトの一例である。ユーザーインターフェース400は、タイトルが「ワークフロー推薦アシスタント(Workflow Recommendation Assistant)」であり、一致する自動化を示すテーブル410を含む。テーブル410は、ワークフロー名、マッチスコア、詳細、関連性(例えば、適用性のはい/いいえ投票)、および実行などの列を含む。この例では、符号が一致する自動化のみが示される(例えば、「ワークフロー8」)。1または複数の自動化プロセスの名前は必ずしも記述的(例えば、「ワークフロー8」)ではないため、推薦エンジンは、1または複数の実施形態に従って、ユーザーアクションが関連する自動化に一致したことを検証するために、記述(例えば、目的)を追加し得る。マッチスコアに関して、推薦エンジンは、手動プロセスが既存の自動化にどれだけ近いかを尺度で決定し得る。例えば、しきい値が99%に設定されている場合、このしきい値と同等またはそれ以上のスコアを受信した既存の自動化のみが提示され得る。表は100%のスコアを示す。しきい値は、本明細書で説明する推薦エンジンの動的構成に基づいて、0~100の任意の値に設定され得る。さらに、推薦エンジンは、1または複数のしきい値に関する1または複数の推論を含み得、その結果、既存の自動化のカスケードがユーザーインターフェース400によって提示され得る。例えば、推薦エンジンは、95%以上の精度である既存の自動化のみを表410に入力し、一方で、少なくとも80%の精度である任意の既存の自動化を発見可能にし得る。
【0061】
表410の1または複数の項目は、下線付きのテキストで示されるように、選択可能であり得る。例えば、ワークフロー8を選択すると、そのソースコードを見るための後続のプロンプトが駆動され得る。さらに、はいまたはいいえを選択すると、ワークフロー8が一致しているかどうかについての直接的なユーザーフィードバックを推薦エンジンに提供し、実行を選択すると、ワークフロー8を実行し得る。詳細を選択することに関して、自動マッチングがどのように実行されたかをユーザーに示すために、ユーザーインターフェース430aおよび430bとして示される後続のプロンプトが表示される。これに関して、後続のプロンプトは、実行されたステップがワークフロー8のステップとどのように一致するかを矢印で図示しながら、1または複数の図(例えば、時間0のユーザーインターフェース430aおよび時間0+1のユーザーインターフェース430b)の間で切り替わる。
【0062】
ブロック370で、推薦エンジンは、生成されたハッシュのシーケンスを、格納されたハッシュのシーケンス、および任意のトリガと一緒に格納して、さらなるマッチングのためのリポジトリを増やす。この格納は、機械学習のためのマッチングモデルの構築および/または強化にさらに寄与する。順に、ブロック390では、推薦エンジンがマッチングモデルで訓練し、一致が近似され得る場合をよりよく特定する。このようにして、推薦エンジンは、訓練からの情報をフィードバックして、スライディングウィンドウの調整、特性の選択、キャプチャ画像の範囲の決定などを動的に行い得る。1または複数の実施形態によると、推薦エンジンの訓練は、(例えば、幾何学的な構成などの比較に関して)一致を試みる間に、フレーム画像、セグメント、および/またはハッシュをキャプチャすることを含み得る。これに関連して、推薦エンジンは、ユーザーがプロセスの1または複数のステップを実行するのを監視し、キャプチャされたフレーム画像、セグメント、および/またはハッシュを使用して、リポジトリを構築する。例えば、推薦エンジンは、訓練データとして、ターゲット要素/アクションとその要素の周りの空間とを含むビデオのフレームを保存して使用する。
【0063】
このように、
図2のソフトウェア230として実装される
図1の推薦エンジン111として、
図3の方法300の1または複数の技術的効果、利点、および利益は、開発中のプロセスが既に開発されているかどうか(例えば、またはその一部)を特定すること、複雑な推論によって複雑なプロセスを分析すること(例えば、観察されたアクティビティがちょうど自動化されたものである確率より小さくする)、信頼性レベル(例えば、スクリーンプロセスマッチングのスコア)に基づく表示(例えば、スクリーンマッチング)を提供するかどうかを検討すること、自動化されたワークフロー全体が一致していなくても、少なくとも前構築されたコンポーネントを提案することを含む。
【0064】
図5~6に目を向けると、1または複数の実施形態によって、
図1の環境100および/または
図2のコンピューティングシステム200によって実行される方法500および600を示すブロック図である。なお、
図6の方法600は、
図5の方法500をさらに説明することに留意されたい。
【0065】
方法500は、ブロック510で始まり、ソフトウェア230は、リポジトリから1または複数の自動化プロセス(例えば、自動化ワークフロー)を取得する。これに関連して、1または複数の自動化プロセスのそれぞれからのソースデータ512、ロボットビデオ514およびソースコード516が、(例えば、ブロック530で)比較のための入力として使用される。ソースデータ512は、自動化ワークフローの対象となる要素(例えば、特性)のスクリーンショットを含む任意のソースデータであり得る。ソースデータ512は、モバイルデバイス環境で作成され得る。ロボットビデオ514は、自動化ワークフロー中の実行ロボット(RPA)のキャプチャ画像を含む。ソースコード516は、自動化ワークフローおよび/またはロボットの基礎となる任意のものを含む。
【0066】
ブロック520では、ソフトウェア230は、手動プロセスをキャプチャする。これに関連して、手動プロセスからのユーザーアクティビティ523および画面ビデオ524は、(例えば、ブロック530で)比較のための入力として使用される。ユーザーアクティビティ523は、特性(例えば、ユーザーアクション)または手動プロセスの対象である要素のスクリーンショットを含む任意のソースデータであり得る。ユーザーアクティビティ523は、ピクセルベースでおよび/または光学的文字認識(OCR)動作で特定され得る。画面ビデオ524は、手動プロセスのキャプチャ画像を含む。
【0067】
ブロック530では、ソフトウェア230は、ブロック510の1または複数の自動化プロセスとブロック520の手動プロセスとの間の比較を実行するために、認識ロジックを実行する。これに関連して、ソフトウェア230の認識ロジックは、ユーザーアクションを既存の自動化と一致させる。認識ロジックは、標準的な動作手順および/または、非常に頻繁なアクションシーケンス(これについては、ユーザーを促すための文書作成または自動化が存在しない)を検出するなど、他の形態のプロセス文書作成を含むように拡張され得ることに留意されたい。
【0068】
図6に目を向けると、方法600は、1または複数の実施形態による、
図5のブロック530の認識ロジックの例示的な動作を説明する。説明を容易にするために、
図5と類似した要素および項目が
図6で再利用されていることに留意されたい。これに関連して、自動化プロセスからのソースデータ512、ロボットビデオ514、およびソースコード516(破線で示す)、ならびに手動プロセスからのユーザーアクティビティ523および画面ビデオ524(破線で示す)などの要素が、認識ロジック530内でさらに発生する方法600への入力として再利用される。さらに、ブロック601は認識ロジック530に対するコア機能であり、一方で、ブロック602は任意であることに留意されたい。これに関連して、ウィンドウ内の各画像が、ブロック610で、順に見られるので、入力512、514、523および524に従って、ブロック620でターゲット要素が一致され得る。
【0069】
任意のブロック602に関して、推薦エンジンはさらに、入力516、523および524に従って、ブロック640でソースコードからアクティビティの定義を取得し、ブロック650でアクティビティを一致させ、ブロック660でシーケンスを一致させ得る。
【0070】
決定ブロック670で、推薦エンジンは、一致基準が満たされているかどうかを決定する。一致基準が満たされていない場合、方法600は、(いいえの矢印で示されるように)ブロック610に戻る。一致基準が満たされている場合、方法600は、(はいの矢印で示されるように)ブロック680に進む。ブロック680において、推薦エンジンは、本明細書に記載されるようなプロンプトを介して、一致した自動化プロセスを戻す。1または複数の実施形態によると、推薦エンジンはまた、ユーザー(例えば、RPA開発者)が新しい自動化を作成しているときに使用され得る。これに関連して、推薦エンジンは、ユーザーがどのようなアクティビティを行っているかをチェックし、対応する自動化が既に存在するという情報をユーザーに提示し得る。
【0071】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態による、装置、システム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(複数可)を実装するための1または複数の実行可能な命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替実装では、ブロックに記載されている機能は、図面のフローチャートおよびブロック図に記載されている順序とは異なる場合がある。例えば、連続して表示されている2つのブロックは、関係する機能に応じて、実際には実質的に同時に実行され得、またはブロックが逆の順序で実行され得る。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは行動を実行するか、または特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特別な目的のハードウェアに基づくシステムによって実装され得ることに留意されたい。
【0072】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。例えば、本明細書に記載されている方法およびプロセスのいずれかでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、より長いリストと同様に拡張され得る。表記X/Yを使用する場合、それはXまたはYを含み得る。あるいは、表記X/Yを使用する場合、それはXおよびYを含み得る。X/Y表記は、同一の説明されたロジックを有するより長いリストと同様に拡張され得る。また、「結合されている」または「動作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。
【0073】
さらに、本明細書に記載された方法およびプロセスは、コンピュータまたはプロセッサによる実行のためにコンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、および/またはファームウェア(例えば、コンピュータプログラム製品)で実装され得る。すなわち、コンピュータプログラム製品は、コントローラ、プロセッサなどに本発明の態様を実行させるためのコンピュータ読み取り可能プログラム命令をその上に有するコンピュータ読み取り可能なストレージ媒体(または複数の媒体)を含み得る。
【0074】
コンピュータ読み取り可能なストレージ媒体は、コンピュータ読み取り可能プログラム命令を保持および格納し得る有形のデバイスであり得る。コンピュータ読み取り可能なストレージ媒体は、例えば、限定されないが、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または前述の任意の適切な組み合わせであり得る。本明細書で使用されるコンピュータ読み取り可能なストレージ媒体は、それ自体が一時的な信号であると解釈されるものではなく、例えば、電波またはその他の自由に伝播する電磁波、導波管またはその他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号である。コンピュータ読み取り可能なストレージ媒体の例は、限定されないが、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、光磁気媒体、コンパクトディスク(CD)およびデジタルバーサタイルディスク(DVD)などの光媒体、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)ならびにメモリースティックを含む。
【0075】
本明細書に記載されたコンピュータ読み取り可能なプログラム命令は、例えばネットワーク通信などの接続を介して、装置、デバイス、コンピュータ、または外部ストレージからそれぞれのコントローラ、プロセッサなどに通信および/またはダウンロードされ得る。本発明の動作を実行するためのコンピュータ読み取り可能なプログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1もしくは複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードのいずれかであり得る。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、電子回路をパーソナライズするコンピュータ読み取り可能なプログラム命令の状態情報を利用して、コンピュータ読み取り可能なプログラム命令を実行し得る。
【0076】
本明細書で使用される用語は、特定の実施形態を説明するためだけのものであり、限定することを意図しない。本明細書では、単数形の「a」、「an」、および「the」は、文脈が明確に示す場合を除き、複数形も含むことを意図する。本明細書で使用される「含む(comprises)」および/または「含む(comprising,)」という用語は、記載された特徴、整数、ステップ、動作、要素、および/またはコンポーネントの存在を特定するが、1または複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されるであろう。
【0077】
本明細書の様々な実施形態の説明は、説明のために提示されたものであるが、開示された実施形態を網羅的に、またはそれに限定することを意図したものではない。当業者であれば、記載された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実用化もしくは技術的改善を最もよく説明するため、または当業者が本明細書で開示されている実施形態を理解できるように選択されたものである。
【国際調査報告】