Wenn Sie auf "Alle Cookies akzeptieren" klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Navigation auf der Website zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Mehr Infos
Cookie-Einstellungen
Wenn Sie auf "Alle Cookies akzeptieren" klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Navigation auf der Website zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Mehr Infos
Lernen Sie, wie man YOLO-Modelle trainiert, um Tiere in freier Wildbahn anhand des African Wildlife Dataset zu erkennen und das Modell zu verwenden, um Rückschlüsse auf ungesehene Bilder zu ziehen.
Die Tierwelt unseres Planeten ist unglaublich vielfältig, von summenden Bienen bis zu hoch aufragenden Elefanten, und die Erhaltung dieser Artenvielfalt ist der Schlüssel zur Erhaltung eines ausgewogenen Ökosystems. Der Verlust von Lebensräumen, die Wilderei und der Klimawandel erschweren jedoch die Schutzbemühungen. All diese Faktoren wirken sich negativ auf die Wildtierpopulationen aus.
Herkömmliche Tierüberwachungsmethoden, wie die manuelle Auswertung von Kamerafallenbildern und die Durchführung von Erhebungen vor Ort, können langsam sein und erfordern viele Ressourcen. Mit diesen Maßnahmen können große Gebiete und große Populationen oft nicht effektiv erfasst werden.
Um diese Beschränkungen zu überwinden, kann künstliche Intelligenz (KI) als wirkungsvolles Instrument für den Schutz von Wildtieren eingesetzt werden. Insbesondere können Computer-Vision-Modelle wie Ultralytics YOLO11 visuelle Daten wie Bilder und Videos analysieren, um die Identifizierung und Verfolgung von Tieren in Echtzeit zu automatisieren.
Computer-Vision-Aufgaben wie Objekterkennung und Instanzsegmentierung, die von YOLO11 unterstützt werden, sind hier sehr nützlich. Durch die Analyse visueller Daten helfen uns diese Aufgaben, wichtige Daten zu sammeln, ökologische Muster zu erkennen und effektiver auf Umweltbedrohungen zu reagieren.
In diesem Artikel gehen wir durch den Prozess des Trainings von YOLO11, um Tiere zu erkennen. Los geht's!
Erste Schritte mit Ultralytics YOLO11
Bevor wir in das Tutorial eintauchen, werfen wir einen Blick auf die verschiedenen Einrichtungsoptionen und Werkzeuge, die Sie zum Trainieren und Verwenden von YOLO11 benötigen.
Das wichtigste Werkzeug, das Sie benötigen, ist das Ultralytics-Python-Paket, das die Arbeit mit YOLO-Modellen für Aufgaben wie Training, Erkennung von Objekten und Durchführung von Schlussfolgerungen erleichtert. Um das Ultralytics-Paket zu verwenden, müssen Sie eine Umgebung für die Ausführung Ihres Codes einrichten, und es gibt verschiedene Optionen, aus denen Sie wählen können.
Hier finden Sie einige der beliebtesten Optionen für die Einrichtung Ihrer Entwicklungsumgebung:
Befehlszeilenschnittstelle (CLI): Die Befehlszeilenschnittstelle (CLI), auch bekannt als Terminal, ist ein textbasiertes Werkzeug, mit dem Sie durch die Eingabe von Befehlen mit Ihrem Computer interagieren können. Im Gegensatz zu grafischen Schnittstellen (GUIs), bei denen Sie auf Schaltflächen klicken und eine Maus verwenden, müssen Sie bei der CLI Textanweisungen eingeben, um Programme auszuführen oder Aufgaben zu erledigen.
Jupyter-Notebooks: Mit diesen Notizbüchern können Sie Code in kleinen Abschnitten, sogenannten Zellen, schreiben und ausführen. Es ist interaktiv, d. h. Sie können die Ausgabe Ihres Codes sofort sehen, was das Testen und Debuggen erleichtert.
Google Colab: Google Colab ist eine Cloud-basierte Plattform, die wie Jupyter Notebooks funktioniert, aber kostenlosen Zugang zu leistungsstarken GPUs bietet. Es ist einfach einzurichten und Sie müssen nichts auf Ihrem Computer installieren.
Es gibt zwar noch weitere Optionen für die Einrichtung Ihrer Umgebung, die Sie in der offiziellen Ultralytics-Dokumentation nachlesen können, aber die drei oben genannten Optionen erfordern nur sehr wenig Einrichtungsaufwand und sind einfach zu verwenden, so dass sie ideal für einen schnellen Einstieg sind.
In diesem Tutorial zeigen wir, wie man YOLO11 mit Google Colab, Jupyter Notebooks oder einer einfachen Python-Datei einrichtet und trainiert, da die Schritte in all diesen Umgebungen sehr ähnlich sind.
Den afrikanischen Wildtierdatensatz verstehen
Nach der Auswahl einer Entwicklungsumgebung benötigen wir zum Trainieren von YOLO11 für die Erkennung von Wildtieren einen hochwertigen Datensatz mit beschrifteten Bildern. Jedes Bild sollte deutlich zeigen, wo sich die Tiere befinden und welcher Art sie sind, damit das Modell lernen kann, sie durch überwachtes Lernen zu erkennen.
In diesem Lernprogramm verwenden wir den African Wildlife Dataset. Er wird vom Ultralytics-Python-Paket unterstützt und ist speziell für die Erkennung von Tieren konzipiert, die in afrikanischen Ökosystemen häufig vorkommen. Er enthält kommentierte Bilder von vier wichtigen Arten: Büffel, Elefanten, Nashörner und Zebras.
Abbildung 1. Ein Blick auf den African Wildlife Dataset.
Hier sind einige der wichtigsten Merkmale des African Wildlife Dataset:
Maßstab: Der Datensatz besteht aus 1504 Bildern, die in drei Teilmengen aufgeteilt sind: 1052 für das Training, 225 für die Validierung und 227 für die Tests. Diese Aufteilung stellt sicher, dass das Modell effektiv lernt und gründlich evaluiert wird.
Nahtlose Integration: Ultralytics stellt eine YAML-Konfigurationsdatei zur Verfügung, in der Datensatzpfade, Klassen und andere Details definiert sind, was die Verwendung beim Training von YOLO-Modellen erleichtert.
Offene Lizenz: Dieser Datensatz wird unter der AGPL-3.0-Lizenz verbreitet, um Transparenz und Zusammenarbeit zu fördern.
Schulung von Ultralytics YOLO11 zur Erkennung von Tieren
Nachdem wir nun den African Wildlife Dataset erkundet haben, können wir mit dem Training eines YOLO11-Modells zur Erkennung von Tieren in Bildern beginnen. Der Prozess umfasst das Einrichten der Entwicklungsumgebung, das Trainieren des YOLO11-Modells und das Auswerten der Leistung des Modells.
Schritt 1: Einrichten der Umgebung
Für den Anfang bereiten wir eine Umgebung zum Trainieren und Testen des Modells vor. Je nach Vorliebe können Google Colab, Jupyter Notebooks oder eine einfache Python-Datei verwendet werden. Erstellen Sie entsprechend ein neues Google Colab-Notizbuch, ein Jupyter-Notizbuch oder eine Python-Datei.
Wenn Sie Google Colab verwenden, läuft die Umgebung standardmäßig auf einer CPU (Central Processing Unit), was das Training verlangsamen kann. Um den Prozess zu beschleunigen, insbesondere bei größeren Modellen, können Sie die Laufzeit auf die Verwendung eines Grafikprozessors umstellen. In Google Colab können Sie im Menü zur Registerkarte "Runtime" navigieren, "Change runtime type" auswählen und den Hardware-Beschleuniger auf eine GPU (vorzugsweise eine T4 GPU) einstellen. Dies ist wichtig, um die Trainingszeiten zu verkürzen.
Als Nächstes müssen Sie unabhängig von der von Ihnen verwendeten Umgebung das Ultralytics-Python-Paket installieren. Wenn Sie eine Notebook-basierte Umgebung (Google Colab oder Jupyter) verwenden, führen Sie den folgenden Befehl mit einem Ausrufezeichen (!) am Anfang aus
pip install ultralytics
Schritt 2: Laden von YOLO11 und Vorbereitung des Datensatzes
Nach der Installation des Ultralytics-Pakets ist der nächste Schritt das Laden des YOLO11-Modells und die Vorbereitung des Datensatzes für das Training. Zunächst laden wir das YOLO11-Modell, das bereits für allgemeine Objekterkennungsaufgaben trainiert wurde. Dieses bereits trainierte Modell bietet uns einen guten Ausgangspunkt, da es bereits gelernt hat, wie man verschiedene Objekte erkennt.
Dann spezifizieren wir den Datensatz mithilfe einer YAML-Datei, die Informationen über die Bilder und Beschriftungen enthält. Diese Datei teilt dem Modell mit, wo es den Datensatz finden kann und welche Objekte es erkennen soll.
Der African Wildlife Dataset wird vom Ultralytics-Paket unterstützt, d. h. er wird automatisch heruntergeladen, wenn Sie das Training starten, so dass Sie ihn nicht manuell einrichten müssen.
Sobald der Datensatz fertig ist, beginnt das Modell mit dem Training. Das Modell durchläuft den Datensatz mehrmals, ein Prozess, der als Training über mehrere Epochen bezeichnet wird, um seine Fähigkeit, Tiere auf den Bildern zu erkennen, zu verbessern. Während dieses Prozesses werden die Bilder auf eine einheitliche Größe für die Verarbeitung gebracht, und das Modell arbeitet mit einer bestimmten Anzahl von Bildern auf einmal, die als Stapel bezeichnet wird. Dies hilft dem Modell, effizienter zu lernen.
Kurz gesagt, das Modell wird geladen, der Datensatz wird automatisch heruntergeladen, und das Training beginnt, um Tiere auf der Grundlage des African Wildlife Dataset zu erkennen, wenn der unten stehende Codeausschnitt ausgeführt wird.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
Schritt 3: YOLO11-Schulungsdurchgang
Sobald das obige Codeschnipsel ausgeführt wird, beginnt das Modell mit dem Training auf der Grundlage der Einstellungen, die wir ihm gegeben haben. Wir haben das Modell durch den Code angewiesen, die Trainingsbilder 30 Mal durchzugehen. Das bedeutet, dass sich das Modell alle Bilder im Datensatz 30 Mal ansieht und jedes Mal ein bisschen mehr lernt.
Stell dir vor, du versuchst zu lernen, wie man ein Tier zeichnet. Beim ersten Mal sieht es vielleicht nicht gut aus, aber wenn du immer wieder übst, wirst du immer besser. Jedes Mal, wenn du es erneut versuchst, lernst du daraus, was falsch gelaufen ist, und korrigierst es. Das ist es, was jede Epoche für das Modell tut - es schaut sich die Bilder an, macht Fehler, lernt daraus und wird von Mal zu Mal besser im Erkennen von Tieren.
Wenn der Trainingscode erfolgreich läuft, sehen Sie die folgende Ausgabe, während das Training fortschreitet:
Trainingsaufbau: Der erste Teil zeigt die Version von Ultralytics, PyTorch und die verwendete Hardware (in diesem Fall die CPU), zusammen mit der Trainingskonfiguration, einschließlich des Modells (yolo11n.pt), der Stapelgröße, der Epochen und der Bildgröße.
Modellzusammenfassung: Sie gibt Auskunft über die Komplexität des Modells, wie z. B. die Anzahl der Schichten und Parameter, und zeigt, wie groß das Modell ist.
Optimierer und Lernrate: Hier werden der Optimierer (z. B. AdamW) und die Lernrate erwähnt, die steuern, wie das Modell seine Parameter während des Trainings anpasst.
Scannen des Datensatzes: Das Modell scannt den Datensatz und zeigt an, wie viele Bilder gültig und für das Training bereit sind. Es bestätigt, dass es keine Probleme mit dem Datensatz gibt.
Trainingsfortschritt: Die Ausgabe wird nach jeder Epoche (Trainingszyklus) aktualisiert und zeigt den Trainingsfortschritt zusammen mit den wichtigsten Verlustwerten (box_loss, cls_loss, dfl_loss), die angeben, wie gut das Modell lernt.
Leistungsmetriken: Nach jeder Epoche werden Leistungskennzahlen wie Präzision, Recall und mAP (mittlere durchschnittliche Präzision) angezeigt. Diese Werte zeigen, wie genau das Modell bei der Erkennung und Klassifizierung von Objekten ist.
GPU-Speicherverbrauch: Wenn Sie einen Grafikprozessor verwenden, zeigt die Ausgabe die Speichernutzung an, um die Hardwareauslastung zu verfolgen.
Abb. 2. Die Ausgabe, die Sie sehen werden, wenn das Modelltraining läuft.
Schritt 4: Bewertung der Leistung des individuell trainierten Modells
Nach Abschluss des Trainingsprozesses können Sie die Leistungskennzahlen des Modells überprüfen und validieren. In Google Colab können Sie zum Ordner "runs", dann zum Ordner "detect" und schließlich zum Ordner "train" navigieren, wo Sie die Protokolle mit den wichtigsten Leistungsindikatoren finden.
Für Benutzer in einer Python-Umgebung werden die Trainingsergebnisse standardmäßig im Verzeichnis "runs/train/" in Ihrem aktuellen Arbeitsverzeichnis gespeichert. Jeder Trainingslauf erstellt ein neues Unterverzeichnis (z. B. runs/train/exp, runs/train/exp2 usw.), in dem Sie die Protokolle und andere Ausgaben im Zusammenhang mit dem Training finden können.
Wenn Sie die Befehlszeilenschnittstelle (CLI) verwenden, können Sie auf diese Ergebnisse und Einstellungen leicht zugreifen, indem Sie den Befehl "yolo settings" verwenden, mit dem Sie die Pfade und andere Konfigurationen im Zusammenhang mit den Trainingsprotokollen und Experimentdetails anzeigen oder ändern können.
In den Protokollen finden Sie auch einige Diagramme, anhand derer Sie sehen können, wie gut das Modelltraining verlaufen ist. Diese Diagramme, die nach Abschluss des Trainings erstellt werden, zeigen, ob sich das Modell im Laufe der Zeit verbessert hat, indem es weniger Fehler machte und genauer wurde.
Sie verfolgen den Fortschritt des Modells und zeigen, wie der Verlust (die Differenz zwischen den Vorhersagen des Modells und den tatsächlichen Werten) abnimmt und wie die Genauigkeit während des Trainings zunimmt. So können Sie nachvollziehen, wie gut das Modell gelernt hat, Tiere zu erkennen, und wie sehr es sich bis zum Ende des Trainings verbessert hat.
Abbildung 3. Ein Beispiel für die Diagramme, die Sie zur Bewertung Ihres Modells analysieren können.
Wichtige Leistungsbewertungskennzahlen
Außerdem sehen Sie sich einige der Metriken genauer an, mit denen Sie die Leistung des Modells bewerten können:
Mittlere durchschnittliche Genauigkeit (mAP): Diese Metrik misst die Gesamtgenauigkeit des Modells bei der Erkennung von Tieren über alle Klassen hinweg, indem die Präzisionswerte bei verschiedenen Recall-Werten gemittelt werden.
Präzision: Dies ist der Prozentsatz der korrekten Erkennungen, der berechnet wird, indem die Anzahl der richtig positiven Erkennungen durch die Gesamtzahl der durchgeführten Erkennungen geteilt wird.
Wiedererkennungswert: Sie gibt den Prozentsatz der tatsächlichen Tiere in den Bildern an, die vom Modell korrekt identifiziert wurden, was seine Fähigkeit widerspiegelt, alle relevanten Instanzen zu erfassen.
Diese Bewertungsmetriken können dazu beitragen, die Genauigkeit des Modells zu verbessern, bevor es in realen Anwendungen eingesetzt wird.
Ausführen von Schlussfolgerungen mit Ihrem individuell trainierten YOLO11-Modell
Nun, da wir YOLO11 trainiert und bewertet haben, ist es an der Zeit, es zur Analyse von Bildern und zur Durchführung von Schlussfolgerungen zu verwenden. Sie können die Testbilder aus dem Datensatz oder neue Bilder aus verschiedenen Quellen verwenden.
Wir verwenden den folgenden Codeausschnitt, um das Modell auf einem Bild im Testdatensatz auszuführen. Er importiert die erforderlichen Module aus der Ultralytics-Bibliothek. Anschließend wird der Pfad zur Datei mit den besten Modellgewichten ("best.pt") definiert, die im Verzeichnis der Ergebnisse gespeichert ist. Das vom Benutzer trainierte YOLO11-Modell wird mit diesen Gewichten geladen.
Danach wird der Pfad zu einem Bild aus dem African Wildlife Testdatensatz festgelegt. Das Modell wird auf dieses Bild zur Objekterkennung angewendet, die Ergebnisse werden generiert und die Ausgabe (wie erkannte Objekte oder Anmerkungen) wird gespeichert.
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)
Das unten gezeigte Ausgabebild wird im Ordner "predict" gespeichert, der sich im Verzeichnis runs/detect befindet. Für nachfolgende Tests werden neue Ordner wie "predict2", "predict3" usw. erstellt, um die Bilder zu speichern.
Abb. 4. Durchführung einer Inferenz mit dem feinabgestimmten YOLO11-Modell auf einem Testbild.
Um Bilder aus verschiedenen Quellen zu testen, können Sie den unten stehenden Code verwenden. Wir haben ein Bild von Pexels verwendet. Sie können dasselbe Bild oder jedes andere relevante Bild verwenden.
Das unten gezeigte Ausgabebild wird in dem entsprechenden Ordner gespeichert.
Abb. 5. Erkennung von Wildtieren mit dem fein abgestimmten YOLO11-Modell auf einem ungesehenen Bild.
KI für den Schutz von Wildtieren: Anwendungen in der realen Welt
Modelle wie YOLO11 können Tiere automatisch erkennen und verfolgen, was eine Vielzahl von praktischen Anwendungen ermöglicht. Hier ein kleiner Einblick in einige der wichtigsten Bereiche, in denen Vision AI zur Unterstützung der Bemühungen zum Schutz der Tierwelt eingesetzt werden kann:
Überwachung von Arten: Mit Hilfe von KI können visuelle Daten wie Bilder und Videos verarbeitet werden, um Arten genau zu identifizieren, Populationen zu zählen und ihre Bewegungen im Laufe der Zeit zu verfolgen.
Intelligente Kamerawarnungen: In abgelegenen Gebieten kann die Computer Vision eingesetzt werden, um Tiere kontinuierlich zu klassifizieren und Echtzeitwarnungen zu senden, so dass Wildtierbehörden schnell auf Bedrohungen wie abnormales Tierverhalten oder Konflikte zwischen Mensch und Tier reagieren können.
Verhaltensanalyse: Durch die Überwachung von Wanderungen, Fütterungsgewohnheiten und sozialen Interaktionen können KI-Systeme umfassende Einblicke in die Dynamik zwischen den Arten geben.
Prävention von Wilderei: Vision AI kann eingesetzt werden, um die Anwesenheit unbefugter Menschen und Anzeichen von Wilderei zu erkennen und gleichzeitig maschinelles Lernen und historische Daten zu nutzen, um Risiko-Hotspots zu lokalisieren.
Die wichtigsten Erkenntnisse
Computer-Vision-Modelle wie YOLO11 können eine Schlüsselrolle beim Schutz von Wildtieren spielen, indem sie die Erkennung und Verfolgung von Tieren automatisieren. Mit Vision AI können wir große Mengen an Bildern und Videos aus verschiedenen Quellen verarbeiten, was eine genaue Bewertung von Wildtieren ermöglicht.
Ultralytics YOLO11 eignet sich besonders gut für die Objekterkennung in Echtzeit und ist damit die perfekte Lösung für Aufgaben wie die Überwachung von Wilderern, Verhaltensanalysen und die Überwachung von Ökosystemen. Durch die Einbeziehung von KI-gesteuerten Modellen in die Naturschutzbemühungen können wir Arten besser schützen, die Verfolgung der Artenvielfalt verbessern und fundiertere Entscheidungen zum Schutz gefährdeter Wildtiere treffen.