Ultralytics Docs: Verwendung von YOLO26 mit SAHI für Sliced Inference
Willkommen in der Ultralytics-Dokumentation zur Verwendung von YOLO26 mit SAHI (Slicing Aided Hyper Inference). Dieser umfassende Leitfaden stellt dir alle wesentlichen Informationen bereit, die du für die Implementierung von SAHI zusammen mit YOLO26 benötigst. Wir gehen tief in das Thema ein, was SAHI ist, warum Sliced Inference für groß angelegte Anwendungen entscheidend ist und wie du diese Funktionen in YOLO26 integrieren kannst, um die Leistung bei der Objekterkennung zu steigern.
Einführung in SAHI
SAHI (Slicing Aided Hyper Inference) ist eine innovative Bibliothek, die entwickelt wurde, um Objekterkennungsalgorithmen für großflächige und hochauflösende Bilder zu optimieren. Ihre Kernfunktionalität liegt in der Unterteilung von Bildern in handliche Ausschnitte (Slices), der Durchführung der Objekterkennung auf jedem Ausschnitt und dem anschließenden Zusammenfügen der Ergebnisse. SAHI ist mit einer Reihe von Objekterkennungsmodellen kompatibel, einschließlich der YOLO-Serie, und bietet so Flexibilität bei gleichzeitig optimierter Nutzung der Rechenressourcen.
Watch: How to use SAHI with Ultralytics YOLO26 to Detect Small Objects | Slicing Aided Hyper Inference 🚀
Hauptfunktionen von SAHI
- Nahtlose Integration: SAHI lässt sich mühelos in YOLO-Modelle integrieren, sodass du ohne große Codeänderungen mit dem Slicing und der Erkennung beginnen kannst.
- Ressourceneffizienz: Durch die Zerlegung großer Bilder in kleinere Teile optimiert SAHI die Speicherauslastung und ermöglicht dir die Durchführung qualitativ hochwertiger Erkennungen auf Hardware mit begrenzten Ressourcen.
- Hohe Genauigkeit: SAHI erhält die Erkennungsgenauigkeit aufrecht, indem intelligente Algorithmen verwendet werden, um überlappende Erkennungsboxen während des Zusammenfügungsprozesses zusammenzuführen.
Was ist Sliced Inference?
Sliced Inference bezeichnet die Praxis, ein großes oder hochauflösendes Bild in kleinere Segmente (Slices) zu unterteilen, eine Objekterkennung auf diesen Ausschnitten durchzuführen und die Ausschnitte anschließend wieder zusammenzusetzen, um die Objektpositionen auf dem Originalbild zu rekonstruieren. Diese Technik ist in Szenarien von unschätzbarem Wert, in denen Rechenressourcen begrenzt sind oder mit extrem hochauflösenden Bildern gearbeitet wird, die ansonsten zu Speicherproblemen führen könnten.
Vorteile von Sliced Inference
-
Reduzierte Rechenlast: Kleinere Bildausschnitte lassen sich schneller verarbeiten und verbrauchen weniger Speicher, was einen reibungsloseren Betrieb auf einfacherer Hardware ermöglicht.
-
Bewahrte Erkennungsqualität: Da jeder Ausschnitt unabhängig behandelt wird, gibt es keine Einbußen bei der Qualität der Objekterkennung, sofern die Ausschnitte groß genug sind, um die Objekte von Interesse zu erfassen.
-
Erhöhte Skalierbarkeit: Die Technik ermöglicht eine einfachere Skalierung der Objekterkennung über verschiedene Bildgrößen und -auflösungen hinweg, was sie ideal für eine Vielzahl von Anwendungen macht, von Satellitenbildern bis zur medizinischen Diagnostik.
| YOLO26 without SAHI | YOLO26 with SAHI |
|---|---|
![]() | ![]() |
Installation und Vorbereitung
Installation
Um loszulegen, installiere die neuesten Versionen von SAHI und Ultralytics:
pip install -U ultralytics sahiModule importieren und Ressourcen herunterladen
So lädst du einige Testbilder herunter:
from sahi.utils.file import download_from_url
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
"demo_data/terrain2.png",
)Standard-Inferenz mit YOLO26
Modell instanziieren
Du kannst ein YOLO26-Modell für die Objekterkennung wie folgt instanziieren:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="ultralytics",
model_path="yolo26n.pt",
confidence_threshold=0.3,
device="cpu", # or 'cuda:0'
)Standardvorhersage durchführen
Führe eine Standard-Inferenz unter Verwendung eines Bildpfads durch.
from sahi.predict import get_prediction
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)
result.export_visuals(export_dir="demo_data/", hide_conf=True)Ergebnisse visualisieren
Exportiere und visualisiere die vorhergesagten Bounding Boxes und Masken:
from PIL import Image
# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")
# Display the predicted image
processed_image.show()Sliced Inference mit YOLO26
Führe eine Sliced-Inferenz durch, indem du die Ausschnittsdimensionen und Überlappungsverhältnisse festlegst:
from PIL import Image
from sahi.predict import get_sliced_prediction
result = get_sliced_prediction(
"demo_data/small-vehicles1.jpeg",
detection_model,
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
# Export results
result.export_visuals(export_dir="demo_data/", hide_conf=True)
# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")
# Display the predicted image
processed_image.show()Umgang mit Vorhersageergebnissen
SAHI stellt ein PredictionResult-Objekt bereit, das in verschiedene Annotationsformate konvertiert werden kann:
# Access the object prediction list
object_prediction_list = result.object_prediction_list
# Convert to COCO annotation, COCO prediction, imantics, and fiftyone formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]
result.to_imantics_annotations()[:3]
result.to_fiftyone_detections()[:3]Batch-Vorhersage
Für eine Batch-Vorhersage auf einem Verzeichnis von Bildern:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="yolo26n.pt",
model_device="cpu", # or 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)Du bist jetzt bereit, YOLO26 mit SAHI sowohl für Standard- als auch für Sliced-Inferenz zu verwenden.
Zitate und Danksagungen
Wenn du SAHI in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte das ursprüngliche SAHI-Paper und nenne die Autoren:
@article{akyon2022sahi,
title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},
author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},
journal={2022 IEEE International Conference on Image Processing (ICIP)},
doi={10.1109/ICIP46576.2022.9897990},
pages={966-970},
year={2022}
}Wir danken der SAHI-Forschungsgruppe für die Erstellung und Pflege dieser wertvollen Ressource für die Computer Vision-Community. Weitere Informationen über SAHI und seine Schöpfer findest du im SAHI GitHub-Repository.
FAQ
Wie kann ich YOLO26 für Sliced Inference bei der Objekterkennung mit SAHI integrieren?
Die Integration von Ultralytics YOLO26 mit SAHI (Slicing Aided Hyper Inference) für Sliced Inference optimiert deine Objekterkennungsaufgaben bei hochauflösenden Bildern durch deren Aufteilung in handliche Ausschnitte. Dieser Ansatz verbessert die Speicherauslastung und stellt eine hohe Erkennungsgenauigkeit sicher. Um zu beginnen, musst du die Bibliotheken ultralytics und sahi installieren:
pip install -U ultralytics sahiLade dann die Testbilder herunter:
from sahi.utils.file import download_from_url
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
"demo_data/terrain2.png",
)Detailliertere Anweisungen findest du in unserem Sliced Inference-Leitfaden.
Warum sollte ich SAHI mit YOLO26 für die Objekterkennung bei großen Bildern verwenden?
Die Verwendung von SAHI mit Ultralytics YOLO26 für die Objekterkennung bei großen Bildern bietet mehrere Vorteile:
- Reduzierte Rechenlast: Kleinere Ausschnitte sind schneller zu verarbeiten und verbrauchen weniger Speicher, wodurch es möglich wird, qualitativ hochwertige Erkennungen auf Hardware mit begrenzten Ressourcen durchzuführen.
- Erhaltene Erkennungsgenauigkeit: SAHI verwendet intelligente Algorithmen zum Zusammenführen überlappender Boxen, um die Erkennungsqualität zu bewahren.
- Erhöhte Skalierbarkeit: Durch die Skalierung von Objekterkennungsaufgaben über verschiedene Bildgrößen und -auflösungen hinweg ist SAHI ideal für verschiedene Anwendungen, wie etwa die Analyse von Satellitenbildern und medizinische Diagnostik.
Erfahre mehr über die Vorteile von Sliced Inference in unserer Dokumentation.
Kann ich Vorhersageergebnisse visualisieren, wenn ich YOLO26 mit SAHI verwende?
Ja, du kannst Vorhersageergebnisse visualisieren, wenn du YOLO26 mit SAHI verwendest. So kannst du die Ergebnisse exportieren und visualisieren:
from PIL import Image
result.export_visuals(export_dir="demo_data/", hide_conf=True)
processed_image = Image.open("demo_data/prediction_visual.png")
processed_image.show()Dieser Befehl speichert die visualisierten Vorhersagen im angegebenen Verzeichnis, und du kannst das Bild dann laden, um es in deinem Notebook oder deiner Anwendung anzuzeigen. Eine detaillierte Anleitung findest du im Abschnitt Standard-Inferenz.
Welche Funktionen bietet SAHI zur Verbesserung der YOLO26-Objekterkennung?
SAHI (Slicing Aided Hyper Inference) bietet mehrere Funktionen, die Ultralytics YOLO26 für die Objekterkennung ergänzen:
- Nahtlose Integration: SAHI lässt sich einfach in YOLO-Modelle integrieren und erfordert nur minimale Codeanpassungen.
- Ressourceneffizienz: Es unterteilt große Bilder in kleinere Ausschnitte, was die Speicherauslastung und Geschwindigkeit optimiert.
- Hohe Genauigkeit: Durch das effektive Zusammenführen überlappender Erkennungsboxen während des Zusammenfügungsprozesses behält SAHI eine hohe Erkennungsgenauigkeit bei.
Für ein tieferes Verständnis lies über die Hauptfunktionen von SAHI.
Wie gehe ich mit großen Inferenzprojekten unter Verwendung von YOLO26 und SAHI um?
Um mit großen Inferenzprojekten unter Verwendung von YOLO26 und SAHI zu arbeiten, befolge diese bewährten Methoden:
- Erforderliche Bibliotheken installieren: Stelle sicher, dass du die neuesten Versionen von ultralytics und sahi hast.
- Sliced Inference konfigurieren: Bestimme die optimalen Ausschnittsdimensionen und Überlappungsverhältnisse für dein spezifisches Projekt.
- Batch-Vorhersagen ausführen: Nutze die Funktionen von SAHI, um Batch-Vorhersagen für ein Verzeichnis von Bildern durchzuführen, was die Effizienz verbessert.
Beispiel für eine Batch-Vorhersage:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="path/to/yolo26n.pt",
model_device="cpu", # or 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)Weitere detaillierte Schritte findest du in unserem Abschnitt zur Batch-Vorhersage.

