Thanks, it’s working now. Ironically, I wasn’t reading the masks correctly. After correcting that and using some of the pointers from your comment, it finally worked. Now, some other errors are taking their place to haunt my nights
May I know what kind of images are considered non working ?
I had issues with overlapping pixels so I set DETECTION_NMS_THRESHOLD = 0.0 to handle overlapping and bounding box non max suppression. Is this the right approach?
Why do we need Mask non-max suppression?
Does morphological dilation mean making the mask bigger?
If I use a small 128 image size, it can do 2 images/batch. with 256x 256 image size, it can only handle 1 per batch.
I pre-process all images changing its size, not the best approach I think, but what my free time allow me to do.
If you want I can share my config file
@hel0 for handling overlapping masks, imo the simplest way is to just take the sum of all of your instance mask predictions - to create one full mask containing all predictions - then just run a check for anywhere with pixel value greater than 1 (indicating an overlap).
Ranked 151 at stage 2 Thank you @jamesrequa for your help on submission and morphological transformations. I didn’t apply transformations but I plan to do more with it soon.
Also thank you @alexandrecc for sharing Mask RCNN. This is my first competition, if I had not come across this thread, I would not have started my journey on Kaggle.
Congratulations @hel0 ! You got a better result than our team composed of @jamesrequa and me ! We ranked 203 on the private LB.
I am very excited and surprised to see that the winning team actually used a modified Unet version to deal with different nuclei instances instead of a Mask-RCNN. That is fascinating to see how these competitions generate new innovative ideas that push the boundaries of performance and help everyone to learn even more.