Design and Performance Evaluation of a Software Platform for Video Analysis Service
Timo Kalliomäki · Tampere University Institutional Repository (Tampere University) · 2018
Video analysis is the programmatic observation of features in a video stream. This thesis designs a software platform which acts as a host for multiple video analyzer applications. The objectives are to allow effortless integration of analyzers such that dependencies between algorithms can be satisfied automatically, provide the analysis functionality over the internet as a service which can act as the engine for client applications, and do this integration in a manner which does not form a bottleneck for the analysis process. The research question is how to build a platform for integrating the analyzers in a way that makes integration easy and achieves good performance. The thesis consists of gathering requirements for the system, a review of related literature, a description of the design and evaluation and discussion of the designed system from the viewpoints of functionality, performance and architecture. The specification devised for the system defines it at least initially as more of a service to be utilized by the backends of client applications than a scalable content delivery network -like system, and it is emphasized that integration of various heterogeneous analyzers must be easy. Previous literature describes video analysis systems also operating in the cloud, but only ones tailored for a specific purpose and involving only a single analyzer. To make integrating new analyzers easy, the system designed here features the main ideas of allowing analyzers to run in Docker containers and register themselves with the platform at runtime with the platform determining analysis execution order based on information declared at registration-time. For performance, memory is shared between the platform and analyzers to avoid redundant operations. The platform provides good enough performance, not forming a bottleneck to the operation of the tested analyzer despite a loose approach to coupling, but tests with multiple analyzers operating concurrently would be needed to form a full understanding of the performance. The automatic resolution of dependencies based on requirements declared by analyzers is a novel way of allowing easy integration, and would likely be of use even in versions of the system developed vastly further. The REST API of the produced system is sufficient to facilitate the development of client applications. The stated goals are met, but actual implementation of client applications utilizing the platform would allow better assessment of the fitness of provided functionality. Tests of performance with more analyzers are needed, and if it proves to be lacking, there may be cause for replacing parts of the platform with ones utilizing computing resources more efficiently, or even designing a more tightly coupled analysis architecture operating as a single process.