chili-epfl / chilitags

Robust Fiducial Markers for Augmented Reality And Robotics
http://chili.epfl.ch/software
123 stars 57 forks source link

IDs detected, that don't exist anymore. #91

Closed Martin-Oehler closed 7 years ago

Martin-Oehler commented 7 years ago

I'm using a very basic setup where I feed single images (batch) into Chilitags::find using DETECT_ONLY. After detection I draw the found tags into the image and display them.

I noticed that a tag, which was found in the first image, is still detected at the same position in the second image, even if it is not present anymore in the second image.

If the second image is processed multiple times, the "ghost" tag disappears after 3-4 tries.

qbonnard commented 7 years ago

Hi Martin,

Did you call chilitags::setFilter(0, 0); ? By default, tags "persist" for 5 frames before disappearing.

Martin-Oehler commented 7 years ago

Hello qbonnard, thanks for your advice, I did indeed not call chilitags::setFilter(0, 0);.

I think this is a strange default behavior since it only makes sense for tracking and is really surprising when you use DETECT_ONLY for batch processing.

qbonnard commented 7 years ago

The rationale for this default behavior is that in it's simplest use (instantiating Chilitags, then calling find right away), detection should do the "right thing" for most users (nothing new here). We thought that most users provide a feed of images from the camera in a robotic or AR context, and the right thing was to have tag not appear and disappear too often... Even if it means a latency 5 frames to realize that a tag has disappeared. Out of curiosity, may I ask what's your use case ?

So I assume I can close this issue ?

Martin-Oehler commented 7 years ago

It always depends on the application I guess.

I'm calibrating a robot arm by detecting the tags from multiple poses and minimizing the error to their expected position. You can find the fork here, if you are interested.

Sure, you can close it now, thanks for your help.