-
Notifications
You must be signed in to change notification settings - Fork 844
Description
The Problem
Gerät: ESP32-CAM mit AI-on-the-edge
Firmware: Release: v16.1.0 (Commit: a1ccda2)
Kurzbeschreibung:
Die Experten-Einstellung "Check Digit Increase Consistency" führt dazu, dass bei einem niedrigeren, korrekten OCR-Raw-Wert fälschlicherweise +1 addiert wird (ganze Zahl erhöht), bevor die Rate berechnet wird. Das erzeugt eine falsche, zu große Rate und die Meldung "Rate too high".
Konkretes Verhalten (Beispiel):
- Pre (vorheriger/gespeicherter Wert) war fälschlich zu hoch (z. B. 238.3398).
- OCR liefert den korrekten Raw = 238.2952 (sollte verworfen werden, weil Raw < Pre).
- Mit aktivierter Einstellung wird jedoch Read = Raw + 1 = 239.2952 gebildet.
- Rate = Read − Pre = 239.2952 − 238.3398 = 0.9554 → Meldung: "Rate too high".
Log-Auszug:
2026-03-07T23:30:56+0100 main raw: 238.2952 value/pre: 238.33980 Msg: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
(weitere gleiche Zeilen vorhanden)
Nach Abschalten der Option "Check Digit Increase Consistency" lauten die Logfile-Einträge:
2026-03-08T00:00:22+0100,main**,238**.2952,,238.33980,,0.0000,Neg. Rate - Read: - Raw: 238.2952 - Pre: 238.3398 ,2.0,3.0,8.0,3.1,9.2,5.4,2.8
Bitte prüfen/patchen: die Rollover/Korrektur-Logik in Zusammenhang mit „Check Digit Increase Consistency“ sollte nicht blind +1 addieren, wenn pre bereits potentiell falsch ist oder wenn OCR-Confidence hoch ist. Danke!
Version
v16.1.0 (Commit: a1ccda2)
Logfile
[0d00h00m00s] 2026-03-07T22:30:21 <INF> [MAIN] =================================================
[0d00h00m00s] 2026-03-07T22:30:21 <INF> [MAIN] ==================== Start ======================
[0d00h00m00s] 2026-03-07T22:30:21 <INF> [MAIN] =================================================
[0d00h00m00s] 2026-03-07T22:30:21 <INF> [SDCARD] Basic R/W check started...
[0d00h00m00s] 2026-03-07T22:30:21 <INF> [SDCARD] Basic R/W check successful
[0d00h00m00s] 2026-03-07T22:30:21 <INF> [MAIN] PSRAM size: 8388608 byte (8MB / 64MBit)
[0d00h00m00s] 2026-03-07T22:30:21 <INF> [MAIN] Total heap: 4377019 byte
[0d00h00m03s] 2026-03-07T22:30:24 <INF> [MAIN] Camera info: PID: 0x26, VER: 0x42, MIDL: 0x7f, MIDH: 0xa2
[0d00h00m03s] 2026-03-07T22:30:24 <INF> [SNTP] TimeServer: pool.ntp.org
[0d00h00m03s] 2026-03-07T22:30:24 <INF> [SNTP] Configuring NTP Client...
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [SNTP] Time zone set to CET-1CEST,M3.5.0,M10.5.0/3
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [SNTP] time zone: +0100 Delta to UTC: 3600 seconds
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [SNTP] Time is already set: 2026-03-07 23:30:24
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [MAIN] CPU frequency: 160 MHz
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [SDCARD] Folder/file presence check started...
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [SDCARD] Folder/file presence check successful
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [MAIN] Tag: 'v16.1.0', Release: v16.1.0 (Commit: a1ccda2), Date/Time: 2026-01-11 22:38, Web UI: Release: v16.1.0 (Commit: a1ccda2)
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [MAIN] Reset reason: Via esp_restart
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [WLANINI] SSID: WUE-LAN
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [WLANINI] Password: XXXXXXXX
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [WLANINI] RSSIThreshold: -75
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [MAIN] WLAN config loaded, init WIFI...
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [WIFI] Automatic interface config --> Use DHCP service
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [WIFI] Set hostname to: watermeter
[0d00h00m03s] 2026-03-07T23:30:24 <INF> [WIFI] Init successful
[0d00h00m08s] 2026-03-07T23:30:29 <INF> [WIFI] Connected to: WUE-LAN, RSSI: -65
[0d00h00m09s] 2026-03-07T23:30:31 <INF> [WIFI] Assigned IP: 192.168.2.14
[0d00h00m23s] 2026-03-07T23:30:44 <INF> [MAIN] Device info: CPU cores: 2, Chip revision: 101
[0d00h00m23s] 2026-03-07T23:30:44 <INF> [MAIN] SD card info: Name: SD32G, Capacity: 30436MB, Free: 30397MB
[0d00h00m25s] 2026-03-07T23:30:46 <INF> [MAIN] Initialization completed successfully
[0d00h00m28s] 2026-03-07T23:30:49 <INF> [TFLITE] Trying to load the model. If it crashes here, it ist most likely due to a corrupted model!
[0d00h00m28s] 2026-03-07T23:30:49 <INF> [TFLITE] Trying to load the model. If it crashes here, it ist most likely due to a corrupted model!
[0d00h00m28s] 2026-03-07T23:30:49 <INF> [LOGFILE] Set log level to ERROR
[0d00h01m02s] 2026-03-07T23:31:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h03m02s] 2026-03-07T23:33:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h05m02s] 2026-03-07T23:35:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h07m02s] 2026-03-07T23:37:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h09m02s] 2026-03-07T23:39:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h11m02s] 2026-03-07T23:41:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h13m02s] 2026-03-07T23:43:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h15m02s] 2026-03-07T23:45:23 <ERR> [POSTPROC] main: Raw: 238.2962, Value: , Status: Rate too high - Read: 239.2962 - Pre: 238.3398 - Rate: 0.9564
[0d00h17m02s] 2026-03-07T23:47:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h19m02s] 2026-03-07T23:49:23 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h21m02s] 2026-03-07T23:51:23 <ERR> [POSTPROC] main: Raw: 238.2962, Value: , Status: Rate too high - Read: 239.2962 - Pre: 238.3398 - Rate: 0.9564
[0d00h00m00s] 2026-03-07T22:51:58 <INF> [MAIN] =================================================
[0d00h00m00s] 2026-03-07T22:51:58 <INF> [MAIN] ==================== Start ======================
[0d00h00m00s] 2026-03-07T22:51:58 <INF> [MAIN] =================================================
[0d00h00m00s] 2026-03-07T22:51:58 <INF> [SDCARD] Basic R/W check started...
[0d00h00m00s] 2026-03-07T22:51:58 <INF> [SDCARD] Basic R/W check successful
[0d00h00m00s] 2026-03-07T22:51:59 <INF> [MAIN] PSRAM size: 8388608 byte (8MB / 64MBit)
[0d00h00m00s] 2026-03-07T22:51:59 <INF> [MAIN] Total heap: 4377019 byte
[0d00h00m03s] 2026-03-07T22:52:01 <INF> [MAIN] Camera info: PID: 0x26, VER: 0x42, MIDL: 0x7f, MIDH: 0xa2
[0d00h00m03s] 2026-03-07T22:52:01 <INF> [SNTP] TimeServer: pool.ntp.org
[0d00h00m03s] 2026-03-07T22:52:01 <INF> [SNTP] Configuring NTP Client...
[0d00h00m03s] 2026-03-07T23:52:01 <INF> [SNTP] Time zone set to CET-1CEST,M3.5.0,M10.5.0/3
[0d00h00m03s] 2026-03-07T23:52:01 <INF> [SNTP] time zone: +0100 Delta to UTC: 3600 seconds
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [SNTP] Time is already set: 2026-03-07 23:52:02
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [MAIN] CPU frequency: 160 MHz
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [SDCARD] Folder/file presence check started...
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [SDCARD] Folder/file presence check successful
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [MAIN] Tag: 'v16.1.0', Release: v16.1.0 (Commit: a1ccda2), Date/Time: 2026-01-11 22:38, Web UI: Release: v16.1.0 (Commit: a1ccda2)
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [MAIN] Reset reason: Via esp_restart
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [WLANINI] SSID: WUE-LAN
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [WLANINI] Password: XXXXXXXX
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [WLANINI] RSSIThreshold: -75
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [MAIN] WLAN config loaded, init WIFI...
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [WIFI] Automatic interface config --> Use DHCP service
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [WIFI] Set hostname to: watermeter
[0d00h00m03s] 2026-03-07T23:52:02 <INF> [WIFI] Init successful
[0d00h00m07s] 2026-03-07T23:52:06 <INF> [WIFI] Connected to: WUE-LAN, RSSI: -65
[0d00h00m08s] 2026-03-07T23:52:07 <INF> [WIFI] Assigned IP: 192.168.2.14
[0d00h00m10s] 2026-03-07T23:52:09 <INF> [SNTP] Time is synced with NTP Server pool.ntp.org: 2026-03-07 23:52:09
[0d00h00m11s] 2026-03-07T23:52:10 <INF> [MAIN] Device info: CPU cores: 2, Chip revision: 101
[0d00h00m11s] 2026-03-07T23:52:10 <INF> [MAIN] SD card info: Name: SD32G, Capacity: 30436MB, Free: 30396MB
[0d00h00m13s] 2026-03-07T23:52:12 <INF> [MAIN] Initialization completed successfully
[0d00h00m16s] 2026-03-07T23:52:14 <INF> [TFLITE] Trying to load the model. If it crashes here, it ist most likely due to a corrupted model!
[0d00h00m16s] 2026-03-07T23:52:15 <INF> [TFLITE] Trying to load the model. If it crashes here, it ist most likely due to a corrupted model!
[0d00h00m16s] 2026-03-07T23:52:15 <INF> [LOGFILE] Set log level to ERROR
[0d00h00m51s] 2026-03-07T23:52:50 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Neg. Rate - Read: - Raw: 238.2952 - Pre: 238.3398
[0d00h02m50s] 2026-03-07T23:54:49 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Neg. Rate - Read: - Raw: 238.2952 - Pre: 238.3398
[0d00h04m50s] 2026-03-07T23:56:49 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Neg. Rate - Read: - Raw: 238.2952 - Pre: 238.3398
[0d00h06m50s] 2026-03-07T23:58:49 <ERR> [POSTPROC] main: Raw: 238.2952, Value: , Status: Neg. Rate - Read: - Raw: 238.2952 - Pre: 238.3398Expected Behavior
Erwartetes Verhalten:
Wenn raw < pre sollte die Logik eine von mehreren Maßnahmen ergreifen:
- Raw verwerfen (bei niedriger OCR-Confidence oder großer Differenz), ODER
- bei hoher OCR-Confidence nicht automatisch +1 addieren, sondern zusätzliche Prüfungen (z. B. mehrere konsistente Frames, Prüfungen der Confidence) durchführen, ODER
- Pre als verdächtig markieren und nicht automatisch korrigieren.
Workaround:
Deaktivieren der Experten-Einstellung "Check Digit Increase Consistency" behebt das Problem sofort (Read wird nicht mehr um +1 erhöht).
Reproduktionsschritte:
- Firmware und Device starten (ESP32-CAM).
- In Postprocessing die Experten-Einstellung "Check Digit Increase Consistency" aktivieren.
- Stelle sicher, dass
prezuvor fälschlich zu hoch gesetzt wurde (z. B. 238.3398). - Liefere ein Bild/Frame mit dem korrekten, aber kleineren OCR-Wert (238.2952).
- Beobachte, dass im Log
Read = raw + 1gebildet wird und die Rate fälschlich als zu hoch gemeldet wird.
Screenshots
Additional Context
No response