Please suggest what can I do to improve the results containing water bodies?
Things I know which may work.
a) create a no pool class and train my model on it on a data where water bodies are marked as no pools.
b) use image processing techniques to discard bboxes which are on large blue blobs
try to add the lakes as a separate class (not as part of the background) and the model will learn to differentiate better between pool and lakes.
also, based on your results and assuming you are implementing some sort of SSD architecture, I would consider working with more scales
Instead of adding a no-pool class, you could just collect more training data with large water bodies. The model will learn that those are not pool. What percentage of your training data contains water bodies?
Is your model work fine on residential areas? I also have to create model for swimming pools located at Houston areas and I am going to target Pengu Swim School