« SE5 ECEAI/eceai 2023/2024/black-blgrim » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 56 : | Ligne 56 : | ||
'''Random Forest''' | '''Random Forest''' | ||
=== 1. Introduction === | |||
----Le projet SignSpeak a pour ambition de créer une solution innovante pour la traduction du langage des signes en texte. L'objectif principal est de développer un système capable de capturer les mouvements des mains et de les interpréter en langage des signes, permettant une communication fluide entre les personnes sourdes ou malentendantes et celles qui ne connaissent pas le langage des signes. Ce projet intègre des technologies avancées telles que l'edge computing, l'intelligence artificielle embarquée, et les communications MQTT, offrant une approche novatrice dans le domaine de l'accessibilité et de la communication. | |||
=== 2. Architecture du Système === | |||
----Notre solution repose sur une architecture intégrée impliquant plusieurs composants clés : | |||
* '''Capteurs et STM32''' : Des capteurs sont connectés à un microcontrôleur STM32, responsables de la capture des mouvements de main. Ces données sont ensuite transmises pour traitement. | |||
* '''Raspberry Pi''' : Agissant comme un intermédiaire, la Raspberry Pi reçoit les données des capteurs via UART, exécute un traitement préliminaire et communique avec le serveur. | |||
* '''Serveur et Machine Learning''' : Un serveur, hébergé sur une VM Xen, traite les données à l'aide d'un modèle SVM pour la traduction en langage des signes et fournit une interface web pour l'interaction utilisateur. | |||
* | |||
=== 3. Collecte et Préparation des Données === | |||
----Le processus de collecte des données est géré par le script <code>enregistrementData.py</code>. Ce script lit les données transmises par le STM32 via UART et les enregistre dans un fichier CSV. Chaque entrée du fichier représente les valeurs de capteurs à un moment donné, accompagnées d'une étiquette correspondant au signe effectué. Cette approche assure une collecte de données structurée, essentielle pour l'entraînement précis du modèle d'apprentissage automatique. | |||
=== 4. Entraînement du Modèle d'Apprentissage Automatique === | |||
----L'entraînement du modèle est réalisé par un script Python utilisant la bibliothèque scikit-learn. Le modèle SVM, choisi pour sa capacité à gérer des espaces de grande dimension, est entraîné sur l'ensemble des données collectées. Ce processus comprend la division des données en ensembles d'entraînement et de test, l'entraînement du modèle, et sa validation par le calcul de la précision. | |||
=== 5. Intégration MQTT et Communication === | |||
----La communication entre la Raspberry Pi et le serveur utilise le protocole MQTT, un choix idéal pour les applications IoT en raison de sa légèreté et de sa fiabilité. Le script <code>mqtt_client2.py</code> gère cette communication, permettant à la Raspberry Pi d'envoyer les prédictions du modèle SVM au serveur et de recevoir des commandes pour démarrer ou arrêter la collecte de données. | |||
=== 6. Interface Serveur et Gestion des Données === | |||
----Le script <code>app.py</code> crée une interface serveur utilisant Flask. Cette interface gère les requêtes entrantes, les messages MQTT, et fournit une API pour l'interface utilisateur web. Elle permet également de visualiser les Raspberry Pi disponibles et les derniers messages traduits. | |||
=== 7. Conception de l'Interface Utilisateur === | |||
----L'interface utilisateur est développée en HTML, CSS et JavaScript. Le fichier <code>index.html</code> fournit une interface claire et intuitive pour l'envoi de commandes et la visualisation des traductions. L'utilisation de JavaScript pour interroger dynamiquement le serveur Flask permet une mise à jour en temps réel des informations affichées. | |||
=== 9. Conclusion et Perspectives === | |||
----SignSpeak représente une avancée significative dans le domaine de la traduction du langage des signes. Ce projet non seulement démont |
Version du 28 janvier 2024 à 15:36
Compte rendu des séances
Séance du 04/12/2023
Création de la machine virtuelle
Création d'une machine virtuelle sur le serveur chassiron :
xen-create-image --hostname= --force --dist=bookworm --size=10G --memory=10G --dir=/usr/local/xen --password=glopglop --dhcp --bridge=bridgeStudents
Raspberry-Pi
mettre la config de la raspberry
Capteurs
pas de capteurs lors de la première séance
Séance du 18/12/2023
Sur la VM
script serveur.py
sur la raspberry
script client.py
lecture sur l'uart des données envoyés par le stm32
envoie au serveur (tcp)
sur le capteur
pris ene main du capteur, mettre le code,
Séance du 19/12/2023 et du 20/12/2023
utilisation de la bibliothèque sciait-learn pour l'apprentissage automatique. Nous avons décidé que le but de notre application serait de traduire le langage des signes.
Pour cela nous avons entrainé notre modèle avec quelques signes, comme la lettre A, B ou C et des chiffres 1, 2 et 3 pour commencer.
//mettre screen des résultats entrainement.py et test.py
Les résultats sont satisfaisants mais avec quelques erreurs, la prochaine étape est donc d'améliorer notre algorithme d'apprentissage (pour l'instant on utilise l'algorithme des k plus proches voisins), pour cela nous allons rajouter par exemple du filtrage et tester d'autres algo d'apprentissage automatique
Coté serveur:
Création d'un serveur web, afin de lire les données qui proviennet depuis la raspberrypi et les afficher.
Mise en Place de l'algorithme d'apprentissage
nous avons tester plusieurs méthode d'apprentissage comme la Méthode des k plus proches voisins (K-Neighbour) ou encore forêt aléatoire Random forest.
Random Forest
1. Introduction
Le projet SignSpeak a pour ambition de créer une solution innovante pour la traduction du langage des signes en texte. L'objectif principal est de développer un système capable de capturer les mouvements des mains et de les interpréter en langage des signes, permettant une communication fluide entre les personnes sourdes ou malentendantes et celles qui ne connaissent pas le langage des signes. Ce projet intègre des technologies avancées telles que l'edge computing, l'intelligence artificielle embarquée, et les communications MQTT, offrant une approche novatrice dans le domaine de l'accessibilité et de la communication.
2. Architecture du Système
Notre solution repose sur une architecture intégrée impliquant plusieurs composants clés :
- Capteurs et STM32 : Des capteurs sont connectés à un microcontrôleur STM32, responsables de la capture des mouvements de main. Ces données sont ensuite transmises pour traitement.
- Raspberry Pi : Agissant comme un intermédiaire, la Raspberry Pi reçoit les données des capteurs via UART, exécute un traitement préliminaire et communique avec le serveur.
- Serveur et Machine Learning : Un serveur, hébergé sur une VM Xen, traite les données à l'aide d'un modèle SVM pour la traduction en langage des signes et fournit une interface web pour l'interaction utilisateur.
3. Collecte et Préparation des Données
Le processus de collecte des données est géré par le script enregistrementData.py
. Ce script lit les données transmises par le STM32 via UART et les enregistre dans un fichier CSV. Chaque entrée du fichier représente les valeurs de capteurs à un moment donné, accompagnées d'une étiquette correspondant au signe effectué. Cette approche assure une collecte de données structurée, essentielle pour l'entraînement précis du modèle d'apprentissage automatique.
4. Entraînement du Modèle d'Apprentissage Automatique
L'entraînement du modèle est réalisé par un script Python utilisant la bibliothèque scikit-learn. Le modèle SVM, choisi pour sa capacité à gérer des espaces de grande dimension, est entraîné sur l'ensemble des données collectées. Ce processus comprend la division des données en ensembles d'entraînement et de test, l'entraînement du modèle, et sa validation par le calcul de la précision.
5. Intégration MQTT et Communication
La communication entre la Raspberry Pi et le serveur utilise le protocole MQTT, un choix idéal pour les applications IoT en raison de sa légèreté et de sa fiabilité. Le script mqtt_client2.py
gère cette communication, permettant à la Raspberry Pi d'envoyer les prédictions du modèle SVM au serveur et de recevoir des commandes pour démarrer ou arrêter la collecte de données.
6. Interface Serveur et Gestion des Données
Le script app.py
crée une interface serveur utilisant Flask. Cette interface gère les requêtes entrantes, les messages MQTT, et fournit une API pour l'interface utilisateur web. Elle permet également de visualiser les Raspberry Pi disponibles et les derniers messages traduits.
7. Conception de l'Interface Utilisateur
L'interface utilisateur est développée en HTML, CSS et JavaScript. Le fichier index.html
fournit une interface claire et intuitive pour l'envoi de commandes et la visualisation des traductions. L'utilisation de JavaScript pour interroger dynamiquement le serveur Flask permet une mise à jour en temps réel des informations affichées.
9. Conclusion et Perspectives
SignSpeak représente une avancée significative dans le domaine de la traduction du langage des signes. Ce projet non seulement démont