consistently renaming AnalogDigitTransitionStart to AnalogToDigitTransitionStart. Replaced douple- with single-

This commit is contained in:
CaCO3
2025-02-15 21:38:03 +01:00
parent c8e6726f09
commit 1f229852c6
4 changed files with 24 additions and 24 deletions

View File

@@ -33,33 +33,33 @@ To edit the `config.ini` file directly, click on the `Edit Config.ini directly`
You do not need to understand this!
But you might be interested in it.
The principle is very simple and can most easily be described as a flow of processing steps. Each step has a dedicated parameter description in the ``config.ini``, which is indicated by brackets ```[name_of_step]```. The steps are processed in the order written in the config file. That means, that you first have to describe the image taking, then the aligning and cutting and only after that you can start to config a neural network. The last step is the post processing.
The principle is very simple and can most easily be described as a flow of processing steps. Each step has a dedicated parameter description in the `config.ini`, which is indicated by brackets ```[name_of_step]```. The steps are processed in the order written in the config file. That means, that you first have to describe the image taking, then the aligning and cutting and only after that you can start to config a neural network. The last step is the post processing.
### Processing steps - Overview
In the following you get a short overview over the available steps. This order is also the suggested order for the processing flow. Single steps can be left out, if not needed (e.g. omit the analog part, if only digits are present)
#### 1. ``[TakeImage]``
#### 1. `[TakeImage]`
This steps parametrises the taking of the image by the ESP32-CAM. Size, quality and storage for logging and debugging can be set.
#### 2. ``[Alignment]``
#### 2. `[Alignment]`
Image preprocessing, including image alignment with reference images
#### 3. ``[Digits]``
#### 3. `[Digits]`
Neural network evaluation of an image for digits. The neural network is defined by a tflite formatted file and the output is a number between 0 .. 9 or NaN (if image is not unique enough)
#### 4. ``[Analog]``
#### 4. `[Analog]`
Neural network evaluation of analog counter. The neural network is defined by a tflite formatted file and the output is a number between 0.0 .. 9.9, representing the position of the pointer.
#### 5. ``[PostProcessing]``
#### 5. `[PostProcessing]`
Summarized the individually converted pictures to the overall result. It also implements some error corrections and consistency checks to filter wrong reading.
For more details look at [Correction Algorithm](Correction%20Algorithm.md)).
#### 6. ``[MQTT]``
#### 6. `[MQTT]`
Transfer of the readings to a MQTT server.
#### 7. ``[AutoTimer]``
#### 7. `[AutoTimer]`
Configuration of the automated flow start at the start up of the ESP32.
#### 8. ``[Debug]``
#### 8. `[Debug]`
Configuration for debugging details

View File

@@ -37,25 +37,25 @@ As you can see, the 17.9 is a false reading as the 7 is assumed to be already re
A detailed description of the algorithm can be found below (not yet ready!)
##### ``AllowNegativeRates``
##### `AllowNegativeRates`
Most of the meters only have increasing numbers and do not count backwards. Therefore a negative rate (= negative change compared to the PreValue) is surely a false value. This can be checked an flagged as false reading
The ``AllowNegativeRates`` property ensures that the result does not become negative in the event of incorrect readings. This can happen, for example, if the alignment of the image did not work properly. But also the neural networks sometimes flip between two states for similar images.
The `AllowNegativeRates` property ensures that the result does not become negative in the event of incorrect readings. This can happen, for example, if the alignment of the image did not work properly. But also the neural networks sometimes flip between two states for similar images.
If ``AllowNegativeRates = true``, the result is discarded if it is smaller than the pre-value of the last readout and the output shows an error "Negative rate.."
If `AllowNegativeRates = true`, the result is discarded if it is smaller than the pre-value of the last readout and the output shows an error "Negative rate.."
If the ``ExtendedResolution`` setting is true, there is an exception where the value does not become smaller, but no error is output. This only applies if the value +/- 0.2 of the last digit is inaccurate.
If the `ExtendedResolution` setting is true, there is an exception where the value does not become smaller, but no error is output. This only applies if the value +/- 0.2 of the last digit is inaccurate.
###### ``DecimalShift``
###### `DecimalShift`
The ``DecimalShift`` setting puts the decimal point in the right place. It acts like a shift. Negative values shift the decimal point to the left. Positive values move the decimal point to the right, filling with zero.
The `DecimalShift` setting puts the decimal point in the right place. It acts like a shift. Negative values shift the decimal point to the left. Positive values move the decimal point to the right, filling with zero.
###### ``AnalogDigitTransitionStart``
###### `AnalogToDigitTransitionStart`
For detailed description see [Analog-digit-transition](Watermeter-specific-analog---digit-transition.md).
###### ``MaxRateValue`` and ``MaxRateType``
###### `MaxRateValue` and `MaxRateType`
Here the maximum change from one to the next reading can be limited. If a false reading of the neural network results in a change larger than this, the reading is flagged as false. There a two types of comparisons possible
@@ -64,7 +64,7 @@ Here the maximum change from one to the next reading can be limited. If a false
Example: relative rate of 0.05 m³/minute --> after 20 minutes a maximum change of 20 minutes * 0.05 m³/minute = 1 m³ is possible. That means that a false reading of 1 m³ cannot be detected false after about 20 minutes in this case
Assume, that there might be no change in the meter for hours (e.g. during the night) a much bigger change could also be accepted.
###### ``ExtendedResolution``
###### `ExtendedResolution`
Newer models such as dig-cont and dig-class100 have a high resolution of the values and can thus represent another digit by using the value of the last digit or pointer (ex. 7.8 in the last digit).
@@ -72,12 +72,12 @@ If the value is set to true, the result of the last digit is used completely.
When using dig-class11 models, the setting is ignored.
Due to inaccuracies of the neural networks, it sometimes happens that the results jump back and forth between two decimal places. Therefore, when using `ÀllowNegatives``= false, no error is output if the value is only off by 0.2. Nevertheless, the value then remains at the higher determined value.
Due to inaccuracies of the neural networks, it sometimes happens that the results jump back and forth between two decimal places. Therefore, when using `ÀllowNegatives`= false, no error is output if the value is only off by 0.2. Nevertheless, the value then remains at the higher determined value.
###### ``IgnoreLeadingNaN``
###### `IgnoreLeadingNaN`
The parameter is only be used, if a dig-class11 model is selected. ``ÌgnoreLeadingNaN`` removes in the CheckDigitIncreaseConsistency process the leading `N` values.
The parameter is only be used, if a dig-class11 model is selected. `ÌgnoreLeadingNaN` removes in the CheckDigitIncreaseConsistency process the leading `N` values.
#### Flow Chart

View File

@@ -30,7 +30,7 @@ For power supply stabilization a capacitor between 5V and ground is recommended.
## 2. Software configuration
The handling of the WS2812 LED controller needs some other libraries, therefore it is controlled within a dedicated section called ``GPIO Settings``. The external LED stripe is connected to GPIO12. After activating the "GPIO Settings" section, the internal flash is per default disabled. In order to activate the external LED, you need to activate ``GPIO 12 state`` and select ``"extern flash light ws281x ..."``.
The handling of the WS2812 LED controller needs some other libraries, therefore it is controlled within a dedicated section called `GPIO Settings`. The external LED stripe is connected to GPIO12. After activating the "GPIO Settings" section, the internal flash is per default disabled. In order to activate the external LED, you need to activate `GPIO 12 state` and select `"extern flash light ws281x ..."`.
@@ -47,4 +47,4 @@ The handling of the WS2812 LED controller needs some other libraries, therefore
Enabling the GPIO settings automatically disables the flash LED. Therefore you can enable it here manually by checking GPIO4 and choose ``"build-in led flash light"``. It is not recommended to use both illumination parallel.
Enabling the GPIO settings automatically disables the flash LED. Therefore you can enable it here manually by checking GPIO4 and choose `"build-in led flash light"`. It is not recommended to use both illumination parallel.

View File

@@ -21,7 +21,7 @@ Details can be found here: tbd
This is a implementation of the camera interface of https://github.com/jomjol/water-meter-picture-provider
It is fully compatible including the parameters (```quality```=..., ``size=...`` ) . This allows to use this ESP32 system in parallel to the corresponding docker system: https://github.com/jomjol/water-meter-system-complete, from which this project is basically the successor.
It is fully compatible including the parameters (```quality```=..., `size=...` ) . This allows to use this ESP32 system in parallel to the corresponding docker system: https://github.com/jomjol/water-meter-system-complete, from which this project is basically the successor.