Cuprins:

Cum să detectați bolile plantelor folosind învățarea automată: 6 pași
Cum să detectați bolile plantelor folosind învățarea automată: 6 pași

Video: Cum să detectați bolile plantelor folosind învățarea automată: 6 pași

Video: Cum să detectați bolile plantelor folosind învățarea automată: 6 pași
Video: Mi-am distrus mașina… 2024, Noiembrie
Anonim
Cum să detectați bolile plantelor folosind învățarea automată
Cum să detectați bolile plantelor folosind învățarea automată

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

Tipuri de boli de orez
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?

Cum au detectat metodele anterioare bolile?
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

Transfer de învățare
Transfer de învățare

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

Instruirea modelului
Instruirea modelului
Instruirea modelului
Instruirea modelului
Instruirea modelului
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

Testarea modelului
Testarea modelului
Testarea modelului
Testarea modelului
Testarea modelului
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

Teste suplimentare
Teste suplimentare
Teste suplimentare
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: