For this competition the baseline https://www.aicrowd.com/showcase/baseline-for-objde-challenge actually worked pretty well. My guess is that the labels were generated from a similar model as in the baseline, so sticking to this architecture would give better results.
There were 2 minor tweaks to make it work:
-
Creating Data cell:
'category_id': i[1]['category_id'].values[0],
replace with
'category_id': i[1]['category_id'].values[n],
-
Submitting predictions cell:
new_boxes.append([b[0]*w, b[2]*h, b[1]*w, b[3]*h])
replace with
new_boxes.append([b[0]/w, b[2]/w, b[1]/h, b[3]/h])
I ran the training for 5000 steps:
Creating Model cell:
cfg.SOLVER.MAX_ITER = 5000
and then continued for another 10000 with smaller lambda:
cfg.SOLVER.BASE_LR = 0.00025 / 10
cfg.SOLVER.MAX_ITER = 10000