顔認証&ダッシュボード勤怠管理

https://github.com/tmyhh1043/hackathon

Django

Python

CSS

JavaScript

HTML

顔認証とダッシュボードでスマートな勤怠管理を実現!

hiro

jdseudhf5tk

7p4a0pa9k9

adms

MatsuiD

推しアイデア

顔認証により手間の少ない勤怠管理を実現! さらにAIが勤怠履歴に応じてメッセージを生成!

作った背景

研究室の勤怠管理システムを作成したかった

推し技術

・顔認証によるユーザ識別 ・ダッシュボードによる勤怠履歴のグラフ化

プロジェクト詳細

作品概要

📊研究室向け顔認証勤怠管理システム

作成背景

所属研究室が本年度から、勤怠管理制度を導入しました。 当初は紙媒体での運用でしたが、情報学部に所属する学生として自らの専門知識を生かした勤怠管理システムの開発に挑戦したいと思いました。 また、画像処理技術や機械学習を専門とする研究室の特色を活かして、出退勤時に顔認証機能でユーザを識別することで利便性を向上させることにも取り組みました。

📱画面紹介

トップ画面

出勤退勤ボタンを押すこと出退勤時刻を記録することができます。今日の気温と天気を表示し、背景には天気に対応した写真が表示されます。 また、出勤中のユーザもこの画面で確認することができます。

ハンバーガーボタン

トップ画面の左上にあるハンバーガーボタンをクリックすることでユーザの勤怠記録、管理者画面、ダッシュボード、出勤時間ランキングを確認することができます。

ログイン画面

この画面でユーザの顔認証を行います。 左上にあるボタンでトップ画面に戻れます。

出勤記録

過去の出退勤時刻を記録した画面です。

ダッシュボード

ユーザの勤怠時間をグラフ化したものです。

ランキング

1週間ごとで出勤している時間のランキングです。

工夫ポイント

UI

トップ画面に現在の気温と天気情報を表示することで、退勤時に天候を確認でき、傘の忘れ物を防止する実用的な機能を加えました。 また、画面右側に「現在出勤中のユーザ」パネルを設置したことで、研究室に現在誰がいるのかを一目で把握できるようにしました。

ダッシュボード

紙媒体ではできないユーザの出退勤記録からグラフを作成しました。

顔認証システム

今回ユーザ識別に顔認証システムを使用しました。モデルの学習に使用する画像とカメラで認識した画像は、予測が周りの環境に影響されないように、配布されているfacecascadeモデルを使用し、顔の範囲のみを切り抜き使用しました。モデルについてはオンライン上で配布される顔認識モデルでは推論精度が30秒程度であったので、モデルを作成し自環境で学習を行いました。 このシステムは0.5秒ごとに顔認証を行い、連続3回の認証を経てからユーザを識別する仕組みを導入することで、ユーザの誤認識を効果的に軽減することができました。

異常検知システム

個人の出勤時間、直近1週間の勤務時間平均と分散、昨日9時間働いたか、チーム全体の勤務平均時間と分散を基に、通常かさぼり気味か頑張りすぎかをAIが判別して生成AIが関西弁でメッセージを返してくれます。

個人と全体の在籍時間の平均値を基準とした分散を表す統計指標であるz-scoreを算出し、グラフから上位10%を頑張りすぎ、下位10%をさぼり気味にクラス分けしました。学習モデルにはXgboostというモデルを使用し、3クラス分類をしました。

苦労した点

今回5人チームでの開発を行ったが、全員チーム開発経験がなかったため、前半は手探りでの作業が多くなった。 画像認識で既存モデルを使用すると認証に30秒程度かかるため、一からモデル構築するのに精度の担保が難しかった。

使用技術

  • フロントエンド: HTML、CSS、Javascript
  • バックエンド: Python
  • データベース: SQLite
  • 顔認証: OpenCV、pytorch
  • API連携: 気象庁API、Weather API、Google Gemini API

AI活用法

  • ChatGPTとCopilotによるコーデリング補助とエラー解消、アイデア出し、勤怠データのcsv変換
  • bolt.newを使ったフロントエンドの作成
  • 機械学習の導入

hiro

@tmyhh1106