In the past decade, mobile phones have become a commonplace technology. In the same time period, computer vision and machine learning have become a vital part of security analytics. High performance computing and parallelization methods have made it possible to quickly and accurately do intensive computer vision tasks like face recognition and motion tracking, which have greatly improved security in places like airports and government facilities. There have only been trivial efforts to put such security onto mobile devices – most face recognition methods require a still picture and would be too slow with a live video stream. However, smartphones are becoming more and more powerful, and the components on them, such as the GPU, can be utilized to perform these tasks. We are seeking to identify the most efficient way to utilize the GPU on a mobile phone for computer vision tasks.
Many different computer vision libraries have been implemented on Android devices because of their popularity and powerful hardware. OpenCV, an open source computer vision project, is a robust, multi-platform example of these libraries. However, it does not always utilize the entirety of a mobile phone’s hardware. By writing an version of a basic OpenCV action, such as filtering a video, that is optimized to use the entire GPU, we can determine how important the GPU is in computer vision tasks, and also if there are more efficient methods to complete them. Our hypothesis is that a GPU specific implementation will be more efficient on mobile platforms.