Closed huhaixue closed 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?
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.
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.
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.
I know it. When the toolkit is compiled local, the yaml files in stack are not copyed to the build folder.
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 .
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.
This should be fixed now - the toolkit should not crash if a tracker reports an empty mask.
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?
@huhaixue Although the groundtruth is empty in some cases, the toolkit can handle this properly. The analysis can be run normally.
@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.
@huhaixue Thank you for your information. Do you mean that the latest commits today can improve the tracker's performance?
I meet the problem vot.region.RegionException: Mask is empty. As mentioned in issues#3, it maybe cause by the ground-truth label.
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