Using fastai to read analog gauges

Hi All,

I played a bit with using fastai to read analog gauges for the purposes of logging espresso-making.

I feel like it is getting very good results, but still need to sort through the loss function. The core parts of what was using label_cls=FloatList to get a regression.

data = (ImageList.from_folder(path)
  .split_by_rand_pct()
  .label_from_folder(label_cls=FloatList)
  .transform(get_transforms(), size=224)
  .databunch()) 
data.normalize(imagenet_stats)

And then set the loss function:

learn.loss_func = MSELossFlat()

I am still working my way through the second lesson, so this is the level of knowledge I have so far:
dogtyping

Took this a little further with synthetic 2D renderings of a 3D gauge:

It should help with building out model robustness to angle changes, since the gauge needle doesn’t sit on the surface of the face. It also introduces some interesting alternative noise sources.

More here:

Ok, it’s pretty clear that I didn’t know much about how to read the results in the first round, but I think I got there in the end. Using the 3D renderings resulted in a pretty good model, I think: