Blue Prismの内蔵OCRで、請求書の読み取りを試みる<接触編>
以前の記事で、Blue Prismの内蔵OCR(tesseract OCR)に、日本語の言語パック(jpn.traineddata)を入れてアレコレ試しました。
以前の記事では、Webページの内容を画像として読み取っていました。
今回は、もう少し業務的なイメージを読み取ってみましょう。。そう、OCRと言えば定番の請求書です。
マネーフォワードの請求書で試してみる
まぁ、こういうのはとりあえずやってみりゃ良いんですよ。
Web上にいくつかある請求書のサンプルから、マネーフォーワードのものを持ってきました。
マネーフォーワードの請求書は、
- 定型: 請求書のフォーマットは内容によって(基本的には)変化しない
- 印字: 文字・数字がフォントを使って打ち出されています。手書きではない
- 文字がクッキリ: 文字が(割と)クッキリハッキリしている
といった特徴が見て取れたので、teserract OCRでも行けそうな気がします。。行けたら良いなぁ。。
実際にやってみた
まず、Regionモードでスパイして、以下のように読取個所を指定します。
全部で7か所を指定しました。日本語のフィールドもあれば、数字のフィールドもあります。
金額については、背景が濃い灰色だったり、黒だったりもします。
実行結果は以下の通り。
項目名 | 本来の内容 | tesseract OCRの読み取り結果 | 一致? |
郵便番号 | 123-4567 | ]234567 | △ |
住所 | 東京都サンプル区サンプルビル〇F | 真京都サ〉プ丿レ区サ〉プ丿レピ丿レ〇F | ✘ |
会社名 | サンプル株式会社 | サ〉プ丿し株式会社 | △ |
金額 | ¥30,726 | ¥30,726 | 〇 |
支払期限 | 平成27年〇〇月〇〇日 | 平成2フ年〇〇月 〇〇日 | △ |
商品Aの合計金額 | 25,000 | 25,000 | 〇 |
商品Bの合計金額 | 3,450 | 3,450 | 〇 |
惜しいなぁ~。。
なんというか惜しい。主な誤検出は以下だと思いました。
- 文字を間違えて読み取っている。1→]、東→真、7→フ…
- ひとつの文字が分割されてしまう。ル→丿レ…
- 余分なスペースが入ってしまう
一方で、数字の検出は精度が高いですね。
背景が濃い灰色だったり、黒だったりして、文字が白色であっても、ちゃんと読めています。
日本語の精度も、今後、上がっていくんでしょうか。
まとめ
- Blue Prismの内蔵OCR(tesseract OCR)は日本語も読み取れるが、精度は完ぺきとは言い難い
- 定型、印字、文字がクッキリ…というOCR向きの画像であっても、完全な読取りには至らない
- 少し考えてみましたが、今回の読み取り結果が惜しい理由は、スムージング(アンチエイリアス)が効いているためではないか…と思っています。
今回の画像の一部(うまく読み込めていない「東京都」の「東」周辺)を切り取って、拡大してみました。
やっぱり、白地に黒のモノクロ二階調ではなく、複数の色を使ってスムージングされています。
これが原因では??・・・つづく!