Indholdsfortegnelse:
- Trin 1: Typer af rissygdomme
- Trin 2: Hvordan opdagede tidligere metoder sygdomme?
- Trin 3: Overfør læring
- Trin 4: Træning af modellen
- Trin 5: Test af modellen
- Trin 6: Yderligere tests
Video: Sådan opdages plantesygdomme ved hjælp af maskinlæring: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Processen med at opdage og genkende syge planter har altid været en manuel og kedelig proces, der kræver, at mennesker visuelt inspicerer plantens krop, hvilket ofte kan føre til en forkert diagnose. Det er også blevet forudsagt, at efterhånden som globale vejrmønstre begynder at variere på grund af klimaændringer, vil afgrødesygdomme sandsynligvis blive mere alvorlige og udbredte. Derfor er det vigtigt at udvikle systemer, der hurtigt og let analyserer afgrøder og identificerer en bestemt sygdom for at begrænse yderligere afgrødeskader.
I denne Instructable vil vi udforske et maskinlæringskoncept kendt som "Transfer Learning" for at klassificere billeder af syge risplanter. Den samme metode kan genanvendes for ethvert andet problem med billedklassificering.
Trin 1: Typer af rissygdomme
Ris er en af de mest populære fødevarer, der hovedsageligt dyrkes i Asien, Afrika og Sydamerika, men er modtagelig for en række skadedyr og sygdomme. Fysiske egenskaber såsom misfarvning af blade kan bruges til at identificere flere sygdomme, der kan påvirke risafgrøden. For eksempel i tilfælde af Brown-Spot, en svampesygdom, der påvirker bladernes beskyttende kappe, er bladene dækket med flere små ovale brune pletter med grå centre, mens bladene i dækning af Leaf-Blast er dækket med større brune læsioner. På samme måde kan bladene, der er påvirket af Rice Hispa -skadedyret, identificeres ved de lange spormærker, der udvikler sig på bladets overflade.
Trin 2: Hvordan opdagede tidligere metoder sygdomme?
Tidligere metoder til automatisk klassificering af syge plantebilleder såsom regelbaserede klassifikatorer som brugt i [1] er afhængige af et fast sæt regler for at segmentere bladet i berørte og upåvirkede områder. Nogle af reglerne for at udtrække funktioner indebærer at observere ændringen i middelværdien og standardafvigelsen mellem farven på de berørte og upåvirkede regioner. Regler for at udtrække formfunktioner involverer individuelt at placere flere primitive former oven på det berørte område og identificere den form, der dækker det maksimale område af det berørte område. Når funktionerne er ekstraheret fra billederne, bruges et sæt faste regler til at klassificere billederne afhængigt af den sygdom, der kan have påvirket planten. Den største ulempe ved en sådan klassifikator er, at den vil kræve flere faste regler for hver sygdom, hvilket igen kan gøre den modtagelig for støjende data. Ovenstående billeder viser, hvordan et regelbaseret beslutningstræ kan bruges til at segmentere billedet i to regioner.
1. Santanu Phadikar et al., "Klassificering af ris sygdomme ved hjælp af funktionsvalg og teknikker til generering af regler", Computers and Electronics in Agriculture, vol. 90, januar 2013.
Trin 3: Overfør læring
Billedklassificeringsteknikken beskrevet i denne instruktion anvender grundstrukturen i et CNN, der består af flere konvolutionslag, et poollag og et sidste fuldt forbundet lag. De konvolutionslag fungerer som et sæt filtre, der udtrækker billedets funktioner på højt niveau. Max-pooling er en af de almindelige metoder, der bruges i poolning af lag til at reducere den rumlige størrelse af de ekstraherede funktioner og derved reducere den beregningseffekt, der er nødvendig for at beregne vægte for hvert lag. Endelig sendes de ekstraherede data gennem et fuldt forbundet lag sammen med en softmax -aktiveringsfunktion, der bestemmer billedets klasse.
Men træning af brugerdefinerede CNN'er fra bunden giver muligvis ikke de ønskede resultater og kan have en meget lang træningstid.
For at lære funktionerne i træningsbillederne bruger vi en metode kaldet Transfer Learning, hvor de 'øverste' lag i en forududdannet model fjernes og erstattes med lag, der kan lære de funktioner, der er specifikke for træningsdatasættet. Transferlæring reducerer træningstiden sammenlignet med modeller, der bruger tilfældigt initialiserede vægte. Vores metode bruger seks forskellige foruddannede modeller, nemlig AlexNet, GoogLeNet, ResNet-50, Inception-v3, ShuffleNet og MobileNet-v2.
Billedet viser GoogLeNet -arkitekturen, hvor blå bruges til konvolutionslag, rød til sammenlægning af lag, gul til softmax -lag og grøn til konkatlag. Du kan lære mere om det indre arbejde i et CNN her.
Rissygdommens datasæt består af billeder af blade af både sunde og syge risplanter. Billederne kan kategoriseres i fire forskellige klasser, nemlig Brown-Spot, Rice Hispa, Leaf-Blast og Healthy. Datasættet består af 2092 forskellige billeder, hvor hver klasse indeholder 523 billeder. Hvert billede består af et enkelt sundt eller sygt blad placeret mod en hvid baggrund.
Vi opdeler billedsættet i træning, validering og test af billedsæt. For at forhindre overmontering øger vi træningsbillederne ved at skalere og vende træningsbillederne for at øge det samlede antal træningsprøver.
Koden og afhængighederne er open source og kan findes her: GitHub Code
For forskellige billedklassificeringsapplikationer kan vi ganske enkelt ændre træningsbilleddatasættet.
Trin 4: Træning af modellen
Afhængigt af den hukommelsesstørrelse, der kræves af hver model, er de foruddannede modeller kategoriseret i større og mindre modeller. De mindre modeller bruger mindre end 15 MB og er derfor bedre egnet til mobile applikationer.
Blandt de større modeller havde Inception-v3 den længste træningstid på cirka 140 minutter, mens AlexNet havde den korteste træningstid på cirka 18 minutter. Blandt de mindre mobilorienterede modeller havde MobileNet-v2 den længste træningstid på cirka 73 minutter, mens ShuffleNet havde den korteste træningstid på cirka 38 minutter.
Trin 5: Test af modellen
Blandt de større modeller havde Inception-v3 den højeste testnøjagtighed på cirka 72,1%, mens AlexNet havde den laveste testnøjagtighed på cirka 48,5%. Blandt de mindre mobilorienterede modeller havde MobileNet-v2 den højeste testnøjagtighed på 62,5%, mens ShuffleNet havde den laveste testnøjagtighed på 58,1%.
MobileNet-v2 klarede sig markant godt ved klassificering af billeder af Brown-Spot, Leaf-Blast og Sunde blade, mens der blev foretaget flere fejlklassificeringer for Rice Hispa med en nøjagtighed på kun 46,15%.
Inception-v3 viste lignende klassifikationsresultater som MobileNet-v2.
Trin 6: Yderligere tests
Billedet ovenfor viser, hvordan MobileNet-v2-modellen forkert klassificerer et billede af et græsblad mod en hvid baggrund som Rice Hispa.
Vi testede også nøjagtigheden af MobileNet-v2 på beskårne billeder af Rice Hispa, hvor den hvide baggrund blev minimeret, så bladet fylder et maksimalt område i billedet. For beskårne billeder af Rice Hispa observerede vi en nøjagtighed på cirka 80,81%, dvs. for beskårede billeder af Rice Hispa observerede vi en signifikant stigning i klassificeringsnøjagtigheden i forhold til ikke -beskårne testprøver. Derfor foreslår vi, at virkelige implementeringer af påvisning af rissygdomme ved hjælp af konvolutive neurale netværk skal beskære testbillederne for at fjerne baggrundsstøj for at forbedre nøjagtigheden.
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Sender sms, hvis der opdages røg (Arduino+GSM SIM900A: 5 trin
Sender sms, hvis der opdages røg (Arduino+GSM SIM900A: Hej alle! I min første instruks vil jeg lave en gasalarm, der sender besked til brugeren, hvis der opdages forurening. Dette vil være en simpel prototype ved hjælp af Arduino, GSM -modul og elektrokemisk røgsensor. Fremover kan dette udvides til
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: 4 trin
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: Hej, jeg er Rithik. Vi kommer til at lave en internetstyret LED ved hjælp af din telefon. Vi kommer til at bruge software som Arduino IDE og Blynk.Det er enkelt, og hvis det lykkedes dig, kan du styre så mange elektroniske komponenter, du ønskerTing We Need: Hardware:
Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)
Sådan laver du en drone ved hjælp af Arduino UNO | Lav en Quadcopter ved hjælp af mikrokontroller: Introduktion Besøg min Youtube -kanal En Drone er en meget dyr gadget (produkt) at købe. I dette indlæg vil jeg diskutere, hvordan jeg gør det billigt ?? Og hvordan kan du lave din egen sådan til en billig pris … Nå i Indien alle materialer (motorer, ESC'er
RF 433MHZ radiostyring ved hjælp af HT12D HT12E - Lav en RF -fjernbetjening ved hjælp af HT12E & HT12D med 433mhz: 5 trin
RF 433MHZ radiostyring ved hjælp af HT12D HT12E | Oprettelse af en RF -fjernbetjening ved hjælp af HT12E & HT12D med 433mhz: I denne instruktør vil jeg vise dig, hvordan du laver en RADIO -fjernbetjening ved hjælp af 433mhz sendermodtagermodul med HT12E -kode & HT12D -dekoder IC.I denne instruktive kan du sende og modtage data ved hjælp af meget meget billige KOMPONENTER SOM: HT