Enterprise Blue Ocean ◮

神谷町RPAブログ

  • Blue Prism 初級者向け
    • Blue Prism を 無料で利用する 方法はこちら
    • Blue Prism の Blue Prism 事始め!オンボーディングの記事はこちら
    • Blue Prism で Excelを操作 する記事はこちら
  • Blue Prism、ちょっと進んだコンテンツ☆
    • Blue Prism の ベストプラクティス 記事はこちら
    • Blue Prism の 逆引きナレッジ wiki こちら
    • Blue Prism を リアルタイムで起動する 方法はこちら
  • RPA、そもそも論!
    • Youtube で、あらためて振り返る RPA とは?・・・はこちら☆

Blue PrismとAI連携① Blue PrismからMicrosoft AzureのCompuer Visionを使う<印字編>

以前の記事で、Blue Prismの内蔵OCR(tesseract OCR)を使って、請求書や領収書の読み取りを試みました。

ebo.hatenablog.com

ebo.hatenablog.com

結果は、、うーん、なんとも惜しい結果でしたね。

やっぱり、オープンソースOCRだと限界があるんでしょうか。

AI OCRじゃないからダメ?

…そういうわけで、今回は Microsoft AzureCognitive ServicesComputer Vision を試してみます。

同じマネーフォワードの請求書や、紙の領収書をスキャンした画像の読み取りを試みて、tesseract OCRとの違い比較できるといいですね。

 

Microsoft Azure > Cognitive Services > Computer Vision

いまさら紹介するまでもないと思いますが、Microsoft AzureにはCognitive ServicesというAI系のサービスがあります。

Computer Visionは、その中の視覚系(画像認識)のサービスです。

azure.microsoft.com

AI?AIねぇ。。キズナアイかな?

AIとは何ぞや、という話は、ここではしません(できないしね!)。

単に画像認識の精度を上げる技術、という形で、この記事では簡単に考えてます。

Computer Visionは、上記のように画面でも簡単に試せますが、自分のドメインに追加して、REST APIで利用することも可能です。

Computer Vision APIの使い方については、既に複数の記事があります。私は以下の記事を大変、参考にさせていただきました。

qiita.com

 

Blue PrismからComputer Visionを使う(VBOの活用)

Blue PrismからComputer Visionを使うのは非常に簡単です。

まず、Microsoft Cognitive Services用に作られたVBOを、ポータルからダウンロードしましょう。

Microsoft Intelligent Services (v6.2) (Log in | Blue Prism Portal)

これをインポートして、必要な設定作業を行えば、すぐに使えるようになります。

設定作業は、付属のドキュメントにもありますが、認証情報Computer Vision APIAPIキーを設定するだけです(環境変数の設定もありますが、これはインポート時に自動で追加されました)。

ただ、柔軟に使うには、いくつかの追加設定を実施したほうが良いです。具体的には、以下のケースです。

  • 東日本リージョンを使いたい場合
  • 画像の所在について、ファイルパスではなく、Web上のURLを渡したい場合

 

実際にやってみた

まず、請求書を丸ごと、Computer Visionに渡して、結果を戻してもらいましょう。
以下のようなプロセスを作りました。

f:id:EnterpriseBlueOcean:20181007170620p:plain

最初のアクションで、VBO: MS Cognitive - Computer Visionアクション: Configureを呼んでいます。ここで、認証情報に格納されたAPIキーをVBOが読み込み、使えるようにしています。

次のアクションで、アクション: OCRを呼びます。入力には、以下の画像

https://biz.moneyforward.com/invoice/wp-content/uploads/sites/9/2018/06/154.png

に対して、以下のようなjson形式のデータをHTTP RequestのBodyに入れています。

"{""url"":""https://biz.moneyforward.com/invoice/wp-content/uploads/sites/9/2018/06/154.png""}"

ダブルクォーテーションが重なってますが、これはエスケープのためです。


さて、OCRの読み取り結果を見てみましょう。

Number . 1234557890 Date : H27.00.00 〒 123 -4557 寅 京 都 サ : プ ル 区 サ : プ ル ヒ ル OF お ・ を 前 ^ 、 人 生 を も っ と 第 へ . サ ン プ ル 株 式 会 社 御 中 ー ツ Money FO Ⅳ ん 「 d サ ン プ ル 部 サ 冫 ア し 担 当 サ ン プ ル 太 部 株 式 会 社 マ ネ - フ ォ ワ - を 卩 影 〒 123 -0000 寅 京 都 港 区 = 田 圓 -00-0 こ 求 金 額 ¥ 30 ′ 726 000 ヒ ル CF お 支 払 期 限 平 成 27 年 00 月 00 ヒ TEL : 03 -0000-0000 MAIL: ⅲfo@0000 ・ co p 担 当 : 営 部 ヒ 本 太 部 数 星 単 位 品 目 25 ー 000 23 3 50 お 支 限 ま て に 下 記 口 座 へ ま i ム み を お 願 い し に L な す 。 ¥ 28 ′ 450 尚 、 振 込 手 数 料 ま 第 土 て こ 担 願 し ほ す 。 0000 銀 彳 丁 xE 店 消 目 税 ¥ 2 ′ 275 普 甬 口 座 12345578 口 座 名 義 00000000 30 ー 726

オォゥ。。というか、こんな感じで返ってくるのか。。
何か設定を追加したら、もうちょっと成形できそうですけど(たぶんjsonにできますよね)、、

ただちょっと、量が多いので、もうちょっと、範囲を絞ってやってみます。

 

実際にやってみた(範囲を絞る)

以前の記事では、Blue Prismで請求書の一部を切り取りtesseract OCRで読み取りをしました。

今回のComputer Visionでも、請求書の一部を切り取って読み取りを試してみたいと思います。

Computer Visionの最小サイズが、50x50 pixel なので、以下のように少しまとめて切り取りました。 

f:id:EnterpriseBlueOcean:20181007170348p:plain

さっきはjson形式でURLを渡しましたが、今回はいったんローカルに保存して、ファイルパスを渡してやってみました。結果は以下の通り。

〒 123 -4557 寅 京 都 サ : プ ル 区 サ : プ ル ヒ ル OF サ ン プ ル 株 式 会 社 御 中 サ ン プ ル 部 サ 冫 ア し 担 当 サ ン プ ル 太 部 こ 求 金 額 お 支 払 期 限 ¥ 30 ′ 726 平 成 27 年 00 月 00 ヒ

ちょっと改行入れます。

〒 123 -4557
寅 京 都 サ : プ ル 区 サ : プ ル ヒ ル OF
サ ン プ ル 株 式 会 社 御 中
サ ン プ ル 部 サ 冫 ア し 担 当 サ ン プ ル 太 部
こ 求 金 額
お 支 払 期 限
¥ 30 ′ 726
平 成 27 年 00 月 00 ヒ

 うーん、、なるほどぉ。。前回のtesseract OCRの結果と、比較してみますか。 

本来の内容 tesseract OCR Computer Vision
123-4567 ]234567 123  -4557
東京都サンプル区サンプルビル〇F 京都サ丿レ区サ丿レピ丿レ〇F   京  都  サ  :  プ  ル  区  サ  :  プ  ル    ル  OF
サンプル株式会社 丿し株式会社 サ  ン  プ  ル  株  式  会  社
¥30,726 ¥30,726 ¥  30    726
平成27年〇〇月〇〇日 平成2年〇〇月 〇〇日 平  成  27  年  00  月  00   

結果は、、Computer Visionの方がやや良い…?うーん、意外と似たり寄ったりだな。。

画像が小さすぎるから??画像の文字にスムージング(アンチエイリアス)がかかりすぎているから??

ちょっと対象を変えて、神戸三宮 東急REIホテルの領収書も読んでみましょう。

 

紙の領収書をスキャンして読み取る

件のスキャン画像を読み取ってみます。

f:id:EnterpriseBlueOcean:20181010201409p:plain

読み取り結果は以下です。

本来の内容 tesseract OCR Computer Vision
お支払金額 お支払金額 お  支  払  金  額
33,040 33, 4 33  ,  040
ご請求金額   ご  請  求  金  額
0   0
(内 消費税: 内 消 (  内  消  費  税  :
2,447 2' 447 2  ,  447

完勝!…Computer Vision、完勝じゃん!

 

まとめ

  • Microsoft AzureCognitive ServicesComputer Vision を使って、画像の文字を読み取ることができます
  • Blue Prismは、事前定義済みのVBOを使って、Computer Visionを簡単に試すことができます。
  • 今回<印字編>は、まず請求書の画像の読み取りを試みてみました。結果はやや微妙でした
  • 次に、紙の領収書をスキャンして読み取りを試みました。こちらは完勝ですね

何が違うんでしょうね?同じ「ご請求」の文字を拡大して見比べてみます。

まずは請求書

f:id:EnterpriseBlueOcean:20181012181646p:plain

Computer Visionでの読み取り結果は「」でした。全然ダメです。ただ、「こ」の濁点や請求の「請」言部が壊れてます。そもそも入力画像の文字の問題で、これはComputer Visionのせいではなさそうです。

言部 - Wikipedia

次に領収書(紙をスキャン)

f:id:EnterpriseBlueOcean:20181012181726p:plain

Computer Visionの読み取り結果は「ご  請  求」でした。

こうして拡大して比較してみると、請求書よりも領収書の方が、遥かにクッキリしています。元となる画像の質で、読取精度は大きく違ってしまうわけですね。

  • OCR、楽しい!。。<手書き編>で、手書きの日本語にチャレンジしたいな。