JP2021018816A - ロボティックプロセスオートメーション用のコンピュータビジョンモデルの再訓練 - Google Patents

ロボティックプロセスオートメーション用のコンピュータビジョンモデルの再訓練 Download PDF

Info

Publication number
JP2021018816A
JP2021018816A JP2020121359A JP2020121359A JP2021018816A JP 2021018816 A JP2021018816 A JP 2021018816A JP 2020121359 A JP2020121359 A JP 2020121359A JP 2020121359 A JP2020121359 A JP 2020121359A JP 2021018816 A JP2021018816 A JP 2021018816A
Authority
JP
Japan
Prior art keywords
image
computing system
model
computer program
representative data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020121359A
Other languages
English (en)
Other versions
JP7034217B2 (ja
Inventor
コスミン,ヴォイク
Voicu Cosmin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
UiPath Inc
Original Assignee
UiPath Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by UiPath Inc filed Critical UiPath Inc
Publication of JP2021018816A publication Critical patent/JP2021018816A/ja
Application granted granted Critical
Publication of JP7034217B2 publication Critical patent/JP7034217B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2178Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/40Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Abstract

【課題】機械学習(ML)システムによって生成されたコンピュータビジョン(CV)モデルを、ロボティックプロセスオートメーション(RPA)でより正確なコンピュータ画像分析を行うために再訓練するシステムを提供する。【解決手段】RPAシステムにおいて、デザイナアプリケーションは、ユーザから画像において誤識別された又は識別されなかったグラフィックコンポーネントの選択を受け取り、選択されたものを含む画像の領域の代表データを決定し、代表データと画像を画像データベースに送る。レビュアは、CVモデルを実行するか、CVモデルを実行させて、エラーが存在することを確認し、存在する場合は、再訓練のため画像と正しいラベルをMLシステムに送る。CVモデルが再訓練されている間、代替的な画像認識モデルを使用して、誤識別された又は識別されていないグラフィックコンポーネントを識別する。【選択図】図11

Description

本発明は、概して、ロボティックプロセスオートメーション(RPA)に関し、より詳細には、より正確なコンピュータ画像分析のため、誤識別された又は識別されなかったグラフィカルコンポーネントを識別し、機械学習(ML)システムによって生成されたRPA用のコンピュータビジョン(CV)モデルを再訓練することに関する。
現在、合成データを生成し、ライブアプリケーションからでもインターネットからでも、様々なソフトウェアアプリケーションの実際のユーザインタフェースのスクリーンショット(即ち、デジタル画像)を収集することで、RPA用の画像特徴を認識するためのMLで生成されたCVモデルアルゴリズムを自動化する訓練データが取得される。合成データは、MLモデルを訓練するという特定の目的で生成されるデータである。これは、既に存在し収集されてラベル付けされる必要があるだけの「実」データ又は「オーガニック」データとは異なる。この場合、オーガニックデータには、様々なメカニズムを通じて収集されてラベル付けされたスクリーンショットが含まれる。
訓練データの別のソースは、ユーザが自動化したいアプリケーションのスクリーンショットである。このアプローチでは、インタフェースのグラフィック要素(例えば、チェックボックス、ラジオボタン、テキストボックスなど)がCVモデルによって検出されていない場合、ユーザ(例えば、顧客など)は、識別されなかった要素を選択し、選択したもののスクリーンショットを作成し、選択したものの座標を含む画像をサービスプロバイダに送ってもよい。しかし、このアプローチでは、ユーザは、フィードバックとして画像を送ってエラーを報告する労力を費やす必要がある。実際のところ、殆どのユーザはこれを行わない。
また、現在の技術で取得されたデータは、実装後に次善又は無関係になる可能性がある。例えば、実行時に顧客によって使用されるアプリケーションの実際のユーザインタフェースが、設計時にデータの訓練に使用されるユーザインタフェースとは異なる場合がある。これにより、CVモデルは、実際のユーザインタフェースを認識せず、不適切になる可能性があり、CVモデルは、結果として有効に動作するために再訓練を必要とする場合がある。したがって、CVモデルを再訓練するための向上したアプローチが有益となる可能性がある。
本発明の特定の実施形態は、現在のCVモデル技術によってまだ完全に識別、認識、又は解決されていない、当該技術分野における課題及び必要性に対する解決方法を提供する可能性がある。例えば、本発明の幾つかの実施形態は、より正確なコンピュータ画像分析のため、誤識別された又は識別されなかったグラフィックコンポーネントを識別し、MLシステムによって生成されたRPA用のCVモデルを再訓練することに関する。
一実施形態において、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体で具現化される。プログラムは、CVモデルの実行から画像内のグラフィックコンポーネントの識別内容を受け取ることと、CVモデルによって識別された識別済みのグラフィックコンポーネントを伴う画像を、ビジュアルディスプレイに表示させることとを、少なくとも1つのプロセッサに実行させるように構成されている。コンピュータプログラムはまた、画像において誤識別された又は識別されなかったグラフィックコンポーネントの選択を受け取ることと、選択されたものを含む画像の領域の代表データを決定することと、代表データと画像を画像データベースに送ることとを、少なくとも1つのプロセッサに実行させるように構成されている。
別の実施形態において、コンピューティングシステムは、機械読み取り可能なコンピュータプログラム命令を記憶するメモリと、コンピュータプログラム命令を実行するように構成された少なくとも1つのプロセッサとを備える。該命令は、画像において誤識別された又は識別されなかったグラフィックコンポーネントの選択を受け取ることと、選択されたものを含む画像の領域の代表データを決定することと、CVモデルの再訓練のため代表データと画像を画像データベースに送ることとを、少なくとも1つのプロセッサに実行させるように構成されている。該命令はまた、再訓練されたCVモデルの実行から画像内のグラフィックコンポーネントの識別内容を受け取ることと、再訓練されたCVモデルによって識別された識別済みのグラフィックコンポーネントを伴う画像をビジュアルディスプレイに表示することとを、少なくとも1つのプロセッサに実行させるように構成されている。
さらに別の実施形態において、コンピュータ実施方法は、画像において誤識別された又は識別されなかったグラフィックコンポーネントの選択を、コンピューティングシステムによって受け取ることと、コンピューティングシステムによって、選択されたものを含む画像の領域の代表データを決定することとを含む。コンピュータ実施方法はまた、コンピューティングシステムによって、代表データと画像を画像データベースに送ることと、コンピューティングシステムによって、ワークフローに画像と代替的な画像処理ロジックを組み込んで、CVモデルが再訓練されている間に、誤識別された又は識別されなかったグラフィックコンポーネントを識別することとを含む。
本発明の特定の実施形態の利点が容易に理解されるように、上記簡単に説明した本発明のより詳細な説明を、添付の図面に示す特定の実施形態を参照して行う。これらの図面は、本発明の典型的な実施形態のみを示すもので、その範囲を限定するものと見なされるべきではないことを理解されたい。本発明は、添付の図面の使用を通じて追加の特性及び詳細とともに記載され説明される。
本発明の一実施形態によるRPAシステムを示すアーキテクチャ図である。
本発明の一実施形態による、デプロイされたRPAシステムを示すアーキテクチャ図である。
本発明の一実施形態による、デザイナとアクティビティとドライバとの関係を示すアーキテクチャ図である。
本発明の一実施形態によるRPAシステムを示すアーキテクチャ図である。
本発明の一実施形態による、実行時に仮想マシン(VM)システムにCVを使用するRPA実装を示す。
本発明の一実施形態による、設計時にグラフィックコンポーネントが識別されなかった又は誤識別された場合の、図4AのRPA実装を示す。
ユーザが画面上のグラフィカルコンポーネントを選択することを試みる前の、VMのリモートデスクトップ接続ウィンドウを示すスクリーンショットである。
ユーザが画面上のグラフィカルコンポーネントを選択することを試みた後の、VMのリモートデスクトップ接続ウィンドウを示すスクリーンショットである。
本発明の一実施形態による、CV/OCRが実行されてその結果がデザイナを介してユーザに対して表示された後の、セレクタツールウィンドウ及びリモートデスクトップ接続ウィンドウを示すスクリーンショットである。
本発明の一実施形態による、ユーザがグラフィカルコンポーネントを正しく識別されていない又は誤識別されているとして選択した後の、セレクタツールウィンドウ及びリモートデスクトップ接続ウィンドウを示すスクリーンショットである。
本発明の一実施形態による、CVモデルを再訓練した後のリモートデスクトップ接続ウィンドウを示すスクリーンショットである。
本発明の一実施形態による、CV/OCRが実行されてその結果がデザイナを介してユーザに対して表示された後の、アンカー指定ウィンドウ及びリモートデスクトップ接続ウィンドウを示すスクリーンショットである。
図9A〜図9Cは、本発明の一実施形態によるマルチアンカーマッチングアルゴリズムの例を示す。
本発明の一実施形態による、CV/OCRが実行されてその結果がデザイナを介してユーザ対して表示された後の、アンカー指定ウィンドウ及びリモートデスクトップ接続ウィンドウを示すスクリーンショットである。
本発明の一実施形態による、CVモデルを再訓練するプロセスを示すフローチャートである。
本発明の一実施形態による、CVモデルを再訓練するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
幾つかの実施形態は、より正確なコンピュータ画像分析のため、誤識別された又は識別されなかったグラフィックコンポーネントを識別し、MLシステムによって生成されたRPA用のCVモデルを再訓練することに関する。自動化されるアプリケーションのグラフィカルユーザインタフェース(GUI)を含むビジュアルディスプレイのスクリーンショット画像が取得されてもよい。例えばCitrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップなどの仮想マシン(VM)の実施形態において、或いは、特定のFlash、Silverlight、又はPDFドキュメントで、所定のアプリケーションのために画像のみが表示されてもよい。画像は、本発明の範囲から逸脱することなく、ウィンドウ、ドキュメント、財務領収書、請求書、及び/又は他の任意のグラフィック要素を含んでもよい。幾つかの実施形態において、画像は非構造化データを含んでもよいが、特定の実施形態において、データは構造化されている。
次に、OCRからのテキスト認識モデルと併用される可能性のあるCVモデルが、スクリーンショット画像で実行されてもよい。画像において識別された特定のグラフィックコンポーネントが、スクリーンショット画像とCV/OCRからコンポーネントを識別するデータとを入力として受け付けるデザイナに提供され、ビジュアルディスプレイ(例えば、コンピュータモニタ、ラップトップ画面、スマートフォン、仮想現実又は拡張現実ディスプレイデバイスなど)に、識別されたグラフィックコンポーネントを示すものをユーザに対して表示してもよい。ビジュアルディスプレイ上に一又は複数の誤識別された又は識別されなかったグラフィックコンポーネント(例えば、チェックボックス、テキストボックス、ラジオボタン、通常のボタンなど)がある場合、ユーザは自身の画面上でそのようなグラフィックコンポーネントを含める選択を行ってもよい。幾つかの実施形態において、ユーザに実用的な代替案を提供すること(例えば、誤識別された又は識別されなかったグラフィックコンポーネントに対して画像マッチングアルゴリズムを使用する能力をユーザに提供すること)により、そのような選択をユーザに促してもよい。幾つかの実施形態において、グラフィックコンポーネントは、CVモデルによって識別可能な視覚表示要素、OCRによって識別可能な視覚表示要素、及び/又はこれら両方による識別を必要とする視覚表示要素(例えば、少なくとも一部のテキストを含むテキストフィールドなど)を含んでもよいことに留意されたい。選択されたものから、デザイナは、ユーザによって選択された視覚表示の領域の代表データを決定してもよい。
幾つかの実施形態において、この代表情報は、領域を有する形状を定義する座標、線分、又はこれら両方を含む。特定の実施形態において、選択されるのは、本発明の範囲から逸脱することなく、矩形、円形、楕円形、正方形、六角形、フリーフォーム、及び/又は任意の他の適切な形状であってもよい。幾つかの実施形態において、ユーザは、関心のある各グラフィックコンポーネントに最もよく適合する可能性のある複数の種類の形状の間で選択可能であってもよい。例えば、矩形はテキストボックスに最もよく適合する可能性があり、円形はラジオボタンに最もよく適合する可能性がある。特定の実施形態において、コンピューティングシステムは、完全に囲まれていない自由形状を推論して完成させることを試みてもよい。
幾つかの実施形態において、適切なハードウェアが使用される場合、形状は、体積(即ち、ピクセルではなくボクセル)を有する3次元形状であってもよく、代表情報への関連する調整を伴ってもよいことに留意されたい。例えば、拡張現実ヘッドセットを使用してユーザの指の位置を検出したり、センサが組み込まれたポインタデバイスで3次元の位置を提供したりしてもよい。このようなシステムにより、例えば、矩形又は円の代わりに箱(ボックス)又は球を定義してもよい。
次に、デザイナは、スクリーンショット画像及び代表データを画像データベースに送り、レビュアは、このような情報を画像データベースから受け取る。この送信は、自動的に行われてもよいし、ユーザの指示で行われてもよい。ユーザからの追加のアクションがない幾つかの実施形態において、送信が自動的に行われることは新規である。実際、幾つかの実施形態において、ユーザは、再訓練プロセスが開始されたこと、又は、ユーザがそこで役割を果たしたことを知らずに、誤識別され且つ/又は識別されなかったグラフィックコンポーネントを識別している可能性がある。レビュアは、自身のコンピューティングシステムを介して、自身のデザイナアプリケーションを使用してユーザによって選択されたスクリーンショット画像及び領域をレビューし、エラーが存在することを確認する。例えば、人間のレビュアが、ユーザによって行われた選択を誤判定に関してレビューして、非識別及び/又は誤識別が実際に発生したことを確認してもよい。例えば、人間のレビュアは、ユーザがウィンドウの最大化/最小化アイコンを識別されていないものとして選択していないことを確認してもよい。その場合、レビュアは、再訓練のため、スクリーンショット画像及び代表データをMLシステムに送る。幾つかの実施形態において、再訓練は、識別された他の問題を伴うバッチで行われる。幾つかの実施形態において、画像データベースにおける設計時からの他の画像を使用して、再訓練を強化する。特定の実施形態において、MLシステムは、CVモデルを訓練するために使用されたものと同じMLシステムであるが、スクリーンショット画像及び代表データに基づいて(そして、おそらく上記の幾つかの実施形態における他のエラーに対処するため)更新される。次に、MLシステムは、CVモデルを再訓練し、誤識別された又は認識されなかったグラフィックコンポーネントをより正確に識別する、再訓練されたCVモデルを生成する。次に、再訓練されたCVモデルは、CVモデルを実行しているコンピューティングシステム(例えば、別のサーバ、ユーザのコンピューティングシステムなど)に送られ、再訓練されたCVモデルを使用して、誤識別された及び/又は識別されなかったグラフィックコンポーネントを含む全ての非テキストグラフィックコンポーネントを正確に識別する。
CVモデルの再訓練に、一又は複数のディープラーニングニューラルネットワーク(DLNN)を使用してもよい。例えば、TensorFlow(登録商標)、PyTorch(登録商標)などが使用されてもよい。しかし、このようなDLNNベースの再訓練は、完了するまでに数日又は数週間かかる場合がある。したがって、幾つかの実施形態において、誤識別された又は識別されなかったコンポーネントを認識するために、代替的な画像認識技術がユーザによって使用されてもよい。例えば、画像マッチングアルゴリズムが、ユーザによって選択された画面の領域上で使用されて、その領域におけるグラフィックコンポーネントを識別しようとしてもよい。デザイナは、再訓練されたCVモデルが準備されてデプロイされるまで、このロジックをワークフローに組み込んで、将来の処理に使用してもよい。画像マッチングは一般的には、本明細書で説明するマルチアンカー技術に比べて正確ではないが、CVモデルが再訓練されている間、誤識別された又は識別されなかったグラフィックコンポーネントが少なくともある程度の正確さで識別されるようにするための一時的な対応策を提供してもよい。これは、即時の一時的な解決策を提供するので、ユーザに、誤認識された及び/又は識別されなかったグラフィックコンポーネントの選択を行うことをさらに促す。
幾つかの実施形態において、グラフィカルコンポーネントが識別されない又は誤識別される場合、ユーザは、より正確でないアルゴリズムを使用するオプションを選択する。しかし、特定の実施形態において、ユーザは、選択を行うときにその背後で何かが起こっていることに気づかなくてもよく、デザイナは、識別されなかった又は誤識別されたコンポーネントのためワークフローに代替的な画像認識モデルを自動的に組み込んでもよい。したがって、例えば、選択を行って「OK」ボタンをクリックすることが、ユーザがシステムで持っていることを知っている唯一の対話であってもよい。
例えばCitrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップなどの仮想デスクトップインフラストラクチャ(VDI)環境を確実に自動化することは、RPAを使用して達成するのが困難であった。ネイティブコンピューティングシステムの一般的なRPA実装では、セレクタが使用される。セレクタは、ユーザインタフェース(UI)の要素の基本的なプロパティを使用して動作し、アプリケーション要素(例えば、ボタン、テキストフィールドなど)を識別する。しかし、この技術は、VDI環境において同じソフトウェアを自動化しようとすると失敗する。失敗の理由は、VDI環境がビデオストリーミングサービスと同様の方法でリモートデスクトップの画像をストリーミングするためである。「ビデオ」の画像(即ち、「フレーム」)で識別されるセレクタはないということである。光学式文字認識(OCR)及び画像マッチングを使用して、この課題を解決する試みが行われている。しかし、UIの僅かな変更でも自動化が機能しなくなり易いので、このような技術は信頼性が不十分であることが判明し、メンテナンスの問題を引き起こしている。
しかし、例えばUiPath(登録商標)で使用されているようなCVモデルを使用すると、ディープラーニングを使用して、このような画像ベースの環境を自動化する機能を提供できる。幾つかの実施形態において、デザイナ(及び、下記でロボット)は、人工知能(AI)、CV、OCR、テキストファジーマッチング、及び新規なアンカーシステムを組み合わせて、ユーザインタフェースの人間のような認識を可能にしてもよい。新規なアンカーシステムは、単一のアンカーであっても、複数のアンカーであってもよい。これにより、そのようなデザイナ/ロボットが、隠蔽されたプロパティ、識別子、及びその他のメタデータに依存する代わりに、画面を「見て」、そのグラフィックコンポーネントを視覚的に識別できる。このCVベースのアプローチは、幾つかの実施形態において、VDI環境に限定されないことに留意されたい。特定の実施形態は、SAP、Flash、Silverlight、PDF、様々な形式(例えば、JPG、PNG、BMPなど)の画像などを含むがこれらに限定されない、従来のUI自動化技術が苦戦している幅広いケースで視覚的なグラフィックコンポーネントを認識することも可能である。
従来の画像自動化とは異なり、幾つかの実施形態は、最初のCVモデルの画像マッチングに依存しない。結果として、そのような実施形態は、インタフェースの画像マッチングモデルを壊す可能性があるインタフェースの変更に対して高い弾力性があってもよく、そのようなインタフェースの変更には、色、フォント、サイズ、解像度の変更などが含まれるがこれらに限定されない。幾つかの実施形態のCVモデルは、このような変更を一度に全て処理可能であり、それでも、意図されたグラフィックコンポーネントを見つけることが可能であってもよい。
幾つかの実施形態は、例えばシンクライアントアーキテクチャなどのVMアーキテクチャに特に有益であってもよい。しかし、仮想化は、任意の適切な能力及び機能を備えるクライアントコンピューティングシステム(例えば、スタンドアロンのデスクトップ及びラップトップコンピューティングシステム、スマートフォンなど)を使用して実行される可能性がある。例えば、シンクライアントアーキテクチャでは、クライアントコンピューティングシステムは、ローカルに配置されているか分散されているかに関わらず、サーバ又はサーバのネットワークとのリモート接続を確立する軽量コンピュータである(例えば、クラウドコンピューティングアーキテクチャ)。一般的に、クライアントVMセッションは1台のサーバで実行される。
サーバは、従来のパーソナルコンピュータの殆どのタスク(即ち、ソフトウェアアプリケーションの起動及びデータの記憶)を実行し、画面画像をクライアントコンピューティングシステムに送る。クライアントコンピューティングシステムは、ユーザが画像を操作している場所のキーストローク及びマウスクリック(又は触覚インタフェースでのタッチ)を追跡し、この情報をサーバに送る。次に、サーバはこの情報を、ユーザが操作しようとしているサーバ上で実行されている対応するアプリケーションに提供する。その後、それに応じて画面画像が更新され、ユーザに送られて、一般的には、ユーザのコンピューティングシステムで実行されているかのようにアプリケーションが模倣される。一般的に、画面の更新は、リアルタイム又はほぼリアルタイムでシンクライアントに送られる。
画像が使用されるため、幾つかの実施形態は、上記のように、VMシステムでの使用によく適していてもよい。CVモデルは、画像内に含まれるグラフィックコンポーネントを識別しようとする。これは、グラフィックコンポーネント(例えば、テキストボックス、テキストフィールドなど)内に含まれている可能性のある、画像内のテキストを識別しようとするテキスト認識モジュールを使用して拡張されてもよい。
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計及び実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、並びにサードパーティアプリケーション、管理情報技術(IT)タスク、及びビジネスITプロセスの自動化のためのソリューションを提供してもよい。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にしてもよい。簡単に言うと、デザイナ110はワークフロー及びロボットの開発とデプロイメントを容易にしてもよい。
自動化プロジェクトは、開発者が、本明細書において「アクティビティ」として定義される、ワークフローで開発されたカスタムセットのステップ間の実行順序及び関係を制御できるようにすることで、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の1つの商業的な例は、UiPath Studio(商標)である。各アクティビティには、例えばボタンのクリック、ファイルの読み込み、ログパネルへの書き込みなどのアクションが含まれていてもよい。幾つかの実施形態において、ワークフローがネストされ又は埋め込まれてもよい。
一部の種類のワークフローには、シーケンス、フローチャート、有限状態機械(FSM)、及び/又はグローバル例外ハンドラが含まれてもよいが、これらに限定されない。シーケンスは、線形プロセスに特に適している可能性があり、ワークフローを混乱させることなく、あるアクティビティから別のアクティビティへのフローを可能にする。フローチャートは、より複雑なビジネスロジックに特に適している可能性があり、複数の分岐論理演算子によって、より多様な方法で決定の統合及びアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している可能性がある。FSMは、実行時に有限数の状態を使用してもよく、それらの状態は、条件(即ち、遷移)又はアクティビティによってトリガされる。グローバル例外ハンドラは、実行エラーが発生したときのワークフローの振る舞いを決定したり、プロセスをデバッグしたりするのに特に適している可能性がある。
ワークフローがデザイナ110で開発されると、ビジネスプロセスの実行は、デザイナ110で開発されたワークフローを実行する一又は複数のロボット130を調整するコンダクタ120によって調整される。コンダクタ120の実施形態のうち1つの商用的な例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの作成、監視、及びデプロイメントの管理を容易にする。コンダクタ120は、サードパーティのソリューション及びアプリケーションとの統合ポイントとして機能してもよい。
コンダクタ120は、全てのロボット130を管理して、集中ポイントからロボット130を接続して実行してもよい。管理可能なロボット130の種類には、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発及びテストの目的で使用される)、及び非生産ロボット(アテンディッドロボット132と同様であるが、開発及びテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザイベントによってトリガされ、同じコンピューティングシステム上で人間と一緒に動作する。アテンディッドロボット132は、集中プロセス展開及びロギング媒体のためにコンダクタ120と共に使用されてもよい。アテンディッドロボット132は、人間のユーザが様々なタスクを達成するのを助け、ユーザイベントによってトリガされてもよい。幾つかの実施形態において、プロセスは、この種のロボットのコンダクタ120から開始されることができず、且つ/又は、ロックされた画面の下で実行できない。特定の実施形態において、アテンディッドロボット132は、ロボットトレイから又はコマンドプロンプトから開始できるのみである。幾つかの実施形態において、アテンディッドロボット132は、人間の監督下で動作するべきである。
アンアテンディッドロボット134は、仮想環境で操作不要で実行され、多くのプロセスを自動化できる。アンアテンディッドロボット134は、遠隔実行、監視、スケジューリング、及びワークキューのサポートの提供を担当してもよい。幾つかの実施形態において、全てのロボットの種類のデバッグをデザイナ110で実行してもよい。アテンディッドロボットとアンアテンディッドロボットの両方が、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって生成されたもの)、及びコンピューティングシステムアプリケーション(例えば、デスクトップ及びラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステム及びアプリケーションを自動化してもよい。
コンダクタ120は、プロビジョニング、デプロイメント、コンフィギュレーション、キューイング、監視、ロギング、及び/又は相互接続性の提供を含むがこれらに限定されない様々な機能を有してもよい。プロビジョニングには、ロボット130とコンダクタ120(例えば、ウェブアプリケーションなど)の間の接続の作成及び保守が含まれてもよい。デプロイメントには、実行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することが含まれてもよい。コンフィギュレーションには、ロボット環境及びプロセスコンフィギュレーションの保守及び配信が含まれてもよい。キューイングには、キュー及びキューアイテムの管理の提供が含まれてもよい。監視には、ロボット識別データの追跡及びユーザ権限の維持が含まれてもよい。ロギングには、データベース(例えば、SQLデータベース)及び/又は他のストレージメカニズム(例えば、ElasticSearch(登録商標)など。これは、大規模なデータセットを記憶してすばやくクエリを実行する機能を提供する)へのログの記憶及びインデックス付けが含まれてもよい。コンダクタ120は、サードパーティのソリューション及び/又はアプリケーションのための通信の集中ポイントとして機能することで、相互接続性を提供してもよい。
ロボット130は、デザイナ110に組み込まれたワークフローを実行する実行エージェントである。ロボット130の幾つかの実施形態のうち1つの商用的な例は、UiPath Robots(商標)である。幾つかの実施形態において、ロボット130は、デフォルトで、Microsoft Windows(登録商標)サービスコントロールマネージャー(SCM)が管理するサービスをインストールする。その結果、そのようなロボット130が、ローカルシステムアカウントでインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権限を有してもよい。
幾つかの実施形態において、ロボット130は、ユーザモードでインストールされてもよい。そのようなロボット130の場合、これは、ユーザのもとでロボット130がインストールされて、そのユーザと同じ権利をロボット130が有することを意味する。この特徴は、高密度(HD)ロボットで利用可能であってもよく、各マシンの最大限の活用を確実にしてもよい。幾つかの実施形態において、任意の種類のロボット130が、HD環境で構成されてもよい。
幾つかの実施形態におけるロボット130は、それぞれが特定の自動化タスク専用である幾つかのコンポーネントに分割される。幾つかの実施形態におけるロボットコンポーネントには、SCM管理のロボットサービス、ユーザモードのロボットサービス、エグゼキュータ、エージェント、及びコマンドラインが含まれるが、これらに限定されない。SCM管理のロボットサービスは、Windows(登録商標)セッションを管理、監視してコンダクタ120と実行ホスト(即ち、ロボット130が実行されるコンピューティングシステム)の間のプロキシとして機能する。このようなサービスは、ロボット130の資格情報で信頼され、これを管理する。コンソールアプリケーションは、ローカルシステムのもとでSCMによって起動される。
幾つかの実施形態におけるユーザモードロボットサービスは、Windows(登録商標)セッションを管理、監視し、コンダクタ120と実行ホストの間のプロキシとして機能する。ユーザモードロボットサービスは、ロボット130の資格情報で信頼され、これを管理してもよい。SCM管理のロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動されてもよい。
エグゼキュータは、Windows(登録商標)セッションのもとで所定のジョブを実行してもよい(即ち、エグゼキュータはワークフローを実行してもよい。エグゼキュータは、モニタ毎のドット/インチ(DPI)設定を認識していてもよい。エージェントは、システムトレイウィンドウで利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントはこのサービスのクライアントであってもよい。エージェントは、ジョブの開始又は停止を要求し、設定を変更してもよい。コマンドラインはそのサービスのクライアントであってもよい。コマンドラインは、ジョブの開始を要求可能なコンソールアプリケーションであり、その出力を待つ。
上記で説明したようにロボット130のコンポーネントを分割することにより、開発者、サポートユーザ、及びコンピューティングシステムが、各コンポーネントの実行内容の実行、識別、及び追跡をより容易に行うことができる。このように、例えばエグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネント毎に特別な振る舞いが構成されてもよい。幾つかの実施形態において、エグゼキュータは、モニタ毎のDPI設定を常に認識していてもよい。その結果、ワークフローが作成されたコンピューティングシステムの構成に関わらず、ワークフローが任意のDPIで実行されてもよい。幾つかの実施形態において、デザイナ110からのプロジェクトは、ブラウザのズームレベルから独立していてもよい。DPIを認識しない又は意図的に認識しないとマークされているアプリケーションの場合、幾つかの実施形態においてDPIが無効にされてもよい。
図2は、本発明の一実施形態による、デプロイされたRPAシステム200を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム200は、図1のRPAシステム100であってもよいし、その一部であってもよい。クライアント側、サーバ側、又はこれらの両方が、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含んでもよいことに留意されたい。クライアント側では、ロボットアプリケーション210が、エグゼキュータ212、エージェント214、及びデザイナ216を含む。しかし、幾つかの実施形態において、デザイナ216はコンピューティングシステム210で実行されていなくてもよい。エグゼキュータ212はプロセスを実行する。図2に示すように、複数のビジネスプロジェクトが同時に実行されてもよい。このような実施形態において、エージェント214(例えば、Windows(登録商標)サービスなど)は、全てのエグゼキュータ212の単一の接続ポイントである。このような実施形態における全てのメッセージは、さらにデータベースサーバ240、インデクササーバ250、又はこれらの両方を介して、それらのメッセージを処理するコンダクタ230にログインされる。図1に関して上記で説明したように、エグゼキュータ212はロボットコンポーネントであってもよい。
幾つかの実施形態において、ロボットは、マシン名とユーザ名の間の関連付けを表す。ロボットは同時に複数のエグゼキュータを管理してもよい。同時に実行されている複数の対話型セッションをサポートするコンピューティングシステム(例えば、Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され、それぞれが一意のユーザ名を使用する個別のWindows(登録商標)セッションで実行されてもよい。これを上記のHDロボットという。
エージェント214はまた、ロボットのステータスを送り(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送り)、実行されるパッケージの必要なバージョンをダウンロードすることも担当する。幾つかの実施形態において、エージェント214とコンダクタ230の間の通信は、常にエージェント214によって開始される。通知シナリオにおいて、エージェント214は、コンダクタ230によって後で使用されるWebSocketチャネルを開き、ロボットにコマンド(例えば、開始、停止など)を送ってもよい。
サーバ側では、プレゼンテーション層(ウェブアプリケーション232、Open Data Protocol(OData)Representative State Transfer(REST)Application Programming Interface(API)エンドポイント234、通知監視236)、サービス層(API実装/ビジネスロジック238)、及び永続層(データベースサーバ240及びインデクササーバ250)が含まれる。コンダクタ230には、ウェブアプリケーション232、OData REST APIエンドポイント234、通知監視236、及びAPI実装/ビジネスロジック238が含まれる。幾つかの実施形態において、コンダクタ220のインタフェースで(例えば、ブラウザ220を介して)ユーザが実行する殆どのアクションが、様々なAPIを呼び出すことで実行される。このようなアクションには、本発明の範囲から逸脱することなく、ロボットでのジョブの開始、キュー内のデータの追加/削除、操作不要で実行するジョブのスケジューリングなどが含まれてもよいが、これらに限定されない。ウェブアプリケーション232は、サーバプラットフォームのビジュアル層である。このような実施形態において、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)及びJavaScript(JS)を使用する。しかし、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、又は任意の他のフォーマットが使用されてもよい。このような実施形態において、ユーザは、コンダクタ230を制御するための様々なアクションを実行するため、ブラウザ220を介してウェブアプリケーション232からウェブページと対話する。例えば、ユーザは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボット毎に且つ/又はプロセス毎にログを分析し、ロボットを起動、停止させるなどしてもよい。
ウェブアプリケーション232に加えて、コンダクタ230には、OData REST APIエンドポイント234を公開するサービス層も含まれる。しかし、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって使用される。このような実施形態において、エージェント214は、クライアントコンピュータ上の一又は複数のロボットのスーパーバイザである。
このような実施形態におけるREST APIは、コンフィギュレーション、ロギング、監視、及びキューイングの機能をカバーする。幾つかの実施形態において、コンフィギュレーションエンドポイントが使用されて、アプリケーションユーザ、権限、ロボット、アセット、リリース、及び環境を定義、構成してもよい。ロギングRESTエンドポイントが使用されて、例えばエラー、ロボットによって送られた明示的なメッセージ、その他の環境固有の情報など、様々な情報をログに記録してもよい。デプロイメントRESTエンドポイントがロボットによって使用されて、コンダクタ230でジョブ開始コマンドが使用される場合に実行する必要があるパッケージバージョンをクエリしてもよい。キューイングRESTエンドポイントは、例えばキューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キュー及びキューアイテムの管理を担当する。
監視RESTエンドポイントは、ウェブアプリケーション232及びエージェント214を監視する。通知監視API236は、エージェント214の登録、エージェント214へのコンフィギュレーション設定の配信、並びにサーバ及びエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。幾つかの実施形態において、通知監視API236はまた、WebSocket通信を使用してもよい。
永続層は、この実施形態では1対のサーバ、つまり、データベースサーバ240(例えば、SQLサーバなど)及びインデクササーバ250を含む。この実施形態のデータベースサーバ240は、ロボット、ロボットグループ、関連プロセス、ユーザ、ロール、スケジュールなどのコンフィギュレーションを記憶する。このような情報は、幾つかの実施形態において、ウェブアプリケーション232を介して管理される。データベースサーバ240は、キュー及びキューアイテムを管理してもよい。幾つかの実施形態において、データベースサーバ240は、(インデクササーバ250に加えて又はその代わりに)ロボットによってログに記録されたメッセージを記憶してもよい。
幾つかの実施形態において任意であるインデクササーバ250は、ロボットによってログに記録された情報を記憶し、インデックスを付ける。特定の実施形態において、インデクササーバ250は、コンフィギュレーション設定を通じて無効にされてもよい。幾つかの実施形態において、インデクササーバ250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって(例えば、ログメッセージ、行書き込みなどのアクティビティを使用して)ログに記録されたメッセージは、ロギングRESTエンドポイントを介してインデクササーバ250に送られてもよく、そこで将来の利用のためにインデックスが付けられてもよい。
図3は、本発明の一実施形態による、デザイナ310とアクティビティ320、330とドライバ340との間の関係300を示すアーキテクチャ図である。上記のとおり、開発者は、デザイナ310を使用して、ロボットによって実行されるワークフローを開発する。ワークフローは、ユーザ定義のアクティビティ320とUI自動化アクティビティ330を含んでもよい。一部のCVアクティビティには、クリック(click)、タイプ(type)、テキストを取得(get text)、ホバー(hover)、要素の有無を検出(element exists)、スコープの更新(refresh scope)、ハイライト(highlight)などが含まれてもよいが、これらに限定されない。幾つかの実施形態において、クリック(click)は、例えば、CV、OCR、ファジーテキストマッチング、及び複数のアンカーを使用する要素を識別し、クリックする。タイプ(type)は、上記を使用して要素を識別してもよく、要素内でタイプする。テキストを取得(get text)は、特定のテキストの位置を識別し、OCRを使用してスキャンしてもよい。ホバー(hover)は、要素を識別し、その上にホバーしてもよい。要素の有無を検出(element exists)は、上記の技術を使用して、要素が画面上に存在するか否かを確認してもよい。幾つかの実施形態において、デザイナ310で実装可能な数百又は数千ものアクティビティがあってもよい。しかし、本発明の範囲から逸脱することなく、任意の数及び/又は種類のアクティビティが利用可能であってもよい。
UI自動化アクティビティ330は、低レベルのコードで書かれた特別な低レベルのアクティビティ(例えば、CVアクティビティなど)のサブセットであり、画面との対話を容易にする。UI自動化アクティビティは、ロボットが所望のソフトウェアと対話することを可能にするドライバ340を介して、このような対話を容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
ドライバ340は、低レベルでOSと対話して、フックを探したりキーを監視したりするなどしてもよい。ドライバ340は、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にしてもよい。例えば、「クリック」アクティビティは、ドライバ340を介してそのような異なるアプリケーションで同じ役割を果たす。
図4は、本発明の一実施形態によるRPAシステム400を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム400は、図1及び/又は図2のRPAシステム100及び/又は200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、そこで実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信可能である。次に、コンダクタコンピューティングシステム420は、データベースサーバ430及び任意のインデクササーバ440と通信可能である。
図2及び図4に関して、これらの実施形態においてウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバソフトウェアが使用されてもよいことに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバ側アプリケーションを実行してもよい。
図5Aは、本発明の一実施形態による、実行時にVMシステムにCVを使用するRPA実装500を示す。VMサーバ510は、クライアントコンピューティングシステム530に送られる一連の画像520を生成する。画像520は、コンピューティングシステム530上で実行されるアプリケーションによって表示されてもよい。或いは、画像530は、コンピューティングシステム530自体の画面として表示されてもよい。
VMサーバ510からの画像520は、ロボット532に送られ、ロボット532は、CVサーバ540で実行されたCVモデルからのグラフィックコンポーネントの識別内容と、(例えば、Google(登録商標)、Microsoft(登録商標)、Abbyy(登録商標)などによって提供される)OCRサーバ550からのOCRデータとを受け取る。幾つかの実施形態において、CVモデル及びOCRは、同じサーバ上で実行されてもよい。特定の実施形態において、CVモデル及びOCRの一方又はその両方が、コンピューティングシステム530上で実行されてもよい。幾つかの実施形態において、ロボット532は、画像520とCVサーバ540及びOCRサーバ550からのデータとへのアクセスを有する限り、異なるコンピューティングシステム上に存在してもよい。ロボット532は、CVモデル及びOCRから受け取った情報を処理し、この情報を使用して、画像内のグラフィックコンポーネントを認識する。次に、ロボットは所望のアクティビティ(例えば、情報の入力、ボタンのクリック、サードパーティソフトウェアとの相互作用など)を実行する。
図5Bは、本発明の一実施形態による、設計時にグラフィックコンポーネントが誤識別された又は識別されなかった場合のRPA実装500を示す。この実施形態において、コンピューティングシステム530は、ロボット532を実行するというよりはむしろ、デザイナ534を実行している。また、コンピューティングシステム530が同じコンピューティングシステムとして図5Bに示されていることに留意されたい。この場合、ユーザは、グラフィックコンポーネントが誤識別された又は識別されなかった画像520の部分を囲む境界形状522を描いている。
デザイナ534は、境界形状522の代表データを受け取り、この情報を画像520と共に画像データベース560に送る。次に、画像データベース560は、代表データ及び画像をレビュアのコンピューティングシステム570に提供する。レビュアコンピューティングシステム570を使用する人間のレビュアは、ソフトウェアエンジニア又はグラフィックコンポーネントが実際に識別されなかった又は誤識別されたか否かを判断する能力を有する他の何らかの人間であってもよい。次に、人間のレビュアは、CVサーバ540を介してCVモデルを通じて画像に目を通し、その結果を確認する。デザイナ534から送られた画像と代表データが実際にそのようなエラーを示している場合、レビュアは、レビュアコンピューティングシステム570を介して、誤識別された又は識別されなかったグラフィックコンポーネントに正しくラベルを付け、再訓練のため適切なラベルと共に画像520をMLシステム580(例えば、一又は複数のサーバ、分散又はクラウドコンピューティングシステム、スーパーコンピュータ、量子コンピューティングシステムなど)に送る。次に、MLシステム580は、CVモデルのディープラーニング再訓練プロセスを開始する。上記のとおり、幾つかの実施形態において、DLNNシステムがCVモデルを再訓練するのに要する比較的長い時間のため他のエラーが受け付けられた後、この再訓練がバッチで行われてもよい。
幾つかの実施形態におけるCVの通常の動作中、次の3つの種類の情報:(1)設計時画像、(2)報告された問題、(3)画像マッチング領域が、画像データベース540に記憶され、再訓練のために使用されてもよい。幾つかの実施形態における設計時画像は、ユーザが自動化したいことをアプリケーションに示したときに取得されるスクリーンショットである。このようなスクリーンショットは、幾つかの実施形態において、追加データのない完全なUIであってもよい。これは、レビュアがスクリーンショットとその検出結果を見て、全てが適切に検出されたか否かを確認してもよいためである。その場合、スクリーンショットは破棄されてもよい。しかし、何らかのエラーに気づいた場合、レビュアはそれに応じてエラーにラベルを付け、エラーをMLシステム580(例えば、ML訓練サーバ)に送られてもよい。
報告された問題に関して、幾つかの実施形態において、要素が検出されていない又は誤認識された場合、例えば、ユーザは、「問題を報告(report issue)」ボタンをクリックし、(例えば、ボックスを描画することにより)選択を行ってエラーが存在する領域を示し、送信ボタンをクリックしてもよい。次に、このようなスクリーンショット画像及び強調された領域がレビュアに送られる。レビュアは、実際にエラーがあったか否かを確認し、要素に適切なラベルを付け、再訓練のため画像及び正しいラベルをMLシステム580に送る。
画像マッチング領域は、幾つかの実施形態において、報告された問題と同じ一般的なフローに従ってもよい。完全なUI及び画像マッチング領域の座標が画像データベース540に送られてもよい。次に、レビュアが全てを確認し、エラーがある場合、再訓練のためデータをMLシステム560に送る。
CVモデルが再訓練されると、MLシステム580は、再訓練されたCVモデルをCVサーバ540に送る。次に、再訓練されたCVモデルは、画像520の将来のバージョンについてCV分析を実行するために使用される。
上記のとおり、幾つかの実施形態は、SAP、Flash、Silverlight、PDF、様々なフォーマット(例えば、JPG、PNG、BMPなど)の画像などで、CV及びOCRを実行可能である。SAPの場合、SAPサーバは、VMサーバ510の代わりをしてもよい。幾つかの実施形態において、複数のサーバ種類(例えば、VMサーバ、SAPサーバなど)が、クライアントコンピューティングシステム530と同時に通信してもよい。特定の実施形態において、上記のリモートサーバに加えて又はその代わりに、Flash、Silverlight、PDF、画像などのローカルインスタンスがクライアントコンピューティングシステム530に表示され、ロボット532がそのような画像を上記で説明したとおり処理してもよい。
図6A及び6Bは、ユーザが画面上のグラフィカルコンポーネントを選択することを試みる前(図6A)及び後(図6B)の、VMのリモートデスクトップ接続ウィンドウ600を示す。見て分かるように、ユーザが「On Us Check」の横のフィールドを選択しようとすると、ウィンドウ全体が強調表示される。これは、リモートデスクトップ接続ウィンドウ600が単なる画像であるためである。
図7Aは、本発明の一実施形態による、CV/OCRが実行されてその結果がデザイナを介してユーザに対して表示された後の、セレクタツールウィンドウ710及びリモートデスクトップ接続ウィンドウ700を示すスクリーンショットである。見て分かるように、今度はテキストフィールド702が識別されて選択可能になっているが、ウィンドウ600の場合はそうではなかった。しかし、CVモデルは、常に全てのグラフィックコンポーネントを正しく識別するわけではない可能性があり、且つ/又は、一又は複数のグラフィックコンポーネントを見逃す可能性がある。例えば、「Cash Count」ボタンがCVモデルによって識別されなかったと仮定する。そのような場合、ユーザは、ユーザが選択704を行うことを可能にするセレクタツールウィンドウ700を使用してもよい。図7Bを参照されたい。この実施形態において、選択に関連する結果がセレクタウィンドウ710に示される。次に、ユーザは、誤識別又は非識別が生じた画面上の領域を選択して、選択領域706を作成してもよい。上記のとおり、本発明の範囲から逸脱することなく、任意の適切な形状が定義され且つ/又は使用されてもよい。
幾つかの実施形態において、画像と代表データは自動化ファイル(ワークフロー)に記憶され、ロボットがワークフローロジックを自律的に実行するときにその特定の画面要素を見つけて操作する(例えば、それをクリックする)ために実行時に使用される。特定の実施形態において、背後で、ユーザによって示された選択に関連する画像及び代表データが、画像データベースに送られてレビュアによってレビューされ、場合によっては再訓練に使用される。上記のとおり、これはユーザの知らないうちに行われてもよい。
CVモデルの再訓練が行われた後、CVモデルが再度実行され、デザイナによって使用されて、そこで識別されたグラフィカルコンポーネントをユーザに対して表示してもよい。今度は、図7Cで陰影によって示されるように、ウィンドウ700内の全てのグラフィックコンポーネントが正しく識別されるはずである。今度はキャッシュカウント(cash count)ボタン708が認識される。ワークフローが正しく動作していることをユーザが確信し、全てのグラフィカルコンポーネントが適切に識別されると、ワークフローはロボットによって自律的に実行可能である。
幾つかの実施形態において、マルチアンカーマッチングアルゴリズムが、画像内のグラフィックコンポーネントを一意に認識するために使用される。CVモデルは、画面上の特定のグラフィックコンポーネントを識別してもよい。図8は、本発明の一実施形態による、CV/OCRが実行されてその結果がデザイナを介してユーザに対して表示された後の、アンカー指定ウィンドウ810及びリモートデスクトップ接続ウィンドウ800を示すスクリーンショットである。ここで、ユーザは、キャッシュカウントボタン802をターゲットとして識別する。次に、ユーザは、その左側にあるテキストフィールド804をアンカーとして識別する。この場合、キャッシュカウントボタン802の左側のテキストフィールド804の存在は、それを一意に識別するのに十分である。
しかし、これは、全ての場合においてグラフィックコンポーネントを一意に識別するのに十分ではない可能性がある(例えば、2つの異なるテキストフィールドの左側に「Name」という2つのテキストラベルがある場合など)。このような場合、ユーザは、グラフィックコンポーネントを一意に識別するために、一又は複数の一意の識別アンカーを追加するように求められてもよい。アンカー及びターゲットに関連する位置情報、サイズ情報、方向情報などが使用されて、幾何学的形状又はグラフィック構造の特性(例えば、アウトスターなどのグラフィックの「星」であるが、方向(ベクトル)を有しないもの、様々な方法で接続された複数の線分など)が定義されてもよい。次に、この形状又は構造を使用して、ターゲットのグラフィックコンポーネントを一意に判断してもよい。
非限定的な例として、名前(name)テキストフィールド(例えば、「Name」など)の左側に特定のテキストラベルが発見された上記の場合を考える。ただし、画像は、左側に同じラベルテキストを有する第2の名前(name)テキストフィールドも含むと仮定する。このラベルの存在だけでは、2つのテキストフィールド自体を区別することはできない。
しかし、別のグラフィック要素の位置関係により、一方のテキストフィールドと他方のテキストフィールドを一意に識別できる場合もある。例えば、ボタンが画面上の特定の場所に配置されていてもよい。一方のテキストフィールドとその左側のラベルとボタンと間の三角形の特性(例えば、頂点座標など)に対して、他方のテキストフィールドとその左側のラベルとボタンとの間の三角形の特性を分析することにより、その2つを一意に区別することが可能である。この一意の識別により、ワークフローを実行するロボットは、後で両方のテキストフィールドを正しく識別し、適切なそれぞれの情報を入力できる。
図9A〜図9Cは、そのような例を示す。ウィンドウ900は、重複するラベル及びテキストフィールドを有するフォームを含む。ラベルはOCRを使用して認識されてもよく、テキストフィールドはCVモデルを使用して認識されてもよい。この場合、ウィンドウ900は、ファーストネーム(first name)テキストフィールド910、920及びファーストネーム(first name)ラベル912、922を含む。
図9Bでは、例えば、テキストフィールドの左側の「First Name」ラベルは、ファーストネームテキストフィールド910とファーストネームテキストフィールド920とを一意に区別するには十分ではない。例えば、ユーザがファーストネームラベル912をアンカーとして選択してファーストネームテキストフィールド910をターゲットとして識別すると、システムはこれがファーストネームテキストフィールド920も識別すると認識する。したがって、システムは、ファーストネームテキストフィールド920及びファーストネームラベル922に陰影を付けて、ファーストネームラベル912がアンカーとして単独では機能しないことをユーザに知らせる。したがって、別のアンカーが必要であることを認識して、ユーザは、出荷(shipping)ラベル914を第2のアンカーとして選択する。システムは、これにより、この形式でファーストネームテキストフィールド910を一意に識別できると認識する。
各グラフィックコンポーネントの相対的な位置が、ある画像から別の画像に幾らか変化してもよいことにも留意されたい(例えば、スキャンされたレシートの場合を考える)。しかし、それぞれの形状関係(この場合、本発明の範囲から逸脱することなく任意の所望の位置が使用されてもよいが、ターゲット910及び各アンカー912、914、並びにそれらの端部の間の線分についてのウィンドウ900内の座標)を定義して、線分の長さ及び角度を見ることにより、どのテキストフィールドがどれであるかを判断できる。ここではターゲット910から各アンカー912、914への線分が使用されているが、本発明の範囲から逸脱することなく、任意の所望の数のアンカー及び任意の所望の形状が使用されてもよい。実際には、本発明の範囲から逸脱することなく、任意の幾何学的形状(例えば、三角形、長方形など)又は非幾何学的形状(例えば、示されているような、閉じていない線分ベースの構造など)が使用されてもよい。
幾つかの実施形態において、マルチアンカーマッチングアルゴリズムによって定義された形状の角度及び線分の長さは、UIにおけるスケール、DPI、色の変化、フォント、ビデオフレームレート、陰影付けなどの変更に対応する許容範囲内で弾力性があってもよい。幾つかの実施形態において、弾力性は、VMからのビデオストリーム又は画像にとって特に有益であってもよい。しかし、特定の実施形態において、該アルゴリズムは、比較的又は完全に非弾力的であってもよく、前者の場合には制限された許容差を採用し、後者の場合には許容差を採用しない。これは、それぞれ、近似一致又は完全一致の検索に役立つ。
幾つかの実施形態において、テキストファジーマッチングロジックを使用して、例えばGoogle(登録商標)クラウドOCR、Microsoft(登録商標)OCR、Tesseract(登録商標)OCRなどのOCRエンジンにおける不正確さ又はエラーを補償してもよい。一例として、テキストファジーマッチングを使用すると、「NAM」又は「NME」の検出は「NAME」と論理的に関連付けられるか、又は、一致してもよい。
本明細書における例では、例えばアンカーに関連する相対距離などの閾値処理を伴う幾何学的マッチングが、UIのRPAに利用されてもよい。一例として、UIの画像の各要素が、信頼レベルと関連付けられてもよい。閾値未満の要素の適合候補が、マッチングのために破棄されてもよい。非限定的な例として、CIが60%未満の検出された要素は破棄されてもよい。
幾つかの実施形態において、複数のアンカー及びターゲットによって定義される幾何学的形状の少なくとも一部が、幾何学的閾値の許容差がより小さい状態で、水平及び/又は垂直に詰められてもよい。そうでない場合、閾値処理は上記のように行われてもよいが、より厳しい許容差を有する。これは、グラフィカルコンポーネントの互いに関する位置が修正される可能性が高い場合に実行されてもよい。
特定の実施形態において、確率リストが、各グラフィック要素のCVモデルから返されてもよい。要素が誤識別された場合、他の要素をアンカーとして使用して判断を行ってもよい。例えば、ラジオボタンが、最も確からしい適合としてチェックボックスと誤識別された場合を考える。例えば、図10のスクリーンショット1000及びセレクタウィンドウ1010を参照されたい。2番目又は3番目に適合する可能性が高いものが実際の適合である傾向がある。例えば近くのラジオボタンなどの別のアンカーを追加すると、所定のコンポーネントが確率リストからどの要素であるかを識別するのに役立つ。
CVモデルが道路の中央にあるオブジェクトを自転車である可能性が最も高いと識別した別の例を考える。しかし、オブジェクトは実際にはドローンであり、自転車は確率リストの下位にある。乗り手を「アンカー」として使用すると、CVモデルはオブジェクトを自転車として正しく識別できるようになる可能性がある。
図11は、本発明の一実施形態による、CVモデルを再訓練するプロセス1100を示すフローチャートである。1105で、プロセス1100は、画像内のグラフィックコンポーネントを識別するためにグラフィックコンポーネントを含む画像に対してCVモデル及びOCRを実行することから始まる。幾つかの実施形態において、画像は仮想マシン(VM)からのものである。次に、1110で、デザイナアプリケーションが、CVモデル及びOCRの実行からグラフィックコンポーネント及びテキストの識別内容を受け取る。1115で、デザイナは、CVモデルによって識別された識別済みのグラフィックコンポーネントを伴う画像をビジュアルディスプレイに表示する。次に、1120で、デザイナは、画像内の誤識別された又は識別されなかったグラフィックコンポーネントの選択を受け取る。この選択に基づいて、1125で、ロボットは選択されたものを含む画像の領域の代表データを決定し、1130で、ワークフローに代替的な画像処理ロジック(例えば、画像マッチングロジックなど)と共に使用される画像を組み込む。次に、1135で、代表データ及び画像が画像データベースに送られる。
幾つかの実施形態において、代表情報は、領域を有する形状を定義する座標、線分、又はこれら両方を含む。特定の実施形態において、デザイナが手入力で実行しているコンピューティングシステムのユーザは、誤識別された又は識別されなかったグラフィックコンポーネントを選択し、デザイナはユーザに代表データ及び画像がCVモデルの再訓練のために送られていることを示すものを提供しない。幾つかの実施形態において、CVモデルは、画像内のターゲットグラフィックコンポーネント及び少なくとも2つのアンカーグラフィックコンポーネントによって定義される形状特性を使用してターゲットグラフィックコンポーネントの種類を判断するマルチアンカーマッチングアルゴリズムを使用する。特定の実施形態において、ターゲットグラフィックコンポーネン及び各アンカーグラフィックコンポーネントの座標セットは、形状の端点として、幾何学的形状の線分及び角度を定義するために使用され、幾何学的形状の線分の角度及び長さは、スケール、DPI、色の変化、フォント、ビデオフレームレート、陰影付け、又はそれらのうちの任意の組み合わせの変更に対応する許容範囲内で弾力性がある。
画像データベースによって受け取られた後、1140で、画像がレビュアコンピューティングシステムに送られる。レビュアコンピューティングシステムを操作するレビュアは(又はレビュアコンピューティングシステム自体が自動的に)、画像に対してCVモデルを実行する、或いは、CVモデルを実行させる。1145でレビュアがエラーが存在すると確信しない場合、プロセスは終了し、幾つかの実施形態において画像が画像データベースから削除されてもよい。しかし、1145でレビュアがエラーを確認した場合、1150で、再訓練のために、画像と誤識別されたコンポーネント又は識別されなかったコンポーネントの正しいラベルとがMYシステムに送られる。MLシステムがCVモデルを再訓練した後、再訓練されたCVモデルが、例えば、CVサーバ又はユーザコンピューティングシステムによって受け取られ、古いCVモデルの代わりに再訓練されたCVモデルが使用される。
図12は、本発明の一実施形態による、CVモデルを再訓練するように構成されたコンピューティングシステム1200を示すアーキテクチャ図である。幾つかの実施形態において、コンピューティングシステム1200は、図1〜図5Bのコンピューティングシステムのうちの一又は複数であってもよい。コンピューティングシステム1200は、情報を通信するためのバス1205又は他の通信メカニズムと、情報を処理するためにバス1205に接続されたプロセッサ1210とを含む。プロセッサ1210は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数の例、及び/又はそれらのうちの任意の組み合わせを含む、任意の種類の汎用又は特定用途のプロセッサであってもよい。プロセッサ1210はまた、複数の処理コアを有してもよく、コアの少なくとも一部が、特定の機能を実行するように構成されてもよい。幾つかの実施形態において、複数並列処理が使用されてもよい。特定の実施形態において、少なくとも1つのプロセッサ1210が、生体ニューロンを模倣する処理要素を含むニューロモーフィック回路であってもよい。幾つかの実施形態において、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としなくてもよい。
コンピューティングシステム1200は、プロセッサ1210によって実行される情報及び命令を記憶するためのメモリ1215をさらに含む。メモリ1215は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリ、キャッシュ、例えば磁気若しくは光ディスクなどの静的記憶装置、又は任意の他の種類の非一時的なコンピュータ読み取り可能な媒体、又はこれらのうちの組み合わせのうちの任意の組み合わせから構成されてもよい。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ1210によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、又はその両方を含んでもよい。媒体は、取り外し可能、取り外し不可能、又はその両方であってもよい。
さらに、コンピューティングシステム1200は、無線及び/又は有線接続を介して通信ネットワークへのアクセスを提供するために、例えばトランシーバなどの通信デバイス1220を含む。幾つかの実施形態において、通信デバイス1220は、本発明の範囲から逸脱することなく、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC−FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W−CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、Long Term Evolution(LTE)、LTEアドバンスト(LTE−A)、802.11x、Wi−Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、Home Node−B(HnB)、Bluetooth、Radio Frequency Identification(RFID)、Infrared Data Association(IrDA)、Near−Field Communications(NFC)、第5世代(5G)、New Radio(NR)、これらのうちの任意の組み合わせ、及び/又は任意の他の現在存在する又は将来実施される通信規格及び/又はプロトコルを使用するように構成されてもよい。幾つかの実施形態において、通信デバイス1220は、本発明の範囲から逸脱することなく、単一、アレイ、フェーズド、スイッチド、ビームフォーミング、ビームステアリング、これらのうちの組み合わせ、及び/又は任意の他のアンテナ構成である一又は複数のアンテナを含んでもよい。
プロセッサ1210は、バス1205を介して、例えばプラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、又はユーザに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ1225にさらに接続される。ディスプレイ1225は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されてもよい。任意の適切な表示デバイス及び触覚I/Oが、本発明の範囲から逸脱することなく、使用されてもよい。
キーボード1230と、例えばコンピュータマウス、タッチパッドなどのようなカーソル制御デバイス1235とが、さらにバス1205に接続されて、ユーザがコンピューティングシステムとインタフェースをとることを可能にする。しかし、特定の実施形態において、物理的なキーボード及びマウスが存在しなくてもよく、ユーザは、ディスプレイ1225及び/又はタッチパッド(図示略)を介してのみデバイスとインタフェースをとってもよい。入力デバイスの任意の種類及び組み合わせが、設計上の選択事項として使用されてもよい。特定の実施形態において、物理的な入力デバイス及び/又はディスプレイが存在しない。例えば、ユーザは、コンピューティングシステム1200と通信する別のコンピューティングシステムを介してリモートでコンピューティングシステム1200と対話してもよく、或いは、コンピューティングシステム1200は自律的に動作してもよい。
メモリ1215は、プロセッサ1210によって実行されると機能を提供するソフトウェアモジュールを記憶する。該モジュールは、コンピューティングシステム1200用のオペレーティングシステム1240を含む。モジュールは、本明細書に記載されているプロセス又はその派生のプロセスの全て又は一部を実行するように構成されるCVモデル再訓練モジュール1245をさらに含む。例えば、コンピューティングシステム1200は、クライアントコンピューティングシステム、コンダクタサーバ、データベースサーバ、インデクササーバ、OCR及び/又はCVを実行するコンピューティングシステム、レビュアコンピューティングシステム、MLプロセスの全て又は一部を実行するコンピューティングシステムなどであってもよい。しかし、例えばGPUが使用される場合などの特定の実施形態において、CVモデル再訓練モジュールコードが、そのコンポーネント上のローカルメモリに記憶されてもよいことに留意されたい。コンピューティングシステム1200は、追加の機能を含む一又は複数の追加の機能モジュール1250を含んでもよい。
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、任意の他の適切なコンピューティングデバイス、又はデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして示すことは、決して本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を示すことを意図する。実際、本明細書において開示される方法、システム、及び装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合するローカライズされ分散された形式で実装されてもよい。
本明細書に記載されているシステム機能の一部は、実装の独立性をより強調するため、モジュールとして示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路又はゲートアレイを含むハードウェア回路、ロジックチップ、トランジスタ、又は他のディスクリートコンポーネントなどの既製の半導体として実装されてもよい。モジュールは、例えばフィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスにおいて実装されてもよい。
モジュールは、様々な種類のプロセッサによる実行のため、ソフトウェアで少なくとも部分的に実装されてもよい。例えば、実行可能コードの識別されたユニットは、例えばオブジェクト、手順、又は機能として構成され得るコンピュータ命令の一又は複数の物理ブロック又は論理ブロックを含んでもよい。これにも関わらず、識別されたモジュールの実行可能ファイルは物理的に一緒に配置される必要はないが、論理的に結合されるとモジュールを含んでモジュールの上記目的を達成するような様々な場所に記憶された異種の命令を含んでもよい。さらに、モジュールは、本発明の範囲から逸脱することなく、コンピュータ読み取り可能な媒体に記憶されてもよく、コンピュータ読み取り可能な媒体は、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される他のそのような非一時的なコンピュータ読み取り可能な媒体であってもよい。
実際、実行可能コードのモジュールは、単一の命令であっても多数の命令であってもよく、異なるプログラム間で複数の異なるコードセグメントにわたり、複数のメモリデバイスにわたって分散されてもよい。同様に、動作データが、識別されて、本明細書においてモジュール内に示されてもよく、任意の適切な形式で具体化され、任意の適切な種類のデータ構造内で構成されてもよい。動作データは、単一のデータセットとしてまとめられてもよく、或いは、異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、単にシステム又はネットワーク上の電子信号として存在してもよい。
図11で実行されるプロセスステップは、本発明の一実施形態に従って、コンピュータプログラムによって実行され、図11に記載されたプロセスの少なくとも一部をプロセッサが実行するための命令を符号化してもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体で具現化されてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される他のそのような媒体又は媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、図11に記載されたプロセスステップの全て又は一部を実施するようにプロセッサ1200を制御するための符号化された命令を含んでもよく、これも、コンピュータ読み取り可能な媒体に記憶されてもよい。
コンピュータプログラムは、ハードウェア、ソフトウェア、又はハイブリッド実装で実装されてもよい。コンピュータプログラムは、互いに動作可能に通信し、表示する情報又は命令を渡すように設計されたモジュールで構成されてもよい。コンピュータプログラムは、汎用コンピュータ、ASIC、又は任意の他の適切なデバイスで動作するように構成されてもよい。
本発明の様々な実施形態の構成要素は、本願の図面で一般的に記載され示されているように、多種多様な異なる構成で配置、設計されてもよいことは容易に理解されるであろう。したがって、添付の図面に表されている本発明の実施形態の詳細な説明は、クレームされている本発明の範囲を限定することを意図しておらず、単に本発明の選択された実施形態を表すものである。
本明細書全体を通して説明される本発明の特徴、構造、又は特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。例えば、本明細書全体を通して「特定の実施形態」、「幾つかの実施形態」、又は類似の文言への言及は、実施形態に関連して説明される特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して「特定の実施形態において」、「幾つかの実施形態において」、「他の実施形態において」という語句、又は同様の文言の出現は、必ずしも全て同じ実施形態のグループを指すとは限らず、説明された特徴、構造、又は特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。
本明細書全体を通して特徴、利点、又は同様の文言への言及は、本発明で実現され得る特徴及び利点の全てが本発明の任意の単一の実施形態であるか或いはそれに含まれることを意味しないことに留意されたい。むしろ、特徴及び利点に言及する文言は、実施形態に関連して説明される特定の特徴、利点、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体を通して特徴、利点、及び類似の文言の説明は、必ずしもそうではないが、同じ実施形態を指してもよい。
さらに、本発明の説明された特徴、利点、及び特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。当業者は、特定の実施形態の特定の特徴又は利点のうちの一又は複数がなくても本発明を実施できることを認識するであろう。他の例において、本発明の全ての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴及び利点が認識されてもよい。
当業者は、上記の本発明が異なる順序のステップで、及び/又は開示されているものとは異なる構成のハードウェア要素で実施されてもよいことを容易に理解するであろう。したがって、本発明をこのような好ましい実施形態に基づいて説明してきたが、本発明の主旨及び範囲内にありながら、特定の修正、変形、及び代替構造が明らかであることは当業者には明らかであろう。したがって、本発明の境界及び範囲を決定するために、添付の特許請求の範囲を参照されたい。

本発明の一実施形態による、設計時にグラフィックコンポーネントが識別されなかった又は誤識別された場合の、図AのRPA実装を示す。
図5Aは、本発明の一実施形態による、実行時にVMシステムにCVを使用するRPA実装500を示す。VMサーバ510は、クライアントコンピューティングシステム530に送られる一連の画像520を生成する。画像520は、コンピューティングシステム530上で実行されるアプリケーションによって表示されてもよい。或いは、画像50は、コンピューティングシステム530自体の画面として表示されてもよい。
画像データベースによって受け取られた後、1140で、画像がレビュアコンピューティングシステムに送られる。レビュアコンピューティングシステムを操作するレビュアは(又はレビュアコンピューティングシステム自体が自動的に)、画像に対してCVモデルを実行する、或いは、CVモデルを実行させる。1145でレビュアがエラーが存在すると確信しない場合、プロセスは終了し、幾つかの実施形態において画像が画像データベースから削除されてもよい。しかし、1145でレビュアがエラーを確認した場合、1150で、再訓練のために、画像と誤識別されたコンポーネント又は識別されなかったコンポーネントの正しいラベルとがMシステムに送られる。MLシステムがCVモデルを再訓練した後、再訓練されたCVモデルが、例えば、CVサーバ又はユーザコンピューティングシステムによって受け取られ、古いCVモデルの代わりに再訓練されたCVモデルが使用される。

Claims (20)

  1. 非一時的なコンピュータ読み取り可能な媒体で具現化されたコンピュータプログラムであって、
    コンピュータビジョン(CV)モデルの実行から画像内のグラフィックコンポーネントの識別内容を受け取ることと、
    前記CVモデルによって識別された識別済みのグラフィックコンポーネントを伴う前記画像を、ビジュアルディスプレイに表示させることと、
    前記画像において誤識別された又は識別されなかったグラフィックコンポーネントの選択を受け取ることと、
    選択されたものを含む前記画像の領域の代表データを決定することと、
    前記代表データと前記画像を画像データベースに送ることと、
    を少なくとも1つのプロセッサに実行させるように構成されていることを特徴とするコンピュータプログラム。
  2. 光学式文字認識(OCR)アプリケーションによって提供される前記画像からテキスト情報を受け取ること
    を前記少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項1に記載のコンピュータプログラム。
  3. ワークフローに前記画像と代替的な画像処理ロジックを組み込んで、CVモデルが再訓練されている間に、前記誤識別された又は識別されなかったグラフィックコンポーネントを識別すること
    を前記少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項1に記載のコンピュータプログラム。
  4. 代替的な画画像処理ロジックは画像マッチングアルゴリズムを含むことを特徴とする、請求項3に記載のコンピュータプログラム。
  5. 選択されたものを含む前記画像の前記領域の前記代表データを決定することと、
    前記画像と前記選択されたものをユーザに示すことなく送ることと、
    を前記少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項1に記載のコンピュータプログラム。
  6. 前記画像データベースは、設計時画像、報告された問題、及び画像マッチング領域の選択としてスクリーンショットを記憶することを特徴とする、請求項1に記載のコンピュータプログラム。
  7. 前記画像は仮想マシン(VM)からのものであることを特徴とする、請求項1に記載のコンピュータプログラム。
  8. 前記代表データは、領域を有する形状を定義する座標、線分、又はこれら両方を含むことを特徴とする、請求項1に記載のコンピュータプログラム。
  9. 機械読み取り可能なコンピュータプログラム命令を記憶するメモリと、
    前記コンピュータプログラム命令を実行するように構成された少なくとも1つのプロセッサと、
    を備えるコンピューティングシステムであって、
    前記コンピュータプログラム命令は、
    画像において誤識別された又は識別されなかったグラフィックコンポーネントの選択を受け取ることと、
    選択されたものを含む前記画像の領域の代表データを決定することと、
    コンピュータビジョン(CV)モデルの再訓練のため、前記代表データと前記画像を画像データベースに送ることと、
    再訓練されたCVモデルの実行から前記画像内のグラフィックコンポーネントの識別内容を受け取ることと、
    前記再訓練されたCVモデルによって識別された識別済みのグラフィックコンポーネントを伴う前記画像を、ビジュアルディスプレイに表示させることと、
    を前記少なくとも1つのプロセッサに実行させるように構成されていることを特徴とするコンピューティングシステム。
  10. 前記コンピュータプログラム命令は、
    ワークフローに前記画像と代替的な画像処理ロジックを組み込んで、前記CVモデルが再訓練されている間に、前記誤識別された又は識別されなかったグラフィックコンポーネントを識別すること
    を前記少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項9に記載のコンピューティングシステム。
  11. 代替的な画像処理ロジックは画像マッチングアルゴリズムを含むことを特徴とする、請求項9に記載のコンピューティングシステム。
  12. 前記コンピュータプログラム命令は、
    選択されたものを含む前記画像の前記領域の前記代表データを決定することと、
    前記画像と前記選択されたものをユーザに示すことなく送ることと、
    を前記少なくとも1つのプロセッサに実行させるように構成されていることを特徴とする、請求項9に記載のコンピューティングシステム。
  13. 前記画像データベースは、設計時画像、報告された問題、及び画像マッチング領域の選択としてスクリーンショットを記憶することを特徴とする、請求項9に記載のコンピューティングシステム。
  14. 前記代表データは、領域を有する形状を定義する座標、線分、又はこれら両方を含むことを特徴とする、請求項9に記載のコンピューティングシステム。
  15. 画像において誤識別された又は識別されなかったグラフィックコンポーネントの選択を、コンピューティングシステムによって受け取ることと、
    前記コンピューティングシステムによって、選択されたものを含む前記画像の領域の代表データを決定することと、
    前記コンピューティングシステムによって、前記代表データと前記画像を画像データベースに送ることと、
    前記コンピューティングシステムによって、ワークフローに前記画像と代替的な画像処理ロジックを組み込んで、CVモデルが再訓練されている間に、前記誤識別された又は識別されなかったグラフィックコンポーネントを識別することと、
    を含むことを特徴とするコンピュータ実施方法。
  16. 再訓練されたCVモデルの実行から前記画像内のグラフィックコンポーネントの識別内容を、前記コンピューティングシステムによって受け取ることと、
    前記再訓練されたCVモデルによって識別された識別済みのグラフィックコンポーネントを伴う前記画像を、前記コンピューティングシステムによってビジュアルディスプレイに表示させることと、
    をさらに含むことを特徴とする、請求項15に記載のコンピュータ実施方法。
  17. 代替的な画像処理ロジックは画像マッチングアルゴリズムを含むことを特徴とする、請求項15に記載のコンピュータ実施方法。
  18. 前記コンピューティングシステムは、選択されたものを含む前記画像の前記領域の前記代表データを決定し、前記画像と前記選択されたものをユーザに示すことなく送るように構成されていることを特徴とする、請求項15に記載のコンピュータ実施方法。
  19. 前記画像データベースは、設計時画像、報告された問題、及び画像マッチング領域の選択としてスクリーンショットを記憶することを特徴とする、請求項15に記載のコンピュータ実施方法。
  20. 前記代表データは、領域を有する形状を定義する座標、線分、又はこれら両方を含むことを特徴とする、請求項15に記載のコンピュータ実施方法。

JP2020121359A 2019-07-19 2020-07-15 ロボティックプロセスオートメーション用のコンピュータビジョンモデルの再訓練 Active JP7034217B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/517,225 2019-07-19
US16/517,225 US11487973B2 (en) 2019-07-19 2019-07-19 Retraining a computer vision model for robotic process automation

Publications (2)

Publication Number Publication Date
JP2021018816A true JP2021018816A (ja) 2021-02-15
JP7034217B2 JP7034217B2 (ja) 2022-03-11

Family

ID=71670084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020121359A Active JP7034217B2 (ja) 2019-07-19 2020-07-15 ロボティックプロセスオートメーション用のコンピュータビジョンモデルの再訓練

Country Status (5)

Country Link
US (2) US11487973B2 (ja)
EP (1) EP3767528A1 (ja)
JP (1) JP7034217B2 (ja)
KR (1) KR102580080B1 (ja)
CN (1) CN112241581A (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847040B2 (en) 2016-03-16 2023-12-19 Asg Technologies Group, Inc. Systems and methods for detecting data alteration from source to target
US11086751B2 (en) 2016-03-16 2021-08-10 Asg Technologies Group, Inc. Intelligent metadata management and data lineage tracing
US11057500B2 (en) 2017-11-20 2021-07-06 Asg Technologies Group, Inc. Publication of applications using server-side virtual screen change capture
US11611633B2 (en) 2017-12-29 2023-03-21 Asg Technologies Group, Inc. Systems and methods for platform-independent application publishing to a front-end interface
US10812611B2 (en) 2017-12-29 2020-10-20 Asg Technologies Group, Inc. Platform-independent application publishing to a personalized front-end interface by encapsulating published content into a container
US10877740B2 (en) 2017-12-29 2020-12-29 Asg Technologies Group, Inc. Dynamically deploying a component in an application
US10866997B2 (en) * 2018-03-26 2020-12-15 Kapow Technologies, Inc. Determining functional and descriptive elements of application images for intelligent screen automation
US11762634B2 (en) 2019-06-28 2023-09-19 Asg Technologies Group, Inc. Systems and methods for seamlessly integrating multiple products by using a common visual modeler
US11055067B2 (en) 2019-10-18 2021-07-06 Asg Technologies Group, Inc. Unified digital automation platform
US11269660B2 (en) 2019-10-18 2022-03-08 Asg Technologies Group, Inc. Methods and systems for integrated development environment editor support with a single code base
US11886397B2 (en) 2019-10-18 2024-01-30 Asg Technologies Group, Inc. Multi-faceted trust system
US11941137B2 (en) 2019-10-18 2024-03-26 Asg Technologies Group, Inc. Use of multi-faceted trust scores for decision making, action triggering, and data analysis and interpretation
US11693982B2 (en) 2019-10-18 2023-07-04 Asg Technologies Group, Inc. Systems for secure enterprise-wide fine-grained role-based access control of organizational assets
US11232170B1 (en) 2020-09-08 2022-01-25 UiPath, Inc. Application-specific graphical element detection
USD942472S1 (en) * 2020-09-08 2022-02-01 UiPath, Inc. Display screen with a graphical user interface
US11507259B2 (en) 2020-09-08 2022-11-22 UiPath, Inc. Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
US11385777B2 (en) * 2020-09-14 2022-07-12 UiPath, Inc. User interface (UI) mapper for robotic process automation
US11849330B2 (en) 2020-10-13 2023-12-19 Asg Technologies Group, Inc. Geolocation-based policy rules
KR102363774B1 (ko) * 2020-11-20 2022-02-16 유아이패스, 인크. 사용자 인터페이스 자동화에서의 자동 앵커 결정 및 타겟 그래픽 요소 식별
US11200073B1 (en) 2020-11-20 2021-12-14 UiPath, Inc. Automatic anchor determination and target graphical element identification in user interface automation
US11410316B1 (en) * 2021-01-27 2022-08-09 UiPath, Inc. System and computer-implemented method for validation of label data
CN112968736B (zh) * 2021-02-02 2022-08-02 浙江大学 基于自监督深度学习的端到端ofdm水下高速无线光通信系统及方法
CN113486858B (zh) * 2021-08-03 2024-01-23 济南博观智能科技有限公司 一种人脸识别模型训练方法、装置、电子设备及存储介质
US20230108015A1 (en) * 2021-10-05 2023-04-06 UiPath, Inc. Semantic matching between a source screen or source data and a target screen using semantic artificial intelligence
CN114529782A (zh) * 2022-01-12 2022-05-24 南方电网深圳数字电网研究院有限公司 基于电网的模型训练方法及装置
CN114926830B (zh) * 2022-05-30 2023-09-12 南京数睿数据科技有限公司 屏幕图像识别方法、装置、设备和计算机可读介质
CN115297025A (zh) * 2022-07-26 2022-11-04 来也科技(北京)有限公司 基于rpa和ai的ia机器人监控方法及装置
CN116168405B (zh) * 2023-04-23 2023-08-01 杭州实在智能科技有限公司 通用型rpa复选框操作组件的构建方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0561845A (ja) * 1991-08-07 1993-03-12 Fujitsu Ltd 適応型データ処理装置の自己学習処理方式
JPH11252450A (ja) * 1998-03-06 1999-09-17 Canon Inc 画像処理装置及びコンピュータ読み取り可能な記憶媒体
US20140068553A1 (en) * 2012-08-29 2014-03-06 Kamesh Sivaraman Balasubramanian Wireframe Recognition and Analysis Engine
EP3206170A1 (en) * 2016-02-09 2017-08-16 Wipro Limited System and methods for creating on-demand robotic process automation
US20180370029A1 (en) * 2017-06-23 2018-12-27 Accenture Global Solutions Limited Self-learning robotic process automation
JP2019512827A (ja) * 2016-03-17 2019-05-16 アビギロン コーポレイションAvigilon Corporation 機械学習によってオブジェクト分類器を訓練するためのシステム及び方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0561845U (ja) 1992-01-24 1993-08-13 日本電気ホームエレクトロニクス株式会社 ディスク装置
US20090063946A1 (en) 2007-08-29 2009-03-05 International Business Machines Corporation Anchor store for transmitting multiple dynamic anchors
US20100138775A1 (en) 2008-11-28 2010-06-03 Sharon Kohen Method, device and system, for extracting dynamic content from a running computer application
US8918739B2 (en) 2009-08-24 2014-12-23 Kryon Systems Ltd. Display-independent recognition of graphical user interface control
JP5333080B2 (ja) * 2009-09-07 2013-11-06 株式会社日本自動車部品総合研究所 画像認識システム
US9740925B2 (en) * 2012-11-19 2017-08-22 Imds America Inc. Method and system for the spotting of arbitrary words in handwritten documents
CA3200347A1 (en) 2014-06-30 2016-01-07 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
AU2014277851A1 (en) 2014-12-22 2016-07-07 Canon Kabushiki Kaisha Detecting a gap between text columns from text line fragments
US20180157386A1 (en) 2016-12-05 2018-06-07 Jiawen Su System and Method for detection, exploration, and interaction of graphic application interface
US10007269B1 (en) 2017-06-23 2018-06-26 Uber Technologies, Inc. Collision-avoidance system for autonomous-capable vehicle
US20190126463A1 (en) * 2017-10-31 2019-05-02 Bank Of America Corporation Robotic assisted action template generation based on profile
US11194596B2 (en) 2017-11-30 2021-12-07 Lendingclub Corporation Simulating human interface interaction resilient to user interface changes
US20190205363A1 (en) 2018-01-02 2019-07-04 Go Daddy Operating Company, LLC Method for creating html layouts based on visual input
US10878270B1 (en) * 2018-06-26 2020-12-29 Amazon Technologies, Inc. Keypoint-based multi-label word segmentation and localization
US11227176B2 (en) * 2019-05-16 2022-01-18 Bank Of Montreal Deep-learning-based system and process for image recognition

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0561845A (ja) * 1991-08-07 1993-03-12 Fujitsu Ltd 適応型データ処理装置の自己学習処理方式
JPH11252450A (ja) * 1998-03-06 1999-09-17 Canon Inc 画像処理装置及びコンピュータ読み取り可能な記憶媒体
US20140068553A1 (en) * 2012-08-29 2014-03-06 Kamesh Sivaraman Balasubramanian Wireframe Recognition and Analysis Engine
EP3206170A1 (en) * 2016-02-09 2017-08-16 Wipro Limited System and methods for creating on-demand robotic process automation
JP2019512827A (ja) * 2016-03-17 2019-05-16 アビギロン コーポレイションAvigilon Corporation 機械学習によってオブジェクト分類器を訓練するためのシステム及び方法
US20180370029A1 (en) * 2017-06-23 2018-12-27 Accenture Global Solutions Limited Self-learning robotic process automation

Also Published As

Publication number Publication date
EP3767528A1 (en) 2021-01-20
US11487973B2 (en) 2022-11-01
KR20210010388A (ko) 2021-01-27
KR102580080B1 (ko) 2023-09-18
JP7034217B2 (ja) 2022-03-11
CN112241581A (zh) 2021-01-19
US11688192B2 (en) 2023-06-27
US20230059729A1 (en) 2023-02-23
US20210019574A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
JP7034217B2 (ja) ロボティックプロセスオートメーション用のコンピュータビジョンモデルの再訓練
EP3767449B1 (en) Multi-anchor based extraction, recognition, and machine learning of user interface (ui)
JP2021099778A (ja) 実行時のデジタルプロセスにおける人工知能/機械学習モデルの動的な更新、又は再訓練及び更新
US11599775B2 (en) Detecting user interface elements in robotic process automation using convolutional neural networks
US11200073B1 (en) Automatic anchor determination and target graphical element identification in user interface automation
KR20220078587A (ko) 인공 지능을 사용한 로봇 프로세스 자동화를 위한 모델 선택 및 체인화
KR20220079834A (ko) 로봇 프로세스 자동화를 위한 인공 지능 계층 기반 프로세스 추출
KR20220079838A (ko) 로봇 프로세스 자동화의 강화 학습
KR102363774B1 (ko) 사용자 인터페이스 자동화에서의 자동 앵커 결정 및 타겟 그래픽 요소 식별
JP2023552666A (ja) アクションセンターを介した人工知能(ai)/機械学習(ml)モデルの補足、ai/mlモデル再訓練ハードウェア制御、およびai/mlモデル設定管理
JP2023523374A (ja) ロボティックプロセスオートメーションのための機械学習モデル再訓練パイプライン
JP2023528092A (ja) ロボティックプロセスオートメーションのためのグラフィカル要素検索技術の選択、アンカーおよびターゲットのファジー理論選択、ならびに/または階層的グラフィカル要素識別

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200915

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210927

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220301

R150 Certificate of patent or registration of utility model

Ref document number: 7034217

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150