So, the question concerns how to go about detecting ships in images, count the number of ships in the image and get the model to predict whether the ship is parked or not.
From the problems you have posed, I think it is best that we implement supervised machine learning. This means that we need labelled data. For this, I would recommend taking a sub-sample of the data, making a data log which maps the images to the labels (e.g. the file name and then the number of ships and whether it is parked or not.).
In terms of preparing the images for ship detection, it would be a good idea to mask these images by drawing a box around the ship(s) in your subset of images.
When it comes to models, the obvious choice is going to be something which follows a convolutional network, for problems 2) and 3), you might need to use a CNN model as the encoder, which will encode the visual information into a hidden representation. From this hidden representation, you would then decode with a normal feedforward neural network.
For problem 2), you would get the overall model to output a scalar value, which will denote how many ships are in the image.
For problem 3), you would have a final 2-node softmax output layer, which will output a probability distribution over whether the ship identified is parked or not.
I think someone would need to fill in for me on problem 1, as I do not have much experience in the way of semantic segmentation (which is essentially what ship detection is in your case).