# jomjol/ai-on-the-edge-device

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jomjol-ai-on-the-edge-device).**

8,461 stars · 877 forks · C++ · NOASSERTION

## Links

- GitHub: https://github.com/jomjol/AI-on-the-edge-device
- Homepage: https://jomjol.github.io/AI-on-the-edge-device-docs/
- awesome-repositories: https://awesome-repositories.com/repository/jomjol-ai-on-the-edge-device.md

## Description

AI-on-the-edge-device is an edge AI meter digitizer and computer vision image processor designed to convert images of analog and digital utility meters into numeric values. It functions as an IoT gateway that runs neural network inference locally on hardware to monitor water, power, and gas readings.

The system is distinguished by its ability to handle both analog pointers and digital digits through custom-trained neural networks. It includes specialized tools for image alignment, region-of-interest extraction, and hardware-level lighting control to minimize glare on glass surfaces. To maintain performance on edge hardware, the project employs integer-quantized models.

The project covers a broad operational surface, including data processing for reading validation and rollover correction, and a variety of integration methods such as MQTT, REST APIs, and webhooks. It also features comprehensive device management capabilities, including GPIO control, a web-based administration dashboard, and Prometheus metrics exportation for hardware telemetry.

The system supports over-the-air firmware updates and provides a wireless access point for initial network and system configuration.

## Tags

### Artificial Intelligence & ML

- [On-Device Inference](https://awesome-repositories.com/f/artificial-intelligence-ml/inference-clients/on-device-inference.md) — Performs local neural network inference on edge hardware to digitize meter images.
- [Meter Digitization](https://awesome-repositories.com/f/artificial-intelligence-ml/meter-digitization.md) — Converts images of analog utility meters and dials into digital values using neural networks on edge hardware. ([source](https://cdn.jsdelivr.net/gh/jomjol/ai-on-the-edge-device@main/README.md))
- [Edge Inference](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-networks/edge-inference.md) — Executes quantized neural networks locally on resource-constrained hardware to digitize meter images in real-time.
- [Region Alignment](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-features/region-alignment.md) — Extracts specific image coordinates and applies geometric corrections for consistent model input.
- [Image Region Isolation](https://awesome-repositories.com/f/artificial-intelligence-ml/image-region-isolation.md) — Specifies image coordinates and dimensions to isolate target data for digitization. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/ROI-Configuration/))
- [Image Processing Pipelines](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/frameworks/computer-vision/image-processing-pipelines.md) — Implements a pipeline for capturing, aligning, and extracting regions of interest for neural network analysis.
- [Digit Recognition](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-networks/digit-recognition.md) — Evaluates images using a neural network to convert visual digits into numeric data. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Configuration/))
- [Meter Digit Classification](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-networks/digit-recognition/meter-digit-classification.md) — Identifies numerical digits from images using networks that handle discrete numbers and transitional states. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Neural-Network-Types/))
- [Numeric Meter Digitization](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-networks/digit-recognition/numeric-meter-digitization.md) — Identifies digits on meters using classification or regression models to convert displays into digital values. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Choosing-the-Model/))
- [Model Binary Updates](https://awesome-repositories.com/f/artificial-intelligence-ml/ai-model-configurations/model-binary-updates.md) — Provides the ability to update the active neural network model by uploading new configuration files via settings. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/collect-new-images/))
- [Custom Model Training](https://awesome-repositories.com/f/artificial-intelligence-ml/custom-model-training.md) — Trains neural networks using labeled images of meter faces to optimize on-device recognition. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Learn-models-with-your-own-images/))
- [Local AI Image Enhancers](https://awesome-repositories.com/f/artificial-intelligence-ml/local-ai-image-enhancers.md) — Extracts regions of interest and aligns views from photos locally to prepare them for analysis. ([source](https://cdn.jsdelivr.net/gh/jomjol/ai-on-the-edge-device@main/README.md))
- [Edge Hardware Optimizations](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-optimization-and-inference/training-algorithms/machine-learning-optimization/ml-performance-profilers/hardware-specific-model-optimizations/edge-hardware-optimizations.md) — Reduces file size and increases execution speed on edge hardware by substituting floating-point numbers with integers. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Choosing-the-Model/))
- [Training Dataset Collection](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-training-and-tuning/training-frameworks/model-training-pipelines/image-tag-training-pipelines/training-dataset-collection.md) — Saves images of digits and pointers from the installation environment to a storage card for training models. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/collect-new-images/))

### Hardware & IoT

- [Edge AI Meter Digitizers](https://awesome-repositories.com/f/hardware-iot/edge-ai-meter-digitizers.md) — Uses neural networks on edge hardware to convert images of analog and digital utility meters into numeric values.
- [Pointer Recognition](https://awesome-repositories.com/f/hardware-iot/analog-output-controllers/analog-to-digital-converters/pointer-recognition.md) — Evaluates the position of an analog pointer using a neural network to determine a numeric value. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Configuration/))
- [Pointer Tracking](https://awesome-repositories.com/f/hardware-iot/analog-output-controllers/analog-to-digital-converters/pointer-tracking.md) — Tracks the position of analog needles to calculate precise numeric values from meter images. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Choosing-the-Model/))
- [Analog-to-Digital Converters](https://awesome-repositories.com/f/hardware-iot/analog-to-digital-converters.md) — Reads values from digit counters and analog displays using trained neural networks. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Additional-Information/))
- [MQTT Bridging](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/internet-of-things/mqtt-bridging.md) — Acts as a communication bridge broadcasting digitized sensor data to home automation platforms via MQTT.
- [Firmware OTA Update Systems](https://awesome-repositories.com/f/hardware-iot/firmware-management/remote-firmware-updaters/firmware-ota-update-systems.md) — Enables the installation of system updates wirelessly through a web interface without a physical connection. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/))
- [Utility Meter Monitoring](https://awesome-repositories.com/f/hardware-iot/utility-meter-monitoring.md) — Automates the collection of water, power, and gas readings from legacy meters for digital tracking.
- [Remote Management Interfaces](https://awesome-repositories.com/f/hardware-iot/camera-integrations/remote-management-interfaces.md) — Provides a web-based control panel for configuring system settings and managing hardware pins remotely.
- [GPIO Pin Controllers](https://awesome-repositories.com/f/hardware-iot/gpio-pin-controllers.md) — Manages physical GPIO pins for lighting control and external hardware triggers.
- [SD Card File Managers](https://awesome-repositories.com/f/hardware-iot/sd-card-storage-drivers/sd-card-file-managers.md) — Provides a web interface to view, upload, download, and delete files on the local storage card. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/outdated--Integrated-Functions/))
- [Wireless Setup Access Points](https://awesome-repositories.com/f/hardware-iot/wireless-setup-access-points.md) — Provides a wireless access point to facilitate the upload of network and system configuration files. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Installation/))

### Part of an Awesome List

- [LED Controllers](https://awesome-repositories.com/f/awesome-lists/devtools/led-controllers.md) — Manages the color and intensity of LEDs to eliminate glare on glass meter surfaces. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/External-LED/))
- [Region-of-Interest Extraction](https://awesome-repositories.com/f/awesome-lists/productivity/document-scanning/image-pre-processing/region-of-interest-extraction.md) — Extracts regions of interest and aligns raw camera captures to prepare them for neural network recognition. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/))

### Data & Databases

- [MQTT Integrations](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/mqtt-integrations.md) — Broadcasts meter values and device status over MQTT using automatic discovery or manual topic configuration. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Integration-Home-Assistant/))
- [MQTT Connectors](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/mqtt-integrations/mqtt-connectors.md) — Streams processed meter readings and device telemetry to an MQTT broker.
- [Measurement History Logging](https://awesome-repositories.com/f/data-databases/measurement-history-logging.md) — Writes measurement cycle results to a CSV file for long-term historical tracking and analysis. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/data-logging/))

### Graphics & Multimedia

- [Meter Image Capture](https://awesome-repositories.com/f/graphics-multimedia/remote-image-capture/meter-image-capture.md) — Takes photographs of utility meters using a camera with adjustable flash intensity to minimize glare. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Configuration/))
- [Image Export to File](https://awesome-repositories.com/f/graphics-multimedia/design-to-image-exporters/image-export-to-file.md) — Saves raw captured images to a storage card or transmits them via webhooks for external analysis. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Demo-Mode/))
- [Feature-Based Image Alignment](https://awesome-repositories.com/f/graphics-multimedia/feature-based-image-alignment.md) — Shifts and rotates frames based on reference structures to maintain a consistent target area for analysis. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Alignment/))

### Mobile Development

- [Camera Capture Controllers](https://awesome-repositories.com/f/mobile-development/mobile-capabilities/camera-integration/camera-capture-controllers.md) — Triggers the camera to capture snapshots and save them to local storage for analysis. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/REST-API/))

### Networking & Communication

- [MQTT Messaging Integrations](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/communication-apis/mqtt-messaging-integrations.md) — Transfers processed meter readings to a remote server using the MQTT messaging protocol. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Configuration/))

### Development Tools & Productivity

- [Interval-Based Task Execution](https://awesome-repositories.com/f/development-tools-productivity/interval-based-task-execution.md) — Triggers image capture and analysis sequences at fixed time intervals.
- [Web-based File Managers](https://awesome-repositories.com/f/development-tools-productivity/web-based-file-managers.md) — Provides a browser-based interface for network configuration, local file management, and OTA updates.

### DevOps & Infrastructure

- [Release Automation](https://awesome-repositories.com/f/devops-infrastructure/release-automation.md) — Automates the generation of downloadable artifacts and updates the installer via a CI pipeline. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Release-creation/))

### Security & Cryptography

- [Local Data Storage](https://awesome-repositories.com/f/security-cryptography/local-data-storage.md) — Writes raw images and CSV data logs to a local storage card for auditing purposes. ([source](https://jomjol.github.io/AI-on-the-edge-device-docs/Parameters/))

### System Administration & Monitoring

- [Web Management Dashboards](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/remote-access-interface-tools/administrative-interfaces/management-interfaces/web-management-dashboards.md) — Ships a browser-based dashboard for system administration, control, and managing firmware updates. ([source](https://cdn.jsdelivr.net/gh/jomjol/ai-on-the-edge-device@main/README.md))
