Reconnaissance objet

De Wiki TGE CSTwiki
Aller à la navigation Aller à la recherche

Description du projet

Le but final du projet est de détecter un lift dans une image de caméra de surveillance 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 i/o programmables. La camera sera connectée dans celui-ci directement par USB. Comme les i/o du Raspberry pi fonctionne à 3.3v, nous utilisons un petit relais pour alimenter le gyrophare.


Fonctionnement global

Pour fonctionner, le projet a trois grand moteurs

1. La programmation python.

Le script Python utilise YOLO (Ultralytics) pour détecter des objets en temps réel à partir d’une image, d’un dossier, d’une vidéo ou d’une caméra USB.
Il charge un modèle .pt, applique l’inférence sur chaque frame, affiche les boîtes englobantes avec le niveau de confiance et calcule le FPS 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 lift. Il fait seulement le paramétrer (afficher les boites, le degré de confiance et le nombre d'objet détecté.)

2. Le fichier .pt (pre-trained)

Le modèle pré-entrainé c'est comme le cerveau du projet. 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.

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 pre-trained

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).
Recherche 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.

2. Préparer le dataset à l'entrainnement.

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 élements importants: data.yaml, train, valid.
Si ces 3 éléments sont présents, tout est correct.


3. ajouter le yolo de base.

Yolo (you only look once) 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ègerte pour fonctionner avec le Raspberry pi.

pour l'ajouter au dataset, vous devez le télecharger à partir du site de yolo.