torazaemon2016’s blog

手書き文字認識メモ開発

手書き文字認識日記

手で自分の文字で日記を書きたい人に向けて

キーボードで記録を残す日記を書くのではなく、
そのときの気持ちも含められる「手書き文字」で日記を残したいと思っている人に。

 

毎年年末になると、手帳がそれこそ星の数ほど出ている。

本当に使い勝手が千差万別で、好みにあう形、レイアウト、配置、月別、週別、毎日などなど、デザインがさまざまにある。

 

PCやスマフォが普段使いになっている現代、PCで日記をつける人もいるけど、キーボードで文章を入力するということが、自分的な日記に合わない。

 

手書きの文字で日記を書きたいと思っていても、そんなアプリはなかなかなく、仮に手書きで絵のようにPCで描いて保存しても、それは紙の日記から進化していない。

 

そこで、タブレットPCで手書きの文字で書いたものがデジタルの文字として利用できる日記帳を作成した。

文字認識エンジンを使って、テキストデータになることで

  • Obsidianと連携することで、画像入りのファイルのリンク付けや、テキストデータからの検索も可能です。
  • .md として保存します。
  • 描いた文字や背景画像は、Markdawnのリンクになっているので、認識された文字と一緒にobsidianで表示されます。

 

1日1ページとして、スクロール機能により Landscape(横)の4:3のPCの画面で2画面分=A4縦1枚相当になったかと思います。

  • 手書きの文字で日記が残せること かつ それがデジタルデータとして活用できること
  • 昨日今日と一覧できること
  • 週でも表示できる
  • PCでは、2,4,8とかでの表示がやりやすいため、1週間を8コマとして
    週の最初にWeek??を付けた。
  • 背景に画像を1つ入れることで、その日の印象を残せる。

など、利用してみて下さい。

HWRDiary(HandWritingRecognitionDiary)


HWRDiary(HandWritingRecognitionDiary)のページです。

Windows Storeにて「手書き文字認識日記」改め「HWRdiary」という名前です。

手書きで日記を書きたい人へ」です。

1カ月表示

1週間表示

 

ペンで手描きで日記を書くと、文字をテキスト認識します


apps.microsoft.com

 

ペンと紙の世界を『キーボードなしSurface』のようなタブレットPCで実現する、手書き文字認識(HWR (Hand Writing Recognition))シリーズの1つです。

  • タッチパネルにStylusペンを用いて文字を手書きで書く環境を想定しています。
  • 利用する際には、WindowsOSの「設定」「時刻と言語」「言語(Windows11では言語と地域)」の設定において、各言語でのオプション「手書き」がインストールされていることが必要です。
  • 日本語以外にも、中国語や英語なども、手書きライブラリがインストールされていれば、利用可能です。
  • 初めて起動したときに、日記ファイルを保存するフォルダを指定します。
    「フォルダ作成ボタン」を押してください。HWRdiaryというフォルダがPicturesフォルダに作成されます。

更新

  • 2024/03/20 Ver.5.0.1
    • 画像の位置指定やリサイズを指で動かすことができるようになりました。
  • 2024/02/07 Ver.4.0.0
    全面的に内部設計を見直し、作成し直しました。
    ・メモリを多く使わないよう、頻度の低い機能の削除や画像サイズなどを制限。
    ・ファイル読み込み・書き込みの方法を全面的に変更しました。
    ・拡張子は .md で保存するをデフォルトにしました。
    ・ペンが持つ消しゴム機能が有効です。描いている途中の文字を消して、その場で追記しても、途中に挿入されて認識していきます。
    ・上部の消しゴムボタンを押すことで、確定後の文字も、普通に消せるようにしました。ただし認識したテキストデータとは連携していませんので、テキストデータは変化しません。
    ・4つの編集ボタン(Erase/BS、確定/Tab、SPACE、Enter)は、インクで描いているときはInk文字に、描いている文字がない場合は確定テキストデータに対して働きます。
    ・確定テキストデータのウィンドウは、移動させることが可能です。
  • (2024/01/09 Ver.3.2.4 (ストアReject)
    10月か11月ぐらいのWindows Updateしてから起動しない場合が多くなり、メモリ消費量が多いため、8GBのPCでもcrashするようになったのではないかと修正したが、store申請が通らず)
  • 2023/04/07 Ver.3.0.3
    保存先にネットワークドライブを指定したり、WIndows10マシンで起動した場合Crashする場合があることを修正しました。
  • 2023/03/30 Ver.3.0.0
    10年日記になるよう、2023-2033年が扱えるように拡張しました。
    背景に画像の大きさを大中小で入れれるようにしました。これにより視覚的な日記で印象的に残せるようになりました。
  • 2023/02/07 Ver.2.8.2
    多言語における認識方式を変更しました。
    背景のデザインを選べるようにしました。「なし」の場合、背景画像を工夫することで、さまざまなデザインの日記帳(手帳)にすることが可能になりました。
    プログラムを見直し、不要な部分やcrashしやすい部分を修正しました
  • 2023/01/11 Ver.2.6.0
    消しゴムツールの動作を変更して、普通に消せるようにしました。
    英語での消しゴム、なげなわツールの動きを修正しました。
  • 2023/01/07 Ver.2.5.1
    背景のpng画像(06:00-24:00の時刻入り)を追加と、storeの説明文に背景画像のことを追加しただけで、プログラム自体はほぼ変わっていません。
  • 2023/01/06 Ver.2.5.1
    投げ縄ツールとCut&Paste機能により、利便性が格段に向上しました。
    消しゴムも使いやすくしました(赤い枠内(書いている最中か投げ縄で選択した領域のみ作用します))
    背景を12か月分設定してあるので、毎月違う背景にすることができます。
  • 2022/12/20 Ver.1.2.0 Store公開
    一覧モードと編集モードの移行の際に、書いたページが消える Bug Fixを行いました。
    起動時のライセンス表示のメッセージを修正しました。
  • 2022/12/17 ver1.1.2
    1年分すべて読み込んでいたためメモリを大量に消費して、動作不安定でした。
    1か月分(+前後の週)のみ読み込む形に変更して、表示を月毎に分けた結果、安定しました。
  • 2022/12/16 Ver.1.0.25 初版

プライバシーポリシー

torazaemon2016は、このアプリによって、お客様の個人情報ならびにプライバシーにかかわる情報を収集しません。

Application privacy policy

This application does not collect or publish any personal information.

サポート

一番下にあるコメント欄をご利用いただくか、

torazaemon16 at outlook.com (at を@に変えてください)までご連絡ください。

HWRMマニュアル:設定


各種設定

設定画面

各種初期設定です。上から順に

  • 書いたメモを保存するフォルダを指定します。(初回起動時にこの画面になります。ここでフォルダを必ず設定してください)
  • 背景にある罫線の間隔を指定できます。(書くときの目安としての表示で、画像として保存はされません)
  • 自動認識の時間は、ペンが画面から離れての経過時間となります。0.1秒から15秒の間で設定可能です。ただし1秒未満にした場合、次の筆を書くよりも先に認識されてしまうため、文字がバラバラになり実用性はありません。
  • テキストや確定ボタンの表示位置は、左下側と右下側、表示しないが選択できます。右手でペンで字を書いて、左手で確定ボタンを押すと想定していましたが、改行などがうまく機能した場合、あまり使うことはないかもしれません。
    また、左利き用として用意していたものなのですが、好みで変えられたほうがいいとして、OSのシステム設定でのペンの左手右手と独立して指定できるようにしました。
  • 指を使って文字を書けるかは、ペンがなくても使えるようにするものですが、ONにすると、ペンを使った際に、手のひらで書いてしまう場合があります。
  • 認識中の表示。認識中に赤や緑の箱で認識領域が表示されます。もとはデバッグ用の表示でしたが、面白いので残してあります。不要な方は出ないようにしてください。
  • App名、バージョン、ライセンスについて表示

HWRMマニュアル:保存

保存

 

「保存」ボタンを押すと、画面中央に緑の小さなプログレスリングが回転します。

緑の丸が回転しているときは、保存されているときと思ってみてください。

(保存ボタンの横のテキストがファイル名になります)

 

なお、一覧モードボタンなど、入力画面から遷移する際に、自動で保存するようになっているはずなので、保存ボタンを押さなければならないことは少ないです。

 

メモは、保存用フォルダに、インク画像としての .gif画像ファイル、テキストの.txtファイルとして保存されます。

新しいページとして開いた瞬間の日時がファイル名となって2つのファイルが組として存在します。

万が一、txtファイルがない場合、アプリからエラーメッセージとして出る場合があります。

その時は、そのメモ(たいていはなにも書いてない白紙)に追記し保存することで、txtファイルが生成されますので、エラーは消えることになります。

もし、それでもエラーの場合は、保存フォルダをWindowsエクスプローラーで見て、「名前順」に「大きなアイコン」で表示させると、2つ組でない並びなどが見えてくると思いますので、削除などの対応を行ってください。

たまに、ファイルがうまく読み込まれなくなる時があります。(検索結果に出るはずが出てこない(たとえば2022で検索すればすべて出るはずなのにおかしいと感じる場合)

このときは、保存フォルダ内のgif,txtファイルの対応やうまく読み込めないファイルが悪さしている場合があるみたいです。

そういうときは、一度ファイルを別なフォルダに移動させて、メモを空にしてみて、少しずつ戻すなどしてみてください。

また、ノートパソコンのローバッテリ状態のときにうまくフォルダ内をサーチしないみたいなど、UWP?でのはまりを経験した時もあります。

 

実は、txtファイルには、ヘッダーとして、作成日付や更新日付、TAGやインク画像のファイルを記載するようにしているます。

特に画像ファイルはMarkdown形式で記載していますので、txtの拡張子をmd等に変更して、Markdown対応のエディタで開けば、画像と同時にテキストを見ることもできるかと思います。

特にObsidianなどに全メモファイルを食わせれば、Obsidianで検索することもできるので、古いメモも消さずにObsidianに渡すようにすれば、このアプリの使い勝手がもっと活用できるかと思います。

HWRMマニュアル:検索

検索方法

検索画面

 

一覧モード(5x5,Listなど)において検索ボタンを押すと、入力画面に遷移してきます。

入力画面で「検索」ボタンが青くなって検索待ち状態になります。

 

キーワードを書いて認識させて、青い「検索」ボタンを押すと、画面中央に青い丸のプログレスリングが大きく回転し、検索中を示します。

検索が完了すると、5x5の一覧モードに、更新日付の新しいものが左上から古くなる順に表示されていきます。(ファイル名の順ではありません)

ボタンが青い時は、検索がスタートしていませんので、押し忘れに注意してください。

 

また、「TAG」「★」で検索させることもできます。

現在のバージョンでは、キーワード、TAG、★の「どれか1つ」でのみ検索となります。(AND検索を行うようにはなっていません)

 

キーワードの検索では、全角半角、大文字小文字、ひらがなカタカタを区別なしで検索してくれているはずです。濁点などもないとして検索しているようで、「だ」は「た」でも検索されます。

プログラムで

System.Globalization.CompareInfo coinfo = System.Globalization.CultureInfo.CurrentCulture.CompareInfo;

var pos = coinfo.IndexOf(text, keyword,
                            CompareOptions.IgnoreNonSpace |
                            CompareOptions.IgnoreKanaType |
                            CompareOptions.IgnoreCase);

で簡単に検索している結果です。

 

 

 

HWRMマニュアル:一覧画面

5x5の一覧モード

画像をクリックすることで、そのページを選択して入力画面に遷移します。

メモが多くある場合、上下にスクロールします。

このモードのとき、メモを削除することができます。

「削除」ボタンを押すと、選択状態になります(ボタンは青くなります)ので、消したいメモをタップし複数選んで(赤になります)、最後にもう一度「削除」ボタンを押すと、選ばれたメモが削除されます。

Listモード

テキストを中心に表示するモードです。

左欄に上から「ファイル名」「★」「TAG」「作成日付」「更新日付」で、更新日時は更新のたびに追加されていきます。

真ん中は手書きのインク画像。

右欄はテキストです。右欄は文章がたくさんある場合、右欄だけで上下スクロールする場合があります。

左欄か、画像欄をクリックすることで、そのメモを選択して入力画面に遷移します。(右欄はスクロールの関係で遷移にはなりません)

 

HWRMマニュアル:入力画面

入力画面

入力画面

ペンで書くと、リアルタイムに文字認識され、テキストになっていきます。

 

文字は「きれい」に書くとかなり正確に認識されます。

筆順も重要で、「正しい筆順」で書くと認識率が向上します。

認識領域表示ONのとき、日本語や中国語の場合は、文として認識されていく様子が見えるかと思います。

英語や韓国語の場合は、単語単語として認識されていくようです。

 

記号・アルファベットは、認識エンジンが「日本語」であるため、誤認識されやすいです。

記号については、単体だけでは、日本語としますので、認識はうまくいかない場合がありますが、数式などは「1+2=3」と全体で書くと、認識率が向上します。

 

多少崩れた走り書きでも、文字単体では判別が難しいが単語として認識できそうな場合は、後半の文字になった場合でも、あとで前の文字の認識が変わり正しく認識する場合もありますので、1文字ではなく単語・文章レベルで書いてみるようにしてみてください。

 

句読点に関しては、文章で入力なら文末での「。」や、文字と文字の間の「、」は比較的正しく認識されます。単体のみで「、」を認識させるのは困難です。

 

消しゴムツールなどで消したあと、その場所に書こうとしたり、筆記が進んだあと、前の文字に戻って1筆追加しても、その文字への追加とみなされず、新しい文字が書かれたとして、文の最後に追加されていきますので、ご注意ください。

 

アルファベットについては、認識エンジンを「English」に変更することで、それ用にすることもできますが、別途OS側での英語環境のインストール等が必要になります。

また、タスクバーの右下のIMEの選択(キーボードレイアウト)で日本語から「ENG」に切り替えてください。

 

  • 「確定」ボタン

認識中の文字列が確定します。

左下(ないし右下(「設定」で変更可能))にある「確定」ボタンを押すと、認識したテキストを確定します。

確定されたら、左上にあるテキスト領域に格納されていきます。

確定ボタンを押さなくても、ペンが画面から離れて時間が経過したら、自動確定します。(時間は「設定」にて変更可能)

また、書いている領域から改段したりや、左側に大きく移動したら、ブロックが変わったと判断して、それまでの領域が確定します。

 

  • 「一筆戻す」(1筆消す)ボタン

1筆消します。連打すればその分戻ります。

  • 「消す」(1行消す)ボタン

現在書いている認識中のものをすべて消します。すぐに全部消えるのでご注意ください。

(今後のupdateで「確認のダイアログ」を出すか検討)

 

  • 「文字編集」ボタン

    ペンのインクモードから、左上のテキスト領域を編集可能なモードに移行します。

    テキスト領域は、編集可能になります。

    キーボードから入力が可能になりますので、テキストを追加修正することが可能になります。

    この文字編集モードに切り替わると、「BS」「SPACE」「ENTER」ボタンが出現しますので、簡易な編集がキーボードなしでも可能です。

    (Surface Goなど小型タブレットPCをキーボードなしでメモ帳のように使う目的です)

  • 「ペン」の選択

色と太さが選択できます。

変更した太さは、新しいページを続けている間は継続しますが、終了して再起動したり、一覧モードに移動したあとなどは、「設定」で定めたデフォルト値になります。

ペンでの選択

万年筆風ペンの追加(11/28)