Kaggle Data Science Bowl 2018 : Find and segment nuclei

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 :wink:

How do you handle RGBA images?

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?

I ran it on K80. Batch size of 1 appeared to be the fastest for me, Could it be due to something that I messed up?

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).

Here is a page on a few morphological transformations including dilation. The visuals should help you understand it better :slight_smile: Of course you don’t have to use opencv, there are many libraries with similar functions that you can try and see what works best
https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.html

Ranked 151 at stage 2 :wink: 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.

2 Likes

First place solution: https://www.kaggle.com/c/data-science-bowl-2018/discussion/54741

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.

3 Likes

Yes after looking at the winning solution, I realise there’s so much to consider beside running the model.

Are you guys working on any other competitions?

Hey! can anyone post there code to this competition ?