Reading a water meter
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:
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!
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?
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
GOOD LUCK!