République Tunisienne Ingénieur en :
Ministère de l’Enseignement Supérieur Génie Electrique
et de la Recherche Scientifique
Option :
Université de Sfax Automatique Informatique Industriel (AII)
Ecole Nationale d’Ingénieurs de Sfax
Rapport de projet fin d’année
présenté à
Ecole Nationale d’Ingénieurs de Sfax
Département
Génie Electrique
Option :
Automatique Informatique Industriel (AII)
par
Kammoun Karim
Khammar Aya
Détection des nombres en intégrant machine learning
Soutenu le 16/01/2025, devant la commission d’examen :
M. Hafidh Abid Président
M. Hafidh Abid Encadrant
TABLE DES MATIÈRES
LISTE DES FIGURES ii
INTRODUCTION GÉNÉRALE 1
1 Itroduction 2
1.1 Contexte du Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Objectifs du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Présentation du système et choix techniques 5
2.1 Description générale du système . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Matériels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 Raspberry Pi 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Mise en marche de Raspberry Pi 4 . . . . . . . . . . . . . . . . . . . . 7
2.2.3 Module caméra pour Raspberry Pi 4 . . . . . . . . . . . . . . . . . . . 8
2.2.4 Configuration de la caméra et inclusion des bibliothèques . . . . . . . . 8
2.3 Choix des outils logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Bibliothèques et frameworks . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Langage de programmation . . . . . . . . . . . . . . . . . . . . . . . 10
3 Développement et Implémentation du Projet 11
3.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Acquisition des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Prétraitement des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Modélisation et entraînement . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5 Optimisation et Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.6 Interface utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.7 CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
CONCLUSION GÉNÉRALE 17
ENIS Page i
LISTE DES FIGURES
2.1 Raspberry pi 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Module camera pour Raspberry pi 4 . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 Pipeline de Reconnaissance de Gestes . . . . . . . . . . . . . . . . . . . . . . 12
3.2 partie du [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 entrainement du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 exemple de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 detection de "5" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
ENIS Page ii
INTRODUCTION GÉNÉRALE
Avec les progrès rapides de l’intelligence artificielle et des technologies embarquées, les
interactions entre les humains et les machines deviennent de plus en plus intuitives. La reconnaissance
des gestes de la main, en particulier, représente un domaine émergent qui permet de contrôler
des systèmes sans contact direct, en rendant l’expérience utilisateur plus naturelle et fluide. Ce
projet s’inscrit dans cette vision en développant un système embarqué capable de reconnaître
en temps réel des gestes de la main à l’aide d’un Raspberry Pi, une solution économique et
portable.
L’objectif principal était de créer un système alliant performance et accessibilité, permettant
son utilisation dans divers domaines tels que la domotique ou l’assistance aux personnes. Pour
cela, plusieurs défis ont été relevés, notamment la capture des données en temps réel, leur
traitement efficace malgré les contraintes matérielles du Raspberry Pi, et la conception d’un
modèle d’intelligence artificielle précis et rapide. Ce rapport retrace les étapes du projet, des
fondements théoriques à l’implémentation pratique, et met en avant les résultats obtenus ainsi
que les perspectives d’amélioration.
ENIS Page 1
Chapitre
1
Itroduction
Sommaire
1.1 Contexte du Projet . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Objectifs du projet . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
ENIS Page 2
ITRODUCTION
1.1 Contexte du Projet
La reconnaissance des gestes de la main est une technologie émergente permettant des
interactions sans contact avec des dispositifs électroniques. Cette approche est de plus en plus
populaire dans divers domaines, notamment la domotique, l’assistance aux personnes malentendantes
et le contrôle d’appareils électroniques, car elle permet une communication plus fluide et naturelle
entre l’utilisateur et la machine, sans nécessiter de dispositifs physiques.
Dans un contexte où les interfaces sans contact sont de plus en plus recherchées pour des
raisons sanitaires, cette technologie se présente comme une solution innovante. En particulier,
elle répond à un besoin croissant de contrôler des appareils ou d’effectuer des actions dans des
environnements où le toucher direct est déconseillé, comme dans les espaces publics ou les
environnements médicaux
1.2 Objectifs du projet
L’objectif principal est de développer un système embarqué de reconnaissance des gestes de
la main en temps réel, en exploitant un Raspberry Pi 4 et une caméra pour capturer les images.
Ce système devra détecter les gestes effectués par l’utilisateur et les associer à des actions
spécifiques. Les objectifs spécifiques sont :
— Reconnaissance des gestes de la main :Utiliser des techniques d’intelligence artificielle,
telles que l’extraction de points de repère (landmarks) et la classification via des modèles
d’apprentissage automatique, pour reconnaître les gestes en temps réel.
— Implémentation sur Raspberry Pi :Adapter le système pour un fonctionnement optimisé
sur le Raspberry Pi 4, en assurant une faible consommation de ressources et une réactivité
élevée dans des environnements à faible coût.
ENIS Page 3
ITRODUCTION
1.3 Motivation
La motivation centrale de ce projet est de rendre les technologies modernes plus accessibles,
notamment pour les personnes en situation de handicap. Par exemple, la reconnaissance des
gestes facilite l’interaction avec des systèmes de domotique et permet aux personnes malentendantes
de communiquer en utilisant la langue des signes. De plus, dans le contexte actuel, les interfaces
sans contact répondent à un besoin croissant de réduire les risques sanitaires liés aux interactions
physiques.
Ce projet repose sur des technologies éprouvées, telles que OpenCV, Mediapipe et CatBoost,
qui permettent de bénéficier d’un large écosystème de développeurs et de ressources existantes
pour garantir des performances fiables et optimisées.
ENIS Page 4
Chapitre
2
Présentation du système et choix techniques
Sommaire
2.1 Description générale du système . . . . . . . . . . . . . . . . . 6
2.2 Matériels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 Raspberry Pi 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Mise en marche de Raspberry Pi 4 . . . . . . . . . . . . . . . . 7
2.2.3 Module caméra pour Raspberry Pi 4 . . . . . . . . . . . . . . . 8
2.2.4 Configuration de la caméra et inclusion des bibliothèques . . . 8
2.3 Choix des outils logiciels . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Bibliothèques et frameworks . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Langage de programmation . . . . . . . . . . . . . . . . . . . . 10
ENIS Page 5
PRÉSENTATION DU SYSTÈME ET CHOIX TECHNIQUES
2.1 Description générale du système
Le projet consiste à développer un système embarqué permettant la reconnaissance de gestes
de la main en temps réel. Le système repose sur l’utilisation de l’intelligence artificielle pour
identifier les gestes à partir d’images capturées par une caméra connectée à un Raspberry Pi.
Ce système est conçu pour fonctionner dans des environnements à faible coût, offrant des
applications variées, notamment dans la domotique, l’assistance aux personnes malentendantes
ou encore le contrôle sans contact d’équipements électroniques. L’architecture du système inclut
les étapes suivantes :
— Acquisition d’image : Capturer les images en temps réel via une caméra.
— Traitement et prétraitement : Identifier les points de repère (landmarks) de la main.
— Classification : Prédire le geste associé à partir des coordonnées des points de repère.
— Affichage : Montrer les prédictions sur l’écran.
2.2 Matériels
2.2.1 Raspberry Pi 4
Le Raspberry Pi 4 est un micro-ordinateur polyvalent et compact doté d’un processeur
quad-core ARM Cortex-A72 cadencé à 1,5 GHz, pouvant être associé à différentes capacités
de RAM (2 Go, 4 Go ou 8 Go). Grâce à ses performances accrues par rapport aux versions
précédentes, il est particulièrement adapté à des applications gourmandes en ressources comme
la vision par ordinateur et le machine learning. Il intègre un port CSI nécessaire pour connecter
le module caméra dans notre projet.
Son architecture open-source en fait un choix idéal pour les projets éducatifs et prototypes.
De plus, le support des bibliothèques comme OpenCV, TensorFlow Lite ou CatBoost sur son
système d’exploitation (Raspberry Pi OS) simplifie le développement et l’intégration de modèles
ENIS Page 6
PRÉSENTATION DU SYSTÈME ET CHOIX TECHNIQUES
de machine learning. Ces caractéristiques, alliées à sa compatibilité avec une large gamme de
caméras (comme le Raspberry Pi Camera Module ou des webcams USB), font du Raspberry Pi
4 une solution idéale pour des projets combinant vision par ordinateur et machine learning en
temps réel.
F IGURE 2.1 – Raspberry pi 4
2.2.2 Mise en marche de Raspberry Pi 4
La mise en marche de la carte Raspberry intègre l’installation du système d’exploitation(OS)
sur cette carte et sa configuration. Raspberry tourne sous l’OS Raspbian qui est un système
fondé sur linux. Raspberry utilise la carte micro SD comme support mémoire. Cette carte
contiendra le système d’exploitation ainsi que tous les programmes ou fichiers personnels que
l’on souhaite stocker dessus. Pour effectuer cette mise en marche, il faut :
— Alimenter la carte Raspberry avec une alimentation 5V,2A.
— Télécharger l’image de Raspbian.
— Installer l’image de Raspbian sur la carte micro SD en utilisant un utilitaire tel que
«Imager», puis insérer la carte micro SD dans la Raspberry.
ENIS Page 7
PRÉSENTATION DU SYSTÈME ET CHOIX TECHNIQUES
— Effectuer la configuration nécessaire, notamment la sélection de la langue, la configuration
du réseau Wi-Fi ou Ethernet, et la création d’un mot de passe.
— Brancher le clavier et la souris aux ports USB et le câble HDMI avec l’écran.
2.2.3 Module caméra pour Raspberry Pi 4
La caméra Raspberry Pi 4 Rev 1.3 est un module de caméra plug and play conçu pour
être utilisé avec les ordinateurs Raspberry Pi. Elle est équipée d’un capteur de 5 mégapixels
(OV5647) et capable de prendre des photos avec une résolution maximale de 2592 x 1944
pixels.
F IGURE 2.2 – Module camera pour Raspberry pi 4
2.2.4 Configuration de la caméra et inclusion des bibliothèques
Etapes de la configuration du module caméra avec Raspberry pi 4 :
— Connecter le module caméra au port CSI du Raspberry Pi.
— Taper dans le terminal la commande "sudo raspi-config" puis activer l’option Legacy
Camera dans la section Interface Options.
ENIS Page 8
PRÉSENTATION DU SYSTÈME ET CHOIX TECHNIQUES
Le mode Legacy est utilisé pour garantir la compatibilité avec les bibliothèques et outils de
vision par ordinateur comme OpenCV et cvzone, qui nécessitent des API plus anciennes pour
fonctionner correctement.
Il faut installer des bibliothèque nécessaires à ce projet comme OpenCV, Mediapipe, Cvzone,
CatBoost, NumPy.
2.3 Choix des outils logiciels
2.3.1 Bibliothèques et frameworks
Pour la mise en œuvre de ce projet, plusieurs bibliothèques et frameworks ont été sélectionnés
en raison de leur pertinence et de leurs fonctionnalités adaptées. Voici un aperçu des outils
principaux utilisés :
— OpenCV (Open Source Computer Vision Library) :est une bibliothèque open source
puissante utilisée pour la vision par ordinateur et le traitement d’images. Elle offre un
large éventail d’outils pour effectuer des tâches comme la capture d’images, le traitement,
et l’analyse en temps réel, rendant cette technologie indispensable pour des projets impliquant
des caméras et des données visuelles.
— Mediapipe : est une bibliothèque développée par Google qui fournit des solutions prêtes à
l’emploi pour des tâches de vision par ordinateur comme la détection et le suivi des objets,
y compris les mains. Elle est particulièrement utile grâce à ses modèles pré-entraînés, qui
permettent d’extraire des informations complexes, comme les points de repère (landmarks),
à partir d’images ou de vidéos en temps réel. Mediapipe est conçu pour être rapide, précis,
et capable de fonctionner sur divers appareils, y compris les systèmes embarqués comme
le Raspberry Pi.
— CatBoost : est un algorithme de machine learning basé sur le boosting des arbres de
décision, idéal pour traiter des données structurées comme les coordonnées des landmarks.
Dans ce projet, il est utilisé pour prédire les gestes à partir des coordonnées fournies
ENIS Page 9
PRÉSENTATION DU SYSTÈME ET CHOIX TECHNIQUES
par Mediapipe. Grâce à ses capacités à gérer le bruit et ses hyperparamètres optimisés
,CatBoost offre des prédictions précises et rapides.
2.3.2 Langage de programmation
Python a été choisi comme langage principal pour ce projet en raison de ses nombreux
avantages, notamment sa simplicité et sa vaste communauté. Son utilisation est particulièrement
pertinente pour le développement sur des systèmes embarqués comme le Raspberry Pi. Voici
pourquoi :
— Simplicité et lisibilité : Python offre une syntaxe claire et concise, ce qui facilite la
compréhension et le développement rapide du code, même pour des projets complexes
combinant intelligence artificielle et traitement d’images.
— Compatibilité avec le Raspberry Pi : Python est entièrement supporté sur le Raspberry
Pi, avec des bibliothèques optimisées pour exploiter les ressources limitées de ce type de
matériel.
En somme, Python a été un choix stratégique pour garantir un développement efficace et une
exécution fluide du projet, tout en tirant parti des capacités de la plateforme Raspberry Pi.
ENIS Page 10
Chapitre
3
Développement et Implémentation du
Projet
Sommaire
3.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Acquisition des données . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Prétraitement des données . . . . . . . . . . . . . . . . . . . . . 13
3.4 Modélisation et entraînement . . . . . . . . . . . . . . . . . . . 13
3.5 Optimisation et Tests . . . . . . . . . . . . . . . . . . . . . . . . 14
3.6 Interface utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.7 CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
ENIS Page 11
DÉVELOPPEMENT ET IMPLÉMENTATION DU PROJET
3.1 INTRODUCTION
Ce chapitre décrit les étapes clés du développement du système de reconnaissance des gestes
de la main, de la conception initiale à l’implémentation sur Raspberry Pi.
F IGURE 3.1 – Pipeline de Reconnaissance de Gestes
3.2 Acquisition des données
La première étape consiste à capturer des données visuelles à l’aide de la caméra connectée
au Raspberry Pi. Le flux vidéo est traité en temps réel grâce à OpenCV, une bibliothèque
puissante pour le traitement d’images. Pour extraire les points de repère (landmarks) des mains,
Mediapipe est utilisée. Elle identifie avec précision les articulations des doigts, fournissant
des données essentielles pour l’entraînement du modèle. Ces landmarks constituent les entrées
principales pour la phase de modélisation.
Puis l’enregistrement des Données,Les coordonnées des landmarks extraites sont enregistrées
dans un fichier CSV nommé [Link].
ENIS Page 12
DÉVELOPPEMENT ET IMPLÉMENTATION DU PROJET
F IGURE 3.2 – partie du [Link]
3.3 Prétraitement des données
Les données brutes doivent être formatées et nettoyées avant d’entraîner le modèle :
— Normalisation : Les coordonnées des landmarks sont ajustées pour réduire les écarts dus
aux variations de taille, de position et d’orientation.
— Filtrage et nettoyage : Suppression des erreurs et des landmarks manquants pour garantir
la qualité des données.
— Augmentation des données : Techniques comme la rotation ou la mise à l’échelle enrichissent
le jeu de données et améliorent la robustesse du modèle.
3.4 Modélisation et entraînement
Le modèle de classification CatBoost, choisi pour sa précision avec des données tabulaires,
est entraîné sur les landmarks extraits. Les paramètres d’entraînement (nombre d’itérations,
taux d’apprentissage) sont ajustés pour optimiser ses performances. L’évaluation est réalisée à
l’aide de métriques comme la précision et le score F1 pour garantir une classification fiable.
ENIS Page 13
DÉVELOPPEMENT ET IMPLÉMENTATION DU PROJET
F IGURE 3.3 – entrainement du modèle
3.5 Optimisation et Tests
Une phase importante du projet consiste à tester et optimiser le système en conditions
réelles. Il est essentiel de vérifier la précision et la réactivité du système dans des environnements
divers et d’apporter des ajustements nécessaires pour améliorer la performance.
— Tests en conditions réelles : Des tests sont effectués avec différents utilisateurs pour
valider la fiabilité du système dans des conditions variées, telles que différentes positions
des mains, variations d’éclairage, etc.
— Optimisation continue : En fonction des résultats obtenus lors des tests, des ajustements
sont effectués sur le modèle, le prétraitement des données et l’optimisation du code pour
améliorer la précision et la rapidité du système.
ENIS Page 14
DÉVELOPPEMENT ET IMPLÉMENTATION DU PROJET
F IGURE 3.4 – exemple de test
— Proba (Probabilité) : Cela représente la probabilité prédite par le modèle pour une classe
particulière, souvent la classe prédite avec la probabilité la plus élevée.
— Loss (Perte) : La perte mesure l’écart entre les prédictions du modèle et les vraies
étiquettes (labels). C’est une mesure de la qualité ou de l’erreur du modèle pendant
l’entraînement ou l’évaluation.
3.6 Interface utilisateur
Une fois le système de reconnaissance des gestes opérationnel, il est important d’offrir une
interface utilisateur claire et fonctionnelle. L’interface permet de visualiser les prédictions du
modèle et d’interagir avec le système de manière intuitive.
— Affichage en temps réel : Le flux vidéo capturé par la caméra est affiché à l’écran avec les
prédictions des gestes superposées. Cela permet à l’utilisateur de voir en temps réel quel
geste est détecté, accompagné de la probabilité associée à cette prédiction.
— Interaction avec l’utilisateur : L’interface permet à l’utilisateur de réaliser des gestes
devant la caméra et d’obtenir immédiatement des informations sur le geste détecté. Cela
ENIS Page 15
DÉVELOPPEMENT ET IMPLÉMENTATION DU PROJET
peut inclure l’affichage d’un texte correspondant à la langue des signes ou l’activation
d’une commande spécifique dans le cadre d’une application de domotique.
F IGURE 3.5 – detection de "5"
3.7 CONCLUSION
Ce chapitre a décrit les étapes essentielles du développement du système de reconnaissance
des gestes, de l’acquisition des données à leur traitement et au déploiement du modèle sur
Raspberry Pi. Les outils utilisés, comme OpenCV, Mediapipe et CatBoost, ont permis d’assurer
une reconnaissance précise et en temps réel, malgré les contraintes matérielles. Ce travail
conclut l’ensemble du projet, offrant une base solide pour des applications pratiques et des
améliorations futures.
ENIS Page 16
CONCLUSION GÉNÉRALE
Le projet de reconnaissance des gestes de la main basé sur un Raspberry Pi a permis
d’illustrer comment des technologies avancées peuvent être intégrées dans une plateforme compacte
et abordable. En combinant des bibliothèques comme OpenCV pour le traitement d’images,
Mediapipe pour l’extraction des points de repère, et CatBoost pour la classification, le système
a démontré sa capacité à détecter et reconnaître des gestes en temps réel, tout en respectant les
contraintes de ressources du matériel.
Les résultats obtenus montrent que ce type de système est non seulement faisable, mais
également prometteur pour une variété d’applications. Ce projet a posé les bases pour des
développements futurs, notamment l’intégration de nouveaux gestes, l’optimisation du modèle
pour une vitesse et une précision accrues, et l’application à des scénarios spécifiques tels que la
traduction de la langue des signes ou le contrôle d’appareils domotiques.
En conclusion, ce travail illustre comment les technologies actuelles peuvent être exploitées
pour concevoir des solutions accessibles et utiles, tout en ouvrant la voie à des innovations
futures dans le domaine de l’interaction homme-machine. Ce projet témoigne de l’importance
de rendre les avancées technologiques disponibles à un public plus large, en favorisant des
usages pratiques et inclusifs.
ENIS Page 17