Blue Prismの内蔵OCRで、画像から日本語の文字を読み取る
昨日の台風、すごかったですね。
Blue Prismの内蔵OCR
Blue Prismは6.0から、オープンソースのOCRツールである tesseract OCR が内蔵されるようになりました。
tesseract OCRであれば追加コストが不要で、かつ簡単に使うことができます。
さて、この内蔵OCRの実力は、果たして、どの程度のものなのでしょうか。
特に日本語とか、手書きとか…気になりますよね。試してみました。
やってみた(日本語が読み取れない?)
まずは手始めに、何も考えずに Region モードで領域を指定し、読み込み(Read)ステージでRead Text with OCRを設定します。
OCRにかけたのは、Yahooファイナンスのページにある、以下の画像です。
ここにある「ファイナンス」と、
ここの「現在の日時」、
最後に、長文で「前週末に比べ円安が…」。
さて、注目の読み取り結果は、、、
- 「ファイナンス」の読み取り結果は、「774T);」になった
- 「現在の日時」の読み取り結果は、「IREOD El 33'}」になった
- 「前週末に比べ円安が進んだため、電気機器など輸出関連株の一角が買われ、日経平」の読み取り結果は、「fifiiEJfiCJthFqfibfiExfiiifcm Efifiéfi’igifiififiififiQ-‘fifi‘fibn BEEF」になった…なんじゃこりゃ!
グエー死んだンゴ(またか)。
外国の製品はしょせんな~~~~っ
大概 日本人と感覚が違うんだよなあ~
こーゆーのはよぉ~っ
tesseract OCRの日本語の言語データ(jpn.traineddata)を入手する
。。なぁーんて言うのは、いかにも日本人的ではない。日本人というのは(昔は中華と比べて、いまは欧米と比べて)常に世界の標準より小さく閉じた文化圏で、常にイノベーションの限界に挑戦してきた。要するに、この程度じゃ怯まないわけですよ。
この問題に対する簡単な解決策は、tesseract OCRの日本語の言語データ(jpn.traineddata)を入手することです。以下の記事を参考にして、jpn.traineddataを...Blue Prism Limited\Blue Prism Automate\Tesseract\tessdataに配置しましょう。
Windows で Tesseract 3.0.5 を使ってみる
配置したら、読み込み(Read)ステージでRead Text with OCRをする際に、入力パラメータのLanguageに"jpn"を設定します。これで再チャレンジだッ!
あれ?文化圏がどうとか、イノベーションがどうとか、偉そうなことを言ったけど、単に先人の成功に乗っかってるだけじゃね。。
日本語の読み取り結果: そこそこ読み取れる
tesseract OCRに日本語の言語データを設定し、読み取り(Read)ステージで読み取ると…
- 「ファイナンス」の読み取り結果は、「フアイナンス」になった…惜しい!
- 「現在の日時」の読み取り結果は、「現在の 日 時」になった…これもちょっと惜しい!
- 「前週末に比べ円安が進んだため、電気機器など輸出関連株の一角が買われ、日経平」の読み取り結果は、「前週末に比べ円安が進んだため、 電気機器など輪出関連株の一角が買われ、 日経平」になった…ほとんど完璧。半角スペースが1個、入っただけだ
いけるやん!
おまけ: 手書きは厳しい。。
調子に乗って、手書きの読み取りにも挑戦してみました。
こちらの画像の「大空商事 株式会社」にチャレンジ。
読み取り結果は、
- 「大空商事 株式会社」の読み取り結果は、「犬霊藺事 林糞燐ム」になった
…手書きかつ、背景に模様とか入っちゃうと、ちょっぴり厳しいな。
まとめ
- Blue Prism に内蔵されている tesseract OCR は、デフォルトだと日本語の認識ができない
- しかし、日本語の言語データを追加すると、かなりの精度で日本語が読み取れる
- でも、日本語の手書き文字かつ、背景に模様とか入っちゃうと、もぅマヂ無理。。