Reconnaissance objet
Description du projet
Le but final du projet est de détecter un objet (dans notre cas un lift) dans une image de caméra grâce à un modèle de reconnaissance d'objet pré-entrainé. Lorsque que le programme détectera un chariot élévateur, un gyrophare s'activera pour avertir les travailleurs. Le programme se trouvera dans un Raspberry pi 5, un petit ordinateur avec des entrées sorties programmables. La camera sera connectée dans celui-ci directement par USB. Puisque les sorties du Raspberry pi fonctionne à 3.3 VCC, nous utilisons un petit relais pour alimenter un gyrophare 120 VCA.
Fonctionnement global
Pour fonctionner, le projet a trois grande étapes
1. La programmation python.
- Le script charge un modèle .pt et applique la détection sur chaque image, affiche les boîtes englobantes avec le niveau de confiance et calcule le nombre d'image par seconde moyen.
- Il permet aussi d’enregistrer la vidéo traitée et de compter le nombre d’objets détectés à chaque image.
- Ce n'est pas ce programme qui est entrainé a reconnaitre un objet. Il fait seulement le paramétrer (afficher les boites, le degré de confiance et le nombre d'objet détecté.)
2. Le fichier .pt (Pré-entrainée)
- Un modèle YOLO déjà entraîné (.pt) est une intelligence artificielle qui a déjà appris à reconnaître certains objets grâce à un entraînement préalable sur une grande quantité d’images.Le modèle pré-entrainé c'est comme le cerveau du projet.
3. Fichier de contrôle GPIO
- Le Raspberry pi 5 possède plusieurs pin programmable qui doivent être contrôler à l'aide d'un fichier. Les pins GPIO peuvent être soit une entrée ou une sortie. Le fichier fais aussi le liens entre les variables python et les pins.
Création du modèle pré-entrainée
Pour entraîner le modèle, il faut un dataset, c’est-à-dire une collection d’images déjà annotées. Il existe deux options : le créer soi-même ou en utiliser un déjà disponible en ligne. Nous recommandons d’en prendre un déjà fait, car créer son propre dataset demande des milliers de photos et beaucoup de temps pour les annoter une par une.
1. Choisir le bon dataset
- Nous conseillons d'utiliser la plateforme RobotFlow sur internet pour trouver un dataset.
- Sur Roboflow, va dans l’onglet Universe (bibliothèque publique).
- Rechercher avec des mots-clés précis (ex : “forklift”, “helmet detection”, etc.).
- Vérifie le nombre d’images, la diversité des photos et la qualité des annotations.
- Choisis un dataset avec plusieurs centaines ou milliers d’images bien étiquetées.
- Une fois le bon dataset trouvé, il reste juste à le télécharger en format zip.
- Une erreur que nous avons rencontrée étais que notre dataset n'avais aucune image
- nulle, qui sont une images sans l'objet qu'on veut détecter. les images nulle
- sont important pour l'entrainement.
2. Préparer le dataset à l’entrainement.
- Une fois le fichier téléchargé, vous devez l'extraire à l'endroit de votre choix.
- Ensuite, vérifiez que le fichier contient les 3 éléments importants: data.yaml, train, valid.
- Si ces 3 éléments sont présents, tout est correct.
3. Ajouter le Yolo de base.
- Yolo possède des modèles de base pré entrainés généralisé et il est nécessaire d'ajouter une
- de ces version à notre dataset pour l’entrainement. Nous utilisons la version 11n qui est la
- version officielle la plus récente. Le n signifie nano. Il existe d'autres modèle plus performants,
- mais nous avons besoin de la version la plus léger pour fonctionner avec le Raspberry pi.
- pour l'ajouter au dataset, vous devez le télécharger à partir du site de Yolo.
Vous devez ensuite glisser le fichier téléchargé au même endroit que les autres fichiers énumérés à l'étape 2.
4. Entrainement
- Il est possible de faire l’entrainement sur Windows, nous conseillons d'utiliser Linux, mais voici une vidéo expliquant les démarches nécessaire avec Windows.
- Pour le faire sur Linux, vous devez avoir téléchargé les librairies suivantes:
- ultralitics
- pytorch
- python3
- opencv
- Nous conseillons l'utilisation de l'outil pip pour rendre l'installation de c'est librairie plus simple.
- Maintenant, Dans le terminal entrez la commande: yolo detect train model=yolo11n.pt data=data.yaml epochs=X imgsz=X batch=X patience=x
- model : modèle de base pré-entraîné utilisé pour commencer.
- data : fichier qui indique où sont les images et les classes.
- epochs : nombre de cycles d’apprentissage.
- imgsz : taille des images (640 si vous utiliser notre python).
- batch : nombre d’images traitées en même temps (selon le gpu).
- patience : arrête l’entraînement si le modèle n’améliore plus ses performances
- Il est nécessaire de remplacer les x par les bonnes valeurs selon vos besoins, dépendamment de votre nombre d'images et votre application.
- Ensuite, vous exécutez la commande et votre ordinateur lance l’entraînement du modèle, cela peut prendre plusieurs heures selon la puissance de votre machine et la taille du dataset.Une erreur possible est que votre processeur ou votre environnement ne dispose pas des bibliothèques logicielles nécessaires pour exécuter l’entraînement. Ce problème est plus fréquent sur des ordinateurs plus anciens ou lorsque certaines dépendances ne sont pas correctement installées.