Files
AI-on-the-edge-device-docs/docs/Choosing-the-Model.md
CaCO3 82bb46bf64 .
2025-04-13 21:59:46 +02:00

92 lines
3.8 KiB
Markdown

# Model Selection
!!! Notes
See [Neural Network Types](Neural-Network-Types.md) for additional details.
In the [Graphical Configuration Page](Configuration.md), you can choose different models depending on your needs.
This page tries to help you on which model to select.
For more technical/deeper explanations have a look on [Neural-Network-Types](Neural-Network-Types.md).
## Digit Models
For digits on water meters, gas-meters or power meters you can select between two main types of models:
- `dig-class11`
- `dig-class100` and `dig-cont`
`class` stands for **classification** and `cont` stands for **continuous**. The `11` means that there are 11 states (`0..9` and `N`). The `100` indicates that the model resolves into `x.1` steps.
### `dig-class11`
This model can recognize **full digits**. It was the first model version. All intermediate states shown a `N` for not-a-number (aka. `NaN`). But in post process it uses older values to fill up the `N` values if possible.
![](img/dig-class11.png){: style="width:300px"}
It's possibly a good fallback, if `dig-cont` or `dig-class100` results are not good.
Main features:
* well suited for LCD digits
* the ExtendedResolution option is not supported. (Only in conjunction with `ana-class100` or `ana-cont`)
### `dig-class100` and `dig-cont`
These models are used to get a **continuous reading** with intermediate states. To see what the models are doing, you can go to the Recognition page of your device.
![](img/dig-class100.png){: style="width:300px"}
Main features:
* suitable for all digit displays.
* Advantage over `dig-class11` that results continue to be calculated in the transition between digits.
* With the ExtendedResolution option, higher accuracy is possible by adding another digit.
The difference between `dig-class100` and `dig-cont` is in the internal processing.
The `dig-class100` is a standard classification model. Each tenth step is an output.
`dig-cont` uses two outputs and arctangent to get the result.
!!! Note
Try both models on your device and take the one that gives you the best results.
Look [here](https://jomjol.github.io/neural-network-digital-counter-readout) for a list of digit images used for the training.
## Analog pointer models
### `ana-class100` and `ana-cont`
For pointers on water meters use the analog models:
![](img/ana-class100.png){: style="width:250px"}
You can choose between two models:
- `ana-class100`
- `ana-cont`
Both do mainly the same.
`class` stands for **classification** and `cont` stands for **continuous**.
Main features:
* for all analogue pointers, especially for water meters.
* With the ExtendedResolution option, higher accuracy is possible by adding another digit.
Again, the difference between `ana-class100` and `ana-cont` is in the internal processing.
!!! Note
Take the one that gives you the best results. Both models learn from the same data.
Look [here](https://jomjol.github.io/neural-network-analog-needle-readout/) for a list of pointer images used for the training
## Different types of models (normal vs. quantized)
The normally trained network is calculating with internal floating point numbers. The saving of floating point numbers naturally takes more space than an integer type. Often the increased accuracy is not needed. Therefore there is the option, to "quantize" a neural network. In this case the internal values are rescaled to integer values, which is called "quantization". The stored tflite files are usually much smaller and runs faster on the edgeAI-device.
Usually the models are distrusted therefore in both versions. They can be distinguished by a `q` at the end of the logfile.
Example:
| Type | Name |
| :-------- | --------------------------- |
| Normal | `dig-cont_0610_s3.tflite` |
| Quantized | `dig-cont_0610_s3-q.tflite` |