Downloads · 30 days
73
34% of all-time downloads
Beni4/rwanda-water-meter-reading-yolov8n
rwanda-water-meter-reading-yolov8n is a object detection model from Beni4. Use it when you need objects located in an image. It is set up for ultralytics. The card lists the license as agpl-3.0.
This repository contains the selected model for the Rwanda Water Meter Reading System MVP. It detects the complete meter, the reading window, and digits 0-9. The application keeps digits inside the best window and ord…
Downloads · 30 days
73
34% of all-time downloads
All-time downloads
216
Public
Repo size
18.5 MB
Likes
0
Public
Click a slice to open those files.
.onnx12.2 MB · 66%
From the Hugging Face model README
This repository contains the selected model for the Rwanda Water Meter Reading System MVP. It detects the complete meter, the reading window, and digits 0-9. The application keeps digits inside the best window and orders them from left to right to construct a reading.
Test the model without installing anything:
https://huggingface.co/spaces/Beni4/rwanda-water-meter-reading-demo
| Metric | Value |
|---|---|
| Precision | 96.52% |
| Recall | 94.95% |
| mAP@50 | 97.21% |
| mAP@50-95 | 66.88% |
Validation was reproduced with Ultralytics 8.4.49 at an image size of 640 on 249 validation images containing 1,589 labeled objects. Class-by-class results are available in per_class_metrics.csv, and validation_metrics.png provides assessment evidence.
| ID | Class | ID | Class |
|---|---|---|---|
| 0 | meter | 6 | 4 |
| 1 | window | 7 | 5 |
| 2 | 0 | 8 | 6 |
| 3 | 1 | 9 | 7 |
| 4 | 2 | 10 | 8 |
| 5 | 3 | 11 | 9 |
The class order is also stored in classes.yaml.
u is not a trained object class. During post-processing, a detected digit with confidence below 0.40 is returned as u. The same result can be inserted when digit spacing indicates a likely missing position. This prevents uncertain digits from being presented as reliable readings.
Install the same Ultralytics release used for validation:
pip install ultralytics==8.4.49
Run object detection:
from ultralytics import YOLO
model = YOLO("best.pt")
results = model.predict(
source="water_meter.jpg",
imgsz=640,
conf=0.03,
)
for result in results:
print(result.boxes)
Candidate confidence 0.03 retains weak digit candidates for reading post-processing. It is intentionally different from the 0.40 threshold used to convert an uncertain selected digit to u.
The selected run used 1,248 images: 329 teacher-provided meter images and a limited 919-image Roboflow digit subset. The private training images are not redistributed in this model repository. Users must verify ownership and source licenses before reusing or publishing the original datasets.