Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Anleitungen

Kleine Objekte mit Bildkachelung in Ultralytics YOLO erkennen – von Python bis Rust

Erfahre, wann Bildkachelung YOLO bei der Erkennung kleiner Objekte hilft, vergleiche den Aufwand und führe die integrierte gekachelte Inferenz in Python oder Rust ohne SAHI aus.

Onuralp SezerOnuralp Sezer14 Min. Lesezeit
Luftaufnahme einer belebten Kreuzung mit Autos, die von Ultralytics YOLO26s mithilfe von 640-Pixel-Kacheln erkannt und mit Begrenzungsrahmen versehen wurden; gestrichelte Linien markieren die Kachelgrenzen

Warum übersieht ein Detektor, der bei gewöhnlichen Fotos gut funktioniert, die meisten Menschen in einer Drohnenaufnahme? Oft, weil er sie nie in voller Größe sieht. Bei der Standardeinstellung imgsz=640 verkleinert Ultralytics YOLO ein Bild mit 1920 x 1080 Pixeln dreimal, bevor das Modell es untersucht. Ein 15 Pixel großer Fußgänger ist dann nur noch etwa 5 Pixel groß.

Durch Bildkachelung bleiben Details kleiner Objekte erhalten, indem das Modell auf überlappende Ausschnitte des Bildes in voller Auflösung angewendet und die Ergebnisse zusammengeführt werden. Bei einem VisDrone-Bild in unserer Dokumentation stieg die Zahl der Erkennungen mit Ultralytics YOLO26s von 35 auf 161. Dafür fällt pro Bild mehr Rechenaufwand an: Bei diesem Bild werden acht Kacheleingaben statt eines Bildes verarbeitet.

Die Kachelung ist jetzt auf beiden Seiten der Bereitstellung integriert. Das Python-Paket unterstützt seit dem 6. November mit Ultralytics 8.4.204 das Argument tile, und die Rust-Bibliothek hat am 9. November mit Ultralytics Inference 0.0.57 das Flag --tile hinzugefügt. Dieser Leitfaden erläutert, wann Kachelung kleine Objekte wieder sichtbar macht, welchen Aufwand sie verursacht und wie du sie in beiden Fällen ausführst.

Durch Verkleinern werden kleine Objekte unsichtbar#

Kleine Objekte zu erkennen ist aus einem einfachen Grund schwierig: Ein Objekt hat nur die Pixel, die es hat. Ein Objekterkennungsmodell lernt Formen anhand einer Handvoll Pixel pro Objekt. Wird das gesamte Bild auf eine längste Seite von 640 Pixeln verkleinert, sind weit entfernte Menschen, Fahrzeuge und Defekte so klein, dass das Netzwerk sie nicht mehr von Texturen und Bildrauschen unterscheiden kann.

Das zeigt sich besonders bei Luftbildern, der Analyse von Satellitenbildern, Weitwinkel-Verkehrs- und Überwachungskameras sowie hochauflösenden Inspektionsfotos. VisDrone ist ein weit verbreiteter öffentlicher Luftbild-Benchmark: In der Dokumentation werden Objekte beschrieben, die im Bild oft nur einige Dutzend Pixel groß sind und in dichten, stark verdeckten Gruppen auftreten.

Durch Kachelung bleiben diese Pixel erhalten. Ist tile auf die Eingabegröße des Modells eingestellt, sieht das Modell mehrere Ausschnitte in nativer Auflösung statt eines verkleinerten Bildes in einem Durchlauf. Das Konzept entspricht der vom Autorenteam des SAHI-Artikels als slicing-aided hyper inference bezeichneten Methode, die anhand der Luftbilddatensätze VisDrone und xView evaluiert wurde.

Im Leitfaden zur Kachelung hochauflösender Bilder liefert YOLO26s für ein VisDrone-Bild mit 1920 x 1080 Pixeln und dem standardmäßigen Konfidenzschwellenwert 35 Erkennungen für das gesamte Bild bei imgsz=640 und 161 bei tile=640. Darunter sind weit entfernte Fußgänger, Radfahrer und Autos. Der Leitfaden zeigt beide Bilder nebeneinander. Dabei handelt es sich um Vorhersagezahlen, nicht um eine bewertete Evaluation. Für beide Zahlen wurden dieselben Gewichte verwendet; durch die Kachelung änderte sich außerdem der Kontext, den jeder Ausschnitt erfasste.

Dieselbe Luftbildaufnahme einer Kreuzung zweimal: einige Autos sind nach dem Verkleinern des gesamten Bildes auf 640 Pixel mit Begrenzungsrahmen versehen, mit 640-Pixel-Kacheln sind die meisten Autos markiert

Ein zweites VisDrone-Validierungsbild mit 1920 x 1080 Pixeln, YOLO26s mit der standardmäßigen Konfidenz: 8 Erkennungen im gesamten Bild bei imgsz=640, 128 bei tile=640. Ausschnitt der Straße, Begrenzungsrahmen ohne Klassenbezeichnungen.

Kachelung fügt eine Modelleingabe pro Ausschnitt hinzu#

Der Leitfaden definiert die Aufteilung in Ausschnitte präzise. Die Ausschnitte überlappen sich grundsätzlich um 20 %, und die letzte Zeile und Spalte werden am Bildrand ausgerichtet, sodass sich die Randbereiche stärker überlappen können. Ist ein Bild kleiner als der Ausschnitt, wird ein einzelner Ausschnitt des gesamten Bildes verwendet.

So lässt sich der Aufwand leicht abschätzen. Ein Bild mit 1920 x 1080 Pixeln wird bei tile=640 in acht Ausschnitten verarbeitet: vier nebeneinander und zwei untereinander. Auch ein Bild mit 3840 x 2160 Pixeln wird bei tile=1280 in acht Ausschnitten verarbeitet. Wendet man dieselbe 20-%-Regel auf ein Bild mit 3840 x 2160 Pixeln bei tile=640 an, erhält man acht Spalten und vier Zeilen, also 32 Ausschnitte. Eine Halbierung der Ausschnittgröße vervierfacht somit die Anzahl der Kacheleingaben bei einem 4K-Bild.

Ein Luftbild mit 1920 x 1080 Pixeln, aufgeteilt in acht überlappende Ausschnitte von 640 x 640 Pixeln; die Überlappungsbereiche sind schattiert

Die acht Ausschnitte, die bei tile=640 für ein Bild mit 1920 x 1080 Pixeln verwendet werden: Die Spalten beginnen bei x = 0, 512, 1024 und 1280, die Zeilen bei y = 0 und 440. Die schattierten Bereiche werden von mehreren Ausschnitten erfasst.

Batching beeinflusst, wie diese Eingaben das Modell erreichen. In Python legt batch fest, wie viele Ausschnitte in einem Inferenzaufruf gemeinsam durch das Modell laufen. Die Rust-Bibliothek bietet dasselbe mit --batch bei einem Export mit dynamischer Batchgröße. Batching kann den Durchsatz erhöhen, aber miss die Latenz auf deiner Hardware. Unser Leitfaden zur Batch-Inferenz mit Ultralytics YOLO erläutert die Gründe.

So schneidet Kachelung im Vergleich zu anderen Möglichkeiten ab, kleinen Objekten mehr Pixel zu geben:

AnsatzModelleingaben für ein Bild mit 1920 x 1080 PixelnWas das Modell siehtAm besten geeignet, wenn
Gesamtes Bild, imgsz=6401Bild um den Faktor 3 verkleinertObjekte bleiben nach dem Verkleinern gut sichtbar
Gesamtes Bild, imgsz=12801, bei ungefähr viermal so hohem Rechenaufwand wie bei 640Bild um den Faktor 1,5 verkleinertSpeicher und Latenz erlauben eine größere Eingabe
tile=True mit imgsz=6408640 Pixel große Ausschnitte in nativer AuflösungBilder, die um ein Mehrfaches größer als die Modelleingabe sind
tile=400 mit imgsz=640Mehr als 8Ausschnitte auf 640 Pixel vergrößertObjekte sind selbst in nativer Auflösung nur wenige Pixel breit

Jede Kachel ist eine gewöhnlich große Modelleingabe. So verarbeitet Kachelung sehr große Bilder, ohne imgsz zu erhöhen. Ausgaben in der Größe der Quelle, etwa Masken und Tiefenkarten, benötigen weiterhin Speicher proportional zur Größe des Originalbildes, und max_det begrenzt die Anzahl der gespeicherten Instanzmasken.

Wann Kachelung hilft – und wann sie schadet#

Kachelung hilft, wenn Objekte im Verhältnis zum Bild klein sind und das Bild viel größer als die Modelleingabe ist. Dazu zählen Drohnen- und Satellitenbilder, Verkehr aus der Vogelperspektive, Menschenmengen, weitwinklig fotografierte Ladenregale und Bilder zur visuellen Inspektion ganzer Platinen oder Schalttafeln.

Bei großen Objekten ist sie nachteilig. Ein Ausschnitt zeigt nur einen Teil eines Lastwagens, der die Hälfte des Bildes ausfüllt. Der Leitfaden weist ausdrücklich darauf hin: Objekte, die größer als die Überlappung sind, können weiterhin geteilt werden, weil kein Ausschnitt sie vollständig erfasst, und beim Zusammenführen werden einzelne Fragmente nicht verbunden. Außerdem geht der globale Kontext verloren, was sich besonders auf Klassifikation und Tiefenschätzung auswirkt, bei denen die Ergebnisse der Ausschnitte im Bild voneinander abweichen können.

Kleinere Ausschnitte bringen einen weiteren Zielkonflikt mit sich. Wird ein 400 Pixel großer Ausschnitt auf 640 Pixel vergrößert, hilft das bei Objekten, die nur wenige Pixel breit sind. Gleichzeitig wird aber auch der störende Hintergrund vergrößert, was zu falsch positiven Ergebnissen führen kann. Vergleiche zwei oder drei Kachelgrößen mit deinem eigenen Validierungssatz und achte sowohl auf die Präzision als auch auf den Recall.

So werden Kacheln wieder zu einem Ergebnis zusammengeführt#

Jeder Ausschnitt liefert eigene Vorhersagen in den Koordinaten des Ausschnitts. Die Kachelung überträgt sie auf das Quellbild zurück und gibt pro Originalbild ein Results-Objekt zurück. Nachgelagerter Code, der result.boxes ausliest, funktioniert daher unverändert weiter.

Durch Überlappungen kann ein Objekt nahe einer Nahtstelle zweimal erkannt werden. Bei der Objekterkennung werden Duplikate mithilfe der Nicht-Maximum-Unterdrückung und deiner Einstellungen iou, agnostic_nms und max_det unterdrückt. Unser Leitfaden zum Einstellen des NMS-IoU-Schwellenwerts gilt daher direkt für gekachelte Ausgaben. Ein an der Kante eines Ausschnitts abgeschnittener Begrenzungsrahmen wird verworfen, wenn ein anderer Ausschnitt das Objekt vollständig innerhalb seiner Grenzen erfasst und ein beibehaltener Begrenzungsrahmen es abdeckt. So bleibt an der Nahtstelle die vollständigere Vorhersage erhalten. Ein abgeschnittener Begrenzungsrahmen ohne bessere Übereinstimmung bleibt erhalten.

Begrenzungsrahmen benachbarter Ausschnitte an einer Nahtstelle: abgeschnittene Begrenzungsrahmen der oberen Ausschnitte neben vollständigen Begrenzungsrahmen der unteren Ausschnitte, danach ein Begrenzungsrahmen pro Auto nach dem Zusammenführen

Eine Darstellung des Umgangs mit der Nahtstelle bei y = 640 im selben Bild. Türkisfarbene Begrenzungsrahmen werden an der Unterkante der oberen Ausschnitte abgeschnitten, magentafarbene Begrenzungsrahmen stammen aus den unteren Ausschnitten. Die rechte Abbildung zeigt für jedes Auto den vollständigeren Begrenzungsrahmen, der nach dem Zusammenführen erhalten bleibt.

Jede Ultralytics-YOLO-Aufgabe führt die Ergebnisse auf eigene Weise zusammen:

  • Detect, Segment, Pose und OBB übertragen Begrenzungsrahmen, Masken, Keypoints oder gedrehte Begrenzungsrahmen zurück in die Koordinaten des Quellbildes und wählen Begrenzungsrahmen aus; für OBB wird gedrehtes NMS angewendet.
  • Semantische Segmentierung fügt Klassenkarten zusammen und wählt bei überlappenden Ausschnitten den jeweils zentralsten Ausschnitt aus.
  • Tiefenschätzung mischt überlappende Tiefenkarten mit Gewichtungen, die zur Mitte jeder Kachel hin zunehmen.
  • Klassifikation mittelt die Wahrscheinlichkeiten der Kacheln.

Die Python-Pipeline kachelt bei Vorhersagen außerdem YOLO-World, YOLOE, RT-DETR und FastSAM. SAM verwendet eine eigene Ausschnitt-Pipeline und akzeptiert tile nicht.

Gekachelte Inferenz in Python mit dem tile-Argument#

Für die Kachelung brauchst du Ultralytics 8.4.204 oder höher und kein zusätzliches Paket. Übergib im Vorhersagemodus tile=True, um imgsz als Ausschnittgröße zu verwenden, oder gib eine Ganzzahl an, um die Ausschnittgröße separat festzulegen:

from ultralytics import YOLO

model = YOLO("yolo26s.pt")

# Basisversion: ein Durchlauf über das auf 640 Pixel verkleinerte Bild
full = model.predict("intersection.jpg", imgsz=640)

# Gekachelt: 640 Pixel große Ausschnitte in nativer Auflösung, 8 Ausschnitte pro Batch
tiled = model.predict("intersection.jpg", imgsz=640, tile=640, batch=8)

print(len(full[0].boxes), len(tiled[0].boxes))

Dasselbe Argument funktioniert auch mit der CLI über yolo predict model=yolo26s.pt source=large-image.tif tile=640 imgsz=640 batch=8. Übergib bei Videos stream=True, um den Speicherverbrauch zu begrenzen. Im Tracking-Modus wird der Tracker pro Bild einmal auf die zusammengeführten Vorhersagen angewendet.

Kachelung ist nicht nur für Vorhersagen gedacht. Wenn deine Bilder viel größer als imgsz sind, trainiere und validiere mit derselben Einstellung:

  1. Auf Kacheln trainieren mit model.train(data="aerial.yaml", tile=True, imgsz=640). Beschriftungen werden auf die einzelnen Ausschnitte begrenzt. Instanzen, bei denen weniger als 10 % der ursprünglichen Begrenzungsrahmenfläche übrig bleiben, werden entfernt, und leere Ausschnitte bleiben als negative Beispiele erhalten.
  2. Anhand zusammengeführter Ergebnisse validieren mit model.val(data="aerial.yaml", tile=True, imgsz=640). Vorhersagen werden zusammengeführt, bevor sie anhand der Originalannotationen bewertet werden. So entspricht der mAP dem, was du bereitstellen wirst.
  3. Große Quelldateien zwischenspeichern mit cache="ram", da beim Training die Kacheln zufällig angeordnet werden und dasselbe große Bild sonst viele Male dekodiert werden müsste.
  4. Mit einer Basisversion für das gesamte Bild vergleichen, und zwar anhand derselben Validierungsaufteilung, bevor du das gekachelte Modell übernimmst. Weitere Möglichkeiten, die Bewertung kleiner Objekte zu verbessern, findest du in unserer Checkliste für den mAP kleiner Objekte.

Beim Training mit Kacheln sieht das Modell Objekte in der Größe, in der sie auch bei der gekachelten Vorhersage auftreten. Unser Leitfaden zu Datensätzen für die Drohnenerkennung führt anhand von 4K-Bildern durch den gesamten Ablauf aus Training, Kachelung und Evaluation.

Auch exportierte Modelle lassen sich kacheln. Da die Kachelung in der Python-Vorhersagepipeline ausgeführt wird, behält ein nach ONNX oder TensorRT exportiertes Modell seinen üblichen Eingabegraphen, und YOLO("yolo26s.onnx").predict(source, tile=640) funktioniert wie gewohnt – auch mit festen Batchgrößen beim Export und dem letzten unvollständigen Batch.

Die VisDrone-Datensatzseite in Ultralytics Platform mit den zugehörigen Luftbildern

Der VisDrone-Datensatz in Ultralytics Platform ist ein sofort nutzbarer Benchmark, um Kachelgrößen zu testen, bevor du deine eigenen Daten beschriftest.

Wenn du Kachelgrößen zunächst mit öffentlichen Daten ausprobieren möchtest, beginne mit dem VisDrone-Datensatz auf Ultralytics Platform. Um einen gekachelten Lauf neben deiner Basisversion zu protokollieren, kopiere den Befehl für lokales Training aus dem Trainingsdialog der Platform, setze project auf das Platform-Projekt deiner Basisversion und füge tile=True hinzu, um die Metriken des gekachelten Laufs dorthin zu übertragen.

Gekachelte Inferenz in Rust mit dem neuen Flag --tile#

Ultralytics Inference ist unsere Rust-Bibliothek und CLI zum Ausführen exportierter ONNX-Modelle mit ONNX Runtime sowie von OpenVINO-IR-Modellen direkt und ohne Python-Laufzeitumgebung zur Inferenz. Sie ist für Server, Container und Edge-Geräte mit CPU, CUDA, TensorRT, CoreML, OpenVINO und anderen Ausführungsanbietern vorgesehen. Version 0.0.57 übernimmt denselben Kachelansatz wie Python: 20 % Basisüberlappung der Ausschnitte, Übertragung der Ergebnisse zurück auf das Quellbild und klassenweise Entfernung von Duplikaten.

Eine Verkehrskamera und ein kompakter Edge-Computer sind bei goldenem Licht an einem Mast über einer Autobahnkreuzung montiert

Zur Veranschaulichung. Eine Straßenkamera mit Edge-Computer – eine typische Bereitstellung ohne Python, auf die die Rust-Bibliothek ausgerichtet ist.

Das Team verglich gekachelte Ausgaben mit Ultralytics Python unter ONNX Runtime CPU, OpenVINO CPU, GPU und NPU, CUDA und TensorRT sowie mit Bildern, Videos und Webcams. Unterstützt werden Modelle für Objekterkennung, Segmentierung, semantische Segmentierung, Tiefenschätzung, Klassifikation, Pose und OBB.

Füge in der CLI --tile mit einer Ausschnittgröße hinzu oder übergib es ohne Wert, um --imgsz zu verwenden. Der Modell-Export ist ein einmaliger Schritt in Python; für die Inferenz selbst wird nur die Rust-Binärdatei benötigt:

# One-time export in Python: a dynamic-batch ONNX model so several windows run per call
pip install -U "ultralytics[export-base]>=8.4.204"
yolo export model=yolo26s.pt format=onnx dynamic=True

# Install the Rust CLI
cargo install ultralytics-inference

# Tiled inference on a large image: 640-pixel windows, 8 per batch
ultralytics-inference predict --model yolo26s.onnx --source aerial.jpg --tile 640 --batch 8

Als Bibliothek richtest du die Kachelung einmal in InferenceConfig ein, und jeder Aufruf von predict wird gekachelt ausgeführt. with_tile(0) verwendet die Inferenzgröße:

use ultralytics_inference::{InferenceConfig, YOLOModel};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = InferenceConfig::new().with_tile(640);
    let mut model = YOLOModel::load_with_config("yolo26s.onnx", config)?;
    let results = model.predict("aerial.jpg")?;
    if let Some(ref boxes) = results[0].boxes {
        println!("{} detections", boxes.len());
    }
    Ok(())
}

Doppelte Begrenzungsrahmen in überlappenden Ausschnitten werden mit klassenweisem NMS und dem festgelegten --iou entfernt. Seit derselben Version ist der Standardwert 0.5 und entspricht damit den Ultralytics-Standardwerten für Vorhersagen. Kachelung ist standardmäßig deaktiviert, da jeder Ausschnitt eine weitere Modelleingabe bedeutet. Aktiviere sie dort, wo Details wichtig sind, miss die Inferenzlatenz auf dem Zielgerät und wähle den passenden Ausführungsanbieter. Unser Vergleich von ONNX und TensorRT hilft bei NVIDIA-Hardware, und der Leitfaden zu NVIDIA Jetson erläutert die Einrichtung auf dem Gerät.

SAHI-Nutzer können zum integrierten tile-Argument wechseln#

Wenn du bereits mit der SAHI-Bibliothek Bilder in Ausschnitte aufteilst, erledigt das integrierte Argument dieselbe Aufgabe direkt in Ultralytics – ohne zusätzliches Paket oder separates Ergebnisformat. Unser Leitfaden zur SAHI-Integration ist jetzt veraltet und wurde durch tile ersetzt.

Für die Umstellung eines SAHI-Skripts müssen meist nur die Argumente geändert werden:

SAHIIntegrierte Kachelung
AutoDetectionModel.from_pretrained(model_type="ultralytics", ...)YOLO("yolo26s.pt")
get_sliced_prediction(image, model, slice_height=256, slice_width=256, ...)model.predict(image, tile=256)
overlap_height_ratio, overlap_width_ratioFeste Basisüberlappung von 20 %, Randbereiche an den Bildgrenzen ausgerichtet
SAHI PredictionResultStandardmäßiges Ultralytics-Results

Die Ausschnitte sind quadratisch. Überlappung und Zusammenführung folgen den oben beschriebenen Regeln statt der konfigurierbaren Nachbearbeitung von SAHI. Erwarte daher ähnliche, aber nicht identische Begrenzungsrahmen. Überprüfe deine Schwellenwerte nach dem Wechsel erneut anhand eines Validierungssatzes.

Der praktische Unterschied liegt in der Integration. tile lässt sich mit demselben Argument in das Training, die Validierung, die Vorhersage und das Tracking von Ultralytics einbinden, gibt standardmäßige Results-Objekte zurück und bietet eine entsprechende Option in der Rust-Bibliothek. So kannst du eine in einem Notebook validierte Kachelgröße auch in einer Rust-Binärdatei am Edge-Gerät verwenden.

Für wen sich die Kachelung eignet#

Aktiviere die Kachelung, wenn du Ultralytics YOLO auf Bildern ausführst, die um ein Mehrfaches größer als die Modelleingabe sind, und deine Validierung zeigt, dass kleine Objekte übersehen werden. Das betrifft Drohnen- und Satellitenteams, Anbieter von Verkehrs- und Sicherheitslösungen mit Weitwinkelkameras sowie Inspektionsteams, die ganze Platinen, Schalttafeln oder Regale fotografieren. Rust-Nutzer erhalten denselben Kachelansatz auf Edge-Hardware ohne Python-Laufzeitumgebung.

Lass die Kachelung deaktiviert, wenn Objekte im Verhältnis zum Bild groß sind, eine größere imgsz sie bereits in einem Durchlauf erkennt oder das Latenzbudget nicht mehrere Kacheleingaben pro Bild zulässt. Vergleiche in jedem Fall gekachelte Ergebnisse und Ergebnisse für das gesamte Bild anhand derselben Validierungsaufteilung und desselben Konfidenzschwellenwerts. Achte dabei auf Recall, falsch positive Ergebnisse und Latenz, und verwende Kachelung nur, wenn der Zugewinn den zusätzlichen Aufwand rechtfertigt.

Ultralytics Platform fasst diesen Vergleich an einem Ort zusammen: Beschrifte deine eigenen hochauflösenden Bilder oder beginne mit VisDrone, trainiere eine Basisversion für das gesamte Bild auf Cloud-GPUs, trainiere eine weitere Basisversion mit einer größeren imgsz und protokolliere einen gekachelten Lauf von deinem eigenen Rechner im selben Projekt. Der Leitfaden zur Kachelung hochauflösender Bilder erläutert die Kacheloptionen, und die Dokumentation zu Ultralytics Inference behandelt die Bereitstellung mit Rust.

Das Python-Paket und die Rust-Bibliothek sind unter AGPL-3.0 verfügbar. Wenn du gekachelte Erkennung in ein Closed-Source-Produkt oder ein Edge-Gerät integrierst, das du an Kunden auslieferst, erlaubt eine Ultralytics-Unternehmenslizenz die kommerzielle Nutzung der abgedeckten Ultralytics-Software ohne die Offenlegungspflichten des AGPL-3.0, vorbehaltlich der Lizenzbedingungen.

Häufig gestellte Fragen

  • Bei der Bildkachelung wird ein großes Bild in überlappende Ausschnitte aufgeteilt. Der Detektor verarbeitet jeden Ausschnitt, anschließend werden die Begrenzungsrahmen wieder auf das Originalbild übertragen und zusammengeführt. Entspricht die Ausschnittgröße der Modelleingabe, behalten kleine Objekte Pixel, die sie beim Verkleinern des gesamten Bildes verlieren würden. In Ultralytics YOLO erledigt das Argument tile dies mit einer Basisüberlappung von 20 % und gibt ein Ergebnis pro Bild zurück.

  • Prüfe zuerst, ob das Verkleinern das Problem verursacht: Schrumpfen Objekte bei imgsz=640 auf wenige Pixel, teste eine größere imgsz oder tile=True. Trainiere mit derselben Einstellung, die du auch für Vorhersagen verwendest, damit das Modell Objekte in der späteren Einsatzgröße lernt, und validiere nach Größe und Klasse. Kachelung eignet sich für Bilder, die um ein Mehrfaches größer als die Modelleingabe sind.

  • Sie fügt eine Modelleingabe pro Ausschnitt hinzu: Ein Bild mit 1920 x 1080 Pixeln wird bei tile=640 in acht Kacheleingaben statt einem Bild verarbeitet. Werden mehrere Kacheln in einem Batch-Aufruf ausgeführt, kann das den Durchsatz erhöhen. Verwende dazu in Python batch oder in Rust --batch mit einem Export mit dynamischer Batchgröße. Miss die Latenz auf deiner Zielhardware.

  • Nein. Seit Ultralytics 8.4.204 verarbeitet das integrierte Argument tile Bilder ohne zusätzliches Paket in Ausschnitten. Außerdem unterstützt es gekacheltes Training, Validierung und Tracking. Der SAHI-Leitfaden in unserer Dokumentation ist veraltet und wurde durch tile ersetzt.

  • Ja. In Python behalten exportierte Modelle ihren üblichen Eingabegraphen, und du übergibst wie gewohnt tile an predict. In Rust fügt Ultralytics Inference 0.0.57 --tile zur CLI und with_tile zu InferenceConfig hinzu. Die Ergebnisse wurden mit Python unter ONNX Runtime CPU, OpenVINO, CUDA und TensorRT verglichen.

  • Beginne mit tile=True, das imgsz als Fenstergröße verwendet. Verwende ein kleineres Fenster, etwa tile=400 mit imgsz=640, wenn Objekte selbst bei nativer Auflösung nur wenige Pixel breit sind, und ein größeres, wenn Objekte an den Kachelgrenzen abgeschnitten werden könnten. Vergleiche einige Größen anhand deines Validierungssatzes und achte dabei sowohl auf den Recall als auch auf falsch positive Ergebnisse.

Verfasst von

Onuralp Sezer
Onuralp Sezer

Senior Machine-Learning-Engineer · Ultralytics

Onuralp Sezer ist Senior Machine Learning Engineer bei Ultralytics. Dort arbeitet er an der Weiterentwicklung von Computer-Vision-Technologien wie YOLO und trägt zur Open-Source-Entwicklung bei. Als langjähriger Organisator der Google Developer Group (GDG) und Mitwirkender an Open-Source-Projekten engagiert er sich als Redner zu den Themen maschinelles Lernen und Computer Vision in der Entwickler-Community. Zuvor hat er auch zum Fedora Project beigetragen.

Kommentare

Stelle eine Frage, teile deine Ergebnisse oder hilf anderen.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens