En cliquant sur "Accepter tous les cookies", vous acceptez que des cookies soient stockés sur votre appareil afin d'améliorer la navigation sur le site, d'analyser l'utilisation du site et de nous aider dans nos efforts de marketing. Plus d'informations
Paramètres des cookies
En cliquant sur "Accepter tous les cookies", vous acceptez que des cookies soient stockés sur votre appareil afin d'améliorer la navigation sur le site, d'analyser l'utilisation du site et de nous aider dans nos efforts de marketing. Plus d'informations
Apprenez à former des modèles YOLO pour détecter des animaux dans la nature à l'aide de l'ensemble de données sur la faune africaine et utilisez le modèle pour effectuer des déductions sur des images inédites.
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 deviennent de plus en plus difficiles en raison de la perte d'habitat, du braconnage et du changement climatique. Tous ces facteurs ont un impact négatif sur les populations d'animaux sauvages.
Les méthodes traditionnelles de surveillance des animaux, comme l'analyse manuelle des images des pièges photographiques et les enquêtes sur le terrain, peuvent être lentes et nécessiter beaucoup de ressources. Ces efforts ne permettent souvent pas de couvrir efficacement de vastes zones et de grandes populations.
Pour surmonter ces limites, l'intelligence artificielle (IA) peut être utilisée comme un outil efficace pour la conservation de la faune. Plus précisément, les modèles de vision artificielle comme Ultralytics YOLO11 peuvent analyser des données visuelles telles que des images et des vidéos afin d'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 à cet égard. En analysant les données visuelles, ces tâches nous aident à collecter des données cruciales, à identifier des modèles écologiques et à réagir plus efficacement aux menaces environnementales.
Dans cet article, nous allons voir comment apprendre à YOLO11 à détecter les animaux. Commençons par le début !
Démarrer avec Ultralytics YOLO11
Avant de plonger dans le tutoriel, jetons un coup d'œil aux différentes options de configuration et aux outils dont vous aurez besoin pour former et utiliser YOLO11.
Le principal outil dont vous aurez besoin est le paquetage Ultralytics Python, 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 pouvez choisir parmi plusieurs options.
Voici quelques-unes des options les plus courantes pour configurer votre environnement de développement :
Interface de ligne de commande (CLI): L'interface de ligne de commande, é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 demande de taper des instructions textuelles pour exécuter des programmes ou des tâches.
Carnets Jupyter: Ces carnets vous permettent d'écrire et d'exécuter du code dans de petits morceaux appelés cellules. Ils sont interactifs, ce qui signifie que vous pouvez voir immédiatement la sortie de votre code, 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 carnets Jupyter, mais qui offre un accès gratuit à de puissants GPU. Elle est facile à configurer et vous n'avez pas besoin d'installer quoi que ce soit 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 montrer comment configurer et entraîner YOLO11 en utilisant Google Colab, Jupyter Notebooks, ou 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, nous avons besoin d'un ensemble d'images étiquetées de haute qualité pour entraîner YOLO11 à la détection spécifique des animaux sauvages. Chaque image doit indiquer clairement 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 utiliserons le jeu de données sur la faune africaine. Il est pris en charge par le paquetage Python Ultralytics et est spécifiquement 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 : buffles, éléphants, rhinocéros et zèbres.
Fig. 1. Aperçu de l'ensemble de données sur la faune africaine.
Voici quelques caractéristiques clés de la base de données sur la faune africaine :
Échelle : L'ensemble de données se compose de 1504 images divisées en trois sous-ensembles : 1052 pour la formation, 225 pour la validation et 227 pour le test. Cette répartition permet au modèle d'apprendre efficacement et d'être évalué de manière approfondie.
Intégration transparente : Ultralytics fournit un fichier de configuration YAML qui définit les chemins d'accès aux jeux 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 : Ce jeu de données est distribué sous la licence AGPL-3.0, qui encourage la transparence et la collaboration.
Formation de 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 comprend 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 : Mise en place de l'environnement
Pour commencer, nous allons préparer un environnement pour l'entraînement et le test du modèle. Vous pouvez utiliser Google Colab, Jupyter Notebooks ou un simple fichier Python, selon vos préférences. Créez un nouveau carnet Google Colab, un carnet Jupyter ou un fichier Python en conséquence.
Si vous utilisez Google Colab, l'environnement fonctionne par défaut sur un CPU (Central Processing Unit), ce qui peut ralentir la formation. Pour accélérer le processus, en particulier pour les modèles de grande taille, vous pouvez basculer l'exécution sur un GPU. Dans Google Colab, vous pouvez accéder à l'onglet "Runtime" dans le menu, sélectionner "Change runtime type" 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 de formation.
Ensuite, quel que soit l'environnement que vous utilisez, vous devez installer le paquetage Python Ultralytics. Si vous utilisez un environnement basé sur un carnet de notes (Google Colab ou Jupyter), exécutez la commande suivante avec un point d'exclamation ( !) au début
pip install ultralytics
Étape 2 : Chargement de YOLO11 et préparation du jeu de données
Une fois le package 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é pour 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 différents 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 sur la faune africaine est pris en charge par le logiciel Ultralytics. Il sera donc automatiquement téléchargé lorsque vous démarrerez la formation, ce qui vous évitera d'avoir à le configurer manuellement.
Une fois que l'ensemble de données est prêt, le modèle commence l'entraînement. 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 sont redimensionnées à une taille cohérente pour le traitement, et le modèle travaille avec un nombre défini d'images à la fois, appelé lot. Cela permet au modèle d'apprendre plus efficacement.
En bref, le modèle est chargé, l'ensemble de données est automatiquement téléchargé et l'entraînement commence pour détecter les animaux sur la base de l'ensemble de données sur la faune africaine 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 : Formation à YOLO11
Une fois que l'extrait de code ci-dessus est exécuté, le modèle commence à s'entraîner sur la base des paramètres que nous lui avons donnés. Nous avons demandé au modèle, par l'intermédiaire du code, d'examiner 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 très bon, mais après vous être entraîné encore et encore, vous commencez à vous améliorer. Chaque fois que vous réessayez, vous tirez des leçons de ce qui n'a pas fonctionné et vous le corrigez. C'est ce que fait chaque époque pour le modèle : il examine les images, commet des erreurs, en tire des leçons et s'améliore à chaque fois dans la reconnaissance des animaux.
Si le code de formation s'exécute correctement, vous obtiendrez les résultats suivants au fur et à mesure de la progression de la formation :
Configuration de l'entraînement: La première partie montre la version d'Ultralytics, PyTorch, et le 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, les époques 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, indiquant 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 manière dont le modèle ajuste ses paramètres pendant l'apprentissage.
Analyse de l'ensemble de données: Le modèle analyse l'ensemble de données, montrant combien d'images sont valides et prêtes pour la formation. Il confirme que l'ensemble de données ne présente aucun problème.
Progression de l'apprentissage: La sortie est actualisée après chaque époque (cycle d'apprentissage), indiquant la progression de l'apprentissage ainsi que les principales valeurs de perte (box_loss, cls_loss, dfl_loss), qui indiquent la qualité de l'apprentissage du modèle.
Mesures de performance: Après chaque époque, vous verrez des mesures de performance telles que la précision, le rappel et la mAP (précision moyenne). Ces valeurs indiquent le degré de précision avec lequel le modèle détecte et classe les objets.
Utilisation de la mémoire du GPU: Si vous utilisez un GPU, la sortie indique l'utilisation de la mémoire pour suivre l'utilisation du matériel.
Fig. 2. La sortie que vous verrez pendant l'apprentissage du modèle.
Étape 4 : Évaluation des performances du modèle entraîné sur mesure
Une fois le processus de formation terminé, vous pouvez examiner et valider les mesures 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 principaux indicateurs de performance.
Pour les utilisateurs d'un environnement Python, les résultats de la formation sont enregistrés par défaut dans le répertoire "runs/train/" de votre répertoire de travail actuel. Chaque 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 résultats liés à l'entraînement.
Si vous utilisez l'interface de programmation, vous pouvez facilement accéder à ces résultats et paramètres en utilisant la commande "yolo settings", qui vous permet d'afficher ou de modifier les chemins et autres configurations liés aux journaux de formation et aux détails de l'expérience.
Parmi les journaux, vous trouverez également des graphiques que vous pourrez consulter pour voir si le processus de formation du modèle s'est bien déroulé. Ces graphiques, créés une fois la formation terminée, indiquent si le modèle s'est amélioré au fil du temps en commettant moins d'erreurs et en devenant plus précis.
Ils suivent les progrès du modèle, en 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é au cours de la formation. Cela vous aide à comprendre à quel point le modèle a appris à reconnaître les animaux et à quel point il s'est amélioré à la fin de la formation.
Fig. 3. Exemple de graphiques que vous pouvez analyser pour évaluer votre modèle.
Mesures d'évaluation des performances clés
Voici également un examen plus approfondi de certains des paramètres que vous pouvez utiliser pour évaluer les performances 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 : Elle représente le pourcentage de détections correctes, calculé en divisant le nombre de vraies détections positives par le nombre total de détections effectuées.
Rappel : 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 pour en améliorer la précision avant de l'utiliser dans des applications réelles.
Effectuer des inférences à l'aide de votre modèle YOLO11 personnalisé
Maintenant que nous avons entraîné et évalué YOLO11, il est temps de l'utiliser pour analyser les images et faire des déductions. 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 fichier des poids du meilleur 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 de la faune africaine 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 (objets détectés ou 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 présenté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", etc. 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 test.
Pour tester des images provenant de différentes sources, vous pouvez utiliser le code ci-dessous. Nous avons utilisé une image provenant de Pexels. Vous pouvez utiliser la même image ou toute autre image pertinente.
L'image de sortie présenté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 inédite.
L'IA au service de la conservation de la faune : Applications dans le monde réel
Des modèles comme YOLO11 peuvent détecter et suivre automatiquement les animaux, ce qui permet une variété d'applications pratiques. Voici un aperçu de quelques-uns des domaines clés dans lesquels Vision AI peut être utilisée pour soutenir les efforts de conservation de la faune:
Surveillance des espèces : L'IA de la 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 compter les populations et de suivre leurs mouvements au fil du temps.
Alertes par caméra intelligente : Dans les zones reculées, la vision par ordinateur peut être utilisée pour classer les animaux en continu et envoyer des alertes en temps réel, ce qui permet aux autorités chargées de la protection de la faune de réagir rapidement aux menaces telles qu'un comportement animal anormal ou des conflits entre l'homme et la faune.
Analyse du comportement : En surveillant la migration, les habitudes alimentaires et les interactions sociales, les systèmes d'IA visionnaire peuvent fournir des informations complètes sur la dynamique entre les espè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 repérer les zones à risque.
Principaux enseignements
Les modèles de vision artificielle 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 à Vision AI, nous pouvons traiter de grands volumes d'images et de vidéos provenant de diverses sources, ce qui permet d'effectuer des évaluations précises de la faune et de la flore.
Ultralytics YOLO11, en particulier, est un excellent choix pour la détection d'objets en temps réel, ce qui le rend parfaitement adapté à des tâches telles que la surveillance anti-braconnage, l'analyse comportementale et la surveillance des écosystèmes. En intégrant des modèles pilotés par 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 les espèces sauvages menacées.