Files
AI-on-the-edge-device-docs/Configuration/index.html
2023-01-02 23:17:17 +00:00

272 lines
15 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/Configuration/" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Configuration - 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 = "Configuration";
var mkdocs_page_input_path = "Configuration.md";
var mkdocs_page_url = "/AI-on-the-edge-device-docs/Configuration/";
</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">
<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">
<ul>
<li class="toctree-l1"><a class="reference internal" href="..">Welcome to the AI-on-the-edge-device!</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Links</span></p>
<ul>
<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">Place an Issues</a>
</li>
<li class="toctree-l1"><a class="" href="https://github.com/jomjol/AI-on-the-edge-device/discussions">Join a Discussions</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Asorted Pages</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../AI-on-the-edge/">Welcome to the AI-on-the-edge-device wiki!</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Addditional-Information/">Addditional Information</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Best-Practice/">Best Practice</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Build-Instructions/">New</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Choosing-the-Model/">Which model should I use?</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Configuration-Parameter-Details/">Configuration Parameter Details</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="./">Configuration</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#processing-steps-overview">Processing steps - Overview</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#1-makeimage">1. [MakeImage]</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#2-alignment">2. [Alignment]</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#3-digits">3. [Digits]</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#4-analog">4. [Analog]</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#5-postprocessing">5. [PostProcessing]</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#6-mqtt">6. [MQTT]</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#7-autotimer">7. [AutoTimer]</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#8-debug">8. [Debug]</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#9-ende">9. [Ende]</a>
</li>
</ul>
</li>
</ul>
</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="../Demo-Mode/">Demo Mode</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Error-Codes/">Error Codes</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="../External-LED/">External LED</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../FAQs/">Frequently Asked Questions</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Frequent%20Reboots/">Frequent reboots</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Gasmeter-Log-Downloader/">Gasmeter Log Downloader</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Graphical-configuration/">Graphical configuration</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="../Install-a-rolling-%28unstable%29-release/">:bangbang: Living on the edge :bangbang:</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Installation/">Installation</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Integrated%20Functions/">Integrated Functions</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="../Learn-models-with-your-own-images/">Learn models with your own images</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../MQTT-API/">General Information</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Migrate-Old-Config-To-New-Config/">Migration from water-meter „old“ to water-meter “AI-on-the-edge-device”</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="../OTA---Update-Firmware-and-Web-Interface/">Over-The-Air (OTA) Update</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../REST-API/">REST API</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../ROI-Configuration/">ROI (Region of Interest) Configuration</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Release-creation/">Release creation</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Testing/">Testing</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Watermeter-specific-analog---digital-transition/">Understanding the problem</a>
</li>
</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> &raquo;</li>
<li>Asorted Pages &raquo;</li>
<li>Configuration</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/jomjol/AI-on-the-edge-device-docs/edit/main/doc/Configuration.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">
<p>Most of the settings can be modified with the help of a web based <a href="Graphical-configuration">graphical user interface</a>. This is hosted through the web server on the ESP32.</p>
<p>More configuration parameters can be edited by hand in the <code>config.ini</code> and corresponding files in the <code>/config</code> directory on the SD-card. </p>
<p>If you where using the Version 1 of the watermeter you can easily transfer the configuration to the new system by following the steps in this <a href="MigrateOldConfigToNew.md">migration description</a></p>
<h2 id="processing-configini-principle">Processing / Config.ini principle</h2>
<p>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 <code>config.ini</code>, which is indicated by brackets <code>[name_of_step]</code>. 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.</p>
<h3 id="processing-steps-overview">Processing steps - Overview</h3>
<p>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)</p>
<h4 id="1-makeimage">1. <code>[MakeImage]</code></h4>
<ul>
<li>This steps parametrises the taking of the image by the ESP32-CAM. Size, quality and storage for logging and debugging can be set.</li>
</ul>
<h4 id="2-alignment">2. <code>[Alignment]</code></h4>
<ul>
<li>Image preprocessing, including image alignment with reference images</li>
</ul>
<h4 id="3-digits">3. <code>[Digits]</code></h4>
<ul>
<li>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)</li>
</ul>
<h4 id="4-analog">4. <code>[Analog]</code></h4>
<ul>
<li>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.</li>
</ul>
<h4 id="5-postprocessing">5. <code>[PostProcessing]</code></h4>
<ul>
<li>Summarized the individually converted pictures to the overall result. It also implements some error corrections and consistency checks to filter wrong reading.</li>
</ul>
<h4 id="6-mqtt">6. <code>[MQTT]</code></h4>
<ul>
<li>Transfer of the readings to a MQTT server.</li>
</ul>
<h4 id="7-autotimer">7. <code>[AutoTimer]</code></h4>
<ul>
<li>Configuration of the automated flow start at the start up of the ESP32. </li>
</ul>
<h4 id="8-debug">8. <code>[Debug]</code></h4>
<ul>
<li>Configuration for debugging details</li>
</ul>
<h4 id="9-ende">9. <code>[Ende]</code></h4>
<ul>
<li>No meaning, just an additional indication, that the configuration is finished.</li>
</ul>
<p><strong>A detailed parameter description can be found here: [[Configuration Parameter Details]].</strong></p>
<h2 id="graphical-configuration-interface">Graphical configuration interface</h2>
<p>It is recommended to do the configuration of the alignment structures and ROIs through the graphical user interface. A step by step instruction can be found here: [[Graphical Configuration]]</p>
<h2 id="background-for-image-alignment">Background for Image Alignment</h2>
<p>Details on the image recognition flow can be found in the other project here: https://github.com/jomjol/water-meter-system-complete/blob/master/images/Alignment_procedure_draft.pdf</p>
<p>The <code>config.ini</code> here has the same functionality and options, but a slightly different syntax due to a own written ini-parser is used. Migration see <a href="MigrateOldConfigToNew.md">here</a>.</p>
<h3 id="integration-into-home-assistant">Integration into Home Assistant</h3>
<p>Thanks to the help of the user @deadly667 here are some hints for the integration into the home assistant: [[Integration-Home-Assistant]]</p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../Configuration-Parameter-Details/" class="btn btn-neutral float-left" title="Configuration Parameter Details"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../Correction%20Algorithm/" class="btn btn-neutral float-right" title="Correction Algorithm">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="../Configuration-Parameter-Details/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../Correction%20Algorithm/" style="color: #fcfcfc">Next &raquo;</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>