Esplora le architetture di rilevamento degli oggetti, dalle strutture portanti alle teste. Scopri come Ultralytics offre velocità e precisione eccellenti per la visione artificiale in tempo reale.
Le architetture di rilevamento degli oggetti sono i modelli strutturali delle reti neurali utilizzate per identificare e localizzare gli elementi all'interno dei dati visivi. Nel campo più ampio della visione artificiale (CV), queste architetture definiscono il modo in cui una macchina "vede" elaborando i dati pixel grezzi in informazioni significative. A differenza dei modelli di classificazione di base che si limitano a etichettare un'immagine, un'architettura di rilevamento degli oggetti è progettata per produrre un riquadro di delimitazione insieme a un'etichetta di classe e un punteggio di affidabilità per ogni oggetto distinto che trova. Questo design strutturale determina la velocità, l'accuratezza e l'efficienza computazionale del modello, rendendolo il fattore critico nella scelta di un modello per l' inferenza in tempo reale o l'analisi ad alta precisione.
Sebbene i progetti specifici varino, la maggior parte delle architetture moderne condividono tre componenti fondamentali: la spina dorsale, il collo e la testa. La spina dorsale funge da estrattore di caratteristiche primario. Si tratta in genere di una rete neurale convoluzionale (CNN) pre-addestrata su un ampio set di dati come ImageNet, responsabile dell'identificazione di forme, bordi e texture di base. Tra le scelte più popolari per le backbone figurano ResNet e CSPDarknet.
Il collo collega la struttura portante agli strati finali di output. Il suo ruolo è quello di mescolare e combinare le caratteristiche provenienti da diverse fasi della struttura portante per garantire che il modello sia in grado di detect di varie dimensioni: un concetto noto come fusione di caratteristiche multiscala. Le architetture spesso utilizzano una Feature Pyramid Network (FPN) o una Path Aggregation Network (PANet) per arricchire le informazioni semantiche trasmesse ai livelli di previsione. Infine, la testa di rilevamento elabora queste caratteristiche fuse per prevedere la classe specifica e la posizione coordinata di ciascun oggetto.
Storicamente, le architetture erano divise in due categorie principali. I rilevatori a due stadi, come la famiglia R-CNN, propongono prima le regioni di interesse (RoI) in cui potrebbero esistere oggetti e poi classify regioni in un secondo momento. Sebbene generalmente accurati, spesso sono troppo pesanti dal punto di vista computazionale per i dispositivi edge.
Al contrario, i rilevatori a stadio singolo trattano il rilevamento come un semplice problema di regressione, mappando i pixel dell'immagine direttamente alle coordinate del riquadro di delimitazione e alle probabilità di classe in un unico passaggio. Questo approccio, introdotto dalla famiglia Y YOLO (You Only Look Once), ha rivoluzionato il settore consentendo prestazioni in tempo reale. I progressi moderni hanno portato alla creazione di modelli come YOLO26, che non solo offrono una velocità superiore, ma hanno anche adottato architetture end-to-end NMS. Eliminando la necessità della post-elaborazione Non-Maximum Suppression (NMS), queste nuove architetture riducono la variabilità della latenza, fondamentale per i sistemi critici per la sicurezza.
La scelta dell'architettura influisce direttamente sul successo delle soluzioni di IA in tutti i settori industriali.
È importante distinguere le architetture di rilevamento da attività simili di visione artificiale:
I framework moderni hanno astratto le complessità di queste architetture, consentendo agli sviluppatori di sfruttare
progetti all'avanguardia con un codice minimo. Utilizzando il ultralytics pacchetto, è possibile caricare un modello pre-addestrato
YOLO26 modello ed eseguire immediatamente l'inferenza. Per i team
che desiderano gestire i propri set di dati e addestrare architetture personalizzate nel cloud, il
Piattaforma Ultralytics semplifica l'intera pipeline MLOps.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image source
# This uses the model's architecture to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()