How well can a CNN distinguish an object from its class?
To help you understand the feasibility of your project these posts could be a good start:
https://datascience.stackexchange.com/questions/13181/how-many-images-per-class-are-sufficient-for-training-a-cnnenter link description here

https://stats.stackexchange.com/questions/226672/how-few-training-examples-is-too-few-when-training-a-neural-network

That being said, the short answer would be it depends. It depends how precise you want to be, what is the difficulty of the task, the infrastructure you have for the training etc.

For the images, you should not worry, you could start with the ImageNet dataset:
For construction and buildings:
http://www.image-net.org/explore?wnid=n04341686

For mosquees:
http://www.image-net.org/synset?wnid=n03788195

You can then use data augmentation techniques to enhance the size of you training set. Here is a library I have used in the past which helped me greatly to achieve this task: https://github.com/aleju/imgaug

Hope that helps!