En cliquant sur « Accepter tous les cookies », vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser son utilisation et contribuer à nos efforts de marketing. Plus d’infos
Paramètres des cookies
En cliquant sur « Accepter tous les cookies », vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser son utilisation et contribuer à nos efforts de marketing. Plus d’infos
Apprenez à entraîner des modèles YOLO pour détecter les animaux dans la nature à l'aide de l'ensemble de données sur la faune africaine et à utiliser le modèle pour exécuter des inférences sur des images invisibles.
La faune de notre planète est incroyablement diversifiée, des abeilles bourdonnantes aux éléphants imposants, et la préservation de cette biodiversité est essentielle au maintien d'un écosystème équilibré. Cependant, les efforts de conservation sont de plus en plus difficiles en raison de la perte d'habitat, du braconnage et du changement climatique. Tous ces facteurs affectent négativement les populations d'animaux sauvages.
Les méthodes traditionnelles de surveillance des animaux, comme l'analyse manuelle des images de pièges photographiques et la réalisation d'études de terrain, peuvent être lentes et nécessitent beaucoup de ressources. Ces efforts ne parviennent souvent pas à couvrir efficacement de vastes zones et de grandes populations.
Pour surmonter ces limitations, l'intelligence artificielle (IA) peut être utilisée comme un outil efficace dans la conservation de la faune. Plus précisément, les modèles de vision par ordinateur tels que Ultralytics YOLO11 peuvent analyser des données visuelles telles que des images et des vidéos pour automatiser l'identification et le suivi des animaux en temps réel.
Les tâches de vision artificielle telles que la détection d'objets et la segmentation d'instances, prises en charge par YOLO11, sont très utiles ici. En analysant les données visuelles, ces tâches nous aident à collecter des données cruciales, à identifier les schémas écologiques et à répondre plus efficacement aux menaces environnementales.
Dans cet article, nous allons passer en revue le processus d'entraînement de YOLO11 pour détecter les animaux. Commençons !
Démarrage avec Ultralytics YOLO11
Avant de nous plonger dans le tutoriel, examinons les différentes options de configuration et les outils dont vous aurez besoin pour entraîner et utiliser YOLO11.
L'outil principal dont vous aurez besoin est le paquet Python Ultralytics, qui facilite l'utilisation des modèles YOLO pour des tâches telles que l'entraînement, la détection d'objets et l'exécution d'inférences. Pour utiliser le paquet Ultralytics, vous devrez configurer un environnement pour exécuter votre code, et vous avez le choix entre différentes options.
Voici quelques-unes des options les plus populaires pour configurer votre environnement de développement :
Interface de ligne de commande (CLI) : La CLI, également connue sous le nom de terminal, est un outil textuel qui vous permet d'interagir avec votre ordinateur en tapant des commandes. Contrairement aux interfaces graphiques (GUI), où vous cliquez sur des boutons et utilisez une souris, la CLI vous oblige à taper des instructions textuelles pour exécuter des programmes ou effectuer des tâches.
Jupyter Notebooks : Ces notebooks vous permettent d'écrire et d'exécuter du code dans de petits blocs appelés cellules. Il est interactif, ce qui signifie que vous pouvez voir le résultat de votre code immédiatement, ce qui facilite les tests et le débogage.
Google Colab : Google Colab est une plateforme basée sur le cloud qui fonctionne comme les Jupyter Notebooks, mais offre un accès gratuit à de puissants GPU. Il est facile à configurer et vous n'avez rien à installer sur votre ordinateur.
Bien qu'il existe d'autres options pour configurer votre environnement, que vous pouvez explorer dans la documentation officielle d'Ultralytics, les trois options mentionnées ci-dessus nécessitent très peu de configuration et sont faciles à utiliser, ce qui les rend idéales pour démarrer rapidement.
Dans ce tutoriel, nous allons vous montrer comment configurer et entraîner YOLO11 à l'aide de Google Colab, des Jupyter Notebooks ou d'un simple fichier Python, car les étapes sont très similaires dans tous ces environnements.
Comprendre l'ensemble de données sur la faune africaine
Après avoir sélectionné un environnement de développement, pour entraîner YOLO11 à détecter spécifiquement les animaux sauvages, nous avons besoin d'un ensemble de données d'images étiquetées de haute qualité. Chaque image doit clairement montrer où se trouvent les animaux et de quel type ils sont, afin que le modèle puisse apprendre à les reconnaître grâce à l'apprentissage supervisé.
Dans ce tutoriel, nous allons utiliser le jeu de données sur la faune africaine. Il est pris en charge par le paquet Python Ultralytics et est spécialement conçu pour détecter les animaux que l'on trouve couramment dans les écosystèmes africains. Il contient des images annotées de quatre espèces clés : les buffles, les éléphants, les rhinocéros et les zèbres.
Fig 1. Un aperçu du jeu de données sur la faune africaine.
Voici quelques caractéristiques clés du jeu de données African Wildlife :
Échelle : L'ensemble de données se compose de 1 504 images divisées en trois sous-ensembles : 1 052 pour l'entraînement, 225 pour la validation et 227 pour les tests. Cette répartition garantit que le modèle apprend efficacement et est évalué de manière approfondie.
Intégration transparente : Ultralytics fournit un fichier de configuration YAML qui définit les chemins d'accès aux ensembles de données, les classes et d'autres détails, ce qui facilite son utilisation lors de l'entraînement des modèles YOLO.
Licence ouverte : Cet ensemble de données est distribué sous la licence AGPL-3.0, encourageant la transparence et la collaboration.
Entraînement d'Ultralytics YOLO11 pour la détection d'animaux
Maintenant que nous avons exploré l'ensemble de données sur la faune africaine, nous pouvons commencer à entraîner un modèle YOLO11 pour détecter les animaux dans les images. Le processus implique la configuration de l'environnement de développement, l'entraînement du modèle YOLO11 et l'évaluation des performances du modèle.
Étape 1 : Configuration de l'environnement
Pour commencer, nous allons préparer un environnement pour l'entraînement et le test du modèle. Google Colab, Jupyter Notebooks ou un simple fichier Python peuvent être utilisés, selon votre préférence. Créez un nouveau notebook Google Colab, un notebook Jupyter ou un fichier Python en conséquence.
Si vous utilisez Google Colab, l'environnement s'exécute par défaut sur un CPU (Central Processing Unit), ce qui peut ralentir l'entraînement. Pour accélérer le processus, en particulier pour les modèles plus volumineux, vous pouvez modifier l'environnement d'exécution pour utiliser un GPU. Dans Google Colab, vous pouvez accéder à l'onglet "Exécution" dans le menu, sélectionner "Modifier le type d'exécution" et définir l'accélérateur matériel sur un GPU (de préférence un GPU T4). Ceci est important pour réduire les temps d'entraînement.
Ensuite, quel que soit l'environnement que vous utilisez, vous devez installer le paquet Python Ultralytics. Si vous utilisez un environnement basé sur un notebook (Google Colab ou Jupyter), exécutez la commande suivante avec un point d'exclamation (!) au début
pip install ultralytics
Étape 2 : Charger YOLO11 et préparer le jeu de données
Une fois le paquet Ultralytics installé, l'étape suivante consiste à charger le modèle YOLO11 et à préparer l'ensemble de données pour l'entraînement. Tout d'abord, nous chargeons le modèle YOLO11, qui est déjà pré-entraîné sur des tâches générales de détection d'objets. Ce modèle pré-entraîné nous donne un bon point de départ, car il a déjà appris à détecter divers objets.
Ensuite, nous spécifions l'ensemble de données à l'aide d'un fichier YAML, qui contient des informations sur les images et les étiquettes. Ce fichier indique au modèle où trouver l'ensemble de données et quels objets il doit apprendre à reconnaître.
L'ensemble de données African Wildlife est pris en charge par le package Ultralytics, il sera donc automatiquement téléchargé lorsque vous commencerez l'entraînement, ce qui vous évitera d'avoir à le configurer manuellement.
Une fois l'ensemble de données prêt, l'entraînement du modèle commence. Le modèle parcourra l'ensemble de données plusieurs fois, un processus appelé entraînement sur plusieurs époques, afin d'améliorer sa capacité à reconnaître les animaux dans les images. Au cours de ce processus, les images seront redimensionnées à une taille uniforme pour le traitement, et le modèle travaillera avec un nombre défini d'images à la fois, appelé lot. Cela permet au modèle d'apprendre plus efficacement.
En résumé, le modèle est chargé, l'ensemble de données est automatiquement téléchargé, et l'entraînement commence à s'exécuter pour détecter les animaux en se basant sur l'ensemble de données African Wildlife lorsque l'extrait de code ci-dessous est exécuté.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
Étape 3 : Procédure pas à pas de l'entraînement YOLO11
Une fois l'extrait de code ci-dessus exécuté, le modèle commence à s'entraîner en fonction des paramètres que nous lui avons donnés. Nous avons indiqué au modèle, par le biais du code, de parcourir les images d'entraînement 30 fois. Cela signifie que le modèle examinera toutes les images de l'ensemble de données 30 fois, en apprenant à chaque fois un peu plus.
Imaginez que vous essayez d'apprendre à dessiner un animal. La première fois que vous dessinez, le résultat n'est peut-être pas bon, mais après vous être entraîné encore et encore, vous commencez à vous améliorer. Chaque fois que vous essayez à nouveau, vous apprenez de vos erreurs et vous les corrigez. C'est ce que chaque epoch fait pour le modèle : il regarde les images, fait des erreurs, en tire des leçons et s'améliore à chaque fois dans la reconnaissance des animaux.
Si le code d'entraînement s'exécute correctement, vous verrez la sortie suivante au fur et à mesure de la progression de l'entraînement :
Configuration de l'entraînement : La première partie indique la version d'Ultralytics, de PyTorch et du matériel utilisé (CPU dans ce cas), ainsi que la configuration de l'entraînement, y compris le modèle (yolo11n.pt), la taille du lot, le nombre d'epochs et la taille de l'image.
Résumé du modèle : Il fournit des informations sur la complexité du modèle, telles que le nombre de couches et de paramètres, montrant ainsi la taille du modèle.
Optimiseur et taux d'apprentissage : Il mentionne l'optimiseur (par exemple, AdamW) et le taux d'apprentissage, qui contrôlent la façon dont le modèle ajuste ses paramètres pendant l'entraînement.
Analyse du jeu de données : Le modèle analyse le jeu de données, indiquant le nombre d'images valides et prêtes pour l'entraînement. Il confirme qu'il n'y a aucun problème avec le jeu de données.
Progression de l'entraînement : La sortie est mise à jour après chaque epoch (cycle d'entraînement), montrant la progression de l'entraînement ainsi que les valeurs de perte clés (box_loss, cls_loss, dfl_loss), qui indiquent la qualité de l'apprentissage du modèle.
Métriques de performance : Après chaque époque, vous verrez des métriques de performance telles que la précision, le rappel et la mAP (précision moyenne moyenne). Ces valeurs indiquent la précision du modèle dans la détection et la classification des objets.
Utilisation de la mémoire GPU : Si vous utilisez un GPU, la sortie affiche l'utilisation de la mémoire pour suivre l'utilisation du matériel.
Fig 2. La sortie que vous verrez pendant l'exécution de l'entraînement du modèle.
Étape 4 : Évaluation des performances du modèle entraîné sur mesure
Une fois le processus d'entraînement terminé, vous pouvez examiner et valider les métriques de performance du modèle. Dans Google Colab, vous pouvez naviguer vers le dossier "runs", puis vers le dossier "detect", et enfin vers le dossier "train", où vous trouverez des journaux affichant les indicateurs clés de performance.
Pour les utilisateurs dans un environnement Python, les résultats de l'entraînement sont enregistrés par défaut dans le répertoire « runs/train/ » de votre répertoire de travail actuel. Chaque exécution d'entraînement crée un nouveau sous-répertoire (par exemple, runs/train/exp, runs/train/exp2, etc.), où vous pouvez trouver les journaux et autres sorties liés à l'entraînement.
Si vous utilisez l'interface en ligne de commande (CLI), vous pouvez facilement accéder à ces résultats et paramètres en utilisant la commande “yolo settings”, qui vous permet de visualiser ou de modifier les chemins et autres configurations liés aux journaux d'entraînement et aux détails de l'expérience.
Parmi les journaux, vous trouverez également des graphiques que vous pouvez consulter pour voir comment s'est déroulé le processus d'entraînement du modèle. Ces graphiques, créés une fois l'entraînement terminé, montrent si le modèle s'est amélioré au fil du temps en faisant moins d'erreurs et en devenant plus précis.
Ils suivent la progression du modèle, montrant comment la perte (la différence entre les prédictions du modèle et les valeurs réelles) a diminué et comment la précision a augmenté pendant l'entraînement. Cela vous aide à comprendre dans quelle mesure le modèle a appris à reconnaître les animaux et dans quelle mesure il s'est amélioré à la fin de l'entraînement.
Fig 3. Un exemple des graphiques que vous pouvez analyser pour évaluer votre modèle.
Indicateurs clés d'évaluation des performances
De plus, voici un aperçu plus détaillé de certaines des métriques que vous pouvez utiliser pour évaluer la performance du modèle :
Précision moyenne (mAP) : Cette métrique mesure la précision globale du modèle dans la détection des animaux dans toutes les classes en faisant la moyenne des scores de précision à différents niveaux de rappel.
Précision : Cela représente le pourcentage de détections qui sont correctes, calculé en divisant le nombre de détections de vrais positifs par le nombre total de détections effectuées.
Rappel (Recall) : Il indique le pourcentage d'animaux réels dans les images qui ont été correctement identifiés par le modèle, ce qui reflète sa capacité à capturer toutes les instances pertinentes.
Ces mesures d'évaluation peuvent aider à affiner le modèle afin d'améliorer la précision avant de l'utiliser dans des applications réelles.
Exécution d'inférences en utilisant votre modèle YOLO11 entraîné sur mesure
Maintenant que nous avons entraîné et évalué YOLO11, il est temps de l'utiliser pour analyser des images et effectuer des inférences. Vous pouvez utiliser les images de test de l'ensemble de données ou de nouvelles images provenant de différentes sources.
Nous utiliserons l'extrait de code suivant pour exécuter le modèle sur une image de l'ensemble de données de test. Il importe les modules nécessaires de la bibliothèque Ultralytics. Il définit ensuite le chemin d'accès au meilleur fichier de poids du modèle (« best.pt ») stocké dans le répertoire des résultats. Le modèle YOLO11 entraîné sur mesure est chargé à l'aide de ces poids.
Ensuite, le chemin d'accès à une image de l'ensemble de données de test African Wildlife est défini. Le modèle est appliqué à cette image pour la détection d'objets, les résultats sont générés et la sortie (tels que les objets détectés ou les annotations) est enregistrée.
from ultralytics import settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_path)
image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"img_results = model(image_path, save=True)
L'image de sortie affichée ci-dessous sera enregistrée dans le dossier "predict" situé dans le répertoire runs/detect. Pour les tests suivants, de nouveaux dossiers tels que "predict2", "predict3", et ainsi de suite seront créés pour stocker les images.
Fig 4. Exécution d'une inférence à l'aide du modèle YOLO11 affiné sur une image de test.
Pour tester des images provenant de différentes sources, vous pouvez utiliser le code ci-dessous. Nous avons utilisé une image de Pexels. Vous pouvez utiliser la même image ou toute autre image pertinente.
L'image de sortie affichée ci-dessous sera enregistrée dans le dossier approprié.
Fig 5. Détection de la faune à l'aide du modèle YOLO11 affiné sur une image non vue.
L'IA au service de la conservation de la faune : Applications concrètes
Les modèles comme YOLO11 peuvent automatiquement détecter et suivre les animaux, ce qui permet une variété d'applications pratiques. Voici un aperçu de certains des principaux domaines où la Vision IA peut être utilisée pour soutenir les efforts de conservation de la faune :
Surveillance des espèces : L'IA de vision peut être utilisée pour traiter des données visuelles telles que des images et des vidéos afin d'identifier avec précision les espèces, de dénombrer les populations et de suivre leurs mouvements au fil du temps.
Alertes de caméras intelligentes : Dans les zones reculées, la vision par ordinateur peut être utilisée pour classifier en continu les animaux et envoyer des alertes en temps réel, permettant aux autorités de la faune de réagir rapidement aux menaces telles que les comportements anormaux des animaux ou les conflits entre l'homme et la faune.
Analyse du comportement : En surveillant la migration, les habitudes alimentaires et les interactions sociales, les systèmes de vision IA peuvent fournir des informations complètes sur la dynamique interespèces.
Prévention du braconnage : L'IA de vision peut être utilisée pour détecter la présence humaine non autorisée et les signes de braconnage tout en tirant parti de l'apprentissage automatique et des données historiques pour identifier les points chauds à risque.
Principaux points à retenir
Les modèles de vision par ordinateur comme YOLO11 peuvent jouer un rôle clé dans la conservation de la faune en automatisant la détection et le suivi des animaux. Grâce à la Vision IA, nous pouvons traiter de grands volumes d'images et de vidéos provenant de diverses sources, ce qui permet de réaliser des évaluations précises de la faune.
Ultralytics YOLO11, en particulier, est un excellent choix pour la détection d'objets en temps réel, ce qui en fait une solution idéale pour des tâches telles que la surveillance anti-braconnage, l'analyse comportementale et la surveillance des écosystèmes. En intégrant des modèles basés sur l'IA dans les efforts de conservation, nous pouvons mieux protéger les espèces, améliorer le suivi de la biodiversité et prendre des décisions plus éclairées pour sauvegarder la faune menacée.