Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Wasserzähler - Selfmade

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Wasserzähler - Selfmade

Scheduled Pinned Locked Moved Hardware
wasser wasserzählerhow-to
1.1k Posts 48 Posters 389.5k Views 72 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J jomjol

    @el_kassi
    freut mich, dass du meinen Zaehler verwendet - eine Menge fragen - ich versuche es erstmal kurz - bitte gerne gerne bei weiteren Details nachfragen.

    zu 1) & 2):
    Schau dir mal die manuelle Erstellung der Alignment Parameter an, dort findest du die Koordinaten und deren Bedeutung:
    https://github.com/jomjol/water-meter-system-complete/blob/master/images/Alignment_procedure_draft.pdf

    zu 3)
    Ich schaffe es nicht, das Tool zum Erstellen der Config.ini immer auf dem neuesten Stand zu halten. D.h. er kommt nicht immer mit den neuesten ini-Parameter zu recht. Am besten verwendest du dort die Default-Config und erstellst damit das Alignment und die ROIs und kopiertst dann aus dem Config.ini File die entsprechenden Zeilen in dein eigenes aus dem Download von Github.
    Ich werde bei Gelegenheit das Tool entsprechend anpassen - habe aber gerade keine Kapa dafür

    zu 4)
    Bis jetzt sind nur Ziffern mit schwarzer Schrift auf weißem Grund geteached. Ich nehme neue Varianten sehr gerne mit auf.
    Schalt bei deinem Zähler das Logging ein und schicke mit dann so ca. 3-4 Bilder pro Ziffer und Stelle. Ich integriere sie dann.

    Viel Erfolg und bei Fragen gerne melden,

    jomjol

    E Offline
    E Offline
    el_kassi
    wrote on last edited by el_kassi
    #981

    @jomjol kann ich absolut verstehen, dass man nicht immer Zeit hat. Kenne ich selber. Trotzdem schonmal großen Dank für die schnelle Rückmeldung. Ein paar neue Fragen ergeben sich:

    zu 1) Danke für das PDF. Das hilft (hoffentlich). hier ist von einem prealignment parameter die Rede. Ist das das selbe wie

    [alignment]
    initial_rotation_angle=-1.0
    

    Nach einigem hin und her hat er dann auch dir Bilder akzeptiert. Man muss allerdings einen AnalogCounter definieren, auch wenn es Disabled ist, da sonst auch das script im Dockerimage meckert.

    1. Ich speichere jetzt Ziffern in den digital_digit-Unterordnern, d.h. meist NaN, manchmal halt auch falsch (oder in 10?!)
      Zum Lernen muss ich sie dir dann wahrscheinlich zusenden, richtig?
      Es reicht nicht, d.h. er lernt nicht, wenn ich die Bilder nur in den richtigen Ordner (0-9) verschiebe.
      Oder kann ich das irgendwie anders selber?

    2. Habe mich gefragt, ob es ausreicht, das Bild zu negieren und in s/w zu konvertieren - dann hätte ich ja schwarz auf weiß bzw. schwarz auf grau beim rotem Hintergrund.

    3. Was ich noch ändern werde ist, dass du momentan davon ausgehst, dass digital = vorkomma und analog = nachkomma. Da ich nur digital habe, muss ich ihm eine Wertigkeit der Ziffern mitgeben. Evtl. als Parameter in der config. Ich schau mal.
      In diesem Zuge habe ich mich gefragt, ob es klappen könnte, wenn ich meine drei letzten Ziffern als AnalogCounter erstelle, aber als Modelfile das digitale nehme. Könnte das klappen? Ich kann ja in der config dx und dy beliebig wählen und muss es dort nicht quadratisch eingeben. Da ich noch keine Ziffern habe, die funktionieren, kann ich das nicht richtig ausprobieren.

    J 1 Reply Last reply
    0
    • M michaeljoos

      Tiptop, alles klar. Ich war noch auf raspi-latest.

      Jetzt scheint es bei mir nun doch, dass wir auch die Ziffern anlernen dürfen/sollten/müssen :D
      Mit dem h5-File wurde komischerweise die Ziffer 3 immer richtig erkannt, obwohl die definitiv anders ausschaut als bei euch. Jetzt mit dem tflite-File wird diese als 1 erkannt:

      9b37499b-2ec0-4651-979b-8f6584e4cc6c-image.png

      b6d65b86-1803-4b69-8df1-6d175b6038c0-image.png

      Aber kein Stress...bin momentan 2 Wochen in Kärnten im Urlaub :)

      @jomjol Reicht es dir, wenn ich die Ziffern so wie oben die 3 aus dem Log sende?

      Gruss
      Michael

      J Offline
      J Offline
      jomjol
      wrote on last edited by
      #982

      @michaeljoos
      Bitte die Bilder im jpg-Format idealerweise als ZIP mit Ordner von 0 - 10 (10=NaN) mit jeweils 3-4 Ziffern je Typ schicken.
      Besonders die Rot auf Schwarz wären ein echter Mehrgewinn für dass neuronale Netz, von dem dann auch andere Nutzer profitieren.

      Bitte Bilder nicht im png-Format - das kann mein Algo momentan nicht und ich müsste dann jedes Bild umwandeln.

      Danke,
      jomjol

      M 1 Reply Last reply
      0
      • E el_kassi

        @jomjol kann ich absolut verstehen, dass man nicht immer Zeit hat. Kenne ich selber. Trotzdem schonmal großen Dank für die schnelle Rückmeldung. Ein paar neue Fragen ergeben sich:

        zu 1) Danke für das PDF. Das hilft (hoffentlich). hier ist von einem prealignment parameter die Rede. Ist das das selbe wie

        [alignment]
        initial_rotation_angle=-1.0
        

        Nach einigem hin und her hat er dann auch dir Bilder akzeptiert. Man muss allerdings einen AnalogCounter definieren, auch wenn es Disabled ist, da sonst auch das script im Dockerimage meckert.

        1. Ich speichere jetzt Ziffern in den digital_digit-Unterordnern, d.h. meist NaN, manchmal halt auch falsch (oder in 10?!)
          Zum Lernen muss ich sie dir dann wahrscheinlich zusenden, richtig?
          Es reicht nicht, d.h. er lernt nicht, wenn ich die Bilder nur in den richtigen Ordner (0-9) verschiebe.
          Oder kann ich das irgendwie anders selber?

        2. Habe mich gefragt, ob es ausreicht, das Bild zu negieren und in s/w zu konvertieren - dann hätte ich ja schwarz auf weiß bzw. schwarz auf grau beim rotem Hintergrund.

        3. Was ich noch ändern werde ist, dass du momentan davon ausgehst, dass digital = vorkomma und analog = nachkomma. Da ich nur digital habe, muss ich ihm eine Wertigkeit der Ziffern mitgeben. Evtl. als Parameter in der config. Ich schau mal.
          In diesem Zuge habe ich mich gefragt, ob es klappen könnte, wenn ich meine drei letzten Ziffern als AnalogCounter erstelle, aber als Modelfile das digitale nehme. Könnte das klappen? Ich kann ja in der config dx und dy beliebig wählen und muss es dort nicht quadratisch eingeben. Da ich noch keine Ziffern habe, die funktionieren, kann ich das nicht richtig ausprobieren.

        J Offline
        J Offline
        jomjol
        wrote on last edited by
        #983

        @el_kassi sagte in Wasserzähler - Selfmade:

        @jomjol kann ich absolut verstehen, dass man nicht immer Zeit hat. Kenne ich selber. Trotzdem schonmal großen Dank für die schnelle Rückmeldung. Ein paar neue Fragen ergeben sich:

        zu 1) Danke für das PDF. Das hilft (hoffentlich). hier ist von einem prealignment parameter die Rede. Ist das das selbe wie

        [alignment]
        initial_rotation_angle=-1.0
        

        Ja - bin mir nur nicht sicher, ob negative Winkel funktionieren oder ob du doch 359 statt -1 schreiben musst. Bitte probieren.

        Nach einigem hin und her hat er dann auch dir Bilder akzeptiert. Man muss allerdings einen AnalogCounter definieren, auch wenn es Disabled ist, da sonst auch das script im Dockerimage meckert.

        1. Ich speichere jetzt Ziffern in den digital_digit-Unterordnern, d.h. meist NaN, manchmal halt auch falsch (oder in 10?!)
          Zum Lernen muss ich sie dir dann wahrscheinlich zusenden, richtig?
          Es reicht nicht, d.h. er lernt nicht, wenn ich die Bilder nur in den richtigen Ordner (0-9) verschiebe.
          Oder kann ich das irgendwie anders selber?

        Ja, du solltest die Bilder mir schicken und ich mache regelmäßig ein Update der tflite-Files. Du kannst auch selber lernen. Das habe ich auch veröffentlich (analog: https://github.com/jomjol/neural-network-analog-needle-readout, digital: https://github.com/jomjol/neural-network-digital-counter-readout). Aber ich update das regelmäßig mit euren Inputs, dann profitieren alle davon.
        Das Selbstlernen funktioniert so nicht. Du braucht auch eine etwas umfangreichere Python-Bibliothek zum Lernen, wie zum reinen Anwenden.

        Zum Benennung: in älternen Versionen gab es noch die Kategorie "NaN", inzwischen habe ich sie in "10" umbenannt, da das neuranale Netz die Klassen einfach durchnummeriert und ich mir die Übersetzung "10"="NaN" so spare.

        1. Habe mich gefragt, ob es ausreicht, das Bild zu negieren und in s/w zu konvertieren - dann hätte ich ja schwarz auf weiß bzw. schwarz auf grau beim rotem Hintergrund.

        Könnte man vielleicht so machen, will ich aber bewußt nicht. Das neuronale Netz ist so allgemein gehalten, dass es ziemlich viele Inputs verarbeiteten kann (Convolutional mit vielen Filtern). Dadurch brauche ich bis auf eine Skalierung keine weitere Bilderverarbeitung. Dass müsste auch noch mit anderen Ziffern- und Hintergrundfarben gut funktionieren - was aber noch zu beweisen wäre. Daher großes Interesse an deinen Ziffern auf schwarzem Grund.

        1. Was ich noch ändern werde ist, dass du momentan davon ausgehst, dass digital = vorkomma und analog = nachkomma. Da ich nur digital habe, muss ich ihm eine Wertigkeit der Ziffern mitgeben. Evtl. als Parameter in der config. Ich schau mal.
          In diesem Zuge habe ich mich gefragt, ob es klappen könnte, wenn ich meine drei letzten Ziffern als AnalogCounter erstelle, aber als Modelfile das digitale nehme. Könnte das klappen? Ich kann ja in der config dx und dy beliebig wählen und muss es dort nicht quadratisch eingeben. Da ich noch keine Ziffern habe, die funktionieren, kann ich das nicht richtig ausprobieren.

        Nein das funktioniert nicht, da das analoge Netz als Output eine einziges Neuron mit analoger Zahl (= Zeigerstellung) hat und das digitaler Netz zur Klassifizierung 10 Neuronen (0-9 + NaN) hat. Das muss dann in der Weiterverarbeitung berücksichtigt werden und ist nicht parametrisiert.
        Eine Wertigkeit für die Ziffern als Parameter wäre vermutlich die einfachere Lösung (z.B: x0.1) - mometan arbeite ich aber an einem anderen Projekt, daher Prio B.

        E 1 Reply Last reply
        0
        • J jomjol

          @el_kassi sagte in Wasserzähler - Selfmade:

          @jomjol kann ich absolut verstehen, dass man nicht immer Zeit hat. Kenne ich selber. Trotzdem schonmal großen Dank für die schnelle Rückmeldung. Ein paar neue Fragen ergeben sich:

          zu 1) Danke für das PDF. Das hilft (hoffentlich). hier ist von einem prealignment parameter die Rede. Ist das das selbe wie

          [alignment]
          initial_rotation_angle=-1.0
          

          Ja - bin mir nur nicht sicher, ob negative Winkel funktionieren oder ob du doch 359 statt -1 schreiben musst. Bitte probieren.

          Nach einigem hin und her hat er dann auch dir Bilder akzeptiert. Man muss allerdings einen AnalogCounter definieren, auch wenn es Disabled ist, da sonst auch das script im Dockerimage meckert.

          1. Ich speichere jetzt Ziffern in den digital_digit-Unterordnern, d.h. meist NaN, manchmal halt auch falsch (oder in 10?!)
            Zum Lernen muss ich sie dir dann wahrscheinlich zusenden, richtig?
            Es reicht nicht, d.h. er lernt nicht, wenn ich die Bilder nur in den richtigen Ordner (0-9) verschiebe.
            Oder kann ich das irgendwie anders selber?

          Ja, du solltest die Bilder mir schicken und ich mache regelmäßig ein Update der tflite-Files. Du kannst auch selber lernen. Das habe ich auch veröffentlich (analog: https://github.com/jomjol/neural-network-analog-needle-readout, digital: https://github.com/jomjol/neural-network-digital-counter-readout). Aber ich update das regelmäßig mit euren Inputs, dann profitieren alle davon.
          Das Selbstlernen funktioniert so nicht. Du braucht auch eine etwas umfangreichere Python-Bibliothek zum Lernen, wie zum reinen Anwenden.

          Zum Benennung: in älternen Versionen gab es noch die Kategorie "NaN", inzwischen habe ich sie in "10" umbenannt, da das neuranale Netz die Klassen einfach durchnummeriert und ich mir die Übersetzung "10"="NaN" so spare.

          1. Habe mich gefragt, ob es ausreicht, das Bild zu negieren und in s/w zu konvertieren - dann hätte ich ja schwarz auf weiß bzw. schwarz auf grau beim rotem Hintergrund.

          Könnte man vielleicht so machen, will ich aber bewußt nicht. Das neuronale Netz ist so allgemein gehalten, dass es ziemlich viele Inputs verarbeiteten kann (Convolutional mit vielen Filtern). Dadurch brauche ich bis auf eine Skalierung keine weitere Bilderverarbeitung. Dass müsste auch noch mit anderen Ziffern- und Hintergrundfarben gut funktionieren - was aber noch zu beweisen wäre. Daher großes Interesse an deinen Ziffern auf schwarzem Grund.

          1. Was ich noch ändern werde ist, dass du momentan davon ausgehst, dass digital = vorkomma und analog = nachkomma. Da ich nur digital habe, muss ich ihm eine Wertigkeit der Ziffern mitgeben. Evtl. als Parameter in der config. Ich schau mal.
            In diesem Zuge habe ich mich gefragt, ob es klappen könnte, wenn ich meine drei letzten Ziffern als AnalogCounter erstelle, aber als Modelfile das digitale nehme. Könnte das klappen? Ich kann ja in der config dx und dy beliebig wählen und muss es dort nicht quadratisch eingeben. Da ich noch keine Ziffern habe, die funktionieren, kann ich das nicht richtig ausprobieren.

          Nein das funktioniert nicht, da das analoge Netz als Output eine einziges Neuron mit analoger Zahl (= Zeigerstellung) hat und das digitaler Netz zur Klassifizierung 10 Neuronen (0-9 + NaN) hat. Das muss dann in der Weiterverarbeitung berücksichtigt werden und ist nicht parametrisiert.
          Eine Wertigkeit für die Ziffern als Parameter wäre vermutlich die einfachere Lösung (z.B: x0.1) - mometan arbeite ich aber an einem anderen Projekt, daher Prio B.

          E Offline
          E Offline
          el_kassi
          wrote on last edited by
          #984

          @jomjol alles klar.

          Schwarzer Hintergrund kann leider etwas dauern, da das die Vorkommastellen sind.
          Du erwähntest irgendwo 3-4 Bilder pro Ziffer. Sollten die dann von verschiedenen Stellen sein, da sie sich ja ggf (Winkel, Licht) leicht unterscheiden? Und brauchst du die auch mit verschiedenem Drehwinkel, also Bilder, wo die 2 zwar komplett zu sehen ist, aber mal mittig, mal am oberen Rand, mal am unteren? Das könnte dann noch länger dauern.

          Roter Hintergrund dürfte bald durch sein, zumindest wenn du sie nicht von jeder Stelle brauchst, sondern die letzte und ggf. vorletzte ausreicht.

          Zwecks Wertigkeit: kein Thema, dafür nehm ich mir mal die Zeit. Will es ja zum Laufen bekommen ;)

          J 1 Reply Last reply
          0
          • E el_kassi

            @jomjol alles klar.

            Schwarzer Hintergrund kann leider etwas dauern, da das die Vorkommastellen sind.
            Du erwähntest irgendwo 3-4 Bilder pro Ziffer. Sollten die dann von verschiedenen Stellen sein, da sie sich ja ggf (Winkel, Licht) leicht unterscheiden? Und brauchst du die auch mit verschiedenem Drehwinkel, also Bilder, wo die 2 zwar komplett zu sehen ist, aber mal mittig, mal am oberen Rand, mal am unteren? Das könnte dann noch länger dauern.

            Roter Hintergrund dürfte bald durch sein, zumindest wenn du sie nicht von jeder Stelle brauchst, sondern die letzte und ggf. vorletzte ausreicht.

            Zwecks Wertigkeit: kein Thema, dafür nehm ich mir mal die Zeit. Will es ja zum Laufen bekommen ;)

            J Offline
            J Offline
            jomjol
            wrote on last edited by
            #985

            @el_kassi Unterschiedliche Beleuchtung etc. ist wichtiger wie die Variation der genauen Position innerhalb eines ROIs.
            Letzteres kompensiere ich durch einen random Shift während des Trainings (zusätzlich zu Streckung und Intensität). Das macht das neuronale Netz in Summe stabiler gegenüber der genauen Ausrichtung der ROIs. Scheint sich auch zu bewähren, denn bei fast allen Usern liefert es auf Anhieb ganz gute Ergebnisse.

            Du kannst mir auch gerne einfach mal einen Zwischenstand schicken, wenn die Datenerfassung länger dauert. Ich kann mit wenig Aufwand alle 2-3 Wochen mal ein Update für die tflite-Files erstellen. Bei mir ist alles eingerichtet.

            J 1 Reply Last reply
            0
            • J jomjol

              @el_kassi Unterschiedliche Beleuchtung etc. ist wichtiger wie die Variation der genauen Position innerhalb eines ROIs.
              Letzteres kompensiere ich durch einen random Shift während des Trainings (zusätzlich zu Streckung und Intensität). Das macht das neuronale Netz in Summe stabiler gegenüber der genauen Ausrichtung der ROIs. Scheint sich auch zu bewähren, denn bei fast allen Usern liefert es auf Anhieb ganz gute Ergebnisse.

              Du kannst mir auch gerne einfach mal einen Zwischenstand schicken, wenn die Datenerfassung länger dauert. Ich kann mit wenig Aufwand alle 2-3 Wochen mal ein Update für die tflite-Files erstellen. Bei mir ist alles eingerichtet.

              J Offline
              J Offline
              jomjol
              wrote on last edited by
              #986

              @all es gibt eine neue rolling-Version. Dort habe ich dank des Commits des github-users kassi eine deutlich bessere und schlankere Docker-Erstellung implementiert.

              Arbeitsverzeichnis ist jetzt "/app", anstatt "/", daher muss beim Start von Docker das Einbinden von log und config leicht modifiziert werden:

              /config --> /app/config
              /log --> /app/log

              Zusäzlicher Hinweis: wer mit Portainer seinen Docker verwaltet, muss auch händisch das Arbeitsverzeichnis updaten (auf /app).

              E 1 Reply Last reply
              0
              • J jomjol

                @all es gibt eine neue rolling-Version. Dort habe ich dank des Commits des github-users kassi eine deutlich bessere und schlankere Docker-Erstellung implementiert.

                Arbeitsverzeichnis ist jetzt "/app", anstatt "/", daher muss beim Start von Docker das Einbinden von log und config leicht modifiziert werden:

                /config --> /app/config
                /log --> /app/log

                Zusäzlicher Hinweis: wer mit Portainer seinen Docker verwaltet, muss auch händisch das Arbeitsverzeichnis updaten (auf /app).

                E Offline
                E Offline
                el_kassi
                wrote on last edited by
                #987

                @jomjol Noch ein Hinweis: man kann jetzt mit einmalig

                docker build --tag watermeter:local -f Dockerfile_synology .
                

                und

                docker run -p 3000:3000 --mount type=bind,source=(PATH_TO_LOCAL_CONFIG,target=/app/config --mount type=bind,source=/PATH_TO_LOCAL_LOG,target=/app/log --rm --mount type=bind,source="/path/to/water-meter-system-complete/code",target=/app watermeter:local
                

                den Code bearbeiten und lokal laufen lassen (läuft bis jetzt sauber unter MacOS).
                Nach Code-Änderungen reicht ein CTRL-C und erneutes docker run ..., um den Container auf den neuesten Stand zu bringen. Neues docker build ist nicht notwendig, da das code Verzeichnis in /app gemountet ist.

                Leider reicht es in Python nicht aus, den Code einfach zu ändern, wie in anderen Sprachen bzw Frameworks, die code dynamisch nachladen können. Aber es sollte ein Geschwindigkeitsboost sein, auf das build verzichten zu können.

                1 Reply Last reply
                0
                • pfriedP Offline
                  pfriedP Offline
                  pfried
                  wrote on last edited by pfried
                  #988

                  @jomjol Kannst Du bitte nochmals darlegen, was man alles Ändern muss (auch in der config.ini) Muss man die Verzeichnisse config und log nun unter app transferieren?

                  Nachtrag: Muss man im Aufruf nun überall app einfügen?

                  sudo docker run -d --name wasser --restart unless-stopped -p 3000:3000 --mount type=bind,source=/home/pi/Wasserzaehler_4.2/code/app/config,target=/app/config --mount type=bind,source=/home/pi/Wasserzaehler_4.2/code/app/log,target=/app/log --memory-swap -1 jomjol/wasserzaehler:raspi-rolling
                  
                  
                  J 1 Reply Last reply
                  0
                  • pfriedP pfried

                    @jomjol Kannst Du bitte nochmals darlegen, was man alles Ändern muss (auch in der config.ini) Muss man die Verzeichnisse config und log nun unter app transferieren?

                    Nachtrag: Muss man im Aufruf nun überall app einfügen?

                    sudo docker run -d --name wasser --restart unless-stopped -p 3000:3000 --mount type=bind,source=/home/pi/Wasserzaehler_4.2/code/app/config,target=/app/config --mount type=bind,source=/home/pi/Wasserzaehler_4.2/code/app/log,target=/app/log --memory-swap -1 jomjol/wasserzaehler:raspi-rolling
                    
                    
                    J Offline
                    J Offline
                    jomjol
                    wrote on last edited by
                    #989

                    @pfried Du musst nur die Pfade im Start des Docker-Containers anpassen, so wie du es beschrieben hast:
                    docker run ....,target=/app/config ...,target=/app/log ...

                    In der Config.ini etc. musst du nichts ändern.

                    Intern im Docker-Container liegen jetzt die Verzeichnisse nicht mehr im Root Verzeichnis /, sondern sind jetzt alle ins Unterverzeichnis /app umgezogen worden. Dass ermöglichst zum Beispiel solche Tricks, wie sie @el_kassi eins weiter oben beschrieben hat. Das macht das Testen und Programmieren etwas einfacher.

                    Sorry für die Umstände!

                    1 Reply Last reply
                    0
                    • pfriedP Offline
                      pfriedP Offline
                      pfried
                      wrote on last edited by
                      #990

                      @jomjol Kein Problem, wenn man weiß was zu tun ist :blush:

                      1 Reply Last reply
                      0
                      • J jomjol

                        @michaeljoos
                        Bitte die Bilder im jpg-Format idealerweise als ZIP mit Ordner von 0 - 10 (10=NaN) mit jeweils 3-4 Ziffern je Typ schicken.
                        Besonders die Rot auf Schwarz wären ein echter Mehrgewinn für dass neuronale Netz, von dem dann auch andere Nutzer profitieren.

                        Bitte Bilder nicht im png-Format - das kann mein Algo momentan nicht und ich müsste dann jedes Bild umwandeln.

                        Danke,
                        jomjol

                        M Offline
                        M Offline
                        michaeljoos
                        wrote on last edited by
                        #991

                        @jomjol Es hat mir einfach keine Ruhe gelassen und ich wollte wissen, ob ich das mit dem Neural Network auch irgendwie und ohne Vorwissen hinkriege :grin:

                        Heute habe ich mir Anaconda, Tensorflow, Keras und alles was es benötigt auf meinem Laptop installiert und ein paar Bilder von der Ziffer 3 meines Zählers (die als Ziffer 1 erkannt wurde) im Verzeichnis \ziffer_sortiert_raw\3\ abgelegt.

                        1. jupyter notebook gestartet
                        2. Image_Preparation.ipynb ausgeführt
                        3. Train_CNN_Digital-Readout.ipynb ausgeführt
                        4. Neues tflite-File auf den Raspi kopiert
                        5. Docker neu gestartet

                        Resultat:

                        de7c98cc-c296-47ab-84bc-a5eac4d318a6-image.png

                        993N.662 00993N 662

                        Die 3 wird erkannt :muscle: !!

                        Und das alles nur dank deiner riesigen Vorarbeit & Dokumentation! Besten Dank nochmals! Ok, ein paar Hürden gab es schon zu überwinden bis alles lief.

                        Ich werde dir später trotzdem meine gesammelten Ziffern schicken damit alle profitieren. Kann einfach etwas dauern, da sich mein Wasserverbrauch ziemlich in Grenzen hält.

                        Gruss
                        Michael

                        E 1 Reply Last reply
                        0
                        • E Offline
                          E Offline
                          el_kassi
                          wrote on last edited by
                          #992

                          @jomjol hier einmal mit rotem Hintergrund. rot.zip
                          Viel Variation im Licht ist nicht, da es ziemlich konstant und in einer abgeschlossenen Halterung verbaut ist.

                          1 Reply Last reply
                          0
                          • E Offline
                            E Offline
                            el_kassi
                            wrote on last edited by el_kassi
                            #993

                            Und hier eine erste Fuhre weiß auf schwarz. (0,2,3,4). schwarz.zip

                            Wie es ausschaut gibt's hier keine in 10, da der Zähler scheinbar sauber umspringt. Zumindest erkenne ich das so aus den Bilder, aber ist noch nicht vie Zeit ins Land gezogen.

                            Wenn noch jemand einen Sensus 620 hat, kann er gerne hier mithelfen, Bilder hochzuladen. :-)

                            J 1 Reply Last reply
                            0
                            • E el_kassi

                              Und hier eine erste Fuhre weiß auf schwarz. (0,2,3,4). schwarz.zip

                              Wie es ausschaut gibt's hier keine in 10, da der Zähler scheinbar sauber umspringt. Zumindest erkenne ich das so aus den Bilder, aber ist noch nicht vie Zeit ins Land gezogen.

                              Wenn noch jemand einen Sensus 620 hat, kann er gerne hier mithelfen, Bilder hochzuladen. :-)

                              J Offline
                              J Offline
                              jomjol
                              wrote on last edited by
                              #994

                              @el_kassi Okay, danke. Du schneidest ziemlich knapp aus. Etwas mehr Rand könnte zusätzlich helfen und macht das Bild robuster gegenüber einen Shift im Alignment.
                              Ich melde mich, wenn ich die Bilder trainiert habe.

                              E 1 Reply Last reply
                              0
                              • J jomjol

                                @el_kassi Okay, danke. Du schneidest ziemlich knapp aus. Etwas mehr Rand könnte zusätzlich helfen und macht das Bild robuster gegenüber einen Shift im Alignment.
                                Ich melde mich, wenn ich die Bilder trainiert habe.

                                E Offline
                                E Offline
                                el_kassi
                                wrote on last edited by
                                #995

                                @jomjol Ok, kann ich einstellen. Ich bin allerdings schon am Rand des Rades. Wenn ich oben/unten mehr dazu gebe, dann kommt blaue Umrandung dazu.
                                capture_with_flashlight_4000_uxga.jpg

                                Noch was: Da meine 4 bereits oft als 8 falsch erkannt wird (und andere auch), macht es wahrscheinlich Sinn, für die weiß auf schwarz/rot gelagerten Ziffern eine eigene tflite Datei anzulegen, die man dann auswählen kann. Ansonsten dürfte es schwierig werden, was erkannt wird am Ende.

                                J 1 Reply Last reply
                                0
                                • E el_kassi

                                  @jomjol Ok, kann ich einstellen. Ich bin allerdings schon am Rand des Rades. Wenn ich oben/unten mehr dazu gebe, dann kommt blaue Umrandung dazu.
                                  capture_with_flashlight_4000_uxga.jpg

                                  Noch was: Da meine 4 bereits oft als 8 falsch erkannt wird (und andere auch), macht es wahrscheinlich Sinn, für die weiß auf schwarz/rot gelagerten Ziffern eine eigene tflite Datei anzulegen, die man dann auswählen kann. Ansonsten dürfte es schwierig werden, was erkannt wird am Ende.

                                  J Offline
                                  J Offline
                                  jomjol
                                  wrote on last edited by
                                  #996

                                  @el_kassi Der blaue Rand dürfte nicht so sehr stören. Du kannst auch ein leicht anderes Aspektverhältnis wählen (einfach von Hand in der Config.ini die Größe des ROIs anpassen).
                                  Eine zweite tflite ist schon ein etwas größeres Ding, da im Code fest ein digitales und ein analoges CNN hinterlegt sind. Da muss ich an den Quellcode ran.
                                  Momentan bin ich gerade daran, das System direkt auf dem ESP32 zum laufen zu bekommen. Dort habe ich schon eine etwas flexiblere Implementierung gewählt und die wäre grundsätzlich leichter anpassbar. Wenn das soweit ist, könnte ich das vielleicht auch auf den Docker zurück importieren. Ist dann aber C++ statt Python.

                                  E 1 Reply Last reply
                                  0
                                  • J jomjol

                                    @el_kassi Der blaue Rand dürfte nicht so sehr stören. Du kannst auch ein leicht anderes Aspektverhältnis wählen (einfach von Hand in der Config.ini die Größe des ROIs anpassen).
                                    Eine zweite tflite ist schon ein etwas größeres Ding, da im Code fest ein digitales und ein analoges CNN hinterlegt sind. Da muss ich an den Quellcode ran.
                                    Momentan bin ich gerade daran, das System direkt auf dem ESP32 zum laufen zu bekommen. Dort habe ich schon eine etwas flexiblere Implementierung gewählt und die wäre grundsätzlich leichter anpassbar. Wenn das soweit ist, könnte ich das vielleicht auch auf den Docker zurück importieren. Ist dann aber C++ statt Python.

                                    E Offline
                                    E Offline
                                    el_kassi
                                    wrote on last edited by
                                    #997

                                    @jomjol Ich kann in der config doch im modelfile eine tflite Wählen. Die sollte doch dann verwendet werden. Im Code wird ja auf die tflite zurückgegriffen. So nur mein Verständnis. Ich befürchte halt, dass wenn alle Ziffern in einer Datei zusammengefasst sind, dass das System hier Fehlalarm schlägt, da er jetzt schon statt einer weiß-auf-schwarz 4 eine schwarz-auf-weiß 8 erkennt.

                                    Ich bin gerade parallel dabei, die Python Version etwas zu modifizieren. Hauptsächlich refactorings, die wir natürlich besprechen müssten.
                                    Das Ganze bräuchte ich, um einen Zähler mit Vor- und Nachkommazahlen zu betreiben.
                                    Auf dem ESP wäre das natürlich auch willkommen, wenn das ginge. Allerdings ist das schwieriger zu aktualisieren, da mann dafür den ESP jedesmal rausnehmen, oben anschließen, programmieren und wieder einsetzen muss. Geht auch, aber der Entwicklungszyklus ist definitiv länger, wenn man das häufiger machen muss.
                                    Bin gespannt.
                                    Wenn du reviews benötigst, gib bescheid. Meinen github account kennst du ja.

                                    1 Reply Last reply
                                    0
                                    • E Offline
                                      E Offline
                                      el_kassi
                                      wrote on last edited by el_kassi
                                      #998

                                      Wäre das hier ein besserer Schnitt?
                                      Bildschirmfoto 2020-06-24 um 18.31.10.png
                                      Oder geht das zu weit runter? Hab versucht, mich an die 23% und 78% zu halten. Die 3 an Pos. 5 ist warum auch immer recht tief und der blaue Rand hat da eine Wölbung. Ist dann aber auch weiß mit auf dem Bild ganz unten.

                                      J 1 Reply Last reply
                                      0
                                      • E el_kassi

                                        Wäre das hier ein besserer Schnitt?
                                        Bildschirmfoto 2020-06-24 um 18.31.10.png
                                        Oder geht das zu weit runter? Hab versucht, mich an die 23% und 78% zu halten. Die 3 an Pos. 5 ist warum auch immer recht tief und der blaue Rand hat da eine Wölbung. Ist dann aber auch weiß mit auf dem Bild ganz unten.

                                        J Offline
                                        J Offline
                                        jomjol
                                        wrote on last edited by
                                        #999

                                        @el_kassi Enschuldige die später RM, ich war ein paar Tage offline. Von der Größe der Zahlen passt das. Ich würde die ROIs noch etwas nach oben setzen, so dass die Zahlen mittig sind.

                                        W 1 Reply Last reply
                                        0
                                        • J jomjol

                                          @el_kassi Enschuldige die später RM, ich war ein paar Tage offline. Von der Größe der Zahlen passt das. Ich würde die ROIs noch etwas nach oben setzen, so dass die Zahlen mittig sind.

                                          W Offline
                                          W Offline
                                          watcherkb
                                          wrote on last edited by
                                          #1000

                                          @jomjol
                                          Hi, ich habe seit heute das Problem dass der Server mir beim Aufruf über http://192.168.1.36:3000/wasserzaehler.html nichts liefert. Die Seite bleibt leer. Der Parser-Adapter meckert auch:

                                          Cannot read link "http://192.168.1.36:3000/wasserzaehler.html": {"statusCode":200,"body":"","headers":{"server":"BaseHTTP/0.6 Python/3.7.4","date":"Tue, 30 Jun 2020 12:10:00 GMT","content-type"
                                          

                                          Der Aufruf http://192.168.1.36:3000/wasserzaehler.html&full funktioniert, hat aber die 6 falsch erkannt (letztes tf-file)

                                          2020-06-30_1504.png

                                          Server und ESP sind bereits neu gestartet. Eine Idee was es sein kann?

                                          CC2538+CC2592 PA-Zigbee-Funkmodul

                                          J W 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          438

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe