As @sammy pointed out, you must understand that what you are trying to accomplish here is a hard and open computer vision problem.
Having said that, if you still interested in the problem then I would look for combination of scene categorization algorithms (for example [1]) and object detection algorithms (for example [2]) for the simple cases. Annotations such as "ground" or "sky" can be done by using the spatial location of the object and it's color. Other annotation such as "hill" and "water" seems very hard and it's not clear (at least, not to me) how to approach them.
[1]Lazebnik, Svetlana, Cordelia Schmid, and Jean Ponce. "Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories." Computer Vision and Pattern Recognition, 2006 IEEE Computer Society Conference on. Vol. 2. IEEE, 2006.
[2]Felzenszwalb, Pedro F., et al. "Object detection with discriminatively trained part-based models." Pattern Analysis and Machine Intelligence, IEEE Transactions on 32.9 (2010): 1627-1645.
It's great you know what annotation is. However, you should also know that what you want hasn't been done yet. It seems to fall in the same category as this post: http://stackoverflow.com/questions/9986766/which-computer-vision-library-algorithms-for-human-behaviour-analysis/9988561#9988561 Apart from the unfriendly tone, you should keep in mind that those labelled image collections that you can find on the internet were manually labelled, one by one, point by point.
@sammy: just wanted to note that there is research on that topic, see e.g. the work by Tighe and Lazebnik: http://www.cs.unc.edu/~jtighe/Papers/CVPR13/index.html
Maybe good to point to the labelMe software which is an open source labeling project. However, it seems that some people have made good software in the past, like Piotr Dollar did for example, that was opensource, but that is now bought by compagnies liek dropbox and google and who will not share the code anymore. This is still an active research topic in all current computer vision conferences.