YOLOv7 vs EfficientDet#
Scegliere l’architettura di rete neurale giusta è il fondamento di qualsiasi progetto di visione artificiale di successo. Questa guida offre un confronto tecnico dettagliato tra due modelli fondamentali nella storia delle architetture per il rilevamento di oggetti: YOLOv7 ed EfficientDet. Esaminando le innovazioni architetturali, le metodologie di addestramento e gli scenari di distribuzione ideali, gli sviluppatori possono prendere decisioni informate. La guida illustra anche come Ultralytics YOLO26 migliori entrambi.
Origini dei modelli e dettagli tecnici#
Entrambi i modelli sono stati sviluppati da importanti gruppi di ricerca e hanno introdotto progressi significativi nel campo del machine learning.
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: YOLOv7: il bag-of-freebies addestrabile stabilisce un nuovo stato dell'arte per i rilevatori di oggetti in tempo reale
- GitHub: WongKinYiu/yolov7
- Documentazione: Documentazione di Ultralytics YOLOv7
EfficientDet
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione: Google Research
- Data: 2019-11-20
- arXiv: EfficientDet: rilevamento degli oggetti scalabile ed efficiente
- GitHub: Google AutoML EfficientDet
Differenze architetturali e analisi equilibrata#
Comprendere le differenze strutturali fondamentali tra queste reti è essenziale per una distribuzione efficace dei modelli.
EfficientDet: scaling composto e BiFPN#
Sviluppato nell'ecosistema TensorFlow, EfficientDet ha introdotto un approccio sistematico alla scalabilità dei modelli. Invece di ampliare o approfondire la rete arbitrariamente, i ricercatori di Google hanno utilizzato un metodo di scalabilità composta che ridimensiona in modo uniforme risoluzione, profondità e larghezza.
Inoltre, EfficientDet ha introdotto la rete piramidale di caratteristiche bidirezionale (BiFPN). Questa variante della rete piramidale di caratteristiche consente una rapida fusione delle caratteristiche a più scale.
Punti di forza: È altamente efficiente in termini di parametri e raggiunge un'elevata precisione media (mAP) con meno FLOPs rispetto a molti modelli contemporanei. Punti deboli: Si affida in larga misura a strategie di ricerca AutoML ormai superate. L'integrazione nei flussi di lavoro moderni e dinamici di PyTorch può risultare macchinosa e la latenza sui dispositivi edge è spesso più elevata del previsto, nonostante il basso numero di FLOPs.
YOLOv7: Bag-of-Freebies addestrabile#
YOLOv7 ha dato priorità all’inferenza in tempo reale e all’ottimizzazione dell’addestramento. Ha introdotto il concetto di rete estesa ed efficiente di aggregazione dei layer (E-ELAN), che consente al modello di apprendere continuamente caratteristiche più diversificate senza compromettere il percorso del gradiente originale. YOLOv7 ha inoltre impiegato una tecnica chiamata «bag-of-freebies addestrabile», che migliora l’accuratezza del rilevamento senza aumentare i costi di inferenza.
Punti di forza: Velocità di elaborazione elevate e latenza di inferenza favorevole, ideali per flussi video ad alto FPS. Punti deboli: Pur essendo molto efficiente, si basa ancora sulle anchor box e richiede la soppressione non massima (NMS) durante la post-elaborazione, che può creare un collo di bottiglia nella latenza nelle scene molto affollate.
Quando valuti i modelli, l’ecosistema circostante è importante quanto l’architettura. La Ultralytics Platform integrata offre un’API unificata, documentazione completa e supporto attivo della community. Questo ambiente unificato usa in genere meno memoria durante l’addestramento rispetto ai pesanti modelli Transformer, velocizzando la prototipazione e il monitoraggio degli esperimenti.
Metriche di prestazione e benchmark#
La tabella seguente mette a confronto le principali metriche delle prestazioni, permettendo agli sviluppatori di valutare i compromessi tra velocità, numero di parametri e precisione.
| Modello | dimensione (pixel) | mAPval50-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 |
| EfficientDet-d0 | 512 | 34.6 | - | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | - | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 768 | 43.0 | - | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 896 | 47.5 | - | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 1024 | 49.7 | - | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 1280 | 51.5 | - | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 1280 | 52.6 | - | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 1536 | 53.7 | - | 128.07 | 51.9 | 325.0 |
Come mostrato, EfficientDet-d7 raggiunge un mAP elevato, ma la sua velocità con TensorRT è nettamente inferiore a quella delle varianti YOLOv7, evidenziando il vantaggio di queste ultime nel rilevamento di oggetti in tempo reale con accelerazione GPU.
L'evoluzione del rilevamento degli oggetti: YOLO26#
Sebbene YOLOv7 ed EfficientDet abbiano gettato basi importanti, il panorama dell’AI per la visione artificiale evolve rapidamente. Per le applicazioni moderne che richiedono la migliore efficienza e accuratezza, l’aggiornamento consigliato è YOLO26, rilasciato a gennaio 2026.
YOLO26 affronta i limiti delle generazioni precedenti e offre un’ampia versatilità per il rilevamento di oggetti, la segmentazione delle istanze, la segmentazione semantica, la stima della profondità, la classificazione delle immagini, la stima della posa e il rilevamento di bounding box orientate (OBB).
Principali innovazioni di YOLO26#
- Design end-to-end senza NMS: YOLO26 offre una head one-to-one opzionale (
nms=False) che salta il post-processing della soppressione non massima (NMS). Introdotto nei modelli YOLO da YOLOv10, questo design semplifica la logica di deployment e mantiene la latenza costante indipendentemente dalla densità degli oggetti. - Rimozione di DFL: Rimuovendo la perdita focale di distribuzione (DFL), l'architettura del modello si semplifica, migliorando la compatibilità con ambienti di elaborazione periferica con risorse estremamente limitate.
- Inferenza su CPU fino al 43% più veloce: YOLO26n funziona fino al 43% più velocemente su CPU rispetto a YOLO11n, risultando ideale per hardware senza GPU dedicata.
- Ottimizzatore MuSGD: Ispirato alle tecniche dei modelli linguistici di grandi dimensioni (come Kimi K2 di Moonshot AI), questo ibrido di SGD e Muon garantisce un addestramento più stabile e una convergenza più rapida nell'addestramento per la visione artificiale.
- ProgLoss + STAL: La loss progressiva e l'assegnazione delle etichette consapevole degli oggetti piccoli migliorano il riconoscimento degli oggetti di piccole dimensioni, un aspetto importante per le immagini aeree e le applicazioni con droni.
- Miglioramenti specifici per attività: Include una loss per la segmentazione semantica e proto multi-scala per le attività di segmentazione, la stima della log-verosimiglianza residua (RLE) per la stima della posa e una loss angolare specializzata, progettata per risolvere i problemi ai bordi delle Bounding Box orientate (OBB).
Per i team che usano attualmente sistemi legacy, passare alla Ultralytics Platform offre un flusso di lavoro semplificato, in cui questi modelli possono essere addestrati e distribuiti facilmente. Gli sviluppatori possono anche valutare le generazioni precedenti, come YOLO11 e YOLOv8, in base alle specifiche esigenze di compatibilità con le versioni precedenti.
Addestramento semplificato e facilità d'uso#
Una delle caratteristiche distintive dei modelli Ultralytics è la facilità d'uso. A differenza delle configurazioni complesse con molte dipendenze richieste dagli ambienti TensorFlow AutoML di EfficientDet, Ultralytics offre un'API semplice e in stile Python.
Questo ambiente mantiene basso l'uso della memoria CUDA durante l'addestramento e aiuta ad addestrare modelli su grandi dataset senza gli errori di memoria esaurita (OOM) comuni nelle architetture basate su Transformer.
Esempio di codice: iniziare con Ultralytics#
Il seguente frammento mostra come gli sviluppatori possono usare il pacchetto Ultralytics per addestrare subito un modello YOLO26.
from ultralytics import YOLO
# Initialize a YOLO26 nano model for object detection
model = YOLO("yolo26n.pt")
# Train the model on the COCO8 example dataset
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device=0, # GPU index; use device='cpu' to train on CPU
batch=16,
)
# Validate the model's performance
metrics = model.val()
print(f"Validation mAP50-95: {metrics.box.map}")
# Export the model for edge deployment (e.g., OpenVINO for CPU optimization)
model.export(format="openvino")Casi d'uso ideali e applicazioni nel mondo reale#
Quando progetti una soluzione, è importante allineare i punti di forza del modello al caso d'uso specifico.
Quando usare EfficientDet#
EfficientDet resta una possibile scelta per la ricerca accademica tradizionale o per gli ambienti strettamente vincolati all'ecosistema Google Cloud, in cui gli esperimenti sulla scalabilità composta sono l'obiettivo principale. Le varianti più piccole (d0-d2) sono utili quando le dimensioni su disco sono fortemente limitate.
Quando usare YOLOv7#
YOLOv7 eccelle nelle configurazioni tradizionali ad alte prestazioni, soprattutto quando si preferisce l'integrazione con PyTorch a quella con TensorFlow. È ancora ampiamente utilizzato per:
- Analisi video: Elaborazione di flussi di sicurezza ad alta frequenza di fotogrammi, con ampia disponibilità di accelerazione GPU.
- Ispezione industriale: Individuazione dei difetti nelle linee di assemblaggio a elevata velocità.
Quando scegliere YOLO26#
Per le nuove implementazioni, YOLO26 è la scelta consigliata. Il suo equilibrio prestazionale e l'ecosistema ben mantenuto lo rendono particolarmente adatto a:
- Smart city e gestione del traffico: La testa opzionale senza NMS mantiene costante la latenza di inferenza per il coordinamento del traffico in tempo reale.
- Robotica e sistemi autonomi: L'inferenza su CPU di YOLO26n, fino al 43% più veloce rispetto a YOLO11n, aiuta a mantenere reattiva la navigazione sui dispositivi integrati.
- Monitoraggio agricolo e aereo: Usa ProgLoss e STAL per identificare oggetti piccoli, come colture specifiche o fauna selvatica, in immagini ad alta quota.
In sintesi, EfficientDet e YOLOv7 offrono un prezioso contesto storico e un'utilità specifica per alcune nicchie, ma gli ingegneri moderni della visione artificiale ottengono i risultati migliori adottando l'architettura Ultralytics YOLO26, che affronta i precedenti colli di bottiglia nella distribuzione, nella velocità su CPU e nella precisione sugli oggetti piccoli.
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.