And some quick questions:
What network topology do you use, and on what model is it based (e.g. "inception")?
What kind of data have you used to pretrain the model?
And some quick questions:
What network topology do you use, and on what model is it based (e.g. "inception")?
What kind of data have you used to pretrain the model?
The application takes webcam frames and infers through SqueezeNet, producing a 1000D logits vector for each frame. These can be thought of as unnormalized probabilities for each of ImageNet's 1000 classes.
During the collection phase, we collect these vectors for each class in browser memory, and during inference we pass the frame through SqueezeNet and do k-nearest neighbors to find the class with the most similar logits vector. KNN is quick because we vectorize it as one large matrix multiplication.
I'll go deeper in a blog post soon :)
I'm curious why you've used a different classification algorithm on top of a neural network. I would expect that a neural network on top of a pretrained network could give similar results, with the benefit of simpler code. Is performance the reason?
Anyway, I'm looking forward to your blog post.
KNN also makes training "instant", and the code much much simpler.
By the way, I think your software could become very popular on the Raspberry Pi, because it would be very cheap and fun to use it for all sorts of applications (e.g. home automation).