Scoprite l'architettura di EfficientNet e la sua magia di scalabilità composta! Esplorate EfficientNet B0-B7 per un'efficienza di classificazione e segmentazione delle immagini di altissimo livello.

Scoprite l'architettura di EfficientNet e la sua magia di scalabilità composta! Esplorate EfficientNet B0-B7 per un'efficienza di classificazione e segmentazione delle immagini di altissimo livello.
Nel 2019, i ricercatori di Google AI hanno presentato EfficientNet, un modello di computer vision all'avanguardia costruito per riconoscere oggetti e modelli nelle immagini. È stato progettato principalmente per la classificazione delle immagini, che prevede l'assegnazione di un'immagine a una delle diverse categorie predefinite. Tuttavia, oggi EfficientNet funge anche da spina dorsale per compiti più complessi come il rilevamento di oggetti, la segmentazione e l'apprendimento per trasferimento.
Prima di EfficientNet, questi modelli di apprendimento automatico e Vision AI cercavano di migliorare l'accuratezza aggiungendo altri livelli o aumentandone le dimensioni. I livelli sono le fasi di un modello di rete neurale (un tipo di modello di apprendimento profondo ispirato al cervello umano) che elabora i dati per apprendere modelli e migliorare la precisione.
Questi cambiamenti hanno creato un compromesso, rendendo i modelli di IA tradizionali più grandi e più lenti, mentre l'accuratezza aggiuntiva era spesso minima rispetto al significativo aumento della potenza di calcolo richiesta.
EfficientNet ha adottato un approccio diverso. Ha aumentato la profondità (numero di strati), la larghezza (numero di unità in ogni strato) e la risoluzione dell'immagine (il livello di dettaglio delle immagini in ingresso) 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 fornire prestazioni migliori rispetto a modelli più vecchi come ResNet o DenseNet.
Oggi, modelli di computer vision più recenti, come Ultralytics YOLO11, offrono maggiore precisione, velocità ed efficienza. Tuttavia, EfficientNet rimane un'importante pietra miliare che ha influenzato la progettazione di molte architetture avanzate.
In questo articolo spiegheremo EfficientNet in cinque minuti, spiegando come funziona, cosa lo rende unico e perché è ancora importante nella computer vision. Iniziamo!
Prima della progettazione di EfficientNet, la maggior parte dei modelli di riconoscimento delle immagini migliorava l'accuratezza regolando i livelli o aumentando le dimensioni dell'immagine di input per catturare più dettagli. Se da un lato queste strategie miglioravano i risultati, dall'altro rendevano i modelli più pesanti e impegnativi. Ciò significava che avevano bisogno di più memoria e di un hardware migliore.
Invece di modificare i singoli livelli, EfficientNet scala insieme profondità, larghezza e risoluzione dell'immagine utilizzando un metodo chiamato compound scaling. Questo approccio consente al modello di crescere in modo efficiente senza sovraccaricare alcun aspetto.
L'architettura EfficientNet elabora le immagini attraverso una serie di blocchi, ognuno dei quali è costituito da moduli più piccoli. Il numero di moduli di ciascun blocco dipende dalle dimensioni del modello.
Le versioni più piccole utilizzano un minor numero di moduli, mentre le versioni più grandi ripetono i moduli più spesso. Questo design flessibile consente a EfficientNet di offrire elevata precisione ed efficienza in un'ampia gamma di applicazioni, dai dispositivi mobili ai sistemi su larga scala.
Il metodo di scalatura composta espande la profondità, la larghezza e la risoluzione dell'immagine di un modello, ma le mantiene in equilibrio. In questo modo è 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.
A partire da B0, i modelli si evolvono in varianti più grandi, denominate EfficientNet-B1 fino a EfficientNet-B7. A ogni passo, la rete acquisisce ulteriori livelli, aumenta il numero di canali (unità utilizzate per l'elaborazione) e gestisce immagini di ingresso a risoluzione più elevata. La quantità di crescita ad ogni passo è determinata da un parametro chiamato coefficiente composto, che assicura che la profondità, la larghezza e la risoluzione aumentino in proporzioni fisse anziché indipendentemente.
Diamo quindi un'occhiata all'architettura di EfficientNet.
Si basa su MobileNetV2, un modello di computer vision leggero e ottimizzato per dispositivi mobili ed embedded. Il suo cuore è il blocco Mobile Inverted Bottleneck Convolution (MBConv), un livello speciale che elabora i dati delle immagini come una convoluzione standard, ma con meno calcoli. Questo blocco rende il modello più veloce e più efficiente in termini di memoria.
All'interno di ciascuno dei blocchi MBConv è presente un modulo squeeze-and-excitation (SE). Questo modulo regola la forza dei diversi canali della rete. Aumenta la forza dei canali essenziali e riduce quella degli altri. Il modulo aiuta la rete a concentrarsi sulle caratteristiche più importanti di un'immagine, trascurando il resto. Il modello EfficientNet utilizza anche una funzione di attivazione Swish (una funzione matematica che aiuta la rete ad apprendere i modelli), che la aiuta a individuare i modelli nelle immagini meglio dei metodi precedenti.
Inoltre, utilizza DropConnect, in cui alcune connessioni all'interno della rete vengono disattivate a caso durante l'addestramento. Questo metodo di regolarizzazione stocastica (una tecnica di randomizzazione che impedisce al modello di memorizzare i dati di addestramento invece di generalizzare) riduce l'overfitting costringendo la rete ad apprendere rappresentazioni di caratteristiche più robuste (modelli più forti e generali nei dati) che si trasferiscono meglio ai dati non visti.
Ora che abbiamo capito meglio come funzionano i modelli EfficientNet, parliamo delle diverse varianti di modello.
I modelli EfficientNet vanno da B0 a B7, partendo da B0 come base di partenza per bilanciare velocità e precisione. Ogni versione aumenta la profondità, la larghezza e la risoluzione dell'immagine, migliorando la precisione. Tuttavia, richiedono anche una maggiore potenza di calcolo, da B1 e B2 alle performanti B6 e B7.
Mentre i modelli EfficientNet-B3 ed EfficientNet-B4 raggiungono un equilibrio per le immagini più grandi, il modello B5 viene spesso scelto per insiemi di dati complessi che richiedono precisione. Oltre a questi modelli, il modello più recente, EfficientNet V2, è in grado di migliorare la velocità di addestramento, di gestire meglio i piccoli insiemi di dati e di essere ottimizzato per l'hardware moderno.
EfficientNet è in grado di 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 di uso quotidiano.
Le immagini mediche, come le scansioni TC dei polmoni, contengono spesso dettagli sottili che sono fondamentali per una diagnosi accurata. I modelli di intelligenza artificiale possono aiutare ad analizzare queste immagini per scoprire schemi che potrebbero essere difficili da individuare per l'uomo. Un adattamento di EfficientNet a questo scopo è MONAI (Medical Open Network for AI) EfficientNet, progettato specificamente per l'analisi delle immagini mediche.
Basandosi sull'architettura di EfficientNet, i ricercatori hanno anche sviluppato Lung-EffNet, un modello che classifica le scansioni TC dei polmoni per individuare i tumori. È in grado di classificare i tumori come benigni, maligni o normali, raggiungendo un'accuratezza superiore al 99% in contesti sperimentali.
Il rilevamento degli oggetti è il processo di individuazione degli oggetti in un'immagine e di determinazione della loro posizione. È una parte fondamentale di applicazioni come i sistemi di sicurezza, le auto a guida autonoma e i droni.
EfficientNet è diventato importante in questo settore perché ha offerto un metodo molto efficiente per estrarre le caratteristiche dalle immagini. Il suo metodo di scalare profondità, larghezza e risoluzione ha dimostrato come i modelli possano essere accurati senza essere troppo pesanti o lenti. Per questo motivo molti sistemi di rilevamento, come EfficientDet, utilizzano EfficientNet come struttura portante.
I modelli più recenti, come Ultralytics YOLO11, condividono lo stesso obiettivo di combinare velocità e precisione. Questa tendenza verso modelli efficienti è stata fortemente influenzata dalle idee di architetture come EfficientNet.
Ecco alcuni vantaggi dell'uso di EfficientNet nei progetti di computer vision:
Sebbene i vantaggi legati all'utilizzo di EfficientNet siano numerosi, ecco alcune limitazioni di EfficientNet da tenere a mente:
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.
Unitevi alla nostra comunità e al repository GitHub per saperne di più sull'IA. Consultate le nostre pagine dedicate alle soluzioni per scoprire l'IA nel settore sanitario e la computer vision nel settore automobilistico. Scoprite le nostre opzioni di licenza e iniziate a costruire con la computer vision oggi stesso!