Coder Social home page Coder Social logo

bolausson / watermeter Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 1.0 123.64 MB

Use a neural network for image recognition to digitize your water meter and store the values in InfluxDB

License: GNU General Public License v3.0

Shell 0.60% Python 99.40%
influxdb python-opencv keras-tensorflow neural-network image-recognition

watermeter's Introduction

watermeter

Use a neural network for image recognition to digitize your water meter and store the values in InfluxDB. Tools used in this workflow:

You might want to check out AI-on-the-edge-device which is way more advanced and easiert to use water meter read-out approach using a ESP32-CAM.

Hardware setup

Attach two webcams to e.g. a RaspberryPi, aim them at your cold and warm water meters

  • Raspberry Pi 4
  • Logitech C925e HardwareSetup

Procedure

  • Adjust monitor-water.py to fit your needs (camera device, crop, etc)
  • Capture a bunch of images using monitor-water.py (set SAVE_FOR_TRAINING to True to capter just everything)
  • Training should be done on a system with CUDA enabled GPU.
  • Use the scripts in the "train" folder in order:
  1. To rsync the images generated by monitor-water.py to the "training" system
  2. View all images and assign them a value (We will use OpenCV do display the extracted features to manually assign a value according to what is in the picture)
  3. Review your work (I will display all characterized images to spot eventually miscahractericed images)
  4. Fix image <-> value asignment in case you screwd up in step 1 and found the mistake in step 2
  5. Append new images to the an existing image set (Python pickle file)
  6. Get some info about exiting image sets
  7. Train your model with the images in the image set
  8. Rsync test data (images which have not yet been seen by the model) to the training system
  9. Test your model

Procedure in pictures

Step 1a
Step 1a Step 1b Step 1b Step 2 Step 2 Step 3 Step 3 Step 4 Step 4 Step 5 Step 5 Step 6 Step 6 Step 8 Step 8

Grafana dashboard screenshot

Grafana dashboard screenshot

Running on Raspberry Pi 4

Running on Raspberry Pi 4

watermeter's People

Contributors

bolausson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

kriebb

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.