ethz-asl / rovio

Other
1.12k stars 506 forks source link

Setting useDirectMethod inverted? #197

Closed tmoerwald closed 5 years ago

tmoerwald commented 5 years ago

Hi,

I found that the setting useDirectMethod might be inverted:

Having it to true results in features that drift along edges or are dragged farther away from inconsistent moving objects (e.g. people walking through scene), compared to setting it to false.

Setting it to false leads to higher feature ID's at the end of a dataset, indicating that features are deleted more strictly (i.e. inconsistent w.r.t. epipolar constraints).

Appart from qualitative difference, I could not find significant difference in accuracy as well as robustness. But this might be due to a coincidentally balanced set of data, w.r.t. the characteristics of indirect and direct methods.

best regards, Thomas

bloesch commented 5 years ago

The behavior of feature tracking strongly depends on various parameters. useDirectMethod allows the detector to use line features and this may drift along edges sometimes (depending on other parameters). if useDirectMethod is disabled these features are not tracked properly (evtl not detected either - i dont remember) and thus you will not see any drifting along the edges.

As you say, which setup works better depends on settignsd and dataset.