Ask Your Question
0

Reading a water meter

asked 2015-07-28 05:15:24 -0600

iMarcB gravatar image

Hello all,

I would like your advice with the implementation of the following. We are creating an app which can take a picture of your water meter and fill in the meter reading as text on your mobile phone (android and ios). The app uses an overlay to make the image more focused on the actually meter reading.

There are a lot of circumstances possible where it is harder to scan the image which are:

  • The reflection of the camera on the glass
  • Numbers can be half way down or up
  • Most of the time these meters are found in very dark places
  • It happens a lot that there is moist under the glass
  • There are different fonts and sizes

These difficulties we would like to overcome by using OpenCV and optimizing the image for the OCR engine(tesseract). Which steps should we take to get the most accurate meter reading? Note that we also would like the white numbers on the red background.

The scanned watermeter are European and will look something like this: image description image description

We also found this paper from 2011 which handles this topic: http://ir1.sun.ac.za/bitstream/handle/10019.1/6673/ulyate_automated_2011.pdf?sequence=2&isAllowed=y. Is it still any good in 2015 or are there better ways to do it now?

We would love to hear your advice!

edit retag flag offensive close merge delete

Comments

I would say that the paper is a good start. You shall do a "negativation" there, for having the same case (because the numbers are white and the background is black). More, if the black part is working, then the red part you can treat it on channels, for example subtracting the blue from the red (or vice-versa) for extracting the numbers. The problems with the light, should be treated at the end. And another thing: you should create a specialised OCR: just for numbers, because you cannot have letter there, isn't it?

thdrksdfthmn gravatar imagethdrksdfthmn ( 2015-07-28 06:22:44 -0600 )edit
1

Good luck with finding the solution :D This however this goes far beyond the basic OpenCV implementations. You will need to tweak algorithms to your exact needs. And thus I am not sure if it is very usefull to come up with complete solutions for you. Some steps I would consider

  • Clearing the image --> trying to get to a binary image will include segmentation of the counter part, then applying histogram equilization, contrast enhancement, edge enhancement, ...
  • Then adapt to your own OCR --> interface with tessaract but train your own OCR vocabulary specificly for the application.

GOOD LUCK!

StevenPuttemans gravatar imageStevenPuttemans ( 2015-07-28 06:31:09 -0600 )edit

1 answer

Sort by ยป oldest newest most voted
0

answered 2015-08-07 06:23:01 -0600

the rotating wheel is an advantage, I'm added a greyscale sensor and an arduino to reed the rotations, you can see details here: http://forum.mysensors.org/topic/1647...

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2015-07-28 05:15:24 -0600

Seen: 4,167 times

Last updated: Jul 28 '15