NEWS
Wasserzähler - Selfmade
-
@sissiwup sagte in Wasserzähler - Selfmade:
Hallo,
mit der neusten Version ist die Zeigererkennung schlechter geworden.
Die hat bei mir bisher nie Probleme gemacht:Ich habe auch gesehen, dass einer der Parameter für die Güte ca. 20% schlechter ist. Ich schaue mal, was ich machen kann.
-
@jomjol sagte in Wasserzähler - Selfmade:
@sissiwup sagte in Wasserzähler - Selfmade:
Hallo,
mit der neusten Version ist die Zeigererkennung schlechter geworden.
Die hat bei mir bisher nie Probleme gemacht:Ich habe auch gesehen, dass einer der Parameter für die Güte ca. 20% schlechter ist. Ich schaue mal, was ich machen kann.
Ich habe noch eine Optimierungsoption gefunden und 3-4 Bilder nochmal genauer klassifiziert. Jetzt ist die mittlere Abweichung wieder dort wo sie vorher war. Die neue Version ist 6.0.1 - probier es bei Gelegenheit doch einfach mal aus.
-
@jomjol
Hi Jomjol, ich glaube Erkennungsmarken aufzukleben wird sehr sehr frickelig. Der Winkel zur Camera muss auch stimmen. Ich meine das wird fast unmöglich ohne jetzt mit Feinwerkzeugen und Pinzetten dran rumzukleben. Hatte schon Probleme die richtige Position gegen das reflektierende Rädchen zu finden.Vielleicht gibt es eine Möglichkeit, das aufgenommene Bild zu manipulieren, und dort die Erkennungsmarken platzieren?
-
Wie komme ich denn auf das aktuelle Latest ?
sudo docker pull jomjol/wasserzaehler:raspi-latest raspi-latest: Pulling from jomjol/wasserzaehler Digest: sha256:d67a3365d4ae2aff294e5497bea62ccbe74f081150e6f5488bb552c8f3e6cafd Status: Image is up to date for jomjol/wasserzaehler:raspi-latest docker.io/jomjol/wasserzaehler:raspi-latest
als /version zeigt er bei mir 6.0 an, sollte dann aber doch schon 6.1 sein, oder ?
Edit: ok.. -rolling ...
-
@jomjol
OpenCV ist sicherlich zu groß für ein ESP32. Aber eine matchTemplate Methode ist doch relativ einfach implementiert. Das Template wird ja "nur" über das andere Bild geschoben und eine Summe gebildet (bzw. ein koeffizient) zwischen den Pixeln des Templates und denen des Bildes an der Stelle. Außerdem musst du hier ja eigentlich gar kein komplettes template Matching machen, sondern kannst von einer groben Ausrichtung aus verfeinern, es reicht also einen kleinen Bereich des Bildes zu betrachten.Und auch das musst du ja nicht ständig wiederholen, oder doch? -> da wäre ja dann noch die Möglichkeit die Berechnung am Raspberry PI zu machen und dann die Werte einzutragen beim ESP32 (wobei man sich da natürlich überlegen muss, welches Format). Das müsste der User dann doch nur machen, wenn jemand an der Kamera gefummelt hat.
-
@jomjol super und vielen Dank für deine Arbeit. Habe den ESP auch soweit geflasht bekommen. Nur leider hängt es bei mir gerade am Installieren des Servers. Habe mir einen RPI3 besorgt und wollte es Installieren. Nur leider bekomme ich es nicht hin. Wie bekomme ich das Image zum laufen bzw wie startet der server. Es gibt so viele infos. Setup, Tensflow.... etc. Nur leider steige ich echt nicht durch. Hast du vllt eine Schritt für Schritt Anleitung die vllt helfen kann?? Was für Grundvorraussetzungen mit der RPI mitbringen??
Gruß -
@jomjol Danke für das tolle Projekt. Welche Art von Stromversorgung ist denn für da Gehäuse bei Thingverse angedacht?
Danke, Andre
-
Als Stromversorgung brauchst du eigentlich nur 2 Drähte mit 5V, also + und -.
-
@hugo1215 sagte in Wasserzähler - Selfmade:
@jomjol super und vielen Dank für deine Arbeit. Habe den ESP auch soweit geflasht bekommen. Nur leider hängt es bei mir gerade am Installieren des Servers. Habe mir einen RPI3 besorgt und wollte es Installieren. Nur leider bekomme ich es nicht hin. Wie bekomme ich das Image zum laufen bzw wie startet der server. Es gibt so viele infos. Setup, Tensflow.... etc. Nur leider steige ich echt nicht durch. Hast du vllt eine Schritt für Schritt Anleitung die vllt helfen kann?? Was für Grundvorraussetzungen mit der RPI mitbringen??
GrußHallo Hugo,
ich würde nicht versuchen, Tensorflow etc. selbst zu installieren, sondern das vorhandene Docker-Image verwenden. Also erstmal Docker installieren, zwei Verzeichnise anlegen und dann den Server als Container starten. Dann antwortet er auf Port 3000. Sind nur wenige Zeilen Code:curl -sSL https://get.docker.com | sh sudo usermod -aG docker pi mkdir /home/pi/config mkdir /home/pi/log docker run -d -p 3000:3000 --mount type=bind,source=/home/pi/config,target=/config --mount type=bind,source=/home/pi/log,target=/log jomjol/wasserzaehler:raspi-rolling
Jetzt sollte er starten, eine Standartconfig im Verzeichnis config anlegen (config.ini --> musst du dann anpassen) und schon kannst du den Server abfragen:
http://IP-RASPI:3000/wasserzaehler.html?full
Hoffe ich habe keinen Typo drin, kann es gerade nicht testen, da ich keinen Raspi frei habe.
Gruß,
jomjol -
@jomjol Guten Abend, wo finde ich denn die 6.0.1 wenn ich einen zip download mache ist die 5.0 drinnen.
-
@Atifan danke. Ich dachte an Verwendenung von einem übrig gebliebenen Kindle USB Netzteil, könnte das klappen mit dem MB102? Das lässt sich ja über Netzteil oder USB versorgen.
-
@andre68 Folgender Stromverbrauch beim ESP32:
Du mußt die letzte Zeile nehmen, ich bin aber nie bei Messungen über 140mA (beim ESP32CAM) gekommen. Ein Kindle USB Netzteil sollte daher auf jeden Fall ausreichen. -
@pfried sagte in Wasserzähler - Selfmade:
@jomjol Guten Abend, wo finde ich denn die 6.0.1 wenn ich einen zip download mache ist die 5.0 drinnen.
Ich habe vergessen, den Push in Github zu machen. Ist erledigt - findest du jetzt in beiden Rolling Versionen.
-
@jomjol Danke!
-
@jomjol super vielen dank das hat mir echt geholfen. vllt kannst du das mit in deine Anleitung mit aufnehmen. Das ist ein guter hinweis.
Jetzt brauche ich aber nochmal ein wenig support. Habe die Kamera auch soweit eingerichtet. Habe mir ein Bild runtergeladen und bei deinem Programm zum einrichten der Zahlen hochgeladen. Nur leider klappt das nicht so wie in deine Beschreibung. Wie kann ich die roten Zahlen auch mit einbinden??
Meine Wasseruhr sieht so aus:Mein Server zeigt mir das Bild auch sehr Komisch an.
Über weitere Hilfe würde ich mich sehr freuen.
Gruß -
@hugo1215 Das verzerrte Bild zeigt, dass dein Alignment nicht funktioniert. Welche Aligmentmarken hast du den geteached?
Die roten Zahlen funktionieren nicht, da das neuronale Netz momentan auf schwarze Zahl auf weissem Grund angelernt ist. Kann ich gerne erweiteren, dann brauche ich aber Bilder zum trainieren. Kannst du erzeugen, wenn du erstmal alles am Laufen hast.
Hier eine Handanleitung zum Einstellen deiner Config:
https://github.com/jomjol/water-meter-system-complete/blob/master/Config_Description.md
Beste Grüße,
jomjol -
Hallo , was passiert denn eigentlich hier ?
Die Anlagen werden als 3980 erkannt, aber der Zählerstand ist .2980 ?
-
Hallo zusammen,
wer hat Lust, die neuste Version zu testen? Ich habe in einer speziellen Version von Tensorflow auf Tensorflow-Lite umgestellt und das Alignment des Bildes asynchron gestellt. Beides beschleunigt die Bildverarbeitung.
TFLite verkleinert auch deutlich die Docker-Images, da ich nur die Runtime und nicht die komplette Tensorflow-Umgebung installieren muss.
Einziger Nachteil ist, dass die Netzwerkdefinition nicht mehr im h5-Format, sondern als spezielles tflite-Format bereit gestellt werden muss und damit die Konfiguration nicht abwärtskompatibel ist.
Wenn das gut funktioniert, werde ich jedoch die zukünftigen Versionen vollständig darauf umstellen.
Ihr bekommt das Docker Image mit folgendem Tag:- Raspberry:
jomjol/wasserzaehler:raspi-rolling-lite
- Synology:
jomjol/wasserzaehler:rolling-lite
Das Config-File, insbesondere die Neuronalen-Netzwerkfiles findet ihr bei GitHub hier (egal ob Raspi oder Synology):
https://github.com/jomjol/water-meter-system-complete/tree/rolling-lite/code/config/neuralnetsMeldet euch gerne, wenn ihr es probiert habt.
Beste Grüße,
jomjol - Raspberry:
-
Hallo @jomjol normalerweise halte ich es mit: ... never change a running system... kann man Deine neue Version irgendwie mit der Alten vereinbaren und wenn ja wie?
-
@mameier1234 sagte in Wasserzähler - Selfmade:
Hallo , was passiert denn eigentlich hier ?
Die Anlagen werden als 3980 erkannt, aber der Zählerstand ist .2980 ?
Hinter der Umwandlung der analogen Zeiger steckt eine intelligente Logik:
Schau dir die Situation genau an: der erste Zeiger wird als 3.1 erkannt. Im Rahmen der Erkennungs- und Zeigerpositionsunschärfe könnte es aber auch 3.0 oder 2.9 sein. Daher prüft die Logik bei Ziffern, die um den Wechsel der ganzen Zahlen liegt, ob die Ziffer eine Stelle tiefer schon über die 0 weg ist.
Hier ist die nächstniedrigere Ziffer eine 9.7, also noch nicht über die 0 hinweg. Daher kann es sich nur um die Ziffer "2" und nicht "3" handeln.
Wenn der tiefere Zeiger jetzt über die 0 hinweg geht (9.7 --> 0.0) dann wechselt die Ziffer auch auf die "3".
Gruß,
jomjol