推しアイデア
顔認証により手間の少ない勤怠管理を実現! さらにAIが勤怠履歴に応じてメッセージを生成!
―
顔認証により手間の少ない勤怠管理を実現! さらにAIが勤怠履歴に応じてメッセージを生成!
研究室の勤怠管理システムを作成したかった
・顔認証によるユーザ識別 ・ダッシュボードによる勤怠履歴のグラフ化
所属研究室が本年度から、勤怠管理制度を導入しました。 当初は紙媒体での運用でしたが、情報学部に所属する学生として自らの専門知識を生かした勤怠管理システムの開発に挑戦したいと思いました。 また、画像処理技術や機械学習を専門とする研究室の特色を活かして、出退勤時に顔認証機能でユーザを識別することで利便性を向上させることにも取り組みました。
出勤退勤ボタンを押すこと出退勤時刻を記録することができます。今日の気温と天気を表示し、背景には天気に対応した写真が表示されます。 また、出勤中のユーザもこの画面で確認することができます。
トップ画面の左上にあるハンバーガーボタンをクリックすることでユーザの勤怠記録、管理者画面、ダッシュボード、出勤時間ランキングを確認することができます。
この画面でユーザの顔認証を行います。 左上にあるボタンでトップ画面に戻れます。
過去の出退勤時刻を記録した画面です。
ユーザの勤怠時間をグラフ化したものです。
トップ画面に現在の気温と天気情報を表示することで、退勤時に天候を確認でき、傘の忘れ物を防止する実用的な機能を加えました。 また、画面右側に「現在出勤中のユーザ」パネルを設置したことで、研究室に現在誰がいるのかを一目で把握できるようにしました。
紙媒体ではできないユーザの出退勤記録からグラフを作成しました。
今回ユーザ識別に顔認証システムを使用しました。モデルの学習に使用する画像とカメラで認識した画像は、予測が周りの環境に影響されないように、配布されているfacecascadeモデルを使用し、顔の範囲のみを切り抜き使用しました。モデルについてはオンライン上で配布される顔認識モデルでは推論精度が30秒程度であったので、モデルを作成し自環境で学習を行いました。 このシステムは0.5秒ごとに顔認証を行い、連続3回の認証を経てからユーザを識別する仕組みを導入することで、ユーザの誤認識を効果的に軽減することができました。
個人の出勤時間、直近1週間の勤務時間平均と分散、昨日9時間働いたか、チーム全体の勤務平均時間と分散を基に、通常かさぼり気味か頑張りすぎかをAIが判別して生成AIが関西弁でメッセージを返してくれます。
個人と全体の在籍時間の平均値を基準とした分散を表す統計指標であるz-scoreを算出し、グラフから上位10%を頑張りすぎ、下位10%をさぼり気味にクラス分けしました。学習モデルにはXgboostというモデルを使用し、3クラス分類をしました。
今回5人チームでの開発を行ったが、全員チーム開発経験がなかったため、前半は手探りでの作業が多くなった。 画像認識で既存モデルを使用すると認証に30秒程度かかるため、一からモデル構築するのに精度の担保が難しかった。