NEWS
Wasserzähler - Selfmade
-
@jomjol
Hallo Jomjol,
jetzt habe ich weil alles so gut funktioniert mir die Kunststoffteile für meinen Wasserzähler angepasst und gedruckt. Nun bekomme ich das alignment nicht mehr hin. kannst du da mal mir mal helfen?
von der Kamera kommt diese Bild
aber Roi sieht so aus
ich habe in der config.ini angegeben "initial_rotation_angle=347"
aber auch wenn ich hier andere Werte eingeben wird es ehr noch schlimmerwas mach ich falsch?
muss die Kamera weiter weg vom Zähler damit sie mehr aufnimmt?Danke
-
@Stev8176 Ist ein bisschen schwierig zu sagen.
Zuerst mal zum initial_rotation_angle: der soll so gewählt werden, dass das Bild grob aufrecht steht. Das könnte mit 347° gut passen, so aus dem Auge geschätzt.
Der Abstand sollte eigentlich pasen, denn man sieht alle notwendige klar und groß genug.
Das schiefe ROI-Bild bedeutet in der Regel, dass die Alignmentpunkte nicht richtig gefunden werden. Wenn du durch den Druck deiner Teile sich auch der Abstand oder die Beleuchtung geändert hat, musst du die Referenzbilder neu aufnehmen. Denn insbesondere die Größe muss genau zur Aufnahme passen. Denn die Größe wird nicht skaliert.
Hoffe, das hilf schonmal. Ansonsten schick mit mal deine Config und auch das Verzeichni "/image_tmp". Das müsstest du aber erstmal per Volume von aussen zugängig machen (analog zu /log und /config).
Gruß,
jomjol -
@jomjol
danke für den Tip mit "/image_tmp". Ich habe gesehen das er das Bild falsch gedreht hat (rot.jpg).
Dreht man das Bild mit dem Tool zur erstellen der Config (http://wasserzaehler.ignorelist.com) mit negativen Winkel und schreibt diesen Wert ohne das Minuszeichen in die config.ini dann funktioniert es.
Zur Info, ich verwende die LITE Version. Vielleicht ist es mit der "Vollversion" anderes?Ich habe mir einen neuen Adapter für meine Wasseruhr mit Deckel erstellt. Falls ihn noch jemand brauchen kann...Wasseruhr_Adapter.stl
-
@Stev8176 Danke für den Adapter - soll ich ihn auch auf Thingiverse mit dazuladen?
Ich habe mir gerade nochmal die Winkel angeschaut. Finde den Vorzeichenfehler aktuell noch nicht - muss ich noch etwas testen.
-
Ich habe jetzt mal mein GitHub und das Docker upgedated. Nachdem die rolling-lite gut läuft und ich eigentlich schon ab jetzt nur noch TfLite verwende. Habe ich die rolling-tflite in die rolling gemerged.
ACHTUNG: ihr müsst jetzt eure config-Dateien updaten, da die CNN-Files mit ".h5" nicht mehr funktionieren (Fehlermeldung wird aber angezeigt).
Gleichzeitig ist die neue Struktur so angelegt, dass ich keinen extra Branch für die Raspberry-Versionen mehr brauche. Daher habe ich das in Github jetzt auch gelöscht. Es gibt jetzt nur noch den Master - den habe ich noch nicht upgedated und die rolling Version. Das macht mir zukünftige Wartungen einfacher und weniger fehleranfällig.
Bitte gerne Feedback, falls etwas noch nicht / nicht mehr funktioniert.
-
@jomjol Ich hätte eine Bitte an Dich, kannst Du vielleicht die folgenden zwei "9" beim nächsten Update mit anlernen. Ich bekomme, egal was ich mache, immer eine "8" nach der Auswertung. Danke!
-
@jomjol
Den Adapter kannst du gerne auf Thingiverse dazunehmen.
Zu dem Vorzeichen Fehler. Wenn ich um bei meinem Bild zu bleiben es mit 347 Grad drehe ist es auf dem WYSIWYG-Tool richtig genaus so wenn ich es mit -13 Grad drehe. in der Config.ini muss ich aber damit es richtig ist 13Grad ohne Minus angeben. Bei 347 kommt das verzerrte Bild heraus. rot.jpg ist dann auch nicht waagerecht .
-
@pfried Mache ich - dauert ein paar Tage, da ich gerade ziemlich beschäftigt bin.
-
@jomjol Thx!
-
Hi,
habe jetzt die Hardware fertig gebaut, aber ich scheitere gerade an der Konfiguration... in der PDF Anleitung habe ich es so verstanden, dass man zuerst das Bild so drehen soll, dass die Zahlen möglichst waagerecht sind. Das Problem ist, wenn ich dabei nicht 90° Schritte mache, ändert sich doch die Bildgröße,weil die Ränder jetzt Diagonal sind -> von wo "messe" ich dann die Koordinaten für die Referenzpunkte? grübel
Stehe da gerade auf dem Schlauch, etwas.
Jedenfalls coole Software.
Garfonso -
@Garfonso schon mal mit dem passenden Tool von @jomjol versucht die config.ini zu erzeugen?
http://wasserzaehler.ignorelist.com/ -
@Knallochse
Ja, versuche ich gerade. Aber auch da muss ich doch das Bild drehen, oder nicht? Wenn das da krumm ist, kann ich die ROIs doch auch nicht als Rechtecke ziehen, oder? Oder kann ich das da irgendwo drehen lassen? Kriege das Alignment nicht vernünftig hin...Und ich muss ja vorher die Referenzbilder auch ausschneiden.
-
@Garfonso Bild kannst du direkt von der esp-cam holen
http://ip.esp.cam/capture_with_flashlight
Dann die 3 Referenzbilder mit Grafikprogrammen deiner Wahl erstellen -
@Garfonso ich habe meine esp-cam gleich so ausgerichtet, dass ich das Bild nicht drehen muss. Geht das bei dir nicht?
-
@Knallochse said in Wasserzähler - Selfmade:
@Garfonso ich habe meine esp-cam gleich so ausgerichtet, dass ich das Bild nicht drehen muss. Geht das bei dir nicht?
Aktuell nicht, nein. "Genau" ist es eine Drehung von 88,14°. 90° Drehung ist dann schon recht waagerecht.
//Edit: ok, jetzt hab ich es kapiert. Man kann im Tool, wenn man das "Raw" Bild hochlädt auch die Drehung durchführen lassen. Da passt der Winkel schon gut, den ich ermittelt hab, aber die Koordinaten sind alle deutlich anders, als ich sie hatte bzw. als sie beim rotierten Bild rausgekommen sind. Hm. Mal sehen, was jetzt bei rum kommt.
//Edit 2: und mit dem Hinweis auf image_tmp habe ich es nun auch hinbekommen. Die analogen Zeiger sind etwas wackelig erkannt, da guck ich mal weiter. -> was wird denn da erkannt? Ich hoffe nur die Zeigerposition, oder? Die Ziffern sind da sehr schwer zu lesen, auch als Mensch, da die auf dem Glas und dahinter nochmal drauf sind und immer doppelt erscheinen.
-
@Garfonso Zeig doch mal ein Bild deiner roi.html.
Vielleicht kann man erkennen, was da noch nicht ganz passt -
@Knallochse
Danke für das Angebot. Ich hab die Kamera jetzt nochmal anders montiert und aktuell sehen die Ergebnisse recht gut aus. Die analogen Werte waren am Ende nicht das Problem. Irgendwie hatte ich heute den ganzen Tag Spiegelungen auf den ersten beiden Zahlen, die zu Problemen geführt haben. Da half nur den ESP32 rumdrehen, so dass die LED anders ausgerichtet ist.Nun fehlt höchstens noch ein schönes Gehäuse. Aber da weiß ich noch nicht so richtig weiter (hab keine Ahnung von 3D Druck und bin mir nicht sicher, ob ich das Projekt auch noch starten will )
-
Hallo,
ich habe den Wasserzähler nun einige Tage laufen aber es gibt immer wieder Probleme mit der Erkennung, wobei ich glaube das Foto eine recht gute Qualität hat.
Heute habe ich nochmal den Wert "gestellt" mit folgendem Aufruf:
http://192.168.0.30:3000/setPreValue.html?value=23818.1021
Als Ergebnis wurde angezeigt: Last value set to: 23818.1021Nun habe ich die Erkennung angefragt:
http://192.168.0.30:3000/wasserzaehler.html?usePreValue&single
und folgende Antwort erhalten:
23818.1021 Error - RateTooHigh ({:.4f})Error - NegativeRate 2381.099Wie kann ich die Erkennung zurückstellen??
Gibt es bei der Software eine Möglichkeit Bilder selber zu trainieren ?Es gibt z.B. Probleme mit 1 und 7 bei der letzten Ziffer Stelle
Obwohl die Auslosung jede Stunde Läuft werden pro Tag nur 1 bis 2 Stände erfasst - und dann manchmal noch falsch
-
@ehome Du kannst die Werte jederzeit wieder mit setPreValue anpassen:
http://server-ip:3000/setPreValue.html?value=2381.099
-
Habe mich jetzt 2 Tage eingelesen und bereits vieles zum laufen gebracht! tolles Projekt mit sehr viel Aufwand deinerseits!!
- ESP32 mit Cam funktioniert und liefert ein Bild
- Die Linse habe ich präpariert und konnte den Fokus scharf stellen
- Doker "raspi latest" läuft auf einem Raspberry 4
- http://server-ip:3000/wasserzaehler.html liefert ebenfalls Daten
- Die Konfiguration habe ich mit dem WYSIWYG tool gemacht, auch das hat tiptop funktioniert und ist eine grosse Hilfe!
Noch offen:
- Der 3D-Drucker ist unterwegs. Deshalb konnte ich bis jetzt nicht mit dem schwarzen Gehäuse testen. Sagen wir mal mit einem provisorischen "Gebastel" und vielen Problemen wegen der Spiegelung Aber momentan habe ich ein ganz akzeptables Bild.
roi.html liefert das hier:
wasserzaehler.html das:
992N.867 00992N 867Die Zahlen passen soweit, ausser die 8 hat er noch nicht richtig erkannt.
Was aber gar nicht passt sind die Zeiger. Kann es sein, dass diese nicht "angelernt" sind? Die sind ja definitiv nicht identisch mit denen von deinem Zähler. Oder habe ich sonst noch was nicht berücksichtigt?Hinzu kommt ja auch noch, dass die erste Kommastelle bei meinem Zähler noch als Zahl geliefert wird. Ist das ein Problem? Schlussendlich habe ich die Zahlen als Rohdaten zur Verfügung, und das kriege ich in openHAB sicher irgendwie richtig angezeigt. Ich frage eher wegen der Plausibilitätsprüfung und anderen Logiken die du eingebaut hast.
Denke das reicht mal
Besten Dank
Michael