OpenMV
Skjold
Linse
Robotikk
Bok
Video
Last ned
Dokumenter
Forum
OpenMV.io
GithubI april i fjor lanserte vi vår nye produkt OpenMV4 H7 Plus. I dag vil jeg presentere en ny funksjon i OpenMV4 H7 Plus – bruk av EdgeImpulse-nettstedet for å trene nevrale nettverk for klassifisering og gjenkjenning.
I denne opplæringen vil du bruke maskinlæring til å bygge et gjenkjenningssystem som kan identifisere om et ansikt har på seg munnbind ved hjelp av OpenMV4 H7 Plus smartkamera, det vil si å oppnå bildeklassifisering.

EdgeImpulse er en nettside som tilbyr tjenester for online opplæring av nevrale nettverksmodeller for innebygde enheter. Den er vår partner for OpenMV og er også en offisiell partner for STMicroelectronics. For øyeblikket er EdgeImpulse gratis tilgjengelig for våre OpenMV-brukere, og OpenMV-brukere kan gratis bruke EdgeImpulse for å trene nevrale nettverksmodeller online som er egnet for OpenMV.
Ved å legge til nevrale nettverk i den innebygde enheten OpenMV, kan den skille mellom krypskyttere og elefanter, utføre kvalitetskontroll på fabrikkproduksjonslinjer og la fjernstyrte modellbiler kjøre selv.
I denne opplæringen vil du lære hvordan du samler bilder for å bygge et høykvalitets datasett, hvordan du anvender overføringslæring for å trene et nevralt nettverk, og hvordan du implementerer systemet på OpenMV.
Dessuten har vi også tilgjort en videoopplæring, som kan ses ved å søke på "OpenMV4 Plus trener nevrale nettverk for maskeidentifisering" på den offisielle nettsiden.
Du kan se hele prosjektinnholdet på følgende adresse, inkludert all kode og modeller: https://book.openmv.cc/project/mask.html
Å bruke EdgeImpulse for å trene nevrale nettverksmodeller for OpenMV på nettet kan hovedsakelig deles inn i følgende fire trinn: innsamling av datasett, opplasting, trening og implementering.
01. Datainnsamling
I denne opplæringen vil vi bygge en modell som kan skille mellom ansikter med og uten munnbind. Du kan selvfølgelig også velge å klassifisere andre gjenstander. For å få maskinlæringsmodellen til å fungere, må du samle inn et stort antall eksempelbilder av ansikter både med og uten munnbind. Under treningen vil disse eksempelbildene bli brukt til å lære modellen å skille mellom de to kategoriene.
Vi må bruke OpenMV IDE for å samle inn datasettet vårt. Fremgangsmåten for å samle inn bilder er som følger:
Opprett to kategorier:
Åpne "Verktøy" i OpenMV IDE-menyen, velg "Datasetteditor", klikk på "Nytt datasett", og opprett deretter en ny mappe og åpne den. Inne i datasettet oppretter du to nye mapper som du navngir henholdsvis mask (for å lagre bilder av ansikter med maske) og face (for å lagre bilder av ansikter uten maske).


Samle bilder med OpenMV
Først kobler vi til OpenMV, klikker på "Koble til" i IDE, klikker på "Kjør", og i Framebuffer-bildeminnen kan vi se OpenMVs sanntidsbilder. Ved å klikke på fotoknappen i venstre meny, vil OpenMV automatisk lagre dette bildet, som utgjør ett datapunkt i datasettet.
Først må vi lagre ansikter med maske. Ved å trykke på fotoknappen, vil IDE ta et bilde nederst, som automatisk navngis 00000, og det neste blir 00001, og så videre.
Samle inn 200 bilder av ansikter med maske (100 av hvert kjønn) og 200 bilder av ansikter uten maske (100 av hvert kjønn) ved hjelp av OpenMV.


Merk: Sørg for å samle inn bilder fra ulike vinkler for å sikre mangfoldet i vår trening og læring.
Hvis du oppdager at et bilde ikke er perfekt under innsamlingsprosessen, kan du høyreklikke på bildet og velge slette.
02. Last opp
Etter at du har samlet inn bilder med OpenMV, må du registrere en konto og logge inn på EdgeImpulse-nettstedet (https://edgeimpulse.com/) for å begynne å laste opp bilder. Fremgangsmåten for å laste opp bilder er som følger:
Opprett et nytt prosjekt på EdgeImpulse, klikk på "keys", velg "API Key" og kopier "API Key". Bruk API Key-en for å etablere tilkobling mellom OpenMV IDE og Edge Impulse.

Velg "Verktøy" – "Dataeditor" – "Eksporter" – "Last opp" – "Last opp via API-nøkkel" i menyen øverst i OpenMV IDE, kopier "API-nøkkelen" og last den opp.
Ved opplasting vil dataene automatisk bli delt inn i treningssett og testsett. Vi velger standardfordelingen på "80 % og 20 %". Vi har samlet inn over 400 ansiktsbilder, hvor 80 % av treningsdataene betyr at 80 % av dataene brukes til trening, og de resterende 20 % brukes som testsett.


03. Treningsdatasett
Datasettet er klart, og du kan trene det på EdgeImpulse-nettstedet.
Konfigurasjonsbehandlingsmodul:
Velg først "Impulse Design", konfigurer behandlingsmodulen:
* Sett standard bildeformat til "96 x 96";
Velg modulen "BilderImages", som indikerer at vi utfører treningsklassifisering av bilder (du kan også bruke EdgeImpulse til å klassifisere lyd, video, etc.);
Velg "Overføringslæring (bilder) Transfer Learning (Images)", og konfigurer læringsmodellen.
Velg "Lagre impuls", og hvis det vises "Vellykket", er konfigureringen vellykket.

Bildeforbehandling:
Klikk på "BildeImage" i menyen til venstre, sett fargeformatet til "RGB", og klikk deretter på "Lagre".

Velg deretter "Generer funksjoner" for å starte prosessen. Dette vil utføre bildeforbehandling på over 400 bilder, og en 3D-visualisering av hele datasettet vil vises til høyre.

Konfigurer overføringslæringsmodell
Klikk på "Overføringslæring Transfer learning" i venstremenyen, og velg alle innstillingene som standard, eller endre parameterne etter behov:
1. Sett antall treningssykluser Number of training cycles til standard 10
2. Sett læringshastigheten (Learning rate) til 0,0005
3. Du kan velge eller ikke velge "Dataforsterkning Data augmentation
4. Sett standardverdien for Minimum confidence rating til 0.8.
Klikk på "Start trening", treningsprosessen tar omtrent 4 til 5 minutter.
Etter at modelltreningen er fullført, kan du se nøyaktighet, forvirringsmatrise (confusion matrix) og forventet utstyrsytelse.

Testmodell:
Etter opplæringen vil vi bruke testdata for å evaluere modellen.
Velg "Modelltesting", merk av i avkrysningsboksen ved siden av "Prøvenavn", og klikk på "Klassifiser valgte". Nøyaktigheten som vises her har nådd 97%, noe som er bemerkelsesverdig for en modell med så lite data.

Oppdag at bildet som vises i rødt er usikkert. Klikk på de tre prikkene til høyre for dette bildet og velg "Vis klassifisering Show classification". Du vil da komme til grensesnittet for "Sanntidsklassifisering", som inneholder flere detaljer om filen. Dette grensesnittet vil hjelpe deg med å fastslå årsaken til feil klassifisering av bildet.

Hvis dataene ligger utenfor alle kjente klynger (med maske/uten maske), kan dette være data som ikke samsvarer med noen tidligere observerte kategorier – muligens på grunn av hår som dekker det meste av ansiktet.
04. Kjør modellen på OpenMV
Etter å ha fullført trinnene for treningsdesign, modelltrening og modellvalidering, kan du eksportere denne modellen til din OpenMV. Velg "OpenMV", velg "Build" for å generere, og den vil automatisk generere 3 filer:
* trained.tflite Trenet nevrale nettverksmodell
* labels.txt to klassifiseringsetiketter (face og mask)
* ei_image_classification.py er koden som skal kjøres på OpenMV

Koble til OpenMV IDE, lagre disse tre filene i OpenMVs interne Flash-minne. Åpne ei_image_classification.py-filen i OpenMV IDE, der kan du se koden vi nettopp genererte i EdgeImpulse. Klikk på Kjør, og resultatet av kjøringen vil vises i den serielle terminalen.


Ok, du har nå vellykket lagt til funksjonen for å trene nevrale nettverk selv på OpenMV.
Jeg ser frem til resultatene dine!

AI-vaktmann basert på OpenMV: Automatisk påminnelse om at viktige steder ikke er lukket
Automatisk vurdering av om døren til viktige steder ikke har vært lukket i lengre tid, samt varsling i tide.

Varsling ved personoverskridelse – OpenMV tolker «følelsen av sikkerhetsgrense»
Identifiserer personer eller utstyr som krysser en virtuell varslingssone.

«AI-byvakt» er her – et automatisk gjenkjenningssystem for ulovlig virksomhet på offentlig eiendom, bygget på OpenMV
Automatisk gjenkjenning av ulovlig forretning på offentlig eiendom, som støtter daglig bystyring.

Er gassylinder plassert uhensiktsmessig? Bruk OpenMV til å utløse en automatisk farevarsling
Automatisk gjenkjenning av ulovlig plassering av gassflasker for å oppdage sikkerhetsrisiko knyttet til gass på forhånd.

Utførte du arbeid under spenning uten å bruke isolerende hansker? OpenMV varsler umiddelbart!
Automatisk gjenkjenning av om arbeidstakere bærer isolerende hansker, for å støtte sikker arbeidsutførelse.

Bruker OpenMV-intelligente kamera til å identifisere feil på aluminiumsplater i sanntid
Online gjenkjenning av feil på aluminiumplater, som for eksempel skraper og senkninger, for å støtte kvalitetskontroll.