Ako odhaliť choroby rastlín pomocou strojového učenia: 6 krokov
Ako odhaliť choroby rastlín pomocou strojového učenia: 6 krokov
Anonim
Ako odhaliť choroby rastlín pomocou strojového učenia
Ako odhaliť choroby rastlín pomocou strojového učenia

Proces detekcie a rozpoznávania chorých rastlín bol vždy manuálnym a únavným procesom, ktorý vyžaduje, aby ľudia vizuálne skontrolovali telo rastliny, čo môže často viesť k nesprávnej diagnóze. Tiež sa predpovedalo, že vzhľadom na to, že sa globálne vzorce počasia začínajú meniť v dôsledku zmeny klímy, choroby plodín budú pravdepodobne závažnejšie a rozšírenejšie. Preto je dôležité vyvinúť systémy, ktoré rýchlo a ľahko analyzujú plodiny a identifikujú konkrétnu chorobu, aby sa obmedzilo ďalšie poškodenie plodín.

V tomto návode preskúmame koncept strojového učenia známy ako „prenosové učenie“, aby sme klasifikovali obrázky chorých rastlín ryže. Rovnakú metódu je možné použiť aj pri iných problémoch s klasifikáciou obrázkov.

Krok 1: Druhy chorôb ryže

Druhy chorôb ryže
Druhy chorôb ryže

Ryža je jednou z najobľúbenejších základných potravinárskych plodín pestovaných predovšetkým v Ázii, Afrike a Južnej Amerike, je však náchylná na rôzne škodce a choroby. Fyzikálne vlastnosti, ako napríklad odfarbenie listov, možno použiť na identifikáciu niekoľkých chorôb, ktoré môžu mať vplyv na úrodu ryže. Napríklad v prípade hnedej škvrny, hubovej choroby, ktorá postihuje ochranný obal listov, sú listy pokryté niekoľkými malými oválnymi hnedými škvrnami so sivými stredmi, zatiaľ čo v prípade Leaf-Blast sú listy zakryté. s väčšími hnedými léziami. Podobne listy napadnuté škodcom Rice Hispa možno identifikovať podľa dlhých stopových značiek, ktoré sa vyvíjajú na povrchu listu.

Krok 2: Ako predchádzajúce metódy zisťovali choroby?

Ako predchádzajúce metódy zisťovali choroby?
Ako predchádzajúce metódy zisťovali choroby?

Predchádzajúce metódy automatickej klasifikácie zobrazení chorých rastlín, ako sú klasifikátory založené na pravidlách, ako sa používajú v [1], sa spoliehajú na pevný súbor pravidiel na segmentáciu listu do postihnutých a neovplyvnených oblastí. Niektoré z pravidiel na extrakciu funkcií zahŕňajú sledovanie zmeny priemeru a štandardnej odchýlky medzi farbou postihnutých a neovplyvnených oblastí. Pravidlá na extrahovanie tvarových vlastností zahŕňajú individuálne umiestnenie niekoľkých primitívnych tvarov na vrch postihnutej oblasti a identifikáciu tvaru, ktorý pokrýva maximálnu plochu postihnutej oblasti. Hneď ako sa z obrázkov extrahujú funkcie, na klasifikáciu obrázkov sa použije súbor pevných pravidiel v závislosti od choroby, ktorá mohla rastlinu postihnúť. Hlavnou nevýhodou takéhoto klasifikátora je, že bude vyžadovať niekoľko pevných pravidiel pre každú chorobu, čo by zase mohlo spôsobiť, že bude citlivý na hlučné údaje. Vyššie uvedené obrázky ukazujú, ako je možné použiť strom rozhodovania založený na pravidlách na segmentáciu obrázku do dvoch oblastí.

1. Santanu Phadikar a kol., „Klasifikácia chorôb ryže pomocou výberu funkcií a techník generovania pravidiel“, Počítače a elektronika v poľnohospodárstve, roč. 90, január 2013.

Krok 3: Prenosové učenie

Prenosové učenie
Prenosové učenie

Technika klasifikácie obrazov opísaná v tomto návode na použitie používa základnú štruktúru CNN, ktorá pozostáva z niekoľkých konvolučných vrstiev, združovacej vrstvy a konečnej plne prepojenej vrstvy. Konvolučné vrstvy fungujú ako sada filtrov, ktoré extrahujú vlastnosti obrazu na vysokej úrovni. Max-pooling je jednou z bežných metód používaných pri združovaní vrstiev na zníženie priestorovej veľkosti extrahovaných znakov, čím sa zníži výpočtový výkon potrebný na výpočet hmotnosti pre každú vrstvu. Nakoniec sú extrahované údaje vedené cez plne spojenú vrstvu spolu s aktivačnou funkciou softmax, ktorá určuje triedu obrazu.

Tréning vlastných CNN od nuly však nemusí priniesť požadované výsledky a môže trvať veľmi dlho.

Aby sme sa naučili funkcie tréningových obrázkov, používame metódu nazývanú Transfer Learning, v ktorej sú „vrchné“vrstvy vopred natrénovaného modelu odstránené a nahradené vrstvami, ktoré môžu naučiť funkcie, ktoré sú špecifické pre súbor tréningových údajov. Prenosové učenie skracuje tréningový čas v porovnaní s modelmi, ktoré používajú náhodne inicializované váhy. Naša metóda používa šesť rôznych vopred vycvičených modelov, konkrétne AlexNet, googleNet, ResNet-50, Inception-v3, ShuffleNet a MobileNet-v2.

Na obrázku je architektúra GoogNet, kde je modrá použitá pre konvolučné vrstvy, červená pre združovacie vrstvy, žltá pre vrstvy softmax a zelená pre concatové vrstvy. Tu sa môžete dozvedieť viac o vnútornom fungovaní CNN.

Súbor údajov o chorobe ryže obsahuje obrázky listov zdravých a chorých rastlín ryže. Obrázky možno rozdeliť do štyroch rôznych tried, a to Brown-Spot, Rice Hispa, Leaf-Blast a Healthy. Množina údajov obsahuje 2092 rôznych obrázkov, pričom každá trieda obsahuje 523 obrázkov. Každý obrázok pozostáva z jedného zdravého alebo chorého listu umiestneného na bielom pozadí.

Množinu obrazových údajov sme rozdelili na tréningové, overovacie a testovacie sady obrázkov. Aby sme zabránili preplneniu, vylepšujeme tréningové obrázky škálovaním a preklápaním tréningových obrázkov, aby sme zvýšili celkový počet tréningových vzoriek.

Kód a závislosti sú open-source a nájdete ich tu: GitHub Code

V prípade rôznych aplikácií klasifikácie obrázkov môžeme jednoducho zmeniť množinu údajov tréningového obrazu.

Krok 4: Tréning modelu

Tréning modelu
Tréning modelu
Tréning modelu
Tréning modelu
Tréning modelu
Tréning modelu

V závislosti od veľkosti pamäte požadovanej každým modelom sú vopred vyškolené modely rozdelené do väčších a menších modelov. Menšie modely zaberajú menej ako 15 MB, a preto sú vhodnejšie pre mobilné aplikácie.

Spomedzi väčších modelov mal Inception-v3 najdlhší tréningový čas približne 140 minút, zatiaľ čo AlexNet mal najkratší tréningový čas približne 18 minút. Medzi menšími modelmi orientovanými na mobilné zariadenia mal MobileNet-v2 najdlhší tréningový čas približne 73 minút, zatiaľ čo ShuffleNet mal najkratší tréningový čas približne 38 minút.

Krok 5: Testovanie modelu

Testovanie modelu
Testovanie modelu
Testovanie modelu
Testovanie modelu
Testovanie modelu
Testovanie modelu

Spomedzi väčších modelov mal Inception-v3 najvyššiu presnosť testovania približne 72,1%, zatiaľ čo AlexNet mal najnižšiu presnosť testovania približne 48,5%. Medzi menšími modelmi orientovanými na mobilné telefóny mal MobileNet-v2 najvyššiu presnosť testovania 62,5%, zatiaľ čo ShuffleNet mal najnižšiu presnosť testovania 58,1%.

MobileNet-v2 dosahoval výrazne dobré výsledky pri klasifikácii snímok listov Brown-Spot, Leaf-Blast a Healthy a súčasne robil niekoľko nesprávnych klasifikácií pre Rice Hispa s presnosťou iba 46,15%.

Inception-v3 vykazoval podobné výsledky klasifikácie ako MobileNet-v2.

Krok 6: Ďalšie testy

Dodatočné testy
Dodatočné testy
Dodatočné testy
Dodatočné testy

Vyššie uvedený obrázok ukazuje, ako model MobileNet-v2 nesprávne klasifikuje obrázok trávneho listu na bielom pozadí ako Rice Hispa.

Tiež sme testovali presnosť MobileNet-v2 na orezaných obrázkoch Rice Hispa, kde bolo biele pozadie minimalizované tak, aby list zaberal maximálnu plochu na obrázku. Pri orezaných obrázkoch Rice Hispa sme pozorovali presnosť približne 80,81%, tj. Pri orezaných obrázkoch Rice Hispa sme pozorovali významné zvýšenie presnosti klasifikácie oproti orezaným testovacím vzorkám. Preto navrhujeme, aby implementácie detekcie chorôb ryže v reálnom svete pomocou konvolučných neurónových sietí museli orezať testovacie obrázky, aby sa odstránil šum pozadia, aby sa zlepšila presnosť.