Documentazione Ultralytics: Utilizzo di YOLO26 con SAHI per l'inferenza a fette
Benvenuti nella documentazione Ultralytics su come utilizzare YOLO26 con SAHI (Slicing Aided Hyper Inference). Questa guida completa mira a fornirti tutte le conoscenze essenziali necessarie per implementare SAHI insieme a YOLO26. Approfondiremo cos'è SAHI, perché l'inferenza a fette è fondamentale per le applicazioni su larga scala e come integrare queste funzionalità con YOLO26 per prestazioni di object detection migliorate.

Introduzione a SAHI
SAHI (Slicing Aided Hyper Inference) è una libreria innovativa progettata per ottimizzare gli algoritmi di object detection per immagini su larga scala e ad alta risoluzione. La sua funzionalità principale risiede nella suddivisione delle immagini in sezioni gestibili, nell'esecuzione dell'object detection su ciascuna sezione e quindi nell'unione dei risultati. SAHI è compatibile con una vasta gamma di modelli di object detection, inclusa la serie YOLO, offrendo quindi flessibilità e garantendo al contempo un uso ottimizzato delle risorse computazionali.
Guarda: Inferenza con SAHI (Slicing Aided Hyper Inference) utilizzando Ultralytics YOLO26
Caratteristiche principali di SAHI
- Integrazione perfetta: SAHI si integra facilmente con i modelli YOLO, il che significa che puoi iniziare a sezionare e rilevare senza molte modifiche al codice.
- Efficienza delle risorse: Suddividendo le immagini di grandi dimensioni in parti più piccole, SAHI ottimizza l'utilizzo della memoria, consentendoti di eseguire rilevamenti di alta qualità su hardware con risorse limitate.
- Alta precisione: SAHI mantiene l'accuratezza del rilevamento impiegando algoritmi intelligenti per unire le caselle di rilevamento sovrapposte durante il processo di stitching.
Cos'è l'inferenza a fette?
L'Inferenza a Fette si riferisce alla pratica di suddividere un'immagine grande o ad alta risoluzione in segmenti più piccoli (fette), eseguire il rilevamento degli oggetti su queste fette e quindi ricompilare le fette per ricostruire le posizioni degli oggetti sull'immagine originale. Questa tecnica è preziosa in scenari in cui le risorse computazionali sono limitate o quando si lavora con immagini ad altissima risoluzione che potrebbero altrimenti causare problemi di memoria.
Vantaggi dell'inferenza a fette
Ridotto carico computazionale: Le porzioni di immagine più piccole sono più veloci da elaborare e consumano meno memoria, consentendo un funzionamento più fluido su hardware di fascia bassa.
Qualità di rilevamento preservata: Poiché ogni porzione viene trattata in modo indipendente, non vi è alcuna riduzione della qualità del rilevamento degli oggetti, a condizione che le porzioni siano sufficientemente grandi da catturare gli oggetti di interesse.
Scalabilità Migliorata: La tecnica consente di scalare più facilmente il rilevamento di oggetti su diverse dimensioni e risoluzioni di immagini, rendendola ideale per una vasta gamma di applicazioni, dalle immagini satellitari alla diagnostica medica.
| YOLO26 senza SAHI | YOLO26 con SAHI |
|---|---|
![]() | ![]() |
Installazione e preparazione
Installazione
Per iniziare, installa le versioni più recenti di SAHI e Ultralytics:
pip install -U ultralytics sahi
Importa moduli e scarica risorse
Ecco come importare i moduli necessari e scaricare un modello YOLO26 e alcune immagini di test:
from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo26n_model
# Download YOLO26 model
model_path = "models/yolo26n.pt"
download_yolo26n_model(model_path)
# 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",
)
Inferenza Standard con YOLO26
Istanziare il modello
È possibile istanziare un modello YOLO26 per l'object detection in questo modo:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="ultralytics",
model_path=model_path,
confidence_threshold=0.3,
device="cpu", # or 'cuda:0'
)
Esegui la previsione standard
Esegui l'inferenza standard utilizzando un percorso di immagine o un'immagine numpy.
from sahi.predict import get_prediction
from sahi.utils.cv import read_image
# With an image path
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)
# With a numpy image
result_with_np_image = get_prediction(read_image("demo_data/small-vehicles1.jpeg"), detection_model)
Visualizza i risultati
Esporta e visualizza i riquadri di delimitazione e le maschere previsti:
from IPython.display import Image
result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")
Inferenza a Fette con YOLO26
Esegui l'inferenza a fette specificando le dimensioni delle fette e i rapporti di sovrapposizione:
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,
)
Gestione dei risultati della previsione
SAHI fornisce un PredictionResult oggetto, che può essere convertito in vari formati di annotazione:
# 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]
Previsione batch
Per la previsione batch su una directory di immagini:
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,
)
Ora sei pronto a utilizzare YOLO26 con SAHI sia per l'inferenza standard che per quella a fette.
Citazioni e ringraziamenti
Se utilizzi SAHI nel tuo lavoro di ricerca o sviluppo, cita l'articolo originale su SAHI e riconosci gli autori:
@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}
}
Ringraziamo il gruppo di ricerca SAHI per aver creato e mantenuto questa risorsa preziosa per la comunità di computer vision. Per maggiori informazioni su SAHI e i suoi creatori, visitate il repository GitHub di SAHI.
FAQ
Come posso integrare YOLO26 con SAHI per l'inferenza a fette nell'object detection?
L'integrazione di Ultralytics YOLO26 con SAHI (Slicing Aided Hyper Inference) per l'inferenza a fette ottimizza le tue attività di object detection su immagini ad alta risoluzione, suddividendole in fette gestibili. Questo approccio migliora l'utilizzo della memoria e garantisce un'elevata precisione di detect. Per iniziare, è necessario installare le librerie ultralytics e sahi:
pip install -U ultralytics sahi
Quindi, scarica un modello YOLO26 e immagini di test:
from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo26n_model
# Download YOLO26 model
model_path = "models/yolo26n.pt"
download_yolo26n_model(model_path)
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
Per istruzioni più dettagliate, consulta la nostra guida all'Inferenza a fette.
Perché dovrei usare SAHI con YOLO26 per l'object detection su immagini di grandi dimensioni?
L'utilizzo di SAHI con Ultralytics YOLO26 per l'object detection su immagini di grandi dimensioni offre numerosi vantaggi:
- Ridotto carico computazionale: Le porzioni più piccole sono più veloci da elaborare e consumano meno memoria, rendendo fattibile l'esecuzione di rilevamenti di alta qualità su hardware con risorse limitate.
- Accuratezza di detection mantenuta: SAHI utilizza algoritmi intelligenti per unire le box sovrapposte, preservando la qualità della detection.
- Scalabilità Migliorata: Scalando i compiti di rilevamento di oggetti su diverse dimensioni e risoluzioni di immagini, SAHI diventa ideale per varie applicazioni, come l'analisi di immagini satellitari e la diagnostica medica.
Scopri di più sui vantaggi dell'inferenza a fette nella nostra documentazione.
Posso visualizzare i risultati delle previsioni quando uso YOLO26 con SAHI?
Sì, è possibile visualizzare i risultati delle previsioni quando si utilizza YOLO26 con SAHI. Ecco come esportare e visualizzare i risultati:
from IPython.display import Image
result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")
Questo comando salverà le predizioni visualizzate nella directory specificata, e potrai quindi caricare l'immagine per visualizzarla nel tuo notebook o applicazione. Per una guida dettagliata, consulta la sezione Sezione Inferenza Standard.
Quali funzionalità offre SAHI per migliorare l'object detection di YOLO26?
SAHI (Slicing Aided Hyper Inference) offre diverse funzionalità che completano Ultralytics YOLO26 per il rilevamento di oggetti:
- Integrazione perfetta: SAHI si integra facilmente con i modelli YOLO, richiedendo modifiche minime al codice.
- Efficienza delle risorse: Partiziona le immagini di grandi dimensioni in porzioni più piccole, il che ottimizza l'utilizzo della memoria e la velocità.
- Alta precisione: Unendo efficacemente le caselle di rilevamento sovrapposte durante il processo di stitching, SAHI mantiene un'elevata accuratezza del rilevamento.
Per una comprensione più approfondita, leggi le caratteristiche principali di SAHI.
Come gestisco progetti di inferenza su larga scala utilizzando YOLO26 e SAHI?
Per gestire progetti di inferenza su larga scala utilizzando YOLO26 e SAHI, segui queste migliori pratiche:
- Installa le librerie richieste: Assicurati di avere le versioni più recenti di ultralytics e sahi.
- Configura l'inferenza a fette: Determina le dimensioni ottimali delle fette e i rapporti di sovrapposizione per il tuo specifico progetto.
- Esegui previsioni batch: Utilizza le funzionalità di SAHI per eseguire previsioni batch su una directory di immagini, migliorando l'efficienza.
Esempio per la predizione batch:
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,
)
Per passaggi più dettagliati, visita la nostra sezione sulla Predizione batch.

