手書き書類中の数字の認識
手書き書類の認識について
OCR(光学文字認識)を使用した手書き書類の自動処理は、企業や自治体など、お客様から提出される手書きの書類を処理する現場において幅広くニーズがあります。
そのため、技術開発推進部では、手書き書類の処理に関して、技術調査を行ったりプロトタイプのプログラムを作成したりしています。
今回は、書類中の手書き「数字」を認識するプロトタイプを作成しましたのでご紹介します。
書類中の手書き数字を認識する処理について
(※以下、書類を光学スキャナ等で読み込み、画像ファイル化したものに対する処理となります)。
今回のプロトタイプでは、以下のステップで処理を行います。
・ステップ#1:書類のなかで、文字認識の対象である数字列が記入されている領域を切り出す。
・ステップ#2:数字列が記入されている領域を一桁(数字一文字)ごとに分割し、そのそれぞれについて手書き数字の認識を行う。
図1:手書き数字の記入欄を含む書類の例
ステップ#1:数字列領域の切り出し
画像の処理には、ライブラリ「OpenCV」を使用しています。
「書類のどの部分に手書き数字が記入されているか」は、書類個々によって異なる事柄なので、今回のプロトタイプでは手書き数字記入欄の座標を直接指定して切り取りました。
図2:書類から手書き数字列を切り出した画像
ステップ#2:数字列を一文字ごとに分割して手書き数字認識
数字列を切り出した画像を、数字一文字ごとに分割し、そのそれぞれについて手書き数字の認識を行います。
分割は、OpenCVの「輪郭の列挙」機能を使用することにより、簡単に行うことができました。
手書き数字認識処理は、機械学習ライブラリの「scikit-learn」の学習済み手書き数字モデルを利用しました。
個々の手書き数字画像に対して、数字認識を行った結果が、次のようになりました。
図3:手書き数字認識の結果
今後の課題
今回は、書籍等を参考にして手書き数字認識のプロトタイプを作成しました。
手書き数字の認識にscikit-learnの学習済み手書き数字モデルを使用しましたが、今後は、認識の精度をより向上するために、別の手段を試してみたいと思います。
- 当ページの人物画像はNIGAOE MAKERで作成しました。