Innehållsförteckning:

Hur man upptäcker växtsjukdomar med maskininlärning: 6 steg
Hur man upptäcker växtsjukdomar med maskininlärning: 6 steg

Video: Hur man upptäcker växtsjukdomar med maskininlärning: 6 steg

Video: Hur man upptäcker växtsjukdomar med maskininlärning: 6 steg
Video: Hur blir man av med löss, springmaskar och andra parasiter? - Malou Efter tio (TV4) 2024, Juli
Anonim
Hur man upptäcker växtsjukdomar med hjälp av maskininlärning
Hur man upptäcker växtsjukdomar med hjälp av maskininlärning

Processen att upptäcka och känna igen sjuka växter har alltid varit en manuell och tråkig process som kräver att människor visuellt inspekterar växtkroppen vilket ofta kan leda till en felaktig diagnos. Det har också förutspåtts att när globala vädermönster börjar variera på grund av klimatförändringar kommer grödsjukdomar sannolikt att bli allvarligare och utbredda. Därför är det viktigt att utveckla system som snabbt och enkelt analyserar grödor och identifierar en viss sjukdom för att begränsa ytterligare växtskador.

I denna instruktionsbok kommer vi att utforska ett maskininlärningskoncept som kallas "Transfer Learning" för att klassificera bilder av sjuka risväxter. Samma metod kan återanvändas för alla andra bildklassificeringsproblem.

Steg 1: Typer av rissjukdomar

Typer av rissjukdomar
Typer av rissjukdomar

Ris är en av de mest populära livsmedelsgrödorna som odlas främst i Asien, Afrika och Sydamerika men är mottaglig för en mängd olika skadedjur och sjukdomar. Fysiska egenskaper som avfärgning av löv kan användas för att identifiera flera sjukdomar som kan påverka risgrödan. Till exempel, när det gäller Brown-Spot, en svampsjukdom som påverkar bladets skyddande hölje, är bladen täckta med flera små ovala bruna fläckar med grå centra medan bladen är täckta för Leaf-Blast med större bruna skador. På samma sätt kan bladen som påverkas av Rice Hispa -skadedjuret identifieras av de långa spårmärken som utvecklas på bladets yta.

Steg 2: Hur upptäckte tidigare metoder sjukdomar?

Hur upptäckte tidigare metoder sjukdomar?
Hur upptäckte tidigare metoder sjukdomar?

Tidigare metoder för automatisk klassificering av sjuka växtbilder, till exempel regelbaserade klassificerare som används i [1], bygger på en fast uppsättning regler för att segmentera bladet i drabbade och opåverkade regioner. Några av reglerna för att extrahera funktioner innebär att man observerar förändringen av medelvärdet och standardavvikelsen mellan färgen på de drabbade och opåverkade regionerna. Regler för att extrahera formegenskaper innebär att individuellt placera flera primitiva former ovanpå det drabbade området och identifiera formen som täcker den maximala ytan av det drabbade området. När funktionerna väl har extraherats från bilderna används en uppsättning fasta regler för att klassificera bilderna beroende på sjukdomen som kan ha påverkat växten. Den största nackdelen med en sådan klassificerare är att den kommer att kräva flera fasta regler för varje sjukdom som i sin tur kan göra den mottaglig för bullriga data. Bilderna ovan visar hur ett regelbaserat beslutsträd kan användas för att segmentera bilden i två regioner.

1. Santanu Phadikar et al.,”Rissjukdomsklassificering med hjälp av funktionsval och teknik för generering av regler”, Computers and Electronics in Agriculture, vol. 90, januari 2013.

Steg 3: Överför inlärning

Överföringsinlärning
Överföringsinlärning

Bildklassificeringstekniken som beskrivs i denna instruktion använder den grundläggande strukturen för ett CNN som består av flera böjningsskikt, ett sammanslagningsskikt och ett sista fullständigt anslutet lager. Konvolutionslagren fungerar som en uppsättning filter som extraherar bildens högnivåegenskaper. Max-poolning är en av de vanliga metoderna som används vid poolning av lager för att minska den rumsliga storleken på de extraherade funktionerna och därigenom minska den beräkningseffekt som krävs för att beräkna vikterna för varje lager. Slutligen överförs den extraherade datan genom ett fullt anslutet lager tillsammans med en softmax -aktiveringsfunktion som bestämmer bildens klass.

Men att träna anpassade CNN från början ger kanske inte önskat resultat och kan ha en mycket lång träningstid.

För att lära sig funktionerna i träningsbilderna använder vi en metod som kallas Transfer Learning där de "översta" lagren i en förutbildad modell tas bort och ersätts med lager som kan lära sig de funktioner som är specifika för utbildningsdatauppsättningen. Transferlärning minskar träningstiden jämfört med modeller som använder slumpmässigt initierade vikter. Vår metod använder sex olika förutbildade modeller, nämligen AlexNet, GoogLeNet, ResNet-50, Inception-v3, ShuffleNet och MobileNet-v2.

Bilden visar GoogLeNet -arkitekturen där blå används för konvolutionslager, rött för sammanfogning av lager, gult för softmax -lager och grönt för konkatlager. Du kan lära dig mer om det inre arbetet med ett CNN här.

Rissjukdomsdatauppsättningen består av bilder av blad av både friska och sjuka risväxter. Bilderna kan kategoriseras i fyra olika klasser, nämligen Brown-Spot, Rice Hispa, Leaf-Blast och Healthy. Datauppsättningen består av 2092 olika bilder där varje klass innehåller 523 bilder. Varje bild består av ett enda friskt eller sjukt blad placerat mot en vit bakgrund.

Vi delar upp bilduppsättningen i bilduppsättningar för utbildning, validering och testning. För att förhindra övermontering förstärker vi träningsbilderna genom att skala och vända träningsbilderna för att öka det totala antalet träningsprover.

Koden och beroenden är öppen källkod och finns här: GitHub-kod

För olika bildklassificeringsapplikationer kan vi helt enkelt ändra utbildningsbilddatasetet.

Steg 4: Träna modellen

Träna modellen
Träna modellen
Träna modellen
Träna modellen
Träna modellen
Träna modellen

Beroende på minnesstorleken som krävs för varje modell kategoriseras de förutbildade modellerna i större och mindre modeller. De mindre modellerna förbrukar mindre än 15 MB och är därför bättre lämpade för mobila applikationer.

Bland de större modellerna hade Inception-v3 den längsta träningstiden på cirka 140 minuter medan AlexNet hade den kortaste träningstiden på cirka 18 minuter. Bland de mindre mobilorienterade modellerna hade MobileNet-v2 den längsta träningstiden på cirka 73 minuter medan ShuffleNet hade den kortaste träningstiden på cirka 38 minuter.

Steg 5: Testa modellen

Testar modellen
Testar modellen
Testar modellen
Testar modellen
Testar modellen
Testar modellen

Bland de större modellerna hade Inception-v3 den högsta testnoggrannheten på cirka 72,1% medan AlexNet hade den lägsta testnoggrannheten på cirka 48,5%. Bland de mindre mobilorienterade modellerna hade MobileNet-v2 den högsta testnoggrannheten på 62,5% medan ShuffleNet hade den lägsta testnoggrannheten på 58,1%.

MobileNet-v2 presterade avsevärt bra när man klassificerade bilder av Brown-Spot, Leaf-Blast och Healthy leaves samtidigt som man gjorde flera felklassificeringar för Rice Hispa med en noggrannhet på endast 46,15%.

Inception-v3 visade liknande klassificeringsresultat som MobileNet-v2.

Steg 6: Ytterligare tester

Ytterligare tester
Ytterligare tester
Ytterligare tester
Ytterligare tester

Bilden ovan visar hur MobileNet-v2-modellen felklassificerar en bild av ett gräsblad mot en vit bakgrund som Rice Hispa.

Vi testade också noggrannheten i MobileNet-v2 på beskurna bilder av Rice Hispa där den vita bakgrunden minimerades så att bladet upptar ett maximalt område inom bilden. För beskurna bilder av Rice Hispa observerade vi en noggrannhet på cirka 80,81%, dvs för beskurna bilder av Rice Hispa observerade vi en signifikant ökning av klassificeringsnoggrannheten jämfört med oklippta testprover. Därför föreslår vi att verkliga implementeringar av upptäckt av rissjukdomar med hjälp av konvolutionella neurala nätverk måste beskära testbilderna för att ta bort bakgrundsbrus för att förbättra noggrannheten.

Rekommenderad: