Hi John and others,
I have noticed that for some dataset, it really helps to remove some transformations during augmentation. Especially, translations that seem to make the loss functions very unstable. So you can see if that helps already.
As Guillaume already pointed out above quite rightly. Large objects need many pooling layers so try and use the maximum number of pooling layers for your dataset (in our implementation we provide up to 4). Alternatively, you could simply bin your dataset to fewer pixels for segmentation and upscale the masks afterwards manually to match the orginal data sizes.Since your masks are quite regular, this should work nicely.
About empty patches: we exclude that in our implementation. You can set a minus fraction of foreground pixels for a patch to be valid and used for training. The parameter you want to play with here is called
min_fraction. You can increase this to make sure that there is enough foreground pixels in each patch.
I hope this helps!