mots_tools icon indicating copy to clipboard operation
mots_tools copied to clipboard

"To check that no frame contains overlapping masks" : Can we use mots_tools for overlapping masks?

Open PanaddaK opened this issue 3 years ago • 2 comments

Hi, following your code I found that

  1. In mots_common.io => load_txt(path)
    You have to check that no frame contains overlapping masks...

    if frame not in combined_mask_per_frame: combined_mask_per_frame[frame] = mask elif rletools.area(rletools.merge([combined_mask_per_frame[frame], mask], intersect=True)) > 0.0: assert False, "Objects with overlapping masks in frame " + fields[0] else: combined_mask_per_frame[frame] = rletools.merge([combined_mask_per_frame[frame], mask], intersect=False) objects_per_frame[frame].append(SegmentedObject( mask, class_id, int(fields[1])

  2. Is it possible to use mots_tools with overlapping masks/objects? How?

  3. I've tried to run mots_tools with my data that contain over masks by removing the conditions checking for overlapping masks. The tools can run without any error. I'm not sure whether the result was correct or not.

Please give me some advice on this. Thank you.

PanaddaK avatar Mar 01 '22 08:03 PanaddaK

Hi,

what you can do is to just disable the assertion, seems you already did that. This should mostly be ok, but if masks overlap a lot then the mapping which will be established can be incorrect. For practical purposes it should probably in most cases be ok. What you can also do is to enforce your masks to be non-overlapping by arbitrarily assigning overlapping pixels to only one mask (I would recommend to assign them to the smaller mask which proved to be a reasonable heuristic).

pvoigtlaender avatar Mar 23 '22 19:03 pvoigtlaender

Hi,

what you can do is to just disable the assertion, seems you already did that. This should mostly be ok, but if masks overlap a lot then the mapping which will be established can be incorrect. For practical purposes it should probably in most cases be ok. What you can also do is to enforce your masks to be non-overlapping by arbitrarily assigning overlapping pixels to only one mask (I would recommend to assign them to the smaller mask which proved to be a reasonable heuristic).

Thank you so much for your kind support and suggestion. ^_^

PanaddaK avatar Mar 25 '22 04:03 PanaddaK