OpenMV
Schilden
Lens
Robotica
Boek
Video
Downloaden
Documenten
Forum
OpenMV.io
GithubIn april vorig jaar lanceerden we ons nieuwe product OpenMV4 H7 Plus. Vandaag wil ik u graag de nieuwe functie van OpenMV4 H7 Plus voorstellen: het zelf trainen van neurale netwerken voor classificatie en herkenning via de EdgeImpulse online website.
In deze tutorial gebruik je machine learning om een herkenningssysteem te bouwen dat met de OpenMV4 H7 Plus slimme camera kan detecteren of een persoon een mondmasker draagt, wat beeldclassificatie mogelijk maakt.

EdgeImpulse is een website die online training van neurale netwerkmodellen voor ingebedde apparaten aanbiedt. Het is onze partner voor OpenMV en ook een officiële partner van STMicroelectronics. Momenteel is EdgeImpulse gratis toegankelijk voor onze OpenMV-gebruikers, waardoor OpenMV-gebruikers kosteloos gebruik kunnen maken van EdgeImpulse om online neurale netwerkmodellen te trainen die geschikt zijn voor OpenMV.
Door neurale netwerken toe te voegen aan het ingebedde apparaat OpenMV, kunnen functies worden gerealiseerd zoals het onderscheiden van stropers en olifanten, kwaliteitscontrole op productielijnen in fabrieken en het zelfstandig laten rijden van afstandsbestuurbare modelauto's.
In deze tutorial leer je hoe je afbeeldingen verzamelt om een hoogwaardige dataset op te bouwen, hoe je transfer learning toepast om een neuraal netwerk te trainen, en hoe je het systeem implementeert op OpenMV.
Daarnaast bieden we ook een videotutorial aan, die u kunt bekijken door op de officiële website te zoeken naar "OpenMV4 Plus Neural Network Training voor Gezichtsmaskerherkenning".
U kunt het volledige projectinhoud, inclusief alle code en modellen, bekijken op het volgende adres: https://book.openmv.cc/project/mask.html
Het online trainen van neurale netwerkmodellen voor OpenMV met EdgeImpulse omvat voornamelijk de volgende vier stappen: gegevensverzameling, uploaden, training en implementatie.
01. Gegevensverzameling
In deze tutorial bouwen we een model dat gezichten met en zonder masker kan onderscheiden. U kunt er ook voor kiezen om andere objecten te classificeren. Om het machine learning model te laten werken, moet u een groot aantal voorbeeldafbeeldingen verzamelen van gezichten met en zonder masker. Tijdens de training worden deze voorbeeldafbeeldingen gebruikt om het model te leren onderscheiden.
We moeten OpenMV IDE gebruiken om onze dataset te verzamelen. De stappen voor het verzamelen van afbeeldingen zijn als volgt:
Twee categorieën aanmaken:
Open het menu "Tools" in de OpenMV IDE, selecteer "Dataset Editor", klik op "New Dataset", maak vervolgens een nieuwe map aan en open deze. Maak binnen de dataset twee nieuwe mappen aan, genaamd "mask" (voor het opslaan van foto's van personen met een mondmasker) en "face" (voor het opslaan van foto's van personen zonder mondmasker).


Beelden verzamelen met OpenMV
Eerst verbinden we de OpenMV, klikken op "Verbinden" in de IDE, vervolgens op "Uitvoeren". In de Framebuffer kunnen we de realtime beelden van de OpenMV zien. Door op de fotoknop in het linkermenu te klikken, slaat de OpenMV automatisch deze afbeelding op, wat een gegevenspunt in de dataset vormt.
Eerst moeten we het gezicht van een persoon met een masker opslaan. Klik op de fotoknop en de IDE maakt een foto aan de onderkant, die automatisch wordt genoemd 00000, dan de volgende 00001, enzovoort.
OpenMV verzamelt respectievelijk 200 foto's van gezichten met masker (100 mannen en 100 vrouwen) en 200 foto's van gezichten zonder masker (100 mannen en 100 vrouwen).


Let op: zorg ervoor dat foto's vanuit verschillende hoeken worden verzameld om de diversiteit van onze trainingsleerprocessen te waarborgen.
Als u tijdens het verzamelen merkt dat een bepaalde afbeelding niet perfect is, kunt u met de rechtermuisknop op de afbeelding klikken en deze verwijderen.
02、Uploaden
Nadat u de afbeeldingen hebt verzameld met OpenMV, moet u een account registreren en inloggen op de officiële website van EdgeImpulse (https://edgeimpulse.com/) om te beginnen met het uploaden van afbeeldingen. De stappen voor het uploaden van afbeeldingen zijn:
Maak een nieuw project aan op EdgeImpulse, klik op "keys", selecteer "API Key" en kopieer de "API Key". Verbind OpenMV IDE en Edge Impulse via de API Key.

Selecteer in de OpenMV IDE de menubalk bovenaan "Tools" – "Data Editor" – "Export" – "Upload" – "Upload via API Key", kopieer de "API Key" en upload deze.
Bij het uploaden worden de gegevens automatisch verdeeld in een trainingsset en een testset. We kiezen standaard voor de verhouding "80% en 20%". In totaal hebben we meer dan 400 gezichtsfoto's verzameld. De 80% Training Date betekent dat standaard 80% van uw gegevens wordt gebruikt voor training, en de overige 20% dient als testset.


03、Trainingsdataset
Wanneer de dataset gereed is, kunt u deze trainen in de EdgeImpulse-websiteinterface.
Configuratieverwerkingsmodule:
Selecteer eerst "Impulse Design" en configureer de verwerkingsmodule:
Stel de standaard beeldafmetingen in op "96 x 96".
Selecteer de module "Afbeeldingen" om aan te geven dat we een classificatietraining voor afbeeldingen uitvoeren (je kunt EdgeImpulse ook gebruiken om geluid, video, enz. te classificeren).
Kies "Transfer Learning (Images)", stel het te leren model in.
Selecteer "Save impulse opslaan", als "Successfully" wordt weergegeven, is de configuratie geslaagd.

Beeldvoorbewerking:
Klik op "Afbeelding Image" in het linkermenu, stel het kleurformaat in op "RGB" en klik vervolgens op "Opslaan".

Selecteer vervolgens "Generate features" om het proces te starten. Dit zal beeldvoorbewerking uitvoeren op meer dan 400 afbeeldingen, en aan de rechterkant wordt een 3D-visualisatie van de volledige dataset weergegeven.

Configuratie van het transfer learning-model
Klik op "Transfer learning" in het linkermenu, kies standaardinstellingen voor alle parameters of pas ze aan naar behoefte:
1. Stel het aantal trainingscycli Number of training cycles standaard in op 10
2. Stel de leerfrequentie Learning rate in op 0,0005
3. U kunt "Data augmentation" aanvinken of niet aanvinken.
4. Stel de minimale betrouwbaarheidsclassificatie Minimum confidence rating standaard in op 0.8.
Klik op "Start training" om te beginnen, het trainingsproces duurt ongeveer 4 tot 5 minuten.
Na voltooiing van de modeltraining kunt u de nauwkeurigheid, de verwarringsmatrix (confusion matrix) en de verwachte apparaatprestaties bekijken.

Testmodel:
Na de training zullen we de testgegevens gebruiken om het model te evalueren.
Selecteer "Model testing", vink het selectievakje naast "Sample name" aan en klik op "Classify selected". De hier getoonde nauwkeurigheid van 97% is opmerkelijk voor een model met zo weinig gegevens.

Ontdek dat deze afbeelding die rood wordt weergegeven onzeker is. Klik op de drie puntjes aan de rechterkant van deze afbeelding en selecteer "Toon classificatie Show classification". Je komt dan in de interface van "Realtime classificatie", die meer details over het bestand bevat. Deze interface helpt je de reden te bepalen waarom de afbeelding verkeerd is geclassificeerd.

Als de gegevens buiten alle bekende clusters (met/zonder masker) vallen, kan dit gegevens zijn die niet overeenkomen met eerder geziene classificaties – mogelijk doordat het grootste deel van het gezicht door haar wordt bedekt.
04. Model uitvoeren op OpenMV
Na het voltooien van de stappen voor trainingsontwerp, modeltraining en modelvalidatie, kunt u dit model exporteren naar uw OpenMV. Kies "OpenMV", selecteer "Build" om te genereren, waarna automatisch 3 bestanden worden aangemaakt:
trained.tflite getrainde neuraal netwerkmodel
labels.txt twee classificatielabels (face en mask)
* ei_image_classification.py is de code die op OpenMV moet worden uitgevoerd

Verbind OpenMV IDE en sla deze 3 bestanden op in de ingebouwde Flash van OpenMV. Open het bestand ei_image_classification.py in OpenMV IDE om de code te zien die we zojuist in EdgeImpulse hebben gegenereerd. Klik op uitvoeren en de resultaten worden weergegeven in de seriële terminal.


Goed, je hebt met succes de mogelijkheid toegevoegd om zelf neurale netwerken te trainen voor OpenMV.
Ik kijk uit naar uw resultaten!

AI-waakpost op basis van OpenMV: automatische melding bij onbeveiligde toegang tot belangrijke locaties
Automatisch detecteren of de deur van een belangrijke locatie langdurig openstaat en tijdig waarschuwen.

Alarm bij het overschrijden van personeel; OpenMV interpreteert het “gevoel van veilige grenzen”
Herkenning van personen of apparatuur die een virtuele waaklijn overschrijden.

De ‘AI-stadswacht’ is gearriveerd: een automatisch herkenningssysteem voor ongeoorloofde handelsactiviteiten op openbare plaatsen, gebaseerd op OpenMV.
Automatisch herkenning van handelsactiviteiten op openbare weg, ter ondersteuning van het dagelijks stedelijk bestuur.

Willekeurige opslag van gasflessen? Gebruik OpenMV om automatisch een waarschuwing bij gevaar te activeren
Automatisch detecteren van onjuiste plaatsing van gasflessen en tijdig signaleren van veiligheidsrisico’s met betrekking tot aardgas.

Geen isolerende handschoenen gedragen tijdens werk onder spanning? OpenMV waarschuwt onmiddellijk!
Automatisch detecteren of werknemers geïsoleerde handschoenen dragen, ter ondersteuning van veilig werk.

Gebruik de OpenMV-intelligente camera om oppervlaktegebreken op aluminiumplaten in real time te detecteren
Online detectie van gebreken op oppervlakken van aluminiumplaten, zoals krassen en deuken, ter ondersteuning van kwaliteitscontrole.