Skip to content

FOMO: filter_empty_gt=True in train_dataloader silently drops all background-only images #333

Description

@Ricardodiquez

Hi. I'm training FOMO (configs/fomo/fomo_mobnetv2_0.35_x8_coco.py) on Grove Vision AI V2 for pigeon detection on a fixed camera.

The config sets filter_cfg=dict(filter_empty_gt=True, min_size=32) in train_dataloader (line 202). Reading sscma/datasets/coco.py (filter_data, line 426), this drops every image that has no annotation of the target class. In my dataset that removes ~700 negative-only images (empty scenes of the deployment site), so the model never sees background-only frames. Result: val P=0.22 / R=0.83 with default cls_weight=100, and heavy false positives on the empty scene on-device.

Questions:

Is dropping negative images intended for FOMO? For a centroid-per-cell task, background-only images seem essential for precision.
Is train_dataloader.dataset.filter_cfg.filter_empty_gt=False via --cfg-options the supported way to include them, and is the FOMO mask/Mosaic pipeline safe with zero-GT images?
Any recommended cls_weight when negatives are included? Default 100 gives recall-heavy models.

Setup: Colab, Python 3.13, torch 2.11, latest main. Happy to share logs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions