Best Practices

Auf dieser Seite werden Best Practices für das Vorbereiten von Daten, Bewerten von Modellen und für die Verbesserung der Modellleistung beschrieben.

Daten vorbereiten

  • Die Daten, die Sie für das Training verwenden, sollten den Daten, für die Sie Vorhersagen treffen möchten, möglichst ähnlich sein. Wenn Ihr Anwendungsfall beispielsweise verschwommene Videos mit niedriger Auflösung (z. B. die Aufnahmen von einer Überwachungskamera) umfasst, sollten Ihre Trainingsdaten aus verschwommenen Videos mit niedriger Auflösung bestehen. Sie sollten außerdem mehrere Blickwinkel, Auflösungen und Hintergründe für Ihre Trainingsvideos bereitstellen.
  • Ihre Trainingsdaten müssen gewisse Mindestanforderungen erfüllen:

    • Die Mindestanzahl von Begrenzungsrahmen pro Label ist 10.
    • Ihre Labels müssen gültige Strings sein (keine Kommas).
    • Alle Videoframes müssen gültige Zeitstempel haben.
    • Alle Video-URIs in Ihrer CSV-Datei müssen in einem zugänglichen Cloud Storage-Bucket gespeichert werden.
  • Je mehr Trainings- und Testdaten Sie haben, desto besser. Je leistungsfähiger das Modell ist, desto datenhungriger wird es.

  • Die Datenmenge, die zum Trainieren eines guten Modells benötigt wird, hängt von verschiedenen Faktoren ab:

    • Die Anzahl der Klassen: Je mehr eindeutige Klassen Sie haben, desto mehr Proben werden pro Klasse benötigt.

    • Sie sollten pro Label etwa 100 Trainingsbilder haben. In jedem Frame sollten alle Objekte der betroffenen Labels beschriftet sein.

    • Komplexität oder Vielfalt der Klassen: Neuronale Netzwerke können schnell zwischen Katzen und Vögeln unterscheiden, würden jedoch eine viel größere Anzahl von Proben benötigen, um 30 verschiedene Tierarten richtig zu klassifizieren.

    • Bei der Framenormalisierung für Videoframeauflösungen von mehr als 1024 x 1024 Pixeln kann die Bildqualität beeinträchtigt werden.

  • Vermeiden Sie es, ein Modell mit sehr unausgewogenen Daten zu trainieren. In vielen Fällen ist die Anzahl der Proben pro Klasse nicht gleich. Wenn die Unterschiede nicht groß sind, ist das nicht so schlimm. Wenn jedoch ein größeres Ungleichgewicht besteht (z. B. wenn einige Klassen mehr als zehnmal häufiger als andere auftreten), wird dies zu einem Problem.

Weitere Informationen finden Sie unter Daten vorbereiten.

Daten aufteilen

Beim maschinellen Lernen unterteilen Sie Ihre Datasets normalerweise in drei separate Teilmengen: ein Trainings-Dataset, ein Validierungs-Dataset und ein Test-Dataset. Das Trainings-Dataset wird zum Erstellen eines Modells verwendet. Bei der Suche nach Mustern in den Trainingsdaten probiert das Modell mehrere Algorithmen und Parameter aus. Wenn das Modell Muster erkennt, verwendet es das Validierungs-Dataset, um die Algorithmen und Muster zu testen. Von den Algorithmen und Mustern, die während des Trainings verwendet wurden, werden die mit der besten Leistung ausgewählt.

Nachdem die besten Algorithmen und Muster ermittelt wurden, werden sie mit dem Test-Dataset auf Fehlerrate, Qualität und Accuracy getestet. Sie sollten ein separates Test-Dataset haben, mit dem Sie Ihr Modell unabhängig testen können.

Es wird sowohl ein Validierungs- als auch ein Test-Dataset verwendet, um Verzerrungen im Modell zu vermeiden. Während der Validierungsphase werden optimale Modellparameter verwendet, was zu verzerrten Messwerten führen kann. Die Verwendung des Test-Datasets zur Bewertung der Qualität des Modells nach der Validierungsphase ermöglicht eine unvoreingenommene Qualitätsbeurteilung des Modells.

Beachten Sie beim Aufteilen Ihrer Daten die folgenden Best Practices:

  • Alle Datasets (auch als Dataset-Splits bezeichnet) sollten dieselbe Grundgesamtheit repräsentieren, ähnliche Videos und eine ähnliche Verteilung von Labels haben.

    Wenn Sie Ihre Daten bereitstellen, kann das AutoML Video Object Tracking diese automatisch in Trainings-, Validierungs- und Test-Datasets aufteilen. Sie können die Labels für die Trainings-Splits auch selbst vergeben. Wenn AutoML Video Object Tracking die Trainings-, Validierungs- und Testaufteilungen aus der CSV-Datei generiert, wird dies auf Videoebene ausgeführt. Alle Labels aus einem Video können nur in eines der drei Datasets fallen. Daher wird es empfohlen, nur wenige Videos zu verwenden, wenn sich die Videos unterscheiden oder die Labelverteilung unter den Videos nicht identisch ist.

    Wenn Sie beispielsweise nur 3 Videos mit Tausenden von kommentierten Videosegmenten haben, einige Klassen aber nur in einzelnen Videos vorhanden sind, kann es vorkommen, dass das Modell für einige der Labels nicht trainiert wird und diese Labels während der Vorhersage möglicherweise nicht erkennt.

  • Vermeiden Sie einen Datenverlust. Datenverlust tritt auf, wenn der Algorithmus während des Modelltrainings Informationen verwenden kann, die er nicht verwenden sollte, und die bei zukünftigen Vorhersagen nicht verfügbar sein werden. Dies kann zu übermäßig optimistischen Ergebnissen bei Trainings-, Validierungs- und Test-Datasets führen, funktioniert jedoch möglicherweise nicht so gut, wenn Vorhersagen für zukünftige, nicht bekannte Daten gemacht werden sollen.

    Einige Beispiele für Datenverluste: eine Verzerrung basierend auf dem Betrachtungswinkel der Kamera oder den Lichtbedingungen (morgens/abends); eine Verzerrung in Richtung von Videos mit Kommentatoren gegenüber solchen, die dies nicht haben; ein Verzerrung basierend auf Videos mit bestimmten Labels, die aus bestimmten Regionen oder Sprachgruppen oder von bestimmten Kommentatoren stammen oder dasselbe Logo enthalten.

    Gehen Sie folgendermaßen vor, um Datenverluste zu vermeiden:

    • Sie haben eine gut sortierte Auswahl an Videos und Videoframeproben.
    • Überprüfen Sie die Videos darauf, dass es keine versteckten Hinweise gibt. (Beispiel: Videos mit positiven Proben wurden am Nachmittag aufgenommen, während Videos mit negativen Proben am Morgen aufgenommen wurden.)

Weitere Informationen finden Sie unter Daten vorbereiten.

Beispieldatenquellen

Ein Beispiel für eine Datenquelle finden Sie in den folgenden öffentlich verfügbaren Videoerkennungs-Datasets:

  • Youtube-BB: Dataset zur Videoobjekterkennung (5,6 Millionen Begrenzungsrahmen, 240.000 Videos, 23 Objekttypen)
  • ImageNet-VID: Imagenet Video Object Detection (30 Basiskategorien)

Modell trainieren

Je nach Ihren Anforderungen können Sie dieselben Daten zum Trainieren verschiedener Modelle und zum Generieren unterschiedlicher Vorhersagetypen verwenden. Wenn Sie dasselbe Modell mit denselben Daten trainieren, kann dies außerdem zu leicht unterschiedlichen Ergebnissen führen. Das Training des neuronalen Netzwerkmodells umfasst randomisierte Vorgänge, sodass nicht garantiert werden kann, dass genau das gleiche Modell mit denselben Eingaben trainiert wird. Die Vorhersagen können daher geringfügig abweichen.

Weitere Informationen finden Sie unter Modelle verwalten.

Modelle bewerten

Wenn das Modell mit dem Training fertig ist, können Sie die Leistung anhand von Validierungs- und Test-Datasets oder Ihren eigenen neuen Datasets bewerten.

Gängige Bewertungskonzepte und Messwerte für das Objekt-Tracking:

  • Überschneidung über Union (Intersection over Union, IOU) misst die Überschneidung zwischen zwei Begrenzungsrahmen, die normalerweise zwischen Ground Truth und Vorhersage liegen. Damit können Sie messen, wie stark sich der vorhergesagte Begrenzungsrahmen mit dem Ground Truth überschneidet.
  • Die "Fläche unter der Precision/Recall" (Area Under the Precision/Recall Curve, AuPRC), auch als "durchschnittliche Genauigkeit" (average precision, AP) bezeichnet: Hierbei handelt es sich um das Integral der Precisionwerte über den Bereich der Recallquoten. Dieser Messwert wird am besten für binäre Probleme interpretiert.
  • Die "mittlere durchschnittliche Precision" (mean average precision, mAP oder MAP) kann als der Mittelwert der durchschnittlichen Precision (AP) über mehrere Klassen oder Labels angesehen werden. Manchmal werden mAP und AP gleichbedeutend verwendet.
  • Bei Problemen mit binären und mehreren Klassen können Sie die Precision und die Recallquote bei verschiedenen Konfidenzwert-Schwellenwerten auch unabhängig voneinander überprüfen.
  • Wenn es nicht zu viele Labels mit mehreren Klassen gibt, können Sie anhand der Wahrheitsmatrix untersuchen, welche Labels fehlen.

Nicht alle Messwerte können für die verschiedenen Probleme von Video Object Tracking verwendet werden. Das intuitive Verständnis von Precision und Recallquote aus einem Objekt-Tracking-Problem wird beispielsweise weniger klar, wenn mehrere Klassen betrachtet werden (Problem mit mehreren Klassen) oder wenn mehrere gültige Labels pro Probe vorhanden sind (Problem mit mehreren Labels). Speziell für den letzteren Fall gibt es keinen einheitlich anerkannten Messwert. Sie könnten jedoch den Messwert "Durchschnittliche Precision" bei Bewertungsentscheidungen berücksichtigen.

Beachten Sie jedoch, dass eine Bewertung der Modellleistung anhand von einer einzelnen Zahl oder eines einzelnen Messwerts eine übermäßige Vereinfachung bedeutet. Prüfen Sie eventuell verschiedene Messwerte sowie die Darstellungen von Precision/Recallkurven für jede Objektklasse.

Weitere hilfreiche Tipps zur Bewertung Ihres Modells:

  • Achten Sie auf die Verteilung von Labels in Ihren Trainings- und Test-Datasets. Wenn die Datasets unausgewogen sind, können Messwerte mit hoher Precision irreführend sein. Da standardmäßig alle Proben bei der Bewertung gleich gewichtet werden, kann ein häufiger auftretendes Label mehr Gewicht haben. Liegen beispielsweise zehnmal mehr positive Labels als negative vor und das Netzwerk beschließt, einfach alle Proben den positiven Labels zuzuweisen, können Sie immer noch eine Precision von 91 % erreichen. Dies bedeutet jedoch nicht, dass das trainierte Modell besonders nützlich ist.

  • Sie können auch versuchen, Ground-Truth- und Vorhersage-Labels beispielsweise in einem Python-Skript mithilfe von scikit-learn zu analysieren. Dabei könnten Sie verschiedene Methoden zur Gewichtung der Labels während der Bewertung prüfen: Zu den gängigen Ansätzen gehören die Makromittelung (Messwerte werden pro Klasse berechnet und dann gemittelt), die gewichtete Mittelung (Messwerte werden pro Klasse berechnet und dann mit einer Gewichtung gemittelt, die auf der Häufigkeit von einzelnen Klassen basiert) und die Mikromittelung (alle Proben haben das gleiche Gewicht, unabhängig von möglichen Ungleichgewichten).

  • Bei der Fehlerbehebung eines Modells geht es eher darum, Fehler in den Daten statt im Modell zu beheben. Wenn sich Ihr Modell unerwartet verhält, während Sie die Leistung vor und nach der Fertigstellung bewerten, sollten Sie die bisherigen Schritte überprüfen, um festzustellen, wo die Daten verbessert werden könnten.

  • Manchmal treten bei einem Testvideo Szenenwechsel auf, in denen neue Szenen ohne zu große Kontextzuordnung angezeigt werden. Beispielsweise wechselt in der Liveübertragung des Fußballspiels die Kameraansicht von der Draufsicht zur Seitenansicht. In einem solchen Szenario dauert es in der Regel 2–3 Frames, bis das Modell auf die Änderung reagiert.

Weitere Informationen finden Sie unter Modelle bewerten.

Modell testen

AutoML Video Objekt Tracking verwendet 20 % Ihrer Daten automatisch – oder, wenn Sie die Aufteilung Ihrer Daten selbst definieren möchten, den von Ihnen gewählten Prozentsatz, um das Modell zu testen.

Modellleistung verbessern

Wenn Sie einen ersten Eindruck von der Leistung Ihres Modells gewonnen haben und es weiter verbessern möchten, können Sie verschiedene Ansätze ausprobieren:

  • Erhöhen Sie die Anzahl der mit Labels versehenen Proben (insbesondere für unterrepräsentierte Klassen).
  • Kennzeichnen Sie aussagekräftigere Frames mit Labels:
    • Wählen Sie Frames für Labels aus, bei denen mehrere Objekte statt eines einzelnen Objekts oder kein Objekt vorhanden sind.
    • Wählen Sie Frames aus, die mehr sich bewegende Objekte enthalten. Dies kann weitere Informationen für das Modell während des Trainings liefern.
    • Achten Sie darauf, dass alle ausgewählten Frames vollständig beschriftet sind. Wenn Sie beispielsweise ein Modell zur Fahrzeugerkennung trainieren, sollten Sie alle Fahrzeuge mit einem Label versehen, die in einem Frame zu sehen sind.
    • Wählen Sie keine Frames vom Anfang eines Videos aus. Der Algorithmus kann zurückspulen, um Frames für das Training abzurufen, um den Bewegungskontext zu erfassen. Solche Informationen können verloren gehen, wenn keine/wenige Frames vor den ausgewählten Frames liegen.
  • Untersuchen Sie genau, wo Ihr Modell nicht so gut funktioniert:

    • Vielleicht ist eine Klasse zu weit gefasst und es wäre sinnvoll, sie in zwei oder mehr Klassen aufzuteilen.
    • Oder vielleicht sind einige Klassen zu spezifisch und sie könnten zusammengeführt werden, ohne dass sich dies auf das Endziel des Projekts auswirkt?
    • Ziehen Sie in Betracht, mehr Beispiele mit Labels zu versehen, insbesondere für die Klassen mit einer relativ schlechteren Leistung.
  • Sorgen Sie für eine bessere Ausgewogenheit der Daten. Fügen Sie entweder weitere Proben hinzu oder versuchen Sie ggf., die Anzahl der Proben der Klasse mit großer Nutzungshäufigkeit zu reduzieren, insbesondere in Fällen, in denen eine große Unausgewogenheit besteht, z. B. "1 zu 100" oder mehr.

  • Kontrollieren Sie sorgfältig und versuchen Sie, mögliche Datenverluste zu vermeiden.

  • Lassen Sie weniger wichtige Klassen weg und konzentrieren Sie sich auf eine geringere Zahl von kritischen Klassen.

  • Prüfen Sie weitere Optionen, die Ihnen auf der Support-Seite zur Verfügung stehen.