NEWS
Wasserzähler - Version 2 - all-in-device
-
@michaeljoos sieht schick aus die Oberfläche
Hast du gerade ne Idee, da du ja schon am rumprobieren bist, warum ich kein Ref Bild erstellen kann? -
@coyote Mmhh, bin mir auch nicht wirklich sicher. Aber versuch doch trotzdem mal mit Firefox die Datei reference.jpg im Fileserver zu löschen und dann das Referenz-Bild neu zu generieren. Im Firefox sollte das alles ohne Error-Meldungen funktionieren.
-
@jomjol bin einen kleinen Schritt weiter. Habe jetzt mit Firefox die raw.jpg gelöscht, dass war das Bild, dass immer angezeigt wurde. Wann wird dieses erstellt bzw. kann ich es neu erstellen?
Edit: Ok, jetzt hab ich den kompletten Inhalt von img_tmp gelöscht, dummerweise auch die "leer.txt", nach reboot geht dann nix mehr Ich mach mal die SD Karte neu, dann geht's weiter
-
@jomjol
danke für die Information. Ich habe mich mal dumm gestellt und versucht das Projekt in PlatformIO zu importieren.
Hat gegen alle Erwartungen auf Anhieb geklappt.Kurze Beschreibung:
- Download als zip AI-on-the-edge-device-master
1.1 extrahieren mit 7-zip
1.2 umbenennen AI-on-the-edge-device
1.2 in PlatformIO Projekt öffnen, geht leider nicht, es fehlt platformio.ini
1.2.1 in Code exitiert platformio.ini, man öffnet Code
1.2.2 voila, Projekt ist importiert2.1 Ich hab mich mal dumm gestellt und "build" ausgelöst
2.2 Ein längerer Übersetzungslauf wird ausgeführt
Es gibt ein paar Warnungen
Ergebnis: Archiving .pio\build\esp32cam\lib89c\libjomjol_image_proc.a
Archiving .pio\build\esp32cam\libe37\libjomjol_fileserver_ota.a
Linking .pio\build\esp32cam\firmware.elf
Retrieving maximum program size .pio\build\esp32cam\firmware.elf
Building .pio\build\esp32cam\firmware.bin
Checking size .pio\build\esp32cam\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [== ] 22.7% (used 74412 bytes from 327680 bytes)
Flash: [========= ] 85.9% (used 1671313 bytes from 1945600 bytes)
esptool.py v2.6
================================== [SUCCESS] Took 212.56 seconds ==================================
2.3 serial Monitor über Symbol Stecker in Symbolleiste geöffnet
2.3.1 kontrolliere ob 115200 baud : Miniterm on COM6 115200,8,N,1 ---
2.3.2 Alte Software reboots , ok
3.0 upload:
3.1 Verbinde Masse mit GPIO0 (3.Pin von rechts auf 3,3V Seite
3.2 5V anlegen, ..waiting for download
3.3 upload über Symbol ->
3.3.1 erfolgreich geflashed
3.4 SD-Karte mit dem Inhalt aus sd-card gefüllt und
4.0 hurra, es läuft
4.1 IP aus dem Protokoll entnommen
4.2 kann auf die Web-OberFläche zugreifen.Selten so viel Glück gehabt
- Download als zip AI-on-the-edge-device-master
-
@coyote sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol bin einen kleinen Schritt weiter. Habe jetzt mit Firefox die raw.jpg gelöscht, dass war das Bild, dass immer angezeigt wurde. Wann wird dieses erstellt bzw. kann ich es neu erstellen?
Edit: Ok, jetzt hab ich den kompletten Inhalt von img_tmp gelöscht, dummerweise auch die "leer.txt", nach reboot geht dann nix mehr Ich mach mal die SD Karte neu, dann geht's weiter
Das raw.jpg wird gemacht, sobald ein automatischer Durchlauf stattfindet --> Sollte noch einen Button zum manuellen Aufzeichnen von raw.jpg einfügen --> habe einen issue erstellt.
-
@hike Genial --> Kannst du das in eine Doku schreiben (Markup Language), dann werde ich es in das Wiki mit aufnehmen!
Wäre super - danke im Voraus!
-
@coyote, @hike, @michaeljoos, @watcherkb
Es kommt gerade etwas Dynamik in die Entwicklung - gefällt mir! Vielen Dank an euch für das schnelle und ausgiebige Feedback. Damit es im Rollout nicht zuviele neue Versionen hagelt, habe ich soeben einen neuen Channel auf Github erstellt ("Rolling") das ist eine Kopie von v1.1.3 und jetzt mein Arbeitsverzeichnis für neue Versionen. Dort werde ich Korrekturen / Updates und Test erstellen und hochladen.
https://github.com/jomjol/AI-on-the-edge-device/tree/rolling
-
@aandekant sagte in Wasserzähler - Version 2 - all-in-device:
Entschuldigen Sie mein schlechtes Deutsch. Ich komme aus Belgien.
We can discuss in Englisch - no problem
Ich habe einen alten Stromzähler mit einem zusätzlichen Glasfenster davor. (7-8cm vor dem Zähler) Ich habe die Standardmethode versucht, diesen Zähler mit einem optischen Sensor auf der rotierenden Scheibe abzulesen, aber mit der Doppelreflexion ist das sehr schwierig.
Dann habe ich Ihre wunderbare Lösung gefunden. Ich konnte die Software (Docker-Version) vor einigen Wochen ausführen. Aber ich habe abgebrochen, als die Ausgabebilder sehr verzerrt waren. Wahrscheinlich stimmt etwas mit meine Ausrichtungsreferenzen nicht.
(älteres Bild, es funktioniert besser, wenn die Kamera auf das erste Glas aufgesetzt wird)
Bevor ich mehr Zeit darauf verwende: Halten Sie es für möglich, dass Ihre Lösung etwas von diesem Bild lesen könnte? Ein Problem, das ich sehe, ist, dass der Text weiß auf schwarz und nicht schwarz auf weiß ist?
This picture should be totally fine for the image recognition. The newest version of the neural network files have been also trained for white numbers on black background. Even if it does not work perfect on the first test - it is rather uncomplicated to incorporate your digits in the training as well, as soon, as you can send me 2-3 pictures of each digit (0..9)
Wenn ich die Kamera höher stelle, fällt die Reflexion der LED in die Ziffern. Bei dem rgb-Streifen hatte ich das Problem, dass die erste LED grün blieb. ähnlich wie bei https://arduino.stackexchange.com/questions/32017/esp8266-nodemcu-first-ws2812-led-lights-up-green. Das Bild war aber besser.
So I would recommend to go on!
-
@jomjol ich glaube ich habe noch etwas Probleme mit der WLAN Verbindung, dass muss ich noch beheben und genau da sind wir beim Punkt, vllt kannst du mir helfen.
Ich hatte deine "alte" Version auf einem ESP32 mit eingelöteter Brücke um die externe Antenne zu nutzen, genau den wollte ich heute flashen mit der V2, aber da tut sich nix.
Laut flashtool läd er alles hoch (vorher auch schon etliche Male gelöscht), stecke ich dann die SD Karte ein und gebe ihm Spannungsversorgung, tut sich nichts. Kein LED blinken und im WLAN sehe ich ihn auch nicht. Auf dem zweiten ESP32 keine Probleme, aber der nutzt nur die interne Antenne.
Hast du vllt ne Idee?EDIT: Habe jetzt auch die SD Karte neu beschrieben auf dem zweiten ESP32, jetzt sehe ich wieder dein default RAW Bild, aber ich bekomme mein Wasserzähler Bild nicht hin
-
Hi @coyote,
ich habe gerade eine neue Version in den Rolling Branch hochgeladen (/html updaten!). Dort hast du jetzt einen Button, mit dem das "raw.jpg" neu aufgenommen wird:Gruß,
jomjol -
@coyote sagte in Wasserzähler - Version 2 - all-in-device:
@michaeljoos sieht schick aus die Oberfläche
Hast du gerade ne Idee, da du ja schon am rumprobieren bist, warum ich kein Ref Bild erstellen kann?Finde das Layout auch richtig schick und mit den ausklappenden Menues auch platzsparender. Habe es gleich in die neue Rolling übernommen.
@michaeljoos: vielen Dank!
-
@jomjol Your reply gave me courage to try it again. More succes this time with your new tool:
I did it quick and dirty, I will tweak the digits some more tomorrow. If needed I will provide you additional pictures for the digits.
Thank you very much, this new "all in device" is really great!
-
Hi @aandekant,
great result - two hints:- You can remove the section [Analog] in the config, then you will not have fake values like this two in your image above - just be carefull, not to try to configue the analog ROIs in the web page
- I assume, that a dedicated training will help, the "8" with the notch on the upper left is not directly trained and obviously there is a problem with the "7".
Once you have your system running, collect the images in the log file and send them to me.
Best regards,
jomjol -
@jomjol Hi jomjol, ich möchte nun auch "umsteigen" und die neue Entwicklung von Dir installieren. Dazu habe ich eine Frage: Ich möchte "nahtlos" vom alten System in das Neue umsteigen, also die config.ini gleich lassen und damit auch die Referenzbilder beibehalten, da es derzeit absolut stabil läuft...... Kann man das einfach bewerkstelligen und die Config.ini mit den Referenzbildern auf die SD-Card übertragen, Ausnahme ist das WiFi Setup, das ist ja jetzt ein extra ini File. Kann man mittels OTA die neue SW auf den ESP32 übertragen? Wenn ja. wie?
Vielen Dank für all Deine Mühe und das Du uns "mitnimmst". Ich habe schon extrem viel dazu gelernt.....
Liebe Grüße Paul -
@pfried Hallo Paul,
ein Copy-and-Paste funktioniert nicht, da die Config.ini einen leicht anderen Syntax hat (musste den Parser aus Speicherplatzgründen selbst schreiben). Aber du kannst die Referenzbilder und ROIs 1:1 übernehmen. Du musst nur die Koordinaten in das neue Format einfügen.
Am besten vergleichst du mal die beiden Config.ini, dann sieht du gleich, was du machen musst. Beim ersten Flashen funktioniert die OTA nicht, da ich hier eine andere Partitionierung benötige. Dazu musst du einmalig den Speicher löschen und dann mit folgender Anleitung flashen: https://github.com/jomjol/AI-on-the-edge-device/wiki/Installation
Danach geht dann aber OTA auch für die Firmware und die html-Seiten.Du kannst dich gerne melden, wenn du noch fragen hast oder wir können auch mal wieder eine Skype Session machen.
Gruß,
jomjol -
@jomjol Na dann werde ich es angehen.... Ich werde jeden Schritt dokumentieren, sodass Du dann eine Umstiegsanleitung für das Wiki hast. In welchem Format möchtest Du das haben? MS Word?
-
@pfried sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol Na dann werde ich es angehen.... Ich werde jeden Schritt dokumentieren, sodass Du dann eine Umstiegsanleitung für das Wiki hast. In welchem Format möchtest Du das haben? MS Word?
Idealerweise Markdown (*.md), denn das ist der Wiki-Syntax. Wenn das neu für dich ist, ist Word auch okay. Ich kann das dann umformatieren.
Vielen Dank für deine Unterstützung.
-
Leider gibt es mit der selbst compilierten Version Probleme beim Erstellen einer neuen Konfiguration.
Jeweils nach einem Neustart wird ein Bild gemacht und auf der Hauptseite angezeigt.
(Das Bild ist übrigens um 180° gegenüber dem Bild gedreht, das man bei /capture_with_flashlight erhält)Da die Geometrie der Auswahlen nicht stimmt, habe ich versucht eine neue Konfiguration zu erstellen.
Auf der Seite Config watermeter findet sich im Fenster Config.ini
undefined.
Ich habe versucht nach Anleitung 2a Create Reference Image
ein neues reference image zu erstellen.
Ein Klick auf Show actual Reference bleibt ohne Auswirkung, es wird nichts angezeigt.Schaut man mit dem Fileserver in das Verzeichnis img_tmp
findet man raw.jpg(das Bild 180° gedreht) , rot.jpg ( das Bild wie auf der Startseite ohne die Markierungen) , rot_roi.jpg ( mit zwei roten Rechtecken), alg.jpg (wie rot.jpg) , alg_roi.jpg (wie Startseite) und weitere .bmp und jpg.Im Verzeichnis config findet man reference.jpg, das ist das Bild aus Deiner Doku und config.ini
[MakeImage] ;LogImageLocation = /log/source WaitBeforeTakingPicture=5 ImageQuality = 5 ImageSize = VGA [Alignment] InitalRotate=180 /config/ref0.jpg 119, 273 /config/ref1.jpg 456, 138 SearchFieldX = 20 SearchFieldY = 20 ...
Warum ist das Bild gedreht wenn der Editor von Config.ini wie beschrieben "undefined" zeigt?
Irgend eine Referenz scheint da schief zu gehen.Beim Erstellen der SD Karte habe ich die Inhalte von sd-card in das root-Verzeichnis der Karte kopiert, da ist die Anleitung etwas unklar.
Irgend eine Idee ?
Hike
-
Hi @hike,
Diagnose ist etwas schwierig - das in config.ini "undefiniert" steht deutet eher darauf hin, dass die Darstellung im Browser einen Fehler hat.
Die tatsache, dass das Bild um 180° gedreht ist, würde ich mit der gezeigten config.ini erwartetn, denn dort steht "InitialRotate=180". Das bedeutet, dass "raw.jpg" erstmal um 180° gedreht wird, bevor die Referenzerkennung startet.
Ich würde dir momentan fast empfehlen, die kompilierte Version zu testn (firmware.bin und /html). Ich habe seit gestern das Repository "Rolling" angelegt, dort sind die aktuellsten Änderungen drin. Gerade auch in der Oberfläche korrigiere ich mit eurem Feedbach noch einige Fehler, mit tlw. recht häufiger Frequenz. Falls es weiterhin nicht funktioniert, können wir am WE mal gemeinsam per Skype drauf schauen.
Beste Grüße,
jomjol -
@jomjol Mein Browser ist Firefox, das sieht in der Tat nach einen Javascript Fehler aus. Da habe ich wenig Lust zu suchen.
Ich werde es mal Deiner Empfehlung folgen und es mit dem binary gegenchecken.Wenn ich das richtig gelesen habe, funktioniert OTA indirekt, also firmware und html hochladen und dann update mit /ota?file=firmware.bin auslösen.
Edit: gibt es einen Dreh, das htlm.zip auf den ESP zu laden ( ich hab doch eine zip-Funktion im Code gesehen) oder muss ich jedes html-file einzeln hochladen?
Beste Grüße Hike