Utility Meter OCR

Job ID: 31141571

Budget: $250 – $750 USD

The goal of the project is to convert pictures of utility meter readouts into strings of numbers representing the value being displayed (OCR). Attached is a sample of such a picture that was taken by a raspberry pi positioned over a umeter. The only things that change in this picture are the numbers shown by the meter. The lighting, position, and other attributes of images produced at this location never change. We have several more of these pictures comprising many different combinations of numbers in different positions.

Our goal is to determine a CLI-based pipeline of image-processing and OCR tools to convert images like this into text. We would prefer not to use any large machine-learning frameworks, or OpenCV. Our ideal pipeline probably involves pre-processing images with an image manipulation tool like imagemagick and passing those files to an OCR application like Tesseract, Cuneiform, or something similar. That said, if you can make a compelling case for something more involved, we're open.

We're expecting the parameters used for image pre-processing and OCR will need to be manually adjusted for each deployment. Part of the scope of work will be to produce a process or basic set of tools that we can use to easily adjust the parameters passed to the programs performing pre-processing and OCR at each deployment.

In the future we may need to read analog meters and seven segment displays (for seven segment displays we'd like to use a program called "ssocr"). Sometimes these displays will blink or do other annoying things, and we'd like help finding strategies for working with those situations as well.

A short script that ties together processing tools written in bash or Python is acceptable. Most of the work should be in finding the right parameters to pass to command-line tools to create a workable OCR pipeline.
Related categories: Python Software Architecture OCR Bash Scripting