KMNIST「くずし文字」練習器を作ってみるツイートシェアはてブGoogle+Pocket今回は、KMNIST日本語くずし文字データセットを使って、「くずし文字」を書く練習をするための練習器を作ってみます。皆さん、あけましておめでとうございます。今年もよろしくお願い致します。過日、人文学オープンデータ共同利用センターが発表した、KMNISTという日本語くずし文字データセットを使って、KerasのVAEで遊んでみました。その後、思ったのは、日本人であれば、日本語のくずし文字が読めるだけではなく、くずし文字を書くことも教養として必要ではないかということです。あれは、そのための練習器があっても良いのではないかと考えたわけです(笑)。いうことで、今回は、KMNIST日本語くずし文字データセットを使って、「くずし文字」を書く練習をするための練習器を作ってみます。くずし文字をCNNに学習させますこれが、KMNISTくずし文字データセットです。ひらがなのうち「お、き、す、つ、な、は、ま、や、れ、を」10文字を採用しています。データセットの仕様は、MNIST互換です。ダウンロードしてみましょう。GithubからフォルダーをCloneするかDownloadZIPします。動かすとデータセットを簡単にダウンロード出来ます。動かした時の画面です。こんな風に、数字を選択するだけで好みのデータセットをダウンロードできます。フォルダーを作って保管します。weightsopen('k_mnist_cnn_model.json','w').write(model.to_json())model.save_weights('k_mnist_cnn_weights.h5')CNNでKMNISTを学習するコードです。追加したのは以下2つ。学習したモデルと重みファイルを保存する部分です。適当なフォルダーに保存し、実行します。畳み込みが2段+全結合2段のシンプルなCNNです。同じフォルダーに保存されました。事前にインストールします。port=8080)ブラウザを通じて手書き文字を読み込み、判定結果をブラウザに返すコードです。表示させて、手書き文字画像を読み込み、28×28のグレースケールに変換します。その後、学習モデルと重みファイルを読み込んで、モデルをコンパイルします。CNNに判定させます。判定結果は「0〜9」の数字なので、リストから文字を選んでブラウザに返します。先程のフォルダーに保管します。'、です';})}</script></body></html>手書き文字を画像読み取って、判定結果を表示するHTMLコードです。以下に、表示画面を元にコードの動きを説明します。黒字のキャンバスは文字を書き込むためのもので、キャンバスのエリアでマウスが押されたら、マウスの動きを読み取って白い線で描画します。character」ボタンで描画した画像をサーバーへ送信し、サーバーから返って来た判定結果をボタンの下に表示します。いう名前で先程のフォルダーに保管します。フォルダーの中は、こんな感じになったと思います。コードを実行すると、こんな表示が出ます。接続すると練習器が動きます。くずし文字には、色々なバリエーションがあるわけですが、今回は上記の例を練習してみます。「お」のくずし文字を書いてみました。判定が「お、です」と返って来ていますので、合格です。次に、「き」のくずし文字を書いています。これは2回目で判定が「き、です」と返って来て、合格!これは、「す」のくずし文字です。「す」は結構難しくて、「つ」と良く間違えられてしまいます。4回目でやっと合格が貰えました。これは、「な」のくずし文字です。これは一発合格でした!いやー、面白いです。日本語のくずし文字を書くことを習得したいというニーズがあるなら、ディープラーニングで結構実用的なものが作れそうな気がします。人間は学習する時に、正解率が70%くらいだと一番やる気になると言われているので、習熟度に応じて、最初は簡単なものから、徐々に難しいくずし文字にトライさせると、ボケ防止にもなって良いかも。習得後は、古文書がスラスラ読める様になったりしたら、嬉しいですよね。さんが行ったセミナーの内容を参考にさせて頂きました。感謝です!では、また。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。Conv1Dで心電図の不整脈を検出するRECOMMENDこちらの記事も人気です。一目惚れして、ディープラーニングを始めました。初心者の試行錯誤をブログにしています。