Inhaltsverzeichnis:
- Schritt 1: Arten von Reiskrankheiten
- Schritt 2: Wie haben frühere Methoden Krankheiten erkannt?
- Schritt 3: Lernen übertragen
- Schritt 4: Trainieren des Modells
- Schritt 5: Testen des Modells
- Schritt 6: Zusätzliche Tests
Video: Pflanzenkrankheiten mit maschinellem Lernen erkennen – wikiHow
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
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
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?
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
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
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
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
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:
Blitze mit einem Funkgerät erkennen - Gunook
Verwenden eines Radios zum Erkennen von Blitzen: Kleine Radios können nicht nur zum Hören von Musik oder Sport verwendet werden. Alle Radios (auch billige AM-Radios) können verwendet werden, um Blitze und andere atmosphärische Phänomene zu erkennen. Mit einem geschulten Ohr kann man sogar feststellen, ob sich der Blitz hinzieht
Hindernisse asynchron mit Ultraschall erkennen - Gunook
Hindernisse asynchron mit Ultraschall erkennen: Ich baue zum Spaß einen Roboter, den ich autonom in einem Haus bewegen möchte. Es ist eine lange Arbeit und ich mache Schritt für Schritt. Dieser anweisbare Fokus auf die Hinderniserkennung mit Arduino Mega.Ultraschallsensoren HC-SR04 vs HY-SRF05 sind billig und
Machen Sie Blinde Dinge erkennen, indem Sie mit MakeyMakey Dinge um sie herum berühren - Gunook
Lassen Sie Blinde Dinge erkennen, indem Sie mit MakeyMakey Dinge um sie herum berühren: Einführung Ich und mein Sohn Mustafa dachten darüber nach, ein Werkzeug zu finden, um ihnen zu helfen, und in der Zeit, in der wir die MakeyMakey-Hardware verwenden
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Erkennung von Pflanzenkrankheiten mit Qualcomm Dragonboard 410c - Gunook
Erkennung von Pflanzenkrankheiten mit Qualcomm Dragonboard 410c: Hallo zusammen, wir nehmen am Wettbewerb Inventing the Future with Dragonboard 410c teil, der von Embarcados, Linaro und Baita gesponsert wird.AVoID Project (Agro View Disease) und Pos