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

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

▶ ユーアイパス,インコーポレイテッドの特許一覧

特表2022-549979スクリーンショットイメージを用いたシーケンス抽出
<>
  • 特表-スクリーンショットイメージを用いたシーケンス抽出 図1A
  • 特表-スクリーンショットイメージを用いたシーケンス抽出 図1B
  • 特表-スクリーンショットイメージを用いたシーケンス抽出 図1C
  • 特表-スクリーンショットイメージを用いたシーケンス抽出 図2
  • 特表-スクリーンショットイメージを用いたシーケンス抽出 図3
  • 特表-スクリーンショットイメージを用いたシーケンス抽出 図4
  • 特表-スクリーンショットイメージを用いたシーケンス抽出 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-30
(54)【発明の名称】スクリーンショットイメージを用いたシーケンス抽出
(51)【国際特許分類】
   G06F 11/34 20060101AFI20221122BHJP
   G06F 11/32 20060101ALI20221122BHJP
   G06F 3/0481 20220101ALI20221122BHJP
【FI】
G06F11/34 166
G06F11/32 130
G06F3/0481
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021565072
(86)(22)【出願日】2020-09-30
(85)【翻訳文提出日】2022-01-05
(86)【国際出願番号】 US2020053556
(87)【国際公開番号】W WO2021067443
(87)【国際公開日】2021-04-08
(31)【優先権主張番号】16/591,161
(32)【優先日】2019-10-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
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
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】バーグ,クリスチャン
(72)【発明者】
【氏名】ディスファニ,シリン フェイズ
【テーマコード(参考)】
5B042
5E555
【Fターム(参考)】
5B042MA08
5B042MA10
5B042MC13
5B042MC37
5E555AA09
5E555AA13
5E555AA28
5E555AA79
5E555BA02
5E555BA61
5E555BA82
5E555BA86
5E555BB02
5E555BC04
5E555CB44
5E555CB46
5E555CC19
5E555DB41
5E555DB56
5E555DD11
5E555EA19
5E555EA24
5E555FA00
(57)【要約】
ロボティックプロセスオートメーションワークフローを生成するために、スクリーンショットイメージを使用したシーケンス抽出のためのシステムおよび方法が開示される。システムおよび方法は、プロセッサを用いて、ユーザーがアプリケーション上で実行したステップの複数のスクリーンショットをキャプチャすることと、スクリーンショットをメモリに格納することと、アクションを任意の事前定義された数のクラスタにランダムにクラスタ化することにより、キャプチャされたスクリーンショットからアクションクラスタを決定することであって、同じアクションのさまざまなバリエーションのスクリーンショットがクラスタ内でラベル付けされることと、クラスタからシーケンスを抽出し、スクリーン上の結果イベントをクラスタから削除することと、抽出されたシーケンスに基づいて、自動化されたワークフローを生成することと、を含む。

【特許請求の範囲】
【請求項1】
ロボティックプロセスオートメーションワークフローを生成するために、スクリーンショットイメージを使用したシーケンス抽出のための方法であって、前記方法は、
プロセッサを用いて、ユーザーがアプリケーション上で実行したステップの複数のスクリーンショットをキャプチャすることと、
前記スクリーンショットをメモリに格納することと、
アクションを任意の事前定義された数のクラスタにランダムにクラスタ化することにより、前記キャプチャされたスクリーンショットからアクションクラスタを決定することであって、同じアクションのさまざまなバリエーションのスクリーンショットが前記クラスタ内でラベル付けされることと、
前記クラスタからシーケンスを抽出し、スクリーン上の結果イベントを前記クラスタから削除することと、
前記抽出されたシーケンスに基づいて、自動化されたワークフローを生成すること。
【請求項2】
前記キャプチャすることは、テンプレートを形成する際に、複数の単語と、前記複数の単語のそれぞれに対応する位置とを見つけてクラスタ化するテンプレート化を含む、請求項1に記載の方法。
【請求項3】
前記テンプレート化は、前記複数の単語を示す際にしきい値を利用する、請求項2に記載の方法。
【請求項4】
前記しきい値は、約70%である、請求項3に記載の方法。
【請求項5】
前記キャプチャすることは、テンプレートを反復し、後続の反復のために前記キャプチャを調整するための適応的なパラメータ調整を含む、請求項1に記載の方法。
【請求項6】
前記キャプチャすることは、粒子群最適化を利用したランダムサンプリングを含む、請求項1に記載の方法。
【請求項7】
前記キャプチャすることは、テンプレート項目の存在を示すバイナリ特徴ベクトルを組み込んだクラスタ化詳細を含む、請求項1に記載の方法。
【請求項8】
前記キャプチャすることは、画面のスパース表現を学習し、クラスタの粒度を調整することによる目新しさを含む、請求項1に記載の方法。
【請求項9】
前記抽出することは、前方リンク予測モジュールを利用した前方リンク推定を含んで、各イベントを考慮し、将来のイベントを各イベントとリンクさせる、請求項1に記載の方法。
【請求項10】
前記抽出することは、前記クラスタ化で発見されたスクリーンタイプに対応する各グラフノードを有するグラフィック表現を含む、請求項1に記載の方法。
【請求項11】
前記グラフのエッジは、各イベントおよびリンクされた前記イベントを表す、請求項10に記載の方法。
【請求項12】
前記クラスタ化は、光学式文字認識(OCR)データを利用して、単語および位置のペアを抽出する、請求項1に記載の方法。
【請求項13】
ロボティックプロセスオートメーションワークフローを生成するために、スクリーンショットイメージを使用したシーケンス抽出のためのシステムであって、前記システムは、
ユーザーがアプリケーション上で実行したステップの複数のスクリーンショットをキャプチャするように構成されたプロセッサと、
前記プロセッサに操作的に結合され、前記スクリーンショットを格納するように構成されたメモリモジュールと、を含み、
前記プロセッサは、さらに以下のように構成される、システム。
アクションを任意の事前定義された数のクラスタにランダムにクラスタ化することにより、前記キャプチャされたスクリーンショットからアクションクラスタを決定することであって、同じアクションのさまざまなバリエーションのスクリーンショットが前記クラスタ内でラベル付けされることと、
前記クラスタからシーケンスを抽出し、スクリーン上の結果イベントを前記クラスタから削除することと、
前記抽出されたシーケンスに基づいて、自動化されたワークフローを生成すること。
【請求項14】
前記キャプチャすることは、テンプレートを形成する際に、複数の単語と、前記複数の単語のそれぞれに対応する位置とを見つけてクラスタ化するテンプレート化を含む、請求項13に記載のシステム。
【請求項15】
前記キャプチャすることは、テンプレートを反復し、後続の反復のために前記キャプチャを調整するための適応的なパラメータ調整を含む、請求項13に記載のシステム。
【請求項16】
前記キャプチャすることは、テンプレート項目の存在を示すバイナリ特徴ベクトルを組み込んだクラスタ化詳細を含む、請求項13に記載のシステム。
【請求項17】
前記キャプチャすることは、画面のスパース表現を学習し、クラスタの粒度を調整することによる目新しさを含む、請求項13に記載のシステム。
【請求項18】
前記抽出することは、前方リンク予測モジュールを利用した前方リンク推定を含んで、各イベントを考慮し、将来のイベントを各イベントとリンクさせる、請求項13に記載のシステム。
【請求項19】
前記抽出することは、前記クラスタ化で発見されたスクリーンタイプに対応する各グラフノードを有するグラフィック表現を含む、請求項13に記載のシステム。
【請求項20】
非一時的な読み取り可能な媒体上に記録され、プロセッサによって実行可能なコンピュータプログラム製品を含む非一時的な読み取り可能な媒体であって、スクリーンショットイメージを用いてシーケンス抽出を行い、以下のステップを実装してロボティックプロセスオートメーションワークフローを生成するためのプログラムコード命令を含む、非一時的な読み取り可能な媒体。
プロセッサを用いて、ユーザーがアプリケーション上で実行したステップの複数のスクリーンショットをキャプチャすることと、
前記スクリーンショットをメモリに格納することと、
アクションを任意の事前定義された数のクラスタにランダムにクラスタ化することにより、前記キャプチャされたスクリーンショットからアクションクラスタを決定することであって、同じアクションのさまざまなバリエーションのスクリーンショットが前記クラスタ内でラベル付けされることと、
前記クラスタからシーケンスを抽出し、スクリーン上の結果イベントを前記クラスタから削除することと、
前記抽出されたシーケンスに基づいて、自動化されたワークフローを生成すること。
【発明の詳細な説明】
【背景技術】
【0001】
(関連出願への相互参照)
本出願は、2019年10月2日に出願された米国出願第16/591,161号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【0002】
候補となるプロセスを識別し、アクションシーケンスを抽出するために、既存の技術では、ユーザーのクリックまたはキーストロークなどのユーザーアクションに関する一般的な情報を、ユーザーインターフェース(UI)要素に関する情報とを組み合わせて利用する。UI要素から収集された情報の問題は、UI要素がアプリケーションレベルの構成に依存しているため、それがプラットフォームによって異なり、ノイズが含まれ得ることである。
【0003】
そのため、ロボティックプロセスオートメーション(RPA)を利用してプロセスの自動化に取り組んでいるエンタープライズでは、自動化され得るプロセスの候補を見極めるのに苦労し、結局、高額なプロフェッショナルサービス料および/または低いROIが発生してしまう。
【発明の概要】
【0004】
ロボティックプロセスオートメーションワークフローを生成するために、スクリーンショットイメージを使用したシーケンス抽出のためのシステムおよび方法が開示される。システムおよび方法は、デスクトップアプリケーションにおけるロボティックプロセスオートメーション(RPA)のための候補となるタスクを自動的に識別することに関連しており、より詳細には、ユーザーアクションのスクリーンショットから反復的なタスクを識別するためのシーケンス抽出に関する。システムおよび方法は、プロセッサを用いて、ユーザーがアプリケーション上で実行したステップの複数のスクリーンショットをキャプチャすることと、スクリーンショットをメモリに格納することと、アクションを任意の事前定義された数のクラスタにランダムにクラスタ化することにより、キャプチャされたスクリーンショットからアクションクラスタを決定することであって、同じアクションのさまざまなバリエーションのスクリーンショットがクラスタ内でラベル付けされることと、クラスタからシーケンスを抽出し、スクリーン上の結果イベントをクラスタから削除することと、抽出されたシーケンスに基づいて、自動化されたワークフローを生成することと、を含む。
【0005】
(実施形態の詳細な説明)
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【図面の簡単な説明】
【0006】
図1A】ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または遂行の説明図である。
【0007】
図1B】RPAの開発、設計、運用、または遂行の別の説明図である。
【0008】
図1C】コンピューティングシステムまたは環境の説明図である。
【0009】
図2】候補識別の描写を示す図である。
【0010】
図3】テンプレートを定義するためにクラスタ化されたスクリーンショットのセットを示す図である。
【0011】
図4】スクリーンレベルでのアクションシーケンスのフローを示すグラフである。
【0012】
図5】ロボティックプロセスオートメーションワークフローを生成するために、スクリーンショットイメージを使用したシーケンス抽出のための方法を示す図である。
【発明を実施するための形態】
【0013】
(詳細な説明)
以下に記載されている方法およびプロセスでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「操作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、より長いリストと同様に拡張され得る。表記X/Yを使用する場合、それはXまたはYを含み得る。あるいは、表記X/Yを使用する場合、それはXおよびYを含み得る。X/Y表記は、同一の説明されたロジックを有するより長いリストと同様に拡張され得る。
【0014】
システムおよび方法は、デスクトップアプリケーションにおけるロボティックプロセスオートメーション(RPA)のための候補となるタスクを自動的に識別することに関連しており、より詳細には、ユーザーアクションのスクリーンショットから反復的なタスクを識別するためのシーケンス抽出に関する。ロボティックプロセスオートメーションワークフローを生成するために、スクリーンショットイメージを使用したシーケンス抽出のためのシステムおよび方法が開示される。システムおよび方法は、プロセッサを用いて、ユーザーがアプリケーション上で実行したステップの複数のスクリーンショットをキャプチャすることと、スクリーンショットをメモリに格納することと、アクションを任意の事前定義された数のクラスタにランダムにクラスタ化することにより、キャプチャされたスクリーンショットからアクションクラスタを決定することであって、同じアクションのさまざまなバリエーションのスクリーンショットがクラスタ内でラベル付けされることと、クラスタからシーケンスを抽出し、スクリーン上の結果イベントをクラスタから削除することと、抽出されたシーケンスに基づいて、自動化されたワークフローを生成することと、を含む。
【0015】
図1Aは、RPAの開発、設計、運用、または遂行100の説明図である。デザイナ102は、スタジオ、開発プラットフォーム、開発環境などとして時々参照され、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択(複数可)から、ロボットは、ユーザーまたはオペレータによって選択されたビジュアルディスプレイの領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)操作または機械学習(ML)モデルに関連して、四角、長方形、円、多角形、自由形などの多次元の形状をUIロボットの開発およびランタイムに利用され得る。
【0016】
ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数であり得る。UIオートメーションのためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に識別する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語((HTML)、HTML5、拡張可能なマークアップ言語(XML)、Javascript、C#、C++、Silverlightなどであり得る。
【0017】
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、遂行エラーが発生したときのワークフローの動作を判断するように構成され得る。
【0018】
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアに対し透過的なUIを自動化し得る。展開時には、1または複数のロボットは、コンダクタ104(オーケストレータと呼ばれることもある)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを遂行または監視するようにロボット(複数可)または自動化エグゼキュータ106に指示または命令し得る。コンダクタ104は、コンピューティングプラットフォームを自動化するために複数のロボットを指示または命令するための中央または半中央点として機能し得る。
【0019】
特定の構成では、コンダクタ104は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化エグゼキュータ106とコンダクタ104との間の接続または通信の作製および維持を含み得る。展開は、遂行のために割り当てられたロボットへのパッケージバージョンの配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0020】
ロボット(複数可)または自動化エグゼキュータ106は、アンアテンディッド108またはアテンディッド110として構成され得る。アンアテンディッド108操作の場合、自動化は、サードパーティの入力または制御の支援なしで実行され得る。アテンディッド110操作については、サードパーティのコンポーネントからの入力、コマンド、指示、指導などを受信して自動化が行われ得る。
【0021】
ロボット(複数可)または自動化エグゼキュータ106は、デザイナ102内に構築されたワークフローを実行する遂行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0022】
いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、ユーザーモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、高密度(HD)環境などで最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットでも使用可能であり得る。
【0023】
特定の実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、それぞれが特定の自動化タスクまたはアクティビティに特化したいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し、コンダクタ104と遂行ホスト(すなわち、ロボット(複数可)または自動化エグゼキュータ106が遂行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、ロボット(複数可)または自動化エグゼキュータ106のための資格情報を任されて管理し得る。
【0024】
ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と遂行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、ロボット130の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0025】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0026】
上で説明したように、ロボット(複数可)または自動化エグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、識別、および追跡をより容易に遂行するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を構成し得る。エグゼキュータは、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、デザイナ102からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0027】
図1Bは、RPAの開発、設計、運用、または遂行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザーインターフェース(UI)オートメーション126は、1または複数のドライバ(複数可)コンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130を使用してアクティビティを行い得る。他のドライバ132は、UIの要素を得るためにロボットによるUIオートメーションのために利用され得る。それらには、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UIオートメーションのために使用されるドライバであり得る。
【0028】
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ(複数可)144とを含むことができるコンピューティングシステムまたは環境140の説明図である。1または複数のプロセッサ(複数可)144は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。1または複数のプロセッサ(複数可)144はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ(複数可)144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0029】
メモリ146は、プロセッサ(複数可)144によって遂行または処理される情報、命令、コマンド、またはデータを格納するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的な読み取り可能な媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一時的な読み取り可能な媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものなどであってもよい。
【0030】
通信装置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: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)、または、1もしくは複数のアンテナを介して通信するためのいずれかの他の無線もしくは有線のデバイス/トランシーバとして構成され得る。アンテナは、単数型、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
【0031】
1または複数のプロセッサ(複数可)144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイデバイス150にさらに結合され得る。ディスプレイデバイス150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0032】
キーボード152およびコンピュータマウス、タッチパッドなどの制御装置154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力は、それと通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供されてもよいし、コンピューティングシステムまたは環境140が自律的に操作してもよい。
【0033】
メモリ146は、1または複数のプロセッサ(複数可)144によって遂行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納してもよい。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション固有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。
【0034】
コンピューティングシステムまたは環境140は、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0035】
本明細書に記載された例では、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0036】
モジュールは、様々なタイプのプロセッサによって遂行されるためのソフトウェアに少なくとも部分的に実装され得る。識別された遂行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。識別されたモジュールの遂行可能は、論理的に結合されるとモジュールを構成するように、異なる位置に共に配置されたり、格納されたりする。
【0037】
遂行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。操作データまたは機能データは、モジュール内で識別され、ここで示されてもよく、任意の適切なタイプのデータ構造内で適切な形態で具現化され、組織化され得る。
【0038】
本明細書で説明された例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で構成され得る。コンピュータプログラムは、互いに操作可能な通信を行い、情報または指示を渡すためのモジュールで構成され得る。
【0039】
本実施形態では、ユーザーアクションのスクリーンショットを用いて、繰り返されるアクションのシーケンスを抽出する。シーケンスの抽出は、アクションクラスタ化を用いて行い得る。アクションクラスタ化は、同じアクションの異なるバリエーションに関連するスクリーンショットをラベル付けするように構成される。アクションの監視なしクラスタ化のためのスクリーンショットに基づくアプローチが使用され得る。
【0040】
開示された実施形態は、デスクトップアプリケーションにおけるRPAのための候補タスクを自動的に識別することに関する。候補タスクは、ユーザーのアクションのスクリーンショットに適用されるシーケンス抽出を使用して、繰り返されるアクションのシーケンスを抽出することによって識別され得る。シーケンス抽出は、アクションを事前定義された数のクラスタにランダムにクラスタ化する工程と、各クラスタのテンプレートを定義する工程と、テンプレートで使用される特徴を、サンプルが再びクラスタ化されるスパース特徴空間(sparse feature space)として集約する工程と、サンプルをクラスタラベルに統合した後、シーケンス抽出方法を導入する工程と、を含み得る。テンプレートは、類似の画面がそのレイアウトに従っていることは理解できるが、その画面に固有の画面のレイアウトであると定義され得る。
【0041】
図2は、候補識別200の描写を示す図である。候補識別200は、自動化され、最終的に高額なプロフェッショナルサービス料および/または低いROIをもたらし得る候補プロセスを識別する。候補識別200は、プロフェッショナル料金を最小限に抑え、ROIを向上させながら、自動化のための候補プロセスを識別するために、ユーザーアクションおよびUI要素などのアクション210をクラスタ化することと、クラスタ化されたアクション210からシーケンス220を抽出することと、抽出されたシーケンス220に基づいてプロセス230を理解することと、を含む。候補識別200は、共通のテンプレートを定義するために複数のスクリーンショットがクラスタ化されるアクションクラスタ化またはクラスタ化アクション210を含む。クラスタ化アクション210は、以下でより詳細に説明するように、テンプレート、適応的なパラメータ調整、ランダムサンプリング、クラスタ化の詳細および目新しさを含み得る。候補識別200は、クラスタからタスクの遂行のシーケンスを識別するシーケンス抽出または抽出シーケンス220を含む。抽出シーケンス220は、以下で詳細に説明するように、前方リンク推定、グラフ表現、およびアクションクラスタ化を含み得る。候補識別200は、RPAのための候補プロセス識別のようなプロセス理解230を含む。
【0042】
アクションクラスタ化210は、スクリーンショットから抽出された光学式文字認識(OCR)データを活用する。例示的な実装では、OCRエンジンを使用して、スクリーンショットから単語と場所の組のデータを抽出する。スクリーンショット上の単語と対応する(正規化された)座標のセットを使用して、適応型粒子に基づくアプローチが実装され、クラスタ化のためのスパース特徴セットを反復的に抽出する。クラスタ化アクション210は、任意の事前定義された数のクラスタ(クラスタの数>0)にランダムにクラスタ化され得る。
【0043】
クラスタ化アクション210は、センターに基づくクラスタ化パラダイムを反復的に利用する。各クラスタに対して、センターが定義される。この文脈では、センターはテンプレートと呼ばれる。テンプレートは、類似の画面がそのレイアウトに従っていることは理解できるが、その画面に固有の画面のレイアウトであると定義される。この仮定を用いて、クラスタ化アクション210は、各クラスタのテンプレートを決定する。テンプレートで使用される特徴の集約は、次に、N個のスクリーンショットのセットSが与えられたときに、式1に示すように、サンプルが再びクラスタ化されるスパース特徴空間(sparse feature space)として使用される。
S={s,s,…,s}.式1.
各スクリーンショットsでは、OCRエンジンが、イメージ上の対応する位置にあるmの単語を見つける。簡単にするために、すべての位置は画面の解像度に応じて正規化され、(エリア、センター、センター)形式に変換される。式2では、スクリーンショットsで見られるj番目の単語をwijとし、その対応する場所をlijとして表される。
【数1】
【0044】
クラスタ化πを仮定する。S→C、ここで、C={c,c,…,c}は、K個のクラスタラベルのセットであり、スクリーンショットsは、π(s)=ckの場合、クラスタcに含まれる。テンプレートは、クラスタ内の頻出単語と位置に基づいて作成され得る。頻出単語のリスト(W)は、頻度しきい値法を用いて、クラスタごとに計算され得る。頻出場所のリスト(L)は、頻度しきい値に基づいて、クラスタごとに算出され得る。この頻度測定において、2つの場所が類似しているとは、交差領域が結合領域の90%超を占めている場合である。理解されるように、WとLは別々に計算され得る。
【0045】
WとLを使用して、サンプルのクラスタ内で各単語または位置(または両方)が出現する回数は、頻度行列Fを生成することによってカウントされる。非頻出単語または位置が発生する場合を考慮して、WとLに要素φが追加される。頻度行列は追加の行と列(F|W|+1,|L|+1,)を有する。この表現では、Fi,jは、Wのi番目の単語がLのj番目の位置で発生した回数を示しており、クラスタのスクリーンショットを見て生成される。さらに、F(|w|,j)は、非頻出単語がj番目の頻出位置で起こった回数を示す。スクリーンショットのデータ入力位置に様々なデータが同じ位置に現れた場合、非頻出単語がj番目の頻出位置に発生し得る。
【0046】
テンプレートを作成するために、頻出する単語と位置のセット(最後の行と列を除いた各列において、観察された最大頻度の70%より大きい頻度)が選択される。最後の行と列については、それぞれの最大値の70%のしきい値が使用される。理解されるように、例えば、60%、80%、および60~80%の間で段階的に見出されるしきい値を含む、他のしきい値も使用され得る。0~100%の間の任意のしきい値を使用することも考えられるが、本願では50%以上のしきい値のみが最も有用である。
【0047】
テンプレートは、単語と位置の組み合わせ、ページの静的な部分を示すこと、ならびにプレースホルダーとなる様々なデータを有する位置、および様々な位置で発生する頻出単語を含む。図3は、テンプレートを定義するためにクラスタ化されたスクリーンショット300のセットを示す図である。
【0048】
適応的なパラメータ調整は、クラスタ化アクション210の反復の間に採用され得る。上述のテンプレートは、クラスタ化されたサンプルを評価し、将来の反復のためにクラスタ化パラメータを調整するために使用され得る。k番目のクラスタc,に対応するテンプレートtに基づいてクラスタを評価するために、式3に基づいて、クラスタ内の非テンプレート要素に対するテンプレート要素の割合が測定される。
【数2】
このスコアにおいて、
【数3】
は、頻度の低い単語と位置の数である。このスコアは、スクリーンショットの内容が現在のクラスタ内のものとどの程度類似しているかを推定するかを与える。
【0049】
異なるアプリケーションのスクリーンショットは、理想的なクラスタ化ではテンプレートのスコアが異なることをもたらす。これは、要求されるクラスタ化の粒度がスクリーンショットによって異なることを意味する。したがって、テンプレートの分散スコア
【数4】
は、テンプレートスコアの平均値に基づいて増加または減少し得るクラスタの数の変更をトリガするために使用される。
【0050】
ロバストなクラスタを確保し、スケーラビリティを提案するために、クラスタ化アクション210においてランダムサンプリングが使用され得る。従来の粒子群最適化と同様のリサンプリング方法が使用される。すなわち、クラスタ化はデータセットの小さなランダムなサンプルに対して行われ、各反復において、重み付き再サンプリングは以前のサンプルのR%を選択し得、(1-R)%はメインのデータセットからランダムにサンプリングされる。多様なサンプルを奨励するために、サンプルがデータセットから抽出されるたびに、その重みは、半分に減らされ得るまたは繰り返しのサンプルを減らしてサンプルの多様性を高めるために他の量だけ減らされ得る。
【0051】
クラスタ化アクション210の各反復において、各クラスタに対してテンプレートが抽出される。そして、各サンプルは、テンプレート項目のいずれかが存在することを示すバイナリ特徴ベクトルとして表される。その後、ミニバッチk平均法を用いて、特徴ベクトルを用いたクラスタ化を行う。反復の最後、または所定の反復において、最終的なテンプレートセットを用いて、クラスタ化のためのスクリーンショットのスパース表現を生成する。
【0052】
このクラスタリングアクション210は、各アプリケーションのスクリーンショットに対して個別に遂行され、各アプリケーションのための様々な粒度に基づいてデータがクラスタ化される。シーケンス抽出220は、セマンティックアクション210の適切なクラスタ化に依存し得る。この粒子に基づくクラスタ化アプローチは、画面のスパース表現を学習し、データセット全体の小さなサブセットを処理してOCRに基づく特徴を生成するなど、必要に応じてクラスタ化の粒度を調整する。
【0053】
クラスタ化アクション210から得られるクラスタラベルにサンプルを統一した後、シーケンス抽出220が実行され得る。最初に、データセットは、同じ画面上の結果的なイベントを破棄することによってクリーニングされる。この廃棄は、画面レベルのシーケンス抽出220に集中するのに役立つ。廃棄されたデータは、その後の詳細シーケンス抽出220で使用され得る。
【0054】
シーケンス220を抽出するために、前方リンク予測モジュールを利用して、各結果的イベントの間の関係が評価され得る。前方リンク予測モジュールは、各イベントを個別に検討し、時間的に先読みして、検討したイベントにリンクする将来のイベントを決定してもよい。その際、各イベントは、そのスクリーンショット、アクションクラスタ化210で収集されたOCR単語と位置、およびスクリーンショットのクラスタラベルとして表され得る。前方リンク予測モジュールは、スクリーンショットsに対応するイベントのそれぞれにリンク予測法を適用する。そうするために、式4で定義されるように、次のt秒間に起こるイベントのリストがE(s)として集められる。
【数5】
【0055】
E(s)のイベントのいずれかがeにリンクしているかどうかを推定するために、式5が使用される。
【数6】
式中、g(τ)は平均がゼロのガウス関数で、τ=時間(s’)-時間(s)である。式の分母は、2つの画面がリンクしていることを示す可能性のある、対応する画面の頻出部分ではない単語の同時出現に基づく。式5の使用は、クラスタのサンプルに対して正規化された頻度で測定された確率を提供する。
【0056】
アクションシーケンスのグラフが生成され得る。図4に示される結果としてのグラフ400は、スクリーンレベルでのアクションシーケンスのフローを示す。グラフ400は、エッジの重みに寄与したサンプルを追跡することにより、ユーザーが行う反復タスクの解釈に使用され得る。グラフでは、各ノード410は、アクションクラスタ化210で発見された画面タイプに対応する。グラフのエッジ420は、各イベントからアクションクラスタ化で識別されたそのリンクされたイベントに向けられる。各エッジ420は、対応するp(s,s’)の値として重み付けされる。
【0057】
図5は、ロボティックプロセスオートメーションワークフローを生成するために、スクリーンショットイメージを使用したシーケンス抽出のための方法500を示す図である。方法500は、ステップ510で、プロセッサを用いて、ユーザーがアプリケーション上で実行したステップの複数のスクリーンショットをキャプチャすることを含む。ステップ520で、方法は、スクリーンショットをメモリに格納することを含む。ステップ530で、方法500は、アクションを任意の事前定義された数のクラスタにランダムにクラスタ化することにより、キャプチャされたスクリーンショットからアクションクラスタを決定することを含む。同じアクションの異なるバリエーションのスクリーンショットは、クラスタにラベル付けされ得る。ステップ540で、方法500は、クラスタからシーケンスを抽出し、スクリーン上の結果イベントをクラスタから削除することを含む。ステップ550で、方法500は、抽出されたシーケンスに基づいて、自動化されたワークフローを生成することを含む。
【0058】
本実施形態は、繰り返し実行されるユーザータスクを自動的に識別することによって時間を節約し、共有されるものに対する制御を保持し、そして効率を向上させる。
【0059】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって遂行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶デバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。
図1A
図1B
図1C
図2
図3
図4
図5
【国際調査報告】