Multiprocessor Implementation of Image Recognition
Narayanan Sundaram, Bryan Christopher Catanzaro, Jike Chong and Kurt Keutzer
With the advent of multi core and many core processors, it is important to identify and parallelize the core kernels of applications to take advantage of the available parallelism. Image recognition has been identified as a key compute intensive and highly parallel emerging application under Intel's Recognition-Mining-Synthesis (RMS) taxonomy. Recognition draws on a class of statistical machine learning algorithms to classify objects or events of interest to the user. This application is of high interest to processor architects for multi and many core machines. It is now common to have accumulated tens of thousands of personal pictures. Efficient access to that many pictures can only be done with a robust image retrieval system. The application is highly compute intensive and an efficient parallel implementation is the key to its success on future multiprocessors.
Support vector machines (SVM) is a popular technique used for pattern classification problems and is at the core of the image recognition algorithm. SVMs are not just applied in image retrieval, but also in several other machine learning applications, making it an important algorithm to be parallelized. SVM training and classification is an important bottleneck in image recognition.
We are looking at SVM training and classification algorithms for mapping onto multi processor machines. It is an algorithm that is highly optimized for sequential implementations and would require drastic rethinking to make it as efficient for parallel platforms. In addition to the classifier, image recognition requires feature extraction and other associated modules to be implemented in parallel. The goal of the research is to provide a parallel implementation of an image recognition application.