YOLO11 vs YOLOv7#
La visione artificiale continua a evolversi rapidamente e il rilevamento degli oggetti in tempo reale rimane una delle sue applicazioni più diffuse. Scegliere l'architettura giusta significa bilanciare velocità, accuratezza e semplicità di distribuzione. Questa guida fornisce un confronto tecnico tra due architetture di rilievo: Ultralytics YOLO11 e YOLOv7.
Contesto dei modelli e dettagli tecnici#
Entrambi i modelli hanno influenzato la comunità del deep learning, ma appartengono a filosofie di sviluppo e periodi diversi.
Dettagli di YOLO11:
- Autori: Glenn Jocher e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2024-09-27
- GitHub: https://github.com/ultralytics/ultralytics
- Documentazione: https://docs.ultralytics.com/models/yolo11
Dettagli di YOLOv7:
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 2022-07-06
- arXiv: https://arxiv.org/abs/2207.02696
- GitHub: https://github.com/WongKinYiu/yolov7
- Documentazione: https://docs.ultralytics.com/models/yolov7
Differenze architetturali#
Entrambi i rilevatori usano concetti di progettazione moderni, ma le loro basi strutturali sono diverse.
YOLOv7 ha introdotto il concetto di reti di aggregazione dei livelli efficienti estese (E-ELAN). Questa architettura è stata progettata per migliorare continuamente la capacità di apprendimento della rete senza distruggere il percorso originale del gradiente, come descritto nel documento di ricerca. Durante l'addestramento, YOLOv7 si basa sulla riparametrizzazione strutturale e su una metodologia "bag-of-freebies" addestrabile, migliorando l'accuratezza complessiva sul dataset COCO senza aumentare i costi di inferenza.
Al contrario, YOLO11 si basa sull'architettura Ultralytics. Punta a una pipeline di estrazione delle caratteristiche più raffinata e con meno parametri, che comporta un minore consumo di memoria durante l'addestramento. YOLO11 offre un ottimo equilibrio prestazionale: usa meno parametri e raggiunge un'accuratezza di rilevamento pari o superiore a quella dei modelli più pesanti. YOLO11 supporta anche una maggiore varietà di attività, risultando una scelta versatile per le moderne applicazioni di visione artificiale.
In genere, i modelli Ultralytics YOLO richiedono meno memoria durante l'addestramento rispetto a molti altri rilevatori, consentendo agli sviluppatori di addestrare reti efficaci con PyTorch su GPU di fascia consumer.
Confronto delle prestazioni e delle metriche#
Per valutare la validità nel mondo reale, confronta metriche come la precisione media media (mAP), la velocità di inferenza, i parametri del modello e la complessità computazionale (FLOPs). La tabella seguente mostra un confronto tra le varianti di scala YOLO11 e i modelli YOLOv7 più grandi.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.6 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.1 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 87.2 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 195.3 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
YOLO11x raggiunge 54.7 mAP rispetto a 53.1 mAP di YOLOv7x, usando meno parametri (56.9M contro 71.3M) e una latenza simile su T4 TensorRT. Alla scala l, YOLO11l è più accurato (53.4 contro 51.4 mAP), più veloce (6.2 ms contro 6.84 ms) e più piccolo (25.3M contro 36.9M di parametri) di YOLOv7l.
Efficienza di addestramento e usabilità dell'ecosistema#
Uno degli aspetti che distingue maggiormente queste due architetture è l'esperienza di sviluppo e l'ecosistema che le circonda.
YOLOv7 è fondamentalmente un repository di ricerca accademica. L'addestramento dei modelli richiede spesso configurazioni complesse dell'ambiente, gestione manuale delle dipendenze e argomenti lunghi da riga di comando. Pur supportando la sperimentazione di ricerca, adattare il codice del repository GitHub di YOLOv7 ad ambienti di produzione personalizzati può richiedere molto tempo.
YOLO11 punta alla semplicità d'uso. È completamente integrato con la piattaforma Ultralytics, un ecosistema ben mantenuto che copre l'intero flusso di lavoro. Dall'annotazione dei dati e dall'addestramento locale fino alla distribuzione, l'API Python unificata e la semplice interfaccia a riga di comando semplificano l'intero processo.
Confronto del codice#
Per addestrare un modello di rilevamento degli oggetti con YOLO11 bastano poche righe di codice:
from ultralytics import YOLO
# Carica un modello YOLO11 small preaddestrato
model = YOLO("yolo11s.pt")
# Addestra il modello con l'API unificata
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Esporta rapidamente nel formato ONNX
model.export(format="onnx")Al contrario, un tipico comando di addestramento di YOLOv7 si presenta così e richiede di configurare con attenzione percorsi, file di configurazione e script bash:
python train.py --workers 8 --device 0 --batch-size 32 --data data/coco.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --weights 'yolov7_training.pt'YOLO11 è anche più versatile. Mentre YOLOv7 si affida a rami o modifiche separati per supportare attività diverse dal rilevamento (come la stima della posa o la segmentazione), YOLO11 gestisce il rilevamento degli oggetti, la segmentazione di istanze, la classificazione di immagini, la stima della posa e il rilevamento di bounding box orientate (OBB) tramite un unico framework coerente.
Applicazioni nel mondo reale e casi d'uso ideali#
La scelta tra YOLOv7 e YOLO11 dipende dall'ambito del progetto e dai vincoli di distribuzione.
Quando prendere in considerazione YOLOv7:
- Benchmarking di modelli legacy: i ricercatori accademici che studiano la progettazione dei percorsi del gradiente possono usare YOLOv7 come riferimento per valutare nuove reti neurali convoluzionali.
- Pipeline personalizzate esistenti: team con pipeline C++ o CUDA ampiamente personalizzate e sviluppate appositamente attorno alla logica di decodifica dei riquadri di delimitazione specifica di YOLOv7.
Quando scegliere YOLO11:
- Produzione commerciale: le applicazioni nel commercio al dettaglio intelligente o nella diagnostica sanitaria beneficiano della base di codice mantenuta e della stabilità di YOLO11.
- Ambienti con risorse limitate: l'ingombro ridotto di YOLO11n lo rende particolarmente adatto alla distribuzione su dispositivi mobili ed edge tramite ONNX.
- Progetti multi-task: se una singola applicazione deve identificare una persona, ricostruirne lo scheletro (stima della posa) e segmentare un oggetto che sta tenendo in mano, YOLO11 offre una soluzione unificata.
Proseguire con YOLO26#
YOLO11 rimane una scelta affidabile, ma per gli ingegneri che oggi avviano nuovi progetti, Ultralytics YOLO26 è il modello consigliato.
Rilasciato a gennaio 2026, YOLO26 introduce una progettazione end-to-end opzionale senza NMS (nms=False) che elimina la latenza della fase di post-elaborazione di soppressione non massima. YOLO26 aggiunge anche l'ottimizzatore MuSGD, ispirato ai metodi di addestramento dei modelli linguistici di grandi dimensioni (LLM), per una convergenza più rapida. Con ProgLoss + STAL per gli oggetti piccoli e la rimozione di DFL, che contribuisce a un'inferenza su CPU fino al 43% più veloce per YOLO26n rispetto a YOLO11n, YOLO26 è ottimizzato per l'edge computing.
Per chi è interessato a strutture alternative specializzate, anche esplorare RT-DETR, basato su Transformer, o i modelli YOLO-World, dinamici e con vocabolario aperto, può essere adatto a specifiche applicazioni di visione artificiale.