OpenMV
Schilde
Linse
Robotik
Buch
Video
Herunterladen
Dokumente
Forum
OpenMV.io
GithubIm April letzten Jahres kam unser neues Produkt OpenMV4 H7 Plus auf den Markt. Heute möchte ich Ihnen die neue Funktion von OpenMV4 H7 Plus vorstellen – das selbstständige Trainieren neuronaler Netze zur Klassifizierung und Erkennung mithilfe der EdgeImpulse-Online-Plattform.
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 zugleich offizieller Partner von STMicroelectronics. Derzeit ist EdgeImpulse für unsere OpenMV-Benutzer kostenlos zugänglich. OpenMV-Benutzer können EdgeImpulse kostenlos nutzen, um online neuronale Netzmodelle zu 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.
Darüber hinaus bieten wir auch Video-Tutorials an, die auf der offiziellen Website unter dem Titel "OpenMV4 Plus Training Neural Network for Mask Recognition" gesucht und angesehen werden können.
Sie können den gesamten Projektinhalt einschließlich 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 vier Schritten: Datensatzerfassung, Hochladen, Training und Bereitstellung.
01. Datensatz sammeln
In diesem Tutorial erstellen wir ein Modell, das unterscheiden kann, ob ein Gesicht eine Maske trägt oder nicht. Natürlich können Sie auch andere Gegenstände klassifizieren. Um das maschinelle Lernmodell zu betreiben, müssen Sie eine große Anzahl von Beispielbildern von Gesichtern mit und ohne Maske sammeln. Während des Trainings dienen diese Beispielbilder dazu, das Modell in der Unterscheidung zu üben.
Wir müssen die OpenMV IDE verwenden, um unseren Datensatz zu sammeln. Die Schritte zur Bildaufnahme sind wie folgt:
Erstellen Sie zwei Kategorien:
Öffnen Sie in der OpenMV IDE-Menüleiste "Werkzeuge", wählen Sie "Datensatz-Editor", klicken Sie auf "Neuen Datensatz erstellen", erstellen Sie dann einen neuen Ordner und öffnen Sie ihn. Erstellen Sie innerhalb des Datensatzes zwei weitere Ordner, benennen Sie sie jeweils "mask" (zum Speichern von Fotos von Personen mit Maske) und "face" (zum Speichern von Fotos von Personen ohne Maske).


Bilder mit OpenMV erfassen
Zuerst verbinden wir das OpenMV, klicken auf "Verbinden" in der IDE und 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 heißen und so weiter.
Mit OpenMV werden jeweils 200 Fotos von Personen mit Gesichtsmaske (100 Männer, 100 Frauen) und 200 Fotos von Personen ohne Gesichtsmaske (jeweils 100 Männer und 100 Frauen) aufgenommen.


* Hinweis: Es ist wichtig, Fotos aus verschiedenen Blickwinkeln zu sammeln, um die Vielfalt für unser Training und Lernen sicherzustellen.
Wenn während des Sammelvorgangs festgestellt wird, dass ein Bild nicht optimal 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 registrieren und auf der EdgeImpulse-Website (https://edgeimpulse.com/) 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 "Keys", wählen Sie "API Key" und kopieren Sie den "API Key". Verbinden Sie die OpenMV IDE mit Edge Impulse über den API Key.

Wählen Sie in der OpenMV IDE-Menüleiste oben "Werkzeuge" – "Daten-Editor" – "Exportieren" – "Hochladen" – "Hochladen über 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 wählen standardmäßig das Verhältnis "80 % und 20 %". Insgesamt haben wir über 400 Gesichtsbilder gesammelt. Dabei bedeutet "80 % Training Data" standardmäßig, dass 80 % der Daten für das Training verwendet werden, während die verbleibenden 20 % als Testdatensatz dienen.


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:
* Standardbildgröße auf "96 x 96" setzen;
* Wählen Sie das Modul "Bilder Images", um anzuzeigen, dass wir ein Klassifizierungstraining für Bilder durchführen (Sie können mit EdgeImpulse auch Klänge, Videos usw. klassifizieren);
* Wählen Sie "Transfer Learning (Bilder)", um das Lernmodell festzulegen;
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 anschließend "Merkmale generieren (Generate features)", um den Prozess zu starten. Dabei werden über 400 Datensätze einer Bildvorverarbeitung unterzogen, und auf der rechten Seite wird die 3D-Visualisierung des vollständigen Datensatzes angezeigt.

Konfiguration des Transfer-Learning-Modells
Klicken Sie im linken Menü auf "Transfer Learning (SingTown)". Wählen Sie alle Parameter standardmäßig aus oder ändern Sie sie nach Bedarf:
1. Setzen Sie die Anzahl der Trainingszyklen standardmäßig auf 10
2. Setzen Sie die Lernrate (Learning rate) auf 0,0005
3. Sie können "Datenanreicherung Data augmentation" ankreuzen oder nicht.
4. Setzen Sie die minimale Konfidenzbewertung standardmäßig 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 "Auswahl klassifizierenClassify selected". Die hier angezeigte Genauigkeit erreicht 97%, was für ein Modell mit sehr wenigen Daten bemerkenswert ist.

Wenn festgestellt wird, dass dieses rot markierte Bild unsicher ist, klicken Sie auf die drei Punkte rechts neben dem Bild und wählen Sie "Klassifikation anzeigen". Sie gelangen dann in die 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 außerhalb 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 Großteil des Gesichts verdecken.
04. Modellausführung auf OpenMV
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 für OpenMV selbst zu trainieren.
Wir freuen uns auf Ihre Ergebnisse!

KI-Wächter basierend auf OpenMV: Automatische Benachrichtigung bei nicht geschlossenen Zugängen zu wichtigen Bereichen
Automatische Erkennung, ob die Tür eines wichtigen Ortes über einen längeren Zeitraum geöffnet bleibt, sowie 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-Stadtwächter“ ist da: Ein automatisches System zur Erkennung von Straßenhandel auf Basis von OpenMV
Automatische Erkennung von Straßenhandelsaktivitäten zur Unterstützung der täglichen städtischen Verwaltung.

Gasflaschen unsachgemäß gelagert? Automatische Auslösung einer Gefahrenwarnung mithilfe von OpenMV
Automatische Erkennung nicht vorschriftsmäßiger Aufstellorte für Gasflaschen zur frühzeitigen Identifizierung von Sicherheitsrisiken im Zusammenhang mit Erdgas.

Arbeiten unter Spannung ohne isolierende Handschuhe? OpenMV warnt sofort!
Automatische Erkennung, ob die Mitarbeiter Isolierhandschuhe tragen, zur Unterstützung sicherer Arbeitsabläufe.

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