Log in or register to post comments

Recognition Distance problem

June 22, 2011 - 1:48am #1

When I run the ImageTargets sample project.
how to Identify the marker image far from more than 5 meters?
How to increase the recognition distance?
How to identify if image is small?
Please examples.
Thank you very much.

Re: Recognition Distance problem

June 23, 2011 - 8:56am #4
Quote:

But if I don‘t change the size of the image(marker-image), can you increase the recognition distance?

Not explicitly through the SDK. There is no way to define a detection range. Use of autofocus can help, and perhaps increasing the milliseconds per multiframe interval (i.e. HINT_IMAGE_TARGET_MILLISECONDS_PER_MULTI_FRAME ). But the critical factor is the actual target area, as this determines the proportional area of the image within the camera's FOV.

You can also experiment with image designs. Some are better for distances.

Re: Recognition Distance problem

June 22, 2011 - 7:55pm #3

Thank you for your quick response!
I could change the teapot size in the config.xml , I've found that the detection distance for good targets is typically about 4 times the diagonal length of the target rectangle.
But if I don‘t change the size of the image(marker-image), can you increase the recognition distance?

Re: Recognition Distance problem

June 22, 2011 - 11:36am #2

The distance at which you can detect a target is going to be determined by the size of the target and the apparent features of the image you're using. So you should experiment with larger targets that have features that are apparent from 5 meters.

I've found that the detection distance for good targets is typically about 4 times the diagonal length of the target rectangle. Though some targets are detectable from a further multiple. For instance, I have a large print of the 'stones' sample media w/ a 4' diagonal and this can reliably be picked up at 17' w/ good illumination. Also you'll notice that the initial detection distance is often less than the potential tracking distance.

Here's some code from Kim that shows how to obtain the trackable and determine its pose and size, and its center.

        //get target object 
         const QCAR::Trackable* trackable = state.getActiveTrackable(0);
         
         //get qcar pose 
         QCAR::Matrix44F modelViewMatrix = QCAR::Tool::convertPose2GLMatrix(trackable->getPose());
         
         //get target dimensions
         const QCAR::ImageTarget* target =   static_cast<const QCAR::ImageTarget*>(trackable);
         QCAR::Vec2F target_size = target->getSize();
         GLfloat x= target_size.data[0]/2;
         GLfloat y = target_size.data[1]/2;     
Log in or register to post comments