votchallenge / toolkit

The official VOT Challenge evaluation and analysis toolkit
http://www.votchallenge.net/
GNU General Public License v3.0
158 stars 46 forks source link

Mask is empty #7

Closed huhaixue closed 4 years ago

huhaixue commented 4 years ago

I meet the problem vot.region.RegionException: Mask is empty. As mentioned in issues#3, it maybe cause by the ground-truth label.

The ground-truth label (mask) is m0,0,0,0,0,1, which means the toolkit re-set tracker with an empty mask.

The new dateset label m0,0,0,0,0, it's still an empty mask. May be the toolkit should re-set the tracker until the Mask is not empty?


Traceback (most recent call last): File "/root/anaconda2/envs/bin/vot", line 10, in sys.exit(main()) File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/cli.py", line 322, in main do_evaluate(args, logger) File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/cli.py", line 168, in do_evaluate run_experiment(experiment, tracker, config.force, config.persist) File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/experiment/init.py", line 83, in runexperiment experiment.execute(tracker, sequence, force=force, callback=progress) File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/experiment/multirun.py", line 142, in execute , properties, elapsed = runtime.initialize(sequence.frame(frame), self._get_initialization(sequence, frame)) File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/tracker/trax.py", line 373, in initialize return self._process.initialize(frame, region, tproperties) File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/tracker/trax.py", line 232, in initialize return convert_traxregion(region), properties.dict(), elapsed File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/tracker/trax.py", line 98, in convert_traxregion return Mask(region.array(), region.offset(), optimize=True) File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/region/shapes.py", line 191, in init self._optimize() File "/root/anaconda2/envs/lib/python3.7/site-packages/vot/region/shapes.py", line 202, in _optimize raise RegionException("Mask is empty") vot.region.RegionException: Mask is empty

alanlukezic commented 4 years ago

Can you specify the sequence and run number where this issue happens? Are you sure that you use vot20 stack and the latest version of the toolkit and trax?

huhaixue commented 4 years ago

I dowload the latest toolkit and trax is 3.0.1. I test the toolkit with integration/python_static_mask.py The frame from 198 to 207 in sequence godfather is labeled as m0,0,0,0,0. So when the tracker is lost, it will re-set with empty mask. In the file /vot/region/shapes.py, line200, mask will be checked.

bounds = mask2bbox(self.mask) if bounds[0] is None: raise RegionException("Mask is empty")

By the way, the sequences 'abiligty dribble flamingo1 frisbee girl godfather handball1 handball2 road soccer1 soccer2 soldier wiper', containe the labels m0,0,0,0,0. They have the chance to be reset with an empty mask.

alanlukezic commented 4 years ago

It looks like you are not using the vot20 stack. With the new challenge we are introducing a new evaluation protocol. A tracker is initialized only on several pre-defined frames in each sequence and let to track to the end of the sequence, rather than re-initialized after each failure. Therefore it is not possible that a tracker is initialized on the frames 198-207 in godfather sequence since these frames are not defined as initialization frames. Whether a frame is defined as initialization or not is specified in the anchor.value file of each sequence.

huhaixue commented 4 years ago

That's really strange. Here is my config.yaml

registry: - ./trackers.ini stack: vot2020

In the anchor.value, the values of the frames 198-207 are 0. The nearest frame 214 is -1.

huhaixue commented 4 years ago

I know it. When the toolkit is compiled local, the yaml files in stack are not copyed to the build folder.

lukacu commented 4 years ago

Please open another issue for this. This should not happen and should be fixed.

On Fri, Mar 27, 2020, 10:34 huhaixue notifications@github.com wrote:

Closed #7 https://github.com/votchallenge/vot-toolkit-python/issues/7.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/votchallenge/vot-toolkit-python/issues/7#event-3171631948, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGVY6PRWGE2YXV5LTQJRFDRJRXLXANCNFSM4LUFQAGA .

MasterBin-IIAU commented 4 years ago

I also encountered "Mask is empty" problem, but I find that this is not caused by labels. Instead, the reason is that the tracker predicts empty masks in some cases! So this problem can be solved by avoiding the tracker predicting empty masks.

alanlukezic commented 4 years ago

This should be fixed now - the toolkit should not crash if a tracker reports an empty mask.

huhaixue commented 4 years ago

When the groundtruth label is empty, the mask_mask_overlap is always zero. What about the empty predict mask also gived by the tracker? Is there any special consideration in the new toolkit when this happen?

MasterBin-IIAU commented 4 years ago

@huhaixue Although the groundtruth is empty in some cases, the toolkit can handle this properly. The analysis can be run normally.

huhaixue commented 4 years ago

@MasterBin-IIAU The author choose to ignore the empty groundtruth labels, which will improve your tracker performance. So update the toolkit and enjoy the surprise.

MasterBin-IIAU commented 4 years ago

@huhaixue Thank you for your information. Do you mean that the latest commits today can improve the tracker's performance?