JeVois Tutorials  1.6
JeVois Smart Embedded Machine Vision Tutorials
Share this page:
Live training of the Object Detection module

The ObjectDetect module allows JeVois to detect objects that it has seen before.

With JeVois v1.2 and later you can train this algorithm live.

In this tutorial, you will learn how to train the algorithm live to recognize new objects.

Getting started

Theory of operation

The module finds objects by matching keypoint descriptors between the current image and a set of training images. Here we use SURF keypoints and descriptors as provided by OpenCV.

The algorithm consists of 4 phases:

Live training

Because this alogrithm performs matching between the current image captured by JeVois and a collection of reference images, only one training examplar is needed for each new object.

The ObjectDetect module provides commands and parameters to assist you in collecting a good training image for each new object that you want to be able to detect:

First, enable display of a training window using:

setpar showwin true

You should now see a grey rectangle. You can adjust the window size and aspect ratio using the win parameter. By default, the algorithm will train new objects that occupy half width and height of the camera image.

Point your JeVois camera to a clean view of an object you want to learn (if possible, with a blank, featureless background, as this algorithm does not attempt to segment objects and would otherwise also learn features of the backgrouns as part of the object). Make sure the objects fits inside the grey rectangle and fills as much of it as possible. You should adjust the distance between th eobject and the camera, and the grey rectangle, to roughly match the distance at which you want to detect that object in the future. Then issue the command:

save somename

over a serial connection to JeVois, where somename is the name you want to give to this object. This will grab the current camera image, crop it using the grey rectangle, and save the crop as a new training image somename.png for immediate use. The algorithm will immediately re-train on all objects, including the new one. You should see the object being detected shortly after you send your save command. Note that we save the image as grayscale since this algorithm does not use color anyway.

You can see the list of current images by using command:


Finally, you can delete an image using command:

del somename

where somename is the object name without extension, and a .png extension will be added. The image will immediately be deleted and that object will not be recognized anymore.

See it in action

Additional activities