Comprendi l'architettura EfficientNet e la sua magia di ridimensionamento composto! Esplora EfficientNet B0-B7 per un'efficienza di classificazione e segmentazione delle immagini di alto livello.

Comprendi l'architettura EfficientNet e la sua magia di ridimensionamento composto! 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 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 backbone per attività più complesse come l'object detection, la segmentazione e il transfer learning.
Prima di EfficientNet, tali modelli di machine learning e Vision AI cercavano di migliorare l'accuratezza aggiungendo più layer o aumentando le dimensioni di tali layer. I layer 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 schemi e migliorare l'accuratezza.
Questi cambiamenti hanno creato un compromesso, rendendo i modelli di IA tradizionali più grandi e 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 bilanciato. Questo metodo, chiamato compound scaling, utilizza in modo affidabile tutta la potenza di elaborazione disponibile. Il risultato finale è un modello più piccolo e veloce che può funzionare meglio dei modelli precedenti come ResNet o DenseNet.
Oggi, i modelli di computer vision più recenti come Ultralytics YOLO11 offrono maggiore precisione, velocità ed efficienza. Anche così, EfficientNet rimane una pietra miliare importante che ha influenzato la progettazione di molte architetture avanzate.
In questo articolo analizzeremo EfficientNet in cinque minuti, illustrandone il funzionamento, cosa lo rende unico e perché è ancora importante nella computer vision. Iniziamo!
Prima che EfficientNet fosse progettato, la maggior parte dei modelli di riconoscimento delle immagini migliorava l'accuratezza regolando i propri layer o aumentando le dimensioni dell'immagine di input per catturare più dettagli. Sebbene queste strategie abbiano migliorato i risultati, hanno anche reso i modelli più pesanti e impegnativi. Ciò significava che avevano bisogno 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 un singolo aspetto.
L'architettura EfficientNet elabora le immagini attraverso una serie di blocchi, ciascuno costruito da moduli più piccoli. Il numero di moduli in ogni blocco dipende dalla dimensione del modello.
Le versioni più piccole utilizzano meno 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 scaling composto espande la profondità, la larghezza e la risoluzione dell'immagine di un modello, ma le mantiene in equilibrio. Ciò consente di utilizzare la potenza di calcolo in modo efficiente. La serie inizia con un modello di base più piccolo chiamato EfficientNet-B0, che funge da fondamento per tutte le altre versioni.
A partire da B0, i modelli scalano in varianti più grandi denominate EfficientNet-B1 fino a EfficientNet-B7. Ad ogni passo, la rete acquisisce 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 passo è determinata da un parametro chiamato coefficiente composto, che garantisce che profondità, larghezza e risoluzione aumentino in proporzioni fisse piuttosto che indipendentemente.
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 interno si trova il blocco Mobile Inverted Bottleneck Convolution (MBConv), uno strato speciale che elabora i dati delle immagini come una convoluzione standard, ma con meno calcoli. Questo blocco rende il modello veloce e più efficiente in termini di memoria.
All'interno di ciascun blocco MBConv si trova un modulo squeeze-and-excitation (SE). Questo modulo regola l'intensità dei diversi canali nella rete, potenziando i canali essenziali e riducendo l'intensità degli altri. Il modulo aiuta la rete a concentrarsi sulle caratteristiche più importanti di un'immagine, ignorando il resto. Il modello EfficientNet utilizza anche una funzione di attivazione Swish (una funzione matematica che aiuta la rete ad apprendere schemi), che la aiuta a individuare schemi nelle immagini meglio dei metodi precedenti.
Oltre a questo, utilizza DropConnect, in cui alcune connessioni all'interno della rete vengono disattivate casualmente 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 (modelli più forti e più generali nei dati) che si trasferiscono meglio a dati non visti.
Ora che abbiamo una migliore comprensione di come funzionano i modelli EfficientNet, discutiamo le diverse varianti del modello.
I modelli EfficientNet scalano da B0 a B7, iniziando con B0 come baseline che bilancia velocità e accuratezza. Ogni versione aumenta la profondità, la larghezza e la risoluzione dell'immagine, migliorando l'accuratezza. Tuttavia, richiedono anche maggiore potenza di calcolo, da B1 e B2 fino ai modelli ad alte prestazioni B6 e B7.
Mentre i modelli EfficientNet-B3 ed EfficientNet-B4 raggiungono un equilibrio per immagini più grandi, B5 viene spesso scelto per set di dati complessi che richiedono precisione. Oltre a questi modelli, l'ultimo modello, EfficientNet V2, può migliorare la velocità di addestramento, gestire meglio i piccoli set di dati ed è ottimizzato per l'hardware moderno.
EfficientNet può produrre risultati accurati utilizzando meno memoria e potenza di calcolo rispetto a molti altri modelli. Questo lo rende utile in molti campi, dalla ricerca scientifica ai prodotti che le persone usano quotidianamente.
Le immagini mediche, come le scansioni TC dei polmoni, spesso contengono dettagli sottili che sono fondamentali per una diagnosi accurata. I modelli di IA possono assistere nell'analisi di queste immagini per scoprire schemi che potrebbero essere difficili da individuare per gli esseri umani. Un adattamento di EfficientNet per questo scopo è MONAI (Medical Open Network for AI) EfficientNet, che è specificamente progettato per l'analisi di immagini mediche.
Partendo dall'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 una precisione dichiarata superiore al 99% in contesti sperimentali.
L'object detection è il processo di individuazione di 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 ridimensionamento di profondità, larghezza e risoluzione ha mostrato 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.
I modelli più recenti, come Ultralytics YOLO11, condividono lo stesso obiettivo di combinare velocità e precisione. Questa tendenza verso modelli efficienti è stata fortemente influenzata da idee provenienti da architetture come EfficientNet.
Ecco alcuni vantaggi dell'utilizzo di EfficientNet nei progetti di computer vision:
Sebbene ci siano molti vantaggi legati all'utilizzo di EfficientNet, ecco alcune delle 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.
Unisciti alla nostra community e al nostro repository GitHub per esplorare maggiori informazioni sull'AI. Consulta le nostre pagine dedicate alle soluzioni per leggere informazioni sull'AI nel settore sanitario e sulla computer vision nel settore automobilistico. Scopri le nostre opzioni di licenza e inizia oggi stesso a sviluppare con la computer vision!