uibot:みんなのためのロボット!
イメージクラス(image class)コマンドを使用すると、インターフェイス要素をチェックできなくても、操作の正確的な場所を見つけることができます。しかし、ターゲットコマンドのようにインターフェイス要素の内容を読み取ることはできません。 改めてwechat windowsを例に説明しましょう。画像コマンドを使用してwechatにログインし、さまざまな連絡先の間にを切り替えることができます。しかし、チャット自体のコンテンツを(肉眼で見るのは簡単ですが)まだ利用できません。次の図でそれを見ることができます。そこで、uibotの「ocr」クラスコマンドが必要です
(imgstarget/8.png){width="50%"} wechatから直接入手するのは難しいです。
ocrは「光学文字認識」の略です。これは遥か昔の技術です。それによってocrが前世紀において紙類の書籍の中からテキストをスキャンと取得することを実現させました。現在、ocrテクノロジーは進化しており、ディープラーニングテクノロジーに統合されました。ocrを使用して、画面からさまざまなテキストを識別して区別します。その認識率は非常に高いです。写真のほとんどが薄暗い紙の本/文書でできているのではなく、デジタルになっています。
ocrはrpaとうまく結びられています。しかし、ocrの統合はより技術的です。通常、rpaベンダーは自らocrを行うのではなく、サードパーティのocrサービスに直接アクセスして使用します。uibotの場合、baidu cloud のocrテクノロジーは国内メーカーにおいて比較的に強力であるため、デフォルトをbaidu cloud のocrサービスにします。そのocrは、インターフェイス上の単語と数字を認識するだけのではなく、請求書、idカード、列車のチケットなどの文書または羊皮紙の画像を最適化することもできます。さらに、請求書番号、請求書の値、名前などの重要な内容を正確に識別することもできます。
baidu cloud ocrにアクセスするためには、まず次の3つの要件を満たす必要があります:
•インターネットにアクセスする必要があります。baidu cloudは、ローカルで実行されているソフトウェアではなく、インターネットクラウドサービスに基づいています。そのため、個人使用の場合、インターネットに接続する必要があります。企業用の場合、インターネットにアクセスすることができません。baidu cloudとの交渉してオフラインサービスを購入する必要があります。
• baiduに一定の費用を支払う必要があります。 baidu cloud のocrサービスは無料ですが、1日に5,000回(共通の文字認識、認証などの場合は1日に500回)の無料割り当てを提供しています。個人使用の場合、無料のサービスで十分です。しかし、baiduは無料の割り当てと請求料金をいつでも変更できますから、費用が変わるかもしれません。
baidu cloudは有料のため、uibotのユーザーが個別のアカウントを共有することは不可能です。そのため、各ユーザーは、自分でbaidu cloud アカウントを申請してから、ocrサービス(アクセスキーとシークレットキーと呼ばれることが多い)を使用します。申し込み方法は簡単です。[オンラインチュートリアルを見る](https://forum.uibot.com.cn/thread-192.htm)をクリックしてください。
uibotには次のocrコマンドが含まれています:
[uibotのocr コマンド] (imgstarget/9.png){width="30%"}
赤いボックス内のコマンドは、「click image」、「move mouse to image」、「find image」のように見えますが、画像を渡す必要はありません。それを見つけるためには、ただプロパティのテキストをマークすればいいです。
青いボックス内のコマンドは、緑のボックス内のコマンドに似ています。前者が画像ファイルを提供しなければならない場合を除きます。後者は、ウィンドウと領域を提供する必要があります。プロセスが以前と同じ方法で実行するとき、uibotはウィンドウの指定された領域のスクリーンショットを自動的に取得し、それをファイルに保存します。
まず、「screen ocr」コマンドを試してみましょう。 ダブルクリックまたはドラッグしてscreen ocrコマンドを挿入してから、コマンドの[ターゲット検索]ボタンをクリックしてください(uibot creatorウィンドウが一時的に非表示されている場合)。 そして、マウスをwechatウィンドウに移動します。赤いフレームの青いカバーでwechatウィンドウが隠されています。それから、マウスをドラッグして、文字認識用の領域をマークアウトします。この領域は紫色のボックスで示されます。次の図に示します。
! [ocr notargetを選択] (imgstarget/10.png) {width="60%"}
このコマンドは、実行中にwechatからウィンドウを自動的に検出します。そして、紫色ボックスでの指定された場所(wechatウィンドウの場所を基準にします)でスクリーンショットを撮ります。次に、スクリーンショットからstextを識別し、認識されたstextを変数stextに保存します。
この時点で、ほぼ完了しましたが、まずコマンドを選択し、「プロパティ」でbaidu cloudからもらったアクセスキーとシークレットキーを入力するなければならなりません。アクセスキーとシークレットキーはどちらも文字列(文字/テキストのセット)なので、テキストの左右に二重引用符を保持する必要があることに注意してください。ocrコマンドが完了した後、 debug windowコマンドで出力を追加し、出力変数stextを指定することによって、その効果が実現できます。stextは文字列ではなく変数名であることに注意してください。変数の両側に二重引用符を付けないでください。
! [ocrコマンドを完了する] (imgstarget/11.png) {width="80%"}
このプロセスブロックを実行すると、その効果を確認することができます。 wechatウィンドウが存在する限り、またウィンドウのサイズが変更されていない限り、現在のwechat(またはwechatグループ)の名前を特定することができます。
次に、i.d.、列車のチケットなどを対象に、特定のイメージocr 認識(image ocr recognition)コマンドをもう一度テストします。画像を次の形で保持します:
``d:\1.png```document:'
! [特別なocr:画像] (imgstarget/12.png){width="40%"}
次に、この画像ocr認識コマンドを使用して、前述のようにプロパティを変更します。 上記のアクセスキーとシークレットキー以外、認識したい画像のファイル名を指定しなければなりません。「鉄道チケットの識別(train ticket identification)」のためにocrエンジンを選択する必要があります。他のプロパティはデフォルトのままにします。実行後、出力バーで特定された結果を確認することができます。その結果、実はjsonドキュメントです。uibotが提供したjsonクラスコマンドでさらに処理する必要がある。この章では説明しません。
!! [特別なocr:プロパティ設定] (imgstarget/13.png){width="80%"}