HOME >> Pythonをさわってみよう > 手書き数字の自動認識 実験してみました
機械学習の実感をつかむため、教本のChapter5 「手書きの文字を認識しよう」に挑戦し、手書き数字の自動認識に取り組んでいます。先回は、前処理や学習と予測についてまとめましたが、実際の認識実験を実施しましたので、その結果を報告します
■ 手書き数字の自動認識のコマンド
処理の手順は先回の報告と同じコマンドを使用するのですが、不要な部分は削除しました。教本では、内容が理解できるように処理の各ステップ毎にその結果を表示しています。従って実際に使用する場合には、このような表示コマンドは省略できますので、必要なコマンドだけにして実施しました。
.
.
■ 実験方法
手書きの数字は、右の写真に示すようにA4のルーズリーズ上に書きました。これをカメラで撮影し、各文字毎に画像を切り出して JPEG 形式の個別のファイルにしました。
画像切り出しに使用した画像編集ソフトは、いつも使用している Macromedia の Fireworks MX2004 です。
なお、右の写真で分かるように、Bタイプの”0”を忘れていましたね。
そして、これらの画像ファイルを上記に示したプログラムを使って指定し、認識結果を一つずつ出していきました。
■ 実験結果
各画像の認識結果を下記にまとめます。なお、ここで表示している文字画像は、この表に収まるように 50×50 ピクセルに縮小しています。そして、画像の傍に記入した数字が認識結果の数値です。さらにその結果が誤回答の場合は欄を橙色にしています。
数字 | Aタイプ | Bタイプ | Dタイプ | Cタイプ | Mタイプ |
---|---|---|---|---|---|
内容 | 手書き文字 約500x500 |
手書き文字 約500x500 |
手書き文字 約500x500 |
手書き文字 約350x350 |
パソコン文字 50x50 |
大きくて細い字 | 大きくて太いかすれた字 | Bタイプのコントラストを調整 | 小さい字 | MSPゴジック太字60ピクセル | |
0 | 0 | *** | *** | 0 | 0 |
1 | 2 | 7 | 2 | 2 | 3 |
2 | 2 | 4 | 2 | 2 | 2 |
3 | 3 | 7 | 3 | 3 | 3 |
4 | 4 | 7 | 1 | 4 | 4 |
5 | 5 | 4 | 4 | 5 | 5 |
6 | 6 | 6 | 6 | 4 | 6 |
7 | 7 | 5 | 7 | 7 | 7 |
8 | 3 | 3 | 8 | 3 | 4 |
9 | 7 | 7 | 7 | 8 | 0 |
正解 | 7 |
1 |
5 |
6 |
7 |
誤回答 | 3 |
8 |
4 |
4 |
3 |
認識率 | 70% |
11% |
56% |
60% |
70% |
■ まとめ
.
期待していたのに、ガッカリしてしまった結果となりました。その理由(?)を考えてみたのですが、
ネットでも同じように、自分の手書き文字を認識されたサイトを見つけましたが、やはり不合格のようでした。
*****************************************************
郵便番号の自動読み取りシステムや、文字認識ソフトでは、相当な高度の認識アルゴリズムを使って判断しているものと推察します。