The purpose of creating this question is to start a discussion on the issue of detecting small objects with the Detectron2 API. There are very few, inadequate discussions on the internet and I think this post will also help others with their similar projects.
I'm using Detectron2 for my project where I detect multiple objects on images. The object detector is used in two modes. In the first mode, the detector detects whole objects. For example cars. In the second mode, the detector detects objects' parts. For example, wheels, doors, and lights.
Now in the first mode, the detector works fine. But in the second mode, the accuracy drops dramatically. Since the cars are quite small on the images, the car parts are even smaller. This is why my first guess was that the accuracy drops because of detecting small objects. But I cannot seem to find a proper way to fine-tune the model's parameters for detecting small objects.
Well, some would say that using MaskRCNN is not appropriate for detecting small objects and that I should be using a more appropriate model. I want to emphasize that I'm bound on using Detectron2 API.
There are already two issues
but they are inadequate. The first issue is very short and it doesn't say anything about which parameters are good to start experimenting with. In the second issue, there is a comment where the author talks about enlarging some parameters but there aren't any further comments that would confirm this. I also didn't try them yet as I only found the post recently.
What I tried was changing the initial learning rate. Changing the parameter improved the part model, but the accuracy still doesn't reach the values from the model that detects the whole object. For example, the part model's accuracy is about 15% and the whole model's accuracy is about 75%.
One idea is also to use a bigger input resolution. This doesn't seem to work as I already use the image size as the input resolution.
Is anyone working on a similar issue and found a better solution? Is the comment basically the only appropriate solution for such a task?