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 ga je machine learning gebruiken om een herkenningssysteem te bouwen. Dit systeem kan met behulp van de OpenMV4 H7 Plus slimme camera bepalen of een gezicht een mondmasker draagt, waardoor beeldclassificatie wordt gerealiseerd.

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 zij kosteloos gebruik kunnen maken van de online training van neurale netwerkmodellen die geschikt zijn voor OpenMV.
Door neurale netwerken toe te voegen aan de ingebedde apparatuur OpenMV, kunnen functies worden gerealiseerd zoals het onderscheiden van stropers en olifanten, kwaliteitscontrole op fabrieksproductielijnen 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 project bekijken op het volgende adres, inclusief alle code en modellen: https://book.openmv.cc/project/mask.html
Het online trainen van neurale netwerkmodellen voor OpenMV met EdgeImpulse bestaat voornamelijk uit de volgende vier stappen: gegevensverzameling, uploaden, training en implementatie.
01、Verzamelen van gegevenssets
In deze tutorial bouwen we een model dat gezichten met en zonder mondkapje kan onderscheiden. U kunt er ook voor kiezen om andere objecten te classificeren. Voor de werking van het machine learning-model moet u een groot aantal voorbeeldafbeeldingen verzamelen van gezichten met en zonder mondkapje. 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 gezichten met masker) en face (voor het opslaan van foto's van gezichten zonder masker).


Beeld verzamelen met OpenMV
Eerst verbinden we de OpenMV, klik op "Verbinden" in de IDE, klik op "Uitvoeren", in het Framebuffer frame buffer kunnen we de real-time beelden van de OpenMV zien, klik op de fotoknop in het linkermenu, dan zal de OpenMV automatisch deze afbeelding opslaan, dit is een gegeven in de dataset.
Eerst moeten we het gezicht van een persoon met een mondmasker opslaan. Klik op de fotoknop, dan maakt de IDE aan de onderkant een foto. Deze wordt automatisch 00000 genoemd, de volgende wordt 00001, enzovoort.
OpenMV verzamelt respectievelijk 200 foto's van gezichten met mondmasker (100 mannen en 100 vrouwen) en 200 foto's van gezichten zonder mondmasker (100 mannen en 100 vrouwen).


* Let op: zorg ervoor dat foto's vanuit verschillende hoeken worden verzameld om de diversiteit van onze trainingsleerprocessen te garanderen.
Als tijdens het verzamelen blijkt dat een bepaalde afbeelding niet perfect genoeg is, kunt u met de rechtermuisknop op deze 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 de 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
De dataset is gereed, je kunt de dataset trainen in de EdgeImpulse-websiteinterface.
Configuratieverwerkingsmodule:
Selecteer eerst "Impulse Design" en configureer de verwerkingsmodule:
* Stel de standaard beeldafmetingen in op "96 x 96";
* Kies de module "Afbeeldingen", wat betekent 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.

SingTown configuratie migratie leermodel.
Klik op "Transfer learning" in het linkermenu, kies standaardinstellingen voor alle parameters of pas deze aan naar behoefte:
1. Stel het aantal trainingscycli Number of training cycles standaard in op 10
2. Stel de leerfactor (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". 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 testgegevens gebruiken om het model te evalueren.
Selecteer "Model testing", vink het selectievakje naast "Sample name" aan en klik op "Classify selected". De hier weergegeven 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 gezicht grotendeels 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. Selecteer "OpenMV", kies "Build" om te genereren, waarna automatisch 3 bestanden worden gegenereerd:
* trained.tflite getraind 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 niet-gesloten toegang tot belangrijke locaties
Automatisch bepalen of deuren van belangrijke locaties langdurig openstaan en tijdig waarschuwen.

Persoonlijke grensoverschrijding wordt onmiddellijk gemeld; OpenMV definieert het gevoel van ‘veilige grenzen’.
Detectie van personen of apparatuur die een virtuele waaklijn overschrijden.

De ‘AI-stadsbeheerder’ is er: een automatisch herkenningssysteem voor illegale straatbedrijvigheid, 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 voor gevaar te activeren
Automatisch herkennen van onjuiste plaatsing van gasflessen en tijdig signaleren van veiligheidsrisico’s met betrekking tot aardgas.

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

Gebruik de OpenMV-intelligente camera om oppervlaktegebreken op aluminiumplaten in realtime te detecteren
Online detectie van gebreken op de oppervlakte van aluminiumplaten, zoals krassen en inzinkingen, ter ondersteuning van kwaliteitscontrole.