Predicting image data with the SRS-12 algorithm. Applying random projection-based c-approximate nearest-neighbor queries to image data

Bachelor Thesis from the year 2015 in the subject Computer Science - Applied, grade: 1.0, University of Heidelberg (Computer Science), language: English, abstract: Determining point similarity is a cornerstone for a wide variety of applications. Whenever data is being compared, the problem can be stated as a matter of comparing vectors. Due to this fundamental importance, research has been conducted in this area for decades. For a long time, even for relatively low dimensions such as for example d = 10, complexity was far beyond of what was considered to be feasible in practice. A common approach is to soften the requirements for the accuracy of the neighbor search and look for points within a certain proximity to the query point instead of searching for exact neighbors. In this thesis we evaluate how well the SRS-12 algorithm works on real-world image data in order to lay the ground for future work such as image prediction. The SRS-12 algorithm is an approach to c-approximate nearest-neighbors and claims to have a tiny index and arbitrary approximation ratio while maintaining good theoretical guarantees. We first implement and verify the algorithm and subsequently examine the quality of its outputs when it is applied to image data by performing block matching. We find that the SRS-12 algorithm is indeed very suitable for processing image data as long as the input images are cut into patches that are sufficiently large. However the parameters of the algorithm have to be tuned carefully because they significantly affect not only the quality of the results, but also the computation time which can easily exceed an exact nearest-neighbor query if the parameters are not set properly. We conclude our experiment with a recommendation for well-working parameter settings and propose approaches to enhance the quality and speed of approximate nearest-neighbor queries on image data made with the SRS-12 algorithm such that it can be used in real-time.