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=8tile=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=TrueAufgaben und Modelle#
| Aufgabe | Ergebnisse 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. |
| Segment | Wende dieselbe Auswahl der Boxen an und füge die ausgewählten Masken in das Ausgangsbild ein. |
| Semantisch | Füge die Klassenkarten zusammen und wähle in überlappenden Bereichen die zentralste Kachel. |
| Tiefe | Füge überlappende Tiefenkarten zusammen und gewichte die Bereiche zum Mittelpunkt jeder Kachel hin stärker. |
| Klassifizieren | Bilde den Mittelwert der Kachelwahrscheinlichkeiten. |
| Pose | Wende die Boxauswahl an und stelle die zugehörigen Schlüsselpunkte wieder her. |
| OBB | Stelle 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_detbegrenzt 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,
embedundvisualizewerden nicht unterstützt. Das Tracking wird für jedes Quellbild einmal anhand der zusammengeführten Vorhersagen ausgeführt, einschließlich ReID-Merkmalen.
Kommentare
Stell eine Frage, teile deine Ergebnisse oder hilf jemand anderem.