Skip to content

MaskDino Fails to learn Precise Bounding Boxes on custom dataset but Dino does #242

@FabianSchuetze

Description

@FabianSchuetze

Thanks for the wonderful repo. It's a pleasure to work with it and to read the code.

When training MaskDino on a custom dataset, the bounding box predictions are not very good. Interestingly:

  • Dino learns good bounding boxes on the same dataset
  • The instance masks predicted by Mask Dino are good too
  • Bounding boxes with 50mAP are learned with MaskDino, but the bounding boxes for mAP 75 (and better) are poor.
  • MaskDino errored at the end with a problem in the cost_matrix. See the logs for details.

Does anybody have an idea what I could tune to generate good bb results?

Training Details:
I have slightly modified the training process (see this branch https://github.com/FabianSchuetze/detrex/tree/my_changes). I added amp training and have included some gradient checkpointing. I train with one GPU and a batch size of four (for MaskDino, Dino works with a batch size of 8). The learning rate is lowered linearly.

Data:
The instances are very dense, similar to the "is-crowded" scenes of COCO. There is only one class. I have adjusted the num_objects in the config files.

Logs:
Logs of the training runs are attached below. There are three logs:

  • One for MaskDino with the original noise scale (0.4)
  • One with a noise scale of 1.0 (Dino uses this value)
  • One for Dino (noise scale of 1.0)

Hyparameters:
Comparing the parameters, the following aspects seem notable:

  • Maskidio has a higher Hungarian class loss (5 vs 2)
  • Maskdino has 1/3 of the queries (300 vs 900)

maskdino_0.4_noise_scale.txt
maskdino_1.0_noise_scale.txt
dino_log.txt

Does anybody have an idea how to debug the problem?

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions