NEWS
Wasserzähler - Selfmade
-
@jomjol Wenn Du eine Wasserzähler Wiki machst würde ich meine Hilfe anbieten, könnte z.B. die Einbindung in den IOBroker zusammenfassen (aus all den Postings) .....
-
Hi,
ich beobachte das Thema jetzt schon ein paar Tage, aber der Thread ist mir zu lang zum komplett lesen (sorry) und mit der Suche habe ich nicht wirklich was gefunden. Daher hier kurz die Frage: kann man den Wasserzähler auch nutzen, wenn man keinen 3D Drucker zur Verfügung hat? Entweder weil man die Konstruktion anders macht (keine Ahnung, wie, aktuell) oder weil man die Teile irgendwo drucken lassen kann?
Danke.
-
@Garfonso Schaue Dir einmal Posting 703 an
-
@Garfonso Ja! Du brauchst
- eine Hardware, die ein jpg-Bild macht und es auf einer URL zur Verfügung stellt. Kann man selber drucken, drucken lassen oder eine ganz andere Lösung selbst machen
- eine Docker-Instanz des Wasserzaehlers, der dieses Bild ausliest und dann die Zahl als Web-Page zur weiteren Verarbeitung zur Verfügung stellt.
-
@Garfonso also wenn du ein Lego Fenster hast da passt der ESP32 perfekt rein
-
@doublesib gefällt mir, deine Lösung.
-
@doublesib
Haha, das sieht cool aus. Muss ich mal gucken, ob ich meiner Tochter davon welche abluchsen kann.... wobei... hinterher nehmen die Kinder das dann auseinander oder bauen was dran? Aber eine coole Idee.Aber gut, dann ist das wohl noch ein Projekt in meiner langen Liste.
-
Hallo zusammen,
eine Grundsätzliche Frage an @jomjol und die anderen hier:
Wäre es theoretisch möglich die Bilderkennung direkt auf dem ESP32 laufen zu lassen? Also ohne den Raspberry?
Ich gehe davon aus, dass dies aufgrund der geringen Leistung des ESP32 nicht möglich ist?
Bin Anfänger und wollte dazu mal die Meinung von einem Experten hören
Danke im Voraus.Viele Grüße
-
@Jimh
Ehrlich gesagt bin ich immer noch erstaunt, dass es auf einem Raspberry läuft... Mein Informatikstudium ist zwar jetzt auch schon > 10 Jahre her, aber Bildverarbeitung / Bilderkennung ist nach wie vor eher am oberen Spektrum des Leistungshungers. Es gibt zwar spezial Hardware, die da auch einiges kann, keine Ahnung, was da auf dem ESP32 ist. Aber neuronale Netzwerke in Hardware auswerten ist m.E. noch ziemlich am Anfang und daher auf günstiger Hardware vermutlich noch nicht zu haben.(Aber das ist nur meine halbinformierte Meinung, habe mich mit ESP32 noch nicht näher beschäftigt -> es gibt auch so Miniplatinen Kameras, die Gesichtserkennung können).
-
Hallo,
mit der neusten Version ist die Zeigererkennung schlechter geworden.
Die hat bei mir bisher nie Probleme gemacht: -
@Jimh sagte in Wasserzähler - Selfmade:
Hallo zusammen,
eine Grundsätzliche Frage an @jomjol und die anderen hier:
Wäre es theoretisch möglich die Bilderkennung direkt auf dem ESP32 laufen zu lassen? Also ohne den Raspberry?
Ich gehe davon aus, dass dies aufgrund der geringen Leistung des ESP32 nicht möglich ist?
Bin Anfänger und wollte dazu mal die Meinung von einem Experten hören
Danke im Voraus.Viele Grüße
Ich habe mir das auch schon mal angeschaut. Das Problem ist tatsächlich gar nicht so sehr die Berechnung des neuronalen Netzes, sondern die Aligmentprozedur.
Die neueste Version von Tensorflow unterstützt eine Bibliothek "TFLite", die speziell für Edge-Computing gemacht ist und auf einem ESP32 problemlos läuft. In der nächsten Version werde ich darauf umstellen (bin schon dran). Das Alignment läuft aber über OpenCV. Insbesondere die Erkennung der Referenzen braucht echt viel Rechenleistung und dafür habe ich noch keine Lösung auf dem ESP32.
Hat jemand eine gute Idee? Ich hatte schon daran gedacht, einfache Erkennungsmarken auf die Wasseruhr zu kleben. Das könnte einen sehr einfachen Algorithmus ermöglichen.
Was ist eure Meinung?
Gruß, jomjol -
@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