Verwendung von YOLO26 mit SAHI für segmentierte Inferenz#
Diese Anleitung zeigt dir, wie du YOLO26 mit SAHI (Slicing Aided Hyper Inference) verwendest. Wir gehen detailliert darauf ein, was SAHI ist, warum segmentierte Inferenz für groß angelegte Anwendungen entscheidend ist und wie du diese Funktionalitäten mit YOLO26 integrierst, um die Leistung bei der Objekterkennung zu verbessern.
Einführung in SAHI#
SAHI (in Scheiben unterstützte Hyper-Inferenz) ist eine innovative Bibliothek zur Optimierung von Algorithmen zur Objekterkennung für großformatige Bilder mit hoher Auflösung. Die Kernfunktion besteht darin, Bilder in handhabbare Ausschnitte zu unterteilen, auf jedem Ausschnitt eine Objekterkennung durchzuführen und die Ergebnisse anschließend wieder zusammenzuführen. SAHI ist mit verschiedenen Objekterkennungsmodellen kompatibel, darunter die YOLO-Reihe, und bietet dadurch Flexibilität bei gleichzeitig optimierter Nutzung der Rechenressourcen.
Watch: How to use SAHI with Ultralytics YOLO26 to Detect Small Objects | Slicing Aided Hyper Inference 🚀
Wichtige Funktionen von SAHI#
- Nahtlose Integration: SAHI lässt sich problemlos in YOLO-Modelle integrieren. Dadurch kannst du ohne umfangreiche Codeänderungen mit dem Aufteilen und Erkennen beginnen.
- Ressourceneffizienz: Durch die Aufteilung großer Bilder in kleinere Teile optimiert SAHI die Speichernutzung und ermöglicht eine hochwertige Erkennung auf Hardware mit begrenzten Ressourcen.
- Hohe Genauigkeit: SAHI bewahrt die Erkennungsgenauigkeit, indem intelligente Algorithmen sich überschneidende Erkennungsrahmen während des Zusammenfügens zusammenführen.
Was ist die Inferenz mit Bildausschnitten?#
Bei der Inferenz mit Bildausschnitten wird ein großes oder hochauflösendes Bild in kleinere Segmente (Ausschnitte) unterteilt, auf diesen Ausschnitten eine Objekterkennung durchgeführt und die Ausschnitte anschließend wieder zusammengesetzt, um die Positionen der Objekte im Originalbild zu rekonstruieren. Diese Technik ist besonders wertvoll, wenn die Rechenressourcen begrenzt sind oder mit extrem hochauflösenden Bildern gearbeitet wird, die andernfalls zu Speicherproblemen führen könnten.
Vorteile der Inferenz mit Bildausschnitten#
-
Geringere Rechenlast: Kleinere Bildausschnitte lassen sich schneller verarbeiten und benötigen weniger Speicher, wodurch ein reibungsloserer Betrieb auf leistungsschwächerer Hardware möglich wird.
-
Erhaltene Erkennungsqualität: Da jeder Ausschnitt unabhängig verarbeitet wird, nimmt die Qualität der Objekterkennung nicht ab, sofern die Ausschnitte groß genug sind, um die relevanten Objekte vollständig zu erfassen.
-
Bessere Skalierbarkeit: Die Technik ermöglicht eine einfachere Skalierung der Objekterkennung über verschiedene Bildgrößen und Auflösungen hinweg und eignet sich dadurch für zahlreiche Anwendungen, von Satellitenbildern bis zur medizinischen Diagnostik.
| YOLO26 without SAHI | YOLO26 with SAHI |
|---|---|
![]() | ![]() |
Installation und Vorbereitung#
Installation#
Installiere zunächst 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",
)Standardinferenz mit YOLO26#
Das Modell instanziieren#
Du kannst ein YOLO26-Modell zur 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 Standardinferenz mit einem Bildpfad 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 Begrenzungsrahmen 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()Inferenz mit Bildausschnitten und YOLO26#
Führe eine Inferenz mit Bildausschnitten durch, indem du die Abmessungen der Ausschnitte und die Überlappungsverhältnisse angibst:
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()Vorhersageergebnisse verarbeiten#
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 and COCO prediction formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]Batch-Vorhersage#
So führst du Batch-Vorhersagen für ein Verzeichnis mit Bildern durch:
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 kannst YOLO26 jetzt zusammen mit SAHI sowohl für die Standardinferenz als auch für die Inferenz mit Bildausschnitten verwenden.
Zitate und Danksagungen#
Wenn du SAHI in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte die ursprüngliche SAHI-Veröffentlichung und würdige 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}
}Unser Dank gilt der SAHI-Forschungsgruppe für die Erstellung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community. Weitere Informationen zu SAHI und seinen Entwicklern findest du im SAHI-GitHub-Repository.
FAQ#
Die Integration von Ultralytics YOLO26 in SAHI (in Scheiben unterstützte Hyper-Inferenz) für die Inferenz mit Bildausschnitten optimiert deine Objekterkennungsaufgaben bei hochauflösenden Bildern, indem diese in handhabbare Ausschnitte unterteilt werden. Dieser Ansatz verbessert die Speichernutzung und gewährleistet eine hohe Erkennungsgenauigkeit. Installiere zunächst die Bibliotheken ultralytics und sahi:
pip install -U ultralytics sahiLade anschließend 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", )Ausführlichere Anweisungen findest du in unserem Leitfaden zur Inferenz mit Bildausschnitten.
Die Verwendung von SAHI mit Ultralytics YOLO26 für die Objekterkennung in großen Bildern bietet mehrere Vorteile:
- Geringere Rechenlast: Kleinere Ausschnitte lassen sich schneller verarbeiten und benötigen weniger Speicher, sodass hochwertige Erkennungen auch auf Hardware mit begrenzten Ressourcen möglich sind.
- Erhaltene Erkennungsgenauigkeit: SAHI verwendet intelligente Algorithmen, um sich überschneidende Rahmen zusammenzuführen und so die Erkennungsqualität zu bewahren.
- Bessere Skalierbarkeit: Durch die Skalierung von Objekterkennungsaufgaben über verschiedene Bildgrößen und Auflösungen hinweg eignet sich SAHI ideal für unterschiedliche Anwendungen, etwa die Analyse von Satellitenbildern und die medizinische Diagnostik.
In unserer Dokumentation erfährst du mehr über die Vorteile der Inferenz mit Bildausschnitten.
Ja, du kannst bei der Verwendung von YOLO26 mit SAHI die Vorhersageergebnisse visualisieren. 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. Anschließend kannst du das Bild laden und in deinem Notebook oder deiner Anwendung anzeigen. Eine ausführliche Anleitung findest du im Abschnitt Standardinferenz.
SAHI (in Scheiben unterstützte Hyper-Inferenz) bietet mehrere Funktionen, die Ultralytics YOLO26 bei der Objekterkennung ergänzen:
- Nahtlose Integration: SAHI lässt sich einfach in YOLO-Modelle integrieren und erfordert nur minimale Codeanpassungen.
- Ressourceneffizienz: Die Bibliothek unterteilt große Bilder in kleinere Ausschnitte und optimiert dadurch Speichernutzung und Geschwindigkeit.
- Hohe Genauigkeit: Durch das effektive Zusammenführen sich überschneidender Erkennungsrahmen während des Zusammenfügens bewahrt SAHI eine hohe Erkennungsgenauigkeit.
Ein tieferes Verständnis erhältst du in unserem Beitrag zu den wichtigsten Funktionen von SAHI.
Beachte bei Inferenzprojekten im großen Maßstab mit YOLO26 und SAHI die folgenden bewährten Vorgehensweisen:
- Erforderliche Bibliotheken installieren: Stelle sicher, dass du die neuesten Versionen von ultralytics und sahi verwendest.
- Inferenz mit Bildausschnitten konfigurieren: Ermittle die optimalen Abmessungen der Ausschnitte und Überlappungsverhältnisse für dein konkretes Projekt.
- Batch-Vorhersagen ausführen: Nutze die Funktionen von SAHI, um Batch-Vorhersagen für ein Verzeichnis mit Bildern durchzuführen und so die Effizienz zu steigern.
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.

