Ultralytics YOLO27: Trag dich auf die Warteliste ein.
Erste Schritte

Kachelung mit hoher Auflösung

Verwende tile=True, um hochauflösende Bilder vor dem Skalieren auf die Modelleingabe in überlappende Fenster aufzuteilen. So bleiben möglicherweise Details kleiner Objekte erhalten, die beim Skalieren des gesamten Bildes verloren gingen. Es ist kein zusätzliches Paket erforderlich.

Die Kachelung verwendet die üblichen Trainings-, Validierungs- und Vorhersagepipelines. Die Vorhersage gibt für jedes Originalbild ein Results-Objekt zurück. Bei der Validierung werden die Vorhersagen zusammengeführt und anschließend anhand der Originalannotationen bewertet; der Trainingsverlust wird für die Kacheln berechnet.

Verwendung#

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.train(data="aerial.yaml", tile=True, imgsz=640)
metrics = model.val(data="aerial.yaml", tile=True, imgsz=640)
results = model.predict("large-image.tif", tile=640, imgsz=640, batch=8)
yolo predict model=yolo26n.pt source=large-image.tif tile=640 imgsz=640 batch=8

tile=True verwendet imgsz als Fenstergröße. Eine positive Ganzzahl wie tile=1024 legt die Fenstergröße unabhängig von imgsz fest. tile=False ist die Standardeinstellung. Die Fenster überlappen sich um 20 %, wobei die letzten Fenster an der Bildgrenze ausgerichtet werden. Kleinere Bilder werden in einem einzigen Fenster dargestellt, das das gesamte Bild umfasst.

batch steuert, wie viele Kacheln das Modell während der Vorhersage gemeinsam verarbeitet. Das vorhandene Backend unterstützt feste Export-Batchgrößen, auch für den letzten unvollständigen Batch. Exportierte Modelle behalten ihren üblichen Eingabegraphen bei; die Kachelung erfolgt in der Python-Vorhersagepipeline.

Leite bei Videos die Ergebnisse als Stream weiter, um den Speicherbedarf zu begrenzen, und verwende die vorhandenen Vorhersageoptionen, um sie zu speichern oder anzuzeigen:

for result in model.predict("video.mp4", tile=640, stream=True, save=True):
    print(result.boxes)
yolo predict model=yolo26n.pt source=video.mp4 tile=640 save=True

Aufgaben und Modelle#

AufgabeErgebnisse für das vollständige Bild
DetectÜberführe die Boxen zurück in die Koordinaten des Ausgangsbildes und unterdrücke Duplikate mit iou, agnostic_nms und max_det.
SegmentWende dieselbe Auswahl der Boxen an und füge die ausgewählten Masken in das Ausgangsbild ein.
SemantischFüge die Klassenkarten zusammen und wähle in überlappenden Bereichen die zentralste Kachel.
TiefeFüge überlappende Tiefenkarten zusammen und gewichte die Bereiche zum Mittelpunkt jeder Kachel hin stärker.
KlassifizierenBilde den Mittelwert der Kachelwahrscheinlichkeiten.
PoseWende die Boxauswahl an und stelle die zugehörigen Schlüsselpunkte wieder her.
OBBStelle die gedrehten Boxen wieder her und verwende gedrehtes NMS.

Die gemeinsame Pipeline unterstützt Vorhersagen mit YOLO-Aufgabenmodellen, YOLO-World, YOLOE, RT-DETR und FastSAM. Visuelle Prompts von YOLOE werden aus dem vollständigen Ausgangsbild erstellt und für dessen Kacheln wiederverwendet. FastSAM wählt die durch Prompts bestimmten Masken aus, nachdem sie in die Koordinaten des Ausgangsbildes überführt wurden. SAM-Prädiktoren behalten ihre eigene Prompt- und Ausschnittserzeugungspipeline bei; sie akzeptieren tile nicht.

Während des Trainings werden Boxen und Polygone auf ihre Fenster zugeschnitten, beim OBB-Zuschnitt bleibt die Ausrichtung erhalten, und Keypoints außerhalb der Fenster verlieren ihre Sichtbarkeit. Instanzen, von deren ursprünglicher Bounding-Box-Fläche weniger als 10 % übrig bleiben, werden entfernt. Leere Fenster bleiben als negative Beispiele erhalten. Für semantische und Tiefenziele werden dieselben Fenster wie für die zugehörigen Bilder verwendet.

Leistung und Qualität#

  • Bei der Kachelung werden mehr Vorwärtsdurchläufe des Modells ausgeführt als bei der Inferenz auf dem gesamten Bild. Wähle die größten Kachel- und Batchgrößen, mit denen die benötigten Details erhalten bleiben und die in den verfügbaren Speicher passen.
  • Aufeinanderfolgende Kacheln verwenden das dekodierte Ausgangsbild wieder. Mit cache="ram" werden die Ausgangsbilder beim Training nur einmal gespeichert; cache="disk" verwendet den vorhandenen Bildcache. Beim Training werden die Kacheln gemischt. Daher ist das Caching besonders bei großen, komprimierten Ausgangsbildern nützlich.
  • Masken und dichte Karten in der Größe des Ausgangsbildes benötigen weiterhin Speicher proportional zur Größe des Originalbildes. max_det begrenzt die Anzahl der gespeicherten Instanzmasken.
  • Durch die Kachelung geht der globale Kontext verloren. Überprüfe die Genauigkeit mit deinen eigenen Daten, insbesondere bei Klassifizierung und Tiefenschätzung, da die Ergebnisse der Kacheln global voneinander abweichen können.
  • Bei der Unterdrückung von Duplikaten werden vollständige Vorhersagen ausgewählt; aus einzelnen sichtbaren Fragmenten wird kein Objekt rekonstruiert. Überlappungen verringern das Abschneiden an den Rändern, können es bei Objekten, die größer als eine Kachel sind, aber nicht verhindern.
  • Tensorquellen, embed und visualize werden nicht unterstützt. Das Tracking wird für jedes Quellbild einmal anhand der zusammengeführten Vorhersagen ausgeführt, einschließlich ReID-Merkmalen.
Mitwirkende

Kommentare

Stell eine Frage, teile deine Ergebnisse oder hilf jemand anderem.