Objekterkennung mit EdgeImpulse
Quelle: https://circuitdigest.com/microcontroller-projects/object-recognition-using-esp32-cam-and-edge-impulse
Sammeln von Bildern mit der ESP32Cam
- Installiere die Bibliothek EloquentEsp32Cam von Simone Salerno
- Öffne die Beispielsdatei Examples -> EloquentEsp32cam -> Collect_Images_for_EdgeImpulse,
- Setze in Zeile 15 und 16 die Daten deines WLans ein.
- Ändere in Zeile 36 die camera.pinout-Variable auf camera.pinout.aithinker()
- Lade den Sketch hoch, kopiere aus dem Seriellen Monitor die IP-Adresse der ESPCam und rufe die Adresse im Browser auf.
- Klicke auf
- StartCollecting, um Bilder aufzuzeichnen
- Download, um die Bilder als Zip-Datei herunterzuladen
- Clear, um neue Bilder aufzeichnen zu können
- Entpacke die Dateien im Download Ordner.
Trainieren der Objekterkennung in EdgeImpulse
- Melde dich bei Edge Impulse an: https://studio.edgeimpulse.com/login
- Klicke auf +CreateNewProject und trage einen sinnvollen Namen ein.
- Hochladen der gesammelten Bilder
- Klicke links auf Data Acquisition
- Klicke auf AddData
- Klicke auf UploadData
- Klicke auf Select a Folder
- Wähle den Ordner und klicke auf Upload Data
- Labeln der Daten
- Klicke auf LabelingQueue
- Ziehe einen Rahmen um das Objekt und trage das erste Label ein.
- Klicke auf SaveLabel
- Verschiebe den Rahmen so, dass immer nur das Objekt umfasst wird.
- Einen Impuls erzeugen
Ein Impuls bezeichnet in Edge Impulse folgenden Prozess:
- Erstellen eines Modells zur Objekterkennung
- Testen des Modells
- Bereitstellen des Modells für ein Endgerät
- Klicke links auf Impuls erzeugen
- Die Einstellung im Fenster ImageData können übernommen werden:
- Image Width: 96
- Image Height: 96
- Resize Mode: Fit shortest axis
- Klicke auf Add processing block und wähle Image
- Klicke auf Add learning block und wähle Object detection
- Klicke auf Save Impulse
- Einstellungen zur Bildbearbeitung
- Klicke Links auf Image
- Stelle die ColorDepth auf GrayScale
- Klicke auf SaveParameters
- Klicke im nächsten Fenster auf Generate features
- Training des Netzwerkes
- Klicke links auf Object detection
- Klicke auf Start training
- Nach dem Training wird die Qualität der Erkennung angezeigt. Wenn der F1 Score über 90% liegt, ist das Modell gut trainiert.
Wenn nicht, kann das Modell einem neuem Wert für die LearningRate wiederholt werden.
- Erstellen und Herunterladen des Modells
- Klicke links auf Deployment (ggf. nach unten scrollen)
- Wähle rechts oben ESP-Eye als Target
- Wähle im Fenster Arduino Library als Target
- Wähle darunter Eon Compiler als Inference engine
- Klicke auf Build
- Einbinden des Modells
- Starte die Arduino IDE
- Importiere die Heruntergeladene Bibliothek über Sketch > Include Library > Add .ZIP Library...
- Öffne das Beispiel File.Examples.Name deiner Bibliothek.esp32.esp32 camera
- Kommentiere die Zeile 35 aus: //#define CAMERA_MODEL_ESP_EYE // Has PSRAM
- Entferne die Kommentarstriche vor Zeile 36: #define CAMERA_MODEL_AI_THINKER // Has PSRAM
- Lade den Sketch hoch (Kompilieren dauert sehr lang) und teste ihn mit dem Seriellen Monitor