Blue PrismとAI連携① Blue PrismからMicrosoft AzureのCompuer Visionを使う<印字編>
以前の記事で、Blue Prismの内蔵OCR(tesseract OCR)を使って、請求書や領収書の読み取りを試みました。
結果は、、うーん、なんとも惜しい結果でしたね。
やっぱり、オープンソースのOCRだと限界があるんでしょうか。
AI OCRじゃないからダメ?
…そういうわけで、今回は Microsoft Azure の Cognitive Services の Computer Vision を試してみます。
同じマネーフォワードの請求書や、紙の領収書をスキャンした画像の読み取りを試みて、tesseract OCRとの違いを比較できるといいですね。
Microsoft Azure > Cognitive Services > Computer Vision
いまさら紹介するまでもないと思いますが、Microsoft AzureにはCognitive ServicesというAI系のサービスがあります。
Computer Visionは、その中の視覚系(画像認識)のサービスです。
AI?AIねぇ。。キズナアイかな?
AIとは何ぞや、という話は、ここではしません(できないしね!)。
単に画像認識の精度を上げる技術、という形で、この記事では簡単に考えてます。
Computer Visionは、上記のように画面でも簡単に試せますが、自分のドメインに追加して、REST APIで利用することも可能です。
Computer Vision APIの使い方については、既に複数の記事があります。私は以下の記事を大変、参考にさせていただきました。
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 APIのAPIキーを設定するだけです(環境変数の設定もありますが、これはインポート時に自動で追加されました)。
ただ、柔軟に使うには、いくつかの追加設定を実施したほうが良いです。具体的には、以下のケースです。
- 東日本リージョンを使いたい場合
- 画像の所在について、ファイルパスではなく、Web上のURLを渡したい場合
実際にやってみた
まず、請求書を丸ごと、Computer Visionに渡して、結果を戻してもらいましょう。
以下のようなプロセスを作りました。
最初のアクションで、VBO: MS Cognitive - Computer Visionのアクション: Configureを呼んでいます。ここで、認証情報に格納されたAPIキーをVBOが読み込み、使えるようにしています。
次のアクションで、アクション: OCRを呼びます。入力には、以下の画像
に対して、以下のような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 なので、以下のように少しまとめて切り取りました。
さっきは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ホテルの領収書も読んでみましょう。
紙の領収書をスキャンして読み取る
件のスキャン画像を読み取ってみます。
読み取り結果は以下です。
本来の内容 | tesseract OCR | Computer Vision |
お支払金額 | お支払金額 | お 支 払 金 額 |
33,040 | 33, 。4。 | 33 , 040 |
ご請求金額 | ご 請 求 金 額 | |
0 | 0 | |
(内 消費税: | 内 消賽税ニ | ( 内 消 費 税 : |
2,447 | 2' 447 | 2 , 447 |
完勝!…Computer Vision、完勝じゃん!
まとめ
- Microsoft Azure の Cognitive Services の Computer Vision を使って、画像の文字を読み取ることができます
- Blue Prismは、事前定義済みのVBOを使って、Computer Visionを簡単に試すことができます。
- 今回<印字編>は、まず請求書の画像の読み取りを試みてみました。結果はやや微妙でした
- 次に、紙の領収書をスキャンして読み取りを試みました。こちらは完勝ですね
何が違うんでしょうね?同じ「ご請求」の文字を拡大して見比べてみます。
まずは請求書
Computer Visionでの読み取り結果は「こ 求」でした。全然ダメです。ただ、「こ」の濁点や請求の「請」の言部が壊れてます。そもそも入力画像の文字の問題で、これはComputer Visionのせいではなさそうです。
次に領収書(紙をスキャン)
Computer Visionの読み取り結果は「ご 請 求」でした。
こうして拡大して比較してみると、請求書よりも領収書の方が、遥かにクッキリしています。元となる画像の質で、読取精度は大きく違ってしまうわけですね。
- OCR、楽しい!。。<手書き編>で、手書きの日本語にチャレンジしたいな。