Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Wasserzähler - Selfmade

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Wasserzähler - Selfmade

Geplant Angeheftet Gesperrt Verschoben Hardware
wasser wasserzählerhow-to
1.1k Beiträge 48 Kommentatoren 374.3k Aufrufe 72 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • pfriedP Offline
      pfriedP Offline
      pfried
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • pfriedP Offline
          pfriedP Offline
          pfried
          schrieb am zuletzt editiert von
          #990

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

          1 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 😁

            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 💪 !!

            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 Antwort Letzte Antwort
            0
            • E Offline
              E Offline
              el_kassi
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • E Offline
                E Offline
                el_kassi
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • E Offline
                          E Offline
                          el_kassi
                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antworten Letzte Antwort
                              0
                              • W watcherkb

                                @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?

                                J Offline
                                J Offline
                                jomjol
                                schrieb am zuletzt editiert von
                                #1001

                                @watcherkb Ist das genau der Output von "...&full" oder hast du die erste Reihe einfach nicht ausgeschnitten?

                                Normalerweise stehen dort auch die Ziffern in der ersten Reihe und erst dann kommen die Bilder. Wäre ein Hinweis, wo ich suchen könnte. So einen Fehler hat noch keiner berichtet.

                                P.S.: ich würde etwas mehr Rand um die Ziffern lassen, dann ist die Bilderkennung etwas stabiler.

                                W 2 Antworten Letzte Antwort
                                0
                                • J jomjol

                                  @watcherkb Ist das genau der Output von "...&full" oder hast du die erste Reihe einfach nicht ausgeschnitten?

                                  Normalerweise stehen dort auch die Ziffern in der ersten Reihe und erst dann kommen die Bilder. Wäre ein Hinweis, wo ich suchen könnte. So einen Fehler hat noch keiner berichtet.

                                  P.S.: ich würde etwas mehr Rand um die Ziffern lassen, dann ist die Bilderkennung etwas stabiler.

                                  W Offline
                                  W Offline
                                  watcherkb
                                  schrieb am zuletzt editiert von
                                  #1002

                                  @jomjol in der ersten Reihe sind auch keine Ziffern, und das große Gesamtbild habe ich auch nicht gescreenshotet.

                                  Danke werde es anpassen

                                  CC2538+CC2592 PA-Zigbee-Funkmodul

                                  1 Antwort Letzte Antwort
                                  0
                                  • J jomjol

                                    @watcherkb Ist das genau der Output von "...&full" oder hast du die erste Reihe einfach nicht ausgeschnitten?

                                    Normalerweise stehen dort auch die Ziffern in der ersten Reihe und erst dann kommen die Bilder. Wäre ein Hinweis, wo ich suchen könnte. So einen Fehler hat noch keiner berichtet.

                                    P.S.: ich würde etwas mehr Rand um die Ziffern lassen, dann ist die Bilderkennung etwas stabiler.

                                    W Offline
                                    W Offline
                                    watcherkb
                                    schrieb am zuletzt editiert von
                                    #1003

                                    @jomjol heute gehts wieder obwohl ich nichts verändert habe. Einzig die 6 die gestern als 8 berechnet wurde, ist heute korrekt. Evtl. liegt es dadran? Anbei Screenshot und meine Settings:

                                    2020-07-01_1445.png

                                    [Imagesource]
                                    timeoutloadimage = 30
                                    #ip durch die ip des esp32 ersetzen!
                                    urlimagesource = http://192.168.1.209/capture_with_flashlight?quality=25&size=svga
                                    logimagelocation = ./log/source_image
                                    #logonlyfalsepictures=false
                                    
                                    [ConsistencyCheck]
                                    enabled = False
                                    #stores the last value in a file for the case of a restart (e.g. docker container after update)
                                    readprevaluefromfileatstartup = True
                                    #maximum time spanning since last startup for use of prevalue from filestorage in minutes
                                    readprevaluefromfilemaxage = 30
                                    allownegativerates = true
                                    #maximum change of new to old value (+ or -)
                                    maxratevalue = 0.5
                                    #return in case of error: value = oldvalue or newvalue
                                    #                         errormessage = return text with problem (seperated by tabstopp) if nothing, then no error message
                                    #                         readout = real readout without corrections (newvalue)
                                    errorreturn = errormessage
                                    
                                    [AnalogReadOut]
                                    #if enabled analog counters will be read, if disabled only digital counters will be read.
                                    enabled = True
                                    
                                    [alignment]
                                    initial_rotation_angle = 180.0
                                    
                                    [alignment.ref0]
                                    image = ./config/ref0.jpg
                                    pos_x = 51
                                    pos_y = 125
                                    
                                    [alignment.ref1]
                                    image = ./config/ref1.jpg
                                    pos_x = 611
                                    pos_y = 59
                                    
                                    [alignment.ref2]
                                    image = ./config/ref2.jpg
                                    pos_x = 362
                                    pos_y = 398
                                    
                                    [Digital_Digit]
                                    names = ziffer1, ziffer2, ziffer3, ziffer4, ziffer5
                                    modelfile = ./config/neuralnets/Train_CNN_Digital-Readout_Version_6.1.2.tflite
                                    logimagelocation = ./log/digital_digit
                                    #lognames=
                                    
                                    [Analog_Counter]
                                    names = zeiger1, zeiger2, zeiger3, zeiger4
                                    modelfile = ./config/neuralnets/CNN_Analog-Readout_Version-6.2.0.tflite
                                    logimagelocation=./log/analog_counter
                                    #lognames=
                                    
                                    [Analog_Counter.zeiger1]
                                    pos_x = 572
                                    pos_y = 174
                                    dx = 158
                                    dy = 158
                                    
                                    [Analog_Counter.zeiger2]
                                    pos_x = 486
                                    pos_y = 344
                                    dx = 155
                                    dy = 155
                                    
                                    [Analog_Counter.zeiger3]
                                    pos_x = 329
                                    pos_y = 423
                                    dx = 156
                                    dy = 156
                                    
                                    [Analog_Counter.zeiger4]
                                    pos_x = 101
                                    pos_y = 352
                                    dx = 168
                                    dy = 168
                                    
                                    [Digital_Digit.ziffer1]
                                    pos_x = 174
                                    pos_y = 6
                                    dx = 48
                                    dy = 86
                                    
                                    [Digital_Digit.ziffer2]
                                    pos_x = 258
                                    pos_y = 7
                                    dx = 49
                                    dy = 88
                                    
                                    [Digital_Digit.ziffer3]
                                    pos_x = 345
                                    pos_y = 5
                                    dx = 50
                                    dy = 89
                                    
                                    [Digital_Digit.ziffer4]
                                    pos_x = 430
                                    pos_y = 8
                                    dx = 48
                                    dy = 85
                                    
                                    [Digital_Digit.ziffer5]
                                    pos_x = 516
                                    pos_y = 7
                                    dx = 46
                                    dy = 83
                                    
                                    
                                    

                                    CC2538+CC2592 PA-Zigbee-Funkmodul

                                    1 Antwort Letzte Antwort
                                    0
                                    • E Offline
                                      E Offline
                                      el_kassi
                                      schrieb am zuletzt editiert von
                                      #1004

                                      out.zip
                                      Neuer Schnitt und mehr Ziffern

                                      J 1 Antwort Letzte Antwort
                                      0
                                      • M michaeljoos

                                        @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 😁

                                        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 💪 !!

                                        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 Offline
                                        E Offline
                                        el_kassi
                                        schrieb am zuletzt editiert von el_kassi
                                        #1005

                                        @jomjol Ich hab das CNN auch mal bei mir trainieren lassen, um zu sehen, ob es taugt und auch um die Fehlerrate mal zu verringern. Auf meine 16000 SourceImage der letzten Tage angewendet habe ich > 50% NaN in den letzten 4 Ziffern, bzw. tatsächlich in der letzten Ziffer. Daher meine Frage:
                                        Was darf alles in den NaN Ordner rein zum trainieren und was nicht?

                                        Wenn ich mich auf das Bild von @michaeljoos beziehe:
                                        Käme hier die letzte Ziffer in NaN oder in 9 oder sollte man sie für das Trainieren komplett vermeiden? D.h. sollte man nur Bilder, die exakt zwischen 2 Ziffern liegen, in NaN kopieren?
                                        Ich habe die Erfahrung gemacht, dass sehr oft zwischen 6 und 7 als 9 erkannt wird. Der Kringel der 6 und der schräge Balken der 7 sind da anscheinend gewichtiger als die Tatsache, dass beide Teile nicht durchgängig verbunden sind.

                                        In diesem Zusammenhang noch eine Frage:
                                        Sollte ich (siehe Bild in einem der vorherigen Posts) die letzte Ziffer (digit8) bei mir kleiner ausschneiden? Beim letzten Rad ist offenbar der sichtbare Bereich größer, so dass ich grundsätzlich immer Teile einer anderen Ziffer sichtbar habe, was dann sehr stark in Richtung NaN oder Fehlinterpretation geht.

                                        Außerdem habe ich mich noch gefragt, ob man das CNN auf 21 Klassen erweitern könnte und exakt solche Werte, 2.5, 6.5, etc. zulassen kann, wenn man sie erkennt. Habe damit ein bisschen probiert, aber zu wenig Daten dafür. Dies würde ggf. auch die NaN Rate reduzieren.

                                        Resultat:

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

                                        J 1 Antwort Letzte Antwort
                                        0
                                        • E el_kassi

                                          @jomjol Ich hab das CNN auch mal bei mir trainieren lassen, um zu sehen, ob es taugt und auch um die Fehlerrate mal zu verringern. Auf meine 16000 SourceImage der letzten Tage angewendet habe ich > 50% NaN in den letzten 4 Ziffern, bzw. tatsächlich in der letzten Ziffer. Daher meine Frage:
                                          Was darf alles in den NaN Ordner rein zum trainieren und was nicht?

                                          Wenn ich mich auf das Bild von @michaeljoos beziehe:
                                          Käme hier die letzte Ziffer in NaN oder in 9 oder sollte man sie für das Trainieren komplett vermeiden? D.h. sollte man nur Bilder, die exakt zwischen 2 Ziffern liegen, in NaN kopieren?
                                          Ich habe die Erfahrung gemacht, dass sehr oft zwischen 6 und 7 als 9 erkannt wird. Der Kringel der 6 und der schräge Balken der 7 sind da anscheinend gewichtiger als die Tatsache, dass beide Teile nicht durchgängig verbunden sind.

                                          In diesem Zusammenhang noch eine Frage:
                                          Sollte ich (siehe Bild in einem der vorherigen Posts) die letzte Ziffer (digit8) bei mir kleiner ausschneiden? Beim letzten Rad ist offenbar der sichtbare Bereich größer, so dass ich grundsätzlich immer Teile einer anderen Ziffer sichtbar habe, was dann sehr stark in Richtung NaN oder Fehlinterpretation geht.

                                          Außerdem habe ich mich noch gefragt, ob man das CNN auf 21 Klassen erweitern könnte und exakt solche Werte, 2.5, 6.5, etc. zulassen kann, wenn man sie erkennt. Habe damit ein bisschen probiert, aber zu wenig Daten dafür. Dies würde ggf. auch die NaN Rate reduzieren.

                                          Resultat:

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

                                          J Offline
                                          J Offline
                                          jomjol
                                          schrieb am zuletzt editiert von
                                          #1006

                                          @el_kassi sagte in Wasserzähler - Selfmade:

                                          @jomjol Ich hab das CNN auch mal bei mir trainieren lassen, um zu sehen, ob es taugt und auch um die Fehlerrate mal zu verringern. Auf meine 16000 SourceImage der letzten Tage angewendet habe ich > 50% NaN in den letzten 4 Ziffern, bzw. tatsächlich in der letzten Ziffer. Daher meine Frage:
                                          Was darf alles in den NaN Ordner rein zum trainieren und was nicht?

                                          In NaN sortiere ich eigentlich alles, wo die Ziffer nicht vollständig im Bild zu sehen sind (= ohne Berührung des Randes)

                                          Wenn ich mich auf das Bild von @michaeljoos beziehe:
                                          Käme hier die letzte Ziffer in NaN oder in 9 oder sollte man sie für das Trainieren komplett vermeiden? D.h. sollte man nur Bilder, die exakt zwischen 2 Ziffern liegen, in NaN kopieren?

                                          Definitiv in NaN

                                          Ich habe die Erfahrung gemacht, dass sehr oft zwischen 6 und 7 als 9 erkannt wird. Der Kringel der 6 und der schräge Balken der 7 sind da anscheinend gewichtiger als die Tatsache, dass beide Teile nicht durchgängig verbunden sind.

                                          In diesem Zusammenhang noch eine Frage:
                                          Sollte ich (siehe Bild in einem der vorherigen Posts) die letzte Ziffer (digit8) bei mir kleiner ausschneiden? Beim letzten Rad ist offenbar der sichtbare Bereich größer, so dass ich grundsätzlich immer Teile einer anderen Ziffer sichtbar habe, was dann sehr stark in Richtung NaN oder Fehlinterpretation geht.

                                          Eigentlich würde ich es nicht kleiner aussschneiden, sondern nur beim Einsortieren das gleiche Kriterium angwenden: ist die Zahl von Interesse vollständig im Bild und berührt den Rand nicht.

                                          Außerdem habe ich mich noch gefragt, ob man das CNN auf 21 Klassen erweitern könnte und exakt solche Werte, 2.5, 6.5, etc. zulassen kann, wenn man sie erkennt. Habe damit ein bisschen probiert, aber zu wenig Daten dafür. Dies würde ggf. auch die NaN Rate reduzieren.

                                          Würde ich nicht empfehlen, da

                                          1. Brauchst du viel mehr Bilder zum Teachen
                                          2. wo ist dann die Grenze? warum nicht auch 0,25-er Schritte
                                          3. Die Mechanismen zum Korrigieren von NaN ("usePreValue") funktionieren i.d.R. gut.

                                          Resultat:

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

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          408

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe