NEWS
Wasserzähler - Selfmade
-
Servus,
also ich habe alles aufgebaut und der node mini d1 liefert mir auch ein Bild. die erforderlichen Pakete habe ich alle nach vielen Schwirigkeiten installiert. Jetzt bekommen ich den Server nicht gestartet und dieses ist im LOG
root@ioBroker2-rock64:/opt/iobroker/Wasserzähler# node wasseruhr.js internal/modules/cjs/loader.js:805 return process.dlopen(module, path.toNamespacedPath(filename)); ^ Error: /opt/iobroker/node_modules/@tensorflow/tfjs-node/lib/napi-v4/tfjs_binding.node: cannot open shared object file: No such file or directory at Object.Module._extensions..node (internal/modules/cjs/loader.js:805:18) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Module.require (internal/modules/cjs/loader.js:690:17) at require (internal/modules/cjs/helpers.js:25:18) at Object.<anonymous> (/opt/iobroker/node_modules/@tensorflow/tfjs-node/dist/index.js:44:16) at Module._compile (internal/modules/cjs/loader.js:776:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10) at Module.load (internal/modules/cjs/loader.js:653:32)
die Datei "tfjs_binding.node" befindet sich an dem geforderten Ort. Ich komme da jetzt nicht mehr weiter? Hat vielleicht jemand eine Idee?
-
@intruder7 hast du sowohl
tensorflow/tfjs-node
und auchtensorflow/tfjs
pernpm install
installiert? Ich musste dort auch ein bisschen probieren.
Du bist nicht der einzige, der dort Schwierigkeiten hat. Ich überlege gerade, ob ich nicht einen Virtuellen Server aufsetzte und hochlade. Dazu brauche ich aber etwas Zeit, da ich alles von Null auf aufsetzen müsste.
Würde eine "VirtualBox"-Maschine mit Ubuntu helfen? -
@jomjol
perfekt wäre sogar noch ein dockerimage! Habe es halbwegs zum laufen bekommen aber nur wenn ich Zeile 44 in der indes.js auskommentiert habe. Allerdings verarbeitet er dann nur verzeerte Bilder als wenn das Allignment nicht funktioniert. dieses habe ich dann in der lib_image_cut.js bei der Funktion Allignment umgangen indem ich return = source gemacht habe. Musste dann natürlich die ganzen Koordinaten in der ini anpassen. Ist nicht das gelbe vom Ei aber zum Testen ging das erstmal. Mann darf dann auch nicht an den Zähler kommen. dann ist wieder alles verstellt. -
@jomjol
achso, ja hatte beide Pakete installiert -
Auch die Erkennung ist alles andere als genau.
-
@intruder7 Kannst du mir mal ein paar jeweils von deinen Ziffern irgendwo zum Download bereitstellen? Das neuronale Netzwerk ist momentan nur auf meine Bilder gelernt. Vermutlich läßt sich das mit ein bischen Training leicht verbessern. Wenn allein schon die Bildgrößen nicht passen, kann die Erkennung schief gehen.
-
@jomjol
reichen die jetzigen Bilder so wie sie getrennt als jpg auf dem server abgespeichert werden? -
die aktuellen
der rest wird schwierig.
-
@jomjol Habe mir gerade mal die Bilder angeschaut: Zwei Unterschiede:
- Du hast ein unterschiedliches Verhältnis von Breite zu Höhe im Vergleich zu meinem Bildausschnitt:
bei mir: 55x90 - bei dir 40x60 - Deine Bilder scheinen etwas größer zu sein.
Die Bilderkennung skaliert die Bilder auf eine Einheitsgröße, dadruch verzerrt sich die Zahl. Die absolute Bildgröße ist nicht so wichtig, wird sowie runter skaliert.
Dein Bildausschnitt rescaliert auf 55x90:
Mein Bildausschnitt:Versuche daher mal, den Ausschnitt möglichst nahe an ein Verhältnis von 55x90 Pixeln zu kommen, dass sollte schon helfen. Ich werde parallel meine Bilderkennung mit größeren Größenschwankungen trainieren.
- Du hast ein unterschiedliches Verhältnis von Breite zu Höhe im Vergleich zu meinem Bildausschnitt:
-
hier nochmal erwas besser ausgerichtet
-
@jomjol
okay probiere ich -
@jomjol
das Ergebnis
und hier die Einzelbilder
-
@intruder7 CNN-Training mit 40% Größenschwankung in alle Richtung läuft - dauert aber etwas auf meinem Laptop im Urlaub:
-
@jomjol
habs jetzt mal um 20 % verkleinert und die zahlen zentriert.
jetzt passt es. wie es ist wenn sich was bewegt kann ich noch nicht sagen
-
@intruder7 Super!
Training vom CNN ist auch fertig. Ich habe den Random-Zoom-Faktor im Training von +/-10% auf +/-40% vergrößert. Gesamtes System ist unter neuen Ordner "Experimental" abgelegt:
https://github.com/jomjol/water-meter-system-complete/tree/master/experimental
Du musst aber nur zwei Dateien für die digitalen Ziffern unter\lib\DL_model_digital_counter
austauschen (.bin & .json) -
@jomjol
hab nur die beiden Dateien getauscht.
Ergebnis
-
@intruder7 Kannst du mir das Bild von der falschen 2 schicken? Bleib dann erstmal bei der alten Version - scheint stabiler, wenn auch für mich noch nicht ganz klar.
-
@jomjol
falsche zwei
-
@intruder7 Habe sie gerade bei mir durchgelassen (neu trainiertes CNN) - zeigt die richtigen Werte. Wenn du wieder ein paar falsche Ziffern hast, schicke sie mir einfach.
-
@jomjol
ja hatte die Koordinaten noch um ein paar Pixel verschoben. Dann ging es auch bei mir. Mal schauen wie es die nächsten Tage läuft. Das allignment musst du dir unbedingt nochmal anschauen. Hatte ich bei mir deaktiviert. den Referenzpunkt "ZF" z.B. gibt es bei mir nicht. Willst du die Sache mit dem Dockerimage noch umsetzen?