見出し画像

FAXの注文書を読み取るOCRを作ってみた

Faxの文字をOCRで取り出す仕組みを作ってみました。Faxってデジタルデータ化してくれて、ついでにOCRで文字認識までやってくれる複合機を持っているところはいいのですが、そこまでやってくれる複合機がない場合には、届いたものを見ながらパソコンで発注データとして打っていくのが大変なので、OCRは強い味方になってくれます。

仕様は下のようにしました。

Faxの画像をアップロードして、文字認識したテキストをコピペできるように画像の上に重ねて表示する

どうせ文字認識したものをFaxと付き合わせて確認をするのであれば、Faxの画像と文字を重ねて表示してしまったら付き合わせするのが楽だろう、と考えて決めました。まだプログラムにはOCRの認識精度を上げるための工夫はやれていなくて、精度を上げるための改良はこれからです。OCRの認識精度が上がりほぼ間違いはないというレベルになれば、突き合わせの確認はいらないでしょうが、まだOCRでの読み取り結果の確認はなくすことは難しいでしょう。目で見て確認がいるのだったら、確認作業を効率的にやりたいものです。

プログラムを動かしていきます。起動すると下のようなタイトルとファイルアップロードのボタンが出て来ます。アプリのデザインが少し寂しいですね。Faxの画像ファイルをドラッグ・アンド・ドロップするか、ファイルを選択してFax画像をアップロードします。

図1.起動後の画面表示

画像がアップロードされたら、そこから先は一気にFaxの文字認識と画像表示、文字の重ね表示まで一気に行います。

図2.画像に文字を重ねて表示

画像の文字をコピペすることはできませんが、重ねた文字は文字として選択することができ、コピーしてExcelなどに貼り付けが可能です。

技術情報

プログラム言語:python
OCRエンジン:tesseract

課題

ここまできれいな画像ファイルだけを使ってOCRするという好条件でやったのですが、それでも、

  1. 表の中の文字認識精度が良くない。注文書の個数の数字が正しく認識できていないのが利用における大きな問題。

  2. 文字の座標が文字の位置と合っていないものがある。注文品の表の中の文字は文字がまとめられて認識され、座標(位置関係)が不適切。

  3. 予想外に、大きな文字の「注文書」が文字認識できていない。

という課題があります。これを改修して、更に手書き文字や、紙をスキャンすることを想定して文字が滲んだようなものにも対応させたいと思います。


この記事が気に入ったらサポートをしてみませんか?