Obsah:

Jak detekovat choroby rostlin pomocí strojového učení: 6 kroků
Jak detekovat choroby rostlin pomocí strojového učení: 6 kroků

Video: Jak detekovat choroby rostlin pomocí strojového učení: 6 kroků

Video: Jak detekovat choroby rostlin pomocí strojového učení: 6 kroků
Video: Kotlár Security v práci 2024, Červenec
Anonim
Jak detekovat choroby rostlin pomocí strojového učení
Jak detekovat choroby rostlin pomocí strojového učení

Proces detekce a rozpoznávání nemocných rostlin byl vždy ruční a únavný proces, který vyžaduje, aby lidé vizuálně zkontrolovali tělo rostliny, což může často vést k nesprávné diagnóze. Rovněž se předpovídalo, že vzhledem k tomu, že se globální klimatické vzorce začínají v důsledku změny klimatu měnit, budou se choroby plodin pravděpodobně stávat závažnějšími a rozšířenějšími. Proto je důležité vyvinout systémy, které rychle a snadno analyzují plodiny a identifikují konkrétní onemocnění, aby se omezilo další poškození plodin.

V tomto Instructable prozkoumáme koncept strojového učení známý jako „Přenosové učení“, abychom klasifikovali obrazy nemocných rostlin rýže. Stejnou metodu lze znovu použít pro jakýkoli jiný problém s klasifikací obrázků.

Krok 1: Druhy nemocí z rýže

Druhy nemocí z rýže
Druhy nemocí z rýže

Rýže je jednou z nejoblíbenějších základních potravinářských plodin pěstovaných převážně v Asii, Africe a Jižní Americe, ale je náchylná k různým škůdcům a chorobám. Fyzikální charakteristiky, jako je odbarvení listů, lze použít k identifikaci několika chorob, které mohou mít vliv na plodinu rýže. Například v případě Brown-Spot, houbové choroby, která postihuje ochranný obal listů, jsou listy pokryty několika malými oválnými hnědými skvrnami se šedými středy, zatímco v případě Leaf-Blast jsou listy pokryty s většími hnědými lézemi. Podobně listy napadené škůdcem Rice Hispa lze identifikovat podle dlouhých stop, které se vyvíjejí na povrchu listu.

Krok 2: Jak dřívější metody detekovaly nemoci?

Jak dřívější metody detekovaly nemoci?
Jak dřívější metody detekovaly nemoci?

Dřívější metody automatické klasifikace obrazů nemocných rostlin, jako jsou klasifikátory založené na pravidlech, jak se používají v [1], spoléhají na pevný soubor pravidel pro segmentaci listu do postižených a neovlivněných oblastí. Některá pravidla pro extrakci funkcí zahrnují sledování změny průměru a standardní odchylky mezi barvou postižených a neovlivněných oblastí. Pravidla pro extrahování tvarových prvků zahrnují individuální umístění několika primitivních tvarů na horní část postižené oblasti a identifikaci tvaru, který pokrývá maximální plochu postižené oblasti. Jakmile jsou funkce z obrázků extrahovány, použije se sada pevných pravidel pro klasifikaci obrázků v závislosti na chorobě, která mohla postihnout rostlinu. Hlavní nevýhodou takového klasifikátoru je, že bude vyžadovat několik pevných pravidel pro každou nemoc, což by zase mohlo způsobit, že bude citlivý na hlučná data. Výše uvedené obrázky ukazují, jak lze strom rozhodování na základě pravidel použít k rozdělení obrazu na dvě oblasti.

1. Santanu Phadikar a kol., „Klasifikace nemocí rýže pomocí výběru funkcí a technik generování pravidel“, Počítače a elektronika v zemědělství, sv. 90, leden 2013.

Krok 3: Přenos učení

Přenosové učení
Přenosové učení

Technika klasifikace obrazu popsaná v tomto Instructables používá základní strukturu CNN, která se skládá z několika konvolučních vrstev, sdružovací vrstvy a konečné plně propojené vrstvy. Konvoluční vrstvy fungují jako sada filtrů, které extrahují vlastnosti obrazu na vysoké úrovni. Max-pooling je jednou z běžných metod používaných při sdružování vrstev ke snížení prostorové velikosti extrahovaných funkcí, čímž se snižuje výpočetní výkon potřebný k výpočtu hmotností pro každou vrstvu. Nakonec jsou extrahovaná data předána plně propojenou vrstvou spolu s aktivační funkcí softmax, která určuje třídu obrazu.

Ale školení vlastních CNN od nuly nemusí přinést požadované výsledky a může mít velmi dlouhou dobu školení.

Abychom se naučili funkce tréninkových obrázků, používáme metodu nazvanou Transfer Learning, kde jsou „vrchní“vrstvy předem natrénovaného modelu odstraněny a nahrazeny vrstvami, které dokážou naučit funkce, které jsou specifické pro tréninkový datový soubor. Přenosové učení zkracuje dobu tréninku ve srovnání s modely, které používají náhodně inicializované váhy. Naše metoda používá šest různých předem natrénovaných modelů, konkrétně AlexNet, googleNet, ResNet-50, Inception-v3, ShuffleNet a MobileNet-v2.

Obrázek ukazuje architekturu GoogNet, kde je modrá použita pro konvoluční vrstvy, červená pro sdružování vrstev, žlutá pro vrstvy softmax a zelená pro vrstvy concat. Zde se můžete dozvědět více o vnitřním fungování CNN.

Datový soubor chorob rýže obsahuje obrázky listů zdravých i nemocných rostlin rýže. Obrázky lze rozdělit do čtyř různých tříd, a to Brown-Spot, Rice Hispa, Leaf-Blast a Healthy. Datová sada obsahuje 2092 různých obrázků, přičemž každá třída obsahuje 523 obrázků. Každý obrázek se skládá z jednoho zdravého nebo nemocného listu umístěného na bílém pozadí.

Datovou sadu obrázků jsme rozdělili na trénovací, ověřovací a testovací sady obrázků. Abychom předešli přetáčení, rozšiřujeme tréninkové obrázky škálováním a překlápěním tréninkových obrázků, abychom zvýšili celkový počet tréninkových vzorků.

Kód a závislosti jsou open-source a najdete je zde: GitHub Code

U různých aplikací klasifikace obrázků můžeme jednoduše změnit datovou sadu tréninkových obrázků.

Krok 4: Trénování modelu

Výcvik modelu
Výcvik modelu
Výcvik modelu
Výcvik modelu
Výcvik modelu
Výcvik modelu

V závislosti na velikosti paměti požadované každým modelem jsou předem vycvičené modely rozděleny do větších a menších modelů. Menší modely spotřebovávají méně než 15 MB, a proto jsou vhodnější pro mobilní aplikace.

Mezi většími modely měl Inception-v3 nejdelší tréninkový čas přibližně 140 minut, zatímco AlexNet měl nejkratší tréninkový čas přibližně 18 minut. Mezi menšími mobilně orientovanými modely měl MobileNet-v2 nejdelší tréninkový čas přibližně 73 minut, zatímco ShuffleNet měl nejkratší tréninkový čas přibližně 38 minut.

Krok 5: Testování modelu

Testování modelu
Testování modelu
Testování modelu
Testování modelu
Testování modelu
Testování modelu

Mezi většími modely měl Inception-v3 nejvyšší přesnost testování přibližně 72,1%, zatímco AlexNet měl nejnižší přesnost testování přibližně 48,5%. Mezi menšími mobilně orientovanými modely měl MobileNet-v2 nejvyšší přesnost testování 62,5%, zatímco ShuffleNet měl nejnižší přesnost testování 58,1%.

MobileNet-v2 fungoval významně dobře při klasifikaci snímků listů Brown-Spot, Leaf-Blast a Healthy a současně dělal několik nesprávných klasifikací pro Rice Hispa s přesností pouze 46,15%.

Inception-v3 vykazoval podobné výsledky klasifikace jako MobileNet-v2.

Krok 6: Další testy

Další testy
Další testy
Další testy
Další testy

Obrázek výše ukazuje, jak model MobileNet-v2 nesprávně klasifikuje obrázek travního listu na bílém pozadí jako Rice Hispa.

Také jsme testovali přesnost MobileNet-v2 na oříznutých obrázcích Rice Hispa, přičemž bílé pozadí bylo minimalizováno tak, aby list zabíral maximální plochu v obraze. U oříznutých snímků Rice Hispa jsme pozorovali přesnost přibližně 80,81%, tj. U oříznutých snímků Rice Hispa jsme pozorovali významný nárůst přesnosti klasifikace oproti nezkráceným testovacím vzorkům. Proto navrhujeme, aby implementace detekce onemocnění rýže v reálném světě pomocí konvolučních neuronových sítí musely oříznout testovací obrázky, aby se odstranil šum pozadí, aby se zlepšila přesnost.

Doporučuje: