みらいテックラボ

音声・画像認識や機械学習など, 週末プログラマである管理人が興味のある技術の紹介や実際にトライしてみた様子などメモしていく.

TensorFlowで文字認識にチャレンジ(6)

今回も, 認識性能を改善するために, 前々回[1]記した1)のオンライン手書きデータの画像化/正規化を検討してみた.

これまでの学習/評価で使用してきた手書きデータは, オンライン手書き文字認識の前処理を施したデータから28×28dotの画像を生成したものであった.
前処理・特徴抽出処理としては, 以下を行っている.[2][3]
1) 同一座標点の除去
2) 変化点の抽出
3) 文字の外接枠が正方枠になるよう正規化

ただ, この場合画像化したデータを見ると, ストロークのガタツキが目立つ.

f:id:moonlight-aska:20160528225922p:plain
f:id:moonlight-aska:20160607235300p:plain

そこで, 今回はストロークのガタツキを低減するために, 画像化前の処理を一部変更した.
今回試した正規化は, 以下の2通り.

改良案
内容
1・同一座標点の除去
・変化点の抽出なし
・文字の幅/高さの大きい方を基準に文字データを拡大/縮小変換(無理な変形をしない)
2・同一座標点の除去
・変化点の抽出
・文字の重心を求め, 重心が文字中央になるようように文字データを拡大/縮小変換

変換例1:
f:id:moonlight-aska:20160618010019p:plain
f:id:moonlight-aska:20160618010220p:plain

変換例2:
f:id:moonlight-aska:20160705003345p:plain
f:id:moonlight-aska:20160705003407p:plain

[学習条件]

  • 対象文字:漢字2,965文字種(JIS第一水準)
  • 筆記スタイル:楷書
  • 学習データ:53,202サンプル
  • 学習回数:ミニバッチ(100サンプル)×35,000回
  • モデル構造:ベース[1]と同じ.

[認識条件]

  • 対象文字:漢字2,965文字種(JIS第一水準)
  • 筆記スタイル:楷書
  • 評価データ:11,762サンプル

[実験結果]

改良案1位累積(5位)
ベース [4] 88.31% 98.01%
1 82.13% 95.57%
2 90.13% 98.57%

実験結果からすると, 入力である画像データをどのように正規化するによっても, かなり性能差が生ずることが分かった.
しかし, 1位の認識性能を大幅に改善するにはもっと別の方法を検討する必要がありそうだ.

(注)
 評価データに学習データが含まれるなどの不備が見つかったので, 再度評価を行い, 認識結果など一部内容を修正しました. (2016/7/4)

----
[1] TensorFlowで文字認識にチャレンジ(4)
[2] Google OS実験室 ~Moonlight 明日香~:手書き文字認識にチャレンジ ~前処理~
[3] Google OS実験室 ~Moonlight 明日香~:手書き文字認識にチャレンジ ~特徴抽出~
[4] TensorFlowで文字認識にチャレンジ(3)






人工知能とは(監修:人工知能学会)

人工知能とは(監修:人工知能学会)


AI時代の勝者と敗者

AI時代の勝者と敗者