Grüner Scheck
Link in die Zwischenablage kopiert

Wie man Ultralytics YOLO trainiert, um Tiere in freier Wildbahn aufzuspüren

Lerne, wie du YOLO trainierst, um Tiere in der Wildnis zu erkennen, indem du den African Wildlife Dataset verwendest und das Modell nutzt, um Rückschlüsse auf ungesehene Bilder zu ziehen.

Die Tierwelt unseres Planeten ist unglaublich vielfältig, von summenden Bienen bis hin zu riesigen Elefanten, und der Erhalt dieser Artenvielfalt ist der Schlüssel zum Erhalt eines ausgewogenen Ökosystems. Der Verlust von Lebensräumen, die Wilderei und der Klimawandel machen den Schutz jedoch immer schwieriger. 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 Methoden können große Gebiete und große Populationen oft nicht effektiv erfasst werden.

Um diese Einschränkungen zu überwinden, kann künstliche Intelligenz (KI) als wirkungsvolles Instrument für den Schutz von Wildtieren eingesetzt werden. Vor allem Computer-Vision-Modelle wie Ultralytics YOLO11 können visuelle Daten wie Bilder und Videos analysieren, um die Identifizierung und Verfolgung von Tieren in Echtzeit zu automatisieren. 

Bildverarbeitungsaufgaben 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, wie du YOLO11 trainierst, Tiere zu erkennen. Los geht's!

Erste Schritte mit Ultralytics YOLO11

Bevor wir in das Tutorial einsteigen, werfen wir einen Blick auf die verschiedenen Einrichtungsoptionen und Werkzeuge, die du brauchst, um YOLO11 zu trainieren und zu nutzen. 

Das wichtigste Werkzeug, das du brauchst, ist das Ultralytics Python , das die Arbeit mit YOLO für Aufgaben wie das Training, die Erkennung von Objekten und die Durchführung von Schlussfolgerungen erleichtert. Um das Ultralytics zu nutzen, musst du eine Umgebung einrichten, in der du deinen Code ausführen kannst, und es gibt verschiedene Optionen, aus denen du wählen kannst.

Hier sind einige der beliebtesten Optionen, um deine Entwicklungsumgebung einzurichten:

  • Befehlszeilenschnittstelle (CLI): Die CLI, auch bekannt als Terminal, ist ein textbasiertes Werkzeug, mit dem du durch die Eingabe von Befehlen mit deinem Computer interagieren kannst. Im Gegensatz zu grafischen Benutzeroberflächen (GUIs), bei denen du auf Schaltflächen klickst und eine Maus benutzt, musst du bei der CLI Textanweisungen eingeben, um Programme oder Aufgaben auszuführen.
  • Jupyter Notebooks: Mit diesen Notizbüchern kannst du Code in kleinen Abschnitten, sogenannten Zellen, schreiben und ausführen. Sie sind interaktiv, das heißt, du kannst die Ausgabe deines Codes sofort sehen, was das Testen und Debuggen erleichtert.
  • Google Colab: Google Colab ist eine cloudbasierte Plattform, die wie Jupyter Notebooks funktioniert, aber kostenlosen Zugang zu leistungsstarken GPUs bietet. Es ist einfach einzurichten und du musst nichts auf deinem Computer installieren.

Es gibt zwar noch andere Möglichkeiten, deine Umgebung einzurichten, die du in der offiziellen Ultralytics nachlesen kannst, aber die drei oben genannten Optionen erfordern nur sehr wenig Einrichtungsaufwand und sind einfach zu bedienen, so dass sie ideal für einen schnellen Einstieg sind. 

In diesem Tutorial zeigen wir dir, wie du YOLO11 mit Google Colab, Jupyter Notebooks oder einer einfachen Python einrichtest und trainierst, da die Schritte in all diesen Umgebungen sehr ähnlich sind.

Den afrikanischen Wildtierdatensatz verstehen

Nachdem wir eine Entwicklungsumgebung ausgewählt haben, brauchen wir einen hochwertigen Datensatz mit beschrifteten Bildern, um YOLO11 auf die Erkennung von Wildtieren zu trainieren. Auf jedem Bild sollte klar zu erkennen sein, wo sich die Tiere befinden und um welche Art es sich handelt, damit das Modell durch überwachtes Lernen lernen kann, sie zu erkennen.

In diesem Tutorial werden wir den African Wildlife Dataset verwenden. Er wird vom Ultralytics Python unterstützt und wurde speziell für die Erkennung von Tieren entwickelt, die häufig in afrikanischen Ökosystemen vorkommen. Er enthält kommentierte Bilder von vier wichtigen Arten: Büffel, Elefanten, Nashörner und Zebras.

Abb. 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 Untergruppen aufgeteilt sind: 1052 zum Trainieren, 225 zur Validierung und 227 zum Testen. 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 erleichtert.

  • Offene Lizenz: Dieser Datensatz wird unter der AGPL-3.0 verbreitet, um Transparenz und Zusammenarbeit zu fördern.

Training Ultralytics YOLO11 für die Tiererkennung

Nachdem wir nun den African Wildlife Dataset erkundet haben, können wir mit dem Training eines YOLO11 zur Erkennung von Tieren in Bildern beginnen. Dazu müssen wir die Entwicklungsumgebung einrichten, das YOLO11 trainieren und die Leistung des Modells auswerten.

Schritt 1: Einrichten der Umgebung

Um loszulegen, bereiten wir eine Umgebung zum Trainieren und Testen des Modells vor. Je nach deiner Vorliebe kannst du Google Colab, Jupyter Notebooks oder eine einfache Python verwenden. Erstelle ein neues Google Colab Notizbuch, ein Jupyter Notebook oder eine Python .

Wenn du Google Colab verwendest, 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, kannst du die Laufzeit auf einen GPU umstellen. In Google Colab kannst du im Menü auf die Registerkarte "Runtime" gehen, "Change runtime type" auswählen und den Hardwarebeschleuniger auf einen GPU (vorzugsweise einen GPU) einstellen. Das ist wichtig, um die Trainingszeiten zu verkürzen.

Als Nächstes musst du unabhängig von der Umgebung, die du verwendest, das Ultralytics Python installieren. Wenn du eine notebookbasierte UmgebungGoogle Colab oder Jupyter) verwendest, führe den folgenden Befehl mit einem Ausrufezeichen (!) am Anfang aus

pip install ultralytics

Schritt 2: Laden von YOLO11 und Vorbereiten des Datensatzes

Sobald das Ultralytics installiert ist, wird im nächsten Schritt das YOLO11 geladen und der Datensatz für das Training vorbereitet. Als Erstes laden wir das YOLO11 , das bereits auf allgemeine Objekterkennungsaufgaben trainiert ist. Dieses Modell bietet uns einen guten Ausgangspunkt, da es bereits gelernt hat, wie man verschiedene Objekte erkennt.

Dann legen wir den Datensatz mithilfe einer YAML-Datei fest, 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 unterstützt, so dass er automatisch heruntergeladen wird, wenn du das Training startest, was dir die manuelle Einrichtung erspart.

Sobald der Datensatz fertig ist, beginnt das Modell mit dem Training. Das Modell durchläuft den Datensatz mehrere Male, ein Prozess, der als Training über mehrere Epochen bezeichnet wird, um seine Fähigkeit zu verbessern, Tiere auf den Bildern zu erkennen. Während dieses Prozesses werden die Bilder für die Verarbeitung auf eine einheitliche Größe gebracht, und das Modell arbeitet mit einer bestimmten Anzahl von Bildern auf einmal, die als Stapel bezeichnet wird. So kann das Modell effizienter 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 folgende 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 Training Walkthrough

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 dem Modell über den Code gesagt, dass es die Trainingsbilder 30 Mal durchgehen soll. 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 nachdem du immer wieder geübt hast, wirst du immer besser. Jedes Mal, wenn du es wieder versuchst, lernst du daraus, was schief gelaufen ist und verbesserst 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, siehst du die folgende Ausgabe, während das Training fortschreitet:

  • Trainingseinstellungen: Der erste Teil zeigt die Version von Ultralytics, PyTorch und die verwendete HardwareCPU in diesem FallCPU ), 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, 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 angegeben, die steuern, wie das Modell seine Parameter während des Trainings anpasst.
  • Datensatz scannen: Das Modell scannt den Datensatz und zeigt an, wie viele Bilder gültig und bereit für das Training 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) an, die angeben, wie gut das Modell lernt.
  • Leistungsmetriken: Nach jeder Epoche siehst du Leistungskennzahlen wie Präzision, Wiedererkennung und mAP (mittlere durchschnittliche Präzision). Diese Werte zeigen, wie genau das Modell Objekte erkennt und klassifiziert.
  • GPU : Wenn du einen GPU verwendest, zeigt die Ausgabe die Speichernutzung an, um die Hardwareauslastung zu verfolgen.
Abb. 2. Die Ausgabe, die du sehen wirst, während das Modelltraining läuft.

Schritt 4: Bewertung der Leistung des individuell trainierten Modells

Nachdem der Trainingsprozess abgeschlossen ist, kannst du die Leistungskennzahlen des Modells überprüfen und bestätigen. In Google Colab kannst du zum Ordner "runs", dann zum Ordner "detect" und schließlich zum Ordner "train" navigieren, wo du die Protokolle mit den wichtigsten Leistungsindikatoren findest.

Für Benutzer in einer Python werden die Trainingsergebnisse standardmäßig im Verzeichnis "runs/train/" in deinem aktuellen Arbeitsverzeichnis gespeichert. Jeder Trainingslauf erstellt ein neues Unterverzeichnis (z. B. runs/train/exp, runs/train/exp2 usw.), in dem du die Protokolle und andere Ausgaben zum Training findest.

Wenn du die CLI verwendest, kannst du mit dem Befehl "yolo settings" ganz einfach auf diese Ergebnisse und Einstellungen zugreifen. Damit kannst du die Pfade und andere Konfigurationen in Bezug auf die Trainingsprotokolle und Experimentdetails anzeigen oder ändern.

In den Protokollen findest du auch einige Diagramme, die du dir ansehen kannst, um zu sehen, wie gut das Modelltraining gelaufen 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 kannst du nachvollziehen, wie gut das Modell gelernt hat, Tiere zu erkennen und wie sehr es sich am Ende des Trainings verbessert hat.

Abb. 3. Ein Beispiel für die Diagramme, die du analysieren kannst, um dein Modell zu bewerten.

Wichtige Leistungsbewertungskennzahlen

Außerdem findest du hier einige der Kennzahlen, mit denen du die Leistung des Modells bewerten kannst:

  • Mittlere durchschnittliche Genauigkeit (mAP): Diese Metrik misst die Gesamtgenauigkeit des Modells bei der Erkennung von Tieren über alle Klassen hinweg, indem sie die Präzisionswerte bei verschiedenen Recall-Werten mittelt.
  • 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.
  • Wiedererkennung: Sie gibt den Prozentsatz der tatsächlichen Tiere auf den Bildern an, die vom Modell richtig identifiziert wurden, und spiegelt seine Fähigkeit wider, alle relevanten Fälle zu erfassen.

Diese Bewertungskennzahlen können dabei helfen, das Modell zu verfeinern, um die Genauigkeit zu verbessern, bevor es in der realen Welt eingesetzt wird.

Schlussfolgerungen mit deinem individuell trainierten YOLO11 ziehen

Jetzt, wo wir YOLO11 trainiert und ausgewertet haben, ist es an der Zeit, es zur Analyse von Bildern und zur Durchführung von Schlussfolgerungen einzusetzen. Du kannst die Testbilder aus dem Datensatz oder neue Bilder aus verschiedenen Quellen verwenden.

Wir verwenden den folgenden Codeschnipsel, um das Modell auf ein Bild im Testdatensatz anzuwenden. Er importiert die notwendigen Module aus der Ultralytics . Anschließend wird der Pfad zur Datei mit den besten Modellgewichten ("best.pt") im Ergebnisverzeichnis angegeben. Das individuell trainierte YOLO11 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 (z. B. 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" im Verzeichnis runs/detect gespeichert. Für nachfolgende Tests werden neue Ordner wie "predict2", "predict3" und so weiter erstellt, um die Bilder zu speichern.

Abb. 4. Durchführung einer Inferenz mit dem fein abgestimmten YOLO11 auf einem Testbild.

Um Bilder aus verschiedenen Quellen zu testen, kannst du den unten stehenden Code verwenden. Wir haben ein Bild von Pexels verwendet. Du kannst dasselbe Bild oder ein anderes geeignetes Bild verwenden.

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)

Das unten gezeigte Ausgabebild wird in dem entsprechenden Ordner gespeichert.

Abb. 5. Erkennung von Wildtieren mit dem fein abgestimmten YOLO11 auf einem ungesehenen Bild.

KI für den Wildtierschutz: 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 Wildtiere eingesetzt werden kann:

  • Artenüberwachung: 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 Beobachtung von Wanderungen, Fressgewohnheiten 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 unbefugte menschliche Anwesenheit 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 wichtige Rolle 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 und so genaue Wildtierbewertungen durchführen. 

Ultralytics YOLO11 eignet sich besonders gut für die Objekterkennung in Echtzeit und ist damit perfekt für Aufgaben wie die Überwachung von Wilderern, Verhaltensanalysen und die Überwachung von Ökosystemen geeignet. Durch den Einsatz von KI-gestützten Modellen im Naturschutz können wir Arten besser schützen, die Verfolgung der Artenvielfalt verbessern und fundiertere Entscheidungen zum Schutz bedrohter Wildtiere treffen.

Tritt unserer Community bei und erkunde das GitHub-Repository, um mehr über Computer Vision zu erfahren. Entdecke weitere Anwendungen für KI im Gesundheitswesen und Computer Vision in der Fertigung auf unseren Lösungsseiten. Schau dir die Ultralytics an, um mit Vision AI zu beginnen.

LinkedIn-LogoTwitter-LogoFacebook-LogoKopier-Link-Symbol

Lies mehr in dieser Kategorie

Lass uns gemeinsam die Zukunft
der KI gestalten!

Beginne deine Reise in die Zukunft des maschinellen Lernens