ADOCインターナショナル

2025-06-18

JEDIプログラム活動報告①:顔認証とストレスチェック機能を備えた勤怠管理システムの開発

はじめに

ADOC TECHブログ運営事務局のAkiです。
当社では、若手社員の早期育成プログラムとして、毎年「JEDIプログラム」を実施しています。

JEDIプログラムとは

「JEDI」とは、「Jumpstart」「Enhancement」「Development」「Innovation」の略で、早期に新たな技術やスキルを習得してエンジニアとしての能力を高めてほしい、創造性と革新力を養い新しいアイデアやソリューションを生み出す能力を育ててほしいという当社の想いを込めています。プログラム期間は約1年。当社の育成プログラムの中ではかなり長い時間をかけて行っています。

2024年度のプログラムは2024年5月にスタートし、入社2年目エンジニア2名、1年目エンジニア7名の計10名が参加(社歴はいずれもスタート時)。2年目エンジニアをチームリーダーとして、エキスパートエンジニアがサポーターにつき、2チームに分かれて取り組みました。
プログラム内容はその年によって多少変化しますが、今回は会社から提示された3つのテーマの中から関心の高いテーマを1つ選んで、必要なツールやシステムのアイデアについて検討、開発を行うというものです。2025年5月に成果報告会という形で、各チームが実際に開発したツールやシステムを披露しました。

ADOC TECHブログでは、2回に分けて各チームのチームリーダーが活動の模様をご紹介します。
今回はその1回目です。若手社員の奮闘をぜひご覧ください。

◆ ◆ ◆ ◆ ◆

    <会社から提示されたテーマ>

  • ChatGPTを活用して総務によくある問い合わせの回答や社内規則の確認用システムを構築
  • Amazon Rekognition Video を用いてカメラの映像を解析して特定の動作を検出する
  • 社内で作成した業務自動化・システム化などの資料やデータを収集し共有する仕組みづくり

◆ ◆ ◆ ◆ ◆

普段はエンタープライズ企業向けにAWSインフラ環境の運用保守業務を担当しているR.Kです。
今回は私が昨年5月から1年間参加した当社の若手社員早期育成プログラム「JEDIプログラム」での活動についてお話したいと思います。

取り組みテーマ

私たちのチームでは、会社に提示されたテーマとしては「Amazon Rekognition Video を用いてカメラの映像を解析して特定の動作を検出する」を選択しましたが、具体的な取り組みとして「社員の出退勤を顔認証で自動化し、表情を用いたストレスチェック機能を備えた勤怠管理システムの開発」をテーマに掲げました。

AWS(Amazon Web Services)が提供する画像認識サービス「Amazon Rekognition(以下、Rekognition)」を中心技術に据え、社員がカメラの前に立つだけで出勤・退勤を自動記録できるようにすると同時に、その際の表情情報からストレス状態を推定し、管理者に通知する機能の実装を目指しました。このシステムにより、打刻忘れや煩雑な操作の解消を図るとともに、社員のメンタルヘルスケアにも貢献できると考えました。単なる勤怠管理システムにとどまらず、ウェルビーイングの観点を取り入れた新しい形の社内システムを提案することが目的です。

今回私たちのチームがこのテーマに決めた理由は、勤怠管理システムで感じていた煩わしさがきっかけでした。
現在、当社ではPCまたはスマートフォンからWebサイトにアクセス・ログインをして、出勤・退勤のボタンを手動で押すタイプの勤怠管理システムを使用しています。一見シンプルなようでいて、実際には出勤直後や退勤間際の忙しさの中でつい打刻を忘れてしまうことも多く、私自身も何度もそのような経験をしてきました。

Rekognitionには顔認識機能だけでなく、画像から表情(喜び、悲しみ、怒りなど)を読み取る感情分析機能も備わっています。これらを勤怠管理に応用することで、私やチームメンバーが感じていた操作の手間を削減すると同時に、従業員の表情変化を通じたストレス可視化という、付加価値の高い機能を提供できるのではないかと考え、このテーマについて取り組んでいくことにしました。

実践で学ぶ試行錯誤の日々

プロジェクトの初期段階では、カメラで撮影した顔写真をAmazon S3に保存し、PythonプログラムでRekognitionを呼び出して顔認証を行い、結果を出力するというシンプルな構成で始めました。しかし、手動でプログラムを実行する必要があり、実運用を考えると煩雑でした。
そこで、AWSのEventBridge(時間を指定しプログラムを動かす)を活用し、一定の時間ごとに自動的に処理をトリガーできるように構成を変更しました。これにより、社員の出退勤データが入力されるタイミング(勤怠システム管理者の任意の時間に処理を動かせる 例:週1回や毎日19:00など)に合わせて処理を自動実行することが可能となり、実用的なシステム設計が実現できました。

設計面では主に私が構成を考案し、チームメンバーはそれぞれ、Pythonプログラムの開発、Rekognitionの精度向上のためのモデル学習、そして導入にかかるコスト試算などを担当。役割分担を明確にしながら、完成まで持っていくことができました。
月1,2回のミーティングで進捗を確認し、課題があれば早期に共有・解決する体制をとることで、スムーズに開発を進めることができたと感じています。

苦労も楽しさに!チームで挑んだAI画像学習の舞台裏

今回のプロジェクトで最も苦労したのは、Rekognitionによる顔認証の精度を高めるための学習用画像の準備です。
システムの要件上、登録された社員の顔と100%一致する形での認証を求められており、誤認識や認証漏れが許されない構成でした。したがって、AIの精度は非常に重要な要素であり、プロジェクトの成否を左右する鍵でもありました。

Rekognitionでは最低でも10枚以上の顔画像が必要とされていますが、精度を確保するためには、ただ枚数を満たすだけでは不十分です。
正面の顔だけでなく、異なる角度(斜め、横顔)、異なる表情(笑顔、無表情など)、さらには光の当たり方が違うシーン(屋内外、明暗)など、実際の運用を想定した多様なバリエーションを含んだデータセットを作成する必要がありました。この準備にはかなりの時間と手間がかかり、対象となる社員の協力を仰ぎながら、地道にデータ収集と精査を進めていきました。

特に苦労した点は、光の反射や顔の一部が影になるような環境下での画像が多く含まれると、認証精度が極端に落ちてしまうこと。そのため、画像の撮影条件にも細心の注意を払い、精度に影響を与えるノイズを可能な限り排除するよう心がけました。また、Rekognitionの学習結果に応じて、データセットの内容を都度見直すといった試行錯誤も繰り返しました。
その結果、プロトタイプ段階では、1人のメンバーを対象に、顔認証の精度を約80%まで向上させることができました。まだ完璧とは言えないまでも、限られた時間とリソースの中でこれだけの成果を出せたことは、自分たちの取り組みに対する大きな自信につながりました。

このプロセスの中で特に印象に残っているのは、チームメンバーが自主的に集まり、自然と「この画像では認識できないのでは?」「こういう角度の写真を追加してみたらどうか?」といった会話が飛び交っていた場面です。それぞれが知見を持ち寄り、議論を重ねながら「どうすれば精度が上がるのか?」という課題に真剣に取り組んでいく様子は、非常にポジティブな空気に包まれていました。
こうした共同作業が、まさにチーム開発の醍醐味であり、技術的な困難を乗り越えるうえでの大きな原動力となりました。

技術だけじゃない、JEDIプログラムで感じた「人としての成長」

今回のJEDIプログラムを通じて、私自身が最も大きく成長できたと感じているのは「主体性」と「チームとしての協働力」です。

普段の業務では、どうしてもベテランの上司が方針を決め、それに沿って若手が動くという構図が多いため、自分たちだけでゼロから企画し、設計し、実装し、検証するという一連の工程を完遂する機会は非常に貴重でした。

このプロジェクトでは、初めて顔を合わせるメンバーも多く、当初は「どのようにコミュニケーションを取れば良いか」「それぞれがどんなスキルを持っているのか」といった基本的なことから手探りで進める必要がありました。特に最初の数日は、会話がぎこちなく、役割の明確化にも時間がかかったのを覚えています。しかし、活動を通じてメンバー同士の距離が徐々に縮まり、終盤に差し掛かる頃には「こうした方がいいと思う」「それなら自分が調べてみます」など、積極的な提案や質問が自然と飛び交うようになりました。
この変化は、プロジェクトの成果そのもの以上に価値のある「人と人との成長」だと感じています。

また、技術的な面でも多くの学びがありました。AWSのサービス同士の連携、Pythonによるデータ処理、画像認識APIの扱い方など、普段のインフラ保守業務では触れることの少ない領域に挑戦する中で、新たなスキルや知識を吸収することができました。
特に印象的だったのは、チームメンバーからのアイデアが、自分では思いつかないような視点を提供してくれたことです。たとえば、「このログの出力をCloudWatchに送ってモニタリングしたらどうか?」といった提案は、自分の視野を広げてくれるものでした。

さらに、プロジェクト管理の面では、タスクを可視化することの重要性を改めて実感することができました。進捗を「見える化」することで、誰が何を担当し、どこで課題が発生しているのかが明確になり、効率的な問題解決につながりました。この経験は、今後の業務にも必ず活かせると確信しています。

総じて、JEDIプログラムは、技術的なスキルアップだけでなく、主体性・協調性・創造性といった、働くうえで欠かせない力を育む機会になったと感じています。
今回得た経験を糧に、今後の業務でもより積極的に提案・改善に取り組んでいきたいと思います。

ブログトップへ