1. A method comprising: maintaining a data structure having a plurality of entries associated with a training set of images, each entry identifying a set of visual characteristics of a prototypical segment from the training set of images and an associated set of potential bounding boxes, the prototypical segment representing a combination of similar segments across different images from the training set of images; segmenting, by a computing device, a current image into a plurality of segments, wherein each segment of the plurality of segments of the current image has a segment location and a set of pixels that share visual characteristics; for each segment of the current image, finding in the data structure an entry identifying a set of visual characteristics of a respective prototypical segment that are most similar to visual characteristics of the segment of the current image to determine a set of potential bounding boxes associated with the entry; determining, by the computing device, an initial set of bounding boxes for the current image based on sets of potential bounding boxes for the plurality of segments of the current image; and determining a reduced set of bounding boxes based on combining bounding boxes of the initial set of bounding boxes, the reduced set of bounding boxes corresponding to one or more objects in the current image, each of the one or more objects having an object class and an object location.