jomjol / AI-on-the-edge-device

Easy to use device for connecting "old" measuring units (water, power, gas, ...) to the digital world
https://jomjol.github.io/AI-on-the-edge-device-docs/
5.91k stars 646 forks source link

Rotated image not rotated in wasserzaehler_roi.html #111

Closed gon0 closed 3 years ago

gon0 commented 3 years ago

Dear jomjol,

this is a great project, the interface works like charm and it was easy to install. I am using "master - v6.1.0 - 2020-01-20"

When opening the "wasserzaehler_roi.html", the image shows like this:

grafik In MQTT, no values arrive at my server.

The rotation seems to be set correctly, when showing the first configuration page: grafik

The config.ini looks like this:

[MakeImage]
;LogImageLocation = /log/source
;LogfileRetentionInDays = 15
WaitBeforeTakingPicture = 5
ImageQuality = 5
ImageSize = VGA

[Alignment]
InitialRotate = 338
/config/ref0.jpg 182 182
/config/ref1.jpg 492 116
SearchFieldX = 20
SearchFieldY = 20
AlignmentAlgo = Default

[Digits]
Model = /config/dig0721s1.tflite
;LogImageLocation = /log/digit
;LogfileRetentionInDays = 3
ModelInputSize = 20 32
digit1000 292 110 33 59
digit100 341 113 31 57
digit10 389 110 31 56
digit1 435 110 35 63

[Analog]
Model = /config/ana0630s2.tflite
;LogImageLocation = /log/analog
;LogfileRetentionInDays = 3
ModelInputSize = 32 32
analog1 472 208 105 105
analog2 419 314 102 102
analog3 324 357 98 98
analog4 201 310 94 94
ExtendedResolution = false

[PostProcessing]
DecimalShift = 0
PreValueUse = true
PreValueAgeStartup = 720
AllowNegativeRates = false
MaxRateValue = 0.1
ErrorMessage = true
CheckDigitIncreaseConsistency = false

[MQTT]
Uri = mqtt://192.168.122.40:1883
Topic = wasserzaehler48/zaehlerstand
TopicError = wasserzaehler48/error
ClientID = wasser
;user = USERNAME
;password = PASSWORD

[AutoTimer]
AutoStart = true
Intervall = 4.85

[Debug]
Logfile = false
LogfileRetentionInDays = 3

[System]
TimeZone = CET-1CEST
;TimeServer = fritz.box
;Hostname = watermeter
SetupMode = true

[Ende]

When downloading and opening the files from the fileserver, I get the message that the ref1_org.jpg seems to be a BMP-file: grafik All other files seem to be opened as jpg-files as expected. Could this be the cause?

Do you have any other ideas what to check?

Nochmal auf Deutsch: Das Projekt ist hervorragend aufgebaut, dokumentiert und bedienbar! Hut ab! Ich finde es genial, viel Viel Du gleichzeitig auf dem ESP32 laufen lässt! Vielen Dank :)

jomjol commented 3 years ago

Hallo @gon0, eigentlich sieht es gut aus. Hast du mal eine längere Zeit gewartet, bis du das Bild abfragst. Nach einem Neustart müssen erstmal alle gedrehten und ausgerichteten Bilder erzeugt werden. Dass kann bis zu 3 Minuten (je nach Größe der Referenz dauern). Wenn das durchgelaufen ist, siehst du bei RAW-Value zumindest irgendeinen Wert. Falls das nicht funktioniert, bitte mal ds Logging einschalten (Logfile = false) und ein Logfile von 2-3 Durchläufen posten. Gruß, jomjol

gon0 commented 3 years ago

Moin jomjol,

danke für Deine schnelle Unterstützung. Heute Abend (nach 19 Uhr ind er Log-Datei) habe ich die Konfiguration neu ausgeführt und das Logging aktiviert:

[Debug]
Logfile = true
LogfileRetentionInDays = 3

Die einzige Logdatei finde ich unter dem Ordner "message". In den anderen Ordnern ist nur die leer.txt-Datei vorhanden. Dies ist die Log-Datei aus dem message-Ordner:

2021-02-11_07-36-59: Time zone set to CET-1CEST,M3.5.0,M10.5.0/3
2021-02-11_07-36-59: =============================================================================================
2021-02-11_07-36-59: =================================== Main Started ============================================
2021-02-11_07-36-59: =============================================================================================
2021-02-11_07-37-02: Time zone set to CET-1CEST
2021-02-11_07-40-37: download_get_handler
2021-02-11_07-40-38: download_get_handler
2021-02-11_07-40-40: download_get_handler
2021-02-11_19-46-36: download_get_handler
2021-02-11_19-46-36: download_get_handler
2021-02-11_19-47-00: delete_post_handler
2021-02-11_19-47-00: download_get_handler
2021-02-11_19-47-01: upload_post_handler
2021-02-11_19-47-01: download_get_handler
2021-02-11_19-47-01: delete_post_handler
2021-02-11_19-47-01: download_get_handler
2021-02-11_19-47-01: upload_post_handler
2021-02-11_19-47-02: download_get_handler
2021-02-11_19-52-15: download_get_handler
2021-02-11_19-52-15: download_get_handler
2021-02-11_19-53-44: delete_post_handler
2021-02-11_19-53-44: download_get_handler
2021-02-11_19-53-44: upload_post_handler
2021-02-11_19-53-44: download_get_handler
2021-02-11_19-53-44: delete_post_handler
2021-02-11_19-53-44: download_get_handler
2021-02-11_19-53-45: upload_post_handler
2021-02-11_19-53-45: download_get_handler
2021-02-11_19-53-45: download_get_handler
2021-02-11_19-53-45: download_get_handler
2021-02-11_19-53-46: download_get_handler
2021-02-11_19-53-53: download_get_handler
2021-02-11_19-53-53: download_get_handler
2021-02-11_19-53-53: delete_post_handler
2021-02-11_19-53-53: download_get_handler
2021-02-11_19-53-54: download_get_handler
2021-02-11_19-53-54: download_get_handler
2021-02-11_19-54-05: download_get_handler
2021-02-11_19-54-05: download_get_handler
2021-02-11_19-54-08: download_get_handler
2021-02-11_19-54-09: download_get_handler
2021-02-11_19-54-12: delete_post_handler
2021-02-11_19-54-12: download_get_handler
2021-02-11_19-54-13: upload_post_handler
2021-02-11_19-54-13: download_get_handler
2021-02-11_19-55-46: delete_post_handler
2021-02-11_19-55-46: download_get_handler
2021-02-11_19-55-46: download_get_handler
2021-02-11_19-55-46: download_get_handler
2021-02-11_19-55-56: download_get_handler
2021-02-11_19-55-56: download_get_handler
2021-02-11_19-55-59: download_get_handler
2021-02-11_19-55-59: download_get_handler
2021-02-11_19-56-02: delete_post_handler
2021-02-11_19-56-02: download_get_handler
2021-02-11_19-56-02: upload_post_handler
2021-02-11_19-56-02: download_get_handler
2021-02-11_19-56-14: delete_post_handler
2021-02-11_19-56-14: download_get_handler
2021-02-11_19-56-15: download_get_handler
2021-02-11_19-56-15: download_get_handler
2021-02-11_19-56-18: download_get_handler
2021-02-11_19-56-18: download_get_handler
2021-02-11_19-57-38: delete_post_handler
2021-02-11_19-57-38: download_get_handler
2021-02-11_19-57-38: upload_post_handler
2021-02-11_19-57-38: download_get_handler
2021-02-11_19-57-39: download_get_handler
2021-02-11_19-57-39: download_get_handler
2021-02-11_19-57-45: download_get_handler
2021-02-11_19-57-45: download_get_handler
2021-02-11_19-58-31: delete_post_handler
2021-02-11_19-58-31: download_get_handler
2021-02-11_19-58-31: upload_post_handler
2021-02-11_19-58-32: download_get_handler
2021-02-11_19-58-32: download_get_handler
2021-02-11_19-58-32: download_get_handler
2021-02-11_19-58-42: download_get_handler
2021-02-11_19-58-42: download_get_handler
2021-02-11_19-58-54: delete_post_handler
2021-02-11_19-58-54: download_get_handler
2021-02-11_19-58-54: upload_post_handler
2021-02-11_19-58-54: download_get_handler
2021-02-11_19-59-10: handler_reboot
2021-02-11_19-59-10: Reboot - now
2021-02-11_19-59-20: Time zone set to CET-1CEST,M3.5.0,M10.5.0/3
2021-02-11_19-59-20: =============================================================================================
2021-02-11_19-59-20: =================================== Main Started ============================================
2021-02-11_19-59-20: =============================================================================================
2021-02-11_19-59-24: Time zone set to CET-1CEST
2021-02-11_20-02-00: download_get_handler
2021-02-11_20-02-00: download_get_handler
2021-02-11_20-02-03: download_get_handler
2021-02-11_20-02-03: download_get_handler
2021-02-11_20-07-18: download_get_handler
2021-02-11_20-07-18: download_get_handler
2021-02-11_20-07-20: download_get_handler
2021-02-11_20-07-20: download_get_handler
2021-02-11_20-07-21: delete_post_handler
2021-02-11_20-07-21: download_get_handler
2021-02-11_20-07-21: download_get_handler
2021-02-11_20-07-21: download_get_handler
2021-02-11_20-07-23: download_get_handler
2021-02-11_20-07-23: download_get_handler
2021-02-11_20-07-25: download_get_handler
2021-02-11_20-07-25: download_get_handler
2021-02-11_20-08-29: download_get_handler
2021-02-11_20-08-29: download_get_handler
2021-02-11_23-23-55: download_get_handler
2021-02-11_23-23-55: download_get_handler
2021-02-11_23-23-58: download_get_handler
2021-02-11_23-23-58: download_get_handler
2021-02-11_23-24-02: download_get_handler
2021-02-11_23-24-02: download_get_handler
2021-02-11_23-24-05: download_get_handler
2021-02-11_23-24-05: download_get_handler
2021-02-11_23-24-06: download_get_handler
2021-02-11_23-24-06: download_get_handler
2021-02-11_23-24-11: download_get_handler

Müssten in den anderen Ordnern auch Logdateien zu finden sein? Hilft ein Reset, wenn dieser mit kurzer Trennung vom Stromnetz durchgeführt wird, oder reicht auch der Reboot am Ende der Konfiguration?

jomjol commented 3 years ago

Irgendetwas stimmt mit deiner Config nicht. Der Algo startet gar nicht. Kann es sein, dass du im letzten Schritt den Setupmodus nicht beendet hast? Das kannst du manuell in der Config.ini nachholen:

SetupMode = false

gon0 commented 3 years ago

Du hast recht, vielen Dank! Ich habe den Wert manuell in der config.ini gesetzt. Nun ist auch die Rotation zu sehen (Die verschobenen ROIs liegen an einer Verschiebung des ESP32, zur Zeit komme ich da nicht dran):

grafik

Damit sollte der Fall gelöst sein :) Ich schließe diesen Issue. Vielen Dank für Deine Unterstützung. Wenn ich demnächst wieder vor Ort bin, befestige ich den ESP ordentlich und schaue, ob ich am Ende des Setups vergessen habe, einen Button zu drücken :)

Ich poste mein Ergebnis dann hier.

Schönes Wochenende und viele Grüße, gon0

gon0 commented 3 years ago

Moin jomjol,

hier meine angekündigte Rückmeldung. Die Software funktioniert super gut. Bei meinem letzten Durchlauf des setups habe ich einfach übersehen, dass es noch eine letzte Seite gab' (noch einmal mehr auf "Next" klicken). Ich bin erstaunt, wie gut die Benutzerführung funktioniert und dass Du das alles in den ESP32 bekommen hast. Wirklich eine geniale Arbeit! Vielen Dank!

So sieht es jetzt bei mir aus und die Daten werden super üebr MQTT übertragen: grafik

Einen Verbesserungsvorschlag habe ich noch: Die Rotation scheint das Bild um den Mittelpunkt zu drehen. Wenn die Kamera so ausgerichtet wird, dass der Bildausschnitt exzentrisch ist, damit die Reflexion der LED nicht stört, dann kann es passieren, dass bei der Rotation die Analoganzeigen aus dem Bildausschnitt herauswandern. Ich konnte die Kamera bislang passend ausrichten. Vielleicht wäre in einer der nächsten Versionen noch die Option der lateralen Bildverschiebung neben der Rotation des Bildes ein nettes Gimmick.

Vielen Dank, dass Du dein tolles Werk mit der Welt teilst!