1. A method for detecting variable sized objects in an image using a computer system with an array of cores configured to concurrently execute a plurality of threads, wherein each core comprises a shared memory, a constant memory and a plurality of functional units, the method comprising the following steps: calculating in parallel a summed area table from an image, by executing a plurality of exclusive parallel prefix sum kernel functions to increase utilization of the cores and increase calculating speed, followed by executing at least two parallel transposition kernel functions, decomposing the summed area table into a plurality of table chunks, creating a thread per element of the table chunk and storing each table chunk in the shared memory of a core, evaluating a plurality of classifiers for a plurality of table chunks by executing a cascade evaluation kernel function to speed evaluations of classifiers using the summed area table to determine whether an object is enclosed within the table chunk, wherein each kernel function is assigned to a plurality of block threads, a block thread being executed in a single core and having access to the shared memory of the core, each thread of the thread block comprising Single Instruction Multiple Data (SIMD) instructions to be processed in a plurality of functional units of the core.