Cos'è EfficientNet? Una rapida panoramica
Comprendi l'architettura EfficientNet e la magia del suo compound scaling! Esplora EfficientNet B0-B7 per un'efficienza di classificazione e segmentazione delle immagini di alto livello.

Nel 2019, i ricercatori di Google AI hanno introdotto EfficientNet, un modello di computer vision all'avanguardia creato per riconoscere oggetti e pattern nelle immagini. È stato progettato principalmente per la classificazione delle immagini, che consiste nell'assegnare un'immagine a una delle diverse categorie predefinite. Tuttavia, oggi, EfficientNet funge anche da backbone per compiti più complessi come object detection, segmentazione e transfer learning.
Prima di EfficientNet, tali modelli di machine learning e vision AI cercavano di migliorare l'accuratezza aggiungendo più livelli o aumentando le dimensioni di tali livelli. I livelli sono i passaggi in un modello di rete neurale (un tipo di modello di deep learning ispirato al cervello umano) che elaborano i dati per apprendere pattern e migliorare l'accuratezza.
Questi cambiamenti creavano un compromesso, rendendo i modelli AI tradizionali più grandi e più lenti, mentre l'accuratezza extra era spesso minima rispetto al significativo aumento della potenza di calcolo richiesta.
EfficientNet ha adottato un approccio diverso. Ha aumentato la profondità (numero di livelli), la larghezza (numero di unità in ogni livello) e la risoluzione dell'immagine (il livello di dettaglio delle immagini di input) insieme in modo equilibrato. Questo metodo, chiamato compound scaling, utilizza in modo affidabile tutta la potenza di elaborazione disponibile. Il risultato finale è un modello più piccolo e più veloce in grado di offrire prestazioni migliori rispetto ai vecchi modelli come ResNet o DenseNet.
Oggi, i modelli di computer vision più recenti come Ultralytics YOLO11 offrono maggiore accuratezza, velocità ed efficienza. Tuttavia, EfficientNet rimane un'importante pietra miliare che ha influenzato la progettazione di molte architetture avanzate.
In questo articolo, analizzeremo EfficientNet in cinque minuti, coprendo come funziona, cosa lo rende unico e perché è ancora importante nella computer vision. Iniziamo!
Link to this sectionCos'è EfficientNet?#
Prima che EfficientNet venisse progettato, la maggior parte dei modelli di riconoscimento delle immagini migliorava l'accuratezza regolando i propri livelli o aumentando le dimensioni dell'immagine di input per catturare maggiori dettagli. Sebbene queste strategie migliorassero i risultati, rendevano anche i modelli più pesanti e più esigenti. Ciò significava che necessitavano di più memoria e hardware migliore.
Invece di modificare i singoli livelli, EfficientNet scala profondità, larghezza e risoluzione dell'immagine insieme utilizzando un metodo chiamato compound scaling. Questo approccio consente al modello di crescere in modo efficiente senza sovraccaricare alcun singolo aspetto.
L'architettura EfficientNet elabora le immagini attraverso una serie di blocchi, ognuno costruito da moduli più piccoli. Il numero di moduli in ogni blocco dipende dalla dimensione del modello.

Fig 1. I blocchi costitutivi di EfficientNet. (Source)
Le versioni più piccole utilizzano meno moduli, mentre le versioni più grandi ripetono i moduli più spesso. Questo design flessibile consente a EfficientNet di fornire alta accuratezza ed efficienza su un'ampia gamma di applicazioni, dai dispositivi mobili ai sistemi su larga scala.
Link to this sectionCome funziona il compound scaling#
Il metodo di compound scaling espande la profondità, la larghezza e la risoluzione dell'immagine di un modello, ma le mantiene in equilibrio. Ciò rende possibile utilizzare la potenza di calcolo in modo efficiente. La serie inizia con un modello di base più piccolo chiamato EfficientNet-B0, che funge da base per tutte le altre versioni.
Da B0, i modelli scalano verso varianti più grandi chiamate da EfficientNet-B1 a EfficientNet-B7. Ad ogni passaggio, la rete guadagna livelli aggiuntivi, aumenta il numero di canali (unità utilizzate per l'elaborazione) e gestisce immagini di input a risoluzione più elevata. La quantità di crescita ad ogni passaggio è determinata da un parametro chiamato coefficiente composto, che garantisce che profondità, larghezza e risoluzione aumentino in proporzioni fisse piuttosto che in modo indipendente.

Fig 2. Il compound scaling aumenta la larghezza, la profondità e la risoluzione dell'immagine di un modello. (Source)
Link to this sectionArchitettura di EfficientNet#
Successivamente, diamo un'occhiata all'architettura di EfficientNet.
Si basa su MobileNetV2, un modello di computer vision leggero ottimizzato per dispositivi mobili ed embedded. Al suo centro c'è il blocco Mobile Inverted Bottleneck Convolution (MBConv), un livello speciale che elabora i dati dell'immagine come una convoluzione standard ma con meno calcoli. Questo blocco rende il modello sia veloce che più efficiente dal punto di vista della memoria.
All'interno di ciascuno dei blocchi MBConv c'è un modulo squeeze-and-excitation (SE). Questo modulo regola la forza dei diversi canali nella rete. Aumenta la forza dei canali essenziali e riduce la forza degli altri. Il modulo aiuta la rete a concentrarsi sulle caratteristiche più importanti in un'immagine, ignorando il resto. Il modello EfficientNet utilizza anche una funzione di attivazione Swish (una funzione matematica che aiuta la rete ad apprendere pattern), che la aiuta a individuare pattern nelle immagini meglio dei metodi più vecchi.
Oltre a questo, utilizza DropConnect, dove alcune connessioni all'interno della rete vengono disattivate in modo casuale durante l'addestramento. Questo metodo di regolarizzazione stocastica (una tecnica di randomizzazione per impedire al modello di memorizzare i dati di addestramento invece di generalizzare) riduce l'overfitting forzando la rete ad apprendere rappresentazioni di caratteristiche più robuste (pattern più forti e più generali nei dati) che si trasferiscono meglio su dati non visti.

Fig 3. Architettura di EfficientNet-B0 (Source)
Link to this sectionUna breve panoramica delle varianti del modello EfficientNet#
Ora che abbiamo una migliore comprensione di come funzionano i modelli EfficientNet, parliamo delle diverse varianti del modello.
I modelli EfficientNet scalano da B0 a B7, iniziando con B0 come base che bilancia velocità e accuratezza. Ogni versione aumenta profondità, larghezza e risoluzione dell'immagine, migliorando l'accuratezza. Tuttavia, richiedono anche maggiore potenza di calcolo, dai modelli B1 e B2 fino ai performanti B6 e B7.
Mentre i modelli EfficientNet-B3 e EfficientNet-B4 trovano un equilibrio per le immagini più grandi, B5 viene spesso scelto per dataset complessi che richiedono precisione. Oltre a questi modelli, il modello più recente, EfficientNet V2, può migliorare la velocità di addestramento, gestire meglio i piccoli dataset ed è ottimizzato per l'hardware moderno.
Link to this sectionApplicazioni di EfficientNet#
EfficientNet può produrre risultati accurati utilizzando meno memoria e potenza di elaborazione rispetto a molti altri modelli. Questo lo rende utile in molti campi, dalla ricerca scientifica ai prodotti che le persone usano quotidianamente.
Link to this sectionAnalisi di immagini mediche#
Le immagini mediche, come le scansioni TC dei polmoni, spesso contengono dettagli sottili che sono fondamentali per una diagnosi accurata. I modelli AI possono aiutare ad analizzare queste immagini per scoprire pattern che potrebbero essere difficili da rilevare per gli esseri umani. Un adattamento di EfficientNet per questo scopo è MONAI (Medical Open Network for AI) EfficientNet, appositamente progettato per l'analisi di immagini mediche.
Basandosi sull'architettura di EfficientNet, i ricercatori hanno anche sviluppato Lung-EffNet, un modello che classifica le scansioni TC polmonari per rilevare tumori. Può classificare i tumori come benigni, maligni o normali, raggiungendo un'accuratezza riportata superiore al 99% in contesti sperimentali.

Fig 4. Classificazione di immagini di tumori tramite Lung-EffNet. (Source)
Link to this sectionObject detection in tempo reale#
L'object detection è il processo di individuazione degli oggetti in un'immagine e di determinazione della loro posizione. È una parte fondamentale di applicazioni come sistemi di sicurezza, auto a guida autonoma e droni.
EfficientNet è diventato importante in questo settore perché offriva un modo molto efficiente per estrarre caratteristiche dalle immagini. Il suo metodo di scaling di profondità, larghezza e risoluzione ha dimostrato come i modelli potessero essere accurati senza essere troppo pesanti o lenti. Questo è il motivo per cui molti sistemi di rilevamento, come EfficientDet, utilizzano EfficientNet come backbone.
Modelli più recenti, come Ultralytics YOLO11, condividono lo stesso obiettivo di combinare velocità e accuratezza. Questa tendenza verso modelli efficienti è stata fortemente influenzata dalle idee di architetture come EfficientNet.
Link to this sectionPro e contro di EfficientNet#
Ecco alcuni vantaggi dell'utilizzo di EfficientNet nei progetti di computer vision:
- Alta accuratezza con meno parametri: EfficientNet può fornire un'accuratezza simile o superiore ai vecchi modelli come ResNet o DenseNet. Tuttavia, utilizza meno parametri, rendendolo più veloce da addestrare e più facile da implementare.
- Famiglia di modelli scalabili: Spaziando da B0 a B7, puoi scegliere una versione che corrisponda ai tuoi requisiti di hardware e precisione senza modificare la rete di base.
- Ideale per il transfer learning: EfficientNet può offrire prestazioni del modello affidabili per il transfer learning, che è un processo di riaddestramento di un modello pre-addestrato per un compito personalizzato. Può funzionare come backbone per una varietà di compiti di computer vision. Ha anche mostrato ottimi risultati quando sottoposto a fine-tuning. Ad esempio, ha raggiunto un'accuratezza all'avanguardia su CIFAR-100, un dataset di classificazione di immagini ampiamente utilizzato, con molti meno parametri rispetto ai modelli precedenti.
Sebbene ci siano molti vantaggi relativi all'utilizzo di EfficientNet, ecco alcune limitazioni di EfficientNet da tenere a mente:
- Richiede più memoria: Versioni come EfficientNet-B6 e EfficientNet-B7 richiedono molta memoria GPU.
- Scaling ottimizzato per ImageNet: Le impostazioni di scaling sono state progettate per il dataset ImageNet, quindi le prestazioni potrebbero diminuire su dataset molto diversi senza fine-tuning. Ciò è particolarmente vero per i piccoli dataset, poiché l'architettura e lo scaling di EfficientNet sono stati progettati per un dataset ampio e diversificato come ImageNet, che fornisce dati sufficienti a giustificarne profondità e larghezza.
- Più lento su alcuni hardware: EfficientNet utilizza livelli chiamati MBConv che sono progettati per l'efficienza sull'hardware moderno. Su GPU o CPU meno recenti, questi livelli potrebbero essere più lenti.
Link to this sectionPunti chiave#
EfficientNet ha cambiato il modo in cui i modelli di computer vision crescono mantenendo in equilibrio profondità, larghezza e risoluzione dell'immagine. È ancora un modello importante e ha influenzato anche le architetture più recenti. In particolare, occupa un posto significativo nella storia della computer vision.
Unisciti alla nostra community e al repository GitHub per esplorare di più sull'AI. Dai un'occhiata alle nostre pagine di soluzioni per leggere dell'AI nell'assistenza sanitaria e della computer vision nel settore automobilistico. Scopri le nostre opzioni di licenza e inizia a costruire con la computer vision oggi stesso!






