タイムカードをAIで読み取ると、どこで間違うのか

2026-11-03

タイムカードをAIで読み取ると、どこで間違うのか

タイムカードの写真をAIに読ませて、Excelにしたい。そういう相談が来る。そのうちの一件には、試してみたけれどうまくいかなかった、と書かれていた。手作業のまま、紙の計算からExcel入力、給与ソフトへの入力まで続いている、と。

読み取りが外れる話は「AIの精度がまだ低い」でまとめられがちだ。ただ、実際に通してみると、外れ方には型がある。先日、1つの店舗ぶんのタイムカード4枚を、うちで動かしている読み取りに通して、写真と1か所ずつ突き合わせた。その結果と、職場の側でできることを書く。

1. 字そのもので落ちる

まず、字が読めない。癖字、薄い打刻、重なり。この3つで落ちる。

薄いのは打刻機のインクが弱っているとき、重なりは同じマスに2回打ってしまったときに起きる。癖字は手書きの補記で出る。打刻を忘れた日に、店長や本人が時刻を手で書き足すことがある。この手書きが曲者だ。

そして、名前の誤読が多い。数字なら候補が10個しかないが、名前はそうならない。1文字違えば別人になる。実際に通した4枚では、氏名の欄に所属の名前が入っていた。社員番号は空のまま。この状態だと、4人ぶんのカードを読んでも、どれが誰のものか分からない。

2. 4枚を通したら、98か所のうち7か所が違っていた

打刻の時刻は全部で98か所あった。そのうち7か所が違っていた。写真と1か所ずつ照らして数えた実測だ。

間違い方は4つに分かれた。

ひとつ、休憩の打刻の分。12:18を12:10、12:50を12:30と読んでいた。出勤と退勤だけの人と、休憩の出入りも打つ人がいて、後者の列で起きた。

ふたつ、手書きの補記を別の語として読む。打刻漏れを補った「16:00」と書き足した人の名前を、4か所とも別の単語に読んでいた。備考の欄に、書いた人の名前ではない言葉が出る。時刻は合っているのに、意味が変わる。

みっつ、手書きの退勤が空欄のまま落ちる。手で書き足した退勤時刻が2日ぶん読まれず、空欄になっていた。その2日は計算ができないので、月の合計が59時間のところ49時間になった。10時間の差だ。

よっつ、氏名の欄の問題。1で書いたものと同じ。

もう1つ、枚数の話がある。読ませた4枚は、月の後半しか写っていなかった。前半は裏面で、1人につき写真が2枚になる様式だった。片面だけ送ると、読み取りの側は「前半の面がありません」と出すが、この警告は分かりにくい位置に出る。両面ある様式だと気づかないまま、半月ぶんが抜けることがある。

3. 印が付く間違いと、付かない間違い

うちの読み取りは、同じ画像を2回読んで、結果が食い違った行に「要確認」の印を付ける。人が全部の行を見ずに済むように、印の付いた行だけ見る形にするためだ。

7か所のうち、印が付いたのは3か所だった。残りの4か所は、印が付かないまま間違っていた。理由は単純で、2回読んで2回とも同じ間違いをしたからだ。食い違わないので、印の条件に引っかからない。

つまり、精度が何パーセントという話より、間違いに印が付くかどうかで、現場の手間が決まる。印が付いていれば、そこだけ原本と照らせば済む。付かない間違いは、全部の行を見るしかない。

付かなかった4か所は、どれも休憩の打刻だった。手書きの補記も、印が付かないまま落ちていた。だから今は、休憩を4回打つ人の行と、手書きのある行は、印の有無に関係なく原本と照らしている。この2か所が分かっているだけで、見る量はかなり減る。

タイムカード4枚を読ませたときの間違いの出方。間違い方は休憩の打刻・手書きの補記・手書きの退勤・氏名の欄の4つに分かれ、打刻98か所のうち7か所が誤り、うち印が付いたのは3か所、付かなかったのが4か所
タイムカード4枚・打刻98か所を写真と1か所ずつ突き合わせた実測。氏名と手書きの語は、公開デモと同じ架空の表記に置き換えてある。

4. ここから先は、実測していない話

以下は、自分で測ったものではない。一般に起こるとされているものを並べる。2章・3章の数字とは別の扱いで読んでほしい。

感熱紙の退色。古いカードは文字が消えかけている。折れ目、汚れ、パンチ穴が数字に被る。押印がマスにかかる。斜めから撮ると台形に歪んで、行が1つズレて隣の日に入る。LINEやメールで送ると画像が圧縮されるが、薄い字から先に消える。写真で受け取る運用では、ここが効く。0と6、1と7、3と8の読み違い。コロンのない様式(1230のような書き方)。24時を超える表記(25:30)と、翌日に跨ぐ勤務。4回打刻の人と2回打刻の人が同じ紙に混ざっていて列がズレる。空いている行が「休み」なのか「打ち忘れ」なのか区別がつかない。訂正の二重線と、その上に書かれた数字。

このうちどれが自分の職場で起きているかは、1枚通してみれば分かる。全部が起きることはあまりない。

5. 丸めが間違いを隠すことがある

読み取りの間違いが、計算で消えることがある。

ある会社の決まりでは、出勤を30分単位で切り上げ、退勤を1時間単位で切り捨て、昼をまたぐ勤務は休憩1時間を引いていた。この数え方で4枚ぶん計算したところ、3枚は手書きの小計とすべて一致した。間違いが4か所あった枚も、一致した。12:18を12:10と読み違えても、30分単位に丸めれば同じ値に落ちるからだ。

合っているように見えて、途中の数字は違っている。この状態が一番たちが悪い。元の打刻を見ないまま合計だけ見ていると、気づく手がかりがない。

丸めの決まりは会社ごとに違う。切り上げか切り捨てか、何分単位か、休憩を自動で引くのか。自分のところの決まりを先に文字にしておかないと、合っているかどうかの判断そのものができない。

6. カードを読んでも出てこない数字

読み取りの話とは別に、カードに書かれていない数字がある。

遅刻と早退の回数と時間は、シフトの予定がないと出せない。何時に来る予定だったかが分からなければ、遅刻かどうかは決まらない。8時間を超えた分の扱い、所定の労働時間を超えた分の扱いも、就業規則を見ないと決まらない。有給は届から拾う。

これは精度の問題ではない。元の紙に無いものは、何回読んでも出てこない。給与ソフトに渡す数字を作るには、読み取りとは別に、この部分を決める作業が残る。

7. まとめて投げたときに崩れるもの

汎用のAIに、何枚もまとめて投げるやり方がある。1枚ずつなら読めるものが、枚数を増やすと崩れることがある。どの枚が誰のものか混ざる。出力が長くなると途中から端折る。枚数が増えると、返ってくる形が揺れる。

いちばんまずいのは、聞いていない集計まで一度にやってしまうことだ。月の合計が返ってくる。数字としては出ている。ただ、どの打刻から出た数字なのか辿れない。だから間違っていても気づけない。5章の話と同じことが、もっと見えない形で起きる。

うちの読み取りも、複数枚をまとめて処理している。そこは同じだ。1枚ずつにしているわけではない。

変えているのは3つある。同じ画像を2回読んで、食い違った行に印を付ける。月の合計をAIに出させない(読み取りはCSVの打刻までで、そこから先の計算は表計算の数式でやっている)。返すときに、計算した値だけでなく元の打刻の列も並べて残す。

それと、誰のカードかを機械に決めさせていない。番号と氏名の対応表を人からもらって当てる形にしている。ここはまだ作っている途中で、どうやって対応表を受け取るかを決めているところだ。

読み取りの精度も上げたい。実際に上げようともしている。ただ、4枚を通して分かったのは、精度を上げても印の付かない間違いは残る、ということだった。そこをどう扱うかの話になる。

8. 自分のところでできること

外に頼まなくても効くものから書く。

カードに氏名か社員番号を写す。写真を撮る前に、カードの並びと番号の対応表を1枚作っておく。これが一番効く。読み取りの側が人を間違える余地がなくなる。

両面ある様式なら、両面を撮る運用を決める。1人2枚で揃える。片面だけ届いた月は、その場で気づけるようにしておく。

手書きの補記は、時刻だけにする。名前を書くなら別の紙にまとめる。2章で書いた「名前が別の語に読まれる」はこれで避けられる。

休憩を4回打つ人を先に把握して、その行だけは原本と照らす。全部の行を見るより早い。

1回で確定しない。同じ画像を2回読ませて、違う結果が出た行だけ見る。手元のAIで試すときも、同じことができる。

送る経路を変える。圧縮の弱い方法で送る。薄い字から先に消えるので、撮り方よりここで差が出ることがある。

このうち2つか3つやるだけで、見る行はかなり減る。前に出勤簿で試したときは、人が全部の行を手で打っていた工程を、印の付いた行だけ見る形に変えて、確認が270行中159行から9行になった。これは出勤簿1種類・9名30日分の6画像・270行での数字で、今回のタイムカード4枚(98か所中7か所)とは別の計測だ。同じ条件で同じ結果になるとは言えない。

ついでに書くと、そのときの読み取りは、同じ画像を3回読ませて一致率が89〜99%で揺れた。回によって変わる。だから1回の結果を確定扱いにしない前提で組んでいる。

9. 自分では埋めにくいところ

残るものを正直に書く。

印の付かない間違いを拾うこと。2回とも同じように読み違える型と、手書きの行。ここは読み取りの側に手を入れないと検知できない。

所属と氏名が混ざる欄を分けること。

会社の決まりどおりの丸めと休憩の控除を計算して、元の打刻と並べて見せること。5章で書いたとおり、合計だけだと間違いが隠れる。元の時刻を消さずに持っておく必要がある。

日ごとの小計から月の合計まで作って、給与ソフトに渡せる形で出すこと。

このあたりは、やろうとすると表計算の式では収まらなくなる。うちで受けているのはここで、勤怠OCRとして月額1,980円(1事業所・40人まで)、2,980円(複数事業所・合計100人まで)でやっている(いずれも税込)。読み取って、印を付けて、Excelとして出すところまでがこの中に入る。

出力の形を手元のExcelや給与ソフトに合わせ込む場合は、初回だけ別にいただく(11,000円から・税込)。毎月はかからない。標準のExcel・CSVのまま使うなら、ここはかからない。

他社がいくらかは書かない。見ていないので書けない。

読み取りは、人の確認を外す道具ではない

4枚を通して分かったのは、全部を機械に任せる形にはまだならない、ということだった。印の付かない間違いが残る。丸めで隠れる間違いもある。

できるのは、人が見る量を減らすところまでだ。98か所のうち、どこを見ればいいかが分かる形にする。それでも足りない月はある。

申し込む前に画面を触って確かめられるように、公開デモを置いてある。読み取りの結果に「人が直した痕跡」をそのまま残してあるので、どこまで自動で、どこから人の手なのかが見える。いまのところはこの形でやっている。半年後に書き直すかもしれない。