1. A method of image annotation performed by a data processing apparatus, the method comprising: receiving an input image in the data processing apparatus; identifying a plurality of nearest neighbor images of the input image from among a collection of digital images stored on computer-readable media by operation of the data processing apparatus, wherein each of the nearest neighbor images is associated with a respective one or more image labels; assigning a plurality of image labels to the input image, wherein the plurality of image labels are selected by the data processing apparatus from the image labels associated with the nearest neighbor images, ranking one or more first image labels according to a respective frequency of occurrence in the collection of digital images, wherein each of the one or more first image labels is associated with a first nearest neighbor image; ranking one or more second image labels, each of the second image labels being associated with one or more remaining nearest neighbor images, wherein ranking of the one or more second image labels comprises sorting the one or more second image labels according to a co-occurrence of each of the second image labels with each first image label in the collection of digital images, and wherein assigning the plurality of image labels comprises (1) assigning at least one of the first image labels to the input image based on the ranking of the one or more first image labels and (2) assigning at least one of the second image labels to the input image based on the ranking of the one or more second image labels; and storing in a digital data repository the input image having the assigned plurality of image labels.