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

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

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

特表2023-504146ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練
<>
  • 特表-ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練 図1A
  • 特表-ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練 図1B
  • 特表-ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練 図2
  • 特表-ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練 図3
  • 特表-ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練 図4
  • 特表-ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練 図5
  • 特表-ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練 図6
  • 特表-ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-02-01
(54)【発明の名称】ロボティックプロセスオートメーションのための光学式文字検出および認識モデルの訓練
(51)【国際特許分類】
   G06V 30/194 20220101AFI20230125BHJP
   G06V 10/70 20220101ALI20230125BHJP
   G06T 7/00 20170101ALI20230125BHJP
【FI】
G06V30/194
G06V10/70
G06T7/00 350B
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022532107
(86)(22)【出願日】2020-08-20
(85)【翻訳文提出日】2022-07-28
(86)【国際出願番号】 US2020047169
(87)【国際公開番号】W WO2021112930
(87)【国際公開日】2021-06-10
(31)【優先権主張番号】16/700,494
(32)【優先日】2019-12-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FLASH
2.ZIGBEE
3.BLUETOOTH
4.SILVERLIGHT
5.WCDMA
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】ラザ,ドリン,アンドレ
(72)【発明者】
【氏名】グェン,トロン,カイン
【テーマコード(参考)】
5B064
5L096
【Fターム(参考)】
5B064AA10
5B064DA27
5L096BA17
5L096FA02
5L096KA04
(57)【要約】
ロボティックプロセスオートメーション(RPA)に関する画像内のテキストを検出および認識するための光学式文字認識(OCR)モデルを訓練するための技術が開示される。テキスト検出モデルおよびテキスト認識モデルを別々に訓練してから、結合してOCRモデルを作製し得る。合成データおよびより少ない量の実際の、人間がラベル付けしたデータを訓練に使用して、OCRテキスト検出モデルおよびテキスト認識モデルが訓練され得る速度および精度を用いてそれらを高め得る。OCRモデルが訓練された後、OCRモデルを呼び出すアクティビティを含むワークフローが生成され、ワークフローを実装するロボットが生成および展開され得る。

【特許請求の範囲】
【請求項1】
非一時的なコンピュータ読み取り可能な媒体上に格納されたコンピュータプログラムであって、前記プログラムは、少なくとも1つのプロセッサが、
ロボティックプロセスオートメーション(RPA)に関するテキスト検出モデルを訓練するための第1のセットの第1の合成データを生成することであって、前記第1のセットの合成データが、画像を含むことと、
第1の複数のエポックにわたって生成された前記第1のセットの合成データを使用して、前記テキスト検出モデルを訓練することと、
前記第1の複数のエポックの各エポックで、前記テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対して前記性能を評価することと、
第2の複数のエポックにわたって増大した人間がラベル付けしたデータのセットを使用して前記テキスト検出モデルを訓練することと、
前記第2の複数のエポックの各エポックで、前記テキスト検出モデルの性能の精度のレベルが低下し始めるまで、前記評価データセットに対して前記性能を評価することと、を行うように構成され、
ラベル付けされた人間データの前記セットは、前記第1のセットの合成データよりも少なくとも1桁少ない画像を有する、コンピュータプログラム。
【請求項2】
前記テキスト検出モデルは、テキストを含む前記第1のセットの合成データの前記画像内のボックスを検出し、前記第1のセットの合成データのそれぞれの前記画像から検出された前記ボックスを切り取り、かつ切り取られた前記ボックスのサイズを変更するように構成される、請求項1に記載のコンピュータプログラム。
【請求項3】
前記第1のセットの合成データの生成は、画像内の単語を配置すること、ランダムノイズを追加すること、ブロック内の前記画像を構成すること、またはそれらのいずれかの組み合わせを含む、請求項1に記載のコンピュータプログラム。
【請求項4】
前記第1のセットの合成データの生成は、テキストのないアイコンを追加すること、様々なタイプ、形状、および/またはサイズの1もしくは複数の前記画像にランダムな多角形を描くこと、またはそれらのいずれかの組み合わせを含む、請求項1に記載のコンピュータプログラム。
【請求項5】
前記第1のセットの合成データの生成は、ネガティブな例を生成することを含む、請求項1に記載のコンピュータプログラム。
【請求項6】
前記プログラムはさらに、前記少なくとも1つのプロセッサに、
第2のセットの合成データを生成することと、
第3の複数のエポックにわたって前記増大した人間がラベル付けしたデータおよび前記第2のセットの合成データのRPAに関するテキスト認識モデルを訓練することと、
前記第3の複数のエポックの各エポックで、前記テキスト検出モデルの性能の精度のレベルが低下し始めるまで、前記評価データセットに対して前記性能を評価することと、を行わせる、請求項1に記載のコンピュータプログラム。
【請求項7】
前記第3の複数のエポックの各エポックの間に、新しい合成データが生成される、請求項6に記載のコンピュータプログラム。
【請求項8】
前記テキスト認識モデルは、浮動小数点数または日付を単一の単語として決定するように構成される、請求項6に記載のコンピュータプログラム。
【請求項9】
前記テキスト認識モデルによって認識された文字タイプの数は、100以下である、請求項6に記載のコンピュータプログラム。
【請求項10】
前記プログラムはさらに、前記少なくとも1つのプロセッサに、
前記テキスト検出モデルおよび前記テキスト認識モデルを結合して、光学式文字認識(OCR)モデルにすることを行わせる、請求項6に記載のコンピュータプログラム。
【請求項11】
前記プログラムはさらに、前記少なくとも1つのプロセッサに、
前記OCRモデルを使用して、より小さく、より高速なOCRモデルを訓練することを行わせる、請求項10に記載のコンピュータプログラム。
【請求項12】
前記プログラムはさらに、前記少なくとも1つのプロセッサに、
前記OCRモデルを呼び出すアクティビティを含むワークフローを生成することと、
前記ワークフローを実装するロボットを生成することと、
前記ロボットを展開することと、を行わせる、請求項10に記載のコンピュータプログラム。
【請求項13】
前記第1のセットの合成データの生成は、フォントのリストを作成し、かつこれらのフォントのテキストをランダムに選択、混合、および前記合成データに挿入することを含む、請求項1に記載のコンピュータプログラム。
【請求項14】
コンピュータ実装方法であって、
コンピューティングシステムによって、ロボティックプロセスオートメーション(RPA)に関するテキスト検出モデルを訓練するための第1のセットの第1の合成データを生成することであって、前記第1のセットの合成データが、画像を含むことと、
前記コンピューティングシステムによって、第1の複数のエポックにわたって生成された前記第1のセットの合成データを使用して、前記テキスト検出モデルを訓練することと、
前記コンピューティングシステムによって、前記第1の複数のエポックの各エポックで、前記テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対して前記性能を評価することと、
前記コンピューティングシステムによって、第2の複数のエポックにわたって増大した人間がラベル付けしたデータのセットを使用して前記テキスト検出モデルを訓練することと、
前記コンピューティングシステムによって、前記第2の複数のエポックの各エポックで、前記テキスト検出モデルの性能の精度のレベルが低下し始めるまで、前記評価データセットに対して前記性能を評価することと、
前記コンピューティングシステムによって、第2のセットの合成データを生成することと、
前記コンピューティングシステムによって、第3の複数のエポックにわたって前記増大した人間がラベル付けしたデータおよび前記第2のセットの合成データのRPAに関するテキスト認識モデルを訓練することと、
前記コンピューティングシステムによって、前記第3の複数のエポックの各エポックで、前記テキスト検出モデルの性能の精度のレベルが低下し始めるまで、前記評価データセットに対して前記性能を評価することと、を含む、コンピュータ実装方法。
【請求項15】
前記第3の複数のエポックの各エポックの間に、新しい合成データが生成される、請求項14に記載のコンピュータ実装方法。
【請求項16】
前記コンピューティングシステムによって、前記テキスト検出モデルおよび前記テキスト認識モデルを結合して、光学式文字認識(OCR)モデルにすることをさらに含む、請求項14に記載のコンピュータ実装方法。
【請求項17】
前記コンピューティングシステムによって、前記OCRモデルを呼び出すアクティビティを含むワークフローを生成することと、
前記コンピューティングシステムによって、前記ワークフローを実装するロボットを生成することと、
前記コンピューティングシステムによって、前記ロボットを展開することと、をさらに含む、請求項16に記載のコンピュータ実装方法。
【請求項18】
コンピュータ実装方法であって、
コンピューティングシステムによって、合成データのセットを生成することと、
前記コンピューティングシステムによって、複数のエポックにわたって増大した人間がラベル付けしたデータおよび合成データの前記セットのロボティックプロセスオートメーション(RPA)に関するテキスト認識モデルを訓練することと、
前記コンピューティングシステムによって、前記複数のエポックの各エポックで、テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対して前記性能を評価することと、を含む、コンピュータ実装方法。
【請求項19】
前記コンピューティングシステムによって、テキスト検出モデルおよび前記テキスト認識モデルを結合して、光学式文字認識(OCR)モデルにすることをさらに含む、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記コンピューティングシステムによって、前記OCRモデルを呼び出すアクティビティを含むワークフローを生成することと、
前記コンピューティングシステムによって、前記ワークフローを実装するロボットを生成することと、
前記コンピューティングシステムによって、前記ロボットを展開することと、をさらに含む、請求項19に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本出願は、2019年12月2日に出願された米国非仮特許出願第16/700,494号の利益を主張する。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
【0002】
本発明は概して、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、RPAに関する画像中のテキストを認識する光学式文字検出および認識(OCR)モデルを訓練することに関する。
【背景技術】
【0003】
ロボティックプロセスオートメーション(RPA)は、反復的で人手に頼るアクティビティの遂行を自動化することを可能にする。RPAは、例えば、人間がアプリケーションと対話する方法と同様に、ユーザーインターフェース(UI)を通じてソフトウェアアプリケーションと対話するために使用され得る。UIとの対話は、通常、座標のセット(すなわち、「セレクタ」)を返す関数へのアプリケーションプログラミングインターフェース(API)の呼び出しを使用して、RPAアプリケーションによって実行された。そして、RPAアプリケーションは、この情報を使用して、例えば、ユーザーがボタンを手動でクリックしたかのようにターゲットアプリケーションを動作させる、ボタンのマウスクリックをシミュレートすることができる。
【0004】
上記により、ネイティブコンピューティングシステム用の典型的なRPA実装では、セレクタは、アプリケーション内のテキスト要素(例えば、ボタン、テキストフィールドなど)を特定するために、UIのテキスト要素の基本プロパティを使用して動作する。しかし、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)(Windows(登録商標) Remote Desktop)などが提供するもののような、VDEで同じソフトウェアを自動化しようとする場合など、画像を解析しようとするとこの手法は破綻障してしまう。この破綻の原因は、VDEがビデオストリーミングサービスが行う方法と同じように、リモートデスクトップの画像をストリーミングすることにある。ビデオの画像(つまり「フレーム」)には、特定されるセレクタが存在しない。この問題は、画像(例えば、JPEG、GIF、PNG、BMPなど)を解析する場合にも生じる。したがって、RPAアプリケーションは、例えば、アプリケーションに提供されるテキスト要素の位置を決定するためのAPIコールを行うことができない。VDEシナリオ用に従来から訓練された光学式文字認識(OCR)および画像マッチングを用いて、この課題を解決する試みがなされてきた。しかし、これらの技術は、一般的に高い精度レベルが要求されるRPAには十分な信頼性がないことが証明されている。
【0005】
例えば、UiPath(登録商標)のComputer Vision(商標)(CV)は、人工知能(AI)、OCR、テキストファジーマッチング、およびアンカーシステムを組み合わせて使用することで、グラフィックコンポーネントを特定する。CVモデルは、画像中の特定のグラフィカル要素を特定する。これにより、テキストフィールド、ボタン、チェックボックス、アイコンなどのグラフィカル要素をより正確に特定し得る。
【0006】
グラフィカル要素を認識するために、Faster Region-based Convolutional Neural Network (R-CNN) などのAIアルゴリズムが使用され得る。例えば、Shaoqing Ren et al., Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks, arXiv:1506.01497v3 (2015年6月4日に提出)を参照。Faster R-CNNは、ターゲットアプリケーションインターフェースの画像を、特徴マップまたはテンソル(すなわち、2048チャネルを伴うより小さい画像)を出力する拡張畳み込み(dilated convolution)(atrous畳み込み(atrous convolution)とも呼ばれる)を有するResNetに渡す。これらの特徴マップは、さらに別のニューラルネットワークである領域提案ネットワーク(RPN)に渡され、対象のグラフィカル要素が潜在的に発見されたと考えられる、何千もの可能な矩形を提案するとともに、グラフィカル要素であると考えられる領域に関する推測を座標のリストとして提案する。特徴マップはグリッドであり、グリッド上の各マスには提案(アンカーともいう)が存在する。各アンカーについて、RPNは分類を提供する。さらに、0から1の間のグラフィカル要素のマッチングスコアと、特定のグラフィカル要素にマッチするためにアンカーがどの程度移動する必要があるかを示す回帰部と分がある。言い換えれば、RPNは、それがグラフィカル要素を見つけたと考える領域と、これらのグラフィカル要素が潜在的に何であると考えられているか、および関連する確率とを出力する。
【0007】
これらの提案では、基幹ResNetから出力される特徴テンソルから多くの生成物が作られる。これらの大きな特徴テンソルでは、特徴次元が切り取られる。そして切り取られたボックスは再びCNNの数層に渡され、より正確な位置とクラス分布を出力し得る。グラフィカル要素検出(例えば、異なるグラフィカル要素タイプの検出、ここで、テキストのボックスは、画像内でそのように特定されるかもしれないが、テキストが実際に何であるかを検出することなく)に関するFaster R-CNNのこのような実装100は、図1Aに示される。テキスト認識については、図1Bのフェイスブック(登録商標)のロゼッタ(登録商標)テキスト認識システム110のようなテキスト認識モデルが使用され得る。
【0008】
しかしながら、RPAのためのOCRモデルの訓練は困難であり、従来の技術では、通常、十分に高い信頼区間を得ることができない。この訓練問題はまた、画像内のグラフィカル要素を認識するためのCVモデルの訓練とは異なる。したがって、UIの変化に対してロバストなRPAに関するOCRモデルを訓練するための改良されたアプローチは有益であり得る。
【発明の概要】
【0009】
本発明の特定の実施形態は、現在の画像解析技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、RPAに関する画像中のテキストを検出および認識するためにOCRモデルを訓練することに関する。
【0010】
実施形態では、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体上に格納される。プログラムは、少なくとも1つのプロセッサが、RPAに関するテキスト検出モデルを訓練するための第1のセットの第1の合成データを生成することを含む。第1のセットの合成データは、画像を含む。プログラムはまた、少なくとも1つのプロセッサが、第1の複数のエポックにわたって生成された第1のセットの合成データを使用して、テキスト検出モデルを訓練することと、第1の複数のエポックの各エポックで、テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対してその性能を評価することと、を行うように構成される。プログラムはさらに、第2の複数のエポックにわたって増大した人間がラベル付けしたデータのセットを使用してテキスト検出モデルを訓練することと、第2の複数のエポックの各エポックで、テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対してその性能を評価することと、を行うように構成される。ラベル付けされた人間データのセットは、第1のセットの合成データよりも少なくとも1桁少ない画像を有する。
【0011】
別の実施形態では、コンピュータ実装方法は、コンピューティングシステムによって、RPAに関するテキスト検出モデルを訓練するための第1のセットの第1の合成データを生成することを含む。第1のセットの合成データは、画像を含む。コンピュータ実装方法はまた、コンピューティングシステムによって、第1の複数のエポックにわたって生成された第1のセットの合成データを使用して、テキスト検出モデルを訓練することと、コンピューティングシステムによって、第1の複数のエポックの各エポックで、テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対してその性能を評価することと、を含む。コンピュータ実装方法はさらに、コンピューティングシステムによって、第2の複数のエポックにわたって増大した人間がラベル付けしたデータのセットを使用してテキスト検出モデルを訓練することと、コンピューティングシステムによって、第2の複数のエポックの各エポックで、テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対してその性能を評価することと、を含む。さらに、コンピュータ実装方法は、コンピューティングシステムによって、第2のセットの合成データを生成することと、コンピューティングシステムによって、第3の複数のエポックにわたって増大した人間がラベル付けしたデータおよび第2のセットの合成データのRPAに関するテキスト認識モデルを訓練することと、コンピューティングシステムによって、第3の複数のエポックの各エポックで、テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対してその性能を評価することと、を含む。
【0012】
さらに別の実施形態では、コンピュータ実装方法は、コンピューティングシステムによって、合成データのセットを生成することを含む。コンピュータ実装方法はまた、コンピューティングシステムによって、複数のエポックにわたって増大した人間がラベル付けしたデータおよび合成データのセットのRPAに関するテキスト認識モデルを訓練することと、コンピューティングシステムによって、複数のエポックの各エポックで、テキスト検出モデルの性能の精度のレベルが低下し始めるまで、評価データセットに対してその性能を評価することと、を含む。
【0013】
(実施形態の詳細な説明)
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
【図面の簡単な説明】
【0014】
図1A】グラフィカル要素検出のためのFaster R-CNNの実装を示す。
【0015】
図1B】フェイスブック(登録商標)からのロゼッタ(登録商標)テキスト認識システムを示すアーキテクチャ図である。
【0016】
図2】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0017】
図3】本発明の実施形態による、展開したRPAシステムを示すアーキテクチャ図である。
【0018】
図4】本発明の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0019】
図5】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0020】
図6】本発明の実施形態による、RPAに関する画像内のテキストを検出および認識するためにOCRモデルを訓練するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0021】
図7】本発明の実施形態による、RPAに関する画像内のテキストを検出および認識するためにOCRモデルを訓練するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0022】
(実施形態の詳細な説明)
いくつかの実施形態は、RPAに関する画像内のテキストを検出および認識するためのOCRモデルを訓練することに関する。OCRモデルは、テキスト検出モデルおよびテキスト認識モデルを含み得る。テキスト検出モデルおよびテキスト認識モデルは、別々に訓練され、その後、いくつかの実施形態においてOCRモデルにおいて製造で使用されるように結合され得る(例えば、テキスト検出モデルを実行してテキストが位置する場所を特定し、次にテキストが認識された画像の部分上のテキスト認識モデルを実行することによる)。いくつかの実施形態では、テキスト検出モデルは、ResNet-50をバックボーンとして使用するFaster R-CNNアーキテクチャに基づき得る。テキスト検出モデルは、まず、合成データのみで訓練され得る。検出モデルは、他の、評価合成データに対して評価され得る。
【0023】
検出モデルが良好な精度レベル(例えば、検出のためのF2またはF4閾値および約2000エポックを用いて97~98%以上)に達し、評価合成データ上でもはや進歩しないとき、合成データ訓練段階は停止され得る。この精度レベルは、いくつかの実施形態では、F1スコア、F2スコア、F4スコア、または本発明の範囲から逸脱しない任意の他の適切な技術を使用して決定され得る。その後、増大(例えば、拡大縮小、回転、平行移動、色の変更、それらのいずれかの組み合わせなど)を伴う、実際の、人間がラベル付けしたデータで訓練を続けてもよく、実データで性能を評価してもよい。このように訓練することにより、検出モデルはそれが実データを評価するときに比較的高いレベルの精度で開始され、検出モデルはより一般化される傾向がある。
【0024】
いくつかの実施形態では、どのような精度レベルが達成され得るかは、知られていない場合がある。したがって、いくつかの実施形態は、評価データを分析する際に、精度が下がり始めているかどうかをチェックしてもよい(すなわち、モデルは、訓練データでは良好に機能しているが、評価データではあまりうまく機能しなくなりつつある)。特定の実施形態では、テキスト検出モデルおよびテキスト認識モデルを含む訓練されたOCRモデルは、精度が現在展開されているOCRモデルより優れている場合にのみ展開され得る。
【0025】
いくつかの実施形態のテキスト認識モデルは、テキストデコーディングのために、ResNet-18と、コネクショニスト時間分類(CTC:connectionist temporal classification)を有する単一の長期短期記憶(LSTM:long short term memory)層とを備えるアーキテクチャを使用してもよい。訓練は、実際の、人間がラベル付けしたデータと合成データの両方上で同時に実行され得る。いくつかの実施形態では、テキスト検出モデルおよびテキスト認識モデルを訓練するためのものと同じ画像が使用され得る。いくつかの実施形態は、実および合成訓練データを通じて約200パス(すなわち、エポック)かかる。いくつかの実施形態では、実および合成画像は、それぞれ約100の単語を有してよく、約500の実画像および500の合成画像が各エポックの訓練に使用され得る。合成データの単語は、各エポックについて新たに生成されてもよい。したがって、この例では、200エポックにわたって、約10,000,000語の合成語が分析され得る。しかしながら、本発明の範囲から逸脱することなく、任意の適切な数の画像、単語、および/またはエポックが使用され得る。
【0026】
システムが分析するための新しい画像を有することは、典型的には訓練中に有益であり、合成データは任意に生成することができるので、新しい合成画像/単語は、上記のように、各エポックで生成され得る。これは、実際の、人間がラベル付けした画像の数が比較的限られているにもかかわらず、訓練を効果的に行うのに役立つ場合がある。認識の訓練のために補強を行ってもよいが、評価は実データ上のみでよい。モデルが生産に十分であるかどうかを決定するために、エンドツーエンドの評価のために別のデータセットが使用され得る。
【0027】
訓練は典型的には、モデルの性能を向上させるが、訓練セットに対する訓練が多すぎると、モデルは、訓練セットを「学習」しすぎて、訓練セットにない新しいデータ上でうまく機能しなくなる場合がある。したがって、いくつかの実施形態では、評価セットでモデルが最もよく機能したステップで、モデル性能の評価のために別のデータのセットを使用する。これは、未見のデータで一般的に良好な性能を発揮するモデルを生成するのに役立つ。
【0028】
OCRモデルでは、まず、画像中にテキストが含まれている可能性が高いと思われるボックスが、テキスト検出モデルを使って検出され得る。次に、「クロップアンドリサイズ」と呼ばれる技法を用いて、候補となるボックスを元の画像から切り出し、単語が可変の文字数を持つことがあるので、可変の幅で固定の高さにサイズを変更され得る。ボックスは、バッチに結合され、テキスト認識モデルを通して(例えば、デコードのためにCTC層を通して特徴を実行する前に、特徴を抽出するためにLSTM層を備えたResNet(例えば、ResNet-18)を通して)実行され得る。抽出された特徴は、潜伏/隠蔽空間における数値の行列であってもよく、ネットワークは、良好な予測を達成するために見つけることができる最良の特徴を選択する自由を有し得る。ただし、元画像との対応関係がある。例えば、画像の左側のピクセルは、行列の左側の特徴にのみ影響を与える場合があり、画像の左側の特徴が、画像のサイズを変更しても左側に残るのと多少似ている。
【0029】
CTCは、可変(通常は長い)入力を可変(通常は短い)出力にデコードする際に優れた性能を発揮する。いくつかの実施形態では、CTC入力は変換された画像(LSTM出力)であり、出力は予測値である。単語中の各文字は通常同じ幅を持たないので、どのピクセルがどの文字に対応するかは分からない場合がある。CTCは、1つの出力文字に対応する入力特徴の数を可変にすることで、いくつかの実施形態において最適な予測値を算出することができる。
【0030】
合成画像よりもはるかに少ない人間がラベルを付けした画像のセット(例えば、数百、500、1000など)が、いくつかの実施形態においてOCRモデルを訓練するために使用されてもよい。例えば、90%までのF1スコアは不十分であり、93%までのF1スコアでさえも大きな間違いを犯すことが観察された。しかしながら、いくつかの実施形態は、95.8%以上の検出精度を実現する。本発明の範囲から逸脱することなく、任意の量の人間がラベル付けしたデータを使用できることに留意すべきである。ただし、この場合、より時間とコストがかかる傾向がある。
【0031】
OCRモデル(すなわち、テキスト検出モデルおよびテキスト認識モデル)が実評価データ上で十分に高いレベルの精度に達した後、OCRモデルは、その後、本番展開の準備が整い得る。テキスト要素検出モデルおよびOCRモデルを呼び出す1または複数のアクティビティを含むRPAワークフローが生成され得る。その後、RPAワークフローを実装するロボットが生成され、展開されてもよく、エンドユーザーがRPAの目的のためにテキストを検出し認識することができる(例えば、文書処理のため、ユーザーの画面上に画像を表示するソフトウェアアプリケーションでテキストを認識するため、など)。
【0032】
いくつかの実施形態は、上にリカレントニューラルネットワーク(RNN)の層を使用し、一部の文字が他の文字よりも幅が広いという事実を考慮するためにCTC層を使用するResNet-18によるテキスト認識モデル用のアーキテクチャを採用する。いくつかの従来のOCR技術は、複数のLSTM層を使用するが、LSTM層は処理の観点から高価であるため、これは、訓練および遂行に長い期間を必要とする場合がある。特定の実施形態は、複数のLSTM層を使用するが、単一のLSTM層を使用するよりも複数のLSTM層を使用する利点は大きくなく、いくつかのアプリケーションのための処理時間の増加を正当化しないと判断された。したがって、特定の実施形態は、複数のLSTM層を使用する実施形態と同様の精度またはそれよりよい精度を達成するCNN層に対するいくつかの修正(例えば、ResNet-18より少ない出力をCNN層から使用する)を伴う単一のLSTM層を使用する。
【0033】
合成データを生成するとき、いくつかの実施形態は、OCRモデルが展開後に遭遇する実画像にできるだけ近い画像をプログラム的に生成することを試みる。スクリプトは、テキストがコンピューティングシステムディスプレイ上に現れる傾向に類似した、画像内に単語を配置し、いくつかのノイズを加え、ブロック(例えば、段落、表のようなボックス、ランダムに配置された単語を含むボックスなど)などで画像を構成するために使用され得る。例えば、画像は、まず、部分(またはウィンドウ)に分割され得る。各ウィンドウは、ランダムにタイプ(段落、ランダムテキスト、テーブルなど)を割り当てられ得る。各ウィンドウタイプは、そのウィンドウにオブジェクトを配置する異なる方法を有し得る。例えば、段落は、書かれたテキストの段落のように、オブジェクトを行単位で次々に追加してもよい。ランダムテキストは、そのウィンドウ内のランダムな位置にオブジェクトを配置し得る。テーブルは、表構造で整列したオブジェクトを配置し得る。
【0034】
オブジェクトは、単語を含むテキストオブジェクトであってもよいし、テキストを含まない異なるオブジェクトであってもよい。テキストオブジェクトは、ランダムな背景色を持ち、背景テキストと区別できる程度に(例えば、RGB値で)明確なテキストを割り当ててもよい。テキストは、辞書(例えば、実テキストに基づく)、数字、日付のフォーマット、ランダムに生成された文字の列、それらの任意の組み合わせなどから割り当てられ得る。テキスト以外のオブジェクトは、画像のリスト、ランダムに描かれた多角形、ノイズで生成された点、それらの任意の組み合わせなどからインポートされ得る。オブジェクトは、拡大縮小および回転(例えば、0~5度回転)され得る。テキストオブジェクトは、いくつかの実施形態では、実画像と比較されるフォントのリストに基づいて生成され得る。
【0035】
いくつかの実施形態は、テキストのないアイコン、ランダムノイズ(例えば、様々なサイズおよび形状のランダムに加えられたドット)、様々なタイプ、形状、およびサイズの画像内のランダム多角形(例えば、相互に接続された頂点のランダムな数および/または位置に基づく)の描画などの要素を追加する。上記により、非常に大量の合成データは既存のコンピューティングシステムのハードウェア能力で容易に達成できるため、これが生成され得る。
【0036】
合成データは、通常、実データと全く同じではない。例えば、メニュー、テキストを有するアイコン、影、コンピュータの解像度または画像圧縮によるアーティファクトを有する実行中のアプリケーションの実画像を使用するのではなく、いくつかの実施形態は、合成画像にランダムに配置されたテキストオブジェクトおよび/またはテキスト以外のオブジェクトを含む。合成的に生成された画像は、拡大縮小され得、画像はより大きくまたはより小さくされ得、画像および/またはその中の要素は回転され得、色は変更され得、画像および/またはその中の要素は伸張、平行移動、反転などされ得る。
【0037】
いくつかの実施形態は、この合成データを「モデルブートストラップ」として使用して、テキスト検出モデルを、実際の、人間がタグ付けした画像上のテキスト検出モデルの訓練を開始するのに十分な検出精度に訓練する。上記のように、このデータは、典型的には、生成するためにはるかに高価であり、時間がかかるので、いくつかの実施形態では、人間がタグ付けしたデータのはるかに小さいサンプルが使用され得る。合成データ訓練段階は、テキスト検出モデルが、比較的少数の実サンプルに基づいて正確になることを可能にする。
【0038】
この人間がタグ付けしたデータは、訓練において精度を向上させるために修正され得る。「画像増強」を行ってもよい(例えば、パディング、回転、色変更(例えば、グレースケール、逆着色、チャネル順列、色相シフトなど)、拡大縮小、クロッピング、ランダムノイズ(例えば、ランダムポイント/ライン)の付加、JPEGノイズの付加、拡大縮小および縮小など)。テキスト認識精度の向上に加え、これも予測値がより安定し得る。つまり、画像を多少変化させても、予測値が大きく変化しない場合がある。テキストは、他の画像コンポーネントとは異なり、テキストを拡大縮小しすぎると(例えば、縮小によって)、テキストを認識する能力が失われる場合があるからである。
【0039】
いくつかの実施形態は、そのようなテキストが1つの画像から別の画像まで比較的類似している傾向があるので、所望の数のフォントで画面上のテキストを認識するように訓練され得る。一般的に使用されるフォントのリストを構築し、これらのフォントのテキストをランダムに選択して混合してもよい(例えば、異なるフォント、スペーシング、方向、サイズなど)。サイズおよびスペーシングは、例えば、あるフォントから別のフォントへと変化する傾向がある。特定の実施形態は、手書きテキストを認識するように訓練されてもよい。しかしながら、手書きテキストには個人から別個人へのより広い程度の変動があるため、この訓練プロセスはより広範囲であり、より多くの合成サンプルおよび実サンプルを必要とする場合がある。
【0040】
特定の実施形態では、比較的少ない数の文字タイプが使用されてもよい(例えば、ASCII文字セットよりも小さい100個の異なる文字)。請求書のテキストを認識するために採用されるものなどのいくつかの実施形態について、これは、製造において遭遇する可能性が高い文字のほとんどまたはすべてを包含してもよい(例えば、請求書が英語で、特定のエンドユーザーに関するドル値を含む場合など)。より限定された文字セットはまた、OCRモデルが訓練される速度を向上させるのに役立ち、精度を向上させ得る。使用する文字数が少ないので、実データをこの少ない文字のセットに集中させ得る。OCRモデルは、訓練中にこれらの文字のそれぞれの例をより多く目にすることになるため、これらの文字をより効果的に検出するよう学習するだろう。実画像は、OCRのためのタグ付けが困難である。すでに訓練されたOCRモデルから予測値を予め読み込むことから始めても、1枚の画像につき、人間では1時間超かかり得る。したがって、実画像の必要性を低減することは、いくつかの実施形態の重要な利点である。
【0041】
訓練後、OCRモデルは、結果が迅速に要求されるおよび/またはOCRモデルを実行するコンピューティングシステムが不十分な処理能力を有するいくつかの実装に関して、比較的大きく、十分に速くない場合がある。したがって、いくつかの実施形態は、より小さく、より速いOCRモデルを訓練するために、より大きなOCRモデルを使用する。より大きなOCRモデルは、すべての訓練データから学習するために最初に使用され得る。このより大きなモデルは、その後、より小さなモデルにラベルを提供するために使用され得る。より小さいモデルは、より速くなり得、より大きいOCRモデルからのいくつかの予測が使用され得るので、より多くの訓練用データを有し得る。
【0042】
従来のOCR技術では、単語を分割する際に生じる問題がある。例えば、OCRアルゴリズムが出力すべき「単語」(例えば、トークン)を構成するものを把握するための標準的な方法は存在しない。例えば、Google(登録商標)OCRを考慮すると、句読点(カンマ、ピリオド、セミコロン、疑問符、感嘆符など)が単語の区切りに使用される。しかし、101.11という金額のように浮動小数点数が含まれる場合は、これは「101」、「.」および「11」という3つのトークンに分離されることになるだろう。
【0043】
いくつかの実施形態は、この問題に対して幾何学的なソリューションを適用し得る。単語は、間隔閾値距離に基づいて分割されてもよい。例えば、「$100」は1つの単語として認識されてもよいが、「$ 100」は2つの別々の単語として認識されてもよい。カンマ、セミコロンなどは、先行する単語に割り当ててもよい。
【0044】
いくつかの実施形態では、ルールに基づいてボックスを結合する後処理が実行される。例えば、通貨は、値に通貨記号を付加すること、文字が比較的大きな距離にある浮動小数点数を認識すること(例えば、レシートが書かれ得る方法による)、日付フォーマットを行うことなどによって調整され得る。
【0045】
いくつかの実施形態は、特定の規則を適用することによって、通貨値が1つの単語にグループ化されるべきであると認識することができる。例えば、この数値の前に通貨記号(例えば、
など)がある場合、サブルーチンは一般的に次のように記述され得る:
開始
通貨記号に続く各整数を単語に追加する;
整数または小数点でない場合は、無視する;
その後、少なくとも1つの数値で小数点が見つかった場合:
小数点を追加する;
各整数を小数点の後に追加する;
終了
【0046】
このようなサブルーチンは、通貨である可能性が高いが通貨記号を持たない浮動小数点数も調整することができ、まず、数字を有する隣接する文字を検索してその間にある小数点を探し、小数点の後の2つの整数で終了させることができた。
【0047】
OCRモデルの遂行の速度を向上させるために、一部の要素がCPUを用いて処理され得、他がGPUを用いて処理され得る。OCRモデルの実行中、ほとんどの動作はGPUの方が高速であるが、GPU処理のためにすべてのデータを移動するコスト(すなわち、CPUからGPUへのメモリコピー)が追加され、いくつかの機能はGPUなどのために効果的に実装されない。速度を上げるために、GPUはほとんどの場合で使用され得るが、速度を向上させるためにCPU処理が強化される。
【0048】
いくつかの実施形態では、どの要素がテキストを含むかを特定するだけでなく、どの要素がテキストを含まないかも特定することが望ましい。例えば、OCRアルゴリズムは、最初にボタンのエッジを括弧として特定することができる。ネガティブルールは、システムがそのような区別をするのに役立つ。これは、合成データの生成段階から問題になることがあり、生成されたデータで質の高いネガティブな例を提供することがより困難である。実画像は、テキストがなくても様々なアーティファクトを有する傾向があり、それらが多数存在する傾向があるため、再現が困難な場合がある。訓練を支援するために、アイコン、画像から取り出したランダムボックス(テキストと重ならないようにしながら)、悪い予測につながるグラフィカル要素が取り入れられ得る。
【0049】
OCRモデルを訓練するためのデータは、例えば、グラフィックコンポーネント検出モデルを訓練するために使用されるデータとは大幅に異なる傾向がある。グラフィカル要素検出では、コンポーネントのエッジの周りのボックスは完璧である必要はない場合がある例えば、ボタンを検出するためにボックスがあまり正確に描かれていない場合、これは精度にそれほど影響を与えない傾向がある。しかし、テキストについては、ボックスが正確に描かれていない場合(例えば、少し右にずれている)、ボックスはもはや最初の文字を含んでいるとは見なされないかもしれない。そのため、OCRモデルの段階は、正しい単語を識別することができないだろう。言い換えれば、テキストの場合、ボックスが小さすぎたり、文字がグラフィックコンポーネントのエッジと交差したりすると、文字が認識されないことがある。例えば、文字「p」の尾がエッジによって切断された場合、OCRモデルはその文字がより「a」に似ていると判断し、そのようにそれを特定する場合がある。したがって、テキスト要素検出モデル訓練およびタグ付けにおいて、グラフィックコンポーネントのエッジをより強調し得る。より正確なボックスマージンを提供するモデルは、カスケードR-CNNなど、いくつかの実施形態において採用され得る。
【0050】
上記により、いくつかの実施形態では、ビデオ画像は、VDEサーバーから来てもよく、ビジュアルディスプレイまたはその一部のものであってもよい。いくつかの例示的なVMは、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップなどによって提供されるものを含むが、これらに限定されるものではない。しかしながら、画像は、本発明の範囲から逸脱することなく、Flash、Silverlight、もしくはPDF文書、様々な形式の画像ファイル(例えば、JPG、BMP、PNGなど)、または他の適切な画像源を含むが、これらに限定されない他のソースから来ることもある。そのような画像は、ウィンドウ、文書、財務レシート、請求書などが含まれ得るが、これらに限定されるものではない。
【0051】
図2は、本発明の実施形態による、RPAシステム200を示すアーキテクチャ図である。RPAシステム200は、開発者がワークフローを設計して実装することを可能にするデザイナ210を含む。デザイナ210は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ210は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ210は、ワークフローおよびロボットの開発および展開を容易にする。
【0052】
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたカスタムセットのステップ間の遂行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ210の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0053】
ワークフローのいくつかのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0054】
ワークフローがデザイナ210内で開発されると、ビジネスプロセスの遂行は、コンダクタ220によって調整され、デザイナ210内で開発されたワークフローを遂行する1または複数のロボット230を調整する。コンダクタ220の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ220は、環境におけるリソースの生成、監視、および展開の管理を容易にする。コンダクタ220は、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして動作し得る。
【0055】
コンダクタ220は、全てのロボット230を管理し得、ロボット230を集中ポイントから接続して遂行する。管理され得るロボット230のタイプには、アテンディッドロボット232、アンアテンディッドロボット234、開発ロボット(アンアテンディッドロボット234と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット232と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット232は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット232は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ220とともに使用され得る。アテンディッドロボット232は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ220から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット232は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット232は、いくつかの実施形態では、人の監督下で動作することが好ましい。
【0056】
アンアテンディッドロボット234は、仮想環境で無人で動作し、多くのプロセスを自動化し得る。アンアテンディッドロボット234は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ210で実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
【0057】
コンダクタ220は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット230とコンダクタ220(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。展開は、遂行のために割り当てられたロボット230へのパッケージバージョンの正しい配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標))へのログの保存およびインデックス作成を含み得る。コンダクタ220は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0058】
ロボット230は、デザイナ210で構築されたワークフローを実行する遂行エージェントである。ロボット(複数可)230のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット230は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット230は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
【0059】
いくつかの実施形態では、ロボット230は、ユーザーモードで設置され得る。このようなロボット230については、所定のロボット230が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット230は、HD環境で構成され得る。
【0060】
いくつかの実施形態におけるロボット230は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ220と遂行ホスト(すなわち、ロボット230が遂行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット230の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。
【0061】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ220と遂行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット230の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0062】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0063】
上で説明したように、ロボット230のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが何を遂行しているかをより容易に実行し、特定し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、いくつかの実施形態では、デザイナ210からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0064】
図3は、本発明の実施形態による、展開したRPAシステム300を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム300は、図2のRPAシステム200であってもよく、またはその一部であってもよい。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション310は、エグゼキュータ312、エージェント314、およびデザイナ316を含む。しかし、いくつかの実施形態では、デザイナ316は、コンピューティングシステム310上で実行されていなくてもよい。エグゼキュータ312はプロセスを実行している。図3に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント314(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ312のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ330に記録され、それは、データベースサーバー340、インデクササーバー350、またはその両方を介して、それらをさらに処理する。図2に関して上述したように、エグゼキュータ312は、ロボットコンポーネントであり得る。
【0065】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数の対話型セッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、そこの複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
【0066】
エージェント314はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント314とコンダクタ330との間の通信は、いくつかの実施形態では、常にエージェント314によって開始される。通知シナリオでは、エージェント314は、後にコンダクタ330によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0067】
サーバー側には、プレゼンテーション層(ウェブアプリケーション332、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント334、通知および監視336)、サービス層(API実装/ビジネスロジック338)、永続層(データベースサーバー340、インデクササーバー350)が含まれる。コンダクタ330は、ウェブアプリケーション332、OData REST APIエンドポイント334、通知および監視336、ならびにAPI実装/ビジネスロジック338を含む。いくつかの実施形態では、ユーザーがコンダクタ320のインターフェース(例えば、ブラウザ320を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション332は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション332は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ330を制御するための様々な動作を実行するために、本実施形態ではブラウザ320を介してウェブアプリケーション332からのウェブページと対話する。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
【0068】
ウェブアプリケーション332に加えて、コンダクタ330は、OData REST APIエンドポイント334を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション332とエージェント314の両方により消費される。エージェント314は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0069】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ330においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
【0070】
restエンドポイントの監視は、ウェブアプリケーション332およびエージェント314を監視する。通知および監視API336は、エージェント314の登録、エージェント314への構成設定の配信、ならびにサーバーおよびエージェント314からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API336は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0071】
永続層は、本実施形態では、一対のサーバー-データベースサーバー340(例えば、SQLサーバー)およびインデクササーバー350を含む。本実施形態におけるデータベースサーバー340は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション332を介して管理される。データベースサーバー340は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー340は、ロボットにより記録されたメッセージを(インデクササーバー350に加えて、またはインデクササーバー350に代えて)格納してもよい。
【0072】
いくつかの実施形態では任意であるが、インデクササーバー350は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー350は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー350は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー350に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0073】
図4は、本発明の実施形態による、デザイナ410、アクティビティ420、430、およびドライバ440の間の関係400を示すアーキテクチャ図である。以上のように、開発者は、デザイナ410を用いて、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ420およびUIオートメーションアクティビティ430を含んでもよい。いくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、OCR、ファジーテキストマッチング、およびマルチアンカーを使用して要素を特定し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を特定してもよい。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を特定し、その上にホバーし得る。要素の有無の検出は、上述した技術を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ410に実装され得る数百または数千でさえのアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
【0074】
UIオートメーションアクティビティ430は、低レベルのコード(例えば、CVアクティビティ)で記述され、画面との対話を促進する特別な低レベルのアクティビティのサブセットである。UIオートメーションアクティビティ430は、ロボットが所望のソフトウェアと対話することを可能にするドライバ440を介して、これらの対話を促進する。例えば、ドライバ440は、OSドライバ442、ブラウザドライバ444、VMドライバ446、エンタープライズアプリケーションドライバ448などを含んでもよい。
【0075】
ドライバ450は、フックを探したり、キーを監視したりするなど、低レベルでOSと対話してもよい。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ450を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0076】
図5は、本発明の実施形態による、RPAシステム500を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム500は、図2および/または図3のRPAシステム200および/または300であってもよいし、それを含んでもよい。RPAシステム500は、ロボットを実行する複数のクライアントコンピューティングシステム510を含む。コンピューティングシステム510は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム520と通信することができる。コンダクタコンピューティングシステム520は、順番に、データベースサーバー530および任意のインデクササーバー540と通信することができる。
【0077】
図3および図5に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
【0078】
図6は、本発明の実施形態による、本発明の実施形態による、RPAに関する画像内のテキストを検出および認識するためにOCRモデルを訓練するように構成されたコンピューティングシステム600を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム600は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム600は、情報を通信するためのバス605または他の通信機構と、情報を処理するためのバス605に結合されたプロセッサ(複数可)610とを含む。プロセッサ(複数可)610は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)610はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)610は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0079】
コンピューティングシステム600は、プロセッサ(複数可)610によって遂行される情報および命令を格納するためのメモリ615をさらに含む。メモリ615は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)610によりアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0080】
さらに、コンピューティングシステム600は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信デバイス620を含む。いくつかの実施形態では、通信デバイス620は、周波数分割多元接続(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)、それらのいずれかの組み合わせ、および/または本発明の範囲から逸脱することなく、いずれかの他の現在存在するまたは将来実装される通信標準および/またはプロトコルを使用するように構成され得る。いくつかの実施形態では、通信デバイス620は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含み得る。
【0081】
プロセッサ(複数可)610は、バス605を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ625にさらに結合されている。ディスプレイ625は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示デバイスおよびハプティックI/Oを使用することができる。
【0082】
コンピュータマウス、タッチパッドなどのようなキーボード630およびカーソル制御デバイス635は、ユーザーがコンピューティングシステム600とインターフェースすることを可能にするために、バス605にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ625および/またはタッチパッド(図示せず)のみを介してデバイスと対話することができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム600と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステム600と対話してもよいし、コンピューティングシステム600は自律的に動作してもよい。
【0083】
メモリ615は、プロセッサ(複数可)610により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム600のためのオペレーティングシステム640を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成されたRPAOCRモジュール645を含む。コンピューティングシステム600は、付加的な機能を含む1または複数の付加的な機能モジュール650を含み得る。
【0084】
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。
【0085】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
【0086】
モジュールはまた、様々なタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、遂行可能コードの特定された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な特定されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープのようなコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
【0087】
実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリデバイス間に分散されていてもよい。同様に、動作データは、モジュール内で特定され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。動作データは、単一のデータセットとして収集されてもよいし、または異なる記憶デバイスにわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0088】
図7は、本発明の実施形態による、RPAに関する画像内のテキストを検出および認識するためにOCRモデルを訓練するためのプロセス700を示すフローチャートである。プロセスは、705でテキスト検出モデルを訓練するための合成データを生成することから始まる。大量の合成訓練データが、テキスト検出モデルの初期訓練のために生成され得る。いくつかの実施形態では、テキスト検出モデルは、ResNet-50をバックボーンとして使用するFaster R-CNNアーキテクチャに基づいてもよく、テキストを含むと考えられる成分、またはテキスト自体であると考えられる成分の周りにボックスを描画してもよい。次に、テキスト検出モデルは、それが710で評価データセットに対する精度のその最高レベルに達するまで、複数のエポックにわたって訓練される。次に、715において、評価データセットに対する最高の精度が達成されるまで、増大(例えば、拡大縮小、回転、平行移動、色の変更、それらのいずれかの組み合わせなど)を用いて、実際の、人間がラベル付けしたデータ上で、訓練を継続する。
【0089】
次いで、テキスト認識モデルは、720において、複数のエポックにわたって実および合成データ上で同時に訓練される。いくつかの実施形態のテキスト認識モデルは、テキストデコーディングのために、ResNet-18と、CTCを有する単一のLSTM層とを備えるアーキテクチャを使用してもよい。いくつかの実施形態では、テキスト検出モデルおよびテキスト認識モデルを訓練するためのものと同じ画像が使用され得る。特定の実施形態では、新しい合成画像/単語は、実際の、人間がラベル付けした画像の比較的限られた数(例えば、いくつかの実施形態では500以下)にもかかわらず、訓練をより効果的にするために、各エポックに関して生成される。特定の実施形態では、増大は訓練データ上で行われるが、評価は実データ上でのみ行われる。OCRモデルが製造に十分であるか、または既存のOCRモデルより優れているかを決定するための、エンドツーエンド評価のために、いくつかの実施形態では、別のデータセットが使用され得る。
【0090】
合成データを生成するとき、いくつかの実施形態は、OCRモデルが展開後に遭遇する実画像にできるだけ近い画像をプログラム的に生成することを試みる。スクリプトは、テキストがコンピューティングシステムディスプレイ上に現れる傾向に類似した、画像内に単語を配置し、いくつかのノイズを加え、ブロック(例えば、段落、表のようなボックス、ランダムに配置された単語を含むボックスなど)などで画像を構成するために使用され得る。いくつかの実施形態では、テキストがないアイコン、テキストがないボックスおよび下端、ランダムノイズ(例えば、様々なサイズおよび形状のドットをランダムに追加)、様々なタイプ、形状、およびサイズの画像内のランダムポリゴンを描くなどのような、様々な要素を訓練画像に追加してもよい。上記のように、非常に大量の合成データが既存のコンピューティングシステムのハードウェア能力で容易に実現できるため、これが生成され得る。合成データは、いくつかの実施形態では、実データと全く同じではない。特定の実施形態では、テキスト検出および/または認識モデルを訓練するための合成データは、ネガティブな例を含んでもよい。ポジティブな例に加えてネガティブな例を提供することは、合成データを訓練目的のためにより効果的にするのに役立つ場合がある。アイコン、画像から取り出したランダムボックス(テキストと重ならないようにしながら)、悪い予測につながるグラフィカル要素などが、ネガティブな例として取り入れられ得る。
【0091】
ある実施形態では、OCRモデルは、浮動小数点数、日付などが単一の単語であることを決定してもよい。ある実施形態では、CPUを使用していくつかの要素を処理し、GPUを使用して他の要素を処理することによって、OCRモデル遂行の速度が向上され得る。いくつかの実施形態では、OCRモデルは、どの要素がテキストを含むかだけでなく、どの要素がテキストを含まないかも決定する。
【0092】
このデータは、典型的には、生成するためにはるかに高価であり、時間がかかるので、いくつかの実施形態では、人間がタグ付けしたデータのはるかに小さいサンプルが訓練され得る。合成データ訓練段階は、OCRモデルが、比較的少数の実サンプルに基づいて正確になることを可能にする。この人間がタグ付けしたデータは、訓練によって精度を向上させるために修正され得る。例えば、ラベル付けされた画像は拡大縮小され得、画像はより大きくまたはより小さくされ得、画像および/またはその中の要素は回転され得、色は変更され得、画像および/またはその中の要素は伸張、平行移動、反転などされ得る。テキストは、テキストを拡大縮小しすぎると(例えば、縮小によって)、テキストを認識する能力が失われる可能性があるので、グラフィックコンポーネントとは異なる。
【0093】
いくつかの実施形態は、そのようなテキストが1つの画像から別の画像まで比較的類似している傾向があるので、所望の数のフォントで画面上のテキストを認識するように訓練され得る。一般的に使用されるフォントのリストを構築し、これらのフォントのテキストをランダムに選択して混合してもよい(例えば、異なるフォント、スペーシング、方向、サイズなど)。サイズおよびスペーシングは、例えば、あるフォントから別のフォントへと変化する傾向がある。特定の実施形態は、手書きテキストを認識するように訓練されてもよい。しかしながら、手書きテキストには個人から別個人へのより広い程度の変動があるため、この訓練プロセスはより広範囲であり、より多くの合成サンプルおよび実サンプルを必要とする場合がある。
【0094】
特定の実施形態では、比較的少ない数の文字タイプが使用されてもよい(例えば、ASCII文字セットよりも小さい100個の異なる文字)。請求書のテキストを認識するために採用されるものなどのいくつかの実施形態について、これは、製造において遭遇する可能性が高い文字のほとんどまたはすべてを包含してもよい(例えば、請求書が英語で、特定のエンドユーザーに関するドル値を含む場合など)。より限定された文字セットはまた、OCRモデルが訓練される速度を向上させるのに役立ち、精度を向上させ得る。
【0095】
テキスト検出モデルおよびテキスト認識モデルが訓練されると、それらは、725において、OCRモデルに結合される。いくつかの実施形態では、訓練後、OCRモデルは、結果が迅速に要求されるおよび/またはOCRモデルを実行するコンピューティングシステムが不十分な処理能力を有するいくつかの実装に関して、比較的大きく、十分に速くない場合がある。したがって、いくつかの実施形態では、より大きなOCRモデルは、730において、より小さく、より速いOCRモデルを訓練するために使用される。
【0096】
訓練されたOCRモデルを呼び出すアクティビティを含むワークフローが、735で生成される。これは、初期の、ステップ730のより大きなOCRモデルおよび/またはより小さなOCRモデルであり得る。次いで、ワークフローを実装するロボットが740で生成され、ロボットは745で展開される。
【0097】
図7で実行されるプロセスステップは、本発明の実施形態に従って、図7で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、図7に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、図6のコンピューティングシステム600のプロセッサ(複数可)610)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
【0098】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに動作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適なデバイスで動作するように構成され得る。
【0099】
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
【0100】
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
【0101】
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態にあることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、必ずしもその必要性はないが、同じ実施形態を参照することができる。
【0102】
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれない特定の実施形態では認識され得る。
【0103】
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。

図1A
図1B
図2
図3
図4
図5
図6
図7
【国際調査報告】