$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Descrizione del set di dati
Il set di dati utilizzato in questa ricerca è stato ottenuto dal repository Kaggle disponibile al pubblico intitolato Paddy Leaf Diseases Detection Dataset. Si compone di 18.545 immagini di foglie di risaia classificate in 10 classi di malattie e 1 classe sana. Le immagini variano in risoluzione e sono state catturate in diverse condizioni di illuminazione e ambientali.
Pre-elaborazione delle immagini
Tutte le immagini sono state ridimensionate a 224 x 224 pixel utilizzando la funzione tf.image.resize() di TensorFlow. Questa uniformità garantisce la compatibilità con i requisiti di input dei modelli CNN pre-addestrati.: I valori dei pixel sono stati normalizzati all'intervallo [0,1] utilizzando il parametro rescale=1./255 in Keras ImageDataGenerator. Aumento (solo per la formazione): tecniche come il capovolgimento orizzontale e verticale, la rotazione (± 20°) e lo zoom (fino al 20%) sono state applicate utilizzando ImageDataGenerator per migliorare la generalizzazione.
Segmentazione delle immagini
Un modello UNet è stato impiegato per la segmentazione delle immagini per isolare le aree fogliari malate dal disordine dello sfondo. L'architettura UNet è stata costruita utilizzando l'API funzionale Keras con livelli di codificatore-decodificatore, skip connections e attivazione ReLU. Le maschere di segmentazione sono state applicate alle immagini originali utilizzando la moltiplicazione pixel per pixel (cv2.bitwise_and) per mantenere solo le caratteristiche rilevanti.
Architettura e formazione dei modelli
I seguenti modelli sono stati utilizzati come classificatori backbone: VGG16, ResNet50, InceptionV3, MobileNet, AlexNet e DenseNet121. I modelli pre-addestrati (su ImageNet) sono stati importati con include_top=False. È stata aggiunta una testa di classificazione personalizzata, costituita da uno strato di pooling medio globale, due strati densi con 128 e 64 neuroni (attivazione ReLU), uno strato Dropout (tasso = 0,4) e uno strato denso finale con 11 uscite e attivazione Softmax.
Configurazione sperimentale
Tutti gli esperimenti sono stati condotti utilizzando le seguenti impostazioni: Ambiente di programmazione: Python 3.11.5 con TensorFlow e Keras, Piattaforma di esecuzione: Jupyter Notebook, Hardware: Intel Core i5-6300U, 8 GB di RAM, Windows 11, Dimensione batch: 32, Epoche: 50, Ottimizzatore: Adam, Tasso di apprendimento: 0,0001, Funzione di perdita: Crossentropia categorica, Funzioni di attivazione: ReLU per i livelli nascosti, Softmax per il livello di output finale.
Metriche di valutazione
L'accuratezza, la precisione, il richiamo e il punteggio F1 sono stati calcolati utilizzando classification_report di sklearn.metrics. Le matrici di confusione sono state tracciate utilizzando confusion_matrix e seaborn.heatmap. Le prestazioni sono state valutate sia su immagini non segmentate che segmentate UNet per una valutazione comparativa.
Sviluppo GUI
Una semplice interfaccia utente grafica è stata creata utilizzando la libreria Tkinter di Python. Gli utenti possono caricare un'immagine foglia utilizzando la GUI, che viene quindi passata attraverso il modello addestrato. La classe di malattia prevista viene visualizzata sullo schermo, insieme a un punteggio di confidenza.
Creazione di set di dati
Il set di dati utilizzato in questo studio è il set di dati di rilevamento delle malattie delle foglie di risaia disponibile al pubblico di Kaggle36, che comprende un totale di 18.545 immagini ad alta risoluzione di foglie di risaia classificate in 10 classi di malattie e 1 classe sana. Le immagini sono state catturate in condizioni di illuminazione variabili e in diversi contesti ambientali, rendendo il set di dati altamente rappresentativo e adatto alla creazione di solidi modelli di deep learning. Il set di dati ha una dimensione di circa 8,33 GB e contiene le seguenti classi: Tungro, Peronospora della guaina (SB), Paddy Hispa (PH), Neck Blast (NB), Narrow Brown Spot (NBS), Leaf Scottd (LS), Leaf Blast (LB), Healthy, Brown Spot (BS) e Bacterial Leaf Blight (BLB).
Per garantire la riproducibilità e un'efficace valutazione del modello, il set di dati è stato suddiviso in modo casuale in sottoinsiemi di addestramento (80%) e test (20%), mantenendo la distribuzione delle classi. Il set di addestramento è stato utilizzato per addestrare i modelli, mentre il set di test è stato riservato per la convalida delle prestazioni su dati non visualizzati. La valutazione si è basata su metriche di classificazione standard: accuratezza, precisione, richiamo e punteggio F1, che hanno fornito una valutazione completa della capacità di classificazione di ciascun modello. Lo studio ha confrontato sei modelli di deep learning: VGG16, ResNet, InceptionV3, MobileNet, AlexNet e DenseNet121, con DenseNet121 che offre le migliori prestazioni per l'attività.
Distribuzione dei dati
La classificazione della malattia è stata effettuata utilizzando modelli di deep learning addestrati sul set di dati. Il set di dati è stato diviso in due sottoinsiemi: un set di addestramento e un set di test. Il set di addestramento è stato utilizzato per insegnare il modello, mentre il set di test è stato utilizzato per valutarne le prestazioni su dati precedentemente non visti. Un riepilogo della distribuzione delle immagini tra le dieci categorie di malattie e la classe delle foglie sane è fornito nella Tabella 1. Questa tabella fornisce una comprensione completa dei sintomi visivi associati a ciascuna malattia, facilitando l'addestramento e la valutazione dei modelli di classificazione.
Questa distribuzione garantisce un'equa rappresentanza di ogni categoria di malattia sia durante la fase di formazione che di test. Il set di addestramento include la maggior parte delle immagini, consentendo al modello di apprendere in modo efficace le caratteristiche uniche di ogni classe. Il set di test, costituito da un sottoinsieme più piccolo di immagini, garantisce una valutazione affidabile dell'accuratezza del modello e della sua capacità di generalizzarsi a nuovi dati invisibili.
La distribuzione equilibrata e diversificata delle immagini tra le categorie garantisce che il modello disponga di dati sufficienti per apprendere i modelli unici associati a ciascun tipo di malattia, mitigando al contempo il rischio di overfitting o pregiudizio verso una particolare classe. Questa suddivisione dei dati è essenziale per ottenere risultati di classificazione solidi e affidabili.
Pulizia dei dati
Nella fase di pre-elaborazione, la pulizia dei dati è essenziale per migliorare l'accuratezza e l'efficienza del modello di classificazione. Le immagini grezze delle foglie di risaia spesso includono elementi di sfondo indesiderati come il suolo, la vegetazione vicina o gli attrezzi agricoli, che possono introdurre rumore e degradare le prestazioni complessive del modello.
Per risolvere questo problema, la segmentazione delle immagini è stata eseguita utilizzando il modello UNet37,38, una nota architettura di rete neurale convoluzionale progettata specificamente per compiti di segmentazione semantica. Il modello UNET è in grado di segmentare le regioni fogliari dallo sfondo con elevata precisione, assicurando che solo le parti rilevanti delle immagini vengano conservate per un'ulteriore elaborazione39. Il processo di segmentazione è stato illustrato nella Figura 1.
Processo di segmentazione con il modello UNet (Figura 2): le immagini grezze del set di dati vengono inserite nel modello UNET. Il modello UNET è costituito da un codificatore che estrae le caratteristiche gerarchiche e da un decodificatore che ricostruisce l'immagine segmentando la regione foglia. Il modello genera una maschera binaria in cui viene contrassegnata la regione foglia e viene rimosso lo sfondo. Le immagini segmentate vengono ulteriormente perfezionate applicando operazioni morfologiche per garantire bordi uniformi e rimuovere qualsiasi rumore residuo (Figura 3).
Formulazione matematica della segmentazione UNet: UNet esegue la segmentazione semantica imparando una mappatura dallo spazio dell'immagine di input a una maschera binaria che evidenzia la regione di interesse (ROI), cioè l'area fogliare malata, sopprimendo lo sfondo irrilevante. Lasciare:
denotare l'immagine RGB in ingresso di dimensioni H*W con C=3 canali di colore.
essere l'output del modello UNet addestrato, dove ogni valore di pixel in M rappresenta la probabilità che quel pixel appartenga alla regione fogliare malata.
La maschera di segmentazione binaria finale 
dove τ [0,1] è la soglia di segmentazione (comunemente impostata su 0,5).
L'immagine
segmentata viene quindi calcolata come:

dove
denota la moltiplicazione per elemento, applicata spazialmente su tutti i canali. Questa operazione mantiene i valori dei pixel nel ROI (where
) e maschera i pixel di sfondo (where
). Questo output segmentato viene passato come input al modello di classificazione (ad esempio, DenseNet121), consentendogli di concentrarsi esclusivamente sulle caratteristiche rilevanti per la malattia, ignorando le aree di sfondo rumorose e non informative, il che migliora le prestazioni di classificazione e la generalizzazione del modello.
Questa fase di pre-elaborazione garantisce che le fasi successive di estrazione e classificazione delle caratteristiche vengano eseguite su dati puliti e pertinenti, migliorando così le prestazioni complessive e l'affidabilità del modello di classificazione della malattia delle risaie.
Trasferimento dell'apprendimento
Il transfer learning utilizza reti neurali pre-addestrate per affrontare problemi nuovi ma correlati, eliminando la necessità di costruire modelli da zero. Questo approccio sfrutta le conoscenze acquisite da attività precedenti, consentendo un apprendimento efficiente40. I modelli pre-addestrati sono spesso sviluppati su set di dati estesi e possiedono solide capacità di estrazione delle funzionalità, che li rendono adatti per la messa a punto su set di dati specifici. Ciò riduce i tempi di addestramento, evita l'overfitting e raggiunge un'elevata precisione anche con risorse computazionali limitate.
In questo studio, l'apprendimento di trasferimento è stato impiegato per identificare le malattie delle foglie di risaia valutando vari modelli di deep learning pre-addestrati. L'architettura esplorata negli esperimenti include VGG16, ResNet, InceptionV3, MobileNet, AlexNet e DenseNet121. Ciascuno di questi modelli è stato inizialmente addestrato su set di dati di grandi dimensioni, come ImageNet, e i loro pesi pre-addestrati sono stati utilizzati in questo lavoro. Per adattare i modelli al compito di classificazione, sono state apportate le seguenti modifiche:
Modifica del modello: I livelli originali completamente connessi (classificazione) di ciascun modello sono stati rimossi utilizzando il parametro include_top=False durante l'importazione del modello in Keras. In questo modo è stato garantito che venisse mantenuta solo la base convoluzionale (estrattore di funzionalità) di ogni modello pre-addestrato. L'output dell'ultimo blocco convoluzionale è stato appiattito in un vettore unidimensionale utilizzando il livello Flatten().
Strati densi: Tre strati completamente connessi (densi) sono stati aggiunti in sequenza dopo la fase di appiattimento. Questi strati sono stati definiti utilizzando la funzione Keras Dense(): il primo con 256 neuroni e attivazione ReLU, il secondo con 128 neuroni e attivazione ReLU e il terzo con 64 neuroni e attivazione ReLU. È stato inoltre aggiunto un livello Dropout tra i livelli per ridurre l'overfitting.
Livello di output: Tre strati completamente connessi (densi) sono stati aggiunti in sequenza dopo la fase di appiattimento. Questi strati sono stati definiti utilizzando la funzione Keras Dense(): il primo con 256 neuroni e attivazione ReLU, il secondo con 128 neuroni e attivazione ReLU e il terzo con 64 neuroni e attivazione ReLU. È stato aggiunto anche uno strato di dropout (velocità 0,4) tra gli strati per ridurre l'overfitting.
La pipeline e il flusso complessivi della metodologia, compresa la preelaborazione, la segmentazione, l'implementazione del modello di transfer learning e la valutazione, sono illustrati nella Figura 4. Questa figura fornisce una panoramica completa delle fasi seguite in questa ricerca. Utilizzando l'apprendimento di trasferimento, il tempo di formazione è stato ridotto al minimo, la dipendenza dalle risorse computazionali di fascia alta è stata ridotta e sono stati ottenuti miglioramenti significativi delle prestazioni nella classificazione della malattia delle risaie.
Proposto il modello DenseNet121 per la classificazione delle malattie fogliari
Tra tutti i modelli testati, DenseNet121 ha mostrato le migliori prestazioni nella classificazione delle malattie delle risaie, raggiungendo una notevole precisione. Questo modello di deep learning all'avanguardia si distingue per la sua innovativa architettura40, che promuove un flusso efficiente di informazioni e migliora il riutilizzo delle funzionalità.
Architettura di DenseNet121: DenseNet121 è caratterizzato da livelli densamente connessi, in cui ogni livello può accedere alle mappe delle caratteristiche di tutti i livelli precedenti. Questo design ottimizza il flusso di informazioni, riduce la ridondanza e migliora significativamente l'efficienza complessiva del modello.
L'architettura è costituita dai seguenti componenti chiave:
Livello di input: riceve immagini ridimensionate a 224 x 224 pixel per un'elaborazione standardizzata.
Livello convoluzionale iniziale: applica un'operazione di convoluzione 7 x 7 seguita dal pool massimo per ridurre le dimensioni spaziali ed estrarre funzionalità di basso livello.
Blocchi densi: il modello contiene quattro blocchi densi. Ogni blocco comprende diversi strati convoluzionali collegati in modo denso, il che significa che ogni strato ha accesso diretto agli output di tutti i livelli precedenti all'interno del blocco.
Livelli di transizione: posizionati tra blocchi densi, questi strati eseguono una convoluzione 1 x 1 seguita da un pooling medio per ridurre le dimensioni delle caratteristiche, migliorando l'efficienza computazionale.
Global Average Pooling (GAP): riduce le dimensioni spaziali delle mappe delle caratteristiche prima dei layer completamente connessi.
Livello completamente connesso: produce il vettore di output per la classificazione.
Livelli personalizzati per la classificazione: Per questa ricerca, i livelli predefiniti completamente connessi sono stati sostituiti con un'architettura personalizzata: strato appiattito, tre strati densi (256, 128 e 64 neuroni con attivazione ReLU) e un livello finale attivato da sigma per la classificazione binaria.
La capacità di DenseNet121 di riutilizzare le funzionalità e la sua architettura compatta hanno contribuito in modo significativo alle sue prestazioni superiori sul set di dati sulla malattia delle risaie. Questa efficienza, unita alla sua capacità di ridurre al minimo l'overfitting, lo rende ideale per le attività con dati di addestramento limitati. DenseNet121 ha ottenuto una migliore precisione e generalizzazione rispetto ad altri modelli grazie al riutilizzo delle sue caratteristiche e alle proprietà di flusso del gradiente. Mentre modelli come ResNet e VGG16 hanno ottenuto buoni risultati, DenseNet121 li ha superati in termini di precisione ed efficienza computazionale.
In tutti i modelli, sono stati inclusi tre strati completamente connessi (densi) utilizzando le funzioni di attivazione ReLU (come mostrato nell'equazione 1), culminando in uno strato denso finale con un'attivazione SoftMax (equazione 2) per facilitare la classificazione multiclasse. Questo adattamento ha permesso a ciascun modello di utilizzare in modo efficace i pesi pre-addestrati durante la classificazione delle immagini nel set di dati.
ReLu f(x) = max(0, X) (1)

dove xi rappresenta l'input della funzione SoftMax, aggiustato per la classificazione nelle dieci categorie di malattie del risone. L'architettura unica di ogni modello, combinata con questo livello di output personalizzato, ha consentito un'efficace estrazione delle caratteristiche e una classificazione accurata delle immagini.
La Figura 5 presenta il layout architettonico di DenseNet121, mostrando il flusso continuo di informazioni attraverso i suoi blocchi densi, i livelli di transizione e i livelli di classificazione su misura integrati per questa ricerca. Questa rappresentazione visiva chiarisce il modo in cui DenseNet121 gestisce gli input delle immagini e genera gli output di previsione