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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions