顔認識を用いたオンライン試験システム(ジェスチャー入力対応)

AI/ML

概要

このリポジトリは、ハンズフリーでMCQ(択一式)試験に回答できることを目的としたプロジェクトです。顔のランドマーク検出(MediaPipe Face Meshなど)を利用し、鼻や顔の位置変化・角度をトリガーとして選択肢の移動や選択を行います。上肢に制約がある利用者や身体障がい者が、キーボードやマウスを使わずに試験を受けられるように設計されています。リポジトリにはカメラ処理を行うPythonスクリプト、簡易的なウェブフロント(index.html)、デモ動画(demo.mp4)などが含まれており、プロトタイプとしての実装と実演が提供されています。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 24
  • フォーク数: 0
  • ウォッチャー数: 24
  • コミット数: 4
  • ファイル数: 7
  • メインの言語: Python

主な特徴

  • MediaPipe Face Mesh 等を用いた顔ランドマーク検出によるジェスチャー認識
  • 鼻や頭部の動きを使った選択肢移動/選択でハンズフリー操作を実現
  • Python(OpenCV等)によるリアルタイム映像処理と簡易Webインターフェイスの組み合わせ
  • デモ動画(demo.mp4)による動作確認やプレゼンテーション用の素材を同梱

技術的なポイント

本プロジェクトの核は、カメラ映像から得られる顔のランドマークを使ってユーザーの意図(選択・移動・確認)を推定する点にあります。MediaPipe Face Meshは68点以上の顔ランドマークではなく、より詳細なメッシュを提供できるため、鼻先(nose tip)や顔の傾き(yaw, pitch, roll)を安定して取得できます。実装の流れは概ね次の通りです:カメラからフレームを取得 → OpenCVで前処理(リサイズ、色変換) → MediaPipeでランドマーク検出 → 特定ランドマーク(鼻、目の位置など)からベクトル・角度を算出 → 一定閾値を超えた移動や連続フレームでの変化をジェスチャーとして検出 → ジェスチャーに対応するUI操作(選択肢のフォーカス移動、確定操作)を発行、というワークフローです。実用化を意識すると、誤検出防止のためのデバウンス処理(一定時間継続で有効化)、照明や顔の向きによるブレ対応、閾値のパーソナライズ(ユーザごとのキャリブレーション)が重要になります。サーバー側はFlask等の軽量Webフレームワークで実装され、フロントエンド(index.html)を通じてブラウザにUIを提供し、WebSocketやHTTP APIでリアルタイムの選択イベントを伝える構成が想定されます。セキュリティ面では受験者認証やなりすまし対策(顔認証の本人確認、連続監視)・不正防止が課題となります。拡張案としては、深層学習ベースの姿勢推定や複数ランドマークの状態を組み合わせた堅牢なジェスチャー分類、低照度や部分遮蔽対応のモデル導入などが考えられます。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • alica.py: file
  • app.py: file
  • demo.mp4: file
  • index.html: file

…他 2 ファイル

(補足)

  • alica.py や app.py が顔検出・アプリ結合の主要スクリプトである可能性が高いです。demo.mp4 は動作確認用の実演動画、index.html は試験用の簡易フロントエンドに使われていると推測できます。

まとめ

身体制約のある受験者向けの実用的なプロトタイプで、MediaPipeを活用したジェスチャー駆動のMCQシステムです(50字程度)。

リポジトリ情報:

READMEの抜粋: trojansource photo

🎯 Gesture-Based Online Examination System

Enabling paralysed & differently-abled users to write exams using head gestures


📝 Project Overview

This project is an AI-powered online MCQ examination system where users can answer questions without using hands, keyboard, or mouse.

Instead, the system uses:

  • Face Mesh Tracking (MediaPipe)
  • **Nose landmark…