さて、今回のお題は無料AI-OCRを用いて、手書きで書かれた勤怠をデータ化してみた話(2021/10現在)。
Contents
この記事で得られる・できること
- AI JIMY OCRの使い方とその実力
- 9割程度の識字率なのでそのまま使うのは厳しい
- 識字率を少しでも上げる方法を紹介
インプットおよびアウトプットデータ
AI JIMYのメリット
- 10枚分のpdfデータなら無料で実現可能
- プログラムを書かずにOCRが可能(一般社員でもいける)
大きな問題点は2つ
- パソコンのスペックがかなり高性能である必要がある
- 端末の変更(パソコン購入時)が簡単にいかない
また、最終的には有料プランに移行する必要がでてくることが予想されます。
というのも無料版だと帳票の設定のエクスポート(コピー)ができません。
・・・まあ、別端末への移行作業に関しては高度なスキルも必要のないので、けちることもできなくはないですが。
手書きデータでも使えるAI JIMY OCR
今回利用するAI-OCR("AI JIMY OCR")は 7月より無料で使えるようになった。
有料AI-OCRは世の中にいっぱいあるが、無料で手書きにUI(ユーザーインターフェイス)対応したOCR(プログラミングスル場合は別)はほぼない。
その中無料利用できるAI JIMY OCRは中小企業にとっては神のような存在。
アプリとして完結しているので、プログラミングができなくても使えるのがすばらしい!!
また、手書き文字にも対応しているので、工場の勤怠管理等には抜群に使える。
一般的な事務を行うPCと比べて高いスペックが必要となる。
Surface pro4のCPU core i5(7300)、メモリ8GBでは作業の段階で落ちてしまう。
最新版のcore i7 とメモリ16GB程度のスペック程度がないとかなり厳しそう。
HP Pavilion Aero 13-be0000 スタンダードモデルを買ってみたので、こちらの動きもレポートしていく
AI JIMY OCRを実際に使ってみる
利用の際には会員登録が必要となる。
会員登録とソフトのインストールは難しいこともないので省略する。
①テンプレートを用意する
このOCRをするにあたり、テンプレートが必要になる。
ここではサンプルとして残業申請用紙を用意してみた。
作業は非常に簡単!
読み取りたい部分をひとづずつ範囲にしていくだけ。
読み取りたい情報に合わせて、文字か数字をチョイスしていく。
また、同じ項目は複製ができるので便利。(ただし、まとめて10個とか複製できないので表の作成とかは面倒)
なお、読み取りデータは数値に比べて文字の方がPCスペックを使用する。
PCスペックが低い場合はなるべく数値で読み取れるようにフォーマットを調整するといい感じになる。
難しい漢字等は識字率が結構高め、逆にいうと簡単な文字ほど識字率が下がる(例:1と/)。
アルファベットや数値なんかは識字率はいまいち(文字の種別を指定すれば識字率はあがりますが)。
その他として訂正線とかの識別等はうまくいきません。
②手書きされた紙をスキャナで取り込み、PDFを用意する
さきほど用意したテンプレートに手書きされた用紙を複数枚用意。
字が汚くて人でも判断できない?・・・・字が汚いのは仕様ですw
さて、気を取り直して実際の運用の通り、複合機から紙をスキャンする。
ここでは紙がずれないようにしっかり紙を整えてスキャンする。
また、解像度は400dpiにしてスキャン。
③スキャンされたデータをAI JIMY OCRに取り込んでCSVに吐き出す
それでは、AI JIMYでデータを読み取っていきます。
概ね枠のずれもなく、きれいに読み取っていけているようです。
サンプルの帳票(5枚)は1ページあたり項目数(数値のみ)が200もあるので、数分程度の時間がかかりました。
PCスペック次第で時間や読み取れる項目数がかなり変わってきます。
作成されたCSVデータは一ページの項目が1行にずらっと並ぶ(今回の場合は200項目)。
また、サンプルのように1ページ内に同一の項目(表のような場合)があるデータの場合はなんらかの処置をする必要があります。
・・・事例として今回のお題は失敗だったようですね。
AI-OCRの結果
手書きデータの8~9割くらいが正しく識字できた。
しかし、このまま使うには識字率が低すぎて使いにくい。
また、空白の欄に文字があると認識してしまっているなどの問題も。
この辺をうまく制御して精度を上げてやる必要があるという結論に。
ここでは識字率をあげることを目標にせず、チェックしやすくするためゴミデータを排除するVBA(エクセル)を組んで対応してみることに。
VBAで正答率を上げる(プログラミングが必要)
さて、今回用意した課題は残業申請についていろいろ仕様を考えていく。
項目も 1:00 のように書かれるため 左側の項目 最大8時間(残業時間が8時間ということはまずありえないが)
分の項目は00~59の文字が入力されることが予想される。
会社の運用によって書かれる文字はある程度制御できる(5分単位で申請とか・・・違法だがw)。
VBA(エクセルプログラミング)で上記を踏まえて結果を修正・削除してみたのがこちら(変更した箇所は色を変えてみた)。
ごみデータが消え、整合性のないデータの確認が簡単になった。
また、今回用意したフォーマットの特徴として、就業前の勤務時間(残業時間)と終業後の勤務時間と合計の勤務時間にわかれており、計算結果と読取結果の比較ができたことも正答率に貢献している。
根本的に識字率をあげる方法(プログラミング不要)
続いて紹介するのが、根本的に識字率をあげる方法である。
簡単な方法もあるので、実際にして効果を確かめてほしい。
- テンプレートの形を整える(中級)
- スキャンの位置がずれないようにする(初級)
1.テンプレートの形をかえる(中級編)
一番効果があるのはテンプレートを変えるパターン。
書くスペースが狭い場合は手描きスペースを大きくするのも有効(線が重なると識字率が下がるため)。
また、枠に余白をつけることも有効。
これで他の項目へのはみ出しも防げる。
また、項目と余白の明暗をつけることで他へのはみ出しも非常に防ぎやすくなる(人間の無意識をコントロール)。
実際にしてみたのがこちら。
ここまでやれば大概の人の文字は枠線(太線の枠)からはみ出しません。
それでも枠内におさまらない人は?・・・・それは知りませんw
この方法は社内の文章なら変更も可能だが、外部の文章は厳しいのが難点。
2.スキャンの位置がずれないようにする(初級編)
当たり前だが、PDFに印刷の際はなるべくずれないようにスキャンするようにする。
枚数が重なるとずれが生じるので、しっかり四隅を合わせてスキャンをしていくようする。
雑な性格の私には難しい仕事w
AI-JIMYは結局使えるのか?
データの入力としては使えるという結論に達しました。
特にプログラマーでない一般社員の方にはおすすめ!
上記のように文字の書き方やフォーマットの変更など様々な取り組みを行っていくことである程度の正答率になります。
また、OCRの特性上目視確認は100%必要になります。
よって、確認を含めて半分程度の時間でできるようになることを目標にしましょう。
インプットおよびアウトプットデータ
利用したデータ等はこちらになるので興味のある方は確認してみてください。