$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Beschrijving van de dataset
De dataset die in dit onderzoek is gebruikt, is afkomstig uit de openbaar beschikbare Kaggle-repository met de titel Paddy Leaf Diseases Detection Dataset. Het bestaat uit 18.545 afbeeldingen van padiebladeren, gecategoriseerd in 10 ziekteklassen en 1 gezonde klasse. Afbeeldingen variëren in resolutie en zijn gemaakt onder verschillende licht- en omgevingsomstandigheden.
Voorbewerking van afbeeldingen
Alle afbeeldingen zijn verkleind tot 224 x 224 pixels met behulp van de functie tf.image.resize() van TensorFlow. Deze uniformiteit zorgt voor compatibiliteit met de invoervereisten van vooraf getrainde CNN-modellen.: Pixelwaarden zijn genormaliseerd naar het bereik [0,1] met behulp van de parameter rescale=1./255 in Keras ImageDataGenerator. Vergroting (alleen voor training): Technieken zoals horizontaal en verticaal spiegelen, rotatie (± 20°) en zoomen (tot 20%) werden toegepast met behulp van ImageDataGenerator om generalisatie te verbeteren.
Segmentatie van afbeeldingen
Een UNet-model werd gebruikt voor beeldsegmentatie om zieke bladgebieden te isoleren van achtergrondruis. De UNet-architectuur is gebouwd met behulp van de functionele API van Keras met encoder-decoderlagen, skip-verbindingen en ReLU-activering. Segmentatiemaskers werden toegepast op originele afbeeldingen met behulp van pixelgewijze vermenigvuldiging (cv2.bitwise_and) om alleen relevante kenmerken te behouden.
Modelarchitectuur en training
De volgende modellen werden gebruikt als backbone-classificaties: VGG16, ResNet50, InceptionV3, MobileNet, AlexNet en DenseNet121. Vooraf getrainde modellen (op ImageNet) werden geïmporteerd met include_top=False. Er werd een aangepaste classificatiekop toegevoegd, bestaande uit een globale gemiddelde poolinglaag, twee dichte lagen met 128 en 64 neuronen (ReLU-activering), een Dropout-laag (snelheid = 0,4) en een laatste dichte laag met 11 outputs en Softmax-activering.
Experimentele opstelling
Alle experimenten zijn uitgevoerd met behulp van de volgende instellingen: Programmeeromgeving: Python 3.11.5 met TensorFlow en Keras, Uitvoeringsplatform: Jupyter Notebook, Hardware: Intel Core i5-6300U, 8 GB RAM, Windows 11, Batchgrootte: 32, Epochs: 50, Optimizer: Adam, Leersnelheid: 0,0001, Verliesfunctie: Categorische crossentropie, Activeringsfuncties: ReLU voor verborgen lagen, Softmax voor de uiteindelijke uitvoerlaag.
Evaluatie metriek
Nauwkeurigheid, precisie, recall en F1-score werden berekend met behulp van classification_report van sklearn.metrics. Verwarringsmatrices werden uitgezet met behulp van confusion_matrix en seaborn.heatmap. De prestaties werden beoordeeld op zowel niet-gesegmenteerde als UNet-gesegmenteerde beelden voor vergelijkende evaluatie.
GUI-ontwikkeling
Een eenvoudige grafische gebruikersinterface is gemaakt met behulp van de Tkinter-bibliotheek van Python. Gebruikers kunnen een bladafbeelding uploaden met behulp van de GUI, die vervolgens door het getrainde model wordt geleid. De voorspelde ziekteklasse wordt op het scherm weergegeven, samen met een betrouwbaarheidsscore.
Aanmaken van datasets
De dataset die in dit onderzoek wordt gebruikt, is de openbaar beschikbare Paddy Leaf Diseases Detection-dataset van Kaggle36, bestaande uit in totaal 18.545 afbeeldingen met hoge resolutie van padiebladeren, gecategoriseerd in 10 ziekteklassen en 1 gezonde klasse. De beelden zijn vastgelegd onder verschillende lichtomstandigheden en diverse omgevingsomgevingen, waardoor de dataset zeer representatief is en geschikt voor het bouwen van robuuste deep learning-modellen. De dataset is ongeveer 8,33 GB groot en bevat de volgende klassen: Tungro, Sheath Blight (SB), Paddy Hispa (PH), Neck Blast (NB), Narrow Brown Spot (NBS), Leaf Scald (LS), Leaf Blast (LB), Healthy, Brown Spot (BS) en Bacterial Leaf Blight (BLB).
Om reproduceerbaarheid en effectieve modelevaluatie te garanderen, werd de dataset willekeurig verdeeld in subsets voor training (80%) en testen (20%), met behoud van de klassenverdeling. De trainingsset werd gebruikt om de modellen te trainen, terwijl de testset werd gereserveerd voor prestatievalidatie op ongeziene gegevens. De evaluatie was gebaseerd op standaard classificatiestatistieken: Nauwkeurigheid, Precisie, Recall en F1-score, die een uitgebreide beoordeling van de classificatiecapaciteit van elk model opleverden. De studie vergeleek zes deep learning-modellen: VGG16, ResNet, InceptionV3, MobileNet, AlexNet en DenseNet121, waarbij DenseNet121 de beste prestaties voor de taak leverde.
Distributie van gegevens
De ziekteclassificatie werd uitgevoerd met behulp van deep learning-modellen die op de dataset waren getraind. De dataset was verdeeld in twee subsets: een trainingsset en een testset. De trainingsset werd gebruikt om het model te onderwijzen, terwijl de testset werd gebruikt om de prestaties te evalueren op voorheen ongeziene gegevens. Een samenvatting van de beeldverdeling over de tien ziektecategorieën en de gezonde bladklasse is te vinden in Tabel 1. Deze tabel biedt een uitgebreid inzicht in de visuele symptomen die verband houden met elke ziekte, waardoor de training en evaluatie van classificatiemodellen wordt vergemakkelijkt.
Deze verdeling zorgt voor een billijke vertegenwoordiging van elke ziektecategorie tijdens zowel de trainings- als de testfase. De trainingsset bevat het merendeel van de afbeeldingen, waardoor het model de unieke kenmerken van elke klas effectief kan leren. De testset, bestaande uit een kleinere subset van afbeeldingen, zorgt voor een betrouwbare evaluatie van de nauwkeurigheid van het model en het vermogen om te generaliseren naar nieuwe, onzichtbare gegevens.
De evenwichtige en diverse verdeling van afbeeldingen over categorieën zorgt ervoor dat het model over voldoende gegevens beschikt om de unieke patronen van elk ziektetype te leren, terwijl ook het risico op overfitting of vooringenomenheid ten opzichte van een bepaalde klasse wordt verkleind. Deze gegevenssplitsing is essentieel voor het verkrijgen van robuuste en betrouwbare classificatieresultaten.
Gegevens opschonen
In de voorverwerkingsfase is het opschonen van de gegevens essentieel om de nauwkeurigheid en efficiëntie van het classificatiemodel te verbeteren. De afbeeldingen van onbewerkte rijstbladeren bevatten vaak ongewenste achtergrondelementen zoals aarde, nabijgelegen vegetatie of landbouwwerktuigen, die ruis kunnen veroorzaken en de algehele prestaties van het model kunnen verslechteren.
Om dit aan te pakken, werd beeldsegmentatie uitgevoerd met behulp van het UNet 37,38-model, een bekende convolutionele neurale netwerkarchitectuur die speciaal is ontworpen voor semantische segmentatietaken. Het UNET-model is in staat om bladgebieden van de achtergrond met hoge precisie te segmenteren, zodat alleen de relevante delen van de afbeeldingen behouden blijven voor verdere verwerking39. Het segmentatieproces werd geïllustreerd in figuur 1.
Proces van segmentatie met UNet-model (Figuur 2): Onbewerkte afbeeldingen uit de dataset worden ingevoerd in het UNET-model. Het UNET-model bestaat uit een encoder die hiërarchische kenmerken extraheert en een decoder die de afbeelding reconstrueert terwijl het bladgebied wordt gesegmenteerd. Het model voert een binair masker uit waarbij het bladgebied is gemarkeerd en de achtergrond is verwijderd. De gesegmenteerde afbeeldingen worden verder verfijnd door morfologische bewerkingen toe te passen om gladde randen te garanderen en eventuele restruis te verwijderen (Figuur 3).
Wiskundige formulering van UNet-segmentatie: UNet voert semantische segmentatie uit door een mapping te leren van de invoerbeeldruimte naar een binair masker dat het interessegebied (ROI) benadrukt, d.w.z. het zieke bladgebied, terwijl de irrelevante achtergrond wordt onderdrukt. Laten:
geef de ingevoerde RGB-afbeelding van grootte H * W aan met C = 3 kleurkanalen.
de output zijn van het getrainde UNet-model, waarbij elke pixelwaarde in M de waarschijnlijkheid vertegenwoordigt dat die pixel tot het zieke bladgebied behoort.
Het laatste binaire segmentatiemasker 
waarbij τ [0,1] de segmentatiedrempel is (gewoonlijk ingesteld op 0,5).
De gesegmenteerde afbeelding
wordt vervolgens als volgt berekend:

waarbij
elementgewijze vermenigvuldiging staat, ruimtelijk toegepast over alle kanalen. Bij deze bewerking blijven pixelwaarden in de ROI behouden (waar
) en worden achtergrondpixels gemaskeerd (waar
). Deze gesegmenteerde output wordt doorgegeven als input aan het classificatiemodel (bijv. DenseNet121), waardoor het zich uitsluitend kan concentreren op ziekterelevante kenmerken, terwijl luidruchtige, niet-informatieve achtergrondgebieden worden genegeerd, wat de classificatieprestaties en modelgeneralisatie verbetert.
Deze voorbewerkingsstap garandeert dat de volgende fasen van de extractie en classificatie van kenmerken worden uitgevoerd op schone, relevante gegevens, waardoor de algehele prestaties en betrouwbaarheid van het classificatiemodel voor padieziekten worden verbeterd.
Leren overdragen
Transfer learning maakt gebruik van vooraf getrainde neurale netwerken om nieuwe, maar gerelateerde problemen aan te pakken, waardoor het niet meer nodig is om modellen van de grond af aan op te bouwen. Deze aanpak maakt gebruik van de kennis die is opgedaan bij eerdere taken, waardoor efficiënt leren mogelijk wordt40. Vooraf getrainde modellen worden vaak ontwikkeld op basis van uitgebreide datasets en beschikken over robuuste mogelijkheden voor functie-extractie, waardoor ze geschikt zijn voor het verfijnen van specifieke datasets. Dit verkort de trainingstijd, voorkomt overfitting en bereikt een hoge nauwkeurigheid, zelfs met beperkte rekenmiddelen.
In deze studie werd transfer learning gebruikt om padiebladziekten te identificeren door verschillende vooraf getrainde deep learning-modellen te evalueren. De architectuur die in de experimenten is onderzocht, omvat VGG16, ResNet, InceptionV3, MobileNet, AlexNet en DenseNet121. Elk van deze modellen werd in eerste instantie getraind op grote datasets, zoals ImageNet, en hun vooraf getrainde gewichten werden in dit werk gebruikt. Om de modellen aan te passen aan de classificatietaak zijn de volgende wijzigingen aangebracht:
Model wijziging: De oorspronkelijke, volledig verbonden (classificatie)lagen van elk model zijn verwijderd met behulp van de parameter include_top=False tijdens het importeren van het model in Keras. Dit zorgde ervoor dat alleen de convolutionele basis (feature extractor) van elk vooraf getraind model behouden bleef. De uitvoer van het laatste convolutionele blok werd afgevlakt tot een eendimensionale vector met behulp van de laag Flatten().
Dichte lagen: Drie volledig verbonden (dichte) lagen werden achtereenvolgens toegevoegd na de afvlakkingsstap. Deze lagen werden gedefinieerd met behulp van de Keras Dense()-functie: de eerste met 256 neuronen en ReLU-activering, de tweede met 128 neuronen en ReLU-activering, en de derde met 64 neuronen en ReLU-activering. Tussen de lagen is ook een dropout-laag toegevoegd om overfitting te verminderen.
Output laag: Drie volledig verbonden (dichte) lagen werden achtereenvolgens toegevoegd na de afvlakkingsstap. Deze lagen werden gedefinieerd met behulp van de Keras Dense()-functie: de eerste met 256 neuronen en ReLU-activering, de tweede met 128 neuronen en ReLU-activering, en de derde met 64 neuronen en ReLU-activering. Tussen de lagen werd ook een dropout-laag (snelheid 0,4) toegevoegd om overfitting te verminderen.
De algehele pijplijn en stroom van de methodologie, inclusief voorbewerking, segmentatie, implementatie van overdrachtsleermodellen en evaluatie, wordt weergegeven in figuur 4. Deze figuur geeft een uitgebreid overzicht van de stappen die in dit onderzoek zijn gevolgd. Door gebruik te maken van transfer learning werd de trainingstijd met succes geminimaliseerd, werd de afhankelijkheid van hoogwaardige rekenkracht verminderd en werden aanzienlijke prestatieverbeteringen bereikt in de classificatie van padiebladziekte.
Voorgesteld DenseNet121 model voor classificatie van bladziekten
Van alle geteste modellen leverde DenseNet121 de beste prestaties op bij het classificeren van padiebladziekten, met een opmerkelijke nauwkeurigheid. Dit geavanceerde deep learning-model onderscheidt zich door zijn innovatieve architectuur40, die een efficiënte informatiestroom bevordert en het hergebruik van functies verbetert.
Architectuur van DenseNet121: DenseNet121 wordt gekenmerkt door dicht op elkaar verbonden lagen, waarbij elke laag toegang heeft tot de functiekaarten van alle voorgaande lagen. Dit ontwerp optimaliseert de informatiestroom, vermindert redundantie en verbetert de algehele efficiëntie van het model aanzienlijk.
De architectuur bestaat uit de volgende belangrijke onderdelen:
Invoerlaag: Ontvangt afbeeldingen waarvan het formaat is gewijzigd in 224 x 224 pixels voor gestandaardiseerde verwerking.
Initiële convolutionele laag: Past een convolutiebewerking van 7 x 7 toe, gevolgd door maximale pooling om de ruimtelijke dimensies te verkleinen en objecten op laag niveau te extraheren.
Dichte blokken: Het model bevat vier dichte blokken. Elk blok bestaat uit verschillende convolutionele lagen die op een dichte manier met elkaar zijn verbonden, wat betekent dat elke laag directe toegang heeft tot de uitgangen van alle voorgaande lagen binnen het blok.
Overgangslagen: Deze lagen, gepositioneerd tussen dichte blokken, voeren een 1 x 1 convolutie uit, gevolgd door gemiddelde pooling om de functiedimensies te verkleinen, waardoor de rekenefficiëntie wordt verbeterd.
Global Average Pooling (GAP): Vermindert de ruimtelijke dimensies van functiekaarten vóór de volledig verbonden lagen.
Volledig verbonden laag: Produceert de uitvoervector voor classificatie.
Aangepaste lagen voor classificatie: Voor dit onderzoek werden de standaard volledig verbonden lagen vervangen door een aangepaste architectuur: Flatten-laag, drie dichte lagen (256, 128 en 64 neuronen met ReLU-activering) en een laatste sigmoïde-geactiveerde laag voor binaire classificatie.
Het vermogen van DenseNet121 om functies te hergebruiken en de compacte architectuur hebben aanzienlijk bijgedragen aan de superieure prestaties op de dataset voor padiebladziekten. Deze efficiëntie, in combinatie met het vermogen om overfitting tot een minimum te beperken, maakt het ideaal voor taken met beperkte trainingsgegevens. DenseNet121 bereikte een betere nauwkeurigheid en generalisatie dan andere modellen vanwege het hergebruik van functies en de gradiëntstroomeigenschappen. Terwijl modellen als ResNet en VGG16 goed presteerden, presteerde DenseNet121 beter dan ze op het gebied van nauwkeurigheid en rekenefficiëntie.
In alle modellen werden drie volledig verbonden (dichte) lagen opgenomen die gebruik maakten van ReLU-activeringsfuncties (zoals weergegeven in vergelijking 1), culminerend in een laatste dichte laag met een SoftMax-activering (vergelijking 2) om classificatie met meerdere klassen te vergemakkelijken. Door deze aanpassing kon elk model zijn vooraf getrainde gewichten effectief gebruiken bij het classificeren van de afbeeldingen in de dataset.
ReLu f(x) = max(0, X) (1)

waarbij xi staat voor de invoer van de SoftMax-functie, aangepast voor classificatie in de tien categorieën padiebladziekten. De unieke architectuur van elk model, gecombineerd met deze aangepaste uitvoerlaag, maakte effectieve functie-extractie en nauwkeurige beeldclassificatie mogelijk.
Figuur 5 toont de architecturale lay-out van DenseNet121 en toont de naadloze informatiestroom door de dichte blokken, overgangslagen en de op maat gemaakte classificatielagen die voor dit onderzoek zijn geïntegreerd. Deze visuele weergave verduidelijkt hoe DenseNet121 omgaat met beeldinvoer en voorspellingsuitvoer genereert