[Edinburgh-pm] OT Image Analysis / OCR
perl at minty.org
Fri Oct 1 14:39:18 PDT 2010
Hope heretic was fun :)
I'm at a bit of a loss where to start on this, so any suggestions
welcome. It's basically an image processing and OCR problem.
A while back I got an electricity meter -- it measures the total
household usage, requires no wiring and can be plugged into a computer
for fun graphing applications. I'd highly recommend them.
http://www.currentcost.com/ (I have an older model)
Fwiw, we avg ~10 kWh/day, or roughly about £1/day.
Then I realised that saving electricity is all well and good, but it's a
relatively small fraction of our energy usage. Gas being the big
elephant in the room (mainly for heating).
So I'd like to measure our gas usage, daily or preferably hourly.
Unless someone knows of a no-hassle, no-pipework gas monitor, I hit upon
the wheeze of getting a cheap webcam  and placing it in front of the
gas meter and capturing an image. Here are a couple of test samples:
I've cropped the pictures to show just the meter.
Basically the problem is how do I convert those into "6500" or better
"6500.96". Bonus marks for additionally converting the red arrow/dial
(although I suspect that might actually be easier).
The best I've found so far open source ocr is
I'm not entirely against just running a brute force approach in
Perl using known tiles and looking for "fuzzy" but likely matches.
But I'm wondering if anyone has a smarter idea?
Some points of note:
- I can "fix" the camera, but as the cupboard is used periodically for
storage, there is always a chance of a small knock. It'd be best to
assume the camera position will move a small amount over time, but can
be (roughly) hand-calibrated easily enough.
- The meter has a glass front, causing horribly lens glare if the camera
& it's led lights are placed straight on. Thus, the image is slightly
skewed due to the camera being off-center. I could go up/down, left
or right. It's in a dark cupboard with no other constant light source.
- Between the "65" and the "00" is a chip in the glass. For this
reason, positioning the camera to the left works better than to the
right. Similarly, I'd imaging down would work better than up.
- Worst case is automatic daily image capture and a yearly manual job of
running through 365 images and re-keying the meter reading. But
hourly would be a lot more fun, and that is probably beyond my
Taking a weekly reading by hand and averaging over 7 days would be a
decent approximation. However I'd like to log temperature too. I can
get a close outside temp from the BBC  and the CurrentCost device
logs the room temp. So a weekly average would loose a good amount of
 http://amzn.to/9OrpWW and I can confirm it works flawlessly on
ubuntu and mac os x without needing any drivers. Truely plug n play.
Only downside is you can't control the leds (or focus, or position) via
the computer, but hey, they're leds, so we can leave them on all the
A pending task is to measure the power consumption of the computer when
idle with the camera plugged in and leds on, vs camera unplugged.
More information about the Edinburgh-pm