Inhaltsverzeichnis:

Pflanzenkrankheiten mit maschinellem Lernen erkennen – wikiHow
Pflanzenkrankheiten mit maschinellem Lernen erkennen – wikiHow

Video: Pflanzenkrankheiten mit maschinellem Lernen erkennen – wikiHow

Video: Pflanzenkrankheiten mit maschinellem Lernen erkennen – wikiHow
Video: Wie funktioniert eigentlich Machine Learning? 2024, Juli
Anonim
Pflanzenkrankheiten mit maschinellem Lernen erkennen
Pflanzenkrankheiten mit maschinellem Lernen erkennen

Das Aufspüren und Erkennen von erkrankten Pflanzen war schon immer ein manueller und mühsamer Prozess, der eine visuelle Inspektion des Pflanzenkörpers durch den Menschen erfordert, was oft zu einer falschen Diagnose führen kann. Es wurde auch vorhergesagt, dass Pflanzenkrankheiten wahrscheinlich schwerwiegender und verbreiteter werden, wenn sich die globalen Wettermuster aufgrund des Klimawandels ändern. Daher ist es wichtig, Systeme zu entwickeln, die Pflanzen schnell und einfach analysieren und eine bestimmte Krankheit identifizieren, um weitere Pflanzenschäden zu begrenzen.

In diesem Instructable werden wir ein maschinelles Lernkonzept erkunden, das als "Transfer Learning" bekannt ist, um Bilder von erkrankten Reispflanzen zu klassifizieren. Das gleiche Verfahren kann für jedes andere Bildklassifizierungsproblem verwendet werden.

Schritt 1: Arten von Reiskrankheiten

Arten von Reiskrankheiten
Arten von Reiskrankheiten

Reis ist eines der beliebtesten Grundnahrungsmittel, das hauptsächlich in Asien, Afrika und Südamerika angebaut wird, ist jedoch anfällig für eine Vielzahl von Schädlingen und Krankheiten. Physikalische Merkmale wie die Entfärbung von Blättern können verwendet werden, um verschiedene Krankheiten zu identifizieren, die die Reisernte beeinträchtigen können. Bei Brown-Spot beispielsweise, einer Pilzkrankheit, die die Schutzhülle der Blätter befällt, sind die Blätter mit mehreren kleinen ovalen braunen Flecken mit grauen Zentren bedeckt, während bei Leaf-Blast die Blätter bedeckt sind mit größeren braunen Läsionen. In ähnlicher Weise können die vom Reis-Hispa-Schädling befallenen Blätter an den langen Spuren, die sich auf der Blattoberfläche entwickeln, identifiziert werden.

Schritt 2: Wie haben frühere Methoden Krankheiten erkannt?

Wie haben frühere Methoden Krankheiten erkannt?
Wie haben frühere Methoden Krankheiten erkannt?

Frühere Verfahren zum automatischen Klassifizieren von Bildern von erkrankten Pflanzen, wie beispielsweise regelbasierte Klassifikatoren, wie sie in [1] verwendet werden, beruhen auf einem festen Satz von Regeln, um das Blatt in betroffene und nicht betroffene Regionen zu segmentieren. Einige der Regeln zum Extrahieren von Merkmalen beinhalten die Beobachtung der Änderung des Mittelwerts und der Standardabweichung zwischen der Farbe der betroffenen und nicht betroffenen Regionen. Regeln zum Extrahieren von Formmerkmalen umfassen das individuelle Platzieren mehrerer primitiver Formen oben auf der betroffenen Region und das Identifizieren der Form, die den maximalen Bereich der betroffenen Region abdeckt. Sobald die Merkmale aus den Bildern extrahiert wurden, wird ein Satz fester Regeln verwendet, um die Bilder in Abhängigkeit von der Krankheit zu klassifizieren, die die Pflanze möglicherweise befallen hat. Der Hauptnachteil eines solchen Klassifikators besteht darin, dass er mehrere feste Regeln für jede Krankheit erfordert, was ihn wiederum anfällig für verrauschte Daten machen könnte. Die obigen Bilder zeigen, wie ein regelbasierter Entscheidungsbaum verwendet werden kann, um das Bild in zwei Bereiche zu segmentieren.

1. Santanu Phadikar et al., „Klassifizierung von Reiskrankheiten unter Verwendung von Merkmalsauswahl- und Regelgenerierungstechniken“, Computers and Electronics in Agriculture, vol. 90, Januar 2013.

Schritt 3: Lernen übertragen

Transfer-Lernen
Transfer-Lernen

Die in diesem Instructables beschriebene Bildklassifizierungstechnik verwendet die Grundstruktur eines CNN, das aus mehreren Faltungsschichten, einer Pooling-Schicht und einer abschließenden vollständig verbundenen Schicht besteht. Die Faltungsschichten fungieren als eine Reihe von Filtern, die die High-Level-Merkmale des Bildes extrahieren. Max-Pooling ist eine der gängigsten Methoden, die beim Pooling von Layern verwendet wird, um die räumliche Größe der extrahierten Features zu reduzieren, wodurch die Rechenleistung reduziert wird, die zum Berechnen der Gewichtungen für jeden Layer erforderlich ist. Schließlich werden die extrahierten Daten zusammen mit einer Softmax-Aktivierungsfunktion, die die Klasse des Bildes bestimmt, durch eine vollständig verbundene Schicht geleitet.

Das Training von benutzerdefinierten CNNs von Grund auf führt jedoch möglicherweise nicht zu den gewünschten Ergebnissen und kann eine sehr lange Trainingszeit erfordern.

Um die Merkmale der Trainingsbilder zu lernen, verwenden wir eine Methode namens Transfer Learning, bei der die „obersten“Schichten eines vortrainierten Modells entfernt und durch Schichten ersetzt werden, die die für den Trainingsdatensatz spezifischen Merkmale lernen können. Transferlernen reduziert die Trainingszeit im Vergleich zu Modellen, die zufällig initialisierte Gewichtungen verwenden. Unsere Methode verwendet sechs verschiedene vortrainierte Modelle, nämlich AlexNet, GoogLeNet, ResNet-50, Inception-v3, ShuffleNet und MobileNet-v2.

Das Bild zeigt die GoogLeNet-Architektur, bei der Blau für Faltungsschichten, Rot für Pooling-Schichten, Gelb für Softmax-Schichten und Grün für Konkatschichten verwendet wird. Hier erfahren Sie mehr über das Innenleben eines CNN.

Der Reiskrankheitsdatensatz besteht aus Bildern von Blättern von gesunden und erkrankten Reispflanzen. Die Bilder können in vier verschiedene Klassen eingeteilt werden, nämlich Brown-Spot, Rice Hispa, Leaf-Blast und Healthy. Der Datensatz besteht aus 2092 verschiedenen Bildern, wobei jede Klasse 523 Bilder enthält. Jedes Bild besteht aus einem einzelnen gesunden oder erkrankten Blatt vor einem weißen Hintergrund.

Wir teilen den Bilddatensatz in Trainings-, Validierungs- und Testbildersätze auf. Um eine Überanpassung zu vermeiden, erweitern wir die Trainingsbilder, indem wir die Trainingsbilder skalieren und spiegeln, um die Gesamtzahl der Trainingsproben zu erhöhen.

Der Code und die Abhängigkeiten sind Open Source und können hier gefunden werden: GitHub Code

Für verschiedene Bildklassifizierungsanwendungen können wir einfach den Trainingsbilddatensatz ändern.

Schritt 4: Trainieren des Modells

Trainieren des Modells
Trainieren des Modells
Trainieren des Modells
Trainieren des Modells
Trainieren des Modells
Trainieren des Modells

Abhängig von der von jedem Modell benötigten Speichergröße werden die vortrainierten Modelle in größere und kleinere Modelle eingeteilt. Die kleineren Modelle verbrauchen weniger als 15 MB und sind daher besser für mobile Anwendungen geeignet.

Unter den größeren Modellen hatte Inception-v3 die längste Trainingszeit von ca. 140 Minuten, während AlexNet mit ca. 18 Minuten die kürzeste Trainingszeit hatte. Unter den kleineren mobilorientierten Modellen hatte MobileNet-v2 die längste Trainingszeit von ca. 73 Minuten, während ShuffleNet mit ca. 38 Minuten die kürzeste Trainingszeit aufwies.

Schritt 5: Testen des Modells

Testen des Modells
Testen des Modells
Testen des Modells
Testen des Modells
Testen des Modells
Testen des Modells

Unter den größeren Modellen hatte Inception-v3 die höchste Testgenauigkeit von ca. 72,1 %, während AlexNet die niedrigste Testgenauigkeit von ca. 48,5% aufwies. Unter den kleineren mobilorientierten Modellen hatte MobileNet-v2 die höchste Testgenauigkeit von 62,5%, während ShuffleNet die niedrigste Testgenauigkeit von 58,1% aufwies.

MobileNet-v2 schnitt bei der Klassifizierung von Bildern von Brown-Spot-, Leaf-Blast- und Healthy-Blättern signifikant gut ab, während es mehrere Fehlklassifizierungen für Rice Hispa mit einer Genauigkeit von nur 46,15% vornahm.

Inception-v3 zeigte ähnliche Klassifizierungsergebnisse wie MobileNet-v2.

Schritt 6: Zusätzliche Tests

Zusätzliche Tests
Zusätzliche Tests
Zusätzliche Tests
Zusätzliche Tests

Das Bild oben zeigt, wie das MobileNet-v2-Modell ein Bild eines Grasblattes vor einem weißen Hintergrund fälschlicherweise als Rice Hispa klassifiziert.

Wir haben die Genauigkeit von MobileNet-v2 auch an beschnittenen Bildern von Rice Hispa getestet, wobei der weiße Hintergrund minimiert wurde, sodass das Blatt einen maximalen Bereich innerhalb des Bildes einnimmt. Bei beschnittenen Bildern von Rice Hispa beobachteten wir eine Genauigkeit von ungefähr 80,81 %, d. Daher schlagen wir vor, dass reale Implementierungen der Erkennung von Reiskrankheiten unter Verwendung von neuronalen Faltungsnetzwerken die Testbilder beschneiden müssen, um Hintergrundrauschen zu entfernen, um die Genauigkeit zu verbessern.

Empfohlen: