Innholdsfortegnelse:
- Trinn 1: Typer rissykdommer
- Trinn 2: Hvordan oppdaget tidligere metoder sykdommer?
- Trinn 3: Overføringslæring
- Trinn 4: Trening av modellen
- Trinn 5: Testing av modellen
- Trinn 6: Ytterligere tester
Video: Hvordan oppdage plantesykdommer ved hjelp av maskinlæring: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Prosessen med å oppdage og gjenkjenne syke planter har alltid vært en manuell og kjedelig prosess som krever at mennesker visuelt inspiserer plantekroppen, noe som ofte kan føre til feil diagnose. Det har også blitt spådd at ettersom globale værmønstre begynner å variere på grunn av klimaendringer, vil avlingssykdommer sannsynligvis bli mer alvorlige og utbredt. Derfor er det viktig å utvikle systemer som raskt og enkelt analyserer avlinger og identifiserer en bestemt sykdom for å begrense ytterligere skade på avlingen.
I denne instruksen vil vi utforske et maskinlæringskonsept kjent som "Transfer Learning" for å klassifisere bilder av syke risplanter. Den samme metoden kan brukes på nytt for ethvert annet problem med bildeklassifisering.
Trinn 1: Typer rissykdommer
Ris er en av de mest populære matavlingene som hovedsakelig dyrkes i Asia, Afrika og Sør -Amerika, men er utsatt for en rekke skadedyr og sykdommer. Fysiske egenskaper som avfarging av blader kan brukes til å identifisere flere sykdommer som kan påvirke risavlingen. For eksempel, når det gjelder Brown-Spot, en soppsykdom som påvirker bladets beskyttende kappe, er bladene dekket med flere små ovale brune flekker med grå sentre, mens bladene er dekket av Leaf-Blast med større brune lesjoner. På samme måte kan bladene som er påvirket av Rice Hispa -skadedyret identifiseres med de lange sti -merkene som utvikler seg på bladets overflate.
Trinn 2: Hvordan oppdaget tidligere metoder sykdommer?
Tidligere metoder for automatisk klassifisering av syke plantebilder, for eksempel regelbaserte klassifisere som brukt i [1], er avhengige av et fast sett med regler for å segmentere bladet i berørte og upåvirkede områder. Noen av reglene for å trekke ut funksjoner innebærer å observere endringen i gjennomsnittet og standardavviket mellom fargen på de berørte og upåvirkede områdene. Regler for å trekke ut formfunksjoner innebærer å individuelt plassere flere primitive former på toppen av det berørte området og identifisere formen som dekker det maksimale området i det berørte området. Når funksjonene er trukket ut fra bildene, brukes et sett med faste regler for å klassifisere bildene avhengig av sykdommen som kan ha påvirket planten. Den største ulempen med en slik klassifikator er at den vil kreve flere faste regler for hver sykdom som igjen kan gjøre den utsatt for støyende data. Bildene ovenfor viser hvordan et regelbasert beslutningstre kan brukes til å segmentere bildet i to regioner.
1. Santanu Phadikar et al., "Risikoklassifisering ved bruk av funksjonsvalg og teknikker for generering av regler", Computers and Electronics in Agriculture, vol. 90, januar 2013.
Trinn 3: Overføringslæring
Bildeklassifiseringsteknikken beskrevet i denne instruksen bruker grunnstrukturen til et CNN som består av flere konvolusjonelle lag, et sammenslåingslag og et siste fullt tilkoblet lag. De konvolusjonelle lagene fungerer som et sett med filtre som trekker ut funksjonene på bildet på høyt nivå. Max-pooling er en av de vanlige metodene som brukes i pooling-lag for å redusere den romlige størrelsen på de ekstraherte funksjonene og dermed redusere beregningseffekten som kreves for å beregne vektene for hvert lag. Til slutt blir de ekstraherte dataene passert gjennom et fullt tilkoblet lag sammen med en softmax -aktiveringsfunksjon som bestemmer klassen av bildet.
Men trening av tilpassede CNN -er fra bunnen av gir kanskje ikke de ønskede resultatene og kan ha en veldig lang treningstid.
For å lære egenskapene til treningsbildene bruker vi en metode som kalles Transfer Learning hvor de ‘øverste’ lagene i en forhåndsutdannet modell blir fjernet og erstattet med lag som kan lære funksjonene som er spesifikke for treningsdatasettet. Overføringslæring reduserer treningstiden sammenlignet med modeller som bruker tilfeldig initialiserte vekter. Vår metode bruker seks forskjellige forutdannede modeller, nemlig AlexNet, GoogLeNet, ResNet-50, Inception-v3, ShuffleNet og MobileNet-v2.
Bildet viser GoogLeNet -arkitekturen der blå brukes for konvolusjonslag, rødt for å samle lag, gul for softmax -lag og grønn for konkatlag. Du kan lære mer om det indre arbeidet til et CNN her.
Rissykdomsdatasettet består av bilder av blader av både friske og syke risplanter. Bildene kan kategoriseres i fire forskjellige klasser, nemlig Brown-Spot, Rice Hispa, Leaf-Blast og Healthy. Datasettet består av 2092 forskjellige bilder med hver klasse som inneholder 523 bilder. Hvert bilde består av et enkelt sunt eller sykt blad plassert mot en hvit bakgrunn.
Vi deler bildedatasettet inn i opplæring, validering og testing av bildesett. For å forhindre overmontering øker vi treningsbildene ved å skalere og snu treningsbildene for å øke det totale antallet treningsprøver.
Koden og avhengighetene er åpen kildekode og finnes her: GitHub-kode
For forskjellige bildeklassifiseringsapplikasjoner kan vi ganske enkelt endre treningsbildedatasettet.
Trinn 4: Trening av modellen
Avhengig av minnestørrelsen som kreves av hver modell, er de ferdigutdannede modellene kategorisert i større og mindre modeller. De mindre modellene bruker mindre enn 15 MB og er derfor bedre egnet for mobile applikasjoner.
Blant de større modellene hadde Inception-v3 den lengste treningstiden på omtrent 140 minutter, mens AlexNet hadde den korteste treningstiden på omtrent 18 minutter. Blant de mindre mobilorienterte modellene hadde MobileNet-v2 den lengste treningstiden på omtrent 73 minutter, mens ShuffleNet hadde den korteste treningstiden på omtrent 38 minutter.
Trinn 5: Testing av modellen
Blant de større modellene hadde Inception-v3 den høyeste testnøyaktigheten på omtrent 72,1%, mens AlexNet hadde den laveste testnøyaktigheten på omtrent 48,5%. Blant de mindre mobilorienterte modellene hadde MobileNet-v2 den høyeste testnøyaktigheten på 62,5%, mens ShuffleNet hadde den laveste testnøyaktigheten på 58,1%.
MobileNet-v2 fungerte betydelig bra ved klassifisering av bilder av Brown-Spot, Leaf-Blast og Healthy leaves, mens han gjorde flere feilklassifiseringer for Rice Hispa med en nøyaktighet på bare 46,15%.
Inception-v3 viste lignende klassifiseringsresultater som MobileNet-v2.
Trinn 6: Ytterligere tester
Bildet ovenfor viser hvordan MobileNet-v2-modellen feilklassifiserer et bilde av et gressblad mot en hvit bakgrunn som Rice Hispa.
Vi testet også nøyaktigheten til MobileNet-v2 på beskårne bilder av Rice Hispa der den hvite bakgrunnen ble minimert slik at bladet opptar et maksimalt område i bildet. For beskårne bilder av Rice Hispa observerte vi en nøyaktighet på omtrent 80,81%. Derfor foreslår vi at virkelige implementeringer av påvisning av rissykdom ved hjelp av konvolusjonelle nevrale nettverk må beskjære testbildene for å fjerne bakgrunnsstøy for å forbedre nøyaktigheten.
Anbefalt:
DIY -- Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: 6 trinn
DIY || Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: Mens du lager en edderkopprobot, kan du lære så mange ting om robotikk. Som å lage roboter er både underholdende og utfordrende. I denne videoen skal vi vise deg hvordan du lager en Spider -robot, som vi kan bruke ved hjelp av smarttelefonen vår (Androi
Hvordan lage en drone ved hjelp av Arduino UNO - Lag en quadcopter ved hjelp av mikrokontroller: 8 trinn (med bilder)
Hvordan lage en drone ved hjelp av Arduino UNO | Lag en Quadcopter ved hjelp av mikrokontroller: Introduksjon Besøk min Youtube -kanal En Drone er en veldig dyr gadget (produkt) å kjøpe. I dette innlegget skal jeg diskutere hvordan jeg får det billig? Og hvordan kan du lage din egen slik til en billig pris … Vel, i India er alle materialer (motorer, ESCer
Prediksjon av romtemperatur via LM35 -sensor og maskinlæring: 4 trinn
Prediksjon av romtemperatur via LM35 sensor og maskinlæring: Introduksjon I dag er vi fokusert på å bygge et maskinlæringsprosjekt som forutsier temperatur via polynom regresjon. Maskinlæring er en applikasjon av kunstig intelligens (AI) som gir systemer muligheten til automatisk å lære
Metoder for å oppdage vannstand Arduino ved hjelp av ultralydssensor og Funduino vannsensor: 4 trinn
Metoder for å oppdage vannstand Arduino ved hjelp av ultralydssensor og Funduino vannsensor: I dette prosjektet vil jeg vise deg hvordan du lager en billig vanndetektor ved å bruke to metoder: 1. Ultralydsensor (HC-SR04) .2. Funduino vannsensor
Oppdage bevegelse ved hjelp av Raspberry Pi: 4 trinn
Oppdage bevegelse ved hjelp av Raspberry Pi: I denne instruksen skal vi lære hvordan vi kan bruke PIR (Passive InfraRed) sensor med Raspberry Pi, for å bygge en enkel bevegelsesdetektor. Den brukes til å føle bevegelse av mennesker, dyr eller andre gjenstander. De brukes ofte i burg