PR/BLOG

広報・ブログ

続・手書き書類中の数字の認識

佐藤さん

こんにちは。技術開発推進部の佐藤です。
以前、手書き書類中の数字の認識に関する取り組みをご紹介しました。 今回は、その続編として、前回作成したプロトタイプの改良についてご紹介します。

今回の改良点について

前回の手書き数字認識では、課題として認識率の向上を挙げておりました。
今回、その課題を解決するために、「判別器の変更」、「画像の前処理の追加」を行ないました。
さらに上記に加え、プロトタイププログラムの操作や実行結果の表示を、CUIよりもGUIで行ないたいと考え、GUIの追加を行ないました。
以下に、今回行なった上記三項目の詳細を説明します。

 

判別器の変更について

認識率を向上させるためには、パラメータの類を調整する、などでの解決は難しく、判別器を別のものに変えたほうが良いと考え、前回のscikit-learnの替わりに「Keras(※注1)のMNIST(※注2)学習済モデル」を使用することにしました。

  • ※注1:Kerasはニューラルネットワークのライブラリ。
  • ※注2:MNISTは手書き数字画像のデータベース。

 

前処理の追加について

MNIST学習済モデルに手書き数字画像を判別させるために、入力する手書き数字画像に前処理を施すようにしました。
前処理を行なう理由は、モデルが学習したのはMNISTの画像データなので、入力する手書き数字画像は、できるだけ学習したデータと同じ形式(画像のサイズ、アスペクト比、黒地に白で文字が描かれている、など)に揃えた方がよいためです。
前述の、判別器の変更に伴い、それまで行なっていなかった「判別対象の画像データを、学習した画像データの形式に合わせる」という前処理を追加したところ、認識率が向上しました。

 

GUIの追加について

PythonのGUIのツールキットは、「PyQt(パイキュート)」「Kivy(キヴィ)」等、複数存在しますが、今回はPythonの標準的なGUIツールキットである「Tkinter(ティーケイインター)」を使用して、手書き数字認識プロトタイプにGUIを追加しました。

 

動作の様子

GUIを追加したプロトタイプで、手書き数字の認識処理を行なう様子を、以下に示します。

 

STEP1.
プログラムを実行すると、メイン画面が表示されます。
認識処理実行ボタンは非アクティブ(押下しても何も起こらない)状態です。

 

図1 メイン画面、起動直後

 

STEP2.
画像ファイル選択ボタンを押下すると、ファイル選択ダイアログが表示されます。
そこで認識対象の書類画像ファイルを選択します。

 

図2 ファイル選択ダイアログ

 

STEP3.
ファイル選択後、ファイル名がダイアログ上に表示され、認識処理実行ボタンが押下できるように(アクティブ状態に)なります。

 

図3 ファイル選択後のメイン画面

 

STEP4.
手書き数字の認識処理実行ボタンを押下すると、認識処理が実行され、認識結果表示欄に結果が表示されます。

 

図4 手書き数字認識実行後のメイン画面

おわりに

今回は、以前行なった「手書き書類中の数字の認識」の課題解決と、アプリをGUI化したことについてご紹介しました。
今後は、引き続き手書き書類における文字認識に関して、画像処理技術やAIを中心とした技術習得を行なっていきたいと思います。

  • 当ページの人物画像はNIGAOE MAKERで作成しました。
一覧に戻る
ゆりちゃん

技術開発推進部ゆりちゃんからのお願い顔マークを押して、技術ブログの
感想をお聞かせください^^