
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02

Proces wykrywania i rozpoznawania chorych roślin zawsze był ręcznym i żmudnym procesem, wymagającym od człowieka wzrokowej inspekcji ciała rośliny, co często może prowadzić do błędnej diagnozy. Przewiduje się również, że gdy globalne wzorce pogodowe zaczynają się zmieniać z powodu zmian klimatycznych, choroby upraw prawdopodobnie staną się bardziej dotkliwe i rozpowszechnione. Dlatego ważne jest opracowanie systemów, które szybko i łatwo analizują uprawy i identyfikują konkretną chorobę w celu ograniczenia dalszych uszkodzeń upraw.
W tej instrukcji zapoznamy się z koncepcją uczenia maszynowego znaną jako „Uczenie transferowe”, aby klasyfikować obrazy chorych roślin ryżu. Tę samą metodę można wykorzystać do innych problemów z klasyfikacją obrazów.
Krok 1: Rodzaje chorób ryżu

Ryż jest jedną z najpopularniejszych podstawowych roślin spożywczych uprawianych głównie w Azji, Afryce i Ameryce Południowej, ale jest podatny na różne szkodniki i choroby. Cechy fizyczne, takie jak odbarwienie liści, można wykorzystać do identyfikacji kilku chorób, które mogą wpływać na uprawę ryżu. Na przykład w przypadku Brown-Spot, choroby grzybiczej, która atakuje osłonę ochronną liści, liście pokryte są kilkoma małymi owalnymi brązowymi plamkami z szarymi środkami, podczas gdy w przypadku Leaf-Blast liście są pokryte z większymi brązowymi zmianami. Podobnie liście dotknięte szkodnikiem Rice Hispa można rozpoznać po długich śladach śladów, które rozwijają się na powierzchni liścia.
Krok 2: W jaki sposób wcześniejsze metody wykrywały choroby?

Wcześniejsze metody automatycznej klasyfikacji obrazów chorych roślin, takie jak klasyfikatory oparte na regułach, takie jak stosowane w [1], opierają się na ustalonym zestawie reguł, aby podzielić liść na dotknięte i niezmienione regiony. Niektóre z reguł wyodrębniania cech obejmują obserwowanie zmiany średniej i odchylenia standardowego między kolorem dotkniętych i niezmienionych regionów. Reguły wyodrębniania cech kształtu obejmują indywidualne umieszczenie kilku prymitywnych kształtów na dotkniętym obszarze i zidentyfikowanie kształtu, który obejmuje maksymalny obszar dotkniętego obszaru. Po wyodrębnieniu cech z obrazów, stosuje się zestaw stałych reguł do klasyfikacji obrazów w zależności od choroby, która mogła mieć wpływ na roślinę. Główną wadą takiego klasyfikatora jest to, że będzie wymagał kilku stałych reguł dla każdej choroby, co z kolei może sprawić, że będzie on podatny na zaszumione dane. Powyższe obrazy pokazują, jak można użyć drzewa decyzyjnego opartego na regułach do podzielenia obrazu na dwa regiony.
1. Santanu Phadikar i wsp., „Klasyfikacja chorób ryżu przy użyciu technik selekcji cech i generowania reguł”, „Computers and Electronics in Agriculture”, tom. 90, styczeń 2013.
Krok 3: Transfer nauki

Technika klasyfikacji obrazów opisana w tym Instructables wykorzystuje podstawową strukturę CNN, która składa się z kilku warstw splotowych, warstwy puli i końcowej warstwy w pełni połączonej. Warstwy splotowe działają jak zestaw filtrów, które wydobywają cechy obrazu na wysokim poziomie. Max-pooling jest jedną z powszechnie stosowanych metod łączenia warstw w celu zmniejszenia przestrzennego rozmiaru wyodrębnionych cech, tym samym zmniejszając moc obliczeniową wymaganą do obliczenia wag dla każdej warstwy. Na koniec wyodrębnione dane przechodzą przez w pełni połączoną warstwę wraz z funkcją aktywacji softmax, która określa klasę obrazu.
Jednak uczenie niestandardowych CNN od podstaw może nie przynieść oczekiwanych rezultatów i może mieć bardzo długi czas uczenia.
Aby poznać cechy obrazów szkoleniowych, stosujemy metodę o nazwie Transfer Learning, w której „górne” warstwy wstępnie wytrenowanego modelu są usuwane i zastępowane warstwami, które mogą nauczyć się funkcji specyficznych dla zestawu danych szkoleniowych. Uczenie transferu skraca czas uczenia w porównaniu z modelami, które używają wag zainicjowanych losowo. Nasza metoda wykorzystuje sześć różnych wstępnie wytrenowanych modeli, a mianowicie AlexNet, GoogLeNet, ResNet-50, Incepcja-v3, ShuffleNet i MobileNet-v2.
Obraz przedstawia architekturę GoogLeNet, w której kolor niebieski jest używany do warstw splotowych, czerwony do warstw zbiorczych, żółty do warstw softmax, a zielony do warstw konkatowych. Możesz dowiedzieć się więcej o wewnętrznej pracy CNN tutaj.
Zbiór danych dotyczących choroby ryżu składa się z obrazów liści zarówno zdrowych, jak i chorych roślin ryżu. Obrazy można podzielić na cztery różne klasy, a mianowicie Brown-Spot, Rice Hispa, Leaf-Blast i Healthy. Zestaw danych składa się z 2092 różnych obrazów, a każda klasa zawiera 523 obrazy. Każdy obraz składa się z pojedynczego zdrowego lub chorego liścia umieszczonego na białym tle.
Dzielimy zbiór danych obrazu na zestawy obrazów treningowych, walidacyjnych i testowych. Aby zapobiec nadmiernemu dopasowaniu, powiększamy obrazy treningowe, skalując i przerzucając obrazy treningowe, aby zwiększyć całkowitą liczbę próbek treningowych.
Kod i zależności są open-source i można je znaleźć tutaj: Kod GitHub
W przypadku różnych aplikacji do klasyfikacji obrazów możemy po prostu zmienić zestaw danych obrazu treningowego.
Krok 4: Szkolenie modelu



W zależności od rozmiaru pamięci wymaganego przez każdy model, wstępnie wytrenowane modele są podzielone na większe i mniejsze modele. Mniejsze modele zużywają mniej niż 15 MB, dzięki czemu lepiej nadają się do zastosowań mobilnych.
Wśród większych modeli Inception-v3 miał najdłuższy czas treningu wynoszący około 140 minut, podczas gdy AlexNet miał najkrótszy czas treningu wynoszący około 18 minut. Wśród mniejszych modeli zorientowanych na urządzenia mobilne MobileNet-v2 miał najdłuższy czas uczenia wynoszący około 73 minuty, podczas gdy ShuffleNet miał najkrótszy czas uczenia wynoszący około 38 minut.
Krok 5: Testowanie modelu



Wśród większych modeli Inception-v3 miał najwyższą dokładność testowania wynoszącą około 72,1%, podczas gdy AlexNet miał najniższą dokładność testowania, wynoszącą około 48,5%. Wśród mniejszych modeli zorientowanych na urządzenia mobilne MobileNet-v2 miał najwyższą dokładność testowania 62,5%, podczas gdy ShuffleNet miał najniższą dokładność testowania 58,1%.
MobileNet-v2 radził sobie znacznie dobrze przy klasyfikowaniu obrazów Brown-Spot, Leaf-Blast i Healthy liści, jednocześnie dokonując kilku błędnych klasyfikacji dla Rice Hispa z dokładnością tylko 46,15%.
Incepcja-v3 wykazała podobne wyniki klasyfikacji jak MobileNet-v2.
Krok 6: Dodatkowe testy


Powyższy rysunek pokazuje, w jaki sposób model MobileNet-v2 błędnie klasyfikuje obraz liścia trawy na białym tle jako Rice Hispa.
Przetestowaliśmy również dokładność MobileNet-v2 na przyciętych zdjęciach Rice Hispa, gdzie białe tło zostało zminimalizowane tak, że liść zajmuje maksymalny obszar na obrazie. W przypadku przyciętych zdjęć Rice Hispa zaobserwowaliśmy dokładność około 80,81%, tj. W przypadku przyciętych zdjęć Rice Hispa zaobserwowaliśmy znaczny wzrost dokładności klasyfikacji w porównaniu z nieprzyciętymi próbkami testowymi. Dlatego proponujemy, aby rzeczywiste implementacje wykrywania chorób ryżu za pomocą splotowych sieci neuronowych musiały przycinać obrazy testowe w celu usunięcia szumu tła w celu poprawy dokładności.
Zalecana:
Jak zbudować system nawadniania roślin za pomocą Arduino: 7 kroków

Jak zbudować system nawadniania roślin za pomocą Arduino: W tym samouczku dowiemy się, jak stworzyć system nawadniania roślin za pomocą czujnika wilgoci, pompy wody i migania zielonej diody LED, jeśli wszystko jest w porządku, oraz wyświetlacza OLED i Visuino. Obejrzyj wideo
Programowanie zorientowane obiektowo: tworzenie obiektów Metoda/technika uczenia się/nauki przy użyciu dziurkacza kształtów: 5 kroków

Programowanie zorientowane obiektowo: tworzenie obiektów Metoda/technika uczenia się/nauki Korzystanie z dziurkacza kształtowego: Metoda uczenia się/nauczania dla studentów początkujących w programowaniu zorientowanym obiektowo. Jest to sposób na umożliwienie im wizualizacji i zobaczenia procesu tworzenia obiektów z klas.Części:1. EkTools 2-calowy duży stempel; najlepsze są solidne kształty.2. Kawałek papieru lub c
Prosty, ale potężny wykrywacz elektryczności statycznej, który może również wykrywać „duchy”: 10 kroków

Prosty, ale potężny wykrywacz elektryczności statycznej, który może również wykrywać „duchy”: Witam, to jest moja pierwsza instrukcja, więc proszę daj mi znać o błędach, które popełniłem w tej instrukcji. W tej instrukcji stworzę obwód, który może wykryć elektryczność statyczną. Jeden z jego twórców twierdził, że wykrył "
Programowanie obiektowe: tworzenie obiektów Metoda/technika uczenia się/nauki przy użyciu nożyczek: 5 kroków

Programowanie zorientowane obiektowo: tworzenie obiektów Metoda/technika uczenia się/nauki Używanie nożyczek: Metoda uczenia się/nauczania dla studentów początkujących w programowaniu zorientowanym obiektowo. Jest to sposób na umożliwienie im wizualizacji i zobaczenia procesu tworzenia obiektów z klas.Części: 1. Nożyczki (dowolny rodzaj). 2. Kawałek papieru lub karton. 3. Znacznik
Przewidywanie temperatury w pomieszczeniu za pomocą czujnika LM35 i uczenia maszynowego: 4 kroki

Przewidywanie temperatury w pomieszczeniu za pomocą czujnika LM35 i uczenia maszynowego: WprowadzenieDzisiaj koncentrujemy się na zbudowaniu projektu uczenia maszynowego, który przewiduje temperaturę za pomocą regresji wielomianowej.Uczenie maszynowe to aplikacja sztucznej inteligencji (AI), która zapewnia systemom możliwość automatycznego uczenia się