1. A system for multiple-object recognition in visual images, the system comprising: one or more processors configured to perform operations of: receiving an input test image comprising at least one object; extracting a plurality of keypoints representing the at least one object from the input test image using a local feature algorithm; matching the plurality of keypoints from the input test image with a plurality of keypoints representing an object from at least one training image having a boundary mask stored in a training database, resulting in a set of matching keypoints; applying a clustering algorithm to the set of matching keypoints to detect a plurality of inliers among the set of matching keypoints, wherein the plurality of inliers belong to a first object class representing the object; following application of the clustering algorithm, classifying a keypoint in the set of matching keypoints as a midlier if it is in a neighboring vicinity of an inlier and belongs to the first object class, wherein a plurality of midliers is classified; removing the plurality of inliers from the input test image; removing the plurality of midliers from the input test image; generating an object label and an object boundary for the at least one object; and identifying and segmenting the at least one object in the input test image.