Vai al contenuto

YOLOv8 YOLOv7: evoluzione architettonica e analisi delle prestazioni

Nel campo in rapida evoluzione della visione artificiale, la famiglia di modelli "You Only Look Once" (YOLO) ha costantemente definito lo standard per il rilevamento di oggetti in tempo reale. Questo confronto esplora le sfumature tecniche tra Ultralytics YOLOv8 e il modello incentrato sulla ricerca YOLOv7. Sebbene entrambi i modelli rappresentino pietre miliari significative nella storia dell'IA, essi soddisfano esigenze di sviluppo e implementazione diverse.

Per gli sviluppatori alla ricerca dell'esperienza più fluida possibile, Ultralytics offre un'interfaccia unificata. Tuttavia, comprendere il cambiamento architettonico dall'approccio basato sulla concatenazione YOLOv7 al design senza ancoraggi YOLOv8 è fondamentale per selezionare lo strumento giusto per le vostre specifiche attività di visione artificiale.

Confronto delle metriche di performance

La tabella seguente evidenzia i compromessi in termini di prestazioni. YOLOv8 offre generalmente un equilibrio superiore tra velocità e precisione, in particolare se si considera l'efficienza della Ultralytics per la formazione e l'implementazione.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

Ultralytics YOLOv8: Lo Standard Moderno

YOLOv8 una svolta fondamentale nella YOLO grazie all'adozione di una testa di rilevamento senza ancoraggio e di un'architettura disaccoppiata. Questa scelta progettuale semplifica il processo di addestramento eliminando la necessità di calcolare manualmente l'ancoraggio, rendendo il modello più robusto su diversi set di dati.

Dettagli YOLOv8:

Architettura e innovazione

YOLOv8 il modulo C2f (Cross-Stage Partial Bottleneck con due convoluzioni), che sostituisce il modulo C3 utilizzato nelle iterazioni precedenti. Il modulo C2f migliora il flusso del gradiente e consente al modello di apprendere rappresentazioni di caratteristiche più complesse, mantenendo al contempo caratteristiche di leggerezza.

Uno dei principali punti di forza di YOLOv8 la sua versatilità nativa. A differenza dei repository precedenti che richiedevano rami separati per attività diverse, YOLOv8 il rilevamento di oggetti, la segmentazione di istanze, la stima della posa, la classificazione e gli Oriented Bounding Boxes (OBB) all'interno di un unico framework.

Scopri di più su YOLOv8

YOLOv7: una pietra miliare nella ricerca

Rilasciato a metà del 2022, YOLOv7 principalmente sull'ottimizzazione architettonica attraverso il "Trainable bag-of-freebies". Ha ampliato i confini di ciò che era possibile con i rilevatori basati su anchor all'epoca.

Dettagli YOLOv7:

Approccio architettonico

YOLOv7 l'architettura E-ELAN (Extended Efficient Layer Aggregation Network). Questo design si concentra sul controllo dei percorsi di gradiente più brevi e più lunghi per consentire alla rete di apprendere in modo più efficace. Sebbene altamente accurata, l'architettura è complessa e si basa su anchor box, che possono richiedere una regolazione specifica per ottenere prestazioni ottimali su dati personalizzati.

Scopri di più su YOLOv7

Confronto tecnico e casi d'uso

1. Facilità d'uso ed ecosistema

Il fattore di differenziazione più significativo è l'ecosistema. YOLOv8 è distribuito tramite il ultralytics pacchetto pip, che offre un'esperienza "da zero a eroe". Gli sviluppatori possono accedere a modelli pre-addestrati e inizia ad allenarti in pochi minuti.

Al contrario, YOLOv7 principalmente un archivio di ricerca. Sebbene potente, manca dell'API standardizzata, dell'integrazione perfetta con strumenti come TensorBoard e dell'ampia documentazione Ultralytics da Ultralytics .

2. Efficienza di Training e Memoria

Ultralytics sono rinomati per la loro efficienza di addestramento. YOLOv8 l'utilizzo CUDA , consentendo spesso dimensioni di batch più grandi rispetto ai modelli basati su Transformer o alla precedente YOLOv7 . Questa efficienza si traduce in costi di cloud computing inferiori e tempi di iterazione più rapidi.

Esportazione integrata

Uno dei maggiori punti critici nell'implementazione è la conversione dei modelli. YOLOv8 questa operazione con un comando di una riga per esportare in ONNX, TensorRT, CoreML e TFLite, garantendo che il modello funzioni su qualsiasi dispositivo edge.

3. Casi d'uso ideali

  • Scegli YOLOv8 se hai bisogno di una soluzione pronta per la produzione, facile da mantenere, che supporti diverse attività di visione artificiale (come il tracciamento e la segmentazione) e che sia facilmente implementabile su dispositivi edge come il Raspberry Pi.
  • Scegli YOLOv7 se stai conducendo una ricerca accademica che mette a confronto specificatamente architetture legacy basate su anchor o se hai bisogno di riprodurre i risultati dei benchmark del 2022.

Il Futuro: YOLO26

Sebbene YOLOv8 YOLOv7 modelli eccellenti, il settore è in rapida evoluzione. Ultralytics ha Ultralytics rilasciato YOLO26, il modello consigliato per tutti i nuovi progetti.

YOLO26 introduce un design End-to-End NMS, eliminando la necessità della post-elaborazione Non-Maximum Suppression. Ciò si traduce in pipeline di implementazione significativamente più semplici e una latenza inferiore. Inoltre, YOLO26 rimuove la Distribution Focal Loss (DFL) e utilizza il MuSGD Optimizer, un ibrido di SGD Muon ispirato all'addestramento LLM, per ottenere un addestramento stabile e una convergenza più rapida.

Con ProgLoss e STAL (Soft-Target Anchor Loss), YOLO26 offre CPU fino al 43% più veloce, rendendolo la scelta definitiva per l'edge computing e l'analisi in tempo reale.

Scopri di più su YOLO26

Esempi di Codice

Ultralytics unifica il flusso di lavoro. È possibile addestrare un YOLOv8 all'avanguardia o persino caricare configurazioni legacy con un codice minimo.

from ultralytics import YOLO

# Load the recommended model (YOLO26 or YOLOv8)
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
# The unified API handles data augmentation and memory management automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Export to ONNX for deployment
model.export(format="onnx")

Per i ricercatori interessati ad altre architetture, la Ultralytics tratta anche YOLOv5, YOLOv9e YOLO11, assicurandoti di avere gli strumenti migliori per ogni scenario.


Commenti