OpenMV
Schilde
Linse
Robotik
Buch
Video
Herunterladen
Dokumente
Forum
OpenMV.io
GithubIm April letzten Jahres ist unser neues Produkt OpenMV4 H7 Plus auf den Markt gekommen. Heute möchte ich Ihnen die neue Funktion von OpenMV4 H7 Plus vorstellen – die selbstständige Schulung neuronaler Netze zur Klassifizierung und Erkennung mithilfe der EdgeImpulse-Online-Website.
In diesem Tutorial verwenden Sie maschinelles Lernen, um ein Erkennungssystem zu entwickeln, das mit der SingTown OpenMV4 H7 Plus intelligenten Kamera erkennt, ob eine Person eine Gesichtsmaske trägt, also eine Bildklassifizierung durchführt.

EdgeImpulse ist eine Website, die Online-Trainingsdienste für neuronale Netzmodelle auf eingebetteten Geräten anbietet. Es ist unser Partner für OpenMV und ebenfalls offizieller Partner von STMicroelectronics. Derzeit ist EdgeImpulse für unsere OpenMV-Benutzer kostenlos zugänglich. OpenMV-Benutzer können kostenlos neuronale Netzmodelle online trainieren, die für OpenMV geeignet sind.
Die Integration von neuronalen Netzwerken in eingebettete Geräte wie OpenMV ermöglicht Funktionen wie die Unterscheidung von Wilderern und Elefanten, die Qualitätskontrolle in Fabrikproduktionslinien und das autonome Fahren von ferngesteuerten Modellfahrzeugen.
In diesem Tutorial lernen Sie, wie Sie Bilder sammeln, um einen hochwertigen Datensatz aufzubauen, wie Sie Transferlernen anwenden, um neuronale Netze zu trainieren, und wie Sie das System auf OpenMV bereitstellen.
Zudem bieten wir Video-Tutorials an, die auf der offiziellen Website unter dem Titel "OpenMV4 Plus: Training neuronaler Netze zur Gesichtsmaskenerkennung" gesucht und angesehen werden können.
Sie können den gesamten Projektinhalt einschliesslich aller Codes und Modelle unter der folgenden Adresse einsehen: https://book.openmv.cc/project/mask.html
Die Online-Schulung von neuronalen Netzmodellen für OpenMV mit EdgeImpulse erfolgt hauptsächlich in den folgenden vier Schritten: Datensammlung, Hochladen, Training und Bereitstellung.
01. Datensammlung
In diesem Tutorial erstellen wir ein Modell, das zwischen Gesichtern mit und ohne Maske unterscheiden kann. Natürlich können Sie auch andere Gegenstände klassifizieren. Für die Funktionsweise des maschinellen Lernmodells müssen Sie eine grosse Anzahl von Beispielbildern von Gesichtern mit und ohne Maske sammeln. Während des Trainings dienen diese Beispielbilder dazu, das Modell im Unterscheiden zu üben.
Wir müssen die OpenMV IDE verwenden, um unseren Datensatz zu sammeln. Die Schritte zur Bilderfassung sind wie folgt:
Erstellen Sie zwei Kategorien:
Öffnen Sie im OpenMV IDE-Menü "Werkzeuge", wählen Sie "Datensatz-Editor", klicken Sie auf "Neuer Datensatz", erstellen Sie dann einen neuen Ordner und öffnen Sie ihn. Erstellen Sie im Datensatz zwei weitere Ordner, benennen Sie sie "mask" (zum Speichern von Fotos von Personen mit Maske) und "face" (zum Speichern von Fotos von Personen ohne Maske).


Bilderfassung mit OpenMV
Zuerst verbinden wir das OpenMV, klicken auf "Verbinden" in der IDE, dann auf "Ausführen". Im Framebuffer können wir das Live-Bild des OpenMV sehen. Durch Klicken auf den Foto-Button in der linken Menüleiste speichert das OpenMV automatisch dieses Bild, was einen Datensatz in der Datenbank darstellt.
Zuerst speichern wir das Gesicht einer Person mit Maske. Durch Klicken auf den Foto-Button wird auf der unteren Seite der IDE ein Foto aufgenommen, das automatisch als 00000 benannt wird. Das nächste Foto wird dann 00001 heissen und so weiter.
Mit OpenMV werden jeweils 200 Fotos von Gesichtern mit Maske (je 100 von Männern und Frauen) und 200 Fotos von Gesichtern ohne Maske (je 100 von Männern und Frauen) aufgenommen.


Hinweis: Es ist wichtig, Fotos aus verschiedenen Blickwinkeln zu sammeln, um die Vielfalt unseres Trainings und Lernens sicherzustellen.
Wenn während des Sammelvorgangs festgestellt wird, dass ein Bild nicht perfekt erfasst wurde, können Sie mit der rechten Maustaste auf das Bild klicken und es löschen.
02. Hochladen
Nachdem Sie die Bilder mit OpenMV erfasst haben, müssen Sie sich auf der EdgeImpulse-Website (https://edgeimpulse.com/) registrieren und anmelden, um mit dem Hochladen der Bilder zu beginnen. Die Schritte zum Hochladen der Bilder sind:
Erstellen Sie ein neues Projekt auf EdgeImpulse, klicken Sie auf "Schlüssel", wählen Sie "API-Schlüssel" und kopieren Sie den "API-Schlüssel". Über den API-Schlüssel wird die Verbindung zwischen der OpenMV IDE und Edge Impulse hergestellt.

Wählen Sie in der OpenMV IDE-Menüleiste oben "Werkzeuge" – "Daten-Editor" – "Exportieren" – "Hochladen" – "Hochladen mit API-Schlüssel", kopieren Sie den "API-Schlüssel" und laden Sie ihn hoch.
Beim Hochladen werden die Daten automatisch in Trainings- und Testdatensätze aufgeteilt. Wir empfehlen die Standardaufteilung von "80 % und 20 %". Insgesamt haben wir über 400 Gesichtsbilder erfasst. Dabei werden standardmässig 80 % der Daten als Trainingsdaten verwendet, die restlichen 20 % dienen als Testdatensatz.


03. Trainingsdatensatz
Sobald der Datensatz bereit ist, können Sie ihn auf der EdgeImpulse-Website trainieren.
Konfigurationsverarbeitungsmodul:
Wählen Sie zunächst «Impulse Design» und konfigurieren Sie das Verarbeitungsmodul:
Standardmässige Bildabmessungen auf «96 x 96» setzen.
Wählen Sie das Modul «Images» aus, um anzugeben, dass wir eine Klassifizierung von Bildern trainieren (Sie können mit EdgeImpulse auch Klänge, Videos usw. klassifizieren).
Wählen Sie «Transfer Learning (Images)», um das Lernmodell einzustellen
Wählen Sie «Save impulse speichern» aus. Wenn «Successfully» angezeigt wird, ist die Konfiguration erfolgreich.

Bildvorverarbeitung:
Klicken Sie im linken Menü auf "Bild Image", setzen Sie das Farbformat auf "RGB" und klicken Sie dann auf "Speichern".

Wählen Sie anschliessend «Merkmale generieren (Generate features)» aus, um den Prozess zu starten. Dabei werden über 400 Bilder vorverarbeitet, und rechts wird eine 3D-Visualisierung des vollständigen Datensatzes angezeigt.

Konfiguration des Transferlernmodells
Klicken Sie im linken Menü auf «Transfer Learning», wählen Sie alle Parameter standardmässig aus oder passen Sie diese nach Bedarf an:
1. Setzen Sie die Anzahl der Trainingszyklen standardmässig auf 10
2. Setzen Sie die Lernrate Learning rate auf 0.0005
3. Sie können «Data augmentation» ankreuzen oder nicht ankreuzen.
4. Setzen Sie die minimale Vertrauenswürdigkeit (Minimum confidence rating) standardmässig auf 0.8.
Klicken Sie auf "Start training", der Trainingsprozess dauert etwa 4 bis 5 Minuten.
Nach Abschluss des Modelltrainings können Sie die Genauigkeit, die Konfusionsmatrix und die erwartete Geräteleistung einsehen.

Testmodell:
Nach Abschluss des Trainings verwenden wir Testdaten, um das Modell zu überprüfen.
Wählen Sie "ModelltestModel testing", aktivieren Sie das Kontrollkästchen neben "ProbennameSample name" und klicken Sie auf "Klassifizierung auswählenClassify selected". Die hier angezeigte Genauigkeit erreicht 97%, was für ein Modell mit wenigen Daten bemerkenswert ist.

Es wurde festgestellt, dass dieses rot markierte Bild unsicher ist. Klicken Sie auf die drei Punkte rechts neben dem Bild und wählen Sie "Klassifikation anzeigen Show classification". Sie gelangen dann zur Oberfläche "Echtzeit-Klassifikation", die weitere Details zur Datei enthält. Diese Oberfläche hilft Ihnen, die Ursache für die fehlerhafte Bildklassifikation zu ermitteln.

Wenn die Daten ausserhalb aller bekannten Cluster (mit/ohne Maske) liegen, könnte es sich um Daten handeln, die keiner der bisher gesehenen Kategorien entsprechen – möglicherweise aufgrund von Haaren, die einen Grossteil des Gesichts verdecken.
04. Modell auf OpenMV ausführen
Nachdem Sie die Schritte des Trainingsdesigns, des Modelltrainings und der Modellvalidierung abgeschlossen haben, können Sie dieses Modell auf Ihre OpenMV exportieren. Wählen Sie "OpenMV", wählen Sie "Build" zur Generierung, und es werden automatisch drei Dateien erstellt:
trained.tflite Trainiertes neuronales Netzmodell
labels.txt zwei Klassifizierungsetiketten (face und mask)
ei_image_classification.py ist der auf OpenMV auszuführende Code

Verbinden Sie OpenMV IDE und speichern Sie diese drei Dateien im internen Flash-Speicher von OpenMV. Öffnen Sie die Datei ei_image_classification.py in OpenMV IDE, um den gerade in EdgeImpulse generierten Code anzuzeigen. Klicken Sie auf Ausführen, und die Ergebnisse werden im seriellen Terminal angezeigt.


Gut, Sie haben erfolgreich die Funktion hinzugefügt, um neuronale Netze auf der OpenMV selbst zu trainieren.
Wir freuen uns auf Ihre Ergebnisse!

KI-Wächter auf Basis von OpenMV: Automatische Benachrichtigung bei nicht geschlossenen Zugängen zu wichtigen Bereichen
Automatische Erkennung, ob die Tür eines wichtigen Ortes längere Zeit geöffnet bleibt, und rechtzeitige Benachrichtigung.

Personenüberschreitung löst sofort eine Alarmmeldung aus – OpenMV interpretiert das Gefühl der „Sicherheitsgrenze“.
Erkennung von Personen- oder Geräteübertretungen mithilfe einer virtuellen Warnlinie.

„KI-Stadtwache“ ist da: Ein automatisches System zur Erkennung von Straßenhandel auf Basis von OpenMV
Automatische Erkennung von Geschäftsaktivitäten auf öffentlichen Strassen zur Unterstützung der täglichen Stadtverwaltung.

Gasflaschen unsachgemäss gelagert? Gefahrenwarnung automatisch mittels OpenMV auslösen
Automatische Erkennung nicht vorschriftsmässiger Aufstellungsorte von Gasflaschen zur frühzeitigen Identifizierung von Sicherheitsrisiken im Zusammenhang mit Erdgas.

Stromführende Arbeiten ohne isolierende Handschuhe? OpenMV warnt sofort!
Automatische Erkennung, ob das Personal Isolierhandschuhe trägt, zur Unterstützung sicherer Arbeitsabläufe.

Echtzeit-Erkennung von Oberflächenfehlern auf Aluminiumplatten mithilfe der intelligenten OpenMV-Kamera
Online-Erkennung von Oberflächenfehlern wie Kratzern und Vertiefungen auf Aluminiumplatten zur Unterstützung der Qualitätskontrolle.