Skip to content

WE2722/AI_GUARD

Repository files navigation

🛡️ AI Guard Flask - Système de Surveillance Intelligente

AI Guard Logo

Python Flask OpenCV Dlib License

Système de surveillance avec reconnaissance faciale en temps réel pour établissements scolaires

🚀 Installation📖 Documentation🎯 Fonctionnalités🛠️ API🤝 Contribution


📋 Description

AI Guard Flask est un système de surveillance intelligente nouvelle génération conçu spécifiquement pour les établissements scolaires. Il combine reconnaissance faciale avancée, streaming vidéo temps réel et interface multi-utilisateurs pour offrir une solution de sécurité complète et moderne.

🎯 Problèmes Résolus

Élimination du clignotement vidéo (migration Streamlit → Flask)
Streaming MJPEG continu sans interruption
Interface multi-utilisateurs professionnelle
Alertes temps réel via WebSocket
Performance optimisée avec threading avancé

🚀 Fonctionnalités

🔐 Reconnaissance Faciale Avancée

  • Dlib ResNet pour reconnaissance haute précision
  • Détection multi-visages simultanée
  • Seuil de confiance configurable
  • Base de données d'embeddings optimisée

📹 Streaming Vidéo Professionnel

  • MJPEG streaming sans latence
  • Résolution adaptative (480p à 1080p)
  • FPS configurable (15-30 fps)
  • Support multi-caméras (webcam, IP)

👥 Interface Multi-Utilisateurs

  • 4 rôles distincts : Admin, Surveillant, Service Admin, Étudiant
  • Authentification sécurisée avec Flask-Login
  • Permissions granulaires par rôle
  • Dashboard personnalisé pour chaque utilisateur

⚡ Temps Réel & Performance

  • WebSocket pour alertes instantanées
  • Threading optimisé pour capture/traitement
  • Queue système pour buffer vidéo
  • Cache intelligent des modèles IA

🎨 Interface Moderne

  • Design responsive avec Tailwind CSS
  • Dashboard interactif avec métriques live
  • Notifications push en temps réel
  • Mode sombre/clair

🏗️ Architecture

AI_GUARD_FLASK/
├── 🚀 app.py                      # Application Flask principale
├── ⚙️ config.py                   # Configuration système
├── 📦 requirements.txt            # Dépendances Python
├── 🏃 run.py                      # Point d'entrée
│
├── 📁 routes/                     # Routes Flask (Blueprints)
│   ├── 🔐 auth.py                # Authentification
│   ├── 📹 surveillance.py        # Surveillance temps réel
│   ├── 👤 admin.py               # Administration
│   └── 🔌 api.py                 # API REST
│
├── 📁 core/                       # Logique métier
│   ├── 🧠 ai_guard_logic.py      # IA reconnaissance faciale
│   ├── 💾 database_manager.py    # Gestionnaire base de données
│   └── 🔑 auth_manager.py        # Authentification Flask-Login
│
├── 📁 services/                   # Services temps réel
│   ├── 📺 video_stream.py        # Streaming MJPEG
│   ├── 🔗 websocket_manager.py   # WebSocket temps réel
│   └── 🚨 alert_manager.py       # Gestionnaire alertes
│
├── 📁 templates/                  # Interface utilisateur
│   ├── 🎨 base.html              # Template de base
│   ├── 🔐 auth/login.html        # Page de connexion
│   └── 📹 surveillance/live.html # Interface surveillance
│
├── 📁 static/                     # Assets frontend
│   ├── 🎨 css/                   # Styles CSS
│   └── ⚡ js/                    # JavaScript + WebSocket
│
└── 📁 data/                       # Données et modèles
    ├── 💾 authorized_faces.db     # Base embeddings faciaux
    ├── 👥 ai_guard_platform.db   # Base utilisateurs
    └── 🤖 Dlib_face_recognition/  # Modèles IA

🔧 Installation

Prérequis

  • Python 3.8+ (3.10 recommandé)
  • Webcam USB ou caméra IP
  • 8 GB RAM minimum (16 GB recommandé)
  • Navigateur moderne (Chrome, Firefox, Edge)

Installation Rapide

# 1. Cloner le repository
git clone https://github.com/votre-username/ai-guard-flask.git
cd ai-guard-flask

# 2. Créer l'environnement virtuel
python -m venv venv_ai_guard
source venv_ai_guard/bin/activate  # Linux/macOS
# ou
venv_ai_guard\Scripts\activate     # Windows

# 3. Installer les dépendances
pip install --upgrade pip
pip install -r requirements.txt

# 4. Télécharger les modèles Dlib (200 MB)
python setup_models.py

# 5. Initialiser la base de données
python init_database.py

# 6. Lancer l'application
python run.py

Accès à l'application

🌐 Interface Web: http://localhost:5000
👤 Admin par défaut: admin / admin123
📹 Surveillance: http://localhost:5000/surveillance

👥 Rôles Utilisateurs

🔑 Admin

  • Dashboard complet avec statistiques globales
  • Gestion des utilisateurs (CRUD complet)
  • Monitoring multi-caméras simultané
  • Configuration système avancée
  • Rapports d'incidents détaillés
  • Logs d'audit complets

👮 Surveillant/Garde

  • Monitoring caméras en temps réel
  • Création de rapports d'incidents
  • Alertes temps réel configurables
  • Snapshots automatiques d'alertes
  • Consultation historique des événements

🏢 Service Administratif

  • Validation d'enrôlements étudiants
  • Communication avec les étudiants
  • Rapports simplifiés d'activité
  • Gestion des autorisations temporaires

🎓 Étudiant

  • Enrôlement facial guidé (3 vues)
  • Consultation profil personnel
  • Historique d'enrôlement personnel
  • Processus de ré-enrôlement si nécessaire

🛠️ Configuration

Reconnaissance Faciale

# config.py - Paramètres IA
RECOGNITION_THRESHOLD = 0.6      # Seuil de reconnaissance (0.4-0.8)
FACE_DETECTION_UPSAMPLE = 1      # Précision détection (0-2)
MAX_FACES_PER_FRAME = 10         # Limite visages par image
COOLDOWN_ALERTS = 30             # Intervalle alertes (secondes)

Streaming Vidéo

# Qualité vidéo
VIDEO_WIDTH = 640                # Largeur (480-1920)
VIDEO_HEIGHT = 480               # Hauteur (360-1080)
VIDEO_FPS = 25                   # Images par seconde (15-30)
MJPEG_QUALITY = 85               # Qualité compression (50-95)

Base de Données

# SQLite local (production recommandée: PostgreSQL)
DATABASE_URI = 'sqlite:///data/ai_guard_platform.db'
FACES_DATABASE = 'data/authorized_faces.db'

📡 API REST

Endpoints Principaux

# Authentification
POST /api/auth/login          # Connexion utilisateur
POST /api/auth/logout         # Déconnexion
GET  /api/auth/profile        # Profil utilisateur

# Surveillance
GET  /api/surveillance/status # Statut système temps réel
GET  /api/surveillance/stream # Flux vidéo MJPEG
POST /api/surveillance/config # Configuration paramètres

# Administration
GET  /api/admin/users         # Liste utilisateurs
POST /api/admin/users         # Créer utilisateur
PUT  /api/admin/users/{id}    # Modifier utilisateur
GET  /api/admin/stats         # Statistiques globales

# Alertes
GET  /api/alerts              # Historique alertes
POST /api/alerts/test         # Test alerte

Exemple d'utilisation

import requests

# Connexion API
response = requests.post('http://localhost:5000/api/auth/login', 
                        json={'username': 'admin', 'password': 'admin123'})
token = response.json()['token']

# Récupérer les statistiques
stats = requests.get('http://localhost:5000/api/admin/stats',
                    headers={'Authorization': f'Bearer {token}'})
print(stats.json())

🔧 Technologies

Backend

  • Flask 2.0+ - Framework web Python
  • Dlib - Reconnaissance faciale ResNet
  • OpenCV 4.5+ - Traitement vidéo
  • SQLite/PostgreSQL - Base de données
  • Flask-Login - Authentification
  • Flask-SocketIO - WebSocket temps réel

Frontend

  • Tailwind CSS - Framework CSS moderne
  • JavaScript ES6+ - Logique client
  • WebSocket API - Communication temps réel
  • Font Awesome - Icônes
  • Chart.js - Graphiques temps réel

IA & Traitement

  • Dlib ResNet - Encodage facial 128D
  • HOG Detector - Détection visages
  • 68 landmarks - Points caractéristiques
  • NumPy - Calculs matriciels
  • Threading - Traitement parallèle

📊 Performance

Métriques Surveillées

  • FPS vidéo : 25-30 fps en temps réel
  • 🧠 Temps de traitement IA : <100ms par frame
  • 💾 Utilisation mémoire : <2GB RAM
  • 👥 Utilisateurs simultanés : 50+ connexions
  • 🎯 Précision reconnaissance : 95%+ sur visages enrôlés

Optimisations

  • Threading séparé capture/traitement
  • Queue buffers pour frames vidéo
  • Cache modèles IA en mémoire
  • Streaming MJPEG optimisé
  • WebSocket pour événements temps réel

🧪 Tests

# Tests unitaires
python -m pytest tests/

# Tests d'intégration
python -m pytest tests/integration/

# Tests de performance
python tests/performance/benchmark.py

# Tests de reconnaissance
python tests/face_recognition/test_accuracy.py

🚀 Déploiement

Développement Local

python run.py
# Interface: http://localhost:5000

Production (Docker)

# Build image
docker build -t ai-guard-flask .

# Run container
docker run -p 5000:5000 -v ./data:/app/data ai-guard-flask

Production (Serveur)

# Avec Gunicorn
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app

# Avec nginx (reverse proxy recommandé)
sudo nginx -s reload

🔒 Sécurité

Authentification

  • Hash bcrypt pour mots de passe
  • Session sécurisée Flask
  • CSRF protection intégrée
  • Rate limiting sur login

Données

  • Stockage local SQLite/PostgreSQL
  • Pas de transmission cloud des embeddings
  • Snapshots chiffrés localement
  • Logs d'audit complets

Réseau

  • HTTPS recommandé en production
  • CORS configuré pour API
  • WebSocket sécurisé (WSS)

🤝 Contribution

Comment Contribuer

  1. Fork le repository
  2. Créer une branche feature (git checkout -b feature/nouvelle-fonctionnalite)
  3. Commit vos changements (git commit -m 'Ajout nouvelle fonctionnalité')
  4. Push vers la branche (git push origin feature/nouvelle-fonctionnalite)
  5. Ouvrir une Pull Request

Guidelines

  • Code style : Black + Flake8
  • Tests requis pour nouvelles fonctionnalités
  • Documentation mise à jour
  • Commit messages en français explicites

Roadmap

Version 1.1 (Prochaine)

  • Reconnaissance multi-visages simultanés
  • Enrôlement facial via interface web
  • Support caméras IP multiples
  • Notifications push mobile
  • API REST complète

Version 1.2 (Future)

  • IA prédictive comportementale
  • Analyse de mouvements suspects
  • Intégration cloud optionnelle
  • Application mobile dédiée
  • Reconnaissance vocale additionnelle

📝 Licence

Ce projet est sous licence Apache 2.0 - voir le fichier LICENSE pour les détails.

🆘 Support

Documentation

  • Wiki GitHub : Documentation complète
  • Issues : Rapporter des bugs
  • Discussions : Questions et aide

Contact


🛡️ AI Guard Flask - Surveillance Intelligente Nouvelle Génération

Fait avec ❤️ Python Flask

Sécurisez votre établissement avec l'intelligence artificielle

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •