Cuprins:
- Pasul 1: Tipuri de boli de orez
- Pasul 2: Cum au detectat metodele anterioare bolile?
- Pasul 3: Transferați învățarea
- Pasul 4: Instruirea modelului
- Pasul 5: Testarea modelului
- Pasul 6: Teste suplimentare
Video: Cum să detectați bolile plantelor folosind învățarea automată: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Procesul de detectare și recunoaștere a plantelor bolnave a fost întotdeauna un proces manual și plictisitor care impune oamenilor să inspecteze vizual corpul plantei, ceea ce poate duce adesea la un diagnostic incorect. De asemenea, s-a prezis că, pe măsură ce modelele meteo globale încep să varieze din cauza schimbărilor climatice, este posibil ca bolile culturilor să devină mai severe și mai răspândite. Prin urmare, este important să se dezvolte sisteme care să analizeze rapid și ușor culturile și să identifice o anumită boală pentru a limita daunele ulterioare ale culturilor.
În acest Instructable, vom explora un concept de învățare automată cunoscut sub numele de „Transfer Learning” pentru a clasifica imaginile plantelor de orez bolnave. Aceeași metodă poate fi refăcută pentru orice altă problemă de clasificare a imaginilor.
Pasul 1: Tipuri de boli de orez
Orezul este una dintre cele mai populare culturi alimentare de bază cultivate în principal în Asia, Africa și America de Sud, dar este susceptibilă la o varietate de dăunători și boli. Caracteristicile fizice, cum ar fi decolorarea frunzelor, pot fi utilizate pentru a identifica mai multe boli care pot afecta cultura orezului. De exemplu, în cazul Brown-Spot, o boală fungică care afectează învelișul protector al frunzelor, frunzele sunt acoperite cu mai multe pete maronii ovale mici, cu centre gri, în timp ce, în cazul Leaf-Blast, frunzele sunt acoperite cu leziuni maronii mai mari. În mod similar, frunzele afectate de dăunătorul Rice Hispa pot fi identificate prin semnele lungi care se dezvoltă pe suprafața frunzei.
Pasul 2: Cum au detectat metodele anterioare bolile?
Metodele anterioare pentru clasificarea automată a imaginilor bolnave ale plantelor, cum ar fi clasificatoarele bazate pe reguli, utilizate în [1], se bazează pe un set fix de reguli pentru a segmenta frunza în regiunile afectate și neafectate. Unele dintre regulile pentru extragerea caracteristicilor implică respectarea modificării abaterii medii și standard a culorii regiunilor afectate și neafectate. Regulile pentru extragerea caracteristicilor formei implică plasarea individuală a mai multor forme primitive deasupra regiunii afectate și identificarea formei care acoperă aria maximă a regiunii afectate. Odată ce caracteristicile sunt extrase din imagini, un set de reguli fixe sunt utilizate pentru a clasifica imaginile în funcție de boala care ar fi putut afecta planta. Principalul dezavantaj al unui astfel de clasificator este că va necesita mai multe reguli fixe pentru fiecare boală care, la rândul său, ar putea să o facă susceptibilă la date zgomotoase. Imaginile de mai sus arată cum poate fi utilizat un arbore de decizie bazat pe reguli pentru a segmenta imaginea în două regiuni.
1. Santanu Phadikar și colab., „Clasificarea bolilor orezului utilizând tehnici de selectare a caracteristicilor și generarea regulilor”, Computers and Electronics in Agriculture, vol. 90, ianuarie 2013.
Pasul 3: Transferați învățarea
Tehnica de clasificare a imaginii descrisă în acest Instructables utilizează structura de bază a unui CNN care constă din mai multe straturi convoluționale, un strat de grupare și un strat final complet conectat. Straturile convoluționale acționează ca un set de filtre care extrag caracteristicile la nivel înalt ale imaginii. Max-pooling este una dintre metodele comune utilizate în pooling straturi pentru a reduce dimensiunea spațială a caracteristicilor extrase, reducând astfel puterea de calcul necesară pentru a calcula greutățile pentru fiecare strat. În cele din urmă, datele extrase sunt transmise printr-un strat complet conectat împreună cu o funcție de activare softmax care determină clasa imaginii.
Dar antrenarea CNN-urilor personalizate de la zero poate să nu producă rezultatele dorite și poate avea un timp de antrenament foarte lung.
Pentru a afla caracteristicile imaginilor de antrenament, folosim o metodă numită Transfer Learning în care straturile „superioare” ale unui model pre-antrenat sunt eliminate și înlocuite cu straturi care pot învăța caracteristicile specifice setului de date de antrenament. Învățarea prin transfer reduce timpul de antrenament în comparație cu modelele care utilizează greutăți inițializate aleatoriu. Metoda noastră folosește șase modele diferite pre-antrenate și anume, AlexNet, GoogLeNet, ResNet-50, Inception-v3, ShuffleNet și MobileNet-v2.
Imaginea prezintă arhitectura GoogLeNet unde albastru este utilizat pentru straturile convoluționale, roșu pentru straturile de strângere, galben pentru straturile softmax și verde pentru straturile concat. Puteți afla mai multe despre funcționarea interioară a unei CNN aici.
Setul de date al bolii orezului constă în imagini cu frunze ale plantelor de orez sănătoase și bolnave. Imaginile pot fi clasificate în patru clase diferite și anume Brown-Spot, Rice Hispa, Leaf-Blast și Healthy. Setul de date este format din 2092 de imagini diferite, fiecare clasă conținând 523 de imagini. Fiecare imagine constă dintr-o singură frunză sănătoasă sau bolnavă așezată pe un fundal alb.
Împărțim setul de imagini în formare, validare și testare seturi de imagini. Pentru a preveni supraadaptarea, mărim imaginile de antrenament prin scalarea și răsucirea imaginilor de antrenament pentru a crește numărul total de probe de antrenament.
Codul și dependențele sunt open-source și pot fi găsite aici: GitHub Code
Pentru diferite aplicații de clasificare a imaginilor, putem schimba pur și simplu setul de imagini de antrenament.
Pasul 4: Instruirea modelului
În funcție de dimensiunea de memorie cerută de fiecare model, modelele pre-instruite sunt clasificate în modele din ce în ce mai mari. Modelele mai mici consumă mai puțin de 15 MB și, prin urmare, sunt mai potrivite pentru aplicațiile mobile.
Dintre modelele mai mari, Inception-v3 a avut cel mai lung timp de antrenament de aproximativ 140 de minute, în timp ce AlexNet a avut cel mai scurt timp de antrenament de aproximativ 18 minute. Dintre modelele mai mici orientate spre mobil, MobileNet-v2 a avut cel mai lung timp de antrenament de aproximativ 73 de minute, în timp ce ShuffleNet a avut cel mai scurt timp de antrenament de aproximativ 38 de minute.
Pasul 5: Testarea modelului
Dintre modelele mai mari, Inception-v3 a avut cea mai mare precizie de testare de aproximativ 72,1%, în timp ce AlexNet a avut cea mai mică precizie de testare de aproximativ 48,5%. Dintre modelele mai mici orientate către mobil, MobileNet-v2 a avut cea mai mare precizie de testare de 62,5%, în timp ce ShuffleNet a avut cea mai mică precizie de testare de 58,1%.
MobileNet-v2 a funcționat semnificativ la clasificarea imaginilor de frunze Brown-Spot, Leaf-Blast și Healthy, făcând în același timp mai multe clasificări greșite pentru Rice Hispa cu o precizie de doar 46,15%.
Inception-v3 a prezentat rezultate de clasificare similare cu MobileNet-v2.
Pasul 6: Teste suplimentare
Imaginea de mai sus arată cum modelul MobileNet-v2 clasifică greșit imaginea unei frunze de iarbă pe un fundal alb ca Rice Hispa.
De asemenea, am testat acuratețea MobileNet-v2 pe imagini decupate cu Rice Hispa în care fundalul alb a fost minimizat astfel încât frunza să ocupe o suprafață maximă în interiorul imaginii. Pentru imaginile decupate cu Rice Hispa, am observat o precizie de aproximativ 80,81%, adică pentru imaginile decupate cu Rice Hispa, am observat o creștere semnificativă a preciziei clasificării la probele de testare necoltate. Prin urmare, propunem că implementările din lumea reală a detectării bolilor orezului utilizând rețele neuronale convoluționale trebuie să decupeze imaginile de testare pentru a elimina zgomotul de fundal pentru a îmbunătăți precizia.
Recomandat:
Sysem de udare automată a plantelor: 4 pași
Sysem de udare automată a plantelor: Iată cum am realizat sistemul meu de udare automată a plantelor
Cum să construiți un sistem de udare a plantelor folosind Arduino: 7 pași
Cum să construiești un sistem de udare a plantelor folosind Arduino: În acest tutorial vom învăța cum să realizăm un sistem de udare a plantelor folosind un senzor de umiditate, pompa de apă și un LED verde intermitent dacă totul este în regulă și afișajul OLED și Visuino
Udarea automată a plantelor: 4 pași
Udarea automată a plantelor: plantele nu sunt mulțumite de îngrijirea dvs.? Mor mereu fără să vă explice problemele? Ei bine, continuați să citiți cum să vă construiți propriul sistem de udare automată a plantelor, care vă oferă toate informațiile de care veți avea nevoie vreodată fă-ți planul
Cum să construiți un sistem de udare automată a plantelor DIY cu alerte WiFi: 15 pași
Cum să construiți un sistem DIY de udare automată a plantelor cu alerte WiFi: Acesta este proiectul finalizat, un sistem DIY automat de udare a plantelor controlat prin #WiFi. Pentru acest proiect am folosit kitul de subansamblare a sistemului automat de grădină auto-udare de la Adosia. Această configurație folosește electrovalve de apă și o lună de sol analogică
Predicția temperaturii camerei prin senzorul LM35 și învățarea automată: 4 pași
Predicția temperaturii camerei prin senzorul LM35 și învățarea automată: Introducere Astăzi ne concentrăm pe construirea unui proiect de învățare automată care prezice temperatura prin regresie polinomială. Învățarea automată este o aplicație a inteligenței artificiale (AI) care oferă sistemelor capacitatea de a învăța automat