Link to this sectionDocumentazione Ultralytics: Utilizzo di YOLO26 con SAHI per l'inferenza a fette#
Benvenuto nella documentazione di 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 migliorare le prestazioni del rilevamento di oggetti.
Link to this sectionIntroduzione a SAHI#
SAHI (Slicing Aided Hyper Inference) è una libreria innovativa progettata per ottimizzare gli algoritmi di rilevamento di oggetti per immagini su larga scala e ad alta risoluzione. La sua funzionalità principale risiede nella suddivisione delle immagini in fette gestibili, nell'esecuzione del rilevamento di oggetti su ciascuna fetta e nel successivo riassemblaggio dei risultati. SAHI è compatibile con una gamma di modelli di rilevamento di oggetti, inclusa la serie YOLO, offrendo così flessibilità e garantendo un uso ottimizzato delle risorse computazionali.
Watch: How to use SAHI with Ultralytics YOLO26 to Detect Small Objects | Slicing Aided Hyper Inference 🚀
Link to this sectionCaratteristiche principali di SAHI#
- Integrazione fluida: SAHI si integra senza sforzo con i modelli YOLO, il che significa che puoi iniziare a suddividere e rilevare senza dover modificare molto 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.
- Elevata Precisione: SAHI mantiene l'accuratezza del rilevamento utilizzando algoritmi intelligenti per unire i riquadri di rilevamento sovrapposti durante il processo di riassemblaggio.
Link to this sectionChe cos'è l'inferenza a fette?#
L'inferenza a fette si riferisce alla pratica di suddividere un'immagine di grandi dimensioni o ad alta risoluzione in segmenti più piccoli (fette), condurre il rilevamento di oggetti su queste fette e quindi ricompilare le fette per ricostruire le posizioni degli oggetti sull'immagine originale. Questa tecnica è inestimabile negli scenari in cui le risorse computazionali sono limitate o quando si lavora con immagini ad altissima risoluzione che altrimenti potrebbero causare problemi di memoria.
Link to this sectionVantaggi dell'inferenza a fette#
-
Ridotto carico computazionale: Le fette di immagine più piccole sono più veloci da elaborare e consumano meno memoria, consentendo un funzionamento più fluido su hardware di fascia inferiore.
-
Qualità del rilevamento preservata: Poiché ogni fetta viene trattata in modo indipendente, non vi è alcuna riduzione della qualità del rilevamento degli oggetti, a condizione che le fette siano abbastanza grandi da catturare gli oggetti di interesse.
-
Scalabilità migliorata: La tecnica consente di scalare più facilmente il rilevamento degli oggetti tra diverse dimensioni e risoluzioni di immagini, rendendola ideale per una vasta gamma di applicazioni, dalle immagini satellitari alla diagnostica medica.
| YOLO26 without SAHI | YOLO26 with SAHI |
|---|---|
![]() | ![]() |
Link to this sectionInstallazione e preparazione#
Link to this sectionInstallazione#
Per iniziare, installa le versioni più recenti di SAHI e Ultralytics:
pip install -U ultralytics sahiLink to this sectionImporta moduli e scarica risorse#
Ecco come scaricare alcune immagini di test:
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",
)Link to this sectionInferenza standard con YOLO26#
Link to this sectionIstanzia il modello#
Puoi istanziare un modello YOLO26 per il rilevamento di oggetti in questo modo:
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'
)Link to this sectionEsegui la predizione standard#
Esegui l'inferenza standard utilizzando un percorso immagine.
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)Link to this sectionVisualizza i risultati#
Esporta e visualizza i riquadri di delimitazione (bounding box) e le maschere previste:
from PIL import Image
# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")
# Display the predicted image
processed_image.show()Link to this sectionInferenza a fette con YOLO26#
Esegui l'inferenza a fette specificando le dimensioni delle fette e i rapporti di sovrapposizione:
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()Link to this sectionGestione dei risultati della predizione#
SAHI fornisce un oggetto PredictionResult, 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 and COCO prediction formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]Link to this sectionPredizione in batch#
Per la predizione in batch su una directory di immagini:
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,
)Ora sei pronto a utilizzare YOLO26 con SAHI sia per l'inferenza standard che per quella a fette.
Link to this sectionCitazioni e riconoscimenti#
Se utilizzi SAHI nella tua ricerca o nel tuo lavoro di sviluppo, cita l'articolo originale di SAHI e ringrazia 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}
}Estendiamo i nostri ringraziamenti al gruppo di ricerca SAHI per aver creato e mantenuto questa risorsa inestimabile per la comunità della computer vision. Per maggiori informazioni su SAHI e i suoi creatori, visita il repository GitHub di SAHI.
Link to this sectionFAQ#
Link to this sectionCome posso integrare YOLO26 con SAHI per l'inferenza a fette nel rilevamento di oggetti?#
L'integrazione di Ultralytics YOLO26 con SAHI (Slicing Aided Hyper Inference) per l'inferenza a fette ottimizza le tue attività di rilevamento di oggetti su immagini ad alta risoluzione suddividendole in fette gestibili. Questo approccio migliora l'utilizzo della memoria e garantisce un'elevata accuratezza di rilevamento. Per iniziare, devi installare le librerie ultralytics e sahi:
pip install -U ultralytics sahiQuindi, scarica le immagini di test:
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",
)Per istruzioni più dettagliate, fai riferimento alla nostra guida all'inferenza a fette.
Link to this sectionPerché dovrei usare SAHI con YOLO26 per il rilevamento di oggetti su immagini di grandi dimensioni?#
L'utilizzo di SAHI con Ultralytics YOLO26 per il rilevamento di oggetti su immagini di grandi dimensioni offre diversi vantaggi:
- Ridotto carico computazionale: Le fette 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 rilevamento mantenuta: SAHI utilizza algoritmi intelligenti per unire i riquadri sovrapposti, preservando la qualità del rilevamento.
- Scalabilità migliorata: Scalando le attività 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.
Link to this sectionPosso visualizzare i risultati della predizione quando uso YOLO26 con SAHI?#
Sì, puoi visualizzare i risultati della predizione quando utilizzi YOLO26 con SAHI. Ecco come puoi esportare e visualizzare i risultati:
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()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, dai un'occhiata alla sezione sull'inferenza standard.
Link to this sectionQuali funzionalità offre SAHI per migliorare il rilevamento di oggetti con YOLO26?#
SAHI (Slicing Aided Hyper Inference) offre diverse funzionalità che completano Ultralytics YOLO26 per il rilevamento di oggetti:
- Integrazione fluida: SAHI si integra facilmente con i modelli YOLO, richiedendo modifiche minime al codice.
- Efficienza delle risorse: Suddivide immagini di grandi dimensioni in fette più piccole, il che ottimizza l'utilizzo della memoria e la velocità.
- Alta precisione: Unendo efficacemente i riquadri di rilevamento sovrapposti durante il processo di riassemblaggio, SAHI mantiene un'elevata precisione di rilevamento.
Per una comprensione più approfondita, leggi le caratteristiche principali di SAHI.
Link to this sectionCome 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 progetto specifico.
- Esegui predizioni in batch: Utilizza le funzionalità di SAHI per eseguire predizioni in batch su una directory di immagini, il che migliora l'efficienza.
Esempio per la predizione in 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 in batch.

