YOLOv7 YOLOv10: confronto tra architetture per il rilevamento in tempo reale
L'evoluzione dei modelli di rilevamento degli oggetti è stata caratterizzata da una costante ricerca di maggiore precisione e minore latenza. Due tappe fondamentali in questo percorso sono YOLOv7, rilasciato a metà del 2022, e YOLOv10, introdotto a metà del 2024. Sebbene entrambe le architetture abbiano rappresentato un progresso rispetto allo stato dell'arte al momento del loro rilascio, esse riflettono filosofie di progettazione fondamentalmente diverse. YOLOv7 sull'ottimizzazione del processo di addestramento attraverso un "bag-of-freebies", mentre YOLOv10 un approccio end-to-end che elimina la necessità della soppressione non massima (NMS).
Questa guida fornisce un confronto tecnico dettagliato per aiutare ricercatori e ingegneri a selezionare lo strumento giusto per i loro progetti di visione artificiale. Analizziamo l'architettura, le metriche delle prestazioni e i flussi di lavoro di implementazione, mostrando perché iterazioni moderne come YOLOv10e la più recente YOLO26, siano spesso la scelta preferita per soluzioni di IA scalabili.
Confronto delle Prestazioni del Modello
La tabella sottostante evidenzia le differenze di prestazioni tra i due modelli. YOLOv10 offre YOLOv10 una latenza inferiore e un'efficienza superiore (meno parametri e FLOP) rispetto a YOLOv7, in particolare nelle varianti di modello più piccole.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
YOLOv7: La Potenza del Bag-of-Freebies
Rilasciato nel luglio 2022, YOLOv7 è stato sviluppato per ottimizzare il processo di addestramento senza aumentare i costi di inferenza. Gli autori hanno introdotto un concetto chiamato "trainable bag-of-freebies", che si riferisce a metodi di ottimizzazione che migliorano la precisione durante l'addestramento ma vengono scartati durante l'inferenza, mantenendo il modello veloce.
Principali Dettagli Tecnici:
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 2022-07-06
- Link:Articolo su ArXiv | Repository GitHub
YOLOv7 l'Extended Efficient Layer Aggregation Network (E-ELAN). Questa architettura consente al modello di apprendere caratteristiche più diversificate controllando in modo efficace i percorsi di gradiente più brevi e più lunghi. Inoltre, ha impiegato tecniche di ridimensionamento del modello che modificano simultaneamente gli attributi dell'architettura (come profondità e larghezza), garantendo prestazioni ottimali su diverse dimensioni. Nonostante le sue elevate prestazioni sul COCO , YOLOv7 principalmente un rilevatore basato su anchor, che a volte può complicare la regolazione degli iperparametri rispetto alle moderne alternative senza anchor.
YOLOv10: Rilevamento di oggetti end-to-end in tempo reale
Pubblicato nel maggio 2024 dai ricercatori dell'Università di Tsinghua, YOLOv10 ha segnato un cambiamento significativo nella YOLO introducendo l'addestramento NMS.
Principali Dettagli Tecnici:
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione:Tsinghua University
- Data: 2024-05-23
- Link:Articolo su ArXiv | Repository GitHub
YOLOv10 un annoso problema nel rilevamento in tempo reale: la dipendenza dalla soppressione non massima (NMS) per la post-elaborazione. Utilizzando assegnazioni doppie coerenti, YOLOv10 un addestramento end-to-end, consentendo al modello di fornire direttamente le previsioni finali. L'eliminazione della NMS riduce NMS la latenza di inferenza e semplifica le pipeline di implementazione, in particolare sui dispositivi edge dove il sovraccarico di post-elaborazione è costoso. Inoltre, il suo design olistico del modello basato sull'efficienza e l'accuratezza ottimizza vari componenti, come la testa di classificazione leggera e il downsampling disaccoppiato dal canale spaziale, per ridurre la ridondanza computazionale.
Confronto critico: architettura e usabilità
Sebbene entrambi i modelli siano potenti, le loro differenze architetturali ne determinano i casi d'uso ideali.
NMS vs. Basato su ancoraggio
La differenza più significativa è il requisito di post-elaborazione. YOLOv7 NMS filtrare i riquadri di delimitazione sovrapposti. Sebbene efficace, NMS una latenza che varia in base al numero di oggetti rilevati, rendendo variabile il tempo di previsione. Al contrario, il design end-to-end YOLOv10 fornisce tempi di inferenza deterministici, fondamentali per applicazioni in tempo reale critiche per la sicurezza come i veicoli autonomi.
Efficienza e Utilizzo delle Risorse
YOLOv10 un'efficienza superiore. Come mostrato nella tabella comparativa, YOLOv10b raggiunge un'accuratezza paragonabile a YOLOv7, ma con circa il 65% di parametri in meno. Questa drastica riduzione delle dimensioni del modello si traduce in un minor consumo di memoria, rendendo YOLOv10 adatto ad ambienti con limitazioni di memoria, come app mobili o dispositivi IoT.
Efficienza della Memoria
Per gli sviluppatori che puntano ai dispositivi edge, il numero ridotto di parametri di YOLOv10 un utilizzo significativamente inferiore della RAM durante l'inferenza. Ciò consente di eseguire batch di dimensioni maggiori o di svolgere attività multitasking insieme ad altri modelli di IA sullo stesso hardware.
Formazione ed ecosistema
L'ecosistema che circonda un modello ne determina la praticità per gli sviluppatori. È qui che Ultralytics dà il meglio di sé. Entrambi i modelli sono accessibili tramite ilPython Ultralytics , che unifica l'esperienza utente.
- Facilità d'uso: È possibile passare da un modello all'altro modificando una singola stringa (ad esempio,
model = YOLO("yolov10n.pt")). - Modalità unificate: Ultralytics i comandi per l'addestramento, la convalida e l'esportazione in formati come ONNX, TensorRT e CoreML.
- Efficienza della formazione: Ultralytics sono ottimizzate per un utilizzo inferiore CUDA rispetto PyTorch grezzi, consentendo dimensioni di batch più grandi sulle GPU consumer.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model (swappable with YOLOv7)
model = YOLO("yolov10n.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference
results = model("path/to/image.jpg")
Il Futuro: YOLO26
Sebbene YOLOv7 YOLOv10 eccellenti, il settore è in rapida evoluzione. Il nuovo YOLO26 (gennaio 2026) si basa sulla struttura NMS di YOLOv10 introduce ulteriori innovazioni per garantire velocità e precisione ancora maggiori.
- End-to-End NMS: come YOLOv10, YOLO26 è nativamente end-to-end, garantendo una latenza deterministica.
- MuSGD Optimizer: ispirato all'addestramento LLM, questo ottimizzatore ibrido garantisce un addestramento stabile e una convergenza più rapida.
- Ottimizzazione edge: con la rimozione della Distribution Focal Loss (DFL), YOLO26 è fino al 43% più veloce sulla CPU, rendendolo la scelta migliore per l'edge computing.
- Versatilità: YOLO26 supporta tutte le attività, tra cui OBB, stima della posa e segmentazione.
Conclusione
La scelta tra YOLOv7 YOLOv10 dai tuoi vincoli specifici.
- Scegli YOLOv7 se stai mantenendo sistemi legacy ottimizzati per la sua architettura specifica o se hai bisogno delle caratteristiche specifiche "bag-of-freebies" per il confronto di ricerca.
- Scegli YOLOv10 per le nuove implementazioni che richiedono bassa latenza e alta efficienza. Il suo design NMS e il numero ridotto di parametri lo rendono ideale per applicazioni edge in tempo reale.
Tuttavia, per ottenere il miglior equilibrio tra velocità, precisione e facilità d'uso, consigliamo di prendere in considerazione l'ultima versione di YOLO26. Supportato dalla solida Ultralytics , offre la soluzione più adeguata alle esigenze future per lo sviluppo della visione artificiale.