Studio
v2023.4
バナーの背景画像
Studio ガイド
最終更新日 2024年4月3日

OCR と画像ベースの自動化の使用例

仮想環境での自動化は難度が高いため、OCR と画像ベースの自動化が、通常一緒に利用されます。そこで、ここでは、スキャンした請求書から社員のメール アドレスと請求書番号を取得するオートメーションを作成しました。取得した情報は仮想マシン上の架空の経費アプリケーション (ExpenseIt) に入力され、請求書の総額とアプリケーションでの総額が比較されます。

  1. 新しいシーケンスを作成します。
  2. スキャンした請求書を開きます。例で使用されている請求書は、こちらからダウンロードできます。このファイルには、Adobe Acrobat Reader の使用をお勧めします。
  3. こちらで説明しているように、OCR テクノロジを使用して社員のメール アドレスをスクレイピングします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [ウィンドウにアタッチ] コンテナーが生成されます。この例では Attach PDF に名前を変更しています。コンテナーの中には、相対スクレイピング用のアンカーを選択する [画像を探す] アクティビティと、社員のメール アドレスを取得する [OCRでテキストを取得] アクティビティがあります。また、2 つの [クリッピング領域を設定] アクティビティがあり、一方は 1 つ目のクリッピング領域を 2 つ目のクリッピング領域に変換し、もう一方はクリッピング領域をリセットします。
  4. [変数] パネルで、email という新しい GenericValue 変数を作成します。
  5. 前に生成された [OCR でテキストを取得] アクティビティの [テキスト] プロパティに、email 変数を指定します。
  6. 以上のシーケンスに Read Email という名前を付けます。


    注: UiPath Studio が備えている OCR エンジンにはそれぞれ長所と短所があります。どれを使用するかを決める際は、状況に応じて使い分け、それぞれの状況でどれが最適な結果となるのかをテストすることが重要となります。作業ごとに OCR エンジンを変更することで、結果を向上させることができます。
  7. こちらで説明しているように、OCR テクノロジを使用して請求書番号をスクレイピングします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせるコンテナー [ウィンドウにアタッチ] が生成されます。この例では Attach PDF に名前を変更しています。コンテナーの中には、相対スクレイピング用のアンカーを選択する [画像を探す] アクティビティと、社員の請求書番号を取得する [OCR でテキストを取得] アクティビティがあります。また、2 つの [クリッピング領域を設定] アクティビティがあり、一方は 1 つ目のクリッピング領域を 2 つ目のクリッピング領域に変換し、もう一方はクリッピング領域をリセットします。
  8. [変数] パネルで、invoiceNo という新しい GenericValue 変数を作成します。
  9. 前に生成された [OCR でテキストを取得] アクティビティの [テキスト] プロパティに、invoiceNo 変数を指定します。
  10. 以上のシーケンスに Read Invoice Number という名前を付けます。


  11. こちらで説明しているように、OCR テクノロジを使用して社員のメール アドレスをスクレイピングします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [ウィンドウにアタッチ] コンテナーが、レコーダーによって生成されます。コンテナーには、相対スクレイピング用のアンカーを選択する [画像を探す] アクティビティと、社員の姓を取得する [OCR でテキストを取得] アクティビティがあります。また、2 つの [クリッピング領域を設定] アクティビティがあり、一方は 1 つ目のクリッピング領域を 2 つ目のクリッピング領域に変換し、もう一方はクリッピング領域をリセットします。
  12. [変数] パネルで、totalValue という新しい GenericValue 変数を作成します。
  13. 前に生成された [OCR でテキストを取得] アクティビティの [テキスト] プロパティに、totalValue 変数を指定します。
  14. 以上のシーケンスに Read Total Expenses という名前を付けます。


    注: 仮想マシン環境でアプリケーションを開く場合の最善の方法として、仮想マシンのデスクトップにアプリケーションのショートカットを作成しホットキーを割り当てることをお勧めします。[OCRで検出したテキストをクリック] を使用した場合、背景色の変化や選択するアイコンの変化によって、アプリケーションのアイコンをクリックできない場合があります。
  15. 仮想マシンのデスクトップ上に ExpenseIt アプリケーションのショートカットを作成します。
  16. ショートカットを右クリックし、コンテキスト メニューから [プロパティ] を選択します。[ショートカットのプロパティ] ウィンドウが表示されます。
  17. [ショートカット] タブの [ショートカット キー] フィールドで、ホットキーとして使用するキー (Alt + Ctrl + T キーなど) を押して、このアプリケーションにホットキーを割り当てます。


  18. [Citrix レコーディングツールバー] を開いて新しいレコーディングセッションを開始します。
  19. このアプリケーションのショートカットに割り当てておいたホットキーを仮想マシンウィンドウに送信する動作をレコーディングします。
  20. 相対スクレイピング を使用して、ExpenseIt アプリケーションの [Email] フィールドを、ラベルの位置に基づいてクリックします。
  21. ExpenseIt アプリケーションの [Email] フィールドに、email 変数を入力します。
  22. 相対スクレイピングを使用して、ExpenseIt アプリケーションの [Employee Number] フィールドを、ラベルの位置に基づいてクリックします。
  23. ExpenseIt アプリケーションの [Employee Number] フィールドに、invoiceNo 変数を追加します。
  24. レコーディング ウィザード[保存 & 終了] をクリックします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [ウィンドウにアタッチ] コンテナーが、レコーダーによって生成されます。このコンテナーの中には、[ホットキーを押下] アクティビティ、[Email] ラベルの右側のフィールドをクリックする [画像をクリック] アクティビティ、フィールドに email 変数を入力する [文字を入力] アクティビティ、[Employee Number] ラベルの右側のフィールドをクリックする [画像をクリック] アクティビティ、フィールドに invoiceNo 変数を入力する [文字を入力] アクティビティがあります。


  25. [Citrix レコーディングツールバー] を開いて新しいレコーディングセッションを開始します。
  26. ExpenseIt アプリケーションの [Create Expense Report] ボタンをクリックする動作を記録します。
  27. 相対スクレイピングを使用して、[Total Expenses ($)] ラベルに対応する値をスクレイピングします。
  28. レコーディング ウィザード[保存 & 終了] をクリックします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [ウィンドウにアタッチ] コンテナーが、レコーダーによって生成されます。このコンテナーの中には、[Create Expense Report] ボタンをクリックする [OCR で検出したテキストをクリック] アクティビティ、相対スクレイピング用のアンカーを設定する [画像を探す] アクティビティ、経費総額を取得する [OCR でテキストを取得] アクティビティがあります。また、2 つの [クリッピング領域を設定] アクティビティがあり、一方は 1 つ目のクリッピング領域を 2 つ目のクリッピング領域に変換し、もう一方はクリッピング範囲をリセットします。


  29. [変数] パネルで、totalExpense という新しい GenericValue 変数を作成します。
  30. 前に生成された [OCR でテキストを取得] アクティビティの [テキスト] プロパティ フィールドに、totalExpense 変数を指定します。
  31. 最後に生成されたレコーディング シーケンスの後に [条件分岐 (if)] アクティビティをドラッグします。
  32. [条件分岐 (if)] アクティビティの [Condition] プロパティに totalExpense = totalValue を設定します。これで、請求書の総額が経費アプリケーションの金額と等しいかどうかがチェックされます。
  33. [条件分岐 (if)] アクティビティの [Then] セクションに [メッセージ ボックス] アクティビティをドラッグします。
  34. [メッセージ ボックス] [テキスト] プロパティ フィールドに、金額が等しく請求書が正しいことを知らせるメッセージを書き込みます。
  35. [条件分岐 (if)] アクティビティの [Else] セクションに [メッセージ ボックス] アクティビティをドラッグします。
  36. [メッセージ ボックス] [テキスト] プロパティ フィールドに、金額が等しくなく請求書が正しくないことを知らせるメッセージを書き込みます。


  37. F5 キーを押してオートメーションを実行します。オートメーションによって、スキャンした請求書の社員データが ExpenseIt アプリケーションに入力され、請求書の総額と記録済みの経費総額が比較されて、金額が等しいかどうかがユーザーに表示されます。

このオートメーションは仮想マシンへの接続を伴うため、元のプロジェクトをアップロードしても役に立ちません。別の仮想マシンでは機能しないからです。ここで紹介した手順に従って独自のプロジェクトを作成することをお勧めします。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.