1. A computer-implemented method for performing recognition on an image, The computer-implemented method comprising: programmatically selecting, from a collection of images, a set of candidate images for a training set; presenting the set of images to a user for input; designating images from the set of candidate images for the training set based on input from the user; and using images from the training set to perform a recognition of one or more images.