QR コードと顔認証を用いた遅刻管理システムの開発
石井奏翔*1
指導教員：小山浩二*2 後田航平*2
Email: k.ushiroda@hokkaido-c.ed.jp*1: 北海道函館中部高等学校普通科 3 年*2: 北海道函館中部高等学校◎Key Words

1.

Python，顔認証，QR コード, 遅刻管理

はじめに

現在、函館市近郊の多くの学校では遅刻してきた生徒の対応や遅刻情報の管理に生徒と教員の手間がかかっている。本研究では、プログラミング言語 Python を用いた
QR コードと顔認証による遅刻管理システムを開発し、生徒及び教員の遅刻情報の記録・管理の効率化及び自動化を試みた。

2. システム設計
2.1 システムの概要
本システムは、顔認証を行う GUI アプリケーションと遅刻管理をする WEB アプリケーションの 2 つのアプリ
ケーションで構成されている。GUI アプリケーションはアプリケーション作成ツールである Python ライブラリ
CustomTkinter を用いて作成し、学校現場においてパソコン端末上で遅刻情報の記録を行うことを可能とした。
Web アプリケーションはアプリケーション作成ツールである Python ライブラリ Django を用いて作成し、教員が WEB サイト上で遅刻情報の閲覧・編集を行うことが可能となっている。図 1 は遅刻情報の記録の流れをフローチャートにより表したものである。

顔認証開始

2.2 顔のデータ化の手法
本システムでは、3D カメラ（OAK-D S2, Luxonis）から取得した画像に対して、顔認識を実行することのできる python ライブラリ InsightFace を用いて顔の特徴を表すデータを生成し、生成したデータを人工知能や機械学習が処理しやすい数値ベクトル表現に変換する手法である Embedding を用いて顔の特徴を数値ベクトル表現に変換したものを使用した。本システムでは、光の影響によって顔をデータ化する際の精度が低下することを防ぐため、複数の画像から顔の特徴点を抽出し、その平均値を使用した。Embedding によって生成されたデータは 512 個の要素からなるリスト型のデータで次のように表せる。
𝑎𝑛 = [𝑣1 , 𝑣2 , 𝑣3 , 𝑣4 , ⋯ 𝑣512 ]𝑏𝑛 = [𝑣1 , 𝑣2 , 𝑣3 , 𝑣4 , ⋯ 𝑣512 ]QRコード読み取り

顔のデータ抽出、比較本人であるか遅刻記録を行う際には、初めに QR コードを読み取り、システムが生徒を識別した後、顔認証による本人確認、遅刻理由の入力を行う方法を採用した。本システムで使用する QR コードには「学年」「クラス」「出席番号」「名前」の情報が記録されており、データの暗号化を行うことができる Python ライブラリ Cryptography を用いて暗号化したデータを学生証に記載し、使用することを想定している。QR コードを使用することによって顔が類似している双子を識別して顔認証を行うことを可能とした。また、顔認証が実行されると、遅刻情報（生徒情報、登校時間、遅刻理由）がリアルタイムで WEB アプリ
ケーションに共有されるように設計した。

NoYes
遅刻理由記入WEBサイトにデータ共有

図 1 遅刻情報記録の流れ

また、データを正確に収集するために空間の距離測定とAI 処理を一体化した組み込みプラットフォームのである DepthAI に備わっているニューラルネットワークを用いて、顔の向きの推論を行い、顔の向きが正面の時のみ、データを取得する手法を採用した。

2.3 顔認証の手法
本研究では、コサイン類似度を用いて顔の類似度を算出・比較することで顔認証を行う方法を採用した。コサイ
ン類似度とはベクトル空間における 2 つのベクトルがなす角のコサイン値のことであり、以下の(1)式により算出した。コサイン類似度の値域は-1 から 1 の範囲の実数であり、1.0 に近いほど顔の類似度が高いことを表す。

cos 𝜃 =∑𝑛𝑘=1 𝑎𝑘 𝑏𝑘√∑𝑛𝑘=1 𝑎𝑘2 √∑𝑛𝑘=1 𝑏𝑘2(1)

n:データの次元数(本システムの場合 n=512)

テムでは Mediapipe を用いて目付近のランドマークの座標から目のアスペクト比(EAR)を計算することによって瞬きを検知する機能を実装し、認証対象が本物の人間であるかを判別することで、セキュリティーの向上を目指した。Mediapipe とは Google が開発した機械学習と画像処理の機能が搭載された Python ライブラリであり、眉毛の始点、鼻の先端、口の両端などの顔の特徴点の抽出をリアルタイムでおこなうことができる。Mediapipe によって抽出された特徴点が記載されている図 4 に示した
6 点の座標を以下のように表した。
𝑝1 =(𝑥1 ,𝑦1 ), 𝑝2 =(𝑥2 ,𝑦2 ), … 𝑝6 =(𝑥6 ,𝑦6 )図 2 コサイン類似度について2.4 本人とみなす基準
本研究では顔認証において本人とみなす基準を定める
ため、同一人物の場合と同一人物でない場合のコサイン類似度を比較した。実際に学校現場での使用を想定し、同一人物の場合において事前に登録済の顔データの撮影環境と比較するデータの撮影環境は異なる環境に設定した。
下記の図 3 は同一人物の場合とそうでない場合のコサイン類似度を箱ひげ図で表している。

目のアスペクト比の値は以下の(2)式によって算出される。アスペクト比の値は目が開いている状態で通常0.2〜0.3 の範囲にあり、目が完全に閉じている状態では通常 0.1 以下になることが知られている。そこで、本システムではアスペクト比が 0.2 以下から 0.2 以上に切り替わったときに瞬きをしたとみなしている。

図 4 目付近のランドマークをプロットした画像
アスペクト比 ＝‖𝑝2 −𝑝6 ‖+‖𝑝3 −𝑝5 ‖2‖𝑝1 −𝑝4 ‖(2)

3 おわりに
図 3 コサイン類似度の比較
表 1 コサイン類似度の平均値

項目
同一人物の場合同一人物でない場合平均値0.6580.014

表 1 は各場合におけるコサイン類似度の平均値を表している。同一人物とそうでない場合のコサイン類似度について t 検定を行ったところ、有意差が認められた（p＜0.05）。多様な撮影環境によって同一人物であってもコサイン類似度が小さく出てしまうことや、本システムではQR コードによる個人識別を採用していることを考慮し、コサイン類似度≧0.6 の場合、認証対象を本人とみなすように基準を設定した。

2.5 瞬き検知による不正認証防止策
顔認証は画像から顔を検出し、抽出されたデータを比較している。この特性上、写真に映っている顔でも顔認証ができてしまうという問題点もある。そこで、本シス本研究では、プログラミング言語 Python を用いた QRコードと顔認証による遅刻管理システムを開発した。本システムにより、生徒及び教員の遅刻情報の記録・管理の効率化及び自動化が可能となった
今後の課題としては、顔認証の処理速度向上とユーザビリティの向上の２点が挙げられる。高速処理が可能なライブラリの使用やプログラムの改良により、さらなる処理速度の実現が見込まれる。また、ユニバーサルデザインに配慮したアプリケーションデザインを設計し、ユーザビリティの向上に努めたい。
また、新たな顔認証の手法として３Ｄカメラによって計測される深度情報を用いた顔認証や不正認証防止策の開発についても併せて研究を行っていきたい。

謝辞
本研究は、一般社団法人未来教育サポートをはじめ、2023 年に北海道函館市で行われた「第１回高校生探究リサーチフォーラム in 函館」の関係者の皆様の支援を受けて実施しました。また、本研究にあたり、数多くのご助言をいただいた小山先生に感謝申し上げます。