loading
 
Object Recognition Issue
from United States  [60 posts]
5 years
I am seeing something strange with object recognition. The files are attached. You'll need to make the DB file a subdirectory in the ObjRecognition directory.

The robo file will open with image002 which is an image of NS Restroom, but it is not recognized. Now step the scale using Transform Image to 1.4. It does not get recognized until 1.4. It is now recognized with a confidence of 51%. Change the scale to 1.3 or 1.2 and the image is still recognized. At 1.1 it is lost. Now step the scale to 1.5 or 1.6 and back down. The confidence levels are different as you back down the scale. When tracking is off this doesn't happen.

Shouldn't it recognize properly even with tracking off? Why should the confidence levels be different?

I've seen similar results with the other methods and with other images.

What I am thinking of doing is having the robot capture images as it moves in the park area and add them to the training material. Then when the robot turns or comes back to the area it will recognize its approximate position. It won't save all images but those of some importance:  undetermined criteria at this time - perhaps turning points.

For example, it might capture the images to either side and behind of it for the training DB. Then it moves away using Align to move in a straight line. When it turns around it uses the rear image in the DB to select its orientation. Then drives back until the side images match. Just a hypothetical...


ObjRecognition.zip
ObjectRecognitionDB.zip
Steven Gentner from United States  [1371 posts] 5 years
Rud,

Thats to be expected when the tracking option is set. The reason is that once an object is recognized on the next frame it will instead be tracked instead of recognized. This is easily seen when using the cross correlation method since that method does NOT scale. In other words, if tracking is turned off, the object will quickly disappear due to scale change. Its the tracking that's actually able to scale and rotate even when the base recognition method does not ... and also why all the methods will act the same as they all use the same tracking code.

The reason for the up and down being different is how the tracking works. When it sees that the object is getting smaller it will scale down its original tracking image to keep as close as possible to the tracked object. The reason is that for optimal tracking the thing to track and the template used during tracking should be as close as possible in size. Scaling down works better than up since you can automatically reduce resolution and still have a very good template to track .. but you cannot do that when scaling up. Scaling up really just blurs the image and reduces resolution so the tracking will not be as good.

It is possible to have the tracking remember larger objects to try to avoid this asynchronous tracking ... so if you can make a good case for this it is something we may add.

Alternatively have you looked at the Image Match module for this kind of task? It might be better than the object recognition methods.

Also, if you can post an example video of this movement we can try some other modules that we have to see if they may do a better job.

Have you checked out the AVM module?

STeven.
from United States  [60 posts] 5 years
STeven,

I just looked at Image Match. It is not discriminating sufficiently to work. The matching needs to include shape not just color. The best description I can give at the moment is using Align Image to search for the best match from a set of hundreds of images.

I don't have a video. I'm working for a series of stills I took at the parks.

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index