Artk+filter

hi there.
also the filter discussion is lost.

there are two possibilities to increase stability of any tracking.

  • kalman filter
    should be the harder one but the results should be the best.

  • DESP (Double Exponential Smoothing)
    DESP is only a few lines of c++ code as you can see here:


DESP::DESP(float nAlpha) : alpha(nAlpha), spt(1e10), spt2(1e10)
{
}

void
DESP::reinit()
{
spt = spt2 = 1e10;
}

void
DESP::observe(float nValue)
{
if(spt==1e10 && spt2==1e10)
spt = spt2 = nValue;

float spt_new = alpha*nValue + (1-alpha)*spt;
float spt2_new = alpha*spt_new + (1-alpha)*spt2;

spt = spt_new;
spt2 = spt2_new;

}

float
DESP::predict(int delta_t)
{
if(delta_t==0)
return 2spt - spt2;
else
return (2+(alpha
delta_t)/(1-alpha))spt - (1+(alphadelta_t)/(1-alpha))*spt2 ;
}

the function of the filter technices are illustrated and compared in the following
paper

mr oschatz confirmed that the vvvv damper is doing something similar like DESP.
DESP is working with measurement of two times.

mr oschatz wrote as well that a damper with dynamic filter time
should work for the beginning. if the tracking target or camera is moved, the dampertime should be low. if it is more static, dampertime should be high.

mr oschatz said it would be good to do this with the bounds and queue nodes.

i tried to do this for the artk+.
but the result of filtering the modelviewmatrix is causing a total distorsion of the model.

damper.zip (108.1 kB)

give my Transient (Animation Filter) a try.
you find it at kalle.Modules.Animation
set bin size to 16.

damping matrices makes not so much sense! usualy you can’t interpolate between matrices. it may work in some cases, but as soon as rotations and scaling is involved the values in the matrix are not continous…

damping out spikes indeed apparently does make sense.
my artk+ tracker runs lots better with the transient filter.

yes kalle,
with your transient filter it gets more stable. nice.

hello kalle,
can you describe the way of filtering with
Transient (Animation Filter)?

am i right with this (see shot)?
because there is still airy flickering.

thank you.

filtering.jpg (92.1 kB)

start the helpfile.
see influence of factor.

but that module can only filter spikes from a consistant dataflow. it doesn’t help against fastly changing spreadcounts which is IMHO the main reason for ARTKs flickering.

btw:
try factor settings between 1 and 10.
9999 is a bit …

ok. understood!

it doesn’t help against fastly changing spreadcounts
which is IMHO the main reason for ARTKs flickering.

any idea howto avoid this?

sorry for asking again.
is there any method for the fastly changing spreadcounts
to calm down ArToolKit?