Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

When I was first learning computer vision, I wrote a program that could tell the time from an image of a clock [1]. I had no purpose for it besides the fact that it seemed like a cool problem to try and solve.

Years later, I get an email from a stranger in Korea, asking me how to run my program. Why would he want to use my silly program? Turns out you can adapt the code to read analog pressure gauges which is really useful for chemical plants. Goes to show that there's often a use for most things.

[1] https://github.com/jinayjain/timekeeper



This is very similar to when I used OpenCV to read the angle of a cardboard knob I pinned on the wall in my office to change the volume on Spotify!


That is a super cool idea! Kinda sad that it doesn’t make much sense outside of a very particular use case scenario. Much more practical to mount a potentiometer to the wall for any sort of fixed installation.

It might be cool adapt for a mobile office setup where you’re only present in one location for a few days but still want some automated creature comforts.


Cf. https://dynamicland.org/

> Dynamicland is a nonprofit research lab creating a humane dynamic medium.

> What that means is a way for real people in the real world to explore ideas together, not just with words and pictures, but with computation.

They're doing stuff like that.


lol that’s great and not that useless at all. I could see using Lego and opencv to create adhoc control boards for some fun hacking.


Thanks for sharing this. The blog article on building your pipeline was a fun read! Your solution has a nice blend of heuristics and DL.

If you’re ever interested in revisiting this click project, you could check out DeepLabCut [0]. A blogpost highlighted a toy example of training a DLC model to recognize clock arms [1], which may or may not be more consistent than your Canny approach :)

[0] https://github.com/DeepLabCut/DeepLabCut

[1] https://guillermohidalgogadea.com/openlabnotebook/training-y...


Woah generalized pose estimation seems really useful and it's cool that the example is for reading a clock. Thanks for sharing!


Your anecdote gave me a genuine “that’s cool” smile, the sort that I haven’t had over a piece of tech in a bit. That must have been a fun email. Thanks for sharing!


long-long time ago (think end of last century) friend of mine take contract to automatize gas-pump stations on long gas pipe. Stations were here, with analog gauges and valves.

Offer from some "big" business with digital / connected gauges and motorized valves were too much for customer. He wanted much, much cheaper.

There were special modems, which use pipe as data line (think something like 150 baud shared between all stations).

So, solution implemented by my friend was like:

1) Electric motor with gearbox to motorize valves, it was cheap, as standard electric motors are cheap and customer has its own mechanical shop, so everything was cobbled in-house from standard of-the-shelf components.

2) Modem for each station (it was inevitable)

3) Laptop with B/W web cam on each station.

4) Software which can read gauges from webcam shots.

5) Software which transmit values from all stations to central station and allows to manipulate valves from central station (no automation here, 24/7 human operators)

Laptops and cameras were not cheap from personal point of view, but like x100 cheaper than special gauges and valves offered by gas-pipe equipment manufacturer.

It was not called "computer vision" at this time.


I used to work for a company that makes smart watches with real (software-driven) mechanical hands, and had to write a very similar computer vision program to read the time from those watches and automatically calibrate the position of the minute and hour hands. So yes it has real purpose ;)


Out of interest, how does this account for the orientation of the clock? Is it assuming 12 is always at the top, or is there some way it would work if the photo was somewhat rotated?


Yep, it does some naive rescaling of the clock to make it circular (since perspective would make it more like an ellipse in the image), but then assumes 12 is always at the top.


At ETH we worked on an analog pressure gauge reading project. In the larger project, we wanted to read analog pressure gauges in oil refineries. https://github.com/ethz-asl/analog_gauge_reader


If your timekeeper doesn't perform adequately, there's an impressively overengineered neural net project to read clocks: https://arxiv.org/abs/2111.09162 "It's About Time: Analog Clock Reading in the Wild".

(Although I don't know how it would compare to the latest generalist vision models... Clocks are pretty well labeled in photographs online, one would expect.)


That is so frickin cool!


Thanks!


this had also crossed my mind back a while back for reading home gas meters :-)


Did you once share this anecdote on /.? I remember this.


Hmm, I've never used /. so it wasn't me who shared it.


Cool anecdote!


Thank you!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: