Building a Video Analytics application in 15 minutes
I often see a lot of people talking about how an AI project can be an extremely laborious task because it needs thousands of annotated examples to train well the neural network.
This may be true to some scopes, where there is great variability in the object of detection, like, for example, in the ImageNet dataset, with 1000 classes in extremely different environments. But, in quality inspection projects, usual here at Eyeflow.AI, the need is to detect very few classes with a fixed positioned camera, and in this scenery, a neural network can get good results quickly, with very few annotated examples.
I will show here how can we setup a Neural Network to detect a simple object in a video in 15 minutes of work, using Eyeflow.AI.
First, I shot a small 15’’ movie of my son’s toys, with my cellphone.
In Eyeflow.AI we create a new Application (I called it ‘Blog’) and then a new Flow (15 Minutes), and a Dataset for annotating the examples (Detect Toy) with 2 classes “Bat” and “Puzzle”.After this, extract frames from a video and add randomly selected examples to the dataset. I have added only 20 examples.The examples need to get annotated with boxes, discriminating regions and classes.And then, we put the dataset to train. (Only 5 epochs)After the training, we can put the video to test the Flow, and see the results.We can see in the annotated video an impressive result, with only 20 annotated examples.
Naturally, this is a simplistic demonstration, I know. But in our experience, we have had very good results, production class, with 300 ~ 500 examples, and very rarely we need more than 2.000 examples to get a 99,9% accuracy in a real-world detection.
Reminding that we are talking about a detection of similar parts, using a fixed angle camera. It’s different when we have an object with many variations in angles, formats, colors, etc.
In our projects, we continuously check the results of detections in production environments to get all the examples that the model doesn’t get correctly, and add only these error examples to the dataset to correct the annotations and train a new model. With this method, we reduce drastically the number of examples the dataset needs to get a very good accuracy in a production application. So reducing the effort needed to get a good quality application of Video Analytics.