Conclusion
In this work, a framework was applied to obtain the best capable results from the environments used. This project followed different stages are:
These different stages lead to the final product of this project: an Android real-time tracking application.
In order to evaluate this application, a dataset was used and an evaluation method based in the overlap between the algorithmic output and the dataset ground truth was performed. The overlap was then classified as 5 different scenarios that were used to calculate the recall and precision of the algorithm. Using these parameters it was possible to evaluate quantitatively the algorithmic output in different scenarios. The results achieved were satisfying and translated in which of the algorithms was performing the best.
- The definition of the algorithm implemented was done by studying the state of art of tracking algorithms available nowadays. During this study, several algorithms were reviewed and at the end the TLD (Tracking Learning Detection) and CMT (Consensus-based Matching and Tracking of Keypoints for Object Tracking) algorithms were chosen to be implemented. The reason behind this decision was the ability of these algorithms to track unknown objects in dynamic scenarios. TLD relies on online learning of the templates retrieved from the object of interest to update the detector and improve the tracking process, whereas the CMT is based in the detection of the object's keypoints and finding the consensus between the keypoints from the object and the image. Both algorithms provide outputs considered relevant for the purpose of this dissertation.
- The implementation of these algorithms in Linux are done using the OpenCV C++ API. The OpenCV library has a high number of functions related to computer vision, so the implementation of computer vision software is facilitated by its use. One of the problems with OpenCV is its non-optimization in some functions enabling the creation of some applications with high computational cost. This implementation detail is critical for this project. The final platform is an Android smartphone so it is necessary to have algorithms with low computational cost to allow a good frame rate in the application's final output.
- The final platform is an Android application and therefore the software developed in Linux is ported to Android using the NDK tools. Having as resource the Android OpenCV library it was just necessary to create a C++ class to be executed when the Java Native Interface is called from the main Java program creating the GUI of the application.
These different stages lead to the final product of this project: an Android real-time tracking application.
In order to evaluate this application, a dataset was used and an evaluation method based in the overlap between the algorithmic output and the dataset ground truth was performed. The overlap was then classified as 5 different scenarios that were used to calculate the recall and precision of the algorithm. Using these parameters it was possible to evaluate quantitatively the algorithmic output in different scenarios. The results achieved were satisfying and translated in which of the algorithms was performing the best.