Current state of the art in objects classification
rodrigob.github.io
rodrigob.github.io
I ask because I'm building a surveillance system that uses object detection to answer simple questions, like: "Is there a squirrel on my bird feeder?", "Is my car in the garage?", "Is there a package on my front step?".
Right now I'm playing with Darknet and yolo from pjreddie because he emphasized performance and I'm getting about 69fps on my 1080ti.
Is speed not considered important by researchers at this time?
Is there any system that provides decent performance on CPUs? Dedicating $700 gpus to detect squirrels on the bird feeder is fine for crazy people like me but others may find that excessive.
CPU performance is good-ish when you're doing sequential stuff e.g it's not bad at old-school RNNs, but for image recognition using a cheap graphics unit is still going to be better, and if the question is "can I use cheaper hardware and get good performance" the answer is yes, you just have to do some tricks (e.g distillation).
Plenty of image recognition projects on the cheap raspberry pi and its graphics unit.
I don't think CPUs are going to give you decent performance unless you microoptimize the inference for the host architecture and even then the gains are marginal.
If you want to avoid expensive GPUs, take a look at things like Intel's Neural Compute Stick, Google's Vision Kit and the Edge TPU. But you can also run models on modestly priced cell phones- we use $100 cell phones to do object detection and tracking, but it's not pretty.
I have some 100Ks of pix I'd like to put through classifiers but could never get YOLO2 properly working in a container, in part because even reading the code I couldn't figure out how to simply point a trained model at a directory of images and get classification out... :/
Definitely PEBKAC but if there are any dead-simple tutorials available I'd love a pointer–classification speed not a factor, it would all be CPU non-real-time and could be leisurely. Just interested in seeing what the state of the art is in classifying a personal image set without training against it..
It's not Dockerised though, but you could grab a container with the usual machine learning packages and install that on top.
Also look at NVIDIA Digits (https://github.com/NVIDIA/DIGITS) which has Docker images.
Any comments from people who know what they're doing welcome :)
You may also look at recent SnapDragon-powered dev boards, which have TF core accelerators, and provide a serious boost of FPS for less than $700.
Also, using a cloud ML service is an option if you have only a few inferences/day to process
Given the speed of development in machine learning, the numbers are probably outdated.
Quote: "This shows that the current research methodology of “attacking” a test set for an extended period of time is surprisingly resilient to overfitting."
[1]: https://www.eff.org/ai/metrics
[2]: https://jamesscottbrown.github.io/ai-progress-vis/index.html