How revelrush/automatic-water-meter-reader works
Automatic-Water-Meter-Reader is a command-line image-to-reading application. A user supplies a meter image and the meter’s whole-digit and total-digit counts; main.py coordinates counter localization, digit recognition, numeric formatting, and saving a processed-image visualization. The README describes segmentation for counter detection and Faster R-CNN for recognition, with additional preprocessing and final postprocessing. The supplied source excerpt shows the main coordinator but not the counter modules’ internals, so their internal processing and detailed detector wiring are represented conservatively.
Main entry points: main.py Pipeline coordinator · CounterDetection.py Counter preprocessing · CounterRecognition.py Digit preprocessing
Components 15
Image localization
- Pipeline coordinator
main.py - Counter preprocessing
CounterDetection.py - Counter segmentation
main.py
Digit recognition
- Counter region
- Digit preprocessing
CounterRecognition.py - Faster R-CNN detector
main.py - Digit labels
Reading output
- Recognized digits
- Decimal formatting
main.py - Processed image
CounterRecognition.py - Save visualization
main.py
Other components
- CLI user
- Meter image
- Meter reading
- Saved image file
Connections 18
- CLI user → Pipeline coordinator: provides arguments
- CLI user → Meter image: selects
- Meter image → Pipeline coordinator: image path
- Pipeline coordinator → Counter preprocessing: calls detection
- Counter preprocessing → Counter segmentation: processes image
- Counter segmentation → Counter region: localizes counter
- Counter region → Pipeline coordinator: returns region
- Pipeline coordinator → Digit preprocessing: calls recognition
- Digit preprocessing → Faster R-CNN detector: detects digits
- Pipeline coordinator → Digit labels: loads labels
- Digit labels → Faster R-CNN detector: class mapping
- Faster R-CNN detector → Recognized digits: predicts digits
- Recognized digits → Pipeline coordinator: returns prediction
- Pipeline coordinator → Decimal formatting: formats digits
- Decimal formatting → Meter reading: produces value
- Pipeline coordinator → Processed image: receives image
- Processed image → Save visualization: provides image
- Save visualization → Saved image file: writes file