1. A computer-implemented method of identifying an object in an image, comprising: receiving a query image from a computing device, the query image being captured using a camera of the computing device; generating from the query image a plurality of sub-images, the sub-images being separate images; and for a first sub-image of the plurality of sub-images: applying a Histogram of Oriented Gradients (HOG) descriptor on the first sub-image to filter the first sub-image; generating a pre-processed sub-image by at least one of adjusting image scale, adjusting image resolution, adjusting image size, adjusting image color level, or adjusting image brightness; generating a first vector from the pre-processed sub-image, the first vector comprising at least one of a histogram vector or a floating point vector; processing the first vector using a Bienenstock, Cooper, and Munro (BCM) network algorithm to produce a reduced dimensionality second vector, by at least analyzing weight vectors that converge iteratively to fixed points; determining a classification of the reduced dimensionality second vector using at least one of a random forest algorithm, a support vector machine (SVM) algorithm, a neural network, an extremely random forest algorithm, or a k-nearest neighbor (k-NN) look-up algorithm; using at least the classification of the reduced dimensionality second vector, comparing the reduced dimensionality second vector against image vectors for a plurality of potential match images; and providing information associated with a first match image of the plurality of potential match images when a first image vector for the first match image is determined to match the second vector with at least a minimum level of certainty.