mirror of
https://github.com/jomjol/AI-on-the-edge-device-docs.git
synced 2025-12-07 20:16:57 +03:00
317 lines
20 KiB
HTML
317 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html class="writer-html5" lang="en" >
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><link rel="canonical" href="https://jomjol.github.io/AI-on-the-edge-device-docs/FAQs/" />
|
|
<link rel="shortcut icon" href="../img/favicon.ico" />
|
|
<title>Frequently Asked Questions - AI on the Edge Device</title>
|
|
<link rel="stylesheet" href="../css/theme.css" />
|
|
<link rel="stylesheet" href="../css/theme_extra.css" />
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/github.min.css" />
|
|
|
|
<script>
|
|
// Current page data
|
|
var mkdocs_page_name = "Frequently Asked Questions";
|
|
var mkdocs_page_input_path = "FAQs.md";
|
|
var mkdocs_page_url = "/AI-on-the-edge-device-docs/FAQs/";
|
|
</script>
|
|
|
|
<script src="../js/jquery-3.6.0.min.js" defer></script>
|
|
<!--[if lt IE 9]>
|
|
<script src="../js/html5shiv.min.js"></script>
|
|
<![endif]-->
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
|
|
<script>hljs.initHighlightingOnLoad();</script>
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav" role="document">
|
|
|
|
<div class="wy-grid-for-nav">
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
|
<div class="wy-side-scroll">
|
|
<div class="wy-side-nav-search">
|
|
<img src=https://jomjol.github.io/AI-on-the-edge-device-docs//img/logo.png>
|
|
<a href=".." class="icon icon-home"> AI on the Edge Device
|
|
</a><div role="search">
|
|
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" title="Type search term here" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
<p class="caption"><span class="caption-text">Getting Started</span></p>
|
|
<ul class="current">
|
|
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Installation/">Installation</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../initial-setup/">Initial Setup</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Hardware-Compatibility/">Hardware Compatibility</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Best-Practice/">Best Practice</a>
|
|
</li>
|
|
<li class="toctree-l1 current"><a class="reference internal current" href="./">Frequently Asked Questions</a>
|
|
<ul class="current">
|
|
<li class="toctree-l2"><a class="reference internal" href="#my-device-reboots-frequently-what-can-i-do">My device reboots frequently. What can I do?</a>
|
|
<ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="#how-accurate-are-the-detections">How accurate are the detections?</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#my-numbers-are-not-correctly-detected-what-can-i-do">My numbers are not correctly detected. What can I do?</a>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#how-can-i-ensure-invalid-numbers-are-never-reported">How can I ensure invalid numbers are never reported?</a>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#even-after-i-have-setup-everything-perfect-there-is-a-false-reading-especially-around-the-zero-crossing-roll-over-to-next-number">Even after I have setup everything perfect there is a false reading - especially around the zero crossing (roll over to next number)</a>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#pre-value">Pre-Value</a>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#rate-too-high-read">"Rate too high - Read: ..."</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<p class="caption"><span class="caption-text">External Links</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="" href="https://github.com/jomjol/AI-on-the-edge-device/releases">Releases</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="" href="https://jomjol.github.io/AI-on-the-edge-device/index.html">Web Installer/Console</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="" href="https://github.com/jomjol/AI-on-the-edge-device/issues">Create an Issue</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="" href="https://github.com/jomjol/AI-on-the-edge-device/discussions">Join a Discussion</a>
|
|
</li>
|
|
</ul>
|
|
<p class="caption"><span class="caption-text">Configuration</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Reference-Image/">Reference Image</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Alignment/">Alignment References</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../ROI-Configuration/">ROIs (Regions of Interest)</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Configuration/">Graphical Configuration</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Choosing-the-Model/">Model Selection</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../ota/">Over-The-Air (OTA) Update</a>
|
|
</li>
|
|
</ul>
|
|
<p class="caption"><span class="caption-text">Advanced</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Parameters/">Parameters</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Integration-Home-Assistant/">Integration into Home Assistant</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../External-LED/">External LED</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../data-logging/">Data Logging</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../rolling-installation/">Living on the Edge</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Watermeter-specific-analog---digital-transition/">Analog/Digital Transition on Water Meters</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../collect-new-images/">Collect images to improve the models</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Learn-models-with-your-own-images/">Learn a model with your own images</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Correction%20Algorithm/">Correction Algorithm</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Neural-Network-Types/">Neural Network Types</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Additional-Information/">Additional Information</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../New-Releases-Notification/">Notification about new Releases</a>
|
|
</li>
|
|
</ul>
|
|
<p class="caption"><span class="caption-text">Troubleshooting</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Error-Codes/">Error Codes</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../StatusLED-BlinkCodes/">StatusLED BlinkCodes</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../WLAN-disconnect-reason/">WLAN disconnect reasons</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Error-Debugging/">Error Debugging</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Frequent-Reboots/">Frequent Reboots</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Demo-Mode/">Demo Mode</a>
|
|
</li>
|
|
</ul>
|
|
<p class="caption"><span class="caption-text">API's</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../REST-API/">REST API</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../MQTT-API/">MQTT API</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Influx-DB/">Influx DB</a>
|
|
</li>
|
|
</ul>
|
|
<p class="caption"><span class="caption-text">Development</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Build-Instructions/">Build the Project</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Upload-files-by-script/">Scripted File Upload</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Testing/">Testing</a>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../Release-creation/">Preparing for Release</a>
|
|
</li>
|
|
</ul>
|
|
<p class="caption"><span class="caption-text">Old Pages (no longer maintained)</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../outdated--Integrated-Functions/">Integrated Functions</a>
|
|
</li>
|
|
</ul>
|
|
<p class="caption"><span class="caption-text">Assorted Pages</span></p>
|
|
<ul>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
|
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="..">AI on the Edge Device</a>
|
|
|
|
</nav>
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href=".." class="icon icon-home" alt="Docs"></a> »</li>
|
|
<li>Getting Started »</li>
|
|
<li>Frequently Asked Questions</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
<a href="https://github.com/jomjol/AI-on-the-edge-device-docs/edit/main/docs/FAQs.md" class="icon icon-github"> Edit on GitHub</a>
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
</div>
|
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
<div class="section" itemprop="articleBody">
|
|
|
|
<h1 id="frequently-asked-questions">Frequently Asked Questions</h1>
|
|
<h2 id="my-device-reboots-frequently-what-can-i-do">My device reboots frequently. What can I do?</h2>
|
|
<p>There are several reasons for frequent reboots:</p>
|
|
<ul>
|
|
<li>Frequent HTML requests</li>
|
|
<li>Wrong configuration, missing configuration files</li>
|
|
<li>Unstable hardware - see <a href="../Hardware-Compatibility">Hardware Compatibility</a>.</li>
|
|
</ul>
|
|
<p>There is a dedicated page about this: <a href="../Frequent-Reboots/">Frequent Reboots</a>.</p>
|
|
<h3 id="how-accurate-are-the-detections">How accurate are the detections?</h3>
|
|
<p>It is hard to give a specific accuracy number. It depends on many factors, e.g.</p>
|
|
<ul>
|
|
<li>How in-focus is your camera?</li>
|
|
<li>How sturdy is the camera mount? Does it slightly move over extended periods of time?</li>
|
|
<li>What type of meter are you reading? Is the meter already in the training data set?</li>
|
|
<li>Are you trying to read digits, an analog dial, or both?</li>
|
|
<li>etc.</li>
|
|
</ul>
|
|
<p>Anecdotally, the authors of this page have great success with the meter. While the AI algorithm itself is not perfect and sometimes returns <code>NaN</code> or incorrect values, other post-processing / prevalue / sanity checks help ensure such invalid values are filtered out. With the correct settings, one author has been running this device for 1 month without any incorrect values reported. </p>
|
|
<p>See the FAQs below for more details and configuration hints.</p>
|
|
<h2 id="my-numbers-are-not-correctly-detected-what-can-i-do">My numbers are not correctly detected. What can I do?</h2>
|
|
<ul>
|
|
<li>There is a dedicated page about the correct setting <a href="../ROI-Configuration/">ROI Configuration</a>.</li>
|
|
<li>This page also includes the instructions for gathering new images for the training.</li>
|
|
</ul>
|
|
<h2 id="how-can-i-ensure-invalid-numbers-are-never-reported">How can I ensure invalid numbers are never reported?</h2>
|
|
<p>As mentioned above, the AI algorithm is not perfect. Sometimes it may read an incorrect value.</p>
|
|
<p>We can tune the software to <em>almost</em> never report an incorrect value. There is a tradeoff though: the software may report <em>stale</em> values - i.e. it will drop incorrect values for a potentially long period of time, resulting in the meter reading being outdated by hours. If never receiving an incorrect value is important to you, consider tolerating this tradeoff.</p>
|
|
<p>You can change the following settings to reduce incorrect readings (but potentially increase staleness of data):</p>
|
|
<ul>
|
|
<li>Set a prevalue via the UI, then change <code>PostProcessing</code> configuration option <code>PreValueAgeStartup</code> to a much larger number (e.g. <code>43200</code> = 30 days).</li>
|
|
<li>Change <code>PostProcessing</code> configuration option <code>MaxRateType</code> to be time based instead of absolute. Set <code>MaxRateValue</code> to something realistic (e.g. <code>5</code> gal/min). You can often find the max flow rate your meter supports directly on the cover.</li>
|
|
<li>Reduce <code>AutoTimer</code> configuration option <code>Interval</code> to the lowest it can be (e.g. <code>3</code> min). The more often you take readings, the less likely for data staleness to occur.</li>
|
|
</ul>
|
|
<h2 id="even-after-i-have-setup-everything-perfect-there-is-a-false-reading-especially-around-the-zero-crossing-roll-over-to-next-number">Even after I have setup everything perfect there is a false reading - especially around the zero crossing (roll over to next number)</h2>
|
|
<ul>
|
|
<li>The roll over behavior is different for the different meters. E.g.:</li>
|
|
<li>Rolling over start with different previous position (e.g. at 7, 8 or 9)</li>
|
|
<li>
|
|
<p>The neutral position (no rolling) is not perfectly at zero, but rather at something like 7.9 or 8.1, even if it should be exactly 8</p>
|
|
</li>
|
|
<li>
|
|
<p>The "PostProcessingAlgo" is trying to judge out of the individual readings, what number it should be. </p>
|
|
</li>
|
|
<li>
|
|
<p>For example if the previous number is a "1", but the next number seems to be a "8.9", most probably there was a "zero crossing" and the number is a "9" and not still an "8"</p>
|
|
</li>
|
|
<li>
|
|
<p>Currently the setting of the algorithm is set to fit most of the meters and cases. But the parameters do not fit perfectly for all situations. Therefore there might be intermediate states, where the reading is false.
|
|
This is especially the case, at the positions, where the roll over (zero crossing) is just starting.</p>
|
|
</li>
|
|
<li>To prevent a sending of false parameters, there is the possibility to limit the maximum allowed change (MaxRateChange).
|
|
Usually after some time and movement of the counters a bit further, the reading is getting back to a stable reading.</li>
|
|
<li>To handle this, a parametrized setting would be needed. This is rather complicated to implement as subtle changes make a relevant difference. Currently this is not implemented.
|
|
So please be a bit patient with your meter :-)</li>
|
|
</ul>
|
|
<h2 id="pre-value">Pre-Value</h2>
|
|
<p>PreValue is here a bit missleading, because normally it is the same as the last value. In the next round of reading it will be used to check nagtive rates, high rates (MaxRateValue / MaxRateType) and CCheckDigitIncreaseConsistency (dig-class11 only). Either from a previous correctly identified value or manual setting by the user.</p>
|
|
<p>If you use post processes, enable the pre-value. The pre-value must be set at first time. Set it to the current raw value. </p>
|
|
<p>If the device runs in errors, the pre-value will not be updated, as long as the <code>preValueAgeStartup</code> time between the last valid value (or startup time) and current time is not exceeded. After it the preValue will be set again, if no other error occured. So the device can not run in an endless error, like high rate.</p>
|
|
<h2 id="rate-too-high-read">"Rate too high - Read: ..."</h2>
|
|
<p>In configuration you can set the <code>MaxRateValue</code> and <code>MaxRateType</code>. The settings suppress improbably high values that can come from false readings. To do this, the value must be set correctly depending on your meter.</p>
|
|
<p>Before doing this, you should be clear about the type of rating you want to use.</p>
|
|
<p>"Absolute change" is the interval between two readings - no matter how often the readings happen. </p>
|
|
<p>"RateCange" is the change per minute. This is calculated from the time difference between the last and the current reading. </p>
|
|
<p>If there is an interval of 5 minutes between readings and a MaxRateValue of 1, an error "Rate too high - Read: ..." if </p>
|
|
<p>Absolute change: the difference is > 1</p>
|
|
<p>RateChange: the difference is > 1 / 5</p>
|
|
|
|
</div>
|
|
</div><footer>
|
|
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
|
<a href="../Best-Practice/" class="btn btn-neutral float-left" title="Best Practice"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
|
<a href="../Reference-Image/" class="btn btn-neutral float-right" title="Reference Image">Next <span class="icon icon-circle-arrow-right"></span></a>
|
|
</div>
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<!-- Copyright etc -->
|
|
</div>
|
|
|
|
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
</footer>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
<div class="rst-versions" role="note" aria-label="Versions">
|
|
<span class="rst-current-version" data-toggle="rst-current-version">
|
|
|
|
<span>
|
|
<a href="https://github.com/jomjol/AI-on-the-edge-device-docs" class="fa fa-github" style="color: #fcfcfc"> GitHub</a>
|
|
</span>
|
|
|
|
|
|
<span><a href="../Best-Practice/" style="color: #fcfcfc">« Previous</a></span>
|
|
|
|
|
|
<span><a href="../Reference-Image/" style="color: #fcfcfc">Next »</a></span>
|
|
|
|
</span>
|
|
</div>
|
|
<script>var base_url = '..';</script>
|
|
<script src="../js/theme_extra.js" defer></script>
|
|
<script src="../js/theme.js" defer></script>
|
|
<script src="../search/main.js" defer></script>
|
|
<script defer>
|
|
window.onload = function () {
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|
};
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|