1. A system for object recognition, the system comprising: one or more processors and a memory having instructions such that when the instructions are executed, the one or more processors perform operations of: receiving a color image; separating the color image into monochrome color channels; detecting a set of features in each of the monochrome color channels; combining the set of features for each of the monochrome color channels to yield a combined feature descriptor describing a set of features in the color image; wherein each detected feature is assigned a class corresponding to its closest matching object in a learned feature database, wherein multiple features are assigned a same class, wherein the set of features contains one or more outlier features which are assigned to an incorrect class, and wherein the set of features for each monochrome color channel is described by a feature descriptor for that channel; removing the outlier features from the set of features in the color image; clustering features of the same class into clusters within the set of features; and drawing a boundary around each cluster to create a bound cluster representing a recognized object, whereby objects are recognized in the color image.