Freigeben über


Trainieren eines Erkennungsmodells für kleine Objekte mit automatisiertem ML (Vorschau) (v1)

GILT FÜR:Python SDK azureml v1

Wichtig

Einige Azure CLI-Befehle in diesem Artikel verwenden die Erweiterung azure-cli-ml oder v1 für Azure Machine Learning. Der Support für die v1-Erweiterung endet am 30. September 2025. Sie können die v1-Erweiterung bis zu diesem Datum installieren und verwenden.

Es wird empfohlen, vor dem 30. September 2025 zur ml- oder v2-Erweiterung zu wechseln. Weitere Informationen zur v2-Erweiterung finden Sie unter Was sind die Azure Machine Learning CLI und das Python SDK v2?.

Wichtig

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

In diesem Artikel erfahren Sie, wie Sie ein Objekterkennungsmodell trainieren, um kleine Objekte in Bildern mit hoher Auflösung mit automatisiertem ML in Azure Machine Learning zu erkennen.

In der Regel funktionieren Modelle des maschinellen Sehens zur Objekterkennung gut für Datasets mit relativ großen Objekten. Aufgrund von Arbeitsspeicher- und Berechnungseinschränkungen sind diese Modelle jedoch tendenziell unzureichend, wenn es um die Erkennung kleiner Objekte in hochauflösenden Bildern geht. Da hochauflösende Bilder in der Regel groß sind, werden sie vor der Eingabe in das Modell verkleinert, was ihre Fähigkeit, kleinere Objekte zu erkennen, im Verhältnis zur ursprünglichen Bildgröße einschränkt.

Um dieses Problem zu lösen, unterstützt das automatisierte ML die Kachelung als Teil der öffentlichen Vorschaufunktionen für maschinelles Sehen. Die Kachelungsfunktion beim automatisierten ML basiert auf den Konzepten unter The Power of Tiling for Small Object Detection (Die Leistungsfähigkeit der Kachelung für die Erkennung kleiner Objekte).

Bei der Kachelung wird jedes Bild in ein Raster von Kacheln unterteilt. Angrenzende Kacheln überlappen sich in Breite und Höhe. Die Kacheln werden, wie in der folgenden Abbildung gezeigt, aus dem Original zugeschnitten.

Diagram that shows an image being divided into a grid of overlapping tiles.

Voraussetzungen

Unterstützte Modelle

Die Erkennung von kleinen Objekten mithilfe der Kachelung wird für alle Modelle unterstützt, die vom automatisierten ML für Bilder für Objekterkennungsaufgaben unterstützt werden.

Aktivieren der Kachelung während des Trainings

Um die Kachelung zu aktivieren, können Sie den tile_grid_size-Parameter auf einen Wert wie (3, 2) festlegen, wobei 3 für die Anzahl der Kacheln in der Breite und 2 für die Anzahl der Kacheln in der Höhe steht. Wenn dieser Parameter auf (3, 2) festgelegt ist, wird jedes Bild in ein Raster von 3 x 2 Kacheln aufgeteilt. Jede Kachel überschneidet sich mit den angrenzenden Kacheln, sodass alle Objekte, die auf den Kachelrand fallen, vollständig in einer der Kacheln enthalten sind. Diese Überlappung kann durch den tile_overlap_ratio-Parameter gesteuert werden, der standardmäßig auf 25 % eingestellt ist.

Wenn die Kachelung aktiviert ist, werden das gesamte Bild und die daraus erzeugten Kacheln durch das Modell geleitet. Diese Bilder und Kacheln werden vor der Zuführung zum Modell entsprechend den Parametern min_size und max_size skaliert. Die Berechnungszeit erhöht sich proportional durch die Verarbeitung dieser zusätzlichen Daten.

Wenn der tile_grid_size-Parameter z. B. „(3, 2)“ ist, wäre die Berechnungszeit etwa siebenmal höher als ohne Kacheln.

Sie können den Wert für tile_grid_size in Ihrem Hyperparameterraum als Zeichenfolge angeben.

parameter_space = {
    'model_name': choice('fasterrcnn_resnet50_fpn'),
    'tile_grid_size': choice('(3, 2)'),
    ...
}

Der Wert des tile_grid_size-Parameters hängt von den Bildabmessungen und der Größe der Objekte im Bild ab. Eine größere Anzahl von Kacheln wäre z. B. hilfreich, wenn sich kleinere Objekte in den Bildern befinden.

Um den optimalen Wert für diesen Parameter für Ihr Dataset zu wählen, können Sie die Hyperparametersuche verwenden. Hierzu können Sie eine Auswahl von Werten für diesen Parameter in Ihrem Hyperparameterbereich angeben.

parameter_space = {
    'model_name': choice('fasterrcnn_resnet50_fpn'),
    'tile_grid_size': choice('(2, 1)', '(3, 2)', '(5, 3)'),
    ...
}

Kachelung während des Rückschließens

Wenn ein mit Kacheln trainiertes Modell bereitgestellt wird, erfolgt die Kachelung auch während des Rückschließens. Das automatisierte ML verwendet den tile_grid_size-Wert aus dem Training, um die Kacheln während des Rückschließens zu generieren. Das gesamte Bild und die entsprechenden Kacheln werden durch das Modell geleitet, und die Objektvorschläge werden zusammengeführt, um endgültige Vorhersagen zu erstellen, wie im folgenden Bild zu sehen.

Diagram that shows object proposals from image and tiles being merged to form the final predictions.

Hinweis

Es ist möglich, dass dasselbe Objekt von mehreren Kacheln aus erkannt wird. Um solche Duplikate zu entfernen, wird eine Duplikatserkennung durchgeführt.

Die Erkennung von Duplikaten erfolgt, indem NMS auf die Vorschläge aus den Kacheln und dem Bild angewendet wird. Wenn sich mehrere Vorschläge überlappen, wird derjenige mit dem höchsten Score ausgewählt und die anderen werden als Duplikate verworfen. Zwei Vorschläge gelten als überlappend, wenn IoU (Intersection over Union) zwischen ihnen größer ist als der tile_predictions_nms_thresh-Parameter.

Sie haben auch die Möglichkeit, die Kachelung nur während des Rückschließens zu aktivieren, ohne sie im Training zu aktivieren. Legen Sie den tile_grid_size-Parameter daher nur für den Rückschluss, nicht für das Training fest.

Dadurch kann die Leistung für einige Datasets verbessert werden, und es entstehen keine zusätzlichen Kosten, die durch die Kachelung zum Zeitpunkt des Trainings entstehen.

Hyperparameter für die Kachelung

Im Folgenden sind die Parameter aufgeführt, die Sie zur Steuerung des Kachelungsfeatures verwenden können.

Parametername BESCHREIBUNG Standard
tile_grid_size Die Rastergröße, die für die Kachelung der einzelnen Bilder verwendet werden soll. Kann beim Training, bei der Validierung und beim Rückschließen verwendet werden.

Ein Tupel mit zwei ganzen Zahlen, die als Zeichenfolge übergeben werden, z. B. '(3, 2)'.

Hinweis: Die Einstellung dieses Parameters erhöht die Berechnungszeit proportional, da alle Kacheln und Bilder vom Modell verarbeitet werden.
Kein Standardwert
tile_overlap_ratio Steuert das Überlappungsverhältnis zwischen angrenzenden Kacheln in den einzelnen Dimensionen. Wenn die Objekte, die auf die Kachelgrenze fallen, zu groß sind, um vollständig in eine der Kacheln zu passen, erhöhen Sie den Wert dieses Parameters, sodass die Objekte in mindestens eine der Kacheln vollständig passen.

Muss ein Gleitkommawert in [0, 1] sein.
0,25
tile_predictions_nms_thresh Der IoU-Schwellenwert (Intersection over Union), der verwendet wird, um die nicht maximale Unterdrückung (NMS) bei der Zusammenführung von Vorhersagen aus Kacheln und Bild durchzuführen. Verfügbar während der Validierung und des Rückschließens. Ändern Sie diesen Parameter, wenn in den endgültigen Vorhersagen mehrere Felder pro Objekt erkannt werden.

Muss ein Gleitkommawert in [0, 1] sein.
0,25

Beispielnotebooks

Im Beispielnotebook zur Objekterkennung finden Sie ausführliche Beispiele für die Einrichtung und das Training eines Objekterkennungsmodells.

Hinweis

Alle Bilder in diesem Artikel werden in Übereinstimmung mit dem Abschnitt über die erlaubte Verwendung des MIT-Lizenzvertrags zur Verfügung gestellt. Copyright © 2020 Roboflow, Inc.

Nächste Schritte