Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten

Wie man Ultralytics YOLO trainiert, um Tiere in freier Wildbahn detect

Lernen Sie, wie man YOLO trainiert, um Tiere in freier Wildbahn anhand des African Wildlife Dataset detect und das Modell zu verwenden, um Rückschlüsse auf ungesehene Bilder zu ziehen.

Möchten Sie ein Computer-Vision-Projekt umsetzen?

Informieren Sie sich über Lizenzen

Die Tierwelt unseres Planeten ist unglaublich vielfältig, von summenden Bienen bis hin zu hoch aufragenden Elefanten, und die Erhaltung dieser Artenvielfalt ist der Schlüssel zur Aufrechterhaltung eines ausgewogenen Ökosystems. Die Naturschutzbemühungen werden jedoch aufgrund von Habitatverlust, Wilderei und Klimawandel immer schwieriger. All diese Faktoren wirken sich negativ auf die Wildtierpopulationen aus. 

Traditionelle Methoden der Tierüberwachung, wie die manuelle Analyse von Kamerafallenbildern und die Durchführung von Feldstudien, können langsam sein und viele Ressourcen erfordern. Diese Bemühungen reichen oft nicht aus, um große Gebiete und große Populationen effektiv abzudecken.

Um diese Einschränkungen zu überwinden, kann künstliche Intelligenz (KI) als wirkungsvolles Instrument für den Schutz von Wildtieren eingesetzt werden. Insbesondere 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. 

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 detect . 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 Python , das die Arbeit mit YOLO für Aufgaben wie Training, Erkennung von Objekten und Durchführung von Schlussfolgerungen erleichtert. Um das Ultralytics 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 sind einige der beliebtesten Optionen zum Einrichten Ihrer Entwicklungsumgebung:

  • Befehlszeilenschnittstelle (CLI): Die CLI, auch als Terminal bekannt, ist ein textbasiertes Tool, mit dem Sie durch Eingabe von Befehlen mit Ihrem Computer interagieren können. Im Gegensatz zu grafischen Benutzeroberflächen (GUIs), bei denen Sie auf Schaltflächen klicken und eine Maus verwenden, CLI Sie bei der CLI Textbefehle eingeben, um Programme zu starten oder Aufgaben auszuführen. 
  • Jupyter-Notebooks: In diesen Notebooks können Sie Code in kleinen Einheiten, sogenannten Zellen, schreiben und ausführen. Das System ist interaktiv, d. h. Sie sehen die Ausgabe Ihres Codes sofort, 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 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 einrichtet und trainiert, da die Schritte in all diesen Umgebungen sehr ähnlich sind.

Das Verständnis des African Wildlife Datasets

Nach der Auswahl einer Entwicklungsumgebung benötigen wir zum Trainieren von YOLO11 für die detect Wildtieren einen hochwertigen Datensatz mit beschrifteten Bildern. Jedes Bild sollte deutlich zeigen, 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 Lernprogramm verwenden wir den African Wildlife Dataset. Er wird vomPython 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.

Abb. 1. Ein Einblick in den African Wildlife Dataset.

Hier sind einige der wichtigsten Merkmale des African Wildlife Datasets:

  • Umfang: Der Datensatz umfasst 1504 Bilder, die in drei Teilmengen unterteilt sind: 1052 für das Training, 225 für die Validierung und 227 für den Test. Diese Aufteilung stellt sicher, dass das Modell effektiv trainiert und gründlich evaluiert wird.
  • Nahtlose Integration: Ultralytics eine YAML-KonfigurationsdateiUltralytics , in der Datensatzpfade, Klassen und weitere Details definiert sind, was die Verwendung beim Trainieren YOLO vereinfacht.
  • Offene Lizenz: Dieser Datensatz wird unter der AGPL-3.0 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 zur detect Tieren in Bildern beginnen. Der Prozess umfasst das Einrichten der Entwicklungsumgebung, das Trainieren des YOLO11 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 verwendet werden. Erstellen Sie entsprechend ein neues Google Colab-Notizbuch, ein Jupyter-Notizbuch oder eine Python .

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 GPU 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 davon, welche Umgebung Sie verwenden, dasPython Ultralytics installieren. Wenn Sie eine notebookbasierte Umgebung (Google 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 ist der nächste Schritt das Laden des YOLO11 und die Vorbereitung des Datensatzes für das Training. Zunächst laden wir das YOLO11 , 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 detect .

Anschließend 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 findet und welche Objekte es erkennen soll. 

Der African Wildlife Dataset wird vom Ultralytics 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 zu verbessern, Tiere in den Bildern zu erkennen. Während dieses Prozesses werden die Bilder auf eine einheitliche Größe für die Verarbeitung skaliert, und das Modell arbeitet mit einer bestimmten Anzahl von Bildern gleichzeitig, die als Batch 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 detect , 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

Sobald der obige Code-Schnipsel ausgeführt wurde, beginnt das Modell mit dem Training basierend auf den Einstellungen, die wir ihm gegeben haben. Wir haben dem Modell durch den Code mitgeteilt, dass es die Trainingsbilder 30 Mal durchlaufen soll. Das bedeutet, dass sich das Modell alle Bilder im Datensatz 30 Mal ansieht und jedes Mal etwas mehr lernt.

Stellen Sie sich vor, Sie versuchen, das Zeichnen eines Tieres zu lernen. Wenn Sie das erste Mal zeichnen, sieht es vielleicht nicht gut aus, aber nachdem Sie immer wieder geübt haben, werden Sie besser. Jedes Mal, wenn Sie es erneut versuchen, lernen Sie aus dem, was schief gelaufen ist, und beheben es. Das ist es, was jede Epoche für das Modell tut - es betrachtet die Bilder, macht Fehler, lernt daraus und wird jedes Mal besser darin, Tiere zu erkennen.

Wenn der Trainingscode erfolgreich ausgeführt wird, sehen Sie die folgende Ausgabe, während das Training fortschreitet:

  • Trainingskonfiguration: Im ersten Teil werden die verwendeten Versionen von Ultralytics und PyTorch sowie die verwendete Hardware (CPU diesem FallCPU ) angezeigt, zusammen mit der Trainingskonfiguration, einschließlich des Modells (yolo11n.pt), der Batch-Größe, der Epochen und der Bildgröße.
  • Modellübersicht: Sie enthält Informationen zur Komplexität des Modells, wie beispielsweise die Anzahl der Schichten und Parameter, und gibt Aufschluss darüber, wie umfangreich das Modell ist.
  • Optimierer und Lernrate: Hier werden der Optimierer (z. B. AdamW) und die Lernrate genannt, die bestimmen, wie das Modell seine Parameter während des Trainings anpasst.
  • Datenbankscan: Das Modell scannt die Datenbank und zeigt an, wie viele Bilder gültig und für das Training bereit sind. Es bestätigt, dass die Datenbank keine Probleme aufweist.
  • Trainingsfortschritt: Die Anzeige wird nach jeder Epoche (Trainingszyklus) aktualisiert und zeigt den Trainingsfortschritt sowie wichtige Verlustwerte (box_loss, cls_loss, dfl_loss) an, die Aufschluss darüber geben, wie gut das Modell lernt.
  • Leistungskennzahlen: Nach jeder Epochen werden Leistungskennzahlen wie Präzision, Recall und mAP Mean Average Precision) angezeigt. Diese Werte geben Aufschluss darüber, wie genau das Modell Objekte erkennt und klassifiziert.
  • GPU : Wenn Sie einen GPU verwenden, zeigt die Ausgabe die Speichernutzung an, um track Hardwareauslastung track .
Abb. 2. Die Ausgabe, die Sie während des Modelltrainings sehen werden.

Schritt 4: Evaluierung der Leistung des benutzerdefiniert 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 Ordnerdetect" und schließlich zum Ordner "train" navigieren, wo Sie die Protokolle mit den wichtigsten Leistungsindikatoren finden.

Für Benutzer in einer Python 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 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.

Unter den Protokollen finden Sie auch einige Diagramme, die Sie sich ansehen können, um zu sehen, wie gut der Modelltrainingsprozess 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 gemacht hat und genauer geworden ist. 

Sie track 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.

Abb. 3. Ein Beispiel für die Diagramme, die Sie zur Bewertung Ihres Modells analysieren können.

Wichtige Metriken zur Leistungsbewertung

Hier ist auch ein genauerer Blick auf einige der Metriken, mit denen Sie die Leistung des Modells bewerten können:

  • Mittlere durchschnittliche Präzision (mAP): Diese Metrik misst die Gesamtgenauigkeit des Modells bei der Erkennung von Tieren aller Klassen, indem sie die Präzisionswerte bei verschiedenen Recall-Werten mittelt.
  • Genauigkeit: Dies ist der Prozentsatz der korrekten Erkennungen, der sich aus der Division der Anzahl der echten positiven Erkennungen durch die Gesamtzahl der vorgenommenen Erkennungen ergibt.
  • Recall (Trefferquote): Sie gibt den Prozentsatz der tatsächlichen Tiere in den Bildern an, die vom Modell korrekt identifiziert wurden, und spiegelt dessen Fähigkeit wider, alle relevanten Instanzen zu erfassen.

Diese Evaluationsmetriken können helfen, das Modell feinabzustimmen, um die Genauigkeit zu verbessern, bevor es in realen Anwendungen eingesetzt wird.

Ausführen von Schlussfolgerungen mit Ihrem individuell trainierten YOLO11

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 . Anschließend wird der Pfad zur Datei mit den besten Modellgewichten ("best.pt") definiert, die im Verzeichnis der Ergebnisse gespeichert ist. Das benutzerdefinierte 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 Annotationen) 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 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 auf einem Testbild.

Um Bilder aus verschiedenen Quellen zu testen, können Sie den folgenden Code verwenden. Wir haben ein Bild von Pexels verwendet. Sie können dasselbe Bild oder ein anderes relevantes 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 im entsprechenden Ordner gespeichert.

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

KI für den Schutz von Wildtieren: Anwendungen in der realen Welt

Modelle wie YOLO11 können Tiere automatisch detect und track , 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:

  • Artenüberwachung: Mithilfe von Vision- KI lassen sich visuelle Daten wie Bilder und Videos verarbeiten, um Arten genau zu identifizieren, Populationen zu zählen und track Bewegungen im Zeitverlauf track .
  • Benachrichtigungen durch intelligente Kameras: In abgelegenen Gebieten kann Computer Vision dazu genutzt werden, classify kontinuierlich classify und Echtzeit-Benachrichtigungen zu versenden, sodass Naturschutzbehörden schnell auf Gefahren wie ungewöhnliches Tierverhalten oder Konflikte zwischen Mensch und Tier reagieren können.
  • Verhaltensanalyse: Durch die Beobachtung von Wanderbewegungen, Fressgewohnheiten und sozialen Interaktionen können KI-Systeme auf Basis von Bilddaten umfassende Einblicke in die Dynamik zwischen verschiedenen Arten liefern.
  • Prävention von Wilderei: Vision AI kann eingesetzt werden, um die Anwesenheit unbefugter Menschen und Anzeichen von Wilderei detect und gleichzeitig maschinelles Lernen und historische Daten zu nutzen, um Risiko-Hotspots zu lokalisieren.

Wesentliche 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.

Werden Sie Mitglied unserer Community und erkunden Sie das GitHub-Repository, um mehr über Computer Vision zu erfahren. Entdecken Sie weitere Anwendungen im Zusammenhang mit KI im Gesundheitswesen und Computer Vision in der Fertigung auf unseren Lösungsseiten. Informieren Sie sich über die Ultralytics , um mit Vision AI zu beginnen.

Lassen Sie uns gemeinsam die Zukunft der KI gestalten!

Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens