LoginSignup
7
8

More than 1 year has passed since last update.

画像認識での出退勤管理を「Teachable Machine」を使って、作ってみた。

Last updated at Posted at 2022-09-21

ご挨拶

こんにちは。先日初めて「LINE Bot」の記事を書き、Qiitaデビューを無事果たしました、
とある小売業で働くものです。
今回は、「Teachable Machine」と「Node-RED」を使った制作に挑戦しました。
まず、率直に感じたことは「機械学習」ってすごい!です。これを使えば、日々困っている
業務の問題も、解決へのアプローチの幅がぐっと広がるなぁと思いました!
早速、その試行錯誤の軌跡を記事にしましたので、読んでいただけたら幸いです。

「LINE Bot」の記事はこちら👇
https://qiita.com/kou-n/items/9e8a5870500c4209cb51

制作の意図

私の会社では、出退勤時に従業員カードを機械にスキャンすることで、出退勤時刻を記録してます。
その際、わざわざカードを出して、スキャンして・・・それを入店⇒出勤⇒退勤⇒退店と、
計4回、毎日・・・。
「あれ?これって、ちょっと面倒だなぁ」もっと楽に出来ないのか?と思いました。
機械学習で自分の顔を覚えさせて、出退勤スキャンが出来ればいいなぁと思ったので、
「Teachable Machine」を使って作ってみました。
(その後、Node-REDに連携して、管理もやってしまおう!と思ってそれも追加)

制作の注意点

①今回使用した画像は、サンプルです。(photoAC写真のフリー素材サイトに登録して入手)
②実際に出退勤スキャンの機械にカメラが付いていて、勤怠システム連携がされ、出退勤の記録が管理できればベストですが、今回は、「時間と従業員名を出力し、出退勤管理をスプレッドシートにする」というもので制作しました。

理想とする完成型

出退勤の機械にカメラが付いていて、機械学習させたAIによる顔認識⇒勤怠システムへ連携し、当日の出退勤を記録⇒共有のフォルダ内で同部署の従業員の出退勤を確認できる。
(今回はPCでのスキャンを想定)
そうすることで、結構多いカードのスキャン漏れも防げるし、わざわざカードを出して
スキャンする手間も省ける。また、上司が会議中などで直接退勤の挨拶が出来ない時などに、共有フォルダから上司が自分で部下が帰ったかなどを確認できるというメリットも付与。

使用したツール

Teachable Machine
Node-RED

完成図

★Teachable Machineでの顔認証
https://twitter.com/kou_n2405/status/1574335305649655808

★Node-RED
Teachable Machineノードで顔認証⇒日時を出力⇒Google Sheetsへ出力
https://twitter.com/kou_n2405/status/1574337798999773185

完成図.jpg
本来は、従業員名・日時がGoogle Sheetsへ、下に下に足されていくようなものを制作したかった。
しかし、今回は画像認識・日時出力はデバッグとして表示されたが、Google Sheetsへの書き出しまでは至らなかった。

制作の過程(プロセス)

①Teachable Machineで人物の画像を機械学習させる(従業員画像はサンプル)
image.png
②モデルをエクスポートして、URLをnote-redのTeachable Machineノードに入力
image.png
③changeノードを使って、「person:従業員A」が出力されるように設定
image.png

④Date/TimeFormatterノードを使って、日時が出力されるように設定
image.png

⑤顔認証のあと、氏名・日時がスプレッドシートに出力されるようにする。
image.png

試行錯誤の失敗例

最初はCSV出力を考えていたり、日時がうまく出力されなかったり、試行錯誤ありましたので、ここで少し失敗例を一部紹介。
①日時の出力がうまくいかなかった・・
image.png
②日時と従業員名は出力されたが、タイムスタンプとカメラノードが分かれていて、実用的ではない。
image.png

総括

今回制作した「顔認証勤怠管理フロー」は、日常業務の中で聞こえてきた何気ない上司の会話がきっかけになりました。
上司:「あれ?〇〇さんは?」
部下A:「先ほど帰りましたよ」
上司:「そっかぁー、なら明日でいいか」
会議か何かで席を外していた上司が、机に戻ってきた際に言われた内容ですが、その時従業員の出退勤をどこか共有で見れたら解決できるのでは?
そう考えて、顔認証による出退勤スキャン+出退勤情報の共有化を思いつきました。
「Node-REDでの顔認証から、日時と氏名を出力して、それをGoogle Sheetsに書き出す」という流れは構築できたものの、ノードの中身設定が中々うまくいかず、試行錯誤した結果、デバック出力することは出来ましたが、Google Sheetsに書き出すというところには至りませんでした。今回学んだ「Teachable Machine」「Node-RED」は、本当に一部の基本的なものでしたが、もっと知識を深めればさらに高度なものが制作できると思います。
今後もできるだけ多くの情報を取り入れていきたいと思います。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8